Merge branch 'master' into gtk
authorArun Persaud <arun@nubati.net>
Fri, 4 Sep 2009 05:50:28 +0000 (22:50 -0700)
committerArun Persaud <arun@nubati.net>
Fri, 4 Sep 2009 05:53:27 +0000 (22:53 -0700)
Conflicts:
Makefile.am
backend.c
configure.ac
xboard.c

180 files changed:
FAQ.html
Makefile.am
backend.c
backend.h
configure.ac
engine-intf.html
install-sh [changed mode: 0644->0755]
uci.c
winboard/WB4Jaws.dev
winboard/Winboard.dev
winboard/config.h
winboard/help/contents.hhc [new file with mode: 0644]
winboard/help/html/01.htm [new file with mode: 0644]
winboard/help/html/02.htm [new file with mode: 0644]
winboard/help/html/03.htm [new file with mode: 0644]
winboard/help/html/04.htm [new file with mode: 0644]
winboard/help/html/05.htm [new file with mode: 0644]
winboard/help/html/06.htm [new file with mode: 0644]
winboard/help/html/07.htm [new file with mode: 0644]
winboard/help/html/08.htm [new file with mode: 0644]
winboard/help/html/09.htm [new file with mode: 0644]
winboard/help/html/10.htm [new file with mode: 0644]
winboard/help/html/11.htm [new file with mode: 0644]
winboard/help/html/12.htm [new file with mode: 0644]
winboard/help/html/13.htm [new file with mode: 0644]
winboard/help/html/14.htm [new file with mode: 0644]
winboard/help/html/15.htm [new file with mode: 0644]
winboard/help/html/16.htm [new file with mode: 0644]
winboard/help/html/17.htm [new file with mode: 0644]
winboard/help/html/18.htm [new file with mode: 0644]
winboard/help/html/19.htm [new file with mode: 0644]
winboard/help/html/20.htm [new file with mode: 0644]
winboard/help/html/21.htm [new file with mode: 0644]
winboard/help/html/22.htm [new file with mode: 0644]
winboard/help/html/23.htm [new file with mode: 0644]
winboard/help/html/24.htm [new file with mode: 0644]
winboard/help/winboard [new file with mode: 0644]
winboard/help/winboard.chm [new file with mode: 0644]
winboard/help/winboard.hhk [new file with mode: 0644]
winboard/help/winboard.hhp [new file with mode: 0644]
winboard/install/files/COPYING.txt [new file with mode: 0644]
winboard/install/files/COPYRIGHT.txt [new file with mode: 0644]
winboard/install/files/fonts/MARKFONT.TTF [new file with mode: 0644]
winboard/install/files/fonts/XIANGQI.TTF [new file with mode: 0644]
winboard/install/files/root/EleEye/ATOM.DLL [new file with mode: 0644]
winboard/install/files/root/EleEye/BOOK.DAT [new file with mode: 0644]
winboard/install/files/root/EleEye/CCHESS.DLL [new file with mode: 0644]
winboard/install/files/root/EleEye/ELEEYE.EXE [new file with mode: 0644]
winboard/install/files/root/EleEye/EVALUATE.DLL [new file with mode: 0644]
winboard/install/files/root/EleEye/logo.bmp [new file with mode: 0644]
winboard/install/files/root/Fairy-Max/MaxQi.exe [new file with mode: 0644]
winboard/install/files/root/Fairy-Max/ShaMax.exe [new file with mode: 0644]
winboard/install/files/root/Fairy-Max/fmax.exe [new file with mode: 0644]
winboard/install/files/root/Fairy-Max/fmax.ini [new file with mode: 0644]
winboard/install/files/root/Fairy-Max/logo.bmp [new file with mode: 0644]
winboard/install/files/root/Fairy-Max/qmax.ini [new file with mode: 0644]
winboard/install/files/root/Fruit/copying.txt [new file with mode: 0644]
winboard/install/files/root/Fruit/fruit_21.exe [new file with mode: 0644]
winboard/install/files/root/Fruit/logo.bmp [new file with mode: 0644]
winboard/install/files/root/Fruit/readme.txt [new file with mode: 0644]
winboard/install/files/root/Fruit/technical_10.txt [new file with mode: 0644]
winboard/install/files/root/HaQi/haqikid.exe [new file with mode: 0644]
winboard/install/files/root/HaQi/logo.bmp [new file with mode: 0644]
winboard/install/files/root/Joker/joker80.exe [new file with mode: 0644]
winboard/install/files/root/Joker/jokerKM.exe [new file with mode: 0644]
winboard/install/files/root/Joker/logo.bmp [new file with mode: 0644]
winboard/install/files/root/PSWBTM/PSWBTM.exe [new file with mode: 0644]
winboard/install/files/root/PSWBTM/README.txt [new file with mode: 0644]
winboard/install/files/root/PSWBTM/config.pswbtm [new file with mode: 0644]
winboard/install/files/root/PSWBTM/doc/PGfruit.png [new file with mode: 0644]
winboard/install/files/root/PSWBTM/doc/UCI.html [new file with mode: 0644]
winboard/install/files/root/PSWBTM/doc/conf.png [new file with mode: 0644]
winboard/install/files/root/PSWBTM/doc/configure.html [new file with mode: 0644]
winboard/install/files/root/PSWBTM/doc/eman.png [new file with mode: 0644]
winboard/install/files/root/PSWBTM/doc/install.html [new file with mode: 0644]
winboard/install/files/root/PSWBTM/doc/menu.png [new file with mode: 0644]
winboard/install/files/root/PSWBTM/doc/pswbtm.png [new file with mode: 0644]
winboard/install/files/root/PSWBTM/doc/running.html [new file with mode: 0644]
winboard/install/files/root/PSWBTM/doc/tour.png [new file with mode: 0644]
winboard/install/files/root/PSWBTM/doc/tourney.html [new file with mode: 0644]
winboard/install/files/root/PSWBTM/engines.pswbtm [new file with mode: 0644]
winboard/install/files/root/PSWBTM/ntls.pswbtm [new file with mode: 0644]
winboard/install/files/root/PSWBTM/start positions/nunn.pgn [new file with mode: 0644]
winboard/install/files/root/PSWBTM/start positions/silver.epd [new file with mode: 0644]
winboard/install/files/root/Pulsar/atomicBookBlack.txt [new file with mode: 0644]
winboard/install/files/root/Pulsar/atomicBookWhite.txt [new file with mode: 0644]
winboard/install/files/root/Pulsar/bigbook.txt [new file with mode: 0644]
winboard/install/files/root/Pulsar/kingsBookBlack.txt [new file with mode: 0644]
winboard/install/files/root/Pulsar/kingsBookWhite.txt [new file with mode: 0644]
winboard/install/files/root/Pulsar/logo.bmp [new file with mode: 0644]
winboard/install/files/root/Pulsar/losersBlack.txt [new file with mode: 0644]
winboard/install/files/root/Pulsar/losersWhite.txt [new file with mode: 0644]
winboard/install/files/root/Pulsar/openbk.txt [new file with mode: 0644]
winboard/install/files/root/Pulsar/pulsar2009-9a.exe [new file with mode: 0644]
winboard/install/files/root/Pulsar/pulsarCrazyBlack.txt [new file with mode: 0644]
winboard/install/files/root/Pulsar/pulsarCrazyWhite.txt [new file with mode: 0644]
winboard/install/files/root/Pulsar/pulsarShatranjBlack.txt [new file with mode: 0644]
winboard/install/files/root/Pulsar/pulsarShatranjWhite.txt [new file with mode: 0644]
winboard/install/files/root/Pulsar/suicideBookBlack.txt [new file with mode: 0644]
winboard/install/files/root/Pulsar/suicideBookWhite.txt [new file with mode: 0644]
winboard/install/files/root/Pulsar/threeBookBlack.txt [new file with mode: 0644]
winboard/install/files/root/Pulsar/threeBookWhite.txt [new file with mode: 0644]
winboard/install/files/root/README.html [new file with mode: 0644]
winboard/install/files/root/SMIRF/Smirfoglot.exe [new file with mode: 0644]
winboard/install/files/root/WinBoard/ChessMark.ini [new file with mode: 0644]
winboard/install/files/root/WinBoard/FICS.ini [new file with mode: 0644]
winboard/install/files/root/WinBoard/FICS.lnk [new file with mode: 0644]
winboard/install/files/root/WinBoard/Fairy-Max.lnk [new file with mode: 0644]
winboard/install/files/root/WinBoard/Fruit.lnk [new file with mode: 0644]
winboard/install/files/root/WinBoard/Gothic.ini [new file with mode: 0644]
winboard/install/files/root/WinBoard/ICC.ini [new file with mode: 0644]
winboard/install/files/root/WinBoard/ICC.lnk [new file with mode: 0644]
winboard/install/files/root/WinBoard/ICS bot.lnk [new file with mode: 0644]
winboard/install/files/root/WinBoard/ICSbot.ini [new file with mode: 0644]
winboard/install/files/root/WinBoard/PG/fruit.ini [new file with mode: 0644]
winboard/install/files/root/WinBoard/PGN viewer.lnk [new file with mode: 0644]
winboard/install/files/root/WinBoard/QH/eleeye.ini [new file with mode: 0644]
winboard/install/files/root/WinBoard/QH2WB.exe [new file with mode: 0644]
winboard/install/files/root/WinBoard/UCCI2WB.exe [new file with mode: 0644]
winboard/install/files/root/WinBoard/Xiangqi.lnk [new file with mode: 0644]
winboard/install/files/root/WinBoard/default_book.bin [new file with mode: 0644]
winboard/install/files/root/WinBoard/doc/PolyglotGUI.html [new file with mode: 0644]
winboard/install/files/root/WinBoard/doc/engine-intf.html [new file with mode: 0644]
winboard/install/files/root/WinBoard/doc/fonts.html [new file with mode: 0644]
winboard/install/files/root/WinBoard/doc/manual.html [new file with mode: 0644]
winboard/install/files/root/WinBoard/doc/mini.gif [new file with mode: 0644]
winboard/install/files/root/WinBoard/doc/shortcuts.html [new file with mode: 0644]
winboard/install/files/root/WinBoard/doc/texture.html [new file with mode: 0644]
winboard/install/files/root/WinBoard/fairy.ini [new file with mode: 0644]
winboard/install/files/root/WinBoard/fruit.ini [new file with mode: 0644]
winboard/install/files/root/WinBoard/logos/README.txt [new file with mode: 0644]
winboard/install/files/root/WinBoard/logos/chessclub.com.bmp [new file with mode: 0644]
winboard/install/files/root/WinBoard/logos/freechess.org.bmp [new file with mode: 0644]
winboard/install/files/root/WinBoard/logos/hgm.bmp [new file with mode: 0644]
winboard/install/files/root/WinBoard/marble.ini [new file with mode: 0644]
winboard/install/files/root/WinBoard/my WinBoard.lnk [new file with mode: 0644]
winboard/install/files/root/WinBoard/polyglot.exe [new file with mode: 0644]
winboard/install/files/root/WinBoard/polyglot_1st.ini [new file with mode: 0644]
winboard/install/files/root/WinBoard/textures/marble_d.bmp [new file with mode: 0644]
winboard/install/files/root/WinBoard/textures/marble_l.bmp [new file with mode: 0644]
winboard/install/files/root/WinBoard/textures/wood_d.bmp [new file with mode: 0644]
winboard/install/files/root/WinBoard/textures/wood_l.bmp [new file with mode: 0644]
winboard/install/files/root/WinBoard/textures/xqboard.bmp [new file with mode: 0644]
winboard/install/files/root/WinBoard/textures/xqwood.bmp [new file with mode: 0644]
winboard/install/files/root/WinBoard/timeseal.exe [new file with mode: 0644]
winboard/install/files/root/WinBoard/timestamp.exe [new file with mode: 0644]
winboard/install/files/root/WinBoard/viewer.ini [new file with mode: 0644]
winboard/install/files/root/WinBoard/winboard.GID [new file with mode: 0644]
winboard/install/files/root/WinBoard/winboard.chm [new file with mode: 0644]
winboard/install/files/root/WinBoard/winboard.exe [new file with mode: 0644]
winboard/install/files/root/WinBoard/winboard.hlp [new file with mode: 0644]
winboard/install/files/root/WinBoard/winboard.ini [new file with mode: 0644]
winboard/install/files/root/WinBoard/wood.ini [new file with mode: 0644]
winboard/install/files/root/WinBoard/xq.ini [new file with mode: 0644]
winboard/install/files/root/WinBoard/xq_book.bin [new file with mode: 0644]
winboard/install/installer/FA.ini [new file with mode: 0644]
winboard/install/installer/FontName-0.7.exe [new file with mode: 0644]
winboard/install/installer/WinBoard-4.2.7_full.nsi [new file with mode: 0644]
winboard/install/installer/WinBoard-4.4.0beta1.exe [new file with mode: 0644]
winboard/install/installer/build.bat [new file with mode: 0644]
winboard/install/installer/knight.ico [new file with mode: 0644]
winboard/install/installer/modern-uninstall.ico [new file with mode: 0644]
winboard/install/installer/wb440.nsi [new file with mode: 0644]
winboard/install/installer/wc_uninst.ico [new file with mode: 0644]
winboard/install/installer/welcome_chess.bmp [new file with mode: 0644]
winboard/install/todo.install.txt [new file with mode: 0644]
winboard/jaws.c
winboard/makefile.gcc
winboard/makefile.ms
winboard/resource.h
winboard/wengineo.c
winboard/winboard.c
winboard/winboard.dsp
winboard/winboard.rc
winboard/winboard.rtf
winboard/wsettings.c [new file with mode: 0644]
xboard.c
xboard.texi
xengineoutput.c
xoptions.c

index 8f5adee..1e37d79 100644 (file)
--- a/FAQ.html
+++ b/FAQ.html
@@ -83,7 +83,9 @@ to help update it.</i></p>
       <li><a href="#tag-B.23">[B.23] Can I get Zippy to automatically reconnect to ICS when its connection breaks?</a></li>
       <li><a href="#tag-B.24">[B.24] The chess engines are too strong and always beat me.  How can I adjust the difficulty level to make them weaker?</a></li>
       <li><a href="#tag-B.25">[B.25] May I use the piece bitmaps from XBoard/WinBoard in my own program?</a></li>
-  </ul></li>
+      <li><a href="#tag-B.26">[B.26] How can I get rid of these silly logos that this new WinBoard displays above the board?</a></li>
+      <li><a href="#tag-B.27">[B.27] How can I install logos for other engines, Internet Chess Servers or Human users?</a></li>
+  </ul></li> 
   
   <li><a name="tag-C0" href="#tag-C">[C] XBoard and WinBoard, bugs and problems</a>
     <ul>
@@ -1099,6 +1101,60 @@ you obtain special permission from Elmar.  See the file README.bitmaps
 that comes with the XBoard and WinBoard source code for more
 information and an email address you can write to.</p>
 
+<hr />
+<h3><a name="tag-B.26">[B.26]
+  How can I get rid of these silly logos that this new WinBoard displays above the board?</a></h3>
+
+<p>WinBoard 4.4.0 has an option /autoLogo, which makes is search for bitmap files to display as logo, 
+in the engine directory or in the folder "logos".
+If you see logos without having asked for them, the settings in your winboard.ini file probably contains the line</p>
+<pre>/autoLogo=true</pre>
+<p>Just change that to /autoLogo=false.
+You can also achieve that by starting WinBoard through the startup dialog (from the start menu),
+and then tick "additional options" at the bottom,
+and type /autoLogo=false in the edit field, before pressing OK.
+If you then later select "Save Settings Now" from the Option menu,
+or when "Save Settings on Exit" is on, and you close WinBoard,
+this will automatically end up in your settings field.
+</p><p>
+When /autoLogo=false, logos will only be displayed if you explicitly ask for them,
+by running WinBoard with the option /firstLogo=FILENAME.bmp or /secondLogo=FILENAME.bmp.
+(Which will not be stored in the winboard.ini,
+but might of course be hidden somewhere in a settings file mentioned on the command line as @SETTINGSFILE.ini.)
+</p>
+
+<hr />
+<h3><a name="tag-B.27">[B.27]
+  How can I install logos for other engines, Internet Chess Servers or Human users?</a></h3>
+
+<p>With the option /autoLogo=true, (which is remembered in your settings file),
+WinBoard automatically looks into the engine folder 
+(specified by the /fd="..." or /sd="..." option), for a file called "logo.bmp". 
+If it is found, it is used as a logo for the engine when it plays.
+So all you have to do is put a logo.bmp file there.
+Popular logo formats are 100x50 and 130x65; many engine logos are available from
+<a href="http://www.geocities.com/davedahlem/my_logos.html">David Dahlem</a> or
+<a href="http://kirill-kryukov.com/chess/discussion-board/viewtopic.php?t=545&f=7">Graham Banks</a>
+</p><p>
+It is possible to overrule the /autoLogo by explicitly using a /firstLogo="FILENAME.bmp" 
+or /secondLogo="FILENAME.bmp" with the engine on the engine line in the startup dialog.
+This is useful for engines that run with an adapter like Polyglot,
+when you have only one polyglot on your system, used by many engines.
+E.g. for Fruit the engine line to be typed in or selected from the combo box is
+<pre>
+"polyglot fruit.ini" /firstLogo="D:\Engines\Fruit\logo.bmp" /fd="D:\Engines\Polyglot"
+</pre>
+This prevents WinBoard looking for the logo in the Polyglot folder.
+</p>
+For Internet Chess Servers and Human users the logos should be in the "logos"
+sub-folder of the folder where WinBoard is installed.
+With /autoLogo=true, WinBoard would look for a logo file in that folder with
+the same name as the ICS, suffixed with .bmp (e.g. freechess.org.bmp)
+or the Human username 
+(specified by the /userName="..." option or taken from the system), 
+suffixed by .bmp, e.g. administrator.bmp)
+</p>
+
 <hr /><h2><a name="tag-C">[C] XBoard and WinBoard, bugs and problems</a></h2>
 
 <hr /><h3><a name="tag-C.1">[C.1] I can't build XBoard
index d9a98ef..c75cddc 100644 (file)
@@ -1,9 +1,15 @@
+
+if ZIPPY
+  ZPY = zippy.c
+else 
+  ZPY =
+endif 
+
 bin_PROGRAMS = xboard
-xboard_SOURCES = backend.c lists.c pgntags.c xedittags.c xhistory.c zippy.c childio.c moves.c uci.c xengineoutput.c xoptions.c gamelist.c parser.l xboard.c xgamelist.c book.c callback.c interface.c
+xboard_SOURCES = backend.c lists.c pgntags.c xedittags.c xhistory.c $(ZPY) childio.c moves.c uci.c xengineoutput.c xoptions.c gamelist.c parser.l xboard.c xgamelist.c book.c callback.c interface.c
 
 AM_CPPFLAGS=-DINFODIR='"$(infodir)"' @GTK_CFLAGS@
-AM_LDFLAGS= -lm @XAW_LIBS@  @GTK_LIBS@
-
+AM_LDFLAGS= -lm @X_PRE_LIBS@ @XAW_LIBS@ @X_LIBS@ @X_EXTRA_LIBS@ @GTK_LIBS@
 
 info_TEXINFOS = copyright.texi xboard.texi
 man6_MANS = xboard.man 
index 8f84481..83b3733 100644 (file)
--- a/backend.c
+++ b/backend.c
@@ -242,6 +242,7 @@ int whiteNPS, blackNPS; /* [HGM] nps: for easily making clocks aware of NPS
 VariantClass currentlyInitializedVariant; /* [HGM] variantswitch */
 int lastIndex = 0;      /* [HGM] autoinc: last game/position used in match mode */
 int opponentKibitzes;
+int lastSavedGame; /* [HGM] save: ID of game */
 
 /* States for ics_getting_history */
 #define H_FALSE 0
@@ -2108,9 +2109,11 @@ read_from_ics(isr, closure, data, count, error)
        for (i = 0; i < count; i++) {
            if (data[i] != NULLCHAR && data[i] != '\r')
              buf[buf_len++] = data[i];
-           if(buf_len >= 5 && buf[buf_len-5]=='\n' && buf[buf_len-4]=='\\' &&
-                               buf[buf_len-3]==' '  && buf[buf_len-2]==' '  && buf[buf_len-1]==' ')
+           if(buf_len >= 5 && buf[buf_len-5]=='\n' && buf[buf_len-4]=='\\' && 
+                               buf[buf_len-3]==' '  && buf[buf_len-2]==' '  && buf[buf_len-1]==' ') {
                buf_len -= 5; // [HGM] ICS: join continuation line of Lasker 2.2.3 server with previous
+               buf[buf_len++] = ' '; // replace by space (assumes ICS does not break lines within word)
+           }
        }
 
        buf[buf_len] = NULLCHAR;
@@ -3824,7 +3827,7 @@ ParseBoard12(string)
 #endif
     }
 
-    if (moveNum > 0 && !gotPremove) {
+    if (moveNum > 0 && !gotPremove && !appData.noGUI) {
        /* If move comes from a remote source, animate it.  If it
           isn't remote, it will have already been animated. */
        if (!pausing && !ics_user_moved && prevMove == moveNum - 1) {
@@ -3854,7 +3857,7 @@ ParseBoard12(string)
 
     /* Display opponents and material strengths */
     if (gameInfo.variant != VariantBughouse &&
-       gameInfo.variant != VariantCrazyhouse) {
+       gameInfo.variant != VariantCrazyhouse && !appData.noGUI) {
        if (tinyLayout || smallLayout) {
            if(gameInfo.variant == VariantNormal)
                sprintf(str, "%s(%d) %s(%d) {%d %d}",
@@ -3882,8 +3885,7 @@ ParseBoard12(string)
 
 
     /* Display the board */
-    if (!pausing) {
-
+    if (!pausing && !appData.noGUI) {
       if (appData.premove)
          if (!gotPremove ||
             ((gameMode == IcsPlayingWhite) && (WhiteOnMove(currentMove))) ||
@@ -5208,20 +5210,32 @@ FinishMove(moveType, fromX, fromY, toX, toY, promoChar)
            return 0;
        }
     }
-
+  
   /* [HGM] <popupFix> kludge to avoid having to know the exact promotion
      move type in caller when we know the move is a legal promotion */
   if(moveType == NormalMove && promoChar)
     moveType = PromoCharToMoveType(WhiteOnMove(currentMove), promoChar);
 
-  if(appData.debugMode)
+  if(appData.debugMode) 
     fprintf(debugFP, "moveType 1 = %d, promochar = %x\n", moveType, promoChar);
 
   /* [HGM] convert drag-and-drop piece drops to standard form */
-  if( fromX == BOARD_LEFT-2 || fromX == BOARD_RGHT+1)
+  if( fromX == BOARD_LEFT-2 || fromX == BOARD_RGHT+1) 
     {
       moveType = WhiteOnMove(currentMove) ? WhiteDrop : BlackDrop;
-      fromX = boards[currentMove][fromY][fromX];
+      if(appData.debugMode) 
+       fprintf(debugFP, "Drop move %d, curr=%d, x=%d,y=%d, p=%d\n", 
+               moveType, currentMove, fromX, fromY, boards[currentMove][fromY][fromX]);
+      //         fromX = boards[currentMove][fromY][fromX];
+      // holdings might not be sent yet in ICS play; we have to figure out which piece belongs here
+      if(fromX == 0) 
+       fromY = BOARD_HEIGHT-1 - fromY; // black holdings upside-down
+
+      fromX = fromX ? WhitePawn : BlackPawn; // first piece type in selected holdings
+
+      while(PieceToChar(fromX) == '.' || PieceToNumber(fromX) != fromY && fromX != (int) EmptySquare) 
+       fromX++; 
+
       fromY = DROP_RANK;
     }
 
@@ -5681,12 +5695,12 @@ FakeBookMove: // [HGM] book: we jump here to simulate machine moves after book h
          if(appData.autoKibitz && !appData.icsEngineAnalyze ) { /* [HGM] kibitz: send most-recent PV info to ICS */
                char buf[3*MSG_SIZ];
 
-               sprintf(buf, "kibitz !!! %+.2f/%d (%.2f sec, %.0f nodes, %1.0f knps) PV=%s\n",
+               sprintf(buf, "kibitz !!! %+.2f/%d (%.2f sec, %u nodes, %1.0f knps) PV=%s\n",
                        programStats.score / 100.,
                        programStats.depth,
                        programStats.time / 100.,
-                       u64ToDouble(programStats.nodes),
-                       u64ToDouble(programStats.nodes) / (10*abs(programStats.time) + 1.),
+                       (unsigned int)programStats.nodes,
+                       (unsigned int)programStats.nodes / (10*abs(programStats.time) + 1.),
                        programStats.movelist);
                SendToICS(buf);
          }
@@ -6160,6 +6174,10 @@ FakeBookMove: // [HGM] book: we jump here to simulate machine moves after book h
        cps->useSigint = FALSE;
        cps->useSigterm = FALSE;
     }
+    if (strncmp(message, "feature ", 8) == 0) { // [HGM] moved forward to pre-empt non-compliant commands
+      ParseFeatures(message+8, cps);
+      return; // [HGM] This return was missing, causing option features to be recognized as non-compliant commands!
+    }
 
     /* [HGM] Allow engine to set up a position. Don't ask me why one would
      * want this, I was asked to put it in, and obliged.
@@ -6264,9 +6282,6 @@ FakeBookMove: // [HGM] book: we jump here to simulate machine moves after book h
            return;
        }
     }
-    if (strncmp(message, "feature ", 8) == 0) {
-      ParseFeatures(message+8, cps);
-    }
     if (sscanf(message, "pong %d", &cps->lastPong) == 1) {
        return;
     }
@@ -7762,6 +7777,28 @@ void UserAdjudicationEvent( int result )
 }
 
 
+// [HGM] save: calculate checksum of game to make games easily identifiable
+int StringCheckSum(char *s)
+{
+       int i = 0;
+       if(s==NULL) return 0;
+       while(*s) i = i*259 + *s++;
+       return i;
+}
+
+int GameCheckSum()
+{
+       int i, sum=0;
+       for(i=backwardMostMove; i<forwardMostMove; i++) {
+               sum += pvInfoList[i].depth;
+               sum += StringCheckSum(parseList[i]);
+               sum += StringCheckSum(commentList[i]);
+               sum *= 261;
+       }
+       if(i>1 && sum==0) sum++; // make sure never zero for non-empty game
+       return sum + StringCheckSum(commentList[i]);
+} // end of save patch
+
 void
 GameEnds(result, resultDetails, whosays)
      ChessMove result;
@@ -7911,7 +7948,9 @@ GameEnds(result, resultDetails, whosays)
                DisplayMove(currentMove - 1);
 
            if (forwardMostMove != 0) {
-               if (gameMode != PlayFromGameFile && gameMode != EditGame) {
+               if (gameMode != PlayFromGameFile && gameMode != EditGame
+                   && lastSavedGame != GameCheckSum() // [HGM] save: suppress duplicates
+                                                               ) {
                    if (*appData.saveGameFile != NULLCHAR) {
                        SaveGameToFile(appData.saveGameFile, TRUE);
                    } else if (appData.autoSaveGames) {
@@ -8258,7 +8297,7 @@ Reset(redraw, init)
     DisplayTitle("");
     DisplayMessage("", "");
     HistorySet(parseList, backwardMostMove, forwardMostMove, currentMove-1);
-
+    lastSavedGame = 0; // [HGM] save: make sure next game counts as unsaved
     return;
 }
 
@@ -9653,8 +9692,10 @@ SaveGamePGN(f)
        linelen += numlen;
 
        /* Get move */
-       strcpy(move_buffer, parseList[i]); // [HGM] pgn: print move via buffer, so it can be edited
+       strcpy(move_buffer, SavePart(parseList[i])); // [HGM] pgn: print move via buffer, so it can be edited
        movelen = strlen(move_buffer); /* [HGM] pgn: line-break point before move */
+#if 0
+       // SavePart already does this!
         if( i >= 0 && appData.saveExtendedInfoInPGN && pvInfoList[i].depth > 0 ) {
                int p = movelen - 1;
                if(move_buffer[p] == ' ') p--;
@@ -9663,7 +9704,7 @@ SaveGamePGN(f)
                    if(p && move_buffer[p-1] == ' ') move_buffer[movelen=p-1] = 0;
                }
         }
-
+#endif
        /* Print move */
        blank = linelen > 0 && movelen > 0;
        if (linelen + (blank ? 1 : 0) + movelen > PGN_MAX_LINE) {
@@ -9748,6 +9789,7 @@ SaveGamePGN(f)
     }
 
     fclose(f);
+    lastSavedGame = GameCheckSum(); // [HGM] save: remember ID of last saved game to prevent double saving
     return TRUE;
 }
 
@@ -9824,6 +9866,7 @@ SaveGame(f, dummy, dummy2)
      char *dummy2;
 {
     if (gameMode == EditPosition) EditPositionDone();
+    lastSavedGame = GameCheckSum(); // [HGM] save: remember ID of last saved game to prevent double saving
     if (appData.oldSaveStyle)
       return SaveGameOldStyle(f);
     else
@@ -12433,9 +12476,27 @@ ParseOption(Option *opt, ChessProgramState *cps)
            opt->min = min;
            opt->max = max;
            opt->type = Spin;
-       } else if(p = strstr(opt->name, " -string ")) {
+       } else if((p = strstr(opt->name, " -slider "))) {
+           // for now -slider is a synonym for -spin, to already provide compatibility with future polyglots
+           if((n = sscanf(p, " -slider %d %d %d", &def, &min, &max)) < 3 ) return FALSE;
+           if(max < min) max = min; // enforce consistency
+           if(def < min) def = min;
+           if(def > max) def = max;
+           opt->value = def;
+           opt->min = min;
+           opt->max = max;
+           opt->type = Spin; // Slider;
+       } else if((p = strstr(opt->name, " -string "))) {
            opt->textValue = p+9;
            opt->type = TextBox;
+       } else if((p = strstr(opt->name, " -file "))) {
+           // for now -file is a synonym for -string, to already provide compatibility with future polyglots
+           opt->textValue = p+7;
+           opt->type = TextBox; // FileName;
+       } else if((p = strstr(opt->name, " -path "))) {
+           // for now -file is a synonym for -string, to already provide compatibility with future polyglots
+           opt->textValue = p+7;
+           opt->type = TextBox; // PathName;
        } else if(p = strstr(opt->name, " -check ")) {
            if(sscanf(p, " -check %d", &def) < 1) return FALSE;
            opt->value = (def != 0);
@@ -12443,6 +12504,7 @@ ParseOption(Option *opt, ChessProgramState *cps)
        } else if(p = strstr(opt->name, " -combo ")) {
            opt->textValue = (char*) (&cps->comboList[cps->comboCnt]); // cheat with pointer type
            cps->comboList[cps->comboCnt++] = q = p+8; // holds possible choices
+           if(*q == '*') cps->comboList[cps->comboCnt-1]++;
            opt->value = n = 0;
            while(q = StrStr(q, " /// ")) {
                n++; *q = 0;    // count choices, and null-terminate each of them
@@ -12548,7 +12610,11 @@ ParseFeatures(args, cps)
     if (BoolFeature(&p, "smp", &cps->maxCores, cps)) continue;
     if (StringFeature(&p, "egt", &cps->egtFormats, cps)) continue;
     if (StringFeature(&p, "option", &(cps->option[cps->nrOptions].name), cps)) {
-       ParseOption(&(cps->option[cps->nrOptions++]), cps); // [HGM] options: add option feature
+       if(!ParseOption(&(cps->option[cps->nrOptions++]), cps)) { // [HGM] options: add option feature
+           sprintf(buf, "rejected option %s\n", cps->option[--cps->nrOptions].name);
+           SendToProgram(buf, cps);
+           continue;
+       }
        if(cps->nrOptions >= MAX_OPTIONS) {
            cps->nrOptions--;
            sprintf(buf, "%s engine has too many options\n", cps->which);
index 81d0566..f02835f 100644 (file)
--- a/backend.h
+++ b/backend.h
@@ -255,7 +255,8 @@ char * GameListLineFull P(( int, GameInfo *));
 extern char* StripHighlight P((char *));  /* returns static data */
 extern char* StripHighlightAndTitle P((char *));  /* returns static data */
 
-typedef enum { CheckBox, ComboBox, TextBox, Button, Spin, SaveButton } Control;
+typedef enum { CheckBox, ComboBox, TextBox, Button, Spin, 
+                  SaveButton, FileName, PathName, Slider, Message } Control;
 
 typedef struct _OPT {   // [HGM] options: descriptor of UCI-style option
     int value;          // current setting, starts as default
@@ -328,7 +329,7 @@ typedef struct _CPS {
     char egtFormats[MSG_SIZ];     /* [HGM] EGT: supported tablebase formats */
     int bookSuspend;  /* [HGM] book: go was deferred because of book hit    */
     int nrOptions;    /* [HGM] options: remembered option="..." features    */
-#define MAX_OPTIONS 100
+#define MAX_OPTIONS 200
     Option option[MAX_OPTIONS];
     int comboCnt;
     char *comboList[20*MAX_OPTIONS];
index 1e1e01c..7c761ed 100644 (file)
@@ -97,7 +97,7 @@ AC_HEADER_TIME
 AC_HEADER_SYS_WAIT
 AC_HEADER_DIRENT
 AC_TYPE_SIGNAL
-AC_CHECK_HEADERS(stropts.h sys/time.h string.h unistd.h sys/systeminfo.h)
+AC_CHECK_HEADERS(stropts.h sys/time.h string.h unistd.h sys/systeminfo.h malloc.h)
 AC_CHECK_HEADERS(fcntl.h sys/fcntl.h, break)
 AC_CHECK_HEADERS(sys/socket.h lan/socket.h, break)
 AC_CHECK_HEADER(stddef.h, [], AC_DEFINE(X_WCHAR, 1))
@@ -332,14 +332,19 @@ dnl| USE_PTYS=1
       CONF_CFLAGS="-fwritable-strings"
     fi
   ;;
+
+dnl| add some libs for OS X
+  *-apple-* )
+    X_LIBS="$X_LIBS -lX11 -lXt"    
+  ;;
 esac
 
-AC_ARG_ENABLE(xpm,
-[  --enable-xpm            libXpm will be used if found (default)
-  --disable-xpm           libXpm will not be used],
-[enable_xpm="$enableval"], [enable_xpm="yes"])
+AC_ARG_ENABLE( [xpm],
+               [AS_HELP_STRING([--enable-xpm],[libXpm will be used if found (default)])],
+               [enable_xpm="$enableval"],
+               [enable_xpm="yes"])
 
-if test "$enable_xpm" = "yes"; then
+if test x"$enable_xpm" != "xno"; then
   save_cflags="$CFLAGS"
   CFLAGS="$CFLAGS $X_CFLAGS"
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
@@ -361,48 +366,68 @@ AC_SUBST(CONF_CFLAGS)
 AC_SUBST(CONF_LDFLAGS)
 
 AC_MSG_CHECKING(whether ptys or pipes should be used)
-AC_ARG_ENABLE(ptys, 
-[  --enable-ptys           force use of pseudo-ttys with child processes
-  --disable-ptys          force use of pipes with child processes],
+AC_ARG_ENABLE( [ptys], 
+              [AS_HELP_STRING([--enable-ptys],[force use of pseudo-ttys with child processes])],
 [if test "$enableval" = yes; then
   USE_PTYS=1
+  enable_ptys="ptys"
   AC_MSG_RESULT([ptys (user override)])
 fi
 if test "$enableval" = no; then
   USE_PTYS=0
+  enable_ptys="pipes"
   AC_MSG_RESULT([pipes (user override)])
 fi],
 [if test "$USE_PTYS" = 1; then
   AC_MSG_RESULT(ptys)
+  enable_ptys="ptys"
 else
   AC_MSG_RESULT(pipes)
+  enable_ptys="pipes"
 fi])
 AC_DEFINE_UNQUOTED(USE_PTYS, $USE_PTYS)
 
 
 dnl | define not to build zippy as a default, so that autoheader is happy
 AC_DEFINE(ZIPPY, 0,[should zippy be enabled])
-AC_ARG_ENABLE(zippy, 
-[  --enable-zippy          support interfacing a chess program to ICS (default)
-  --disable-zippy         do not support interfacing a chess program to ICS],
-[enable_zippy="$enableval"], [enable_zippy="yes"])
-if test "$enable_zippy" = yes; then
+AC_ARG_ENABLE( [zippy], 
+              [AS_HELP_STRING([--enable-zippy],[support interfacing a chess program to ICS (default)])],
+              [], 
+              [enable_zippy="yes"])
+
+if test x"$enable_zippy" != xno; then
   AC_DEFINE(ZIPPY, 1,[should zippy be enabled])
-  ZIPPY_O=zippy.o
-  ZIPPY_H=zippy.h
 fi
-AC_SUBST(ZIPPY_O)  
-AC_SUBST(ZIPPY_H)  
+AM_CONDITIONAL([ZIPPY], [test x$enable_zippy != xno])
+
 
 AC_ARG_ENABLE(sigint, 
-[  --enable-sigint         sending SIGINT (^C) wakes up GNU Chess (default)
-  --disable-sigint        typing a command wakes up GNU Chess],
+[AS_HELP_STRING([--enable-sigint],[sending SIGINT (^C) wakes up GNU Chess (default)])],
 [if test "$enableval" = yes; then
   AC_DEFINE(ATTENTION, 1)
-fi],
-[AC_DEFINE(ATTENTION, 1)])
+fi
+enable_sigint=$enableval
+],
+[enable_sigint="yes"
+AC_DEFINE(ATTENTION, 1)])
+
 
 AC_CONFIG_FILES([Makefile cmail])
 AC_CONFIG_COMMANDS([test-stamp-h],[test -z "$CONFIG_HEADERS" || date > stamp-h])
 AC_CONFIG_COMMANDS([chmod-cmail],[chmod 755 cmail])
 AC_OUTPUT
+
+dnl
+dnl Output a summary
+dnl
+echo ""
+echo " Configurations summary:"
+echo ""
+echo "        prefix:          $prefix"
+echo ""
+echo "        Xaw3d:           $with_xaw3d"
+echo ""
+echo "        xpm:             $enable_xpm"
+echo "        ptys:            $enable_ptys"
+echo "        zippy:           $enable_zippy"
+echo "        sigint:          $enable_sigint"
index 8b401ae..8ff98ce 100644 (file)
@@ -6,13 +6,12 @@
 <body>\r
 <hr noshade size="2">\r
 <h1>Chess Engine Communication Protocol</h1>\r
-<h1><font color=green>Discussion Proposal</font></h1>\r
 <h2><a href="http://www.tim-mann.org/">Tim Mann</a> &amp; <a href="http://home.hccnet.nl/h.g.muller/winboardF.html">H.G.Muller</a></h2>\r
 <p>\r
-Version 2; implemented in xboard/WinBoard 4.2.1 and later.<br>\r
+Version 2; implemented in xboard/WinBoard 4.2.1 and later. (Sept 3, 2009)<br>\r
 Changes since version 1 are indicated in <font color=red>red</font>.<br>\r
 Changes for WinBoard 4.3.xx are indicated in <font color=green>green</font>.<br>\r
-Proposed changes, implemented only in alpha versions are indicated in <font color=blue>blue</font>.\r
+Changes for WinBoard 4.4.xx are indicated in <font color=blue>blue</font>.\r
 <hr noshade size="2">\r
 \r
 <ul>\r
@@ -536,6 +535,8 @@ or by having no legal moves (ICC)</font>
 <td><font color=green>Pieces wrap around between side edges, like board is a cylinder</font>\r
 <tr align="left"><th><font color=blue>super</font>\r
 <td><font color=blue>Superchess: a shuffle variant with 4 fairy pieces on 8x8 board</font>\r
+<tr align="left"><th><font color=blue>great</font>\r
+<td><font color=blue>Great Shatranj: sliders are replaced by corresponding short-range pieces on a 10x8 board</font>\r
 <tr align="left"><th>unknown<td>Unknown variant (not supported)\r
 </table>\r
 <p>\r
@@ -1211,6 +1212,10 @@ protocol version by rejecting some features that are defined in that
 version; however, you should realize that engine authors are likely to\r
 code for xboard and may not be prepared to have a feature that they\r
 depend on be rejected.\r
+<font color=blue>If the GUI rejects an option feature because of the\r
+syntax of the value, it should print the value string with the\r
+"rejected" command, e.g. "rejected option nonsense" in response\r
+to receiving feature option="nonsense".</font>\r
 </p>\r
 \r
 <p>\r
@@ -1452,14 +1457,19 @@ and will not send any "egtpath" commands to inform the engine about their wherea
 </font>\r
 <dd><font color=blue>\r
 This feature is used by the engine to define an option command to appear in a GUI menu,\r
-so that the user can change the corresponding setting of the engine through the GUI.\r
+so that the user can change the corresponding setting of the engine through the GUI interactively.\r
 The string describes the option by defining a name, type, current value and (sometimes) the acceptable value range.\r
-There are six different options types, each requiring a slighly different syntax of the defining string:\r
+Unlike other features, option features are accumulated by the GUI, \r
+and the GUI must be able to add a new option to the list at any time,\r
+even after having received feature done=1.\r
+There are ten different options types, each requiring a slighly different syntax of the defining string:\r
 <br>\r
 feature option="NAME -button"\r
 <br>\r
 feature option="NAME -save"\r
 <br>\r
+feature option="NAME -reset"\r
+<br>\r
 feature option="NAME -check VALUE"\r
 <br>\r
 feature option="NAME -string VALUE"\r
@@ -1468,11 +1478,34 @@ feature option="NAME -spin VALUE MIN MAX"
 <br>\r
 feature option="NAME -combo CHOICE1 /// CHOICE2 ..."\r
 <br>\r
+feature option="NAME -slider VALUE MIN MAX"\r
+<br>\r
+feature option="NAME -file VALUE"\r
+<br>\r
+feature option="NAME -path VALUE"\r
+<br>\r
 NAME is an arbitrary alphanumeric string which can contain spaces; \r
-the oter words in capitals would be replaced by the current (default) setting of the option,\r
+the other words in capitals would be replaced by the current (default) setting of the option,\r
+(a character string for -string options, a decimal number for -spin and -check options,\r
+were the latter uses 1=checked, 0=unchecked),\r
 the minimum or maximum value of numeric (-spin) options, \r
 or arbitrary text labels (for -combo option).\r
-In the latter cae, the current value will be preceded by an asterisk.\r
+In the latter case, the current value will be preceded by an asterisk.\r
+The -file and -path options are similar to -string, but can be used to inform the GUI that\r
+the text represents a file name or folder name respectively, \r
+so the GUI dialog could add the appropriate browse button to the text-edit field.\r
+Similarly, a -slider option is like a -spin, but the GUI might make a different\r
+graphical representation for it.\r
+A -save option is like a -button, and defines an immediate command to be sent by the engine.\r
+With -save the GUI will make sure all current option settings are flushed to the engine\r
+before it sends this command.\r
+A -reset option is like a -button, but use of it purges the list of options before sending \r
+the corresponding option command to the engine.\r
+This enables the engine to completely redefine its options or their current settings,\r
+by sending a new set of option feature commands to the GUI, \r
+terminated by feature done=1.\r
+(The effect of sending an option feature for an option with the same name as was defined before, \r
+without first receiving a -reset option command, is undefined.)\r
 </font>\r
 \r
 <dt><font color=red>\r
@@ -1576,15 +1609,26 @@ Machines mode, and the PGN save file as required.
 will be taken by WinBoard as an unconditional refusal of the engine to play on,\r
 which might cause you to forfeit if the game was in fact not over.\r
 This command should thus not be used to offer draws, accept draws,\r
-or make draw-by-rule claims that might not be valid \r
-(because it is not your move, and the opponent already moved without you knowing it yet).\r
-For offering and claiming draws, "offer draw" should be used.</font>\r
+or make draw-by-rule claims that are not yet valid in the current position\r
+(but will be after you move).\r
+For offering and claiming such draws, "offer draw" should be used.</font>\r
 <p>\r
+<font color=blue>\r
+Note that (in accordance with FIDE rules) only KK, KNK, KBK and KBKB with all bishops on the\r
+same color can be claimed as draws on the basis of insufficient mating material.\r
+The end-games KNNK, KBKN, KNKN and KBKB with unlike bishops do have mate positions,\r
+and cannot be claimed.\r
+Complex draws based on locked Pawn chains will not be recognized as draws by most interfaces,\r
+so do not claim in such positions, but just offer a draw or play on.\r
+</font>\r
+<p>\r
+<font color=blue>\r
 Note to GUI programmers: RESULT commands that the engine sends immediately after its move\r
 might be detected by the GUI only after the opponent has moved, because of communication\r
 and scheduling delays, no matter how fast the engine sent it.\r
 Any judgement of the validity of RESULT claims based on te "current" board position\r
 will have to account for this uncertainty.\r
+</font>\r
 </p>\r
 \r
 <dt><strong>resign</strong>\r
@@ -1593,6 +1637,8 @@ Alternatively, it can use the "RESULT {comment}" command if the string
 "resign" is included in the comment; for example "0-1 {White\r
 resigns}".  xboard relays the resignation to the user, the ICS, the\r
 other engine in Two Machines mode, and the PGN save file as required.\r
+<font color=blue>Note that many interfaces work more smoothly if you resign <em>before</em>\r
+you move.</font>\r
 <p>\r
 \r
 <dt><strong>offer draw</strong>\r
@@ -1604,7 +1650,7 @@ Machine Black, or Two Machines mode, the offer is considered valid
 until your engine has made two more moves.\r
 <font color=green>This command must also be used to accept a draw offer.\r
 Do not use the 1/2-1/2 command for that, as the offer might be no longer valid,\r
-in which case a refusal to play on implied by the RESULT command would make you forfeit the game.\r
+in which case a refusal to play on implied by the RESULT command might make you forfeit the game.\r
 "offer draw" should also be used to claim 50-move and 3-fold-repetition draws\r
 that will occur <em>after</em> your move, by sending it <em>before</em> making the move.\r
 WinBoard will grant draw offers without the opponent having any say in\r
old mode 100644 (file)
new mode 100755 (executable)
diff --git a/uci.c b/uci.c
index f02507f..d0f76c4 100644 (file)
--- a/uci.c
+++ b/uci.c
  */
 #include <stdio.h>
 #include <stdlib.h>
-#include <malloc.h>
+
+#if HAVE_MALLOC_H
+  #include <malloc.h>
+#endif
 
 #ifdef WIN32
 // [HGM] this was probably a Windows-specific constant. Needs to be defined here now I
index 7901e31..c91698b 100644 (file)
@@ -1,7 +1,7 @@
 [Project]\r
 FileName=WB4Jaws.dev\r
 Name=Winboard\r
-UnitCount=22\r
+UnitCount=23\r
 Type=0\r
 Ver=1\r
 ObjFiles=\r
@@ -248,3 +248,13 @@ Priority=1000
 OverrideBuildCmd=0\r
 BuildCmd=\r
 \r
+[Unit23]\r
+FileName=wsettings.c\r
+CompileCpp=0\r
+Folder=Winboard\r
+Compile=1\r
+Link=1\r
+Priority=1000\r
+OverrideBuildCmd=0\r
+BuildCmd=\r
+\r
index 39b89f3..3b65063 100644 (file)
@@ -1,7 +1,7 @@
 [Project]\r
 FileName=Winboard.dev\r
 Name=Winboard\r
-UnitCount=22\r
+UnitCount=23\r
 Type=0\r
 Ver=1\r
 ObjFiles=\r
@@ -248,3 +248,13 @@ Priority=1000
 OverrideBuildCmd=0\r
 BuildCmd=\r
 \r
+[Unit23]\r
+FileName=wsettings.c\r
+CompileCpp=0\r
+Folder=Winboard\r
+Compile=1\r
+Link=1\r
+Priority=1000\r
+OverrideBuildCmd=0\r
+BuildCmd=\r
+\r
index c9e4209..7757ece 100644 (file)
 #define PACKAGE_NAME "WinBoard"\r
 \r
 /* Define to the full name and version of this package. */\r
-#define PACKAGE_STRING "WinBoard 4.4.0.beta1"\r
+#define PACKAGE_STRING "WinBoard 4.4.0.beta2"\r
 \r
 /* Define to the one symbol short name of this package. */\r
 #define PACKAGE_TARNAME "winboard"\r
 \r
 /* Define to the version of this package. */\r
-#define PACKAGE_VERSION "4.4.0.beta1"\r
+#define PACKAGE_VERSION "4.4.0.beta2"\r
 \r
 #define PTY_ITERATION\r
 \r
diff --git a/winboard/help/contents.hhc b/winboard/help/contents.hhc
new file mode 100644 (file)
index 0000000..26885f3
--- /dev/null
@@ -0,0 +1,108 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">\r
+<HTML>\r
+<HEAD>\r
+<meta name="GENERATOR" content="Microsoft&reg; HTML Help Workshop 4.1">\r
+<!-- Sitemap 1.0 -->\r
+</HEAD><BODY>\r
+<OBJECT type="text/site properties">\r
+       <param name="Auto Generated" value="Yes">\r
+</OBJECT>\r
+<UL>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Name" value="WinBoard: Chessboard for Windows">\r
+               <param name="Local" value="html/01.htm">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Name" value="Menus">\r
+               <param name="Local" value="html/02.htm">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Name" value="File Menu">\r
+               <param name="Local" value="html/03.htm">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Name" value="Mode Menu">\r
+               <param name="Local" value="html/04.htm">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Name" value="Action Menu">\r
+               <param name="Local" value="html/05.htm">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Name" value="Step Menu">\r
+               <param name="Local" value="html/06.htm">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Name" value="Options Menu">\r
+               <param name="Local" value="html/07.htm">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Name" value="Help Menu">\r
+               <param name="Local" value="html/08.htm">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Name" value="ICS Interaction Context Menu">\r
+               <param name="Local" value="html/09.htm">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Name" value="Buttons">\r
+               <param name="Local" value="html/10.htm">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Name" value="Command Line Options">\r
+               <param name="Local" value="html/11.htm">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Name" value="Chess Engine Options">\r
+               <param name="Local" value="html/12.htm">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Name" value="UCI Engine Support">\r
+               <param name="Local" value="html/13.htm">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Name" value="Internet Chess Server Options">\r
+               <param name="Local" value="html/14.htm">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Name" value="Load and Save Options">\r
+               <param name="Local" value="html/15.htm">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Name" value="Adjudication Options">\r
+               <param name="Local" value="html/17.htm">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Name" value="Other Options">\r
+               <param name="Local" value="html/18.htm">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Name" value="Initialization Files">\r
+               <param name="Local" value="html/19.htm">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Name" value="Installing Chess Engines">\r
+               <param name="Local" value="html/20.htm">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Name" value="Firewalls">\r
+               <param name="Local" value="html/21.htm">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Name" value="Limitations and Non-Limitations">\r
+               <param name="Local" value="html/22.htm">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Name" value="Authors and Contributors">\r
+               <param name="Local" value="html/23.htm">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Name" value="Copyright">\r
+               <param name="Local" value="html/24.htm">\r
+               </OBJECT>\r
+</UL>\r
+</BODY></HTML>\r
diff --git a/winboard/help/html/01.htm b/winboard/help/html/01.htm
new file mode 100644 (file)
index 0000000..8609cb8
--- /dev/null
@@ -0,0 +1,73 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">\r
+<HTML>\r
+<HEAD>\r
+<META HTTP-EQUIV="Content-Type" Content="text/html; charset=Windows-1252">\r
+<TITLE>Contents</TITLE>\r
+</HEAD>\r
+\r
+<BODY BGCOLOR="#FFFFFF" TEXT="#000000">\r
+\r
+\r
+\r
+<H1><A NAME="contents"></A><I>WinBoard</I>: Chessboard for Windows</H1>\r
+\r
+<P><B><font color="#008000">An updated description with the release of version 4.4.0.</font></B></P>\r
+\r
+<P><B><font color="#008000">“For the ultimate WinBoard Experience”</font></B></P>\r
+\r
+<P><font color="#ff0000">New features since WinBoard 4.2.7 that are implemented in Alessandro ScottiÂ’s Winboard_x are highlighted in red.</font> <font color="#008000">New features in the WinBoard 4.3.xx series by H.G. Muller are highlighted in green,</font> <font color="#3333ff">that in the unified 4.4 series in blue.</font></P>\r
+\r
+\r
+\r
+<P><B><A NAME="description"></A>Description</B></P>\r
+\r
+<P><I>WinBoard</I> is a graphical user interface for chess. It displays a chessboard on the screen, accepts moves made with the mouse, and loads and saves game files in standard chess notation. WinBoard serves as a front-end for many different services, including:\r
+\r
+<UL>\r
+       <LI><B><I>Chess engines</I></B> that run on your PC. You can play a game against an engine, set up arbitrary positions, force variations, or watch a game between two engines. <I><font color="#008000">Fairy-Max</font></I> is supplied with WinBoard <font color="#008000">4.3.14,</font> and over 100 other free chess engines are available separately. Of these, Crafty is the most popular. See <A HREF="20.htm">Installing Chess Engines</A> for instructions on installing additional chess engines.<BR><BR></LI>\r
+\r
+       <LI><B><I>Chess servers</I> </B>on the Internet. You can play against other Internet Chess Server (ICS) users, observe games they are playing, review games in the ICS libraries, chat, <font color="#3333ff">analyze observed games with a chess program</font>, and more. WinBoard can also be used to run an automated computer player on the ICS, but this feature is for advanced users only and is subject to some caveats; see the separate file zippy.README for information.<BR><BR></LI>\r
+\r
+       <LI><B><I>The Web</I></B> and your own saved games. You can use WinBoard as a helper application to view files in your Web browser or the Explorer. You can use it to keep track of email postal games, browse games off the net, or review games you have saved.</LI>\r
+</UL>\r
+\r
+\r
+\r
+<P><B><A NAME="gettingstarted"></A>Getting Started</B></P>\r
+\r
+<P>WinBoard starts up in one of three major modes: chess engine mode, ICS client mode, or game viewer mode. You cannot change modes while WinBoard is running, but you can access all the game viewer features directly from the other two modes. Also, you can start WinBoard several times to get multiple chessboard windows running in any combination of modes.</P>\r
+\r
+<P>You will usually run WinBoard by choosing an item from the Windows Start menu that runs it in the mode you want. If you just double-click on WinBoard.exe, you get a startup dialog asking which mode you want. If you choose chess engine mode, you can then select from the installed engines; if you choose ICS client mode, you can then select from a list of known chess servers. More advanced users can <A HREF="16.htm#icsnames">customize</A> these lists or type in WinBoard <A HREF="11.htm">command line options</A> directly.</P>\r
+\r
+\r
+\r
+<P>After starting WinBoard, you can make <A NAME="move"></A>moves in several different ways. To move by dragging, press the left mouse button while the cursor is on one of your pieces, move the cursor to another square, and release the button. You can also move by clicking the left mouse button once (press and release) over one of your pieces, moving the cursor to another square, and clicking again. You drop new pieces on the board (when applicable) by selecting from a context menu. Press the right mouse button over a square to bring up the menu; no menu will come up in modes where dropping a new piece is not permitted. You can also make moves by typing them in standard algebraic chess notation. Either a dialog box will pop up for you to type into, or in ICS mode, your typing will be redirected into the ICS interaction window.</P>\r
+\r
+\r
+\r
+<P>When WinBoard<I> </I>is iconized, its <A NAME="icon"></A>icon is a white knight if it is White's turn to move, a black knight if it is Black's turn.</P>\r
+\r
+<P><B>Additional Information</B></P>\r
+\r
+<P><A HREF="02.htm">Menus</A></P>\r
+\r
+<P><A HREF="10.htm">Shortcut Buttons</A></P>\r
+\r
+<P><A HREF="11.htm">Command Line Options</A></P>\r
+\r
+<P><A HREF="19.htm">Initialization Files</A></P>\r
+\r
+<P><A HREF="20.htm">Installing Chess Engines</A></P>\r
+\r
+<P><A HREF="21.htm">Firewalls</A></P>\r
+\r
+<P><A HREF="22.htm">Limitations</A></P>\r
+\r
+<P><A HREF="23.htm">Authors</A></P>\r
+\r
+<P><A HREF="24.htm">Copyright</A></P>\r
+\r
+<P>Frequently Asked Questions</P>\r
+\r
+</BODY>\r
+</HTML>\r
diff --git a/winboard/help/html/02.htm b/winboard/help/html/02.htm
new file mode 100644 (file)
index 0000000..2b1384a
--- /dev/null
@@ -0,0 +1,29 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">\r
+<HTML>\r
+<HEAD>\r
+<META HTTP-EQUIV="Content-Type" Content="text/html; charset=Windows-1252">\r
+<TITLE>Menus</TITLE>\r
+</HEAD>\r
+\r
+<BODY BGCOLOR="#FFFFFF" TEXT="#000000">\r
+\r
+\r
+\r
+<P><B><A NAME="menus"></A>MENUS</B></P>\r
+\r
+<P><A HREF="03.htm">File Menu</A></P>\r
+\r
+<P><A HREF="04.htm">Mode Menu</A></P>\r
+\r
+<P><A HREF="05.htm">Action Menu</A></P>\r
+\r
+<P><A HREF="06.htm">Step Menu</A></P>\r
+\r
+<P><A HREF="07.htm">Options Menu</A></P>\r
+\r
+<P><A HREF="08.htm">Help Menu</A></P>\r
+\r
+<P><A HREF="09.htm">ICS Interaction Context Menu</A></P>\r
+\r
+</BODY>\r
+</HTML>\r
diff --git a/winboard/help/html/03.htm b/winboard/help/html/03.htm
new file mode 100644 (file)
index 0000000..87b0c8a
--- /dev/null
@@ -0,0 +1,135 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">\r
+<HTML>\r
+<HEAD>\r
+<META HTTP-EQUIV="Content-Type" Content="text/html; charset=Windows-1252">\r
+<TITLE>File Menu</TITLE>\r
+</HEAD>\r
+\r
+<BODY BGCOLOR="#FFFFFF" TEXT="#000000">\r
+\r
+\r
+\r
+<P><B><A NAME="filemenu"></A>File Menu</B></P>\r
+\r
+\r
+\r
+<P><B><A NAME="newgame"></A><font color="#ff0000">New Game</font> <font color="#ff0000">(former</font> Reset<font color="#ff0000">)</font></B></P>\r
+\r
+<P>Resets WinBoard and the chess engine (if any) to the beginning of a new chess game. In Internet Chess Server mode, clears the current state of WinBoard, then resynchronizes with ICS by sending a <B>refresh </B>command. If you want to stop playing, observing, or examining a game on ICS, use an appropriate command from the <A HREF="05.htm">Action</A> menu, not <font color="#ff0000">New Game</font>.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="newshufflegame"></A><font color="#008000">New Shuffle Game</font></B></P>\r
+\r
+<P><font color="#ff0000">Brings you to a dialog box where you can enter the number of an opening setup for shuffle variants like FRC, or ask for a random number. After pressing OK, a new game is set up, using this position. The chosen position will continue to be used on every subsequent Â“New Game”,</font> <font color="#008000">even if you are playing a variant that normally is not shuffled, until you select a new variant through the Â“New Variant…” menu.</font> <font color="#ff0000">If you enter Â“-1” for the position number,  new random number is drawn before every game.</font></P>\r
+\r
+<P><font color="#008000">The type of shuffling that is done in reaction to a given position number obeys restrictions that depend on the selected variant. In variants that allow castling, Kings remain on the central files, Rooks in the corners. In games with FRC-style castlings, the King starts between the Rooks, but apart from that they could be anywhere. In games without castling, there are no restrictions on King and Rook placement. Pairs of color-bound pieces (such as Bishops) will be placed on oppositely colored squares. In ICS mode this feature has no effect, as the ICS determines the starting position.</font></P>\r
+\r
+\r
+\r
+<P><B><A NAME="newvariant"></A><font color="#008000">New Variant</font></B></P>\r
+\r
+<P><font color="#008000">Select a new variant. There are controls to enter a board width, board height and holdings size, but normally you leave them at Â‘-1Â’, which means the default value for the selected variant will be used (e.g. 8x8 for normal Chess, 9x10 for xiangqi, 10x8 for capablanca, holdings for 5 pieces in crazyhouse). You can set a deviating value for each of the three parameters (e.g. to play a crazyhouse version of xiangqi or capablanca you would set the holdings to 6 or 7). If the board width deviates from the default, the game will start with an empty board.</font></P>\r
+\r
+<P><font color="#008000">The variant will remain in force until you select a new one; i.e. subsequent Â“New Game” commands will start a new game of the same variant. In ICS mode this command has no effect, as the ICS determines which variant will be played.</font></P>\r
+\r
+\r
+\r
+<P><B><A NAME="loadgame"></A>Load Game</B></P>\r
+\r
+<P>Plays a game from a record file. A popup dialog prompts you for the filename. If the file contains more than one game, a second popup dialog displays a list of games (with information drawn from their PGN tags, if any), and you can select the one you want.</P>\r
+\r
+<P>The game file parser will accept PGN (portable game notation), or in fact almost any file that contains moves in algebraic notation. Notation of the form <I>P@f7</I> is accepted for piece-drops in bughouse games; this is a nonstandard extension to PGN. If the file includes a PGN position (FEN tag), or a WinBoard position diagram bracketed by "[--" and "--]" before the first move, the game starts from that position. Text enclosed in parentheses, square brackets, or curly braces is assumed to be commentary and is displayed in a pop-up window. Any other text in the file is ignored. PGN variations (enclosed in parentheses) are treated as comments; WinBoard is not able to walk variation trees. The nonstandard PGN tag <CODE>[Variant "varname"]</CODE> functions similarly to the <A HREF="18.htm#variant">variant</A> command-line option, allowing games in certain chess variants to be loaded. There is also a heuristic to recognize chess variants from the <CODE>Event</CODE> tag, by looking for the strings that the Internet Chess Servers put there when saving variant ("wild") games.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="loadnextgame"></A>Load Next Game</B></P>\r
+\r
+<P>Loads the next game from the last game record file you loaded.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="loadpreviousgame"></A>Load Previous Game</B></P>\r
+\r
+<P>Loads the previous game from the last game record file you loaded. Not available if the last game was loaded from a pipe.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="reloadsamegame"></A>Reload Same Game</B></P>\r
+\r
+<P>Reloads the last game you loaded. Not available if the last game was loaded from a pipe.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="savegame"></A>Save Game</B></P>\r
+\r
+<P>Appends a record of the current game to a file. A popup dialog prompts you for the filename. If the game did not begin with the standard starting position, the game file includes the starting position used. Game files are saved in the PGN (portable game notation) format, unless the <A HREF="15.htm#oldsavestyle">oldSaveStyle</A> option is True, in which case they are saved in an older format that is specific to WinBoard. Both formats are human-readable, and both can be read back by the Load Game command. Notation of the form <I>P@f7</I> is generated for piece-drops in bughouse games; this is a nonstandard extension to PGN.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="copygametoclipboard"></A>Copy Game To Clipboard</B></P>\r
+\r
+<P>Copies the record of the current game to the Windows clipboard in PGN (portable game notation) format.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="pastegamefromclipboard"></A>Paste Game From Clipboard</B></P>\r
+\r
+<P>Plays a game from the Windows clipboard. See <A HREF="#loadgame">Load Game</A> for a discussion of game file format and parser behavior.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="loadposition"></A>Load Position</B></P>\r
+\r
+<P>Sets up a position from a position file. A popup dialog prompts you for the filename. Position files must be in FEN (Forsythe-Edwards notation), or in the format that the <U>Save Position</U> command writes when <A HREF="15.htm#oldsavestyle">oldSaveStyle</A> is turned on. <font color="#008000">Note that many variants require an extension of the original FEN standard. WinBoard tries to be as universal as possible in understanding FENs when different standards are raound, but has to make a choice when writing them. In FRC is uses Shredder-FEN (Haha castling notation) , but it understands KQkq as the outermost Rook, so it also reads X-FEN. In Crazyhouse / Bughouse it appends the holdings immediately behind the board info between brackets [], but on input it also understands bFEN (which puts it behind a slash / as if it were an extra board rank). It uses a tilde ~ behind a piece to indicate it is really a promoted Pawn (like bFEN). In Shogi the holdings are printed like in Crazyhouse, but promoted pieces are represented by a plus sign + before the letter of the original piece. Letters used for the pieces can be set with the /pieceToCharTable command-line option.</font></P>\r
+\r
+\r
+\r
+<P><B><A NAME="loadnextposition"></A>Load Next Position</B></P>\r
+\r
+<P>Loads the next position from the last position file you loaded.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="loadpreviousposition"></A>Load Previous Position</B></P>\r
+\r
+<P>Loads the previous position from the last position file you loaded. Not available if the last position was loaded from a pipe.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="reloadsameposition"></A>Reload Same Position</B></P>\r
+\r
+<P>Reloads the last position you loaded. Not available if the last position was loaded from a pipe.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="saveposition"></A>Save Position</B></P>\r
+\r
+<P>Appends a diagram of the current position to a file. A popup dialog prompts you for the filename. Positions are saved in FEN (Forsythe-Edwards notation) format, unless the <A HREF="15.htm#oldsavestyle">oldSaveStyle</A> option is True, in which case they are saved in an older, human-readable format that is specific to WinBoard<I>.</I> Both formats can be read back by the Load Position command; however, currently Load Position can load only the first position in a file.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="save diagram"></A><font color="#008000">Save Diagram</font></B></P>\r
+\r
+<P><font color="#008000">Writes the current board display as a bitmap file. With this command you can use WinBoard as a diagram generator.</font></P>\r
+\r
+\r
+\r
+<P><B><A NAME="copypositiontoclipboard"></A>Copy Position To Clipboard</B></P>\r
+\r
+<P>Places a diagram of the current position (in Forsythe-Edwards notation) into the Windows clipboard.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="pastepositionfromclipboard"></A>Paste Position From Clipboard</B></P>\r
+\r
+<P>Sets up a position from the Windows clipboard. Position must be in FEN (Forsythe-Edwards notation). Puts WinBoard into <A HREF="04.htm#editgame">Edit Game</A> mode if it was not there already.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="exit"></A>Exit</B></P>\r
+\r
+<P>Exits from WinBoard.</P>\r
+\r
+</BODY>\r
+</HTML>\r
diff --git a/winboard/help/html/04.htm b/winboard/help/html/04.htm
new file mode 100644 (file)
index 0000000..f448732
--- /dev/null
@@ -0,0 +1,169 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">\r
+<HTML>\r
+<HEAD>\r
+<META HTTP-EQUIV="Content-Type" Content="text/html; charset=Windows-1252">\r
+<TITLE>Mode Menu</TITLE>\r
+</HEAD>\r
+\r
+<BODY BGCOLOR="#FFFFFF" TEXT="#000000">\r
+\r
+\r
+\r
+<P><B><A NAME="modemenu"></A>Mode Menu</B></P>\r
+\r
+\r
+\r
+<P><B><A NAME="machinewhite"></A>Machine White</B></P>\r
+\r
+<P>Forces the chess engine to play white.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="machineblack"></A>Machine Black</B></P>\r
+\r
+<P>Forces the chess engine to play black.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="twomachines"></A>Two Machines</B></P>\r
+\r
+<P>Starts a game between two chess engines.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="machine both"></A><font color="#008000">Machine Both</font></B></P>\r
+\r
+<P><font color="#008000">A single chess engine plays itself. Mainly useful for pseudo-engines, that are in fact communication links to another machine, where you want to observe a game that is being played. (E.g. the gothic-chess.com server). This command is not implemented yet (version 4.3.14).</font></P>\r
+\r
+\r
+\r
+<P><B><A NAME="analysismode"></A>Analysis Mode</B></P>\r
+\r
+<P>In this mode, you can make moves for both sides on the board. After each move, the chess engine will think about possible replies and display its analysis in a separate window. Crafty was the first engine to support this feature, but by now there are many others that support it as well.</P>\r
+\r
+<P><font color="#3333ff">From WinBoard 4.4 on this function can also be invoked in Â‘zippy modeÂ’, i.e. when you are logged on to an ICS with an engine loaded. In that case it is not your own moves that the engine analyzes, but the moves that are played in a game on the ICS that you are observing. You must start observing before you start the analysis mode! See the file zippy.README for how to connect to an ICS and a chess engine running on your local computer at the same time. (Basically this amounts to adding the /zp command-line option in addition to all options you would need for connecting to the ICS, as well as those needed for running the chess engine.)</font></P>\r
+\r
+\r
+\r
+<P><B><A NAME="analyzefile"></A>Analyze File</B></P>\r
+\r
+<P>In this mode, you can load a game from a file, and the chess engine will analyze each move as in Analysis Mode. Crafty was the first engine to support this feature, but by now there are many others that support it as well.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="icsclient"></A>ICS Client</B></P>\r
+\r
+<P>This is the normal mode when WinBoard is connected to a chess server. If you have moved into Edit Game or Edit Position mode, you can select this option to get out.</P>\r
+\r
+<P>When you run WinBoard in ICS mode, it starts up a console window in which you can type commands and receive text responses from the chess server. You can use the standard Windows editing keys to edit your command line before pressing Enter. The console window keeps a history of the last few commands you typed. Press the up-arrow key to go back to a previous command; press the down-arrow key to go forward again to a later command. Press the right mouse button in the output area for a <A HREF="09.htm">context menu</A> of editing commands and ICS command shortcuts.</P>\r
+\r
+<P>Some useful ICS commands include <B>who</B> to see who is logged on, <B>games</B> to see what games are being played, <B>match</B> to challenge another player to a game, <B>observe</B> to observe an ongoing game, <B>examine</B> or <B>smoves</B> to review a recently completed game, and of course <B>help</B>. </P>\r
+\r
+<P>Whenever you ask to observe an ongoing game, review a completed game, or resume an adjourned game, WinBoard retrieves and parses the list of past moves from the ICS, so you can review them with <A HREF="06.htm#forward">Forward</A> and <A HREF="06.htm#backward">Backward</A> or save them with <A HREF="03.htm#savegame">Save Game</A>.</P>\r
+\r
+<P>Some special ICS Client features are activated when you are in <B>examine</B> or <B>bsetup </B>mode on ICS. See the descriptions of the menu commands <A HREF="06.htm#forward">Forward</A>, <A HREF="06.htm#backward">Backward</A>, <A HREF="#pause">Pause</A>, and <A HREF="05.htm#stopexamining">Stop Examining</A> below. You can also issue the ICS position-editing commands with the mouse. Move pieces by dragging with the left mouse button, or by left-clicking once on the starting square and once on the ending square. Press the right mouse button over a square for a context menu that lets you drop a new piece, empty the square, or clear the board. Click on the White or Black clock to set the side to play. You cannot set the side to play or drag pieces to arbitrary squares while examining on ICC, but you can do so in bsetup mode on FICS. You can also make moves by typing them into the ICS window; you may have to do this occasionally if you are playing a chess variant whose rules WinBoard does not understand, such as Fischer Random.</P>\r
+\r
+<P>If you are playing a bughouse game on the ICS, a list of the offboard pieces that each player holds is shown in the window title bar. To drop an offboard piece, press the right mouse button over an empty square to bring up a context menu. To observe your partner's games, start a second copy of WinBoard, log in as a guest, and use the ICS <B>follow</B> or <B>pfollow</B> command in the new window.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="editgame"></A>Edit Game</B></P>\r
+\r
+<P>Allows you to make moves for both Black and White, and to change moves after backing up with the <A HREF="06.htm#backward">Backward</A> command. The clocks do not run, but you can adjust their reading by clicking on them. A left-click subtracts one minute, a right-click adds one minute.</P>\r
+\r
+<P>In chess engine mode, the chess engine continues to check moves for legality but does not participate in the game. You can bring the chess engine back into the game by selecting <A HREF="#machinewhite">Machine White</A>, <A HREF="#machineblack">Machine Black</A>, or <A HREF="#twomachines">Two Machines</A>.</P>\r
+\r
+<P>In ICS mode, the moves are not sent to the ICS: Edit Game takes WinBoard out of ICS Client mode and lets you edit games locally. If you want to edit a game on ICS in a way that other ICS users can see, use the ICS <B>examine</B> command or start an ICS match against yourself.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="editposition"></A>Edit Position</B></P>\r
+\r
+<P>Lets you set up an arbitrary board position. Use the left mouse button to drag pieces to new squares, or to delete a piece by dragging it off the board or dragging an empty square on top of it. To drop a new piece on a square, press the right mouse button over the square. This brings up a menu of pieces. Additional menu choices let you empty the square or clear the board. You can set the side to play next by clicking on the White or Black indicator at the top of the screen. <font color="#008000">The pop-up menu also contains options to Â‘promoteÂ’ or Â‘demoteÂ’ the piece currently in the square. (In variants like Crazyhouse a piece has a different representation when it is a promoted Pawn rater than an original piece.) This allows you to create some of the not-so-common pieces (e.g. a Unicorn is a promoted King, a Commoner is a demoted King).</font></P>\r
+\r
+<P>Selecting Edit Position causes WinBoard<I> </I>to discard all remembered moves in the current game.</P>\r
+\r
+<P>In ICS mode, change made to the position by Edit Position are not sent to the ICS: Edit Position takes WinBoard out of ICS Client mode and lets you edit positions locally. If you want to edit positions on ICS in a way that other ICS users can see, use the ICS <B>examine</B> command, or start an ICS match against yourself. (See also <A HREF="#icsclient">ICS Client</A> above.)</P>\r
+\r
+\r
+\r
+<P><B><A NAME="show engine output"></A><font color="#ff0000">Show Engine Output</font></B></P>\r
+\r
+<P><font color="#ff0000">Open a new window dedicated to showing the thinking output of the engine(s), as controlled by Â“Show Thinking”.</font></P>\r
+\r
+\r
+\r
+<P><B><A NAME="show evaluation graph"></A><font color="#ff0000">Show Evaluation Graph</font></B></P>\r
+\r
+<P><font color="#ff0000">Open a new window dedicated to displaying a graph, representing the development of the engine score(s) from the current game over time. (Needs Â“show Thinking” to be enabled in order to work.</font></P>\r
+\r
+\r
+\r
+<P><B><A NAME="showgamelist"></A>Show Game List</B></P>\r
+\r
+<P>Shows or hides the list of games generated by the last <A HREF="03.htm#loadgame">Load Game</A> command.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="show move history"></A><font color="#ff0000">Show Move History</font></B></P>\r
+\r
+<P><font color="#ff0000">Open a new window dedicated to showing the game currently in progress.</font></P>\r
+\r
+\r
+\r
+<P><B><A NAME="training"></A>Training</B></P>\r
+\r
+<P>Training mode lets you interactively guess the moves of a game for one of the players. While in Training mode, the navigation buttons are disabled. You guess the next move of the game by playing the move on the board (or using the <A HREF="06.htm#typeinmove">Type In Move</A> command). If the move played matches the next move of the game, the move is accepted and the opponentÂ’s response is autoplayed.  If the move played is incorrect, an error message is displayed. </P>\r
+\r
+\r
+\r
+<P><B><A NAME="edittags"></A>Edit Tags</B></P>\r
+\r
+<P>Lets you edit the PGN (portable game notation) tags for the current game. After editing, the tags must still conform to the PGN tag syntax:</P>\r
+\r
+<PRE><CODE>\r
+&lt;tag-section&gt; ::= &lt;tag-pair&gt; &lt;tag-section&gt;\r
+                  &lt;empty&gt;\r
+&lt;tag-pair&gt;    ::= [ &lt;tag-name&gt; &lt;tag-value&gt; ]\r
+&lt;tag-name&gt;    ::= &lt;identifier&gt;\r
+&lt;tag-value&gt;   ::= &lt;string&gt;</CODE></PRE>\r
+\r
+<P>See the PGN Standard for full details. Here is an example:</P>\r
+\r
+<PRE><CODE>\r
+[Event "Portoroz Interzonal"]\r
+[Site "Portoroz, Yugoslavia"]\r
+[Date "1958.08.16"]\r
+[Round "8"]\r
+[White "Robert J. Fischer"]\r
+[Black "Bent Larsen"]\r
+[Result "1-0"]</CODE></PRE>\r
+\r
+<P>Any characters that do not match this syntax are silently ignored. Note that the PGN standard requires all games to have at least the seven tags shown above. Any that you omit will be filled in by WinBoard with <CODE>"?"</CODE> (unknown value) or <CODE>"-"</CODE> (inapplicable value).</P>\r
+\r
+\r
+\r
+<P><B><A NAME="editcomment"></A>Edit Comment</B></P>\r
+\r
+<P>Adds or modifies a comment on the current position. Comments are saved by <A HREF="03.htm#savegame">Save Game</A> and are displayed by <A HREF="03.htm#loadgame">Load Game</A>, <A HREF="06.htm#forward">Forward</A>, and <A HREF="06.htm#backward">Backward</A>.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="enterusername"></A><font color="#008000">Enter Username</font></B></P>\r
+\r
+<P><font color="#008000">Allows you to type the name of the human player, which will appear in the PGN header and in the window title.</font></P>\r
+\r
+\r
+\r
+<P><B><A NAME="pause"></A>Pause</B></P>\r
+\r
+<P>Pauses updates to the board, and if you are playing against a local chess engine, also pauses your clock. To continue, select Pause again, and the display will automatically update to the latest position. The <B>P</B> (or <B>C</B>) button is equivalent to selecting Pause.</P>\r
+\r
+<P>If you select Pause when you are playing against a chess engine and it is not your move, the chess engineÂ’s clock will continue to run and it will eventually make a move, at which point both clocks will stop. Since board updates are paused, however, you will not see the move until you exit from Pause mode (or select <A HREF="06.htm#forward">Forward</A>). This behavior is meant to simulate adjournment with a sealed move.</P>\r
+\r
+<P>If you select Pause while you are in <B>examine</B> mode on ICS, you can step backward and forward in the current history of the examined game without affecting the other examiners or observers. Select Pause again to reconnect yourself to the current state of the game on ICS.</P>\r
+\r
+<P>If you select Pause while you are loading a game, the game stops loading. You can load more moves one at a time by selecting <A HREF="06.htm#forward">Forward</A>, or resume automatic loading by selecting Pause again.</P>\r
+\r
+</BODY>\r
+</HTML>\r
diff --git a/winboard/help/html/05.htm b/winboard/help/html/05.htm
new file mode 100644 (file)
index 0000000..4e04f9b
--- /dev/null
@@ -0,0 +1,95 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">\r
+<HTML>\r
+<HEAD>\r
+<META HTTP-EQUIV="Content-Type" Content="text/html; charset=Windows-1252">\r
+<TITLE>Action Menu</TITLE>\r
+</HEAD>\r
+\r
+<BODY BGCOLOR="#FFFFFF" TEXT="#000000">\r
+\r
+\r
+\r
+<P><B><A NAME="actionmenu"></A>Action Menu</B></P>\r
+\r
+<P>Most of these commands are available in chess server mode only.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="accept"></A>Accept</B></P>\r
+\r
+<P>Accepts a pending match offer. If there is more than one offer pending, you will have to type in a more specific command instead of using this menu choice.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="decline"></A>Decline</B></P>\r
+\r
+<P>Declines a pending offer (match, draw, etc.). If there is more than one offer pending, you will have to type in a more specific command instead of using this menu choice.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="rematch"></A>Rematch</B></P>\r
+\r
+<P>Issues the ICS <B>rematch</B> command, which asks for another game against your last opponent with the same time control and rule set.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="callflag"></A>Call Flag</B></P>\r
+\r
+<P>Calls your opponent's flag, claiming a win on time, or claiming a draw if you are both out of time. You can also call your opponent's flag by clicking on his clock.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="draw"></A>Draw</B></P>\r
+\r
+<P>Offers a draw to your opponent, accepts a pending draw offer from your opponent, or claims a draw by repetition or the 50-move rule, as appropriate.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="adjourn"></A>Adjourn</B></P>\r
+\r
+<P>Asks your opponent to agree to adjourning the current game, or agrees to a pending adjournment offer from your opponent. You continue an adjourned ICS game by challenging the same player again with the ICS <B>match</B> command.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="abort"></A>Abort</B></P>\r
+\r
+<P>Asks your opponent to agree to abort the current game, or agrees to a pending abort offer from your opponent. An aborted ICS game ends immediately without affecting either player's rating.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="resign"></A>Resign</B></P>\r
+\r
+<P>Resigns the game to your opponent.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="stopobserving"></A>Stop Observing</B></P>\r
+\r
+<P>Ends your participation in observing a game, by issuing the ICS <B>unobserve</B> command.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="stopexamining"></A>Stop Examining</B></P>\r
+\r
+<P>Ends your participation in observing a game, by issuing the ICS <B>unobserve</B> command.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="adjudicatetowhite"></A><font color="#ff0000">Adjudicate To White</font></B></P>\r
+\r
+<P><font color="#ff0000">End the current game and stop participating engine. The result will appear in the PGN as a win for white.</font></P>\r
+\r
+\r
+\r
+<P><B><A NAME="adjudicatetoblack"></A><font color="#ff0000">Adjudicate To Black</font></B></P>\r
+\r
+<P><font color="#ff0000">Same as above, but game will appear as a win for black.</font></P>\r
+\r
+\r
+\r
+<P><B><A NAME="adjudicatedraw"></A><font color="#ff0000">Adjudicate Draw</font></B></P>\r
+\r
+<P><font color="#ff0000">Same as above, but game will appear as a draw.</font></P>\r
+\r
+</BODY>\r
+</HTML>\r
diff --git a/winboard/help/html/06.htm b/winboard/help/html/06.htm
new file mode 100644 (file)
index 0000000..23b0a72
--- /dev/null
@@ -0,0 +1,83 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">\r
+<HTML>\r
+<HEAD>\r
+<META HTTP-EQUIV="Content-Type" Content="text/html; charset=Windows-1252">\r
+<TITLE>Step Menu</TITLE>\r
+</HEAD>\r
+\r
+<BODY BGCOLOR="#FFFFFF" TEXT="#000000">\r
+\r
+\r
+\r
+<P><B><A NAME="stepmenu"></A>Step Menu</B></P>\r
+\r
+\r
+\r
+<P><B><A NAME="typeinmove"></A>Type In Move</B></P>\r
+\r
+<P>Pops up a dialog box, into which you can type moves in standard algebraic chess notation. (You can also get this dialog box by simply starting to type over the chessboard, except in ICS mode, where such typing is redirected into the ICS interaction window.)</P>\r
+\r
+\r
+\r
+<P><B><A NAME="backward"></A>Backward</B></P>\r
+\r
+<P>Steps backward through a series of remembered moves. The <B>&lt;</B> button is equivalent to selecting Backward<font color="#3333ff">, as is turning the mouse wheel towards you</font>. In most modes, Backward only lets you look back at old positions; it does not retract moves. This is the case if you are playing against a chess engine, playing or observing a game on the ICS, or loading a game. If you select Backward in any of these situations, you will not be allowed to make a different move. Use <A HREF="#retractmove">Retract Move</A> or <A HREF="04.htm#editgame">Edit Game</A> if you want to change past moves.</P>\r
+\r
+<P>If you are examining a game on the ICS, the behavior of Backward depends on whether WinBoard<I> </I>is in <A HREF="04.htm#pause">Pause</A> mode. If Pause mode is off, Backward issues the ICS command<B> backward</B>, which backs up everyone's view of the game and allows you to make a different move. If Pause mode is on, Backward only backs up your local view.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="forward"></A>Forward</B></P>\r
+\r
+<P>Steps forward through a series of remembered moves (undoing the effect of <A HREF="#backward">Backward</A>) or through a game file. The <B>&gt;</B> button is equivalent<font color="#3333ff">, as is turning the mouse wheel away from you</font>.</P>\r
+\r
+<P>If you are examining a game on the ICS, the behavior of Forward depends on whether WinBoard<I> </I>is in <A HREF="04.htm#pause">Pause</A> mode. If Pause mode is off, Forward issues the ICS command<B> forward</B>, which moves everyone's view of the game forward along the current line. If Pause mode is on, Forward only moves your local view forward, and it will not go past the position the game was in when you paused.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="backtostart"></A>Back to Start</B></P>\r
+\r
+<P>Jumps backward to the first remembered position in the game. The <B>&lt;&lt; </B>button is equivalent.</P>\r
+\r
+<P>In most modes, Back to Start only lets you look back at old positions; it does not retract moves. This is the case if you are playing against a chess engine, playing or observing a game on the ICS, or loading a game. If you select Back to Start in any of these situations, you will not be allowed to make a different move. Use <A HREF="#retractmove">Retract Move</A> or <A HREF="04.htm#editgame">Edit Game</A> if you want to change past moves; or use <A HREF="03.htm#newgame">New Game</A> to start a new game.</P>\r
+\r
+<P>If you are examining a game on the ICS, the behavior of Back to Start depends on whether WinBoard<I> </I>is in <A HREF="04.htm#pause">Pause</A> mode. If Pause mode is off, Backward issues the ICS command <B>backward 999999</B>, which backs up everyone's view of the game to the start and allows you to make different moves. If Pause mode is on, Back to Start only backs up your local view.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="forwardtoend"></A>Forward to End</B></P>\r
+\r
+<P>Jumps forward to the last position in the game. The <B>&gt;&gt;</B> button is equivalent.</P>\r
+\r
+<P>If you are examining a game on the ICS, the behavior of Forward to End depends on whether WinBoard<I> </I>is in <A HREF="04.htm#pause">Pause</A> mode. If Pause mode is off, Forward to End issues the ICS command <B>forward 999999</B>, which moves everyone's view of the game forward to the end of the current line. If Pause mode is on, Forward to End only moves your local view forward, and it will not go past the position the game was in when you paused.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="revert"></A>Revert</B></P>\r
+\r
+<P>If you are examining a game on the ICS, issues the ICS command <B>revert</B>.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="truncategame"></A>Truncate Game</B></P>\r
+\r
+<P>Discards all remembered moves of the game beyond the current position. Puts WinBoard into <A HREF="04.htm#editgame">Edit Game</A> mode if it was not there already.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="movenow"></A>Move Now</B></P>\r
+\r
+<P>Forces the chess engine to move immediately. May not work with all chess engines.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="retractmove"></A>Retract Move</B></P>\r
+\r
+<P>Retracts your last move.</P>\r
+\r
+<P>In chess engine mode, you can do this only after the chess engine has replied to your move. If the chess engine is still thinking, use <A HREF="#movenow">Move Now</A> first.</P>\r
+\r
+<P>In ICS mode, Retract Move issues the command <B>takeback 1 </B>or <B>takeback 2</B>, depending on whether it is your opponent's move or yours.</P>\r
+\r
+</BODY>\r
+</HTML>\r
diff --git a/winboard/help/html/07.htm b/winboard/help/html/07.htm
new file mode 100644 (file)
index 0000000..7d848af
--- /dev/null
@@ -0,0 +1,401 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">\r
+<HTML>\r
+<HEAD>\r
+<META HTTP-EQUIV="Content-Type" Content="text/html; charset=Windows-1252">\r
+<TITLE>Options Menu</TITLE>\r
+</HEAD>\r
+\r
+<BODY BGCOLOR="#FFFFFF" TEXT="#000000">\r
+\r
+\r
+\r
+<P><B><A NAME="optionsmenu"></A>Options Menu</B></P>\r
+\r
+\r
+\r
+<P><B><A NAME="flipview"></A><U>Flip View</U></B></P>\r
+\r
+<P>Inverts your view of the chessboard.</P>\r
+\r
+<P>If you are playing a game on the ICS, the board is always oriented at the start of the game so that your pawns move from the bottom of the window towards the top. Otherwise, the starting position is determined by the <A HREF="16.htm#flipviewoption">flipView</A> command line option.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="swap clocks"></A><font color="#008000"><U>Swap Clocks</U></font></B></P>\r
+\r
+<P><font color="#008000">Interchanges the position of the white and black clocks on the screen. Intended for manually-operated computer-computer games, where the monitor is standing to the side of the playing board, to make sure that the operator sees the time of his own machine on his side of the table. Note that it is possible to adjust the clocks in steps of one minute, by left- (decrement) or right-clicking (increment) it with the mouse in Â“Edit Game” mode. (Clicking the clocks in other modes is interpreted as claiming the flag.)</font></P>\r
+\r
+\r
+\r
+<P><B><U><A NAME="generaloptions"></A>General</U></B></P>\r
+\r
+\r
+\r
+<P><B><A NAME="alwaysontop"></A>Always On Top</B></P>\r
+\r
+<P>If this option is on, WinBoard sets its chessboard to be a <I>topmost</I> window, meaning that it always appears on top of all ordinary windows on the screen.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="alwaysqueen"></A>Always Queen</B></P>\r
+\r
+<P>If Always Queen is off, WinBoard brings up a dialog box whenever you move a pawn to the last rank, asking what piece you want to promote it to. If the option is on, your pawns are always promoted to queens. Your opponent can still underpromote, however.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="animatedragging"></A>Animate Dragging</B></P>\r
+\r
+<P>If Animate Dragging is on while you are dragging a piece with the mouse, an image of the piece follows the mouse cursor. If Animate Dragging is off, there is no visual feedback while you are</P>\r
+\r
+<P>dragging a piece, but if Animate Moving is on, the move will be animated when it is complete.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="animatemoving"></A>Animate Moving</B></P>\r
+\r
+<P>If Animate Moving is on, all piece moves are animated.  An image of the piece is shown moving from the old square to the new square when the move is completed (unless the move was already animated by Animate Dragging). If Animate Moving is off, a moved piece instantly disappears from its old square and reappears on its new square when the move is complete.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="autoflagcmd"></A>Auto Flag</B></P>\r
+\r
+<P>If this option is on and one player runs out of time before the other, WinBoard will automatically call his flag, claiming a win on time. In ICS mode, Auto Flag will only call your opponent's flag, not yours, and the ICS may award you a draw instead of a win if you have insufficient mating material. On most chess servers, you can now do<B> set autoflag 1 </B>instead and have the server call the flag. In local chess engine mode, WinBoard may call either player's flag and will not take material into account.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="autoflipview"></A>Auto Flip View</B></P>\r
+\r
+<P>If this option is on when you start a game, the board will be automatically oriented so that your pawns move from the bottom of the window towards the top.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="autoraiseboard"></A>Auto Raise Board</B></P>\r
+\r
+<P>If this option is on, whenever a new game begins, the chessboard window will be deiconized (if necessary) and raised to the top of the stack of windows on your screen.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="blindfoldcmd"></A>Blindfold</B></P>\r
+\r
+<P>If Blindfold is on, WinBoard displays a blank board. Moves can still be entered with the mouse, either by dragging the (invisible) piece or clicking the starting and ending square. You can also enter your move by typing it on the keyboard.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="highlightdragging"></A>Highlight Dragging</B></P>\r
+\r
+<P>If Highlight Dragging is on while you are dragging a piece with the mouse, the starting square and the square that the mouse cursor is over are highlighted. This option works even if Animate Dragging is off.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="extendedpgninfo"></A><font color="#ff0000">Extended PGN Info</font></B></P>\r
+\r
+<P><font color="#ff0000">The PGN will contain the engine search depth, score and time for each move where the depth is non-zero, as a comment behind the move if this option is on. Works only when Â“Show Thinking” is enabled. The recorded time is the time reported by the engine.</font></P>\r
+\r
+\r
+\r
+<P><B><A NAME="extrainfoinmovehistory"></A><font color="#ff0000">Extra Info In Move History</font></B></P>\r
+\r
+<P><font color="#ff0000">Same as above, but in move-history window.</font></P>\r
+\r
+\r
+\r
+<P><B><A NAME="highlightlastmove"></A>Highlight Last Move</B></P>\r
+\r
+<P>If Highlight Last Move is on, after a move is made, the starting and ending squares remain highlighted. In addition, after you use <A HREF="06.htm#backward">Backward</A> or <A HREF="06.htm#backtostart">Back to Start</A>, the starting and ending squares of the last move to be <I>unmade</I> are highlighted.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="periodicupdatescmd"></A>Periodic Updates</B></P>\r
+\r
+<P>If Periodic Updates is on, the Analysis window is updated every two seconds. If not, it is updated only when the best move found changes. The Analysis window currently works only with Crafty, and Periodic Updates may not work with all versions of Crafty.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="pondernextmovecmd"></A>Ponder Next Move</B></P>\r
+\r
+<P>If this option is off, the chess engine will think only when it is on move. If the option is on, the engine will also think while waiting for you to make your move.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="popupexitmessagecmd"></A>Popup Exit Message</B></P>\r
+\r
+<P>If this option is on, when WinBoard wants to display a message just before exiting, it brings up a modal dialog box and waits for you to click OK before exiting. If the option is off, WinBoard prints exits immediately without showing the message. If <A HREF="15.htm#debugmode">debugMode</A> is on, however, the message will appear in the debug log.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="popupmoveerrorscmd"></A>Popup Move Errors</B></P>\r
+\r
+<P>If this option is off, when you make an error in moving (such as attempting an illegal move or moving the wrong color piece), the error message is displayed in the message area. If the option is on, move errors are displayed in small popup windows like other errors. You can dismiss an error popup either by clicking its OK button or by clicking anywhere on the board, including downclicking to start a move.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="showbuttonbarcmd"></A>Show Button Bar</B></P>\r
+\r
+<P>If Show Button Bar is on, WinBoard displays on-screen <A HREF="10.htm">buttons</A> to step forward, backward, or pause the game. If it is off, the buttons are hidden, making the message line wider.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="showcoordscmd"></A>Show Coords</B></P>\r
+\r
+<P>If Show Coords is on, WinBoard displays algebraic coordinates along the board's left and bottom edges. </P>\r
+\r
+\r
+\r
+<P><B><A NAME="showthinkingcmd"></A>Show Thinking</B></P>\r
+\r
+<P>If this option is set, WinBoard displays the chess engineÂ’s current search depth and its notion of the score and best line of play from the current position as it is thinking. The score indicates how many pawns ahead (or if negative, behind) the engine thinks it is. In matches between two machines, the score is prefixed by W or B to indicate whether it is showing White's thinking or Black's.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="testlegalitycmd"></A>Test Legality</B></P>\r
+\r
+<P>If Test Legality is on, WinBoard tests whether the moves you enter with the mouse or read from game files are legal, and displays an error if they are not. Turn this option off if you are playing a chess variant that WinBoard does not understand. (Bughouse, suicide, and wild variants where the king may castle after starting on the <B>d</B> file are generally supported with Test Legality on. <font color="#008000">The same holds for variants with non-FIDE pieces, like shatranj, xangqi, shogi, gothic, capablanca, courier, knightmate: WinBoard knows how all pieces occurring in those variants move. Falcon, cylinder and berolina are only partly supported, though, and the latter two should definitely be played with legality testing off, and falcon uses a wildcard piece for the Falcons, so it considers any move of them legal, but might miss checkmates that involve a Falcon. So you should not play it with claim verification switched on.)</font></P>\r
+\r
+\r
+\r
+<P><B><A NAME="hidethinkingfromhuman"></A><font color="#ff0000">Hide Thinking From Human</font></B></P>\r
+\r
+<P><font color="#ff0000">An alternative to suppressing the Thinking Output in the display above the board by switching Â“Show Thinking” off, but doing it in a way that still allows the extended PGN info to be recorded.</font></P>\r
+\r
+\r
+\r
+<P><B><A NAME="highlightmovewitharrow"></A><font color="#ff0000">Highlight Move With Arrow</font></B></P>\r
+\r
+<P><font color="#ff0000">A big, fat arrow is drawn between the start and target field of the last move, so you cannot possibly miss it.</font></P>\r
+\r
+\r
+\r
+<P><B><U><A NAME="boardoptions"></A>Board</U></B></P>\r
+\r
+\r
+\r
+<P><B><A NAME="boardsizecmd"></A>Board Size</B></P>\r
+\r
+<P>Determines how large the board will be and what fonts and piece bitmaps will be used. On a Titanic board the piece bitmaps are 129x129 pixels, on Colossal 116x116, Giant 108x108, Huge 95x95, Big 87x87, Large 80x80, Bulky 72x72, Medium 64x64, Moderate 58x58, Average 54x54, Middling 49x49, Mediocre 45x45, Small 40x40, Slim 37x37, Petite 33x33, Dinky 29x29, Teeny 25x25, and Tiny 21x21. The smaller boards have no system menu, but you can minimize or close them from the File menu.</P>\r
+\r
+<P>You can also change the board size by dragging the window edges or corners with the mouse. The board will snap to the largest size that fits into the area you outline.</P>\r
+\r
+<P><font color="#008000">Note that only sizes Bulky, Middling and to a lesser extent Petite have built-in bitmaps for the non-FIDE- pieces. Archbishop, Chancellor and the wildcard Lance exist in all sizes from Petite to Bulky, though. In size Moderate, variant shogi uses the traditional Japanese piece representation.</font></P>\r
+\r
+\r
+\r
+<P><B><A NAME="boardcolors"></A>Board Colors</B></P>\r
+\r
+<P>Lets you change the colors WinBoard is using to draw the board and pieces.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="allwhite"></A><font color="#008000">All White</font></B></P>\r
+\r
+<P><font color="#008000">Uses the representation of the white pieces (a filled-in black outline) also for the black pieces (where you can fill them with another color to distinguish them). If you do not choose a very dark color for the black pieces, they look very ugly without outline, and using this option can fix that.</font></P>\r
+\r
+\r
+\r
+<P><B><A NAME="flipblack"></A><font color="#008000">Flip Black</font></B></P>\r
+\r
+<P><font color="#008000">Displays the black pieces upside down (or the white pieces in Â“Flip View”). This is useful in Shogi, when you want to use the traditional Japanese representation of the pieces.</font></P>\r
+\r
+\r
+\r
+<P><B><font color="#ff0000"><U><A NAME="adjudications"></A>Adjudications</U></font></B></P>\r
+\r
+\r
+\r
+<P><font color="#ff0000"><B><A NAME="pondernextmove"></A>Ponder Next Move,<SUP> <A NAME="showthinking"></A></SUP>Show Thinking, <A NAME="hidethinkingfromhuman"></A>Hide Thinking from Human and <A NAME="periodicupdates"></A>Periodic Updates</B></font></P>\r
+\r
+<P><font color="#ff0000">Duplicates of the controls in the Â“General” option menu.</font></P>\r
+\r
+\r
+\r
+<P><B><A NAME="adjudicatedrawmoves"></A><font color="#ff0000">Adjudicate Draw Moves</font></B></P>\r
+\r
+<P><font color="#ff0000">Adjudicate a draw after the given number of moves, to prevent games from dragging on forever if two engines in a dead-drawn position, conspire to avoid 50-move draws. This and the folowing options are only active in Â“Two Machines” mode.</font></P>\r
+\r
+\r
+\r
+<P><B><A NAME="adjudicatelossthreshold"></A><font color="#ff0000">Adjudicate Loss Threshold</font></B></P>\r
+\r
+<P><font color="#ff0000">Adjudicate the game as a loss when both engines agree that the (negative) score is  below the given threshold for the duration of 6 consecutive plies.</font></P>\r
+\r
+\r
+\r
+<P><B><A NAME="verifyclaims"></A><font color="#008000">Verify Claims</font></B></P>\r
+\r
+<P><font color="#008000">Verify result claims made by engines when they terminate the game. If needed, correct the results to a loss for the engine making the false claim. Needs Â“Test Legality” to be on in order to work.</font></P>\r
+\r
+\r
+\r
+<P><B><A NAME="detectmates"></A><font color="#008000">Detect Mates</font></B></P>\r
+\r
+<P><font color="#008000">Let WinBoard detect checkmate and stalemate, even before the engine gets the chance to claim it. Useful with buggy engines, that exit without a claim, or just hang. Needs Â“Test Legality” to be on in order to work.</font></P>\r
+\r
+\r
+\r
+<P><B><A NAME="drawifinsufficientmaterial"></A><font color="#008000">Draw If Insufficient Material</font></B></P>\r
+\r
+<P><font color="#008000">If this option is on, WinBoard will recognize KBKB positions with equally colored Bishops, KBK, KNK, and KK positions as draws, even before the engine can claim them. Needs Â“Test Legality” to be on in order to work.</font></P>\r
+\r
+\r
+\r
+<P><B><A NAME="adjudicatetrivialdraws"></A><font color="#008000">Adjudicate Trivial Draws</font></B></P>\r
+\r
+<P><font color="#008000">If this option is on, KBKB (with B on unlike color), KBKN, KNKN, KNNK, KRKR and KQKQ positions will be adjudicated draw after 6 ply. For KQKQ this is not really sound, and in the future it might be taken out of this option. But as long as tablebase adjudications are not implemented, it seems best to group this end-game with the trivial draws. Needs Â“Test Legality” to be on in order to work.</font></P>\r
+\r
+\r
+\r
+<P><B><A NAME="n-moverule"></A><font color="#008000">N-Move Rule</font></B></P>\r
+\r
+<P><font color="#008000">Here you can set the number of reversible moves (non-pawn, non-capture) after which WinBoard should adjudicate a game as draw. Engine draw claims are always consider ed valid after 50 moves (in the context of Â“Verify Claims”), but you can set a different value here to either give the engine more leeway if it wants to play on, or test its claiming capabilities, or set it to a smaller value if you are impatient.</font></P>\r
+\r
+\r
+\r
+<P><B><A NAME="n-foldrepetitionrule"></A><font color="#008000">N-Fold Repetition Rule</font></B></P>\r
+\r
+<P><font color="#008000">Here you can set the number of repetitions of the same position that should occur in order for WinBoard to adjudicate the game as draw. Engine draw claims are always consider ed valid after 3 repetitions (in the context of Â“Verify Claims”) , but you can set a different value here to either give the engine more leeway if it wants to play on, or test its claiming capabilities, or set it to 2 if you are impatient. (Do not set it to 1!)</font></P>\r
+\r
+\r
+\r
+<P><B><font color="#ff0000"><U><A NAME="engine settings"></A>Engine Settings</U></font></B></P>\r
+\r
+\r
+\r
+<P><B><A NAME="polyglotdirectory"></A><font color="#ff0000">Polyglot Directory</font></B></P>\r
+\r
+<P><font color="#ff0000">If WinBoard knows where to find Polyglot, you can install UCI engines as if they were WinBoard engines, and WinBoard will automatically invoke Polyglot as an adapter to run them.</font></P>\r
+\r
+\r
+\r
+<P><B><A NAME="hashsize"></A><font color="#ff0000">Hash Size, <A NAME="egtbpath"></A>EGTB Path, <A NAME="egtbcachesize"></A>EGTB Cache Size, <A NAME="openingbook"></A>Opening Book, <A NAME="number of cpus"></A>Number of CPUs</B></font></P>\r
+\r
+<P><font color="#ff0000">These are options that UCI engines expect to be specified.</font> <font color="#3333ff">WinBoard protocol now also allows native WinBoard engines to request similar information, so it might be used for these engines as well. The memory size specified by the WinBoard-protocol Â‘memoryÂ’ command is the sum of the hash and EGTB cache sizes. The specified opening book, when enabled through the Â‘Use BookÂ’ check box, will be used as GUI book for engines that do not have their own book (as indicated by the check boxes). It must be a book in Polyglot format.</font></P>\r
+\r
+\r
+\r
+<P><B><U><A NAME="icsoptions"></A>ICS</U></B></P>\r
+\r
+\r
+\r
+<P><B><A NAME="autocommentcmd"></A>Auto Comment</B></P>\r
+\r
+<P>If Auto Comment is on, any remarks made on ICS while you are observing or playing a game are recorded as a comment on the current move. This includes remarks made with the ICS commands <B>say, tell, whisper, </B>and <B>kibitz</B>. Limitation: remarks that you type yourself are not </P>\r
+\r
+<P>recognized; WinBoard scans only the output from ICS, not the input you type to it.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="autobscmd"></A>Auto Observe</B></P>\r
+\r
+<P>If Auto Observe is on and you add a player to your <B>gnotify</B> list on ICS, WinBoard will automatically observe all of that player's games, unless you are doing something else (such as observing or playing a game of your own) when one starts. On most chess servers, you can now do <B>follow <I>player</I></B> instead, and the server will automatically observe all of <B><I>playerÂ’s</I></B> games.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="getmovelistcmd"></A>Get Move List</B></P>\r
+\r
+<P>If Get Move List is on, whenever WinBoard<I> </I>receives the first board of a new ICS game (or a different ICS game from the one it is currently displaying), it retrieves the list of past moves from the server. You can then review the moves with the Forward and Backward commands or save them with Save Game. You might want to turn off this option if you are observing several blitz games at once, to keep from wasting time and network bandwidth fetching the move lists over and over. If you turn this option on while a game is in progress, WinBoard<I> </I>immediately fetches the current move list.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="locallineediting"></A>Local Line Editing</B></P>\r
+\r
+<P>If Local Line Editing is <B>on</B>, your machine handles echoing, backspacing, etc., for the characters that you type into the ICS Interaction window. Output is forwarded to the ICS only when you hit Enter.The Enter key produces a newline character, also known as Ctrl+J, \n, LF, linefeed, or decimal ASCII code 10. In this mode you can force a control character into the edit buffer by preceding it with Ctrl+Q (“quote”); however, the edit buffer will not accept certain control characters even when they are quoted in this way. You can force a control character to be sent immediately to ICS, bypassing the edit buffer, by preceding it with Ctrl+S (“send”).</P>\r
+\r
+<P>WinBoard keeps a history of lines you recently typed in Local Line Editing mode. You can bring back old lines by pressing the cursor up key in the text entry box. Press the cursor down key to go back down to newer lines.</P>\r
+\r
+<P>If Local Line Editing is <B>off</B>, all characters are sent to ICS as you type them. The Enter key produces a carriage return character, also known as Ctrl+M, \r, CR, or decimal ASCII code 13. Use Ctrl+Backspace if you need the ASCII DEL character. You can enter any character code by holding down the Alt key and typing its decimal value (always beginning with 0) on the numeric keypad; this is a little-known standard feature of Windows.</P>\r
+\r
+<P>In both modes, if WinBoard<I>Â’s </I>internal telnet protocol implementation is active, it translates all \n characters to the standard telnet end-of-line sequence \r\n just before sending them out to ICS; see <A HREF="14.htm#telnetprogram">telnetProgram</A>.</P>\r
+\r
+<P>It is generally not a good idea to turn off this option while connected to ICS. If you are tempted to do so because everything you type is being echoed an extra time, see the paragraph about extra echoes under <A HREF="22.htm">LIMITATIONS</A> below.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="quietplaycmd"></A>Quiet Play</B></P>\r
+\r
+<P>If Quiet Play is on, WinBoard will automatically issue an ICS <B>set shout 0</B> command whenever you start a game and a <B>set shout 1</B> command whenever you finish one. Thus you will not be distracted by shouts from other ICS users while playing.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="premovecmd"></A>Premove</B></P>\r
+\r
+<P>Premove allows you to play a move on the board before you have received your opponentÂ’s move.  This move is highlighted on the board using the <A HREF="16.htm#premovehighlightcolor">Premove Highlight</A> color, and is sent to the ICS as soon as your opponentÂ’s move is received. To cancel a premove, either click twice on the piece that was premoved or premove an illegal move.</P>\r
+\r
+<P>This group of controls allows you to set the following options: <A HREF="14.htm#premove">premove</A>, <A HREF="14.htm#premovewhite">premoveWhite</A>, <A HREF="14.htm#premovewhitetext">premoveWhiteText</A>, <A HREF="14.htm#premoveblack">premoveBlack</A>, <A HREF="14.htm#premoveblacktext">premoveBlackText</A>.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="icsalarm"></A>ICS Alarm</B></P>\r
+\r
+<P>When <B>icsAlarm</B> is set to True, the <A HREF="16.htm#soundicsalarm">alarm sound</A> is played when your clock counts down to <A HREF="14.htm#icsalarmtime">icsAlarmTime</A> seconds.  For ICS games with time controls that include an increment, the alarm will sound each time the clock counts down to the <A HREF="14.htm#icsalarmtime">icsAlarmTime</A>.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="icsinteractioncolors"></A>ICS Interaction Colors</B></P>\r
+\r
+<P>Lets you change the colors and type styles that WinBoard uses to distinguish between different types of messages in the ICS Interaction window. The types distinguished are: shout, sshout, channel 1 tell, other channel tell, kibitz (or whisper), personal tell (or new message notification), challenge, request (including abort, adjourn, draw, pause, and takeback), seek, and normal (all other messages).</P>\r
+\r
+\r
+\r
+<P><B><A NAME="fonts"></A><U>Fonts</U></B></P>\r
+\r
+<P>Lets you change the fonts WinBoard is using.  The clock font, message font and coordinates font are specific to each board size.  The tags font, comments font and ICS Interaction font are not dependent on the current size of the board.  The Â“Revert to Defaults” button will reset the clock font, message font and coordinates font for the current board size, and will set the tags font, message font and Ics Interaction font for all board sizes.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="sounds"></A><U>Sounds</U></B></P>\r
+\r
+<P>Lets you change the sounds that WinBoard plays for various events.</P>\r
+\r
+\r
+\r
+<P><A NAME="movesound"></A>If the Move sound is on, WinBoard alerts you by playing a sound after each of your opponent's moves (or after every move if you are observing a game on the Internet Chess Server). The sound is not played after moves you make or moves read from a saved game file. If you turn on the Move sound when using WinBoard with the Internet Chess Server, you will probably want to give the <B>set bell 0</B> command to the ICS. Otherwise the ICS will send a bell character after every move (not just yours), causing WinBoard to play the ICS Bell sound too. Alternatively, you could turn off the ICS Bell sound in WinBoard, but that might cause you to miss ICS alerts for other interesting events.</P>\r
+\r
+<P>The other sound events correspond directly to the types of messages that the <A HREF="#icsinteractioncolors">ICS Interaction Colors</A> option knows how to colorize.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="sounds"></A><U>Game List</U></B></P>\r
+\r
+<P>Lets you select which information is displayed in the Game List window.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="communications"></A><U>Communications</U></B></P>\r
+\r
+<P>Lets you change the communication port parameters when the <A HREF="14.htm#internetchessservercomport">internetChessServerComPort</A> option is in use.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="loadgameoptns"></A><U>Load Game</U></B></P>\r
+\r
+<P>Lets you change options used while loading games (<A HREF="15.htm#timedelay">timeDelay</A> option).</P>\r
+\r
+\r
+\r
+<P><B><A NAME="savegameoptns"></A><U>Save Game</U></B></P>\r
+\r
+<P>Lets you change options used for saving games (<A HREF="15.htm#autosavegames">autoSaveGames</A>, <A HREF="15.htm#oldsavestyle">oldSaveStyle</A>, and <A HREF="15.htm#savegamefile">saveGameFile</A> options).</P>\r
+\r
+\r
+\r
+<P><B><A NAME="timecontrolcmd"></A><U>Time Control</U></B></P>\r
+\r
+<P>Lets you change the time control to be used in games against a chess engine. Two types of timing are available.</P>\r
+\r
+<P>With conventional chess clocks, each player begins with his clock set to the <A HREF="12.htm#timecontrol">timeControl</A> period. When both players have made <A HREF="12.htm#movespersession">movesPerSession</A> moves, a new time control period begins. The time in the new period is added to whatever time the players have left on their clocks.</P>\r
+\r
+<P>With incremental clocks, each player is given an initial time allotment, and a <A HREF="12.htm#timeincrement">timeIncrement</A> is added to his clock after every move. The increment may be zero, in which case the entire game must be finished within the initial time allotment.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="savesettings"></A><U>Save Settings Now</U></B></P>\r
+\r
+<P>Save the current option settings to a file, along with the current window sizes and positions, to be automatically reloaded next time WinBoard is run. See <A HREF="19.htm#settings">Settings</A> for the fine points.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="savesettingsonexit"></A><U>Save Settings on Exit</U></B></P>\r
+\r
+<P>If this option is on, the current settings are automatically saved when WinBoard exits, as with Save Settings Now.</P>\r
+\r
+</BODY>\r
+</HTML>\r
diff --git a/winboard/help/html/08.htm b/winboard/help/html/08.htm
new file mode 100644 (file)
index 0000000..bcf3b5c
--- /dev/null
@@ -0,0 +1,51 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">\r
+<HTML>\r
+<HEAD>\r
+<META HTTP-EQUIV="Content-Type" Content="text/html; charset=Windows-1252">\r
+<TITLE>Help Menu</TITLE>\r
+</HEAD>\r
+\r
+<BODY BGCOLOR="#FFFFFF" TEXT="#000000">\r
+\r
+\r
+\r
+<P><B><A NAME="helpmenu"></A><SUP></SUP>Help Menu</B></P>\r
+\r
+\r
+\r
+<P><B><A NAME="helpcontents"></A>Help Contents</B></P>\r
+\r
+<P>Brings up this help file, starting at the Contents page.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="searchhelp"></A>Help Index</B></P>\r
+\r
+<P>Brings up this help file, starting at the Index/Find dialog.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="helphelp"></A>How to Use Help</B></P>\r
+\r
+<P>Brings up the standard help file that explains how to use Windows Help.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="hint"></A>Hint</B></P>\r
+\r
+<P>Displays a move hint from the chess engine.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="book"></A>Book</B></P>\r
+\r
+<P>Displays a list of possible moves from the chess engineÂ’s opening book. The first column gives moves, the second column gives one possible response for each move, and the third column shows the number of lines in the book that include the move from the first column. If you select this option and nothing happens, the engine is out of its book or does not support the book command.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="aboutwinboard"></A>About WinBoard</B></P>\r
+\r
+<P>Displays the WinBoard version number.</P>\r
+\r
+</BODY>\r
+</HTML>\r
diff --git a/winboard/help/html/09.htm b/winboard/help/html/09.htm
new file mode 100644 (file)
index 0000000..ee390e6
--- /dev/null
@@ -0,0 +1,103 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">\r
+<HTML>\r
+<HEAD>\r
+<META HTTP-EQUIV="Content-Type" Content="text/html; charset=Windows-1252">\r
+<TITLE>ICS Interaction Context Menu</TITLE>\r
+</HEAD>\r
+\r
+<BODY BGCOLOR="#FFFFFF" TEXT="#000000">\r
+\r
+\r
+\r
+<P><B><A NAME="icsinteractioncontextmenu"></A><SUP></SUP>ICS Interaction Context Menu</B></P>\r
+\r
+<P>To see this menu, press the right mouse button anywhere in the output (upper) pane of the ICS Interaction window. Pressing the right mouse button in the input (lower) pane gives a standard editing context menu, not described here. Use the <B>help</B> command on ICS to learn what these commands mean.</P>\r
+\r
+<P>You can customize the lower part of this menu (below the Paste option) by setting the <A HREF="16.htm#icsmenu">icsMenu</A> option. The easiest way to accomplish this is to edit your <A HREF="19.htm#settings">settings file</A> with Notepad or another plain text editor. Sorry, there is no graphical user interface for customizing the menu.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="copyandpaste"></A>Copy and Paste</B></P>\r
+\r
+<P>Copies the current selection to the clipboard, then pastes it to the input box. As a shortcut to this function, you can press the middle mouse button (if you have one), or Shift plus the right mouse button.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="copy"></A>Copy</B></P>\r
+\r
+<P>Copies the current selection to the clipboard.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="paste"></A>Paste</B></P>\r
+\r
+<P>Pastes the clipboard contents to the input box.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="who"></A>Who</B></P>\r
+\r
+<P>Sends the command Â“who”<B><I> </I></B>to ICS.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="players"></A>Players</B></P>\r
+\r
+<P>Sends the command Â“players”<B><I> </I></B>to ICS.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="games"></A>Games</B></P>\r
+\r
+<P>Sends the command Â“games”<B><I> </I></B>to ICS.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="sought"></A>Sought</B></P>\r
+\r
+<P>Sends the command Â“sought”<B><I> </I></B>to ICS.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="tell"></A>Tell (name)</B></P>\r
+\r
+<P>Inserts Â“tell <I>name </I>”<B><I> </I></B>into the input box. The string <I>name </I>is the current selection if it is not empty. Otherwise <I>name </I>is the word surrounding the mouse position, where a Â“word” is a string of letters, digits, or hyphens (-), such as an ICS user handle or game number.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="message"></A>Message (name)</B></P>\r
+\r
+<P>Inserts Â“message <I>name </I>”<B><I> </I></B>into the input box, where <I>name</I> is as defined above.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="finger"></A>Finger (name)</B></P>\r
+\r
+<P>Sends the command Â“finger <I>name</I>”<B><I> </I></B>to ICS, where <I>name</I> is as defined above. </P>\r
+\r
+\r
+\r
+<P><B><A NAME="vars"></A>Vars (name)</B></P>\r
+\r
+<P>Sends the command Â“vars <I>name</I>”<B><I> </I></B>to ICS, where <I>name</I> is as defined above. </P>\r
+\r
+\r
+\r
+<P><B><A NAME="observe"></A>Observe (name)</B></P>\r
+\r
+<P>Sends the command Â“observe <I>name</I>”<B><I> </I></B>to ICS, where <I>name</I> is as defined above. Here <I>name</I> can be either a user handle or a game number.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="match"></A>Match (name)</B></P>\r
+\r
+<P>Sends the command Â“match <I>name</I>”<B><I> </I></B>to ICS, where <I>name</I> is as defined above. </P>\r
+\r
+\r
+\r
+<P><B><A NAME="play"></A>Play (name)</B></P>\r
+\r
+<P>Sends the command Â“play <I>name</I>”<B><I> </I></B>to ICS, where <I>name</I> is as defined above. Here <I>name</I> can be either a user handle or a seek ad number.</P>\r
+\r
+</BODY>\r
+</HTML>\r
diff --git a/winboard/help/html/10.htm b/winboard/help/html/10.htm
new file mode 100644 (file)
index 0000000..d333d20
--- /dev/null
@@ -0,0 +1,47 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">\r
+<HTML>\r
+<HEAD>\r
+<META HTTP-EQUIV="Content-Type" Content="text/html; charset=Windows-1252">\r
+<TITLE>Buttons</TITLE>\r
+</HEAD>\r
+\r
+<BODY BGCOLOR="#FFFFFF" TEXT="#000000">\r
+\r
+\r
+\r
+<P><B><A NAME="buttons"></A>BUTTONS</B></P>\r
+\r
+\r
+\r
+<P><B>&lt;&lt;</B></P>\r
+\r
+<P>Same as <A HREF="06.htm#backtostart">Back to Start</A>.</P>\r
+\r
+\r
+\r
+<P><B>&lt;</B></P>\r
+\r
+<P>Same as <A HREF="06.htm#backward">Backward</A>.</P>\r
+\r
+\r
+\r
+<P><B>P</B></P>\r
+\r
+<P>Same as <A HREF="04.htm#pause">Pause</A>. The button label changes to <B>C</B> while WinBoard is pausing.</P>\r
+\r
+\r
+\r
+<P><B>&gt;</B></P>\r
+\r
+<P>Same as <A HREF="06.htm#forward">Forward</A>.</P>\r
+\r
+\r
+\r
+<P><B>&gt;&gt;</B></P>\r
+\r
+<P>Same as <A HREF="06.htm#forwardtoend">Forward to End</A>.</P>\r
+\r
+<P><font color="#3333ff">Note that using the mouse wheel has the same effect as using the &lt; or &gt; button.</font></P>\r
+\r
+</BODY>\r
+</HTML>\r
diff --git a/winboard/help/html/11.htm b/winboard/help/html/11.htm
new file mode 100644 (file)
index 0000000..dcc4d4b
--- /dev/null
@@ -0,0 +1,35 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">\r
+<HTML>\r
+<HEAD>\r
+<META HTTP-EQUIV="Content-Type" Content="text/html; charset=Windows-1252">\r
+<TITLE>Command Line Options</TITLE>\r
+</HEAD>\r
+\r
+<BODY BGCOLOR="#FFFFFF" TEXT="#000000">\r
+\r
+\r
+\r
+<P><B><A NAME="options"></A><SUP></SUP>COMMAND LINE OPTIONS</B></P>\r
+\r
+<P>All WinBoard options can be set either on the command line (if you start WinBoard by typing into an MSDOS Prompt box), in the Properties/Shortcut/Target box of a Windows shortcut, in a <A HREF="19.htm#settings">settings file</A>, or in the Additional Options box of the WinBoard startup dialog. Exactly the same syntax is used in all four places. Most options can also be set from the menus and saved using <A HREF="07.htm#savesettings">Save Settings Now</A> or <A HREF="07.htm#savesettingsonexit">Save Settings on Exit</A>, so most people will not need to read this section.</P>\r
+\r
+<P>Most options have two names, a long one that is easy to read and a short one that is easy to type. To turn on a boolean (true/false) option <I>opt</I>, you can just give its short name preceded by a minus sign or slash (-<I>opt</I> or /<I>opt</I>); to turn one off, prefix the short name by an Â“x” or an extra minus sign (-x<I>opt</I> or /-<I>opt</I>). To set any other kind of option, or to set a boolean option using its long name, give the value after the name, separated by a space, colon, or equal sign. (-<I>opt</I> 23 or /<I>option</I>:true). If a string option contains spaces or special characters, enclose it in double quotes and use the \ quoting convention of C to name the special characters. Alternatively, you can enclose a string value in curly braces (/opt={string}), as long as the value does not contain a closing curly brace. If a filename option contains spaces, enclose it in either single or double quotes. In filename options, the \ character is not treated specially, so use single quotes around the outside of the value if it has double quotes inside (and vice versa).</P>\r
+\r
+<P>When you start WinBoard, it will pop up the Startup dialog box unless you provide sufficient options on the command line for WinBoard to determine which major mode to be in and what engines to use or chess server to connect to. To bypass this box, you must at minimum give one of the three options <A HREF="12.htm#cp">/cp</A>, <A HREF="14.htm#ics">/ics</A>, or <A HREF="18.htm#ncp">/ncp</A>.  If you give the /cp option, you must also give the <A HREF="12.htm#fcp">/fcp</A> and <A HREF="12.htm#scp">/scp</A> options. If you give the /ics option, you must also give the <A HREF="14.htm#icshost">/icshost</A> option.</P>\r
+\r
+<P><A HREF="12.htm">Chess Engine Options</A></P>\r
+\r
+<P><A HREF="13.htm">UCI Engine Support                  !NEW!</A></P>\r
+\r
+<P><A HREF="14.htm">Internet Chess Server Options</A></P>\r
+\r
+<P><A HREF="15.htm">Load and Save Options</A></P>\r
+\r
+<P><A HREF="16.htm">User Interface Options</A></P>\r
+\r
+<P><A HREF="17.htm">Adjudication Options                   !NEW!</A></P>\r
+\r
+<P><A HREF="18.htm">Other Options</A></P>\r
+\r
+</BODY>\r
+</HTML>\r
diff --git a/winboard/help/html/12.htm b/winboard/help/html/12.htm
new file mode 100644 (file)
index 0000000..014f013
--- /dev/null
@@ -0,0 +1,221 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">\r
+<HTML>\r
+<HEAD>\r
+<META HTTP-EQUIV="Content-Type" Content="text/html; charset=Windows-1252">\r
+<TITLE>Chess Engine Options</TITLE>\r
+</HEAD>\r
+\r
+<BODY BGCOLOR="#FFFFFF" TEXT="#000000">\r
+\r
+\r
+\r
+<P><B><A NAME="chessengineoptions"></A>Chess Engine Options</B></P>\r
+\r
+\r
+\r
+<P><B><A NAME="cp"></A>/cp</B> or<B> /xcp</B>,<B> </B>or<B> <A NAME="chessprogram"></A>/chessProgram <I>true|false</I></B></P>\r
+\r
+<P>If true, puts WinBoard in chess engine mode. In this mode, you can play against a chess program running on your PC or use it as an analysis partner.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="tc"></A>/tc </B>or<B> <A NAME="timecontrol"></A>/timeControl <I>minutes[:seconds]</I></B></P>\r
+\r
+<P>Each player begins with his clock set to the timeControl period. Default: 5 minutes. The additional options movesPerSession and timeIncrement are mutually exclusive.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="mps"></A>/mps </B>or<B> <A NAME="movespersession"></A>/movesPerSession <I>moves</I></B></P>\r
+\r
+<P>When both players have made movesPerSession moves, a new timeControl period is added to both clocks. Default: 40 moves.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="inc"></A>/inc </B>or<B> <A NAME="timeincrement"></A>/timeIncrement <I>seconds</I></B></P>\r
+\r
+<P>If this option is specified, movesPerSession is ignored. Instead, after each player's move, timeIncrement seconds are added to his clock. Use -timeIncrement 0 if you want to require the entire game to be played in one timeControl period, with no increment. Default: -1, which specifies movesPerSession mode.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="clock"></A>/clock </B>or <B>/xclock</B>, or<B> <A NAME="clockmode"></A>/clockMode <I>true|false</I></B></P>\r
+\r
+<P>Determines whether or not to display the chess clocks. If clockMode is False, the clocks are not shown, but the side that is to play next is still highlighted. Also, unless searchTime is set, the chess engine still keeps track of the clock time and uses it to determine how fast to make its moves.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="st"></A>/st </B>or<B> <A NAME="searchtime"></A>/searchTime <I>minutes[:seconds]</I></B></P>\r
+\r
+<P>Tells the chess engine to spend at most the given amount of time searching for each of its moves. Without this option, the engine chooses its search time based on the number of moves and amount of time remaining until the next time control. Setting this option also sets clockMode to False.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="sd"></A>/depth </B>or<B> <A NAME="searchdepth"></A>/searchDepth <I>number</I></B></P>\r
+\r
+<P>Tells the chess engine to look ahead at most the given number of moves when searching for a move to make. Without this option, the engine chooses its search depth based on the number of moves and amount of time remaining until the next time control. With the option, the engine will cut off its search early if it reaches the specified depth.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="firstnps"></A><font color="#008000">/firstNPS <I>number</I></font></B></P>\r
+\r
+\r
+\r
+<P><B><A NAME="secondnps"></A><font color="#008000">/secondNPS <I>number</I></font></B></P>\r
+\r
+<P><font color="#008000">Tells the chess engine to use an internal time standard based on its node count, rather then wall-clock time, to make its timing decisions. The time in virtual seconds should be obtained by dividing the node count through the given <I>number</I>, like the number was a rate in nodes per second. WinBoard will manage the clocks in accordance with this, relying on the number of nodes reported by the engine in its thinking output. If <I>number</I> equals zero, it can obviously not be used to convert nodes to seconds, and the time reported by the engine is used to decrement the WinBoard clock. The engine is supposed to report in CPU time it uses, rather than wall-clock time in this mode. This option can provide fairer conditions for engine-engine matches on heavily loaded machines, or with very fast games (where the wall clock is too inaccurate). Â“Show Thinking” must be on for this option to work. Not many engines might support this yet!</font></P>\r
+\r
+\r
+\r
+<P><B><A NAME="firsttimeodds"></A><font color="#008000">/firstTimeOdds <I>factor</I></font></B></P>\r
+\r
+\r
+\r
+<P><B><A NAME="secondtimeodds"></A><font color="#008000">/secondTimeOdds <I>factor</I></font></B></P>\r
+\r
+<P><font color="#008000">Reduces the time given to the mentioned engine by the given <I>factor</I>. If pondering is off, the effect is indistinguishable from what would happen if the engine was running on a <I>factor</I> times slower machine.</font></P>\r
+\r
+\r
+\r
+<P><B><A NAME="timeoddsmode"></A><font color="#008000">/timeOddsMode <I>mode</I></font></B></P>\r
+\r
+<P><font color="#008000">This option determines how the case is handled when both engines have a time-odds handicap. If mode=1, the engine that gets the most time will always get the nominal time, as specified by the time-control options, and its opponentÂ’s time is normalized similarly. If mode=0, both play with reduced time.</font></P>\r
+\r
+\r
+\r
+<P><B><A NAME="ponder"></A>/ponder</B> or <B>/xponder</B>,<B> </B>or<B> <A NAME="pondernextmove"></A>/ponderNextMove <I>true|false</I></B></P>\r
+\r
+<P>Sets the <A HREF="07.htm#pondernextmovecmd">Ponder Next Move</A> option. Default: True.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="thinking"></A>/thinking</B> or <B>/xthinking</B>,<B> </B>or<B> <A NAME="showthinking"></A>/showThinking <I>true|false</I></B></P>\r
+\r
+<P>Sets the <A HREF="07.htm#showthinkingcmd">Show Thinking</A> option. Default: False.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="periodic"></A>/periodic </B>or <B>/xperiodic</B>, or<B> <A NAME="periodicupdates"></A>/periodicUpdates <I>true|false</I></B></P>\r
+\r
+<P>Sets the <A HREF="07.htm#periodicupdatescmd">Periodic Updates</A> option. Default: True.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="mg"></A>/mg </B>or<B> <A NAME="matchgames"></A>/matchGames <I>n</I></B></P>\r
+\r
+<P>Automatically runs an <I><B>n</B>-</I>game match between two chess engines, with alternating colors. If the <A HREF="15.htm#loadgamefile">loadGameFile</A> or <A HREF="15.htm#loadpositionfile">loadPositionFile</A> option is set, WinBoard will start each game with the given opening moves or the given position; otherwise, the games will start with the standard initial chess position. If the <A HREF="15.htm#savegamefile">saveGameFile</A> option is set, a move record for the match will be appended to the specified file. If the <A HREF="15.htm#savepositionfile">savePositionFile</A> option is set, the final position reached in each game of the match will be appended to the specified file. When the match is over, WinBoard will display the match score and exit. Default: 0 (do not run a match).</P>\r
+\r
+\r
+\r
+<P><B><A NAME="mm"></A>/mm </B>or <B>/xmm</B>, or<B> <A NAME="matchmode"></A>/matchMode <I>true|false</I></B></P>\r
+\r
+<P>Provided for backward compatibility. If true and matchGames=0, sets matchGames=1.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="matchpause"></A><font color="#008000">/matchPause <I>number</I></font></B></P>\r
+\r
+<P><font color="#008000">Sets the length of the pause between games in match mode to <I>number</I> msec. Default value is 10000, i.e. 10 sec. (If this pause is too short, engines not implementing Â‘pingÂ’ will sometimes send the last move of their previous game only when a new game has started, at which time the move is illegal, and causes them to forfeit the game.)</font></P>\r
+\r
+\r
+\r
+<P><B><A NAME="fd"></A>/fd </B>or<B> <A NAME="firstdirectory"></A>/firstDirectory <I>dir<BR>\r
+</I><A NAME="sd"></A>/sd </B>or<B> <A NAME="seconddirectory"></A>/secondDirectory <I>dir</I><SUP> </SUP><BR>\r
+<A NAME="fcp"></A>/fcp </B>or<B> <A NAME="firstchessprogram"></A>/firstChessProgram <I>command<BR>\r
+</I><A NAME="scp"></A>/scp </B>or<B> <A NAME="secondchessprogram"></A>/secondChessProgram <I>command</I><SUP> </SUP></B></P>\r
+\r
+<P>Names of the chess engines and working directories in which they are to be run. The second chess engine is started only in Two Machines (match) mode. These arguments are parsed as filenames; that is, the \ character is interpreted literally, not as a C-style escape.</P>\r
+\r
+<P>The <I>dir</I> argument specifies the initial working directory for the chess engine. It should usually be the directory where the engine and its working files are installed. If <I>dir</I> is not an absolute pathname, it is interpreted relative to the directory from which WinBoard.exe itself was loaded. The <I>dir</I> argument is ignored if the chess engine is being run on a remote machine (see firstHost and secondHost below). The default value for <I>dir </I>"", meaning that the chess engine is expected to be installed in the same directory as WinBoard.</P>\r
+\r
+<P>The <I>command</I> argument is actually the command line to the chess engine, so if the engine itself needs command line arguments, you can include them by enclosing <I>command</I> in single or double quotes. If the engine name or an engine argument has a space in it, use single quotes around the whole <I>command, </I>and inside them use double quotes around each item that contains spaces. If the engine name has more than one period in it (for example, <CODE>QChess1.5.exe</CODE>), you must include the "<CODE>.exe</CODE>" extension; otherwise you can leave it out. The default value for <I>command</I> is "", which brings up the startup dialog to ask which engines you want.</P>\r
+\r
+<P>Examples:</P>\r
+\r
+<PRE><CODE>WinBoard /cp /fd="C:\Program Files\Crafty" /fcp=WCrafty-15.12.exe /scp=GNUChess\r
+WinBoard /cp /fd="C:\Miracle Games" /fcp='"Miracle Chess.exe" /wow' /scp=GNUChess</CODE></PRE>\r
+\r
+<P><font color="#008000">The basic rule is thus that what is inside the quotes delimiting the argument to /fcp and /scp, all goes to the engine, and is ignored by WinBoard. WinBoard 4.3.13 and later, however, knows an exception to this: If, within the quotes, the word WBopt appears, everything that follows this word will be interpreted as a WinBoard argument, in stead of being passed to the engine on startup of the latter. (The WBopt itself is also not passed to the engine.) This possibility of hiding WinBoard arguments in the engine command is provided in order to create options that follow the engine in a tournament, when a tournament manager like PSWBTM is used to invoke WinBoard. Because, in order to apply to a given engine, some options need to know if they apply to first or second engine, which might vary during the tournament, options hidden inside the engine command-line can contain Â‘%sÂ’ which will be replaced at the time the option is used by Â‘firstÂ’ or Â‘secondÂ’, as applicable.</font></P>\r
+\r
+<P><font color="#008000">Examples:</font></P>\r
+\r
+<font color="#008000"><PRE><CODE>WinBoard /cp /fd="C:\Engines\Crafty" /fcp=”WCrafty-15.12 WBopt /%sTimeOdds=2” /scp=GNUChess</CODE></PRE></font>\r
+\r
+<P><font color="#008000">Meaning that Crafty will have to play with half the time GNUChess will get.</font></P>\r
+\r
+<PRE></PRE>\r
+\r
+\r
+\r
+<P><B><A NAME="fh"></A>/fh </B>or<B> <A NAME="firsthost"></A>/firstHost <I>host<BR>\r
+</I><A NAME="sh"></A>/sh </B>or<B> <A NAME="secondhost"></A>/secondHost <I>host</I></B></P>\r
+\r
+<P>Hosts on which the chess engines are to run. The default for each is "localhost". If you specify another host, WinBoard<I> </I>uses <A HREF="18.htm#rsh">rsh</A> to run the chess program there. The /fd and /sd flags do not work in conjunction with these flags; if you need a remote chess engine to run somewhere other than your default login directory on the remote machine, you will have to include a "cd" command in the argument to /fcp or /scp.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="initstring"></A>/firstInitString </B>or <B>/initString <I>string<BR>\r
+</I><A NAME="secondinitstring"></A>/secondInitString <I>string</I></B></P>\r
+\r
+<P>The strings that are sent to initialize the chess engines. Default: "new\nrandom\n". The "\n" sequences represent newlines. You can type "\n" on the command line or in a <A HREF="19.htm#settings">settings file</A>, and WinBoard will convert it to a newline.</P>\r
+\r
+<P>All chess engines require the "new" command to start a new game.</P>\r
+\r
+<P>You can remove the "random" command if you like; including it causes GNU Chess to randomize its move selection slightly so that it doesn't play the same moves in every game. Even without "random", GNU Chess randomizes its choice of moves from its opening book. You can also try adding other commands to the initString; see the GNU Chess documentation (gnuchess.txt) for details. Crafty ignores the "random" command; see its documentation for the commands it accepts.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="initstring"></A>/firstComputerString <I>string<BR>\r
+</I><A NAME="secondinitstring"></A>/secondComputerString <I>string</I></B></P>\r
+\r
+<P>If the chess engine is playing against another computer program (whether locally or on a chess server), by default the command "computer\n" is sent to it. Some chess engines change their playing style when they receive this command. If you do not want the engine to know when it is playing another computer, you can set the string to "".</P>\r
+\r
+<P><font color="#008000">Note that the computer string is sent to the engine after most other initialization commands, and is thus ideal for hiding a WinBoard-protocol command in that should be sent only to one engine, when the WinBoard option that normally specifies this command cannot be differentiated by engine, but s always sent to both engines. E.g. if you want one of the engines to ponder, and the other not. Because it is sent last, in can overrule earlier commands.</font></P>\r
+\r
+\r
+\r
+<P><B><A NAME="fb"></A>/fb </B>or <B>/xfb</B>, or<B> <A NAME="firstplaysblack"></A>/firstPlaysBlack <I>true|false</I></B></P>\r
+\r
+<P>In games between two chess programs, the firstChessProgram normally plays white. (This is a change from earlier versions of WinBoard.) If this option is True, firstChessProgram plays black. In a multi-game match, this option affects the colors only for the first game; they still alternate in subsequent games.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="reuse"></A>/reuse<SUP> </SUP></B>or <B>/xreuse</B>, or <B><A NAME="reusefirst"></A>/reuseFirst<I> true|false<BR>\r
+</I><A NAME="reuse2"></A>/reuse2<SUP> </SUP></B>or <B>/xreuse2</B>, or <B><A NAME="reusesecond"></A>/reuseSecond<I> true|false</I></B></P>\r
+\r
+<P>If this option is True (the default), WinBoard<I> </I>uses the same chess engine process repeatedly when playing multiple games. If the option is False, WinBoard kills off the chess engine after every game and starts a fresh one for the next game. Starting a fresh chess engine can be slow, so it is not recommended. However, some chess engines may not work properly when reused, such as versions of Crafty earlier than 12.0.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="firstprotocolversion"></A>/firstProtocolVersion <I>ver<BR>\r
+</I><A NAME="secondprotocolversion"></A>/secondProtocolVersion <I>ver</I></B></P>\r
+\r
+<P>This option specifies which version of the chess engine communication protocol to use. By default, version-number is 2. In version 1, the "protover" command is not sent to the engine; since version 1 is a subset of version 2, nothing else changes. Other values for version-number are not supported.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="firstscoreabs"></A><font color="#ff0000">/firstScoreAbs<I> true|false<BR>\r
+</I></font><A NAME="secondscoreabs"></A><font color="#ff0000">/secondScoreAbs<I> true|false</I></font></B></P>\r
+\r
+<P><font color="#ff0000">If this option is true, the score reported by the engine is taken to be that in favor of white, even when the engine plays black. Important when winboard uses the score for adjudications, or in PGN reporting. This can be a useful option in combination with WBopt in the engine command-line, see under /fcp.</font></P>\r
+\r
+\r
+\r
+<P><B><A NAME="niceengines"></A><font color="#3333ff">/niceEngines<I> priority</I></font></B></P>\r
+\r
+<P><font color="#3333ff">This option allows you to lower the priority of the engine processes, so that the generally insatiable hunger for CPU time of chess engines does not interfere so much with smooth operation of WinBoard (or the rest of your system). Try priority = 10 or even 20 to lower the priority of the engines. Negative values could increase the engine priority, which is not recommended.</font></P>\r
+\r
+\r
+\r
+<P><B><A NAME="firstoptions"></A><font color="#3333ff">/firstOptions<I> string</font><BR>\r
+</I><A NAME="secondoptions"></A><font color="#3333ff">/secondOptions<I> string</I></font></B></P>\r
+\r
+<P><font color="#3333ff">The given string is a comma-separated list of (option name, option value) pairs, like the following example: Â“style=Karpov,blunder rate=0”. If the options announced by the engine at startup through the feature commands of WinBoard protocol matches one of the option names (i.e. Â“style” or Â“blunder rate”), it would be set to the given value (i.e. Â“Karpov” or 0) through a corresponding option command to the engine. This provided that the type of the value (text or numeric) matches as well.</font></P>\r
+\r
+\r
+\r
+<P><B><A NAME="firstneedsnoncompliantfen"></A><font color="#3333ff">/firstNeedsNoncompliantFEN<I> string</font><BR>\r
+</I><A NAME="secondneedsnoncompliantfen"></A><font color="#3333ff">/secondNeedsNoncompliantFEN<I> string</I></font></B></P>\r
+\r
+<P><font color="#3333ff">The castling rights and e.p. fields of the FEN sent to the mentioned engine with the setboard command will be replaced by the given string. This can for instance be used to run engines that do not understand Chess960 FENs in variant fischerandom, to make them at least understand the opening position, through setting the string to Â“KQkq -”. (Note you also have to give the e.p. field!) Other possible applications are to provide work-arounds for engines that want to see castling and e.p. fields in variants that do not have castling or e.p. (shatranj, courier, xiangqi, shogi) so that WinBoard would normally omit them (string = Â“- -“, or to add variant-specific fields that are not yet supported by WinBoard (e.g. to indicate the number of checks in 3check).</font></P>\r
+\r
+</BODY>\r
+</HTML>\r
diff --git a/winboard/help/html/13.htm b/winboard/help/html/13.htm
new file mode 100644 (file)
index 0000000..eb1471f
--- /dev/null
@@ -0,0 +1,71 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">\r
+<HTML>\r
+<HEAD>\r
+<META HTTP-EQUIV="Content-Type" Content="text/html; charset=Windows-1252">\r
+<TITLE>UCI Engine Support</TITLE>\r
+</HEAD>\r
+\r
+<BODY BGCOLOR="#FFFFFF" TEXT="#000000">\r
+\r
+\r
+\r
+<P><B><A NAME="ucienginesupport"></A><font color="#ff0000">UCI Engine Support</font></B></P>\r
+\r
+\r
+\r
+<P><B><A NAME="fuci"></A><font color="#ff0000">/fUCI </B>or<B> <A NAME="firstisuci"></A>/firstIsUCI<I> true|false</I></font></B></P>\r
+\r
+\r
+\r
+<P><B><font color="#ff0000"><A NAME="suci"></A>/sUCI </B>or<B> <A NAME="secondisuci"></A>/secondIsUCI<I> true|false</I></B></font></P>\r
+\r
+<P><font color="#ff0000">Indicates if the mentioned engine executable file is an UCI engine, and should be run with the aid of the Polyglot adapter rather than directly. WinBoard will then pass the other UCI options and engine name to Polyglot through a .ini temporary file ceated for the purpose.</font></P>\r
+\r
+\r
+\r
+<P><B><A NAME="polyglotdir"></A><font color="#ff0000">/PolyglotDir <I>filename</I></font></B></P>\r
+\r
+<P><font color="#ff0000">Gives the name of the folder in which Polyglot is installed.</font></P>\r
+\r
+\r
+\r
+<P><B><A NAME="usepolyglotbook"></A><font color="#ff0000">/usePolyglotBook <I>true|false</I></font></B></P>\r
+\r
+<P><font color="#ff0000">Specifies if the Polygot book should be used.</font></P>\r
+\r
+\r
+\r
+<P><B><A NAME="polyglotbook"></A><font color="#ff0000">/PolyglotBook <I>filename</I></font></B></P>\r
+\r
+<P><font color="#ff0000">Gives the filename of the opening book that Polyglot should use.</font></P>\r
+\r
+\r
+\r
+<P><B><A NAME="fnoownbookuci"></A><font color="#ff0000">/fNoOwnBookUCI </B>or<B> <A NAME="firstxbook"></A>/firstXBook </B>or<B> <A NAME="firsthasownbookuci"></A>/firstHasOwnBookUCI<I> true|false</I></font></B></P>\r
+\r
+\r
+\r
+<P><B><A NAME="snoownbookuci"></A><font color="#ff0000">/sNoOwnBookUCI </B>or<B> <A NAME="secondxbook"></A>/secondXBook </B>or<B> <A NAME="secondhasownbookuci"></A>/secondHasOwnBookUCI<I> true|false</I></B></font></P>\r
+\r
+<P><font color="#ff0000">Indicates if the mentioned engine lacks an opening book or not.</font> <font color="#3333ff">Engines that have an own opening book will not use the GUI book (as given by /polyglotBook) even if /usePolyglotBook is set to true.</font></P>\r
+\r
+\r
+\r
+<P><B><A NAME="defaulthashsize"></A><font color="#ff0000">/defaultHashSize <I>number</I></font></B></P>\r
+\r
+<P><font color="#ff0000">Sets the size of the hash table to <I>number</I> MegaBytes.</font></P>\r
+\r
+\r
+\r
+<P><B><A NAME="defaultcachesizeegtb"></A><font color="#ff0000">/defaultCacheSizeEGTB <I>number</I></font></B></P>\r
+\r
+<P><font color="#ff0000">Sets the size of the EGTB cache to <I>number</I> MegaBytes.</font></P>\r
+\r
+\r
+\r
+<P><B><A NAME="defaultpathegtb"></A><font color="#ff0000">/defaultPathEGTB <I>filename</I></font></B></P>\r
+\r
+<P><font color="#ff0000">Gives the name of the folder where the end-game tablebases are installed.</font></P>\r
+\r
+</BODY>\r
+</HTML>\r
diff --git a/winboard/help/html/14.htm b/winboard/help/html/14.htm
new file mode 100644 (file)
index 0000000..5801ca8
--- /dev/null
@@ -0,0 +1,167 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">\r
+<HTML>\r
+<HEAD>\r
+<META HTTP-EQUIV="Content-Type" Content="text/html; charset=Windows-1252">\r
+<TITLE>Internet Chess Server Options</TITLE>\r
+</HEAD>\r
+\r
+<BODY BGCOLOR="#FFFFFF" TEXT="#000000">\r
+\r
+\r
+\r
+<P><B><A NAME="internetchessserveroptions"></A>Internet Chess Server Options</B></P>\r
+\r
+\r
+\r
+<P><B><A NAME="ics"></A>/ics </B>or <B>/xics</B>, or<B> <A NAME="internetchessservermode"></A>/internetChessServerMode<I> true|false</I></B></P>\r
+\r
+<P>Connect with an Internet Chess Server to play chess against its other users, observe games they are playing, or review games that have recently finished. See <A HREF="04.htm#icsclient">ICS Client</A> Default: False.</P>\r
+\r
+<P>You can create a script file containing ICS commands that WinBoard will type in for you whenever you connect to the ICS. See <A HREF="#icslogon">ICS Logon</A>.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="icshost"></A>/icshost </B>or<B> <A NAME="internetchessserverhost"></A>/internetChessServerHost <I>hostname</I></B></P>\r
+\r
+<P>The host name or numeric address of the Internet Chess Server to connect to when in ICS mode. The default is the empty string, which causes WinBoard to pop up a menu of known ICS sites. The file ics-addresses.txt in the WinBoard distribution gives slightly more information on these sites. It includes their numeric addresses, which you can use if your site does not have a working name server.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="icsport"></A>/icsport </B>or<B> <A NAME="internetchessserverport"></A>/internetChessServerPort <I>portnumber</I></B></P>\r
+\r
+<P>The port number to use when connecting to a chess server in ICS mode. Default: 5000.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="via"></A>/icshelper <I>program</I></B></P>\r
+\r
+\r
+\r
+<P>An external helper program used to communicate with the chess server. Typically <I>timestamp</I> for the ICC (chessclub.com) or <I>timeseal</I> for FICS (freechess.org, eics.daimi.aau.dk, etc.). This option is shorthand for Â“/useTelnet /telnetProgram <I>program</I>”<B>.</B></P>\r
+\r
+\r
+\r
+<P><B><A NAME="telnet"></A>/telnet</B> or <B>/xtelnet</B>,<B> </B>or<B> <A NAME="usetelnet"></A>/useTelnet<I> true|false</I></B></P>\r
+\r
+<P>This option is poorly named; it should be called <B>/useHelper</B>. If set to True, it instructs WinBoard to use an external helper program to communicate with the ICS, as specified by the telnetProgram option. The external program must be a pure console application that can communicate with WinBoard through pipes; the Windows telnet application is not suitable. If the option is False (the default), WinBoard communicates with the ICS by opening a Winsock TCP socket and using its own internal implementation of the telnet protocol.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="gateway"></A>/gateway <I>hostname</I></B></P>\r
+\r
+<P>If this option is set to a host name, WinBoard uses <A HREF="18.htm#rsh">rsh</A> to run the telnetProgram remotely on the given host to communicate with the Internet Chess Server instead of using its own internal implementation of the telnet protocol. See the <A HREF="21.htm">FIREWALLS</A> section below for an explanation of when this option is useful.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="telnetprogram"></A>/telnetProgram <I>program</I></B></P>\r
+\r
+<P>This option is poorly named; it should be called <B>/helperProgram</B>. It gives the name of the remote or external helper program to be used with the gateway or useTelnet option. The default is "telnet". The telnet program is invoked with the value of internetChessServer as the first argument and the value of internetChessServerPort as the second argument on its command line.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="icscom"></A>/icscom </B>or<B> <A NAME="internetchessservercomport"></A>/internetChessServerComPort <I>name</I></B></P>\r
+\r
+<P>If this option is set, WinBoard communicates with the Internet Chess Server using a serial communication port instead of a network connection. Use this option if your machine is not connected to a network (not even via SLIP or PPP), but you do have Internet access through another machine by dialing in using a modem or by connecting directly to a serial terminal port. Example:</P>\r
+\r
+<PRE><CODE>WinBoard /ics /icscom:com1</CODE></PRE>\r
+\r
+<P>After you start WinBoard in this way, type whatever modem commands are necessary to dial out to your Internet provider and log in. You may need to turn off <A HREF="07.htm#locallineediting">Local Line Editing</A> on the Options menu while typing commands to the modem, but turn it on again afterwards. Then telnet to the ICS, using a command like "telnet chessclub.com 5000". Important: See the paragraph in the <A HREF="22.htm">LIMITATIONS</A> section below about extra echoes.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="comportsettings"></A>/comPortSettings</B> <B><I>“dataRate,dataBits,parity,stopBits,flow”</I></B></P>\r
+\r
+<P>This option allows serial port parameters to be set from the command line or a settings file. The values are simply filled in to the <A HREF="07.htm#communications">Communications</A> dialog.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="icslogon"></A>/icslogon </B>or<B> <A NAME="internetchessserverlogonscript"></A>/internetChessServerLogonScript <I>filename</I></B></P>\r
+\r
+<P>This option lets you change the name used for the <A HREF="#icslogon">ICS Logon</A> file. Default: "ICS.ini". The filename is interpreted relative to WinBoard's installation directory (the directory containing WinBoard.exe).</P>\r
+\r
+\r
+\r
+<P><B><A NAME="autocomm"></A>/autocomm </B>or <B>/xautocomm</B>, or<B> <A NAME="autocomment"></A>/autoComment<I> true|false</I></B></P>\r
+\r
+<P>Sets the <A HREF="07.htm#autocommentcmd">Auto Comment</A> option. Default: False.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="autoflag"></A>/autoflag</B> or <B>/xautoflag</B>,<B> </B>or<B> <A NAME="autocallflag"></A>/autoCallFlag<I> true|false</I></B></P>\r
+\r
+<P>Sets the <A HREF="#autoflag">Auto Flag</A> option. Default: False.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="autobs"></A>/autobs</B> or <B>/xautobs</B>,<B> </B>or<B> <A NAME="autoobservecmd"></A>/autoObserve<I> true|false</I></B></P>\r
+\r
+<P>Sets the <A HREF="#autoobservecmd">Auto Observe</A> option. Default: False.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="autokibitz"></A><font color="#008000">/autoKibitz</font></B></P>\r
+\r
+<P><font color="#008000">Kibitzes the engines last thinking output (depth, score, time, speed, PV) to the ICS in zippy mode. Show Thinking must be on for this option to work.</font> <font color="#3333ff">Also diverts similar kibitz information of an opponent engine that is playing you through the ICS to the engine-output window, as if the engine was playing locally.</font></P>\r
+\r
+\r
+\r
+<P><B><A NAME="moves"></A>/moves</B> or <B>/xmoves</B>,<B> </B>or<B> <A NAME="getmovelist"></A>/getMoveList<I> true|false</I></B></P>\r
+\r
+<P>Sets the <A HREF="07.htm#getmovelistcmd">Get Move List</A> option. Default: True.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="edit"></A>/edit<SUP> </SUP></B> or <B>/xedit</B>,<B> </B>or<B> <A NAME="locallineeditingoption"></A>/localLineEditing<I> true|false</I></B></P>\r
+\r
+<P>Sets the <A HREF="07.htm#locallineediting">Local Line Editing</A> option. Default: True.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="quiet"></A>/quiet </B>or <B>/xquiet</B>, or<B> <A NAME="quietplay"></A>/quietPlay<I> true|false</I></B></P>\r
+\r
+<P>Sets the <A HREF="07.htm#quietplaycmd">Quiet Play</A> option. Default: False</P>\r
+\r
+\r
+\r
+<P><B><A NAME="opt_blindfold"></A>/blindfold <I>true|false</I></B></P>\r
+\r
+<P>Sets the <A HREF="07.htm#blindfoldcmd">Blindfold</A> option. Default: False</P>\r
+\r
+\r
+\r
+<P><B><A NAME="pre"></A>/pre </B>or<B> <A NAME="xpre"></A>/xpre</B>, or<B> <A NAME="premove"></A>/premove<I> true|false</I></B></P>\r
+\r
+<P>Sets the <A HREF="07.htm#premovecmd">Premove</A> option. If set to True, the premove feature is enabled. If set to False, premove is disabled and the other <A HREF="07.htm#premovecmd">Premove</A> settings are ignored. Default: False.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="prewhite"></A>/prewhite </B>or<B> <A NAME="xprewhite"></A>/xprewhite</B>, or <B><A NAME="premovewhite"></A>/premoveWhite<I> true|false</I></B></P>\r
+\r
+\r
+\r
+<P><B><A NAME="premovewhitetext"></A>/premoveWhiteText<I> movetext</I></B></P>\r
+\r
+<P>If <B>premoveWhite</B> is set to True and you are playing white in an ICS game, the text specified by the <B>premoveWhiteText</B> option is sent to the ICS as soon as the game starts.  These options can be set from the <A HREF="07.htm#premovecmd">Premove</A> section of the <A HREF="07.htm#icsoptions">ICS Options</A> dialog box. The default for <B>premoveWhite</B> is False.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="preblack"></A>/preblack </B>or<B> <A NAME="xpreblack"></A>/xpreblack</B>, or <B><A NAME="premoveblack"></A>/premoveBlack<I> true|false</I></B></P>\r
+\r
+\r
+\r
+<P><B><A NAME="premoveblacktext"></A>/premoveBlackText<I> movetext</I></B></P>\r
+\r
+<P>If <B>premoveBlack</B> is set to True and you are playing black in an ICS game, the text specified by the <B>premoveBlackText</B> option is sent to the ICS as soon as the first move is received from your opponent, even if you make a different premove on the board before the first white move is received. These options can be set from the <A HREF="07.htm#premovecmd">Premove</A> section of the <A HREF="07.htm#icsoptions">ICS Options</A> dialog box. The default for <B>premoveBlack</B> is False.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="alarm"></A>/alarm </B>or<B> <A NAME="xalarm"></A>/xalarm</B>, or <B><A NAME="icsalarm"></A>/icsAlarm <I>true|false</I></B></P>\r
+\r
+\r
+\r
+<P><B><A NAME="icsalarmtime"></A>/icsAlarmTime <I>milliseconds</I></B></P>\r
+\r
+<P>When <B>icsAlarm</B> is set to True, the <A HREF="16.htm#soundicsalarm">alarm sound</A> is played when your clock counts down to <B>icsAlarmTime</B> seconds.  For ICS games with time controls that include an increment, the alarm will sound each time the clock counts down to the <B>icsAlarmTime</B>.  The <B>icsAlarmTime</B> can be set by selecting <A HREF="07.htm#icsalarm">ICS Alarm</A> from the <A HREF="07.htm#icsoptions">ICS options</A> dialog. The default is 5 seconds.</P>\r
+\r
+</BODY>\r
+</HTML>\r
diff --git a/winboard/help/html/15.htm b/winboard/help/html/15.htm
new file mode 100644 (file)
index 0000000..cf9a52b
--- /dev/null
@@ -0,0 +1,97 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">\r
+<HTML>\r
+<HEAD>\r
+<META HTTP-EQUIV="Content-Type" Content="text/html; charset=Windows-1252">\r
+<TITLE>Load and Save Options</TITLE>\r
+</HEAD>\r
+\r
+<BODY BGCOLOR="#FFFFFF" TEXT="#000000">\r
+\r
+\r
+\r
+<P><B><A NAME="loadandsaveoptions"></A>Load and Save Options</B></P>\r
+\r
+\r
+\r
+<P><B><A NAME="lgf"></A>/lgf </B>or<B> <A NAME="loadgamefile"></A>/loadGameFile <I>filename</I><BR>\r
+<A NAME="lgi"></A>/lgi </B>or<B> <A NAME="loadgameindex"></A>/loadGameIndex <I>N</I></B></P>\r
+\r
+<P>If loadGameFile is set, WinBoard reads the specified game file at startup. You can leave out the name of this option and give just the file name, which is handy if you want to configure WinBoard as a game viewer with a browser such as the Windows Explorer or Netscape. The filename is interpreted relative to WinBoard's initial working directory. The filename "-" specifies the standard input. If there is more than one game in the file, WinBoard pops up a menu of the available games, with entries based on their PGN tags. If loadGameIndex is set to <I>N, </I>the menu is suppressed and the <I>N</I>th game found in the file is loaded immediately.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="td"></A>/td </B>or<B> <A NAME="timedelay"></A>/timeDelay <I>seconds</I></B></P>\r
+\r
+<P>Time delay between moves during <A HREF="03.htm#loadgame">Load Game</A>. Fractional seconds are allowed; try 0.4. A time delay value of -1 tells WinBoard not to step through game files automatically. Default: 1 second.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="sgf"></A>/sgf </B>or<B> <A NAME="savegamefile"></A>/saveGameFile <I>filename</I></B></P>\r
+\r
+<P>If this option is set, WinBoard appends a record of every game played to the specified file. The filename is interpreted relative to WinBoard's initial working directory. The filename "-" specifies the standard output.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="autosave"></A>/autosave</B> or <B>/xautosave</B>,<B> </B>or<B> <A NAME="autosavegames"></A>/autoSaveGames<I> true|false</I></B></P>\r
+\r
+<P>If this option is True, at the end of every game WinBoard prompts you for a filename and appends a record of the game to the file you specify. Ignored if saveGameFile is set. Default: False.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="lpf"></A>/lpf </B>or<B> <A NAME="loadpositionfile"></A>/loadPositionFile <I>filename</I><BR>\r
+<A NAME="lpi"></A>/lpi </B>or<B> <A NAME="loadpositionindex"></A>/loadPositionIndex <I>N</I></B></P>\r
+\r
+<P>If loadPositionFile is set, WinBoard loads the specified position file at startup. The filename is interpreted relative to WinBoard's initial working directory. The filename "-" specifies the standard input. If loadPositionIndex is set to <I>N</I>, the <I>N</I>th position found in the file is loaded; otherwise the first is loaded.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="spf"></A>/spf </B>or<B> <A NAME="savepositionfile"></A>/savePositionFile <I>filename</I></B></P>\r
+\r
+<P>If this option is set, WinBoard appends the final position reached in every game played to the specified file. The filename is interpreted relative to WinBoard's initial working directory. The file name "-" specifies the standard output.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="pgnextendedinfo"></A><font color="#ff0000">/pgnExtendedInfo <I>true|false</I></font></B></P>\r
+\r
+<P><font color="#ff0000">If this option is set, WinBoard saves depth, score and time used for each move that the engine found as a comment in the PGN file.</font></P>\r
+\r
+\r
+\r
+<P><B><A NAME="pgneventheader"></A><font color="#ff0000">/pgnEventHeader <I>string</I></font></B></P>\r
+\r
+<P><font color="#ff0000">Sets the name used in the PGN event tag to <I>string</I>.</font></P>\r
+\r
+\r
+\r
+<P><B><A NAME="saveoutofbookinfo"></A><font color="#ff0000">/saveOutOfBookInfo <I>true|false</I></font></B></P>\r
+\r
+<P><font color="#ff0000">Include the information on how the engine(s) game out of its opening book in a special Â‘annotatorÂ’ tag with the PGN file.</font></P>\r
+\r
+\r
+\r
+<P><B><A NAME="oldsave"></A>/oldsave </B>or <B>/xoldsave</B>, or<B> <A NAME="oldsavestyle"></A>/oldSaveStyle<I> true|false</I></B></P>\r
+\r
+<P>If this option is False (the default), WinBoard saves games in PGN (portable game notation) and positions in FEN (Forsythe-Edwards notation). If the option is True, a save style that is compatible with older versions of WinBoard (and of xboard) is used instead.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="debug"></A>/debug</B> or <B>/xdebug</B>,<B> </B>or<B> <A NAME="debugmode"></A>/debugMode<I> true|false</I></B></P>\r
+\r
+<P>Writes debugging information to the file Â“WinBoard.debug”, including all commands sent to the chess engine, all output received from it, and all commands sent to ICS. You can press Ctrl+Alt+F12 to turn this option on or off while WinBoard is running. Each time you turn it on, any existing debug file is overwritten.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="debugfile"></A><font color="#ff0000">/debugFile<SUP> </SUP> <I>filename</I> </B>or<B> <A NAME="nameofdebugfile"></A>/nameOfDebugFile<I> filename</I></B></font></P>\r
+\r
+<P><font color="#ff0000">Sets the name of the file to which WinBoard saves debug information (including all communication to and from the engines).</font></P>\r
+\r
+\r
+\r
+<P><B><A NAME="enginedebugoutput"></A><font color="#008000">/engineDebugOutput<SUP> </SUP> <I>number</I></font></B></P>\r
+\r
+<P><font color="#008000">Specifies how WinBoard should handle unsollicited output from the engine, with respect to saving it in the debug file. The output is further (hopefully) ignored. If <I>number</I>=0, WinBoard refrains from writing such spurious output to the debug file. If<I> number</I>=1, all engine output is written faithfully to the debug file. If <I> number</I>=2, any protocol-violating line is prefixed with a Â‘#Â’ character, as the engine itself should have done if it wanted to submit info for inclusion in the debug file.</font></P>\r
+\r
+<P><font color="#008000">This option is provided for the benefit of applications that use the debug file as a source of information, such as the broadcaster of live games TLCV / TLCS. Such applications can be protected from spurious engine output that might otherwise confuse them.</font></P>\r
+\r
+</BODY>\r
+</HTML>\r
diff --git a/winboard/help/html/16.htm b/winboard/help/html/16.htm
new file mode 100644 (file)
index 0000000..47bd778
--- /dev/null
@@ -0,0 +1,493 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">\r
+<HTML>\r
+<HEAD>\r
+<META HTTP-EQUIV="Content-Type" Content="text/html; charset=Windows-1252">\r
+<TITLE>User Interface Options</TITLE>\r
+</HEAD>\r
+\r
+<BODY BGCOLOR="#FFFFFF" TEXT="#000000">\r
+\r
+\r
+\r
+<P><B><A NAME="userinterfaceoptions"></A>User Interface Options</B></P>\r
+\r
+\r
+\r
+<P><B><A NAME="firstlogo"></A><font color="#3333ff">/firstLogo <I>filename</I></font></B></P>\r
+\r
+\r
+\r
+<P><B><A NAME="secondlogo"></A><font color="#3333ff">/secondLogo <I>filename</I></font></B></P>\r
+\r
+<P><font color="#3333ff">The appearance of either of these options causes WinBoard to reserve space for displaying logos on both sides of the clocks. Normally the first logo goes left, the second right, unless the option Â‘swap clocksÂ’ is in effect. The <I>filename</I> must refer to a bitmap file (.bmp) containing a logo for the particular player (usually a 130x65 or 100x50 bitmap, which will be scaled to the height of two clock lines.)</font></P>\r
+\r
+\r
+\r
+<P><B><A NAME="autologo"></A><font color="#3333ff">/autoLogo<I> true|false</I></font></B></P>\r
+\r
+<P><font color="#3333ff">When true, causes WinBoard to automatically supply a logo for the first and second chess program, by looking for a fie named logo.bmp in the engine directory (as specified by the /fd or /sd option), and then displays it like this file was given as an argument to the /firstLogo or /secondLogo option. In this mode it will also look in a sub-folder of its installation folder called Â“logos”, for finding logos with names corresponding to the ICS (e.g. Â“chessclub.com.bmp”) or to the human user, should they be involved in a game.</font></P>\r
+\r
+\r
+\r
+<P><B><A NAME="hidethinkingfromhuman"></A><font color="#ff0000">/hideThinkingFromHuman<I> true|false</I></font></B></P>\r
+\r
+<P><font color="#ff0000">Prevents the engine thinking output to appear in the display, without necessitating to suppress the sending of this information altogether (so it can still appear in the PGN).</font></P>\r
+\r
+\r
+\r
+<P><B><A NAME="nogui"></A><font color="#3333ff">/noGUI</font></B></P>\r
+\r
+<P><font color="#3333ff">Suppresses all GUI functions of WinBoard (to speed up automated ultra-fast engine-engine games, which you donÂ’t want to watch). There will be no board or clock updates, no printing of moves, and no update of the icon on the task bar in this mode.</font></P>\r
+\r
+\r
+\r
+<P><B><A NAME="top"></A>/top </B>or <B>/xtop</B>, or<B> <A NAME="alwaysontopopt"></A>/alwaysOnTop<I> true|false</I></B></P>\r
+\r
+<P>Sets the <A HREF="07.htm#alwaysontop">Always On Top</A> option. Default: False.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="queen"></A>/queen</B> or <B>/xqueen</B>,<B> </B>or<B> <A NAME="alwayspromotetoqueen"></A>/alwaysPromoteToQueen<I> true|false</I></B></P>\r
+\r
+<P>Sets the <A HREF="07.htm#alwaysqueen">Always Queen</A> option. Default: False.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="drag"></A>/drag</B> or <B>/xdrag</B>,<B> </B>or<B> <A NAME="animatedraggingopt"></A>/animateDragging<I> true|false</I></B></P>\r
+\r
+<P>Sets the <A HREF="07.htm#animatedragging">Animate Dragging</A> option. Default: True.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="animate"></A>/animate </B>or <B>/xanimate</B>, or<B> <A NAME="animatemovingopt"></A>/animateMoving<I> true|false</I></B></P>\r
+\r
+<P>Sets the <A HREF="07.htm#animatemoving">Animate Moving</A> option. Default: True.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="flip"></A>/flip </B>or <B>/xflip</B>, or<B> <A NAME="flipviewoption"></A>/flipView<I> true|false</I></B></P>\r
+\r
+<P>If Auto Flip View is not set, or if you are observing but not participating in a game, then the positioning of the board at the start of each game depends on the flipView option.  If flipView is False (the default), the board is positioned so that the white pawns move from the bottom to the top; if True, the black pawns move from the bottom to the top. In any case, the <A HREF="07.htm#flipview">Flip View</A> menu command can be used to flip the board after the game starts</P>\r
+\r
+\r
+\r
+<P><B><A NAME="autoflip"></A>/autoflip</B> or <B>/xautoflip</B>, or <A NAME="autoflipviewoption"></A><B>/autoFlipView <I>true|false</I></B></P>\r
+\r
+<P>Sets the <A HREF="07.htm#autoflipview">Auto Flip View</A> option. Default: True.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="autoraise"></A>/autoraise</B> or <B>/xautoraise</B>, or <A NAME="autoraiseboardoption"></A><B>/autoRaiseBoard <I>true|false</I></B></P>\r
+\r
+<P>Sets the <A HREF="07.htm#autoflipview">Auto Raise Board</A> option. Default: True.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="highdrag"></A>/highdrag </B>or <B>/xhighdrag</B>, or<B> <A NAME="highlightdraggingopt"></A>/highlightDragging <I>true|false</I></B></P>\r
+\r
+<P>Sets the <A HREF="07.htm#highlightdragging">Highlight Dragging</A> option. Default: False.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="highlight"></A>/highlight </B>or <B>/xhighlight</B>, or<B> <A NAME="highlightlastmoveopt"></A>/highlightLastMove<I> true|false</I></B></P>\r
+\r
+<P>Sets the <A HREF="#highlightlastmoveopt">Highlight Last Move</A> option. Default: False.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="popup"></A>/exit</B> or <B>/xexit</B>,<B> </B>or<B> <A NAME="popupmoveerrorsopt"></A>/popupExitMessage<I> true|false</I></B></P>\r
+\r
+<P>Sets the <A HREF="07.htm#popupexitmessagecmd">Popup Exit Message</A> menu option. Default: False.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="popup"></A>/popup</B> or <B>/xpopup</B>,<B> </B>or<B> <A NAME="popupmoveerrorsopt"></A>/popupMoveErrors<I> true|false</I></B></P>\r
+\r
+<P>Sets the <A HREF="07.htm#popupmoveerrorscmd">Popup Move Errors</A> menu option. Default: False.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="coords"></A>/coords </B>or <B>/xcoords</B>, or<B> <A NAME="showcoords"></A>/showCoords<I> true|false</I></B></P>\r
+\r
+<P>Sets the <A HREF="#showcoords">Show Coords</A> option. Default: False.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="legal"></A>/legal </B>or <B>/xlegal</B>, or<B> <A NAME="testlegality"></A>/testLegality<I> true|false</I></B></P>\r
+\r
+<P>Sets the <A HREF="07.htm#testlegalitycmd">Test Legality</A> option. Default: True.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="size"></A>/size </B>or<B> <A NAME="boardsize"></A>/boardSize <I>sizename</I></B></P>\r
+\r
+<P>Sets the <A HREF="07.htm#boardsizecmd">Board Size</A> option. Also chooses which board size any following Font options will affect. The default is the largest size that will fit on your screen.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="wpc"></A>/wpc</B> or <B><A NAME="whitepiececolor"></A>/whitePieceColor <I>color<BR>\r
+</I><A NAME="bpc"></A>/bpc </B>or <B><A NAME="blackpiececolor"></A>/blackPieceColor <I>color<BR>\r
+</I><A NAME="lsc"></A>/lsc </B>or<B><I> </I><A NAME="lightsquarecolor"></A>/lightSquareColor <I>color</I><SUP> </SUP><BR>\r
+<A NAME="dsc"></A>/dsc </B>or<B> <A NAME="darksquarecolor"></A>/darkSquareColor <I>color</I><SUP> </SUP></B></P>\r
+\r
+<P>Color specifications for white pieces, black pieces, light squares, and dark squares. Colors can be specified only by red/green/blue intensity, either in hexadecimal (as <I>#rrggbb</I>) or in decimal (as <I>rrr,ggg,bbb</I>). In the latter format, you must enclose the string in quotation marks if you leave spaces after the commas. The defaults are respectively #FFFFCC, #202020, #C8C365, and #77A26D. Available on the <A HREF="07.htm#boardcolors">Board Colors</A> section of the <A HREF="07.htm#boardoptions">Board Options</A> dialog.</P>\r
+\r
+\r
+\r
+<P>If you are using a <A NAME="grayscale"></A>grayscale monitor, try setting the colors to:</P>\r
+\r
+<PRE><CODE>-whitePieceColor:#FFFFFF\r
+-blackPieceColor:#000000\r
+-lightSquareColor:#CCCCCC\r
+-darkSquareColor:#999999</CODE></PRE>\r
+\r
+\r
+\r
+<P><B><A NAME="hsc"></A>/hsc </B>or<B> <A NAME="highlightsquarecolor"></A>/highlightSquareColor <I>color</I><SUP> </SUP><BR>\r
+<A NAME="phc"></A>/phc </B>or <B><A NAME="premovehighlightcolor"></A>/premoveHighlightColor <I>color</I><SUP> </SUP></B></P>\r
+\r
+<P>Color specifications for the <A HREF="07.htm#highlightlastmove">Highlight Last Move</A> and <A HREF="07.htm#premovecmd">Premove</A> options, respectively. Colors can be specified only by red/green/blue intensity, either in hexadecimal (as <I>#rrggbb</I>) or in decimal (as <I>rrr,ggg,bbb</I>). In the latter format, you must enclose the string in quotation marks if you leave spaces after the commas. The defaults are respectively #FFFF00 and #FF0000, respectively.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="mono"></A>/mono</B> or <B>/xmono</B>,<B> </B>or<B> <A NAME="monomode"></A>/monoMode<I> true|false</I></B></P>\r
+\r
+<P>Determines whether WinBoard displays its pieces and squares in black and white (True) or color (False, the default). Available in the <A HREF="07.htm#boardcolors">Board Colors</A> section of the <A HREF="07.htm#boardoptions">Board Options</A> dialog.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="flipblack"></A><font color="#008000">/flipBlack<I> true|false</I></font></B></P>\r
+\r
+<P><font color="#008000">Determines whether WinBoard displays the black pieces upside down (or the white pieces in Flip View). Useful with Shogi with the traditional Japanese pieces, which are not distinguished by color but by orientation.</font></P>\r
+\r
+\r
+\r
+<P><B><A NAME="allwhite"></A><font color="#008000">/allWhite<I> true|false</I></font></B></P>\r
+\r
+<P><font color="#008000">Determines whether the white piece bitmaps will be used to display black pieces. The white pieces have a dark outline, which the black pieces lack. This makes the latter look vague if the color you give them is not very dark.</font></P>\r
+\r
+\r
+\r
+<P><B><A NAME="renderpieceswithfont"></A><font color="#ff0000">/renderPiecesWithFont <I>fontname</I></font></B></P>\r
+\r
+<P><font color="#ff0000">Uses the named true-type font to render the pieces, rather than the built-in bitmaps. The font must be installed on your computer. If the name starts with a *  it is ignored, allowing you to easily disable a font temporarily in the whinboard.ini file.</font></P>\r
+\r
+\r
+\r
+<P><B><A NAME="fontpiecetochartable"></A><font color="#ff0000">/fontPieceToCharTable <I>characterstring</I></font></B></P>\r
+\r
+<P><font color="#ff0000">If font-based rendering of the pieces is used, this table specifies which character of the font alphabet should be used for which piece. The format of the character strings is the same as that of the argument of /pieceToCharTable.</font></P>\r
+\r
+\r
+\r
+<P><B><A NAME="fontpiecesize"></A><font color="#ff0000">/fontPieceSize <I>number</I></font></B></P>\r
+\r
+<P><font color="#ff0000">The number gives the size of the piece, as a percentage of the square size.</font></P>\r
+\r
+\r
+\r
+<P><font color="#ff0000"><B><A NAME="fontpiecebackcolorwhite"></A>/fontPieceBackColorWhite <I>color<BR>\r
+</I><A NAME="fontpieceforecolorwhite"></A>/fontPieceForeColorWhite <I>color<BR>\r
+</I><A NAME="fontpiecebackcolorblack"></A>/fontPieceBackColorBlack <I>color<BR>\r
+</I><A NAME="fontpieceforecolorblack"></A>/fontPieceForeColorBlack <I>color</I><SUP> </SUP></B></font></P>\r
+\r
+<P><font color="#ff0000">Color specifications for white pieces, black pieces that are generated with font-based rendering.</font></P>\r
+\r
+\r
+\r
+<P><B><A NAME="litebacktexturefile"></A><font color="#ff0000">/liteBackTextureFile <I>filename</I></font></B></P>\r
+\r
+\r
+\r
+<P><B><A NAME="darkbacktexturefile"></A><font color="#ff0000">/darkBackTextureFile <I>filename</I></font></B></P>\r
+\r
+<P><font color="#ff0000">The filename indicates a bitmap file that should be used to display the light or dark squares, allowing you to make boards that look like wood, marble, etc. A filename starting with * is ignored.</font></P>\r
+\r
+\r
+\r
+<P><B><A NAME="litebacktexturemode"></A><font color="#ff0000">/liteBackTextureMode <I>number</I></font></B></P>\r
+\r
+\r
+\r
+<P><B><A NAME="darkbacktexturemode"></A><font color="#ff0000">/darkBackTextureMode <I>number</I></font></B></P>\r
+\r
+<P><font color="#ff0000">The number indicates the way the files given in the background-texture options should be used to fill in the squares. Valid texture modes are 1 (default) and 2. In mode 1 the squares are taken from portions of the texture bitmap and copied without further processing. In mode 2, squares can also be rotated, mirrored and so on in order to provide a little more variety to the texture. The operations are selected at random so the board will look slightly different every time the program is run.</font><BR>\r
+</P>\r
+\r
+\r
+\r
+<P><B><A NAME="overidelinegap"></A><font color="#ff0000">/overideLineGap <I>number</I></font></B></P>\r
+\r
+<P><font color="#ff0000">The number specifies the width, in pixels, of the grid lines used to separate the squares. If it is very small (like a single pixel), it becomes vey hard to see which squares are highlighted (to indicate the last move), as this highlighting is a color change of these grid lines. Highlighting the moves with an arrow is then recommended.</font></P>\r
+\r
+\r
+\r
+<P><B><A NAME="highlightmoveswitharrow"></A><font color="#ff0000">/highlightMovesWithArrow <I>true|false</I></font></B></P>\r
+\r
+<P><font color="#ff0000">If this option is true, a big, fat arrow is drawn to indicate the last move.</font></P>\r
+\r
+\r
+\r
+<P><B><A NAME="highlightarrowcolor"></A><font color="#ff0000">/highlightArrowColor <I>color</I></font></B></P>\r
+\r
+<P><font color="#ff0000">Specifies the color of the arrow that highlights the moves.</font></P>\r
+\r
+\r
+\r
+<P><B><A NAME="evalhistocolorwhite"></A><font color="#ff0000">/evalHistoColorWhite <I>color</I></font></B></P>\r
+\r
+\r
+\r
+<P><B><A NAME="evalhistocolorblack"></A><font color="#ff0000">/evalHistoColorBlack <I>color</I></font></B></P>\r
+\r
+<P><font color="#ff0000">Specifies the colors to be used to plot the white and black scores in the evaluation graph.</font><BR>\r
+</P>\r
+\r
+\r
+\r
+<P><B><A NAME="colorshout"></A>/colorShout<I> Â“effects color”<BR>\r
+</I><A NAME="colorsshout"></A>/colorSShout <I>“effects color”<BR>\r
+</I><A NAME="colorchannel1"></A>/colorChannel1 <I>“effects color”</I><BR>\r
+<A NAME="colorchannel"></A>/colorChannel <I>“effects color”</I><BR>\r
+<A NAME="colorkibitz"></A>/colorKibitz <I>“effects color”</I><BR>\r
+<A NAME="colortell"></A>/colorTell <I>“effects color”</I><BR>\r
+<A NAME="colorchallenge"></A>/colorChallenge <I>“effects color”</I><BR>\r
+<A NAME="colorrequest"></A>/colorRequest <I>“effects color”</I><BR>\r
+<A NAME="colorseek"></A>/colorSeek <I>“effects color”</I><BR>\r
+<A NAME="colornormal"></A>/colorNormal <I>“effects color”</I></B></P>\r
+\r
+<P>Select colors and effects to colorize messages in the ICS Interaction window. The effects may be any combination of <B>b</B>old, <B>i</B>talic, <B>u</B>nderline, and <B>s</B>trikeout. Colors are specified as for squares and pieces. Available on the <A HREF="07.htm#icsinteractioncolors">ICS Interaction Colors</A> section of the <A HREF="07.htm#icsoptions">ICS Options</A> dialog. Limitation: On 256 color displays, Windows chooses the nearest solid color from the system palette, which will not always be close to the color you selected.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="colorbackground"></A>/colorBackground <I>color</I></B></P>\r
+\r
+<P>Sets the background color for the ICS Interaction window. Available on the <A HREF="07.htm#icsinteractioncolors">ICS Interaction Colors</A> section of the <A HREF="07.htm#icsoptions">ICS Options</A> dialog.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="colorize"></A>/colorize<SUP> </SUP></B>or <B>/xcolorize</B>, or<B> <A NAME="colorizemessages"></A>/colorizeMessages<I> true|false</I></B></P>\r
+\r
+<P>If True, WinBoard colorizes messages in the ICS Interaction window with the colors listed above. Default: True. Available in the <A HREF="07.htm#icsinteractioncolors">ICS Interaction Colors</A> section of the <A HREF="07.htm#icsoptions">ICS Options</A> dialog.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="clockfont"></A>/clockFont Â“<I>fontname:size effects</I>”<BR>\r
+<A NAME="messagefont"></A>/messageFont Â“<I>fontname:size effects</I>”<BR>\r
+<A NAME="coordfont"></A>/coordFont Â“<I>fontname:size effects</I>”<BR>\r
+<A NAME="tagsfont"></A>/tagsFont Â“<I>fontname:size effects</I>”<BR>\r
+<A NAME="commentfont"></A>/commentFont Â“<I>fontname:size effects</I>”<BR>\r
+<A NAME="icsfont"></A>/icsFont Â“<I>fontname:size effects</I>”</B></P>\r
+\r
+<P>The fonts used respectively for the clocks, the message display line, rank and file coordinate labels, the Edit Tags dialog, the Edit Comment dialog, and the ICS Interaction window. These options may be given more than once. Each occurrence affects the fonts for the current board size; that is, the size given in the last preceding /boardSize option, if any, or else the default size. The font size may contain a decimal point, and the effects may be any combination of <B>b</B>old, <B>i</B>talic, <B>u</B>nderline, and <B>s</B>trikeout. Example: <CODE>/clockFont="Arial:20.0 bi".</CODE> Available on the <A HREF="07.htm#fonts">Fonts</A> menu.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="soundshout"></A>/soundShout<I> sound<BR>\r
+</I><A NAME="soundsshout"></A>/soundSShout <I>sound<BR>\r
+</I><A NAME="soundchannel1"></A>/soundChannel1 <I>sound</I><BR>\r
+<A NAME="soundchannel"></A>/soundChannel <I>sound</I><BR>\r
+<A NAME="soundkibitz"></A>/soundKibitz <I>sound</I><BR>\r
+<A NAME="soundtell"></A>/soundTell <I>sound</I><BR>\r
+<A NAME="soundchallenge"></A>/soundChallenge <I>sound</I><BR>\r
+<A NAME="soundrequest"></A>/soundRequest <I>sound</I><BR>\r
+<A NAME="soundmove"></A>/soundMove <I>sound</I><SUP> </SUP><BR>\r
+<A NAME="soundbell"></A>/soundBell <I>sound</I><SUP> </SUP></B></P>\r
+\r
+\r
+\r
+<P><B><A NAME="soundicswin"></A>/soundIcsWin <I>sound</I><BR>\r
+<A NAME="soundicsloss"></A>/soundIcsLoss <I>sound</I><SUP> </SUP><BR>\r
+<A NAME="soundicsdraw"></A>/soundIcsDraw <I>sound</I><SUP> </SUP><BR>\r
+<A NAME="soundicsunfinished"></A>/soundIcsUnfinished <I>sound</I><SUP> </SUP></B></P>\r
+\r
+\r
+\r
+<P><B><A NAME="soundicsalarm"></A>/soundIcsAlarm <I>sound</I><SUP> </SUP></B></P>\r
+\r
+<P>Associate sounds with WinBoard events. Most of the events are the same ones that cause text colorization. In addition, <B>soundMove</B> is played if a chess engine or another player makes a move. <B>SoundBell</B> is played if the chess server sends an ASCII BEL character (Ctrl+G). Available on the <A HREF="07.htm#sounds">Sounds</A> menu.</P>\r
+\r
+<P><B>SoundIcsWin</B>, <B>soundIcsLoss</B>, <B>soundIcsDraw</B> and <B>soundIcsUnfinished</B> are played at the conclusion of an ICS game.  The result of the game determines which sound is played.</P>\r
+\r
+<P><B>SoundIcsAlarm</B> is played when your game clock counts down to <A HREF="14.htm#icsalarmtime">icsAlarmTime</A>. </P>\r
+\r
+<P>The <I>sound</I> argument may be one of the following:\r
+\r
+<UL>\r
+       <LI>The name of a <CODE>.wav</CODE> file. The filename is interpreted relative to WinBoard's installation directory (the directory containing WinBoard.exe).<BR><BR></LI>\r
+\r
+       <LI><CODE>$</CODE>, indicating the default system sound.<BR><BR></LI>\r
+\r
+       <LI><CODE>!</CODE> followed by the name of a built-in WinBoard wave resource.<BR><BR></LI>\r
+\r
+       <LI><CODE>!</CODE> alone, or Â“” (empty string), indicating silence.</LI>\r
+</UL>\r
+\r
+<P>The default for soundMove and soundBell is <CODE>$</CODE>, while the others default to silence.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="icsmenu"></A>/icsMenu={<I>entries</I>} </B>or <B>/icsMenu=@<I>filename</I></B></P>\r
+\r
+<P>This option lets you customize the right-button <A HREF="09.htm">context menu</A> that is available in the upper (output) pane of the ICS Interaction window. It consists of a list of menu entries, one per line. If the option value starts with an @ sign, it is the name of a file that contains the entries. Each entry contains either four fields separated by commas or the single character <CODE>"-"</CODE>. The fields are:\r
+\r
+<OL>\r
+       <LI>The menu text. If this field begins with <CODE>"|"</CODE>, the item begins a new column in the menu and the <CODE>"|"</CODE> is not shown. If this field contains an <CODE>"&amp;"</CODE>, the character after the ampersand is underlined in the menu and acts as a keyboard shortcut for the item when the menu is displayed. Do not assign the same shortcut key to two different menu items.<BR><BR></LI>\r
+\r
+       <LI>Text to insert into the input pane. The text cannot include a comma. You can use ICS aliases to get around this limitation.<BR><BR></LI>\r
+\r
+       <LI>A flag (1 or 0) saying whether to insert a space and <I>name </I>(see <A HREF="09.htm#tell">above</A>) after the text. If you set this flag, you might also want to put "(name)" into the menu text as a memory aid.<BR><BR></LI>\r
+\r
+       <LI>A flag (1 or 0) saying whether the result should be sent immediately to ICS or left in the input pane for further editing.</LI>\r
+</OL>\r
+\r
+<P>The entry <CODE>"-"</CODE> produces a separator line in the menu. The top three menu entries are always <B>Copy and Paste</B>, <B>Copy</B>, and <B>Paste</B>, but you have full control over the rest of the menu.</P>\r
+\r
+<P>The default menu is:</P>\r
+\r
+<PRE><CODE>–\r
+&amp;Who,who,0,1\r
+Playe&amp;rs,players,0,1\r
+&amp;Games,games,0,1\r
+&amp;Sought,sought,0,1\r
+|&amp;Tell (name),tell,1,0\r
+M&amp;essage (name),message,1,0\r
+–\r
+&amp;Finger (name),finger,1,1\r
+&amp;Vars (name),vars,1,1\r
+&amp;Observe (name),observe,1,1\r
+&amp;Match (name),match,1,1\r
+Pl&amp;ay (name),play,1,1</CODE></PRE>\r
+\r
+<P>There is no graphical user interface to set this option. To change it, edit your <A HREF="19.htm#settings">settings</A> file with a plain text editor such as Notepad.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="icsnames"></A>/icsNames={<I>names</I>} </B>or <B>/icsNames=@<I>filename</I></B></P>\r
+\r
+<P>This option lets you customize the drop-down list of ICS names that appears in the WinBoard startup dialog. It consists of a list of strings, one per line. If the option value starts with an @ sign, it is the name of a file that contains the strings. When you select a string from the drop-down list, WinBoard prepends the text Â”/ics /icsHost=” and adds the result to the command-line options. There is no graphical user interface to set this option. To change it, edit your <A HREF="19.htm#settings">settings</A> file with a plain text editor such as Notepad.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="firstchessprogramnames"></A>/firstChessProgramNames={<I>names</I>} </B>or <B>/firstChessProgramNames="@<I>filename</I>"</B></P>\r
+\r
+<P>This option lets you customize the first drop-down list of chess engine names that appears in the WinBoard startup dialog. It consists of a list of strings, one per line. If the option value starts with an @ sign, it is the name of a file that contains the strings. When you select a string from the drop-down list, WinBoard prepends the text Â”/cp /firstChessProgram=” and adds the result to the command-line options. </P>\r
+\r
+<P>There is no graphical user interface to set this option. To change it, edit your <A HREF="19.htm#settings">settings</A> file with a plain text editor such as Notepad. Example:</P>\r
+\r
+<PRE><CODE>/firstChessProgramNames={GNUChess\r
+WCrafty-15_11 /fd="C:\Program Files\Crafty"\r
+ArasanX /fd="C:\Program Files\Arasan\Arasan 4.1"\r
+"EXchess xb" /fd=C:\EXchess\r
+Comet-WB /fd=C:\Comet\r
+}</CODE></PRE>\r
+\r
+\r
+\r
+<P><B><A NAME="secondchessprogramnames"></A>/secondChessProgramNames={<I>names</I>}</B> or <B>/secondChessProgramNames="@<I>filename</I>"</B></P>\r
+\r
+<P>This option lets you customize the second drop-down list of chess engine names that appears in the WinBoard startup dialog. It consists of a list of strings, one per line. If the option value starts with an @ sign, it is the name of a file that contains the strings. When you select a string from the drop-down list, WinBoard prepends the text Â”/cp /secondChessProgram=” and adds the result to the command-line options.</P>\r
+\r
+<P>There is no graphical user interface to set this option. To change it, edit your <A HREF="19.htm#settings">settings</A> file with a plain text editor such as Notepad. Example:</P>\r
+\r
+<P><CODE>/secondChessProgramNames={GNUChess<BR>\r
+WCrafty-15_11 /sd="C:\\Program Files\\Crafty\"<BR>\r
+ArasanX /sd="C:\Program Files\Arasan\Arasan 4.1"<BR>\r
+"EXchess xb" /sd=C:\EXchess<BR>\r
+Comet-WB /sd=C:\Comet<BR>\r
+}</CODE></P>\r
+\r
+\r
+\r
+<P><B><A NAME="xy"></A>/x=<I>xcoord  </I>/y=<I>ycoord</I></B></P>\r
+\r
+<P>Sets the initial location of the board window, giving the screen coordinates of the upper left-hand corner. Both arguments must be given together.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="xywh"></A>/analysisX=<I>xcoord  </I>/analysisY=<I>ycoord</I>  /analysisW=<I>width</I>  /analysisH=<I>height</I></B></P>\r
+\r
+<P><font color="#3333ff">These options have been deprecated, as the analysis window is replaced by the more general engine-output window. They are recognized, but ignored, and no longer saved in the winboard.ini file.</font></P>\r
+\r
+\r
+\r
+<P><B><A NAME="xywh"></A>/commentX=<I>xcoord  </I>/commentY=<I>ycoord</I>  /commentW=<I>width</I>  /commentH=<I>height</I></B></P>\r
+\r
+<P>Sets the initial location and size of the Comment window, giving the screen coordinates of the upper left-hand corner <font color="#3333ff">(relative to the main window)</font>, the width, and the height. All four arguments must be given together.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="xywh"></A>/gameListX=<I>xcoord  </I>/gameListY=<I>ycoord</I>  /gameListW=<I>width</I>  /gameListH=<I>height</I></B></P>\r
+\r
+<P>Sets the initial location and size of the Game List window, giving the screen coordinates of the upper left-hand corner <font color="#3333ff">(relative to the main window)</font>, the width, and the height. All four arguments must be given together.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="xywh"></A>/icsX=<I>xcoord  </I>/icsY=<I>ycoord</I>  /icsW=<I>width</I>  /icsH=<I>height</I></B></P>\r
+\r
+<P>Sets the initial location and size of the ICS Interaction window, giving the screen coordinates of the upper left-hand corner <font color="#3333ff">(relative to the main window)</font>, the width, and the height. All four arguments must be given together.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="xywh"></A>/tagsX=<I>xcoord  </I>/tagsY=<I>ycoord</I>  /tagsW=<I>width</I>  /tagsH=<I>height</I></B></P>\r
+\r
+<P>Sets the initial location and size of the Tags window, giving the screen coordinates of the upper left-hand corner <font color="#3333ff">(relative to the main window)</font>, the width, and the height. All four arguments must be given together.</P>\r
+\r
+\r
+\r
+<P><font color="#ff0000"><B><A NAME="xywh"></A>/moveHistoryX=<I>xcoord  </I>moveHistoryY=<I>ycoord</I>  /moveHistoryW=<I>width</I>  /moveHistoryH=<I>height</I></B></font></P>\r
+\r
+<P><font color="#ff0000">Sets the initial location and size of the move-history window, giving the screen coordinates of the upper left-hand corner</font> <font color="#3333ff">(relative to the main window)</font><font color="#ff0000">, the width, and the height. All four arguments must be given together.</font></P>\r
+\r
+\r
+\r
+<P><font color="#ff0000"><B><A NAME="xywh"></A>/evalGraphX=<I>xcoord  </I>/evalGraphY=<I>ycoord</I>  /evalGraphW=<I>width</I>  /evalGraphH=<I>height</I></B></font></P>\r
+\r
+<P><font color="#ff0000">Sets the initial location and size of the evaluation-graph window, giving the screen coordinates of the upper left-hand corner</font> <font color="#3333ff">(relative to the main window)</font><font color="#ff0000">, the width, and the height. All four arguments must be given together.</font></P>\r
+\r
+\r
+\r
+<P><font color="#ff0000"><B><A NAME="xywh"></A>/engineOutputX=<I>xcoord  </I>/engineOutputY=<I>ycoord</I>  </B></font></P>\r
+\r
+<P><font color="#ff0000"><B>/engineOutputW=<I>width</I>  /engineOutputH=<I>height</I></B></font></P>\r
+\r
+<P><font color="#ff0000">Sets the initial location and size of the engine-output window, giving the screen coordinates of the upper left-hand corner</font> <font color="#3333ff">(relative to the main window)</font><font color="#ff0000">, the width, and the height. All four arguments must be given together.</font></P>\r
+\r
+\r
+\r
+<P><font color="#ff0000"><B><A NAME="windowup"></A>/engineOutputUp <I>true|false </I></B></font></P>\r
+\r
+\r
+\r
+<P><font color="#ff0000"><B><A NAME="windowup"></A>/evalGraphUp <I>true|false</I></B></font></P>\r
+\r
+\r
+\r
+<P><font color="#ff0000"><B><A NAME="windowup"></A>/moveHistoryUp <I>true|false</I></B></font></P>\r
+\r
+<P><font color="#ff0000">If set to True, the corresponding window is displayed, if False, the window is absent.</font></P>\r
+\r
+\r
+\r
+<P><font color="#ff0000"><B><A NAME="stickywindows"></A>/stickyWindows <I>true|false</I></B></font></P>\r
+\r
+<P><font color="#ff0000">Auxiliary windows touching the main window will stay attached to the latter when you move it.</font></P>\r
+\r
+\r
+\r
+<P><font color="#ff0000"><B><A NAME="autodisplaycomment"></A>/autoDisplayComment <I>true|false</I></B></font></P>\r
+\r
+\r
+\r
+<P><font color="#ff0000"><B><A NAME="autodisplaytags"></A>/autoDisplayTags <I>true|false</I></B></font></P>\r
+\r
+<P><font color="#ff0000">If set to True, these options cause the window with the move comments, and the window with PGN tags, respectively, to pop up automatically when such tags or comments are encountered during the replaying a stored or loaded game.</font></P>\r
+\r
+\r
+\r
+<P><font color="#ff0000"><B><A NAME="gamelisttags"></A>/gameListTags <I>string</I></B></font></P>\r
+\r
+<P><font color="#ff0000">The <I>string</I> contains single-character codes specifying the PGN tags that have to be listed for each game in the game-list window, and their order. The meaning of the characters is a=out-of-book info, b=black Elo, e=event, d=date, o=round, p=players, r=result, w=white Elo, s=site, t=time control and v=variant, Default: Â“eprd”.</font></P>\r
+\r
+</BODY>\r
+</HTML>\r
diff --git a/winboard/help/html/17.htm b/winboard/help/html/17.htm
new file mode 100644 (file)
index 0000000..c1f77cb
--- /dev/null
@@ -0,0 +1,63 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">\r
+<HTML>\r
+<HEAD>\r
+<META HTTP-EQUIV="Content-Type" Content="text/html; charset=Windows-1252">\r
+<TITLE>Adjudication Options</TITLE>\r
+</HEAD>\r
+\r
+<BODY BGCOLOR="#FFFFFF" TEXT="#000000">\r
+\r
+\r
+\r
+<P><font color="#ff0000"><B><A NAME="adjudicationoptions"></A>Adjudication Options</B></font></P>\r
+\r
+\r
+\r
+<P><font color="#ff0000"><B><A NAME="adjudicatelossthreshold"></A>/adjudicateLossThreshold <I>scorethreshold</I></B></font></P>\r
+\r
+<P><font color="#ff0000">If the given value is non-zero, WinBoard adjudicates the game as a loss if both engines agree for a duration of 6 consecutive ply that the score is below the given score threshold for that engine. Make sure the score is interpreted properly by WinBoard, using /firstScoreAbs and /secondScoreAbs if needed.</font></P>\r
+\r
+\r
+\r
+<P><font color="#ff0000"><B><A NAME="adjudicatedrawmoves"></A>/adjudicateDrawMoves <I>number</I></B></font></P>\r
+\r
+<P><font color="#ff0000">If the given value is non-zero, WinBoard adjudicates the game as a draw if after the given <I>number</I> of moves it was not yet decided.</font></P>\r
+\r
+\r
+\r
+<P><font color="#008000"><B><A NAME="checkmates"></A>/checkMates<I> true|false</I></B></font></P>\r
+\r
+<P><font color="#008000">If this option is True, WinBoard detects all checkmates and stalemates, and ends the game as soon as they occur. Legality-testing must be on for this option to work.</font></P>\r
+\r
+\r
+\r
+<P><font color="#008000"><B><A NAME="testclaims"></A>/testClaims<I> true|false</I></B></font></P>\r
+\r
+<P><font color="#008000">If this option is True, WinBoard verifies all result claims made by engines, and those who send false claims will forfeit the game because of it. Legality-testing must be on for this option to work.</font></P>\r
+\r
+\r
+\r
+<P><font color="#008000"><B><A NAME="materialdraws"></A>/materialDraws<I> true|false</I></B></font></P>\r
+\r
+<P><font color="#008000">If this option is True, WinBoard adjudicates games as draws when there is no sufficient material left to create a checkmate. This applies to KBKB with like bishops, and to KBK, KNK and KK. Legality-testing must be on for this option to work.</font></P>\r
+\r
+\r
+\r
+<P><font color="#008000"><B><A NAME="trivialdraws"></A>/trivialDraws<I> true|false</I></B></font></P>\r
+\r
+<P><font color="#008000">If this option is True, WinBoard adjudicates games as draws that cannot be usualy won without opponent assistance. This applies to KBKB with unlike bishops, and to KBKN, KNKN, KNNK, KRKR and KQKQ. The draw is called after 6 ply into these end-games, to allow quick mates that can occur in some positions. KQKQ does not really belong in this category, and might be taken out in the future. (When bitbase-based adjudications are implemented.) Legality-testing must be on for this option to work.</font></P>\r
+\r
+\r
+\r
+<P><font color="#008000"><B><A NAME="rulemoves"></A>/ruleMoves <I>number</I></B></font></P>\r
+\r
+<P><font color="#008000">If the given value is non-zero, WinBoard adjudicates the game as a draw after the given <I>number</I> of consecutive reversible moves. Engines can claim draws after 50 moves, irrespective of the value of <I>number</I>.</font></P>\r
+\r
+\r
+\r
+<P><font color="#008000"><B><A NAME="repeatstodraw"></A>/repeatsToDraw <I>number</I></B></font></P>\r
+\r
+<P><font color="#008000">If the given value is non-zero, WinBoard adjudicates the game as a draw if a position is repeated the given <I>number</I> of times. Engines can claim draws after 3 repeats, (on the 3rd occurrence, actually), irrespective of the value of <I>number</I>. Beware that positions that have different castling or en-passant rights do not count as repeats, WinBoard is fully e.p. and castling aware!</font></P>\r
+\r
+</BODY>\r
+</HTML>\r
diff --git a/winboard/help/html/18.htm b/winboard/help/html/18.htm
new file mode 100644 (file)
index 0000000..81a8f79
--- /dev/null
@@ -0,0 +1,170 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">\r
+<HTML>\r
+<HEAD>\r
+<META HTTP-EQUIV="Content-Type" Content="text/html; charset=Windows-1252">\r
+<TITLE>Other Options</TITLE>\r
+</HEAD>\r
+\r
+<BODY BGCOLOR="#FFFFFF" TEXT="#000000">\r
+\r
+\r
+\r
+<P><B><A NAME="otheroptions"></A>Other Options</B></P>\r
+\r
+\r
+\r
+<P><B><A NAME="ncp"></A>/ncp</B> or <B>/xncp</B>,<B> </B>or<B> <A NAME="nochessprogram"></A>/noChessProgram<I> true|false</I></B></P>\r
+\r
+<P>If this option is True, WinBoard acts as a passive chessboard; it does not start a chess program or connect to ICS. This option also sets clockMode to False. Default: False.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="mode"></A>/mode</B> or <B><A NAME="initialmode"></A>/initialMode <I>modename</I></B></P>\r
+\r
+<P>If this option is given, WinBoard selects the given <I>modename</I> from the <A HREF="04.htm">Mode menu</A> after starting and (if applicable) processing the <A HREF="15.htm#loadgamefile">loadGameFile</A> or <A HREF="15.htm#loadpositionfile">loadPositionFile</A> option. Default: "". Other supported values are TwoMachines, AnalyzeFile, Analysis, MachineWhite, MachineBlack, EditGame, EditPosition, and Training.</P>\r
+\r
+\r
+\r
+<P><B><A NAME="variant"></A>/variant</B> <B><I> varname</I></B></P>\r
+\r
+<P>Activates preliminary, partial support for playing chess variants against a local engine or editing variant games. This flag is not needed in ICS mode. Recognized variant names are:</P>\r
+\r
+<table><tr><td>\r
+normal</td><td>Normal chess\r
+</td></tr><tr><td>\r
+wildcastle</td><td>Shuffle chess, king can castle from d file\r
+</td></tr><tr><td>\r
+nocastle</td><td>Shuffle chess, no castling allowed\r
+</td></tr><tr><td>\r
+fischerandom</td><td>Fischer Random shuffle chess\r
+</td></tr><tr><td>\r
+bughouse</td><td>Bughouse, ICC/FICS rules\r
+</td></tr><tr><td>\r
+crazyhouse</td><td>Crazyhouse, ICC/FICS rules\r
+</td></tr><tr><td>\r
+losers</td><td>Lose all pieces or get mated (ICC wild 17)\r
+</td></tr><tr><td>\r
+suicide</td><td>Lose all pieces including king (FICS)\r
+</td></tr><tr><td>\r
+giveaway</td><td>Try to have no legal moves (ICC wild 26)\r
+</td></tr><tr><td>\r
+twokings</td><td>Weird ICC wild 9\r
+</td></tr><tr><td>\r
+kriegspiel</td><td>Opponent's pieces are invisible\r
+</td></tr><tr><td>\r
+atomic</td><td>Capturing piece explodes (ICC wild 27)\r
+</td></tr><tr><td>\r
+3check</td><td>Win by giving check 3 times (ICC wild 25)\r
+</td></tr><tr><td>\r
+<font color="#008000">xiangqi</font></td><td><font color="#008000">Chinese Chess (on a 9x10 board)</font>\r
+</td></tr><tr><td>\r
+<font color="#008000">shogi</font></td><td><font color="#008000">Japanese Chess (on a 9x9 board, with piece drops)</font>\r
+</td></tr><tr><td>\r
+<font color="#008000">capablanca</font></td><td><font color="#008000">Capablanca Chess (10x8 board, with Archbishop and Chancellor pieces)</font>\r
+</td></tr><tr><td>\r
+<font color="#008000">gothic</font></td><td><font color="#008000">similar, with a better initial position</font>\r
+</td></tr><tr><td>\r
+<font color="#008000">caparandom</font></td><td><font color="#008000">An FRC-like version of Capablanca Chess (10x8 board)</font>\r
+</td></tr><tr><td>\r
+<font color="#008000">janus</font></td><td><font color="#008000">A game with two Archbishops (10x8 board)</font>\r
+</td></tr><tr><td>\r
+<font color="#008000">shatranj</font></td><td><font color="#008000">Ancient Arabic Chess, with Elephants and General replacing B and Q.</font>\r
+</td></tr><tr><td>\r
+<font color="#008000">courier</font></td><td><font color="#008000">Medieval intermedite between shatranj and modern Chess (on 12x8 board)</font>\r
+</td></tr><tr><td>\r
+<font color="#008000">falcon</font></td><td><font color="#008000">A patented Chess variant with two Falcon pieces (10x8) board</font>\r
+</td></tr><tr><td>\r
+<font color="#008000">berolina</font></td><td><font color="#008000">Pawns capture straight ahead, and move diagonal (legality testing off!)</font>\r
+</td></tr><tr><td>\r
+<font color="#008000">cylinder</font></td><td><font color="#008000">Pieces wrap around the board, as if it were a cylinder (legality testing off!)</font> \r
+</td></tr><tr><td>\r
+<font color="#008000">fairy</font></td><td><font color="#008000">A variant in which all pieces known to WinBoard can participate</font>\r
+</td></tr><tr><td>\r
+<font color="#008000">knightmate</font></td><td><font color="#008000">King moves a Knight, and vice versa</font>\r
+</td></tr><tr><td>\r
+<font color="#3333ff">super</font></td><td><font color="#3333ff">Superchess, a shuffle variant with B+N, R+N, K+N and Q+N compound</font>\r
+</td></tr><tr><td>\r
+<font color="#3333ff">great</font></td><td><font color="#3333ff">Great Shatranj, whithout sliders, on 10x8 board (legality testing off!)</font>\r
+</td></tr></table>\r
+\r
+<P><font color="#008000">In the shuffle variants, WinBoard does now shuffle the pieces, although you can still do it by hand using Edit Position.</font> \r
+Some variants are supported only in ICS mode, including bughouse, and kriegspiel. \r
+The winning/drawing conditions in crazyhouse (offboard interposition on mate) is not fully understood, \r
+<font color="#3333ff">but losers, suicide, giveaway, atomic, and 3check should be OK.</font> \r
+In crazyhouse, <font color="#3333ff">WinBoard now does keep track of offboard pieces.\r
+In shatranj it does implement the baring rule when mate detection is switched on.\r
+In xiangqi it does implement the rules for perpetual checking and chasing (in Two-Machines mode)</font></P>\r
+\r
+\r
+\r
+<P><font color="#008000"><B><A NAME="boardheight"></A>/boardHeight <I>height</I></B></font></P>\r
+\r
+<P><font color="#008000">Allows you to set a non-standard number of board ranks in any variant. If the height is given as Â‘-1Â’, the default height for the variant is used.</font></P>\r
+\r
+\r
+\r
+<P><font color="#008000"><B><A NAME="boardwidth"></A>/boardWidth <I>width</I></B></font></P>\r
+\r
+<P><font color="#008000">Allows you to set a non-standard number of board files in any variant. If the width is given as Â‘-1Â’, the default width for the variant is used. Width a non-standard width, the initial position will always be an empty board, as the usual opening array will not fit.</font></P>\r
+\r
+\r
+\r
+<P><font color="#008000"><B><A NAME="holdingssize"></A>/holdingsSize <I>size</I></B></font></P>\r
+\r
+<P><font color="#008000">Allows you to set a non-standard size for the holdings in any variant. If the size is given as Â‘-1Â’, the default holdings size for the variant is used. The first <I>size</I> piece types will go into the holdings on capture, and you will be able to drop them on the board in stead of making a normal move. If <I>size</I> equals 0, there will be no holdings.</font></P>\r
+\r
+\r
+\r
+<P><font color="#ff0000"><B><A NAME="defaultfrcposition"></A>/defaultFrcPosition <I>number</I></B></font></P>\r
+\r
+<P><font color="#ff0000">Specifies the number of the opening position in shuffle games like FRC. A value of Â‘-1Â’ means the position is randomly generated by WinBoard.</font></P>\r
+\r
+\r
+\r
+<P><font color="#008000"><B><A NAME="piecetosquaretable"></A>/pieceToSquareTable <I>characterstring</I></B></font></P>\r
+\r
+<P><font color="#008000">The characters that are used to represent the piece types WinBoard knows in FEN diagrams and SAN moves. The string argument has to have an even length (or it will be ignored), as white and black pieces have to be given separately (in that order). The last letter for each color will be the King. The letters before that will be PNBRQ and then a whole host of fairy pieces in an order that has not fully crystallized yet (currently FEACWMOHIJGDVSLU, F=Ferz, Elephant, A=Archbishop, C=Chancellor, W=Wazir, M=Commoner, O=Cannon, H=Nightrider). You should list at least all pieces that occur in the variant you are playing. If you have less than 44 characters in the string, the pieces not mentioned will get assigned a period, and you will not be able to distinguish them in FENs. You can also explicitly assign pieces a period, in which case they will not be counted in deciding which captured pieces can go into the holdings.</font></P>\r
+\r
+<P><font color="#008000">A tilde as a piece name does mean this piece is used to represent a promoted Pawn in Crazyhouse-like games, i.e. on capture it turns back onto a Pawn. A + similarly indicate the piece is a Shogi-style promoted piece, that should revert to its non-promoted version on capture (rather than to a Pawn).</font></P>\r
+\r
+<P><font color="#008000">Note that promoted pieces are represented by pieces 11 further in the list.</font></P>\r
+\r
+<P><font color="#008000">You should not have to use this option often: each variant has its own default setting for the piece representation in FEN, which should be sufficient in normal use.</font></P>\r
+\r
+\r
+\r
+<P><B><A NAME="rsh"></A>/rsh </B>or<B> <A NAME="remoteshell"></A>/remoteShell <I>shellname</I></B></P>\r
+\r
+<P>Name of the command used to run programs remotely. If this option is not given, WinBoard<I> </I>uses its own built-in implementation of the Unix <I>rcmd</I> protocol (the protocol used by <I>rsh</I>).</P>\r
+\r
+\r
+\r
+<P><B><A NAME="ruser"></A>/ruser </B>or<B> <A NAME="remoteuser"></A>/remoteUser <I>username</I></B></P>\r
+\r
+<P>User name on the remote system when running programs with the remoteShell. The default is your local user name.</P>\r
+\r
+\r
+\r
+<P><font color="#008000"><B><A NAME="username"></A>/userName <I>username</I></B></font></P>\r
+\r
+<P><font color="#008000">Name under which the Human player will be listed in the PGN file. (Default is the login name on your local computer.)</font></P>\r
+\r
+\r
+\r
+<P><font color="#ff0000"><B><A NAME="delaybeforequit"></A>/delayBeforeQuit <I>number</I></B></font></P>\r
+\r
+\r
+\r
+<P><font color="#ff0000"><B><A NAME="delayafterquit"></A>/delayAfterQuit <I>number</I></B></font></P>\r
+\r
+<P><font color="#ff0000">These options specify how long WinBoard has to wait before sending a termination signal to rogue engine processes, that do not want to react to the Â‘quitÂ’ command. The second one determines the pause after killing the engine, to make sure it dies.</font></P>\r
+\r
+\r
+\r
+<P><B><A NAME="ini"></A>/ini </B>or<B> <A NAME="settingsfile"></A>/settingsFile <I>filename<BR>\r
+</I><A NAME="atsign"></A>@ <I>file-name</I></B></P>\r
+\r
+<P>See <A HREF="19.htm#settings">Settings</A>.</P>\r
+\r
+</BODY>\r
+</HTML>\r
diff --git a/winboard/help/html/19.htm b/winboard/help/html/19.htm
new file mode 100644 (file)
index 0000000..6440fc6
--- /dev/null
@@ -0,0 +1,37 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">\r
+<HTML>\r
+<HEAD>\r
+<META HTTP-EQUIV="Content-Type" Content="text/html; charset=Windows-1252">\r
+<TITLE>Files</TITLE>\r
+</HEAD>\r
+\r
+<BODY BGCOLOR="#FFFFFF" TEXT="#000000">\r
+\r
+\r
+\r
+<P><B><A NAME="files"></A>INITIALIZATION FILES</B></P>\r
+\r
+\r
+\r
+<P><B><A NAME="settings"></A>Settings</B></P>\r
+\r
+<P>When WinBoard starts up, it reads option settings from a file named <I>WinBoard.ini </I>in its installation directory (the directory containing WinBoard.exe). Options in this file have the same format as <A HREF="11.htm">command line options</A>, except that they do not all have to be on a single line. You can put a comment in a settings file by preceding it with a semicolon (<CODE>;</CODE>).</P>\r
+\r
+<P>The WinBoard.ini file is read before the command line is processed, so any options you give on the command line override options in the file.</P>\r
+\r
+<P>If WinBoard encounters a <A HREF="18.htm#settingsfile">/settingsFile</A> <I>filename </I>or <A HREF="18.htm#atsign">@</A><I>filename </I>option while reading settings (whether from the command line or a file), it reads more settings from the given file before reading the next option.</P>\r
+\r
+<P>The <A HREF="07.htm#savesettings">Save Settings Now</A> menu command writes the current values of most options to a file. In addition, settings are saved automatically when WinBoard exits if <A HREF="07.htm#savesettingsonexit">Save Settings on Exit</A> is checked. The settings are written to the last file named in a /settingsFile command, if any; otherwise to WinBoard.ini<I>.</I> The @ option does not affect which file settings are saved to.</P>\r
+\r
+<P>Warning: Because Save Settings overwrites the last settings file (usually WinBoard.ini) and only saves a subset of WinBoard's options, you should not add settings of more options to such a file with a text editor. If you do this, your additional options will be lost on the next Save Settings. You can change the values of existing settings freely, using Notepad or any plain text editor. Be careful not to do this while WinBoard is running, however, unless you know that Save Settings on Exit is off. Otherwise all your changes will be overwritten and lost when WinBoard exits.</P>\r
+\r
+<P><font color="#008000">Notice that tournament managers, like PSWBTM, usually call WinBoard with the option not to save settings on exit, so that the entire tournament uses the same settings. So it does make sense to edit Â‘volatileÂ’ options, such as /variant, into the settings file.</font></P>\r
+\r
+\r
+\r
+<P><B><A NAME="icslogon"></A>ICS Logon</B></P>\r
+\r
+<P>Whenever WinBoard connects to the Internet Chess Server, if it finds a file called <I>ICS.ini </I>in its installation directory<I>,</I> it feeds the file's contents to the ICS as commands. Usually the first two lines of the file should be your ICS user name and password. You can specify a different name instead of <I>ICS.ini</I> by using the <A HREF="14.htm#icslogon">icslogon</A> command line option.</P>\r
+\r
+</BODY>\r
+</HTML>\r
diff --git a/winboard/help/html/20.htm b/winboard/help/html/20.htm
new file mode 100644 (file)
index 0000000..025c8b2
--- /dev/null
@@ -0,0 +1,67 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">\r
+<HTML>\r
+<HEAD>\r
+<META HTTP-EQUIV="Content-Type" Content="text/html; charset=Windows-1252">\r
+<TITLE>Installing Chess Engines</TITLE>\r
+</HEAD>\r
+\r
+<BODY BGCOLOR="#FFFFFF" TEXT="#000000">\r
+\r
+\r
+\r
+<P><B><A NAME="installingchessengines"></A>INSTALLING CHESS ENGINES</B></P>\r
+\r
+<P><B>Introduction</B></P>\r
+\r
+<P>WinBoard is capable of operating with many different chess engines. You can play chess against a compatible engine, set up matches between two engines, or (advanced users only) run an automated computer player on an ICS.</P>\r
+\r
+<P>Typically, the main difficulty in installing a new chess engine for use by WinBoard comes in getting the engine itself running and setting its options appropriately. The connection to WinBoard is relatively straightforward.</P>\r
+\r
+<P>WinBoard-compatible chess engines are Win32 command line programs that you can run by hand in an MS-DOS Prompt box and type human-readable commands to. WinBoard connects to an engine simply by starting the engine up in the background and communicating with it through a pair of pipes. Therefore the basic procedure for installing an engine is:</P>\r
+\r
+<P>1. Get a copy of the engine and any supporting files it needs.</P>\r
+\r
+<P>2. Install and configure the engine as a command-line program by following the instructions that come with it. Try it out by running it from the command line in an MS-DOS Prompt box and make sure it works.</P>\r
+\r
+<P>3. Optional, but recommended: Try out the WinBoard plus engine combination by running WinBoard with the proper command line arguments in an MS-DOS Prompt box.</P>\r
+\r
+<P>4. Create a shortcut on your desktop or Start menu to run the engine with WinBoard.</P>\r
+\r
+<P>5. Optionally edit your WinBoard.ini file to add the engine to the drop-down lists on WinBoard's startup dialog.</P>\r
+\r
+<P>This document cannot explain steps 1 and 2 in detail for all engines, but we will take you through all five steps in outline, using Crafty as an example.</P>\r
+\r
+<P><B>Example: Crafty</B></P>\r
+\r
+<P>1. Choose a directory to put Crafty in. We'll use <CODE>C:\Program Files\Crafty</CODE> in this example. Download your copy of Crafty into this directory from its author's FTP site, <CODE>ftp://ftp.cis.uab.edu/pub/hyatt</CODE>. At this writing, you will need at least the following files:</P>\r
+\r
+<P><CODE>read.me<BR>\r
+v15/crafty.doc<BR>\r
+v15/crafty.faq<BR>\r
+v15/wcrafty-15.*.exe</CODE> (where * is replaced by the largest number there)<BR>\r
+<CODE>common/start.zip<BR>\r
+common/medium.zip </CODE>(or another book).</P>\r
+\r
+<P>2. The first three files are documentation that you can read with a text editor. Read the read.me file first and follow the instructions carefully. This will take some time. Do not write to the author of WinBoard if you have trouble with the instructions in the Crafty read.me. Try running Crafty from an MS-DOS Prompt box and make sure it works before you go on.</P>\r
+\r
+<P>3. Optional, but recommended: In an MS-DOS Prompt box, <CODE>cd </CODE>to the directory where WinBoard is installed, typically <CODE>"C:\Program Files\WinBoard"</CODE>. Then type the following command line. Use the actual name of the wcrafty file you downloaded, not an <CODE>*</CODE>, and if your browser changed the first period to an underscore when you downloaded the file, make that change in the command line too.</P>\r
+\r
+<PRE><CODE>WinBoard /cp /fcp=WCrafty-15.* /fd="C:\Program Files\Crafty" /scp=WCrafty-15.* /sd="C:\Program Files\Crafty"</CODE></PRE>\r
+\r
+<P>WinBoard should start up, with Crafty running as its chess engine. Check that you can play chess against Crafty.</P>\r
+\r
+<P>4. To make a shortcut or Start menu entry for Crafty: Right-click on the desktop and select New/Shortcut. Use the Browse button to find your winboard.exe file and get its name into the Command Line box. (It usually will be "C:\Program Files\WinBoard\winboard.exe".) Click in the Command Line box and hit the End key to go to the end. Add the following to the end of the command line, <I>after</I> the closing quotation mark. Use the actual name of the wcrafty file you downloaded, not an <CODE>*</CODE>, and if your browser changed the first period to an underscore when you downloaded the file, make that change in the command line too.</P>\r
+\r
+<PRE><CODE>/cp /fcp=WCrafty-15.* /fd="C:\Program Files\Crafty" \r
+/scp=WCrafty-15.* /sd="C:\Program Files\Crafty"</CODE></PRE>\r
+\r
+<P>Press Next, choose a name for the shortcut, and press Finish. You can now use this shortcut to run WinBoard with Crafty. Double-click it to check that it works. You can drag or copy the shortcut into your Start menu if you like.</P>\r
+\r
+<P>5. To add Crafty as an option in the WinBoard Startup dialog, edit your <A HREF="19.htm#settings">WinBoard.ini file</A> with Notepad or another plain text editor, carefully following the example shown under <A HREF="16.htm#firstchessprogramnames">/firstChessProgramNames</A> above.</P>\r
+\r
+<P><B>For more information</B></P>\r
+\r
+<P>If you would like to run an automated computer player on the ICS, see the separate file <CODE>zippy.README</CODE>. If you would like to write your own engine to interface to WinBoard, see the separate file <CODE>engine-intf.html</CODE>, and join the mailing list mentioned there. Both files are included in the WinBoard distribution. You might also want to get the source code for WinBoard. It is available from the author's Web page, http://www.tim-mann.org/chess.html<CODE>.</CODE></P>\r
+\r
+</BODY>\r
+</HTML>\r
diff --git a/winboard/help/html/21.htm b/winboard/help/html/21.htm
new file mode 100644 (file)
index 0000000..c970da5
--- /dev/null
@@ -0,0 +1,37 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">\r
+<HTML>\r
+<HEAD>\r
+<META HTTP-EQUIV="Content-Type" Content="text/html; charset=Windows-1252">\r
+<TITLE>Firewalls</TITLE>\r
+</HEAD>\r
+\r
+<BODY BGCOLOR="#FFFFFF" TEXT="#000000">\r
+\r
+\r
+\r
+<P><B><A NAME="firewalls"></A>FIREWALLS</B></P>\r
+\r
+<P>By default, "WinBoard /ics"<I> </I>communicates with an Internet Chess Server by opening a TCP socket directly from the machine it is running on to the ICS. If there is a firewall between your machine and the ICS, this won't work. Here are some recipes for getting around common kinds of firewalls using special options to WinBoard<I>.</I> Important: See the paragraph in the <A HREF="22.htm">LIMITATIONS</A> section below about extra echoes.</P>\r
+\r
+<P>Suppose that you can't telnet directly to ICS, but you can telnet to a firewall host, log in, and then telnet from there to ICS. Let's say the firewall is called fire.wall.com. Set command-line options as follows: </P>\r
+\r
+<PRE><CODE>WinBoard -ics -icshost fire.wall.com -icsport 23</CODE></PRE>\r
+\r
+<P>Then when you run WinBoard<I> </I>in ICS mode, you will be prompted to log in to the firewall host. (This works because port 23 is the standard telnet login service.) Do so, then telnet to ICS, using a command like "telnet chessclub.com 5000", or whatever command the firewall provides for telnetting to port 5000.</P>\r
+\r
+<P>If your firewall lets you telnet (or rlogin) to remote hosts, but doesn't let you telnet to port 5000, you will have to find some other host outside the firewall that does let you do this, and hop through it. For instance, suppose you have an account at foo.edu. Follow the recipe above, but instead of typing "telnet chessclub.com 5000" to the firewall, type "telnet foo.edu" (or "rlogin foo.edu"), log in there, and then type "telnet chessclub.com 5000".</P>\r
+\r
+<P>Exception: chessclub.com itself lets you connect to the chess server on the default telnet port (23), which is what you get if you donÂ’t specify a port to the telnet program. But the other chess servers donÂ’t allow this.</P>\r
+\r
+<P>Suppose that you can't telnet directly to ICS, but you can use rsh to run programs on a firewall host, and that host can telnet to ICS. Let's say the firewall is called rsh.wall.com. Set command-line options as follows: </P>\r
+\r
+<PRE><CODE>WinBoard -ics -gateway rsh.wall.com -icshost chessclub.com</CODE></PRE>\r
+\r
+<P>Then when you run WinBoard<I> </I>in ICS mode, it will connect to the ICS by using rsh to run the command "telnet chessclub.com 5000" on host rsh.wall.com.</P>\r
+\r
+<P>ICC timestamp and FICS timeseal do not work through many<B> </B>firewalls. You can use them only if your firewall gives a clean TCP connection with a full 8-bit wide path. If your firewall allows you to get out only by running a special telnet program, you can't use timestamp or timeseal across it. But if you have access to a computer just outside your firewall, and you have much lower netlag when talking to that computer than to the ICS, it might be worthwhile running timestamp there. Follow the instructions above for hopping through a host outside the firewall (foo.edu in the example), but run timestamp or timeseal on that host instead of telnet.</P>\r
+\r
+<P>Suppose that you have a SOCKS firewall that requires you to go through some extra level of authentication, but after that will give you a clean 8-bit wide TCP connection to the chess server. In that case, if you are using timestamp or timeseal, you need to somehow socksify it; if not, you need to socksify WinBoard itself. Socksification is beyond the scope of this document, but see the SOCKS Web site at http://www.socks.nec.com/how2socksify.html.</P>\r
+\r
+</BODY>\r
+</HTML>\r
diff --git a/winboard/help/html/22.htm b/winboard/help/html/22.htm
new file mode 100644 (file)
index 0000000..5d5255f
--- /dev/null
@@ -0,0 +1,47 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">\r
+<HTML>\r
+<HEAD>\r
+<META HTTP-EQUIV="Content-Type" Content="text/html; charset=Windows-1252">\r
+<TITLE>Limitations</TITLE>\r
+</HEAD>\r
+\r
+<BODY BGCOLOR="#FFFFFF" TEXT="#000000">\r
+\r
+\r
+\r
+<P><B><A NAME="limitations"></A>LIMITATIONS <font color="#008000">AND NON-LIMITATIONS</font></B></P>\r
+\r
+<P>WinBoard<I> </I>is a Win32 application. It runs only on Windows NT and Windows 95. It does not work on Windows 3.11 or earlier, even with the Win32s compatibility package.</P>\r
+\r
+<P><I>CMail, </I>the companion program to xboard for playing electronic mail correspondence chess, has not been ported to Win32.</P>\r
+\r
+<P>There is no way for two people running copies of WinBoard<I> </I>to play each other without going through the Internet Chess Server.</P>\r
+\r
+<P>Under some circumstances, your ICS password may be echoed when you log on.</P>\r
+\r
+<P>If you are connecting to the ICS by running telnet, timestamp, or timeseal on an Internet provider host, you may find that each line you type is echoed back an extra time after you hit Enter. You can probably turn this echo off. If your Internet provider is a Unix system, type "<CODE>stty -echo</CODE>" after you log in to the provider but before you run telnet, timestamp, or timeseal. In addition, you may need to type the sequence Â“<CODE>Ctrl+Q Ctrl+E Enter</CODE>“ after you have finished logging in to ICS. On VMS, type Â“<CODE>set terminal /noecho /nowrap</CODE>”, and after you telnet to the ICS, type Â“<CODE>Ctrl+Q Ctrl+] Enter set mode char Enter Enter</CODE>”. It is a good idea to turn off the extra remote echo if you can, because otherwise it can get interleaved with output from the ICS and confuse WinBoard's parsing routines. DonÂ’t just turn off <A HREF="07.htm#locallineediting">Local Line Editing</A> so that you see only the remote echo and not the local one; that will make the interleaving problem worse.</P>\r
+\r
+<P>The game parser recognizes only algebraic notation (SAN).</P>\r
+\r
+<P>The <A HREF="14.htm#icslogon">ICS logon</A> file does not work properly when you connect to ICS through a Unix gateway host by setting <A HREF="14.htm#icsport">icsPort</A> to 23. The Unix login process apparently discards type-ahead.</P>\r
+\r
+<P>Some WinBoard functions may not work with versions of GNU Chess earlier than 4.0, patchlevel 77. The current version of WinBoard<I> </I>works best with Crafty version 15.11 or later.</P>\r
+\r
+<P><font color="#008000">Many of the following points used to be limitations in WinBoard 4.2.7 and earlier, but are now fixed:</font></P>\r
+\r
+<P><font color="#008000">The internal move legality tester in WinBoard 4.3.xx does look at the game history, and is fully aware of castling or en passant-capture rights.</font> It permits castling with the king on the <B>d</B> file because this is possible in some "wild 1" games on ICS. The piece-drop menu does not check piece drops in bughouse to see if you actually hold the piece you are trying to drop. <font color="#008000">But this way of dropping pieces should be considered an obsolete feature, now that pieces can be dropped by dragging them from the holdings to the board.</font> Anyway, if you would attempt an illegal move when using a chess engine or the ICS, WinBoard will accept the error message that comes back, undo the move, and let you try another.</P>\r
+\r
+<P><font color="#008000">FEN positions saved by WinBoard<I> </I>do include correct information about whether castling or en passant are legal, and also handle the 50-move counter.</font></P>\r
+\r
+<P>The mate detector does not understand that non-contact mate is not really mate in bughouse. The only problem this causes while playing is minor: a "#" (mate indicator) character will show up after a non-contact mating move in the move list. WinBoard will not assume the game is over at that point, <font color="#008000">not even when the option Detect Mates is on.</font></P>\r
+\r
+<P><font color="#008000">Edit Game mode always uses the rules of the selected variant, which can be a variant that uses piece drops.  You can load and edit games that contain piece drops. The (obsolete) piece menus are not active, but you can perform piece drops by dragging pieces from the holdings.</font></P>\r
+\r
+<P><font color="#008000">Edit Position mode does not allow you to edit the Crazyhouse holdings properly. You cannot drag pieces to the holding, and using the popup menu to put pieces there does not adapt the holding counts and leads to an inconsistent state. Set up Crazyhouse positions by loading / pasting a bFEN, from there you can set the holdings.</font></P>\r
+\r
+<P><font color="#008000">Fischer Random castling is fully understood. You can enter castlings by dragging the King on top of your Rook. You can probably also play Fischer Random successfully on ICS by typing castling moves into the ICS Interaction window.</font></P>\r
+\r
+<P>Also see the ToDo file included with the distribution for many other possible bugs, limitations, and ideas for improvement that have been suggested.</P>\r
+\r
+</BODY>\r
+</HTML>\r
diff --git a/winboard/help/html/23.htm b/winboard/help/html/23.htm
new file mode 100644 (file)
index 0000000..ba29478
--- /dev/null
@@ -0,0 +1,27 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">\r
+<HTML>\r
+<HEAD>\r
+<META HTTP-EQUIV="Content-Type" Content="text/html; charset=Windows-1252">\r
+<TITLE>Authors</TITLE>\r
+</HEAD>\r
+\r
+<BODY BGCOLOR="#FFFFFF" TEXT="#000000">\r
+\r
+\r
+\r
+<P><B><A NAME="authors"></A>AUTHORS AND CONTRIBUTORS</B></P>\r
+\r
+<P>WinBoard is partly based on <I>xboard</I>, a chessboard program for Unix and the X Window System. Tim Mann has been responsible for all versions of WinBoard,<I> </I>and for xboard versions 1.3 and beyond. <font color="#008000">H.G.Muller is responsible for version 4.3.</font></P>\r
+\r
+<P>Mark Williams added many features to WinBoard 4.1.0, including copy/paste, premove, icsAlarm, autoFlipView, training mode, auto raise, and blindfold. Hugh Fischer added piece animation to xboard, and Henrik Gram added it to WinBoard. Frank McIngvale contributed many xboard<I> </I>user interface improvements and improved Crafty support. Jochen Wiedmann ported xboard<I> </I>to the Amiga, creating <I>AmyBoard</I>, and converted the documentation to texinfo. Elmar Bartel contributed the new piece bitmaps for version 3.2. Evan Welsh wrote <I>CMail. </I>John Chanak contributed the initial implementation of ICS mode. The default color scheme was adapted from Wayne Christopher's <I>XChess </I>program. Chris Sears and Dan Sears wrote the original xboard<I>. </I>They were responsible for xboard<I> </I>versions 1.0 through 1.2. <font color="#ff0000">Alessandro Scotti added many elements to the user interface, including the board textures and font-based rendering, the evaluation-graph, move-history and engine-output window. He was also responsible for adding the UCI support.</font> <font color="#008000">H.G. Muller made WinBoard castling- and e.p.-aware, added variant support with adjustable board sizes, the Crazyhouse holdings, and the fairy pieces. In addition he added most of the adjudication options, made WinBoard ore robust in dealing with buggy and crashing engines, and extended time control with a time-odds and node-count-based modes.</font></P>\r
+\r
+<P>Send bug reports to &lt;bug-xboard@gnu.org&gt;. Please run WinBoard with the /debug option and include the output from the resulting WinBoard.debug file in your message.</P>\r
+\r
+<P><font color="#008000">The WinBoard 4.3.xx line is being developed by H.G. Muller independently of the GNU Savannah xboard project. Bug reports on this version, and suggestions for improvements and additions, are best posted in the WinBoard forum, development section</font> <font color="#3333ff">(<u>www.open-aurec.com/wbforum/</u>)</font><font color="#008000">.</font></P>\r
+\r
+<P><font color="#3333ff">Michel van den Bergh provided the code for reading Polyglot opening books.</a></P>\r
+\r
+<P><font color="#3333ff">Arun Persaud worked with H.G. Muller to combine all the features of the never-released WinBoard 4.2.8 of the Savannah project (mainly by Daniel Mehrmann), and the never-released 4.3.16 into a unified WinBoard 4.4, which is now available both from the Savannah web site and the WinBoard forum.</a></P>\r
+\r
+</BODY>\r
+</HTML>\r
diff --git a/winboard/help/html/24.htm b/winboard/help/html/24.htm
new file mode 100644 (file)
index 0000000..f0dbfcc
--- /dev/null
@@ -0,0 +1,34 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">\r
+<HTML>\r
+<HEAD>\r
+<META HTTP-EQUIV="Content-Type" Content="text/html; charset=Windows-1252">\r
+<TITLE>Copyright</TITLE>\r
+</HEAD>\r
+\r
+<BODY BGCOLOR="#FFFFFF" TEXT="#000000">\r
+\r
+\r
+\r
+<P><B><A NAME="copyright"></A>COPYRIGHT</B></P>\r
+\r
+<P>Copyright 1991 by Digital Equipment Corporation, Maynard, Massachusetts. <BR>\r
+Enhancements Copyright 1992-2009 Free Software Foundation, Inc.</P>\r
+\r
+<P>The following terms apply to Digital Equipment Corporation's copyright interest in WinBoard:</P>\r
+\r
+<P>All Rights Reserved</P>\r
+\r
+<P>Permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee is hereby granted, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation, and that the name of Digital not be used in advertising or publicity pertaining to distribution of the software without specific, written prior permission.</P>\r
+\r
+<P>DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.</P>\r
+\r
+<P>The following terms apply to the enhanced version of WinBoard distributed by the Free Software Foundation:</P>\r
+\r
+<P>This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.</P>\r
+\r
+<P>This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more details.</P>\r
+\r
+<P>You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.</P>\r
+\r
+</BODY>\r
+</HTML>\r
diff --git a/winboard/help/winboard b/winboard/help/winboard
new file mode 100644 (file)
index 0000000..5328dc9
--- /dev/null
@@ -0,0 +1,38 @@
+[OPTIONS]\r
+Compatibility=1.1 or later\r
+Compiled file=..\..\..\xboard-4.4.0.chm\r
+Contents file=Table of Contents.hhc\r
+Default topic=html\winb3mnn.htm\r
+Display compile progress=No\r
+Index file=winboard.hhk\r
+Language=0x413 Nederlands (Nederland)\r
+\r
+\r
+[FILES]\r
+html\winb3mnn.htm\r
+html\winb31o3.htm\r
+html\winb54vp.htm\r
+html\winb5lkl.htm\r
+html\winb9gqd.htm\r
+html\winb0nlh.htm\r
+html\winb85it.htm\r
+html\winb3j3p.htm\r
+html\winb4h6d.htm\r
+html\winb87ar.htm\r
+html\winb5qpf.htm\r
+html\winb75yr.htm\r
+html\winb3i0k.htm\r
+html\winb701f.htm\r
+html\winb1v8z.htm\r
+html\winb8ws3.htm\r
+html\winb55yr.htm\r
+html\winb8n03.htm\r
+html\winb85yr.htm\r
+html\winb2tv7.htm\r
+html\winb381f.htm\r
+html\winb1hir.htm\r
+html\winb3wmr.htm\r
+html\winb1ks4.htm\r
+\r
+[INFOTYPES]\r
+\r
diff --git a/winboard/help/winboard.chm b/winboard/help/winboard.chm
new file mode 100644 (file)
index 0000000..bafdeee
Binary files /dev/null and b/winboard/help/winboard.chm differ
diff --git a/winboard/help/winboard.hhk b/winboard/help/winboard.hhk
new file mode 100644 (file)
index 0000000..d4fd092
--- /dev/null
@@ -0,0 +1,2370 @@
+<HTML>\r
+<!-- Sitemap 1.0 -->\r
+<OBJECT type="text/site properties">\r
+</OBJECT>\r
+<UL>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Abort">\r
+               <param name="Name" value="Action Menu">\r
+               <param name="Local" value="html/05.htm#abort">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="About WinBoard">\r
+               <param name="Name" value="Help Menu">\r
+               <param name="Local" value="html/08.htm#aboutwinboard">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Accept">\r
+               <param name="Name" value="Action Menu">\r
+               <param name="Local" value="html/05.htm#accept">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Action Menu">\r
+               <param name="Name" value="Action Menu">\r
+               <param name="Local" value="html/05.htm">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Adjourn">\r
+               <param name="Name" value="Action Menu">\r
+               <param name="Local" value="html/05.htm#adjourn">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Adjudicate Draw">\r
+               <param name="Name" value="Action Menu">\r
+               <param name="Local" value="html/05.htm#adjudicatedraw">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Adjudicate Draw Moves">\r
+               <param name="Name" value="Options Menu">\r
+               <param name="Local" value="html/07.htm#adjudicatedrawmoves">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Adjudicate Loss Threshold">\r
+               <param name="Name" value="Options Menu">\r
+               <param name="Local" value="html/07.htm#adjudicatelossthreshold">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Adjudicate To Black">\r
+               <param name="Name" value="Action Menu">\r
+               <param name="Local" value="html/05.htm#adjudicatetoblack">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Adjudicate To White">\r
+               <param name="Name" value="Action Menu">\r
+               <param name="Local" value="html/05.htm#adjudicatetowhite">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Adjudicate Trivial Draws">\r
+               <param name="Name" value="Options Menu">\r
+               <param name="Local" value="html/07.htm#adjudicatetrivialdraws">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="adjudicateDrawMoves">\r
+               <param name="Name" value="Adjudication Options">\r
+               <param name="Local" value="html/17.htm#checkmates">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="adjudicateLossThreshold">\r
+               <param name="Name" value="Adjudication Options">\r
+               <param name="Local" value="html/17.htm">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Adjudication Options">\r
+               <param name="Name" value="Adjudication Options">\r
+               <param name="Local" value="html/17.htm">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Adjudications">\r
+               <param name="Name" value="Options Menu">\r
+               <param name="Local" value="html/07.htm#adjudications">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="alarm">\r
+               <param name="Name" value="Internet Chess Server Options">\r
+               <param name="Local" value="html/14.htm#alarm">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="All White">\r
+               <param name="Name" value="Options Menu">\r
+               <param name="Local" value="html/07.htm#allwhite">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="allWhite">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#renderpieceswithfont">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Always On Top">\r
+               <param name="Name" value="Options Menu">\r
+               <param name="Local" value="html/07.htm#alwaysontop">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Always Queen">\r
+               <param name="Name" value="Options Menu">\r
+               <param name="Local" value="html/07.htm#alwaysqueen">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="alwaysOnTop">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#top">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="alwaysPromoteToQueen">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#queen">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Analysis Mode">\r
+               <param name="Name" value="Mode Menu">\r
+               <param name="Local" value="html/04.htm#analysismode">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Analyze File">\r
+               <param name="Name" value="Mode Menu">\r
+               <param name="Local" value="html/04.htm#analyzefile">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="animate">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#animate">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Animate Dragging">\r
+               <param name="Name" value="Options Menu">\r
+               <param name="Local" value="html/07.htm#animatedragging">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Animate Moving">\r
+               <param name="Name" value="Options Menu">\r
+               <param name="Local" value="html/07.htm#animatemoving">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="animateDragging">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#drag">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="animateMoving">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#animate">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="at sign">\r
+               <param name="Name" value="Other Options">\r
+               <param name="Local" value="html/18.htm#ini">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Authors">\r
+               <param name="Name" value="Authors">\r
+               <param name="Local" value="html/23.htm">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Auto Comment">\r
+               <param name="Name" value="Options Menu">\r
+               <param name="Local" value="html/07.htm#autocommentcmd">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Auto Flag">\r
+               <param name="Name" value="Options Menu">\r
+               <param name="Local" value="html/07.htm#autoflagcmd">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Auto Flip View">\r
+               <param name="Name" value="Options Menu">\r
+               <param name="Local" value="html/07.htm#autoflipview">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Auto Observe">\r
+               <param name="Name" value="Options Menu">\r
+               <param name="Local" value="html/07.htm#autobscmd">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Auto Raise Board">\r
+               <param name="Name" value="Options Menu">\r
+               <param name="Local" value="html/07.htm#autoraiseboard">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="autobs">\r
+               <param name="Name" value="Internet Chess Server Options">\r
+               <param name="Local" value="html/14.htm#autobs">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="autoCallFlag">\r
+               <param name="Name" value="Internet Chess Server Options">\r
+               <param name="Local" value="html/14.htm#autoflag">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="autocomm">\r
+               <param name="Name" value="Internet Chess Server Options">\r
+               <param name="Local" value="html/14.htm#autocomm">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="autoComment">\r
+               <param name="Name" value="Internet Chess Server Options">\r
+               <param name="Local" value="html/14.htm#autocomm">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="autoDisplayComment">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#autodisplaycomment">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="autoDisplayTags">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#autodisplaytags">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="autoflag">\r
+               <param name="Name" value="Internet Chess Server Options">\r
+               <param name="Local" value="html/14.htm#autoflag">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="autoflip">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#autoflip">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="autoFlipView">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#autoflip">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="autoKibitz">\r
+               <param name="Name" value="Internet Chess Server Options">\r
+               <param name="Local" value="html/14.htm#autokibitz">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="autoLogo">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#autologo">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="autoObserve">\r
+               <param name="Name" value="Internet Chess Server Options">\r
+               <param name="Local" value="html/14.htm#autobs">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="autoraise">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#autoraise">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="autoRaiseBoardOption">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#autoraise">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="autosave">\r
+               <param name="Name" value="Load and Save Options">\r
+               <param name="Local" value="html/15.htm#autosave">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="autoSaveGames">\r
+               <param name="Name" value="Load and Save Options">\r
+               <param name="Local" value="html/15.htm#autosave">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Back to Start">\r
+               <param name="Name" value="Step Menu">\r
+               <param name="Local" value="html/06.htm#backtostart">\r
+               <param name="Name" value="Buttons">\r
+               <param name="Local" value="html/10.htm">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Backward">\r
+               <param name="Name" value="Step Menu">\r
+               <param name="Local" value="html/06.htm#backward">\r
+               <param name="Name" value="Buttons">\r
+               <param name="Local" value="html/10.htm">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="blackPieceColor">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#wpc">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Blindfold">\r
+               <param name="Name" value="Options Menu">\r
+               <param name="Local" value="html/07.htm#blindfoldcmd">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="blindfold (option)">\r
+               <param name="Name" value="Internet Chess Server Options">\r
+               <param name="Local" value="html/14.htm#opt_blindfold">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Board Colors">\r
+               <param name="Name" value="Options Menu">\r
+               <param name="Local" value="html/07.htm#boardcolors">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Board Options">\r
+               <param name="Name" value="Options Menu">\r
+               <param name="Local" value="html/07.htm#boardoptions">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Board Size">\r
+               <param name="Name" value="Options Menu">\r
+               <param name="Local" value="html/07.htm#boardsizecmd">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="boardHeight">\r
+               <param name="Name" value="Other Options">\r
+               <param name="Local" value="html/18.htm#boardheight">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="boardSize">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#size">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="boardWidth">\r
+               <param name="Name" value="Other Options">\r
+               <param name="Local" value="html/18.htm#boardwidth">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Book">\r
+               <param name="Name" value="Help Menu">\r
+               <param name="Local" value="html/08.htm#book">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="bpc">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#wpc">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Buttons">\r
+               <param name="Name" value="Buttons">\r
+               <param name="Local" value="html/10.htm">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Call Flag">\r
+               <param name="Name" value="Action Menu">\r
+               <param name="Local" value="html/05.htm#callflag">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="checkMates">\r
+               <param name="Name" value="Adjudication Options">\r
+               <param name="Local" value="html/17.htm#checkmates">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Chess Engine Options">\r
+               <param name="Name" value="Chess Engine Options">\r
+               <param name="Local" value="html/12.htm">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="chessProgram">\r
+               <param name="Name" value="Chess Engine Options">\r
+               <param name="Local" value="html/12.htm#cp">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="clock">\r
+               <param name="Name" value="Chess Engine Options">\r
+               <param name="Local" value="html/12.htm#clock">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="clockFont">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#clockfont">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="clockMode">\r
+               <param name="Name" value="Chess Engine Options">\r
+               <param name="Local" value="html/12.htm#clock">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="colorBackground">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#colorbackground">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="colorChallenge">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#colorshout">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="colorChannel">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#colorshout">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="colorChannel1">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#colorshout">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="colorize">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#colorize">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="colorizeMessages">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#colorize">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="colorKibitz">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#colorshout">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="colorNormal">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#colorshout">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="colorRequest">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#colorshout">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="colorSeek">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#colorshout">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="colorShout">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#colorshout">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="colorSShout">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#colorshout">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="colorTell">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#colorshout">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Command Line Options">\r
+               <param name="Name" value="Command Line Options">\r
+               <param name="Local" value="html/11.htm">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="commentFont">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#clockfont">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Communications">\r
+               <param name="Name" value="Options Menu">\r
+               <param name="Local" value="html/07.htm#communications">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="comPortSettings">\r
+               <param name="Name" value="Internet Chess Server Options">\r
+               <param name="Local" value="html/14.htm#comportsettings">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Contents">\r
+               <param name="Name" value="Contents">\r
+               <param name="Local" value="html/01.htm">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="coordFont">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#clockfont">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="coords">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#coords">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Copy">\r
+               <param name="Name" value="ICS Interaction Context Menu">\r
+               <param name="Local" value="html/09.htm#copy">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Copy and Paste">\r
+               <param name="Name" value="ICS Interaction Context Menu">\r
+               <param name="Local" value="html/09.htm#copyandpaste">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Copy Game To Clipboard">\r
+               <param name="Name" value="File Menu">\r
+               <param name="Local" value="html/03.htm#copygametoclipboard">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Copy Position Clipboard">\r
+               <param name="Name" value="File Menu">\r
+               <param name="Local" value="html/03.htm#copypositiontoclipboard">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Copyright">\r
+               <param name="Name" value="Copyright">\r
+               <param name="Local" value="html/24.htm">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="cp">\r
+               <param name="Name" value="Chess Engine Options">\r
+               <param name="Local" value="html/12.htm#cp">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="darkBackTextureFile">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#darkbacktexturefile">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="darkBackTextureMode">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#darkbacktexturemode">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="darkSquareColor">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#wpc">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="debug">\r
+               <param name="Name" value="Load and Save Options">\r
+               <param name="Local" value="html/15.htm#debug">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="debugFile">\r
+               <param name="Name" value="Load and Save Options">\r
+               <param name="Local" value="html/15.htm#debugfile">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="debugMode">\r
+               <param name="Name" value="Load and Save Options">\r
+               <param name="Local" value="html/15.htm#debug">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Decline">\r
+               <param name="Name" value="Action Menu">\r
+               <param name="Local" value="html/05.htm#decline">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="defaultCacheSizeEGTB">\r
+               <param name="Name" value="UCI Engine Support">\r
+               <param name="Local" value="html/13.htm#defaultcachesizeegtb">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="defaultFrcPosition">\r
+               <param name="Name" value="Other Options">\r
+               <param name="Local" value="html/18.htm#defaultfrcposition">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="defaultHashSize">\r
+               <param name="Name" value="UCI Engine Support">\r
+               <param name="Local" value="html/13.htm#defaulthashsize">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="defaultPathEGTB">\r
+               <param name="Name" value="UCI Engine Support">\r
+               <param name="Local" value="html/13.htm#defaultpathegtb">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="delayAfterQuit">\r
+               <param name="Name" value="Other Options">\r
+               <param name="Local" value="html/18.htm#delayafterquit">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="delayBeforeQuit">\r
+               <param name="Name" value="Other Options">\r
+               <param name="Local" value="html/18.htm#delaybeforequit">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Description">\r
+               <param name="Name" value="Contents">\r
+               <param name="Local" value="html/01.htm#description">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Detect Mates">\r
+               <param name="Name" value="Options Menu">\r
+               <param name="Local" value="html/07.htm#detectmates">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="drag">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#drag">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Draw">\r
+               <param name="Name" value="Action Menu">\r
+               <param name="Local" value="html/05.htm#draw">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Draw If Insufficient Material">\r
+               <param name="Name" value="Options Menu">\r
+               <param name="Local" value="html/07.htm#drawifinsufficientmaterial">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="dsc">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#wpc">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="edit">\r
+               <param name="Name" value="Internet Chess Server Options">\r
+               <param name="Local" value="html/14.htm#edit">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Edit Comment">\r
+               <param name="Name" value="Mode Menu">\r
+               <param name="Local" value="html/04.htm#editcomment">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Edit Game">\r
+               <param name="Name" value="Mode Menu">\r
+               <param name="Local" value="html/04.htm#editgame">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Edit Position">\r
+               <param name="Name" value="Mode Menu">\r
+               <param name="Local" value="html/04.htm#editposition">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Edit Tags">\r
+               <param name="Name" value="Mode Menu">\r
+               <param name="Local" value="html/04.htm#edittags">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="EGTB Cache Size">\r
+               <param name="Name" value="Options Menu">\r
+               <param name="Local" value="html/07.htm#hashsize">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="EGTB Path">\r
+               <param name="Name" value="Options Menu">\r
+               <param name="Local" value="html/07.htm#hashsize">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Engine Settings">\r
+               <param name="Name" value="Options Menu">\r
+               <param name="Local" value="html/07.htm#engine settings">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="engineDebugOutput">\r
+               <param name="Name" value="Load and Save Options">\r
+               <param name="Local" value="html/15.htm#enginedebugoutput">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="engineOutputUp">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#windowup">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Enter Username">\r
+               <param name="Name" value="Mode Menu">\r
+               <param name="Local" value="html/04.htm#enterusername">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="evalGraphUp">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#windowup">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="evalHistoColorBlack">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#evalhistocolorblack">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="evalHistoColorWhite">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#evalhistocolorwhite">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Exit">\r
+               <param name="Name" value="File Menu">\r
+               <param name="Local" value="html/03.htm#exit">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Extended PGN Info">\r
+               <param name="Name" value="Options Menu">\r
+               <param name="Local" value="html/07.htm#extendedpgninfo">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Extra Info In Move History">\r
+               <param name="Name" value="Options Menu">\r
+               <param name="Local" value="html/07.htm#extrainfoinmovehistory">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="fb">\r
+               <param name="Name" value="Chess Engine Options">\r
+               <param name="Local" value="html/12.htm#fb">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="fcp">\r
+               <param name="Name" value="Chess Engine Options">\r
+               <param name="Local" value="html/12.htm#fd">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="fd">\r
+               <param name="Name" value="Chess Engine Options">\r
+               <param name="Local" value="html/12.htm#fd">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="fh">\r
+               <param name="Name" value="Chess Engine Options">\r
+               <param name="Local" value="html/12.htm#fh">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="File Menu">\r
+               <param name="Name" value="File Menu">\r
+               <param name="Local" value="html/03.htm">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Files">\r
+               <param name="Name" value="Files">\r
+               <param name="Local" value="html/19.htm">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Finger">\r
+               <param name="Name" value="ICS Interaction Context Menu">\r
+               <param name="Local" value="html/09.htm#finger">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Firewalls">\r
+               <param name="Name" value="Firewalls">\r
+               <param name="Local" value="html/21.htm">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="firstChessProgram">\r
+               <param name="Name" value="Chess Engine Options">\r
+               <param name="Local" value="html/12.htm#fd">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="firstChessProgramNames">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#firstchessprogramnames">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="firstDirectory">\r
+               <param name="Name" value="Chess Engine Options">\r
+               <param name="Local" value="html/12.htm#fd">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="firstHasOwnBookUCI">\r
+               <param name="Name" value="UCI Engine Support">\r
+               <param name="Local" value="html/13.htm#fnoownbookuci">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="firstHost">\r
+               <param name="Name" value="Chess Engine Options">\r
+               <param name="Local" value="html/12.htm#fh">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="firstIsUCI">\r
+               <param name="Name" value="UCI Engine Support">\r
+               <param name="Local" value="html/13.htm#fuci">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="firstLogo">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#firstlogo">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="firstNeedsNoncompliantFEN">\r
+               <param name="Name" value="Chess Engine Options">\r
+               <param name="Local" value="html/12.htm#firstneedsnoncompliantfen">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="firstNPS">\r
+               <param name="Name" value="Chess Engine Options">\r
+               <param name="Local" value="html/12.htm#firstnps">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="firstOptions">\r
+               <param name="Name" value="Chess Engine Options">\r
+               <param name="Local" value="html/12.htm#firstoptions">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="firstPlaysBlack">\r
+               <param name="Name" value="Chess Engine Options">\r
+               <param name="Local" value="html/12.htm#fb">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="firstProtocolVersion">\r
+               <param name="Name" value="Chess Engine Options">\r
+               <param name="Local" value="html/12.htm#firstprotocolversion">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="firstScoreAbs">\r
+               <param name="Name" value="Chess Engine Options">\r
+               <param name="Local" value="html/12.htm#firstscoreabs">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="firstTimeOdds">\r
+               <param name="Name" value="Chess Engine Options">\r
+               <param name="Local" value="html/12.htm#firsttimeodds">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="firstXBook">\r
+               <param name="Name" value="UCI Engine Support">\r
+               <param name="Local" value="html/13.htm#fnoownbookuci">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="flip">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#flip">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Flip Black">\r
+               <param name="Name" value="Options Menu">\r
+               <param name="Local" value="html/07.htm#flipblack">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Flip View">\r
+               <param name="Name" value="Options Menu">\r
+               <param name="Local" value="html/07.htm#flipview">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="flipBlack">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#monomode">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="flipView">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#flip">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="fNoOwnBookUCI">\r
+               <param name="Name" value="UCI Engine Support">\r
+               <param name="Local" value="html/13.htm#fnoownbookuci">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="fontPieceBackColorBlack">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#fontpiecebackcolorwhite">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="fontPieceBackColorWhite">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#fontpiecebackcolorwhite">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="fontPieceForeColorBlack">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#fontpiecebackcolorwhite">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="fontPieceForeColorWhite">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#fontpiecebackcolorwhite">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="fontPieceSize">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#fontpiecesize">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="fontPieceToCharTable">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#fontpiecetochartable">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Fonts">\r
+               <param name="Name" value="Options Menu">\r
+               <param name="Local" value="html/07.htm#fonts">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Forward">\r
+               <param name="Name" value="Step Menu">\r
+               <param name="Local" value="html/06.htm#forward">\r
+               <param name="Name" value="Buttons">\r
+               <param name="Local" value="html/10.htm">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Forward to End">\r
+               <param name="Name" value="Step Menu">\r
+               <param name="Local" value="html/06.htm#forwardtoend">\r
+               <param name="Name" value="Buttons">\r
+               <param name="Local" value="html/10.htm">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="fUCI">\r
+               <param name="Name" value="UCI Engine Support">\r
+               <param name="Local" value="html/13.htm#fuci">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="gameListTags">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#gamelisttags">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Games">\r
+               <param name="Name" value="ICS Interaction Context Menu">\r
+               <param name="Local" value="html/09.htm#games">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="gateway">\r
+               <param name="Name" value="Internet Chess Server Options">\r
+               <param name="Local" value="html/14.htm#gateway">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="General Options">\r
+               <param name="Name" value="Options Menu">\r
+               <param name="Local" value="html/07.htm#generaloptions">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Get Move List">\r
+               <param name="Name" value="Options Menu">\r
+               <param name="Local" value="html/07.htm#getmovelistcmd">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="getMoveList">\r
+               <param name="Name" value="Internet Chess Server Options">\r
+               <param name="Local" value="html/14.htm#moves">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Getting Started">\r
+               <param name="Name" value="Contents">\r
+               <param name="Local" value="html/01.htm#gettingstarted">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="grayscale">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#grayscale">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Hash Size">\r
+               <param name="Name" value="Options Menu">\r
+               <param name="Local" value="html/07.htm#hashsize">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Help Contents">\r
+               <param name="Name" value="Help Menu">\r
+               <param name="Local" value="html/08.htm#helpcontents">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Help Menu">\r
+               <param name="Name" value="Help Menu">\r
+               <param name="Local" value="html/08.htm">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Hide Thinking From Human">\r
+               <param name="Name" value="Options Menu">\r
+               <param name="Local" value="html/07.htm#hidethinkingfromhuman">\r
+               <param name="Name" value="Options Menu">\r
+               <param name="Local" value="html/07.htm#pondernextmove">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="hideThinkingFromHuman">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#nogui">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="highdrag">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#highdrag">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="highlight">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#highlight">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Highlight Dragging">\r
+               <param name="Name" value="Options Menu">\r
+               <param name="Local" value="html/07.htm#highlightdragging">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Highlight Last Move">\r
+               <param name="Name" value="Options Menu">\r
+               <param name="Local" value="html/07.htm#highlightlastmove">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Highlight Move With Arrow">\r
+               <param name="Name" value="Options Menu">\r
+               <param name="Local" value="html/07.htm#highlightmovewitharrow">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="highlightArrowColor">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#highlightarrowcolor">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="highlightDragging">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#highdrag">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="highlightLastMove">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#highlight">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="highlightMovesWithArrow">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#highlightmoveswitharrow">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="highlightSquareColor">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#hsc">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Hint">\r
+               <param name="Name" value="Help Menu">\r
+               <param name="Local" value="html/08.htm#hint">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="holdingsSize">\r
+               <param name="Name" value="Other Options">\r
+               <param name="Local" value="html/18.htm#holdingssize">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="How to Use Help">\r
+               <param name="Name" value="Help Menu">\r
+               <param name="Local" value="html/08.htm#helphelp">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="hsc">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#hsc">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="icon">\r
+               <param name="Name" value="Contents">\r
+               <param name="Local" value="html/01.htm#icon">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="ics">\r
+               <param name="Name" value="Internet Chess Server Options">\r
+               <param name="Local" value="html/14.htm#ics">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="ICS Alarm">\r
+               <param name="Name" value="Options Menu">\r
+               <param name="Local" value="html/07.htm#icsalarm">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="ICS Client">\r
+               <param name="Name" value="Mode Menu">\r
+               <param name="Local" value="html/04.htm#icsclient">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="ICS Interaction Colors">\r
+               <param name="Name" value="Options Menu">\r
+               <param name="Local" value="html/07.htm#icsinteractioncolors">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="ICS Interaction Context Menu">\r
+               <param name="Name" value="ICS Interaction Context Menu">\r
+               <param name="Local" value="html/09.htm">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="ICS Logon">\r
+               <param name="Name" value="Files">\r
+               <param name="Local" value="html/19.htm#settings">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="ICS Options">\r
+               <param name="Name" value="Options Menu">\r
+               <param name="Local" value="html/07.htm#icsoptions">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="icsAlarm">\r
+               <param name="Name" value="Internet Chess Server Options">\r
+               <param name="Local" value="html/14.htm#alarm">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="icsAlarmTime">\r
+               <param name="Name" value="Internet Chess Server Options">\r
+               <param name="Local" value="html/14.htm#icsalarmtime">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="icscom">\r
+               <param name="Name" value="Internet Chess Server Options">\r
+               <param name="Local" value="html/14.htm#icscom">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="icsFont">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#clockfont">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="icshost">\r
+               <param name="Name" value="Internet Chess Server Options">\r
+               <param name="Local" value="html/14.htm#icshost">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="icslogon">\r
+               <param name="Name" value="Internet Chess Server Options">\r
+               <param name="Local" value="html/14.htm#icslogon">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="icsMenu">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#icsmenu">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="icsNames">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#icsnames">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="icsport">\r
+               <param name="Name" value="Internet Chess Server Options">\r
+               <param name="Local" value="html/14.htm#icsport">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="inc">\r
+               <param name="Name" value="Chess Engine Options">\r
+               <param name="Local" value="html/12.htm#inc">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="ini">\r
+               <param name="Name" value="Other Options">\r
+               <param name="Local" value="html/18.htm#ini">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Initialization files">\r
+               <param name="Name" value="Files">\r
+               <param name="Local" value="html/19.htm">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="initialMode">\r
+               <param name="Name" value="Other Options">\r
+               <param name="Local" value="html/18.htm#mode">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="initString">\r
+               <param name="Name" value="Chess Engine Options">\r
+               <param name="Local" value="html/12.htm#initstring">\r
+               <param name="Name" value="Chess Engine Options">\r
+               <param name="Local" value="html/12.htm#secondinitstring">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Installing Chess Engines">\r
+               <param name="Name" value="Installing Chess Engines">\r
+               <param name="Local" value="html/20.htm">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Internet Chess Server Options">\r
+               <param name="Name" value="Internet Chess Server Options">\r
+               <param name="Local" value="html/14.htm">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="internetChessServerComPort">\r
+               <param name="Name" value="Internet Chess Server Options">\r
+               <param name="Local" value="html/14.htm#icscom">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="internetChessServerHost">\r
+               <param name="Name" value="Internet Chess Server Options">\r
+               <param name="Local" value="html/14.htm#icshost">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="internetChessServerLogonScript">\r
+               <param name="Name" value="Internet Chess Server Options">\r
+               <param name="Local" value="html/14.htm#icslogon">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="internetChessServerMode">\r
+               <param name="Name" value="Internet Chess Server Options">\r
+               <param name="Local" value="html/14.htm#ics">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="internetChessServerPort">\r
+               <param name="Name" value="Internet Chess Server Options">\r
+               <param name="Local" value="html/14.htm#icsport">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="legal">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#legal">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="lgf">\r
+               <param name="Name" value="Load and Save Options">\r
+               <param name="Local" value="html/15.htm#lgf">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="lgi">\r
+               <param name="Name" value="Load and Save Options">\r
+               <param name="Local" value="html/15.htm#lgf">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="lightSquareColor">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#wpc">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Limitations">\r
+               <param name="Name" value="Limitations">\r
+               <param name="Local" value="html/22.htm">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="liteBackTextureFile">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#litebacktexturefile">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="liteBackTextureMode">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#litebacktexturemode">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Load and Save Options">\r
+               <param name="Name" value="Load and Save Options">\r
+               <param name="Local" value="html/15.htm">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Load Game">\r
+               <param name="Name" value="File Menu">\r
+               <param name="Local" value="html/03.htm#loadgame">\r
+               <param name="Name" value="Options Menu">\r
+               <param name="Local" value="html/07.htm#loadgameoptns">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Load Next Game">\r
+               <param name="Name" value="File Menu">\r
+               <param name="Local" value="html/03.htm#loadnextgame">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Load Next Position">\r
+               <param name="Name" value="File Menu">\r
+               <param name="Local" value="html/03.htm#loadnextposition">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Load Position">\r
+               <param name="Name" value="File Menu">\r
+               <param name="Local" value="html/03.htm#loadposition">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Load Previous Game">\r
+               <param name="Name" value="File Menu">\r
+               <param name="Local" value="html/03.htm#loadpreviousgame">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Load Previous Position">\r
+               <param name="Name" value="File Menu">\r
+               <param name="Local" value="html/03.htm#loadpreviousposition">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="loadGameFile">\r
+               <param name="Name" value="Load and Save Options">\r
+               <param name="Local" value="html/15.htm#lgf">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="loadGameIndex">\r
+               <param name="Name" value="Load and Save Options">\r
+               <param name="Local" value="html/15.htm#lgf">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="loadPositionFile">\r
+               <param name="Name" value="Load and Save Options">\r
+               <param name="Local" value="html/15.htm#lpf">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="loadPositionIndex">\r
+               <param name="Name" value="Load and Save Options">\r
+               <param name="Local" value="html/15.htm#lpf">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Local Line Editing">\r
+               <param name="Name" value="Options Menu">\r
+               <param name="Local" value="html/07.htm#locallineediting">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="localLineEditing">\r
+               <param name="Name" value="Internet Chess Server Options">\r
+               <param name="Local" value="html/14.htm#edit">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="lpf">\r
+               <param name="Name" value="Load and Save Options">\r
+               <param name="Local" value="html/15.htm#lpf">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="lpi">\r
+               <param name="Name" value="Load and Save Options">\r
+               <param name="Local" value="html/15.htm#lpf">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="lsc">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#wpc">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Machine Black">\r
+               <param name="Name" value="Mode Menu">\r
+               <param name="Local" value="html/04.htm#machineblack">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Machine Both">\r
+               <param name="Name" value="Mode Menu">\r
+               <param name="Local" value="html/04.htm#machine both">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Machine White">\r
+               <param name="Name" value="Mode Menu">\r
+               <param name="Local" value="html/04.htm#machinewhite">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Match">\r
+               <param name="Name" value="ICS Interaction Context Menu">\r
+               <param name="Local" value="html/09.htm#match">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="matchGames">\r
+               <param name="Name" value="Chess Engine Options">\r
+               <param name="Local" value="html/12.htm#mg">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="matchMode">\r
+               <param name="Name" value="Chess Engine Options">\r
+               <param name="Local" value="html/12.htm#mm">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="matchPause">\r
+               <param name="Name" value="Chess Engine Options">\r
+               <param name="Local" value="html/12.htm#matchpause">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="materialDraws">\r
+               <param name="Name" value="Adjudication Options">\r
+               <param name="Local" value="html/17.htm#materialdraws">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Menus">\r
+               <param name="Name" value="Menus">\r
+               <param name="Local" value="html/02.htm">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Message">\r
+               <param name="Name" value="ICS Interaction Context Menu">\r
+               <param name="Local" value="html/09.htm#message">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="messageFont">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#clockfont">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="mg">\r
+               <param name="Name" value="Chess Engine Options">\r
+               <param name="Local" value="html/12.htm#mg">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="mm">\r
+               <param name="Name" value="Chess Engine Options">\r
+               <param name="Local" value="html/12.htm#mm">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="mode">\r
+               <param name="Name" value="Other Options">\r
+               <param name="Local" value="html/18.htm#mode">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Mode Menu">\r
+               <param name="Name" value="Mode Menu">\r
+               <param name="Local" value="html/04.htm">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="mono">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#mono">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="monoMode">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#mono">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="move">\r
+               <param name="Name" value="Contents">\r
+               <param name="Local" value="html/01.htm#move">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Move Now">\r
+               <param name="Name" value="Step Menu">\r
+               <param name="Local" value="html/06.htm#movenow">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Move Sound">\r
+               <param name="Name" value="Options Menu">\r
+               <param name="Local" value="html/07.htm#movesound">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="moveHistoryUp">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#windowup">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="moves">\r
+               <param name="Name" value="Internet Chess Server Options">\r
+               <param name="Local" value="html/14.htm#moves">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="movesPerSession">\r
+               <param name="Name" value="Chess Engine Options">\r
+               <param name="Local" value="html/12.htm#mps">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="mps">\r
+               <param name="Name" value="Chess Engine Options">\r
+               <param name="Local" value="html/12.htm#mps">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="N-Fold Repetition Rule">\r
+               <param name="Name" value="Options Menu">\r
+               <param name="Local" value="html/07.htm#n-foldrepetitionrule">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="N-Move Rule">\r
+               <param name="Name" value="Options Menu">\r
+               <param name="Local" value="html/07.htm#n-moverule">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="nameOfDebugFile">\r
+               <param name="Name" value="Load and Save Options">\r
+               <param name="Local" value="html/15.htm#debugfile">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="ncp">\r
+               <param name="Name" value="Other Options">\r
+               <param name="Local" value="html/18.htm#ncp">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="New Game">\r
+               <param name="Name" value="File Menu">\r
+               <param name="Local" value="html/03.htm#newgame">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="New Shuffle Game">\r
+               <param name="Name" value="File Menu">\r
+               <param name="Local" value="html/03.htm#newshufflegame">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="New Variant">\r
+               <param name="Name" value="File Menu">\r
+               <param name="Local" value="html/03.htm#newvariant">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="niceEngines">\r
+               <param name="Name" value="Chess Engine Options">\r
+               <param name="Local" value="html/12.htm#niceengines">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="noChessProgram">\r
+               <param name="Name" value="Other Options">\r
+               <param name="Local" value="html/18.htm#ncp">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="noGUI">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#nogui">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Number of CPUs">\r
+               <param name="Name" value="Options Menu">\r
+               <param name="Local" value="html/07.htm#hashsize">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Observe">\r
+               <param name="Name" value="ICS Interaction Context Menu">\r
+               <param name="Local" value="html/09.htm#observe">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="oldsave">\r
+               <param name="Name" value="Load and Save Options">\r
+               <param name="Local" value="html/15.htm#oldsave">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="oldSaveStyle">\r
+               <param name="Name" value="Load and Save Options">\r
+               <param name="Local" value="html/15.htm#oldsave">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Opening Book">\r
+               <param name="Name" value="Options Menu">\r
+               <param name="Local" value="html/07.htm#hashsize">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Options">\r
+               <param name="Name" value="Command Line Options">\r
+               <param name="Local" value="html/11.htm">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Options Menu">\r
+               <param name="Name" value="Options Menu">\r
+               <param name="Local" value="html/07.htm">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Other Options">\r
+               <param name="Name" value="Other Options">\r
+               <param name="Local" value="html/18.htm">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="overideLineGap">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#overidelinegap">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Paste">\r
+               <param name="Name" value="ICS Interaction Context Menu">\r
+               <param name="Local" value="html/09.htm#paste">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Paste Game From Clipboard">\r
+               <param name="Name" value="File Menu">\r
+               <param name="Local" value="html/03.htm#pastegamefromclipboard">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Paste Position Clipboard">\r
+               <param name="Name" value="File Menu">\r
+               <param name="Local" value="html/03.htm#pastepositionfromclipboard">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Pause">\r
+               <param name="Name" value="Mode Menu">\r
+               <param name="Local" value="html/04.htm#pause">\r
+               <param name="Name" value="Buttons">\r
+               <param name="Local" value="html/10.htm">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="periodic">\r
+               <param name="Name" value="Chess Engine Options">\r
+               <param name="Local" value="html/12.htm#periodic">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Periodic Updates">\r
+               <param name="Name" value="Options Menu">\r
+               <param name="Local" value="html/07.htm#periodicupdatescmd">\r
+               <param name="Name" value="Options Menu">\r
+               <param name="Local" value="html/07.htm#pondernextmove">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="periodicUpdates">\r
+               <param name="Name" value="Chess Engine Options">\r
+               <param name="Local" value="html/12.htm#periodic">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="pgnEventHeader">\r
+               <param name="Name" value="Load and Save Options">\r
+               <param name="Local" value="html/15.htm#pgneventheader">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="pgnExtendedInfo">\r
+               <param name="Name" value="Load and Save Options">\r
+               <param name="Local" value="html/15.htm#pgnextendedinfo">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="phc">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#hsc">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="pieceToSquareTable">\r
+               <param name="Name" value="Other Options">\r
+               <param name="Local" value="html/18.htm#piecetosquaretable">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Play">\r
+               <param name="Name" value="ICS Interaction Context Menu">\r
+               <param name="Local" value="html/09.htm#play">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Players">\r
+               <param name="Name" value="ICS Interaction Context Menu">\r
+               <param name="Local" value="html/09.htm#players">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Polyglot Directory">\r
+               <param name="Name" value="Options Menu">\r
+               <param name="Local" value="html/07.htm#polyglotdirectory">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="PolyglotBook">\r
+               <param name="Name" value="UCI Engine Support">\r
+               <param name="Local" value="html/13.htm#polyglotbook">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="PolyglotDir">\r
+               <param name="Name" value="UCI Engine Support">\r
+               <param name="Local" value="html/13.htm#polyglotdir">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="ponder">\r
+               <param name="Name" value="Chess Engine Options">\r
+               <param name="Local" value="html/12.htm#ponder">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Ponder Next Move">\r
+               <param name="Name" value="Options Menu">\r
+               <param name="Local" value="html/07.htm#pondernextmovecmd">\r
+               <param name="Name" value="Options Menu">\r
+               <param name="Local" value="html/07.htm#pondernextmove">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="ponderNextMove">\r
+               <param name="Name" value="Chess Engine Options">\r
+               <param name="Local" value="html/12.htm#ponder">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="popup">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#popup">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#popupmoveerrorsopt">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Popup Exit Message">\r
+               <param name="Name" value="Options Menu">\r
+               <param name="Local" value="html/07.htm#popupexitmessagecmd">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Popup Move Errors">\r
+               <param name="Name" value="Options Menu">\r
+               <param name="Local" value="html/07.htm#popupmoveerrorscmd">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="popupMoveErrors">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#popup">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#popupmoveerrorsopt">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="pre">\r
+               <param name="Name" value="Internet Chess Server Options">\r
+               <param name="Local" value="html/14.htm#pre">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="preBlack">\r
+               <param name="Name" value="Internet Chess Server Options">\r
+               <param name="Local" value="html/14.htm#preblack">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Premove">\r
+               <param name="Name" value="Options Menu">\r
+               <param name="Local" value="html/07.htm#premovecmd">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="premove (option)">\r
+               <param name="Name" value="Internet Chess Server Options">\r
+               <param name="Local" value="html/14.htm#pre">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="premoveBlack">\r
+               <param name="Name" value="Internet Chess Server Options">\r
+               <param name="Local" value="html/14.htm#preblack">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="premoveBlackText">\r
+               <param name="Name" value="Internet Chess Server Options">\r
+               <param name="Local" value="html/14.htm#premoveblacktext">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="premoveHighlightColor">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#hsc">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="premoveWhite">\r
+               <param name="Name" value="Internet Chess Server Options">\r
+               <param name="Local" value="html/14.htm#prewhite">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="premoveWhiteText">\r
+               <param name="Name" value="Internet Chess Server Options">\r
+               <param name="Local" value="html/14.htm#premovewhitetext">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="preWhite">\r
+               <param name="Name" value="Internet Chess Server Options">\r
+               <param name="Local" value="html/14.htm#prewhite">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="queen">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#queen">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="quiet">\r
+               <param name="Name" value="Internet Chess Server Options">\r
+               <param name="Local" value="html/14.htm#quiet">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Quiet Play">\r
+               <param name="Name" value="Options Menu">\r
+               <param name="Local" value="html/07.htm#quietplaycmd">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="quietPlay">\r
+               <param name="Name" value="Internet Chess Server Options">\r
+               <param name="Local" value="html/14.htm#quiet">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Reload Same Game">\r
+               <param name="Name" value="File Menu">\r
+               <param name="Local" value="html/03.htm#reloadsamegame">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Reload Same Position">\r
+               <param name="Name" value="File Menu">\r
+               <param name="Local" value="html/03.htm#reloadsameposition">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Rematch">\r
+               <param name="Name" value="Action Menu">\r
+               <param name="Local" value="html/05.htm#rematch">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="remoteShell">\r
+               <param name="Name" value="Other Options">\r
+               <param name="Local" value="html/18.htm#rsh">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="remoteUser">\r
+               <param name="Name" value="Other Options">\r
+               <param name="Local" value="html/18.htm#ruser">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="renderPiecesWithFont">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#renderpieceswithfont">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="repeatsToDraw">\r
+               <param name="Name" value="Adjudication Options">\r
+               <param name="Local" value="html/17.htm#repeatstodraw">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Resign">\r
+               <param name="Name" value="Action Menu">\r
+               <param name="Local" value="html/05.htm#resign">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Retract Move">\r
+               <param name="Name" value="Step Menu">\r
+               <param name="Local" value="html/06.htm#retractmove">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="reuse">\r
+               <param name="Name" value="Chess Engine Options">\r
+               <param name="Local" value="html/12.htm#reuse">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="reuse2">\r
+               <param name="Name" value="Chess Engine Options">\r
+               <param name="Local" value="html/12.htm#reuse">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="reuseFirst">\r
+               <param name="Name" value="Chess Engine Options">\r
+               <param name="Local" value="html/12.htm#reuse">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="reuseSecond">\r
+               <param name="Name" value="Chess Engine Options">\r
+               <param name="Local" value="html/12.htm#reuse">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Revert">\r
+               <param name="Name" value="Step Menu">\r
+               <param name="Local" value="html/06.htm#revert">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="rsh">\r
+               <param name="Name" value="Other Options">\r
+               <param name="Local" value="html/18.htm#rsh">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="ruleMoves">\r
+               <param name="Name" value="Adjudication Options">\r
+               <param name="Local" value="html/17.htm#rulemoves">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="ruser">\r
+               <param name="Name" value="Other Options">\r
+               <param name="Local" value="html/18.htm#ruser">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Save Diagram">\r
+               <param name="Name" value="File Menu">\r
+               <param name="Local" value="html/03.htm#save diagram">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Save Game">\r
+               <param name="Name" value="File Menu">\r
+               <param name="Local" value="html/03.htm#savegame">\r
+               <param name="Name" value="Options Menu">\r
+               <param name="Local" value="html/07.htm#savegameoptns">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Save Position">\r
+               <param name="Name" value="File Menu">\r
+               <param name="Local" value="html/03.htm#saveposition">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Save Settings Now">\r
+               <param name="Name" value="Options Menu">\r
+               <param name="Local" value="html/07.htm#savesettings">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Save Settings on Exit">\r
+               <param name="Name" value="Options Menu">\r
+               <param name="Local" value="html/07.htm#savesettingsonexit">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="saveGameFile">\r
+               <param name="Name" value="Load and Save Options">\r
+               <param name="Local" value="html/15.htm#sgf">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="saveOutOfBookInfo">\r
+               <param name="Name" value="Load and Save Options">\r
+               <param name="Local" value="html/15.htm#saveoutofbookinfo">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="savePositionFile">\r
+               <param name="Name" value="Load and Save Options">\r
+               <param name="Local" value="html/15.htm#spf">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="scp">\r
+               <param name="Name" value="Chess Engine Options">\r
+               <param name="Local" value="html/12.htm#fd">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="sd">\r
+               <param name="Name" value="Chess Engine Options">\r
+               <param name="Local" value="html/12.htm#sd">\r
+               <param name="Name" value="Chess Engine Options">\r
+               <param name="Local" value="html/12.htm#fd">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Search for Help on">\r
+               <param name="Name" value="Help Menu">\r
+               <param name="Local" value="html/08.htm#searchhelp">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="searchDepth">\r
+               <param name="Name" value="Chess Engine Options">\r
+               <param name="Local" value="html/12.htm#sd">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="searchTime">\r
+               <param name="Name" value="Chess Engine Options">\r
+               <param name="Local" value="html/12.htm#st">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="secondChessProgram">\r
+               <param name="Name" value="Chess Engine Options">\r
+               <param name="Local" value="html/12.htm#fd">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="secondChessProgramNames">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#secondchessprogramnames">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="secondDirectory">\r
+               <param name="Name" value="Chess Engine Options">\r
+               <param name="Local" value="html/12.htm#fd">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="secondHasOwnBookUCI">\r
+               <param name="Name" value="UCI Engine Support">\r
+               <param name="Local" value="html/13.htm#snoownbookuci">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="secondHost">\r
+               <param name="Name" value="Chess Engine Options">\r
+               <param name="Local" value="html/12.htm#fh">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="secondInitString">\r
+               <param name="Name" value="Chess Engine Options">\r
+               <param name="Local" value="html/12.htm#initstring">\r
+               <param name="Name" value="Chess Engine Options">\r
+               <param name="Local" value="html/12.htm#secondinitstring">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="secondIsUCI">\r
+               <param name="Name" value="UCI Engine Support">\r
+               <param name="Local" value="html/13.htm#suci">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="secondLogo">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#secondlogo">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="secondNeedsNoncompliantFEN">\r
+               <param name="Name" value="Chess Engine Options">\r
+               <param name="Local" value="html/12.htm#firstneedsnoncompliantfen">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="secondNPS">\r
+               <param name="Name" value="Chess Engine Options">\r
+               <param name="Local" value="html/12.htm#secondnps">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="secondOptions">\r
+               <param name="Name" value="Chess Engine Options">\r
+               <param name="Local" value="html/12.htm#firstoptions">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="secondProtocolVersion">\r
+               <param name="Name" value="Chess Engine Options">\r
+               <param name="Local" value="html/12.htm#firstprotocolversion">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="secondScoreAbs">\r
+               <param name="Name" value="Chess Engine Options">\r
+               <param name="Local" value="html/12.htm#firstscoreabs">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="secondTimeOdds">\r
+               <param name="Name" value="Chess Engine Options">\r
+               <param name="Local" value="html/12.htm#secondtimeodds">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="secondXBook">\r
+               <param name="Name" value="UCI Engine Support">\r
+               <param name="Local" value="html/13.htm#snoownbookuci">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Settings">\r
+               <param name="Name" value="Files">\r
+               <param name="Local" value="html/19.htm#settings">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="settingsFile">\r
+               <param name="Name" value="Other Options">\r
+               <param name="Local" value="html/18.htm#ini">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="sgf">\r
+               <param name="Name" value="Load and Save Options">\r
+               <param name="Local" value="html/15.htm#sgf">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="sh">\r
+               <param name="Name" value="Chess Engine Options">\r
+               <param name="Local" value="html/12.htm#fh">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Show Button Bar">\r
+               <param name="Name" value="Options Menu">\r
+               <param name="Local" value="html/07.htm#showbuttonbarcmd">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Show Coords">\r
+               <param name="Name" value="Options Menu">\r
+               <param name="Local" value="html/07.htm#showcoordscmd">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Show Engine Output">\r
+               <param name="Name" value="Mode Menu">\r
+               <param name="Local" value="html/04.htm#show engine output">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Show Evaluation Graph">\r
+               <param name="Name" value="Mode Menu">\r
+               <param name="Local" value="html/04.htm#show evaluation graph">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Show Game List">\r
+               <param name="Name" value="Mode Menu">\r
+               <param name="Local" value="html/04.htm#showgamelist">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Show Move History">\r
+               <param name="Name" value="Mode Menu">\r
+               <param name="Local" value="html/04.htm#show move history">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Show Thinking">\r
+               <param name="Name" value="Options Menu">\r
+               <param name="Local" value="html/07.htm#showthinkingcmd">\r
+               <param name="Name" value="Options Menu">\r
+               <param name="Local" value="html/07.htm#pondernextmove">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="showCoords">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#coords">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="showThinking">\r
+               <param name="Name" value="Chess Engine Options">\r
+               <param name="Local" value="html/12.htm#thinking">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="size">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#size">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="sNoOwnBookUCI">\r
+               <param name="Name" value="UCI Engine Support">\r
+               <param name="Local" value="html/13.htm#snoownbookuci">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Sought">\r
+               <param name="Name" value="ICS Interaction Context Menu">\r
+               <param name="Local" value="html/09.htm#sought">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="soundBell">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#soundshout">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="soundChallenge">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#soundshout">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="soundChannel">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#soundshout">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="soundChannel1">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#soundshout">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="soundIcsAlarm">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#soundicsalarm">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="soundIcsDraw">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#soundicswin">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="soundIcsLoss">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#soundicswin">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="soundIcsUnfinished">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#soundicswin">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="soundIcsWin">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#soundicswin">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="soundKibitz">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#soundshout">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="soundMove">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#soundshout">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="soundRequest">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#soundshout">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Sounds">\r
+               <param name="Name" value="Options Menu">\r
+               <param name="Local" value="html/07.htm#sounds">\r
+               <param name="Name" value="Options Menu">\r
+               <param name="Local" value="html/07.htm#communications">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="soundShout">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#soundshout">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="soundSShout">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#soundshout">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="soundTell">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#soundshout">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="spf">\r
+               <param name="Name" value="Load and Save Options">\r
+               <param name="Local" value="html/15.htm#spf">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="st">\r
+               <param name="Name" value="Chess Engine Options">\r
+               <param name="Local" value="html/12.htm#st">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Step Menu">\r
+               <param name="Name" value="Step Menu">\r
+               <param name="Local" value="html/06.htm">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="stickyWindows">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#stickywindows">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Stop Examining">\r
+               <param name="Name" value="Action Menu">\r
+               <param name="Local" value="html/05.htm#stopexamining">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Stop Observing">\r
+               <param name="Name" value="Action Menu">\r
+               <param name="Local" value="html/05.htm#stopobserving">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="sUCI">\r
+               <param name="Name" value="UCI Engine Support">\r
+               <param name="Local" value="html/13.htm#suci">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Swap Clocks">\r
+               <param name="Name" value="Options Menu">\r
+               <param name="Local" value="html/07.htm#swap clocks">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="tagsFont">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#clockfont">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="tc">\r
+               <param name="Name" value="Chess Engine Options">\r
+               <param name="Local" value="html/12.htm#tc">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="td">\r
+               <param name="Name" value="Load and Save Options">\r
+               <param name="Local" value="html/15.htm#td">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Tell">\r
+               <param name="Name" value="ICS Interaction Context Menu">\r
+               <param name="Local" value="html/09.htm#tell">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="telnet">\r
+               <param name="Name" value="Internet Chess Server Options">\r
+               <param name="Local" value="html/14.htm#telnet">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="telnetProgram">\r
+               <param name="Name" value="Internet Chess Server Options">\r
+               <param name="Local" value="html/14.htm#telnetprogram">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Test Legality">\r
+               <param name="Name" value="Options Menu">\r
+               <param name="Local" value="html/07.htm#testlegalitycmd">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="testClaims">\r
+               <param name="Name" value="Adjudication Options">\r
+               <param name="Local" value="html/17.htm#testclaims">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="testLegality">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#legal">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="thinking">\r
+               <param name="Name" value="Chess Engine Options">\r
+               <param name="Local" value="html/12.htm#thinking">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Time Control">\r
+               <param name="Name" value="Options Menu">\r
+               <param name="Local" value="html/07.htm#timecontrolcmd">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="timeControl">\r
+               <param name="Name" value="Chess Engine Options">\r
+               <param name="Local" value="html/12.htm#tc">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="timeDelay">\r
+               <param name="Name" value="Load and Save Options">\r
+               <param name="Local" value="html/15.htm#td">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="timeIncrement">\r
+               <param name="Name" value="Chess Engine Options">\r
+               <param name="Local" value="html/12.htm#inc">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="timeOddsMode">\r
+               <param name="Name" value="Chess Engine Options">\r
+               <param name="Local" value="html/12.htm#timeoddsmode">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="timeseal">\r
+               <param name="Name" value="Internet Chess Server Options">\r
+               <param name="Local" value="html/14.htm#via">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="timestamp">\r
+               <param name="Name" value="Internet Chess Server Options">\r
+               <param name="Local" value="html/14.htm#via">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="top">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#top">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Training">\r
+               <param name="Name" value="Mode Menu">\r
+               <param name="Local" value="html/04.htm#training">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="trivialDraws">\r
+               <param name="Name" value="Adjudication Options">\r
+               <param name="Local" value="html/17.htm#trivialdraws">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Truncate Game">\r
+               <param name="Name" value="Step Menu">\r
+               <param name="Local" value="html/06.htm#truncategame">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Two Machines">\r
+               <param name="Name" value="Mode Menu">\r
+               <param name="Local" value="html/04.htm#twomachines">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Type In Move">\r
+               <param name="Name" value="Step Menu">\r
+               <param name="Local" value="html/06.htm#typeinmove">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="UCI Engine Support">\r
+               <param name="Name" value="UCI Engine Support">\r
+               <param name="Local" value="html/13.htm">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="usePolyglotBook">\r
+               <param name="Name" value="UCI Engine Support">\r
+               <param name="Local" value="html/13.htm#usepolyglotbook">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="User Interface Options">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="userName">\r
+               <param name="Name" value="Other Options">\r
+               <param name="Local" value="html/18.htm#username">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="useTelnet">\r
+               <param name="Name" value="Internet Chess Server Options">\r
+               <param name="Local" value="html/14.htm#telnet">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="variant">\r
+               <param name="Name" value="Other Options">\r
+               <param name="Local" value="html/18.htm#variant">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Vars">\r
+               <param name="Name" value="ICS Interaction Context Menu">\r
+               <param name="Local" value="html/09.htm#vars">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Verify Claims">\r
+               <param name="Name" value="Options Menu">\r
+               <param name="Local" value="html/07.htm#verifyclaims">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="via">\r
+               <param name="Name" value="Internet Chess Server Options">\r
+               <param name="Local" value="html/14.htm#via">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="whitePieceColor">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#wpc">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="Who">\r
+               <param name="Name" value="ICS Interaction Context Menu">\r
+               <param name="Local" value="html/09.htm#who">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="wpc">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#wpc">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="xalarm">\r
+               <param name="Name" value="Internet Chess Server Options">\r
+               <param name="Local" value="html/14.htm#alarm">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="xpre">\r
+               <param name="Name" value="Internet Chess Server Options">\r
+               <param name="Local" value="html/14.htm#pre">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="xpreBlack">\r
+               <param name="Name" value="Internet Chess Server Options">\r
+               <param name="Local" value="html/14.htm#preblack">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="xpreWhite">\r
+               <param name="Name" value="Internet Chess Server Options">\r
+               <param name="Local" value="html/14.htm#prewhite">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="xy coordinates of board">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#xy">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="xywh coordinates of Analysis window">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#xywh">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="xywh coordinates of Comment window">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#xywh">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="xywh coordinates of Engine Output window">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#windowup">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="xywh coordinates of Evaluation Graph window">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#windowup">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="xywh coordinates of Game List window">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#xywh">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="xywh coordinates of ICS Interaction window">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#xywh">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="xywh coordinates of Move History window">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#windowup">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Keyword" value="xywh coordinates of Tags window">\r
+               <param name="Name" value="User Interface Options">\r
+               <param name="Local" value="html/16.htm#xywh">\r
+               </OBJECT>\r
+</UL></HTML>\r
diff --git a/winboard/help/winboard.hhp b/winboard/help/winboard.hhp
new file mode 100644 (file)
index 0000000..c4a22d3
--- /dev/null
@@ -0,0 +1,29 @@
+[OPTIONS]\r
+Contents file=C:\Chess\WinBoard\help\contents.hhc\r
+Index file=C:\Chess\WinBoard\help\winboard.hhk\r
+\r
+[FILES]\r
+html\01.htm\r
+html\02.htm\r
+html\03.htm\r
+html\04.htm\r
+html\05.htm\r
+html\06.htm\r
+html\07.htm\r
+html\08.htm\r
+html\09.htm\r
+html\10.htm\r
+html\11.htm\r
+html\12.htm\r
+html\13.htm\r
+html\14.htm\r
+html\15.htm\r
+html\16.htm\r
+html\17.htm\r
+html\18.htm\r
+html\19.htm\r
+html\20.htm\r
+html\21.htm\r
+html\22.htm\r
+html\23.htm\r
+html\24.htm\r
diff --git a/winboard/install/files/COPYING.txt b/winboard/install/files/COPYING.txt
new file mode 100644 (file)
index 0000000..818433e
--- /dev/null
@@ -0,0 +1,674 @@
+                    GNU GENERAL PUBLIC LICENSE\r
+                       Version 3, 29 June 2007\r
+\r
+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>\r
+ Everyone is permitted to copy and distribute verbatim copies\r
+ of this license document, but changing it is not allowed.\r
+\r
+                            Preamble\r
+\r
+  The GNU General Public License is a free, copyleft license for\r
+software and other kinds of works.\r
+\r
+  The licenses for most software and other practical works are designed\r
+to take away your freedom to share and change the works.  By contrast,\r
+the GNU General Public License is intended to guarantee your freedom to\r
+share and change all versions of a program--to make sure it remains free\r
+software for all its users.  We, the Free Software Foundation, use the\r
+GNU General Public License for most of our software; it applies also to\r
+any other work released this way by its authors.  You can apply it to\r
+your programs, too.\r
+\r
+  When we speak of free software, we are referring to freedom, not\r
+price.  Our General Public Licenses are designed to make sure that you\r
+have the freedom to distribute copies of free software (and charge for\r
+them if you wish), that you receive source code or can get it if you\r
+want it, that you can change the software or use pieces of it in new\r
+free programs, and that you know you can do these things.\r
+\r
+  To protect your rights, we need to prevent others from denying you\r
+these rights or asking you to surrender the rights.  Therefore, you have\r
+certain responsibilities if you distribute copies of the software, or if\r
+you modify it: responsibilities to respect the freedom of others.\r
+\r
+  For example, if you distribute copies of such a program, whether\r
+gratis or for a fee, you must pass on to the recipients the same\r
+freedoms that you received.  You must make sure that they, too, receive\r
+or can get the source code.  And you must show them these terms so they\r
+know their rights.\r
+\r
+  Developers that use the GNU GPL protect your rights with two steps:\r
+(1) assert copyright on the software, and (2) offer you this License\r
+giving you legal permission to copy, distribute and/or modify it.\r
+\r
+  For the developers' and authors' protection, the GPL clearly explains\r
+that there is no warranty for this free software.  For both users' and\r
+authors' sake, the GPL requires that modified versions be marked as\r
+changed, so that their problems will not be attributed erroneously to\r
+authors of previous versions.\r
+\r
+  Some devices are designed to deny users access to install or run\r
+modified versions of the software inside them, although the manufacturer\r
+can do so.  This is fundamentally incompatible with the aim of\r
+protecting users' freedom to change the software.  The systematic\r
+pattern of such abuse occurs in the area of products for individuals to\r
+use, which is precisely where it is most unacceptable.  Therefore, we\r
+have designed this version of the GPL to prohibit the practice for those\r
+products.  If such problems arise substantially in other domains, we\r
+stand ready to extend this provision to those domains in future versions\r
+of the GPL, as needed to protect the freedom of users.\r
+\r
+  Finally, every program is threatened constantly by software patents.\r
+States should not allow patents to restrict development and use of\r
+software on general-purpose computers, but in those that do, we wish to\r
+avoid the special danger that patents applied to a free program could\r
+make it effectively proprietary.  To prevent this, the GPL assures that\r
+patents cannot be used to render the program non-free.\r
+\r
+  The precise terms and conditions for copying, distribution and\r
+modification follow.\r
+\r
+                       TERMS AND CONDITIONS\r
+\r
+  0. Definitions.\r
+\r
+  "This License" refers to version 3 of the GNU General Public License.\r
+\r
+  "Copyright" also means copyright-like laws that apply to other kinds of\r
+works, such as semiconductor masks.\r
+\r
+  "The Program" refers to any copyrightable work licensed under this\r
+License.  Each licensee is addressed as "you".  "Licensees" and\r
+"recipients" may be individuals or organizations.\r
+\r
+  To "modify" a work means to copy from or adapt all or part of the work\r
+in a fashion requiring copyright permission, other than the making of an\r
+exact copy.  The resulting work is called a "modified version" of the\r
+earlier work or a work "based on" the earlier work.\r
+\r
+  A "covered work" means either the unmodified Program or a work based\r
+on the Program.\r
+\r
+  To "propagate" a work means to do anything with it that, without\r
+permission, would make you directly or secondarily liable for\r
+infringement under applicable copyright law, except executing it on a\r
+computer or modifying a private copy.  Propagation includes copying,\r
+distribution (with or without modification), making available to the\r
+public, and in some countries other activities as well.\r
+\r
+  To "convey" a work means any kind of propagation that enables other\r
+parties to make or receive copies.  Mere interaction with a user through\r
+a computer network, with no transfer of a copy, is not conveying.\r
+\r
+  An interactive user interface displays "Appropriate Legal Notices"\r
+to the extent that it includes a convenient and prominently visible\r
+feature that (1) displays an appropriate copyright notice, and (2)\r
+tells the user that there is no warranty for the work (except to the\r
+extent that warranties are provided), that licensees may convey the\r
+work under this License, and how to view a copy of this License.  If\r
+the interface presents a list of user commands or options, such as a\r
+menu, a prominent item in the list meets this criterion.\r
+\r
+  1. Source Code.\r
+\r
+  The "source code" for a work means the preferred form of the work\r
+for making modifications to it.  "Object code" means any non-source\r
+form of a work.\r
+\r
+  A "Standard Interface" means an interface that either is an official\r
+standard defined by a recognized standards body, or, in the case of\r
+interfaces specified for a particular programming language, one that\r
+is widely used among developers working in that language.\r
+\r
+  The "System Libraries" of an executable work include anything, other\r
+than the work as a whole, that (a) is included in the normal form of\r
+packaging a Major Component, but which is not part of that Major\r
+Component, and (b) serves only to enable use of the work with that\r
+Major Component, or to implement a Standard Interface for which an\r
+implementation is available to the public in source code form.  A\r
+"Major Component", in this context, means a major essential component\r
+(kernel, window system, and so on) of the specific operating system\r
+(if any) on which the executable work runs, or a compiler used to\r
+produce the work, or an object code interpreter used to run it.\r
+\r
+  The "Corresponding Source" for a work in object code form means all\r
+the source code needed to generate, install, and (for an executable\r
+work) run the object code and to modify the work, including scripts to\r
+control those activities.  However, it does not include the work's\r
+System Libraries, or general-purpose tools or generally available free\r
+programs which are used unmodified in performing those activities but\r
+which are not part of the work.  For example, Corresponding Source\r
+includes interface definition files associated with source files for\r
+the work, and the source code for shared libraries and dynamically\r
+linked subprograms that the work is specifically designed to require,\r
+such as by intimate data communication or control flow between those\r
+subprograms and other parts of the work.\r
+\r
+  The Corresponding Source need not include anything that users\r
+can regenerate automatically from other parts of the Corresponding\r
+Source.\r
+\r
+  The Corresponding Source for a work in source code form is that\r
+same work.\r
+\r
+  2. Basic Permissions.\r
+\r
+  All rights granted under this License are granted for the term of\r
+copyright on the Program, and are irrevocable provided the stated\r
+conditions are met.  This License explicitly affirms your unlimited\r
+permission to run the unmodified Program.  The output from running a\r
+covered work is covered by this License only if the output, given its\r
+content, constitutes a covered work.  This License acknowledges your\r
+rights of fair use or other equivalent, as provided by copyright law.\r
+\r
+  You may make, run and propagate covered works that you do not\r
+convey, without conditions so long as your license otherwise remains\r
+in force.  You may convey covered works to others for the sole purpose\r
+of having them make modifications exclusively for you, or provide you\r
+with facilities for running those works, provided that you comply with\r
+the terms of this License in conveying all material for which you do\r
+not control copyright.  Those thus making or running the covered works\r
+for you must do so exclusively on your behalf, under your direction\r
+and control, on terms that prohibit them from making any copies of\r
+your copyrighted material outside their relationship with you.\r
+\r
+  Conveying under any other circumstances is permitted solely under\r
+the conditions stated below.  Sublicensing is not allowed; section 10\r
+makes it unnecessary.\r
+\r
+  3. Protecting Users' Legal Rights From Anti-Circumvention Law.\r
+\r
+  No covered work shall be deemed part of an effective technological\r
+measure under any applicable law fulfilling obligations under article\r
+11 of the WIPO copyright treaty adopted on 20 December 1996, or\r
+similar laws prohibiting or restricting circumvention of such\r
+measures.\r
+\r
+  When you convey a covered work, you waive any legal power to forbid\r
+circumvention of technological measures to the extent such circumvention\r
+is effected by exercising rights under this License with respect to\r
+the covered work, and you disclaim any intention to limit operation or\r
+modification of the work as a means of enforcing, against the work's\r
+users, your or third parties' legal rights to forbid circumvention of\r
+technological measures.\r
+\r
+  4. Conveying Verbatim Copies.\r
+\r
+  You may convey verbatim copies of the Program's source code as you\r
+receive it, in any medium, provided that you conspicuously and\r
+appropriately publish on each copy an appropriate copyright notice;\r
+keep intact all notices stating that this License and any\r
+non-permissive terms added in accord with section 7 apply to the code;\r
+keep intact all notices of the absence of any warranty; and give all\r
+recipients a copy of this License along with the Program.\r
+\r
+  You may charge any price or no price for each copy that you convey,\r
+and you may offer support or warranty protection for a fee.\r
+\r
+  5. Conveying Modified Source Versions.\r
+\r
+  You may convey a work based on the Program, or the modifications to\r
+produce it from the Program, in the form of source code under the\r
+terms of section 4, provided that you also meet all of these conditions:\r
+\r
+    a) The work must carry prominent notices stating that you modified\r
+    it, and giving a relevant date.\r
+\r
+    b) The work must carry prominent notices stating that it is\r
+    released under this License and any conditions added under section\r
+    7.  This requirement modifies the requirement in section 4 to\r
+    "keep intact all notices".\r
+\r
+    c) You must license the entire work, as a whole, under this\r
+    License to anyone who comes into possession of a copy.  This\r
+    License will therefore apply, along with any applicable section 7\r
+    additional terms, to the whole of the work, and all its parts,\r
+    regardless of how they are packaged.  This License gives no\r
+    permission to license the work in any other way, but it does not\r
+    invalidate such permission if you have separately received it.\r
+\r
+    d) If the work has interactive user interfaces, each must display\r
+    Appropriate Legal Notices; however, if the Program has interactive\r
+    interfaces that do not display Appropriate Legal Notices, your\r
+    work need not make them do so.\r
+\r
+  A compilation of a covered work with other separate and independent\r
+works, which are not by their nature extensions of the covered work,\r
+and which are not combined with it such as to form a larger program,\r
+in or on a volume of a storage or distribution medium, is called an\r
+"aggregate" if the compilation and its resulting copyright are not\r
+used to limit the access or legal rights of the compilation's users\r
+beyond what the individual works permit.  Inclusion of a covered work\r
+in an aggregate does not cause this License to apply to the other\r
+parts of the aggregate.\r
+\r
+  6. Conveying Non-Source Forms.\r
+\r
+  You may convey a covered work in object code form under the terms\r
+of sections 4 and 5, provided that you also convey the\r
+machine-readable Corresponding Source under the terms of this License,\r
+in one of these ways:\r
+\r
+    a) Convey the object code in, or embodied in, a physical product\r
+    (including a physical distribution medium), accompanied by the\r
+    Corresponding Source fixed on a durable physical medium\r
+    customarily used for software interchange.\r
+\r
+    b) Convey the object code in, or embodied in, a physical product\r
+    (including a physical distribution medium), accompanied by a\r
+    written offer, valid for at least three years and valid for as\r
+    long as you offer spare parts or customer support for that product\r
+    model, to give anyone who possesses the object code either (1) a\r
+    copy of the Corresponding Source for all the software in the\r
+    product that is covered by this License, on a durable physical\r
+    medium customarily used for software interchange, for a price no\r
+    more than your reasonable cost of physically performing this\r
+    conveying of source, or (2) access to copy the\r
+    Corresponding Source from a network server at no charge.\r
+\r
+    c) Convey individual copies of the object code with a copy of the\r
+    written offer to provide the Corresponding Source.  This\r
+    alternative is allowed only occasionally and noncommercially, and\r
+    only if you received the object code with such an offer, in accord\r
+    with subsection 6b.\r
+\r
+    d) Convey the object code by offering access from a designated\r
+    place (gratis or for a charge), and offer equivalent access to the\r
+    Corresponding Source in the same way through the same place at no\r
+    further charge.  You need not require recipients to copy the\r
+    Corresponding Source along with the object code.  If the place to\r
+    copy the object code is a network server, the Corresponding Source\r
+    may be on a different server (operated by you or a third party)\r
+    that supports equivalent copying facilities, provided you maintain\r
+    clear directions next to the object code saying where to find the\r
+    Corresponding Source.  Regardless of what server hosts the\r
+    Corresponding Source, you remain obligated to ensure that it is\r
+    available for as long as needed to satisfy these requirements.\r
+\r
+    e) Convey the object code using peer-to-peer transmission, provided\r
+    you inform other peers where the object code and Corresponding\r
+    Source of the work are being offered to the general public at no\r
+    charge under subsection 6d.\r
+\r
+  A separable portion of the object code, whose source code is excluded\r
+from the Corresponding Source as a System Library, need not be\r
+included in conveying the object code work.\r
+\r
+  A "User Product" is either (1) a "consumer product", which means any\r
+tangible personal property which is normally used for personal, family,\r
+or household purposes, or (2) anything designed or sold for incorporation\r
+into a dwelling.  In determining whether a product is a consumer product,\r
+doubtful cases shall be resolved in favor of coverage.  For a particular\r
+product received by a particular user, "normally used" refers to a\r
+typical or common use of that class of product, regardless of the status\r
+of the particular user or of the way in which the particular user\r
+actually uses, or expects or is expected to use, the product.  A product\r
+is a consumer product regardless of whether the product has substantial\r
+commercial, industrial or non-consumer uses, unless such uses represent\r
+the only significant mode of use of the product.\r
+\r
+  "Installation Information" for a User Product means any methods,\r
+procedures, authorization keys, or other information required to install\r
+and execute modified versions of a covered work in that User Product from\r
+a modified version of its Corresponding Source.  The information must\r
+suffice to ensure that the continued functioning of the modified object\r
+code is in no case prevented or interfered with solely because\r
+modification has been made.\r
+\r
+  If you convey an object code work under this section in, or with, or\r
+specifically for use in, a User Product, and the conveying occurs as\r
+part of a transaction in which the right of possession and use of the\r
+User Product is transferred to the recipient in perpetuity or for a\r
+fixed term (regardless of how the transaction is characterized), the\r
+Corresponding Source conveyed under this section must be accompanied\r
+by the Installation Information.  But this requirement does not apply\r
+if neither you nor any third party retains the ability to install\r
+modified object code on the User Product (for example, the work has\r
+been installed in ROM).\r
+\r
+  The requirement to provide Installation Information does not include a\r
+requirement to continue to provide support service, warranty, or updates\r
+for a work that has been modified or installed by the recipient, or for\r
+the User Product in which it has been modified or installed.  Access to a\r
+network may be denied when the modification itself materially and\r
+adversely affects the operation of the network or violates the rules and\r
+protocols for communication across the network.\r
+\r
+  Corresponding Source conveyed, and Installation Information provided,\r
+in accord with this section must be in a format that is publicly\r
+documented (and with an implementation available to the public in\r
+source code form), and must require no special password or key for\r
+unpacking, reading or copying.\r
+\r
+  7. Additional Terms.\r
+\r
+  "Additional permissions" are terms that supplement the terms of this\r
+License by making exceptions from one or more of its conditions.\r
+Additional permissions that are applicable to the entire Program shall\r
+be treated as though they were included in this License, to the extent\r
+that they are valid under applicable law.  If additional permissions\r
+apply only to part of the Program, that part may be used separately\r
+under those permissions, but the entire Program remains governed by\r
+this License without regard to the additional permissions.\r
+\r
+  When you convey a copy of a covered work, you may at your option\r
+remove any additional permissions from that copy, or from any part of\r
+it.  (Additional permissions may be written to require their own\r
+removal in certain cases when you modify the work.)  You may place\r
+additional permissions on material, added by you to a covered work,\r
+for which you have or can give appropriate copyright permission.\r
+\r
+  Notwithstanding any other provision of this License, for material you\r
+add to a covered work, you may (if authorized by the copyright holders of\r
+that material) supplement the terms of this License with terms:\r
+\r
+    a) Disclaiming warranty or limiting liability differently from the\r
+    terms of sections 15 and 16 of this License; or\r
+\r
+    b) Requiring preservation of specified reasonable legal notices or\r
+    author attributions in that material or in the Appropriate Legal\r
+    Notices displayed by works containing it; or\r
+\r
+    c) Prohibiting misrepresentation of the origin of that material, or\r
+    requiring that modified versions of such material be marked in\r
+    reasonable ways as different from the original version; or\r
+\r
+    d) Limiting the use for publicity purposes of names of licensors or\r
+    authors of the material; or\r
+\r
+    e) Declining to grant rights under trademark law for use of some\r
+    trade names, trademarks, or service marks; or\r
+\r
+    f) Requiring indemnification of licensors and authors of that\r
+    material by anyone who conveys the material (or modified versions of\r
+    it) with contractual assumptions of liability to the recipient, for\r
+    any liability that these contractual assumptions directly impose on\r
+    those licensors and authors.\r
+\r
+  All other non-permissive additional terms are considered "further\r
+restrictions" within the meaning of section 10.  If the Program as you\r
+received it, or any part of it, contains a notice stating that it is\r
+governed by this License along with a term that is a further\r
+restriction, you may remove that term.  If a license document contains\r
+a further restriction but permits relicensing or conveying under this\r
+License, you may add to a covered work material governed by the terms\r
+of that license document, provided that the further restriction does\r
+not survive such relicensing or conveying.\r
+\r
+  If you add terms to a covered work in accord with this section, you\r
+must place, in the relevant source files, a statement of the\r
+additional terms that apply to those files, or a notice indicating\r
+where to find the applicable terms.\r
+\r
+  Additional terms, permissive or non-permissive, may be stated in the\r
+form of a separately written license, or stated as exceptions;\r
+the above requirements apply either way.\r
+\r
+  8. Termination.\r
+\r
+  You may not propagate or modify a covered work except as expressly\r
+provided under this License.  Any attempt otherwise to propagate or\r
+modify it is void, and will automatically terminate your rights under\r
+this License (including any patent licenses granted under the third\r
+paragraph of section 11).\r
+\r
+  However, if you cease all violation of this License, then your\r
+license from a particular copyright holder is reinstated (a)\r
+provisionally, unless and until the copyright holder explicitly and\r
+finally terminates your license, and (b) permanently, if the copyright\r
+holder fails to notify you of the violation by some reasonable means\r
+prior to 60 days after the cessation.\r
+\r
+  Moreover, your license from a particular copyright holder is\r
+reinstated permanently if the copyright holder notifies you of the\r
+violation by some reasonable means, this is the first time you have\r
+received notice of violation of this License (for any work) from that\r
+copyright holder, and you cure the violation prior to 30 days after\r
+your receipt of the notice.\r
+\r
+  Termination of your rights under this section does not terminate the\r
+licenses of parties who have received copies or rights from you under\r
+this License.  If your rights have been terminated and not permanently\r
+reinstated, you do not qualify to receive new licenses for the same\r
+material under section 10.\r
+\r
+  9. Acceptance Not Required for Having Copies.\r
+\r
+  You are not required to accept this License in order to receive or\r
+run a copy of the Program.  Ancillary propagation of a covered work\r
+occurring solely as a consequence of using peer-to-peer transmission\r
+to receive a copy likewise does not require acceptance.  However,\r
+nothing other than this License grants you permission to propagate or\r
+modify any covered work.  These actions infringe copyright if you do\r
+not accept this License.  Therefore, by modifying or propagating a\r
+covered work, you indicate your acceptance of this License to do so.\r
+\r
+  10. Automatic Licensing of Downstream Recipients.\r
+\r
+  Each time you convey a covered work, the recipient automatically\r
+receives a license from the original licensors, to run, modify and\r
+propagate that work, subject to this License.  You are not responsible\r
+for enforcing compliance by third parties with this License.\r
+\r
+  An "entity transaction" is a transaction transferring control of an\r
+organization, or substantially all assets of one, or subdividing an\r
+organization, or merging organizations.  If propagation of a covered\r
+work results from an entity transaction, each party to that\r
+transaction who receives a copy of the work also receives whatever\r
+licenses to the work the party's predecessor in interest had or could\r
+give under the previous paragraph, plus a right to possession of the\r
+Corresponding Source of the work from the predecessor in interest, if\r
+the predecessor has it or can get it with reasonable efforts.\r
+\r
+  You may not impose any further restrictions on the exercise of the\r
+rights granted or affirmed under this License.  For example, you may\r
+not impose a license fee, royalty, or other charge for exercise of\r
+rights granted under this License, and you may not initiate litigation\r
+(including a cross-claim or counterclaim in a lawsuit) alleging that\r
+any patent claim is infringed by making, using, selling, offering for\r
+sale, or importing the Program or any portion of it.\r
+\r
+  11. Patents.\r
+\r
+  A "contributor" is a copyright holder who authorizes use under this\r
+License of the Program or a work on which the Program is based.  The\r
+work thus licensed is called the contributor's "contributor version".\r
+\r
+  A contributor's "essential patent claims" are all patent claims\r
+owned or controlled by the contributor, whether already acquired or\r
+hereafter acquired, that would be infringed by some manner, permitted\r
+by this License, of making, using, or selling its contributor version,\r
+but do not include claims that would be infringed only as a\r
+consequence of further modification of the contributor version.  For\r
+purposes of this definition, "control" includes the right to grant\r
+patent sublicenses in a manner consistent with the requirements of\r
+this License.\r
+\r
+  Each contributor grants you a non-exclusive, worldwide, royalty-free\r
+patent license under the contributor's essential patent claims, to\r
+make, use, sell, offer for sale, import and otherwise run, modify and\r
+propagate the contents of its contributor version.\r
+\r
+  In the following three paragraphs, a "patent license" is any express\r
+agreement or commitment, however denominated, not to enforce a patent\r
+(such as an express permission to practice a patent or covenant not to\r
+sue for patent infringement).  To "grant" such a patent license to a\r
+party means to make such an agreement or commitment not to enforce a\r
+patent against the party.\r
+\r
+  If you convey a covered work, knowingly relying on a patent license,\r
+and the Corresponding Source of the work is not available for anyone\r
+to copy, free of charge and under the terms of this License, through a\r
+publicly available network server or other readily accessible means,\r
+then you must either (1) cause the Corresponding Source to be so\r
+available, or (2) arrange to deprive yourself of the benefit of the\r
+patent license for this particular work, or (3) arrange, in a manner\r
+consistent with the requirements of this License, to extend the patent\r
+license to downstream recipients.  "Knowingly relying" means you have\r
+actual knowledge that, but for the patent license, your conveying the\r
+covered work in a country, or your recipient's use of the covered work\r
+in a country, would infringe one or more identifiable patents in that\r
+country that you have reason to believe are valid.\r
+\r
+  If, pursuant to or in connection with a single transaction or\r
+arrangement, you convey, or propagate by procuring conveyance of, a\r
+covered work, and grant a patent license to some of the parties\r
+receiving the covered work authorizing them to use, propagate, modify\r
+or convey a specific copy of the covered work, then the patent license\r
+you grant is automatically extended to all recipients of the covered\r
+work and works based on it.\r
+\r
+  A patent license is "discriminatory" if it does not include within\r
+the scope of its coverage, prohibits the exercise of, or is\r
+conditioned on the non-exercise of one or more of the rights that are\r
+specifically granted under this License.  You may not convey a covered\r
+work if you are a party to an arrangement with a third party that is\r
+in the business of distributing software, under which you make payment\r
+to the third party based on the extent of your activity of conveying\r
+the work, and under which the third party grants, to any of the\r
+parties who would receive the covered work from you, a discriminatory\r
+patent license (a) in connection with copies of the covered work\r
+conveyed by you (or copies made from those copies), or (b) primarily\r
+for and in connection with specific products or compilations that\r
+contain the covered work, unless you entered into that arrangement,\r
+or that patent license was granted, prior to 28 March 2007.\r
+\r
+  Nothing in this License shall be construed as excluding or limiting\r
+any implied license or other defenses to infringement that may\r
+otherwise be available to you under applicable patent law.\r
+\r
+  12. No Surrender of Others' Freedom.\r
+\r
+  If conditions are imposed on you (whether by court order, agreement or\r
+otherwise) that contradict the conditions of this License, they do not\r
+excuse you from the conditions of this License.  If you cannot convey a\r
+covered work so as to satisfy simultaneously your obligations under this\r
+License and any other pertinent obligations, then as a consequence you may\r
+not convey it at all.  For example, if you agree to terms that obligate you\r
+to collect a royalty for further conveying from those to whom you convey\r
+the Program, the only way you could satisfy both those terms and this\r
+License would be to refrain entirely from conveying the Program.\r
+\r
+  13. Use with the GNU Affero General Public License.\r
+\r
+  Notwithstanding any other provision of this License, you have\r
+permission to link or combine any covered work with a work licensed\r
+under version 3 of the GNU Affero General Public License into a single\r
+combined work, and to convey the resulting work.  The terms of this\r
+License will continue to apply to the part which is the covered work,\r
+but the special requirements of the GNU Affero General Public License,\r
+section 13, concerning interaction through a network will apply to the\r
+combination as such.\r
+\r
+  14. Revised Versions of this License.\r
+\r
+  The Free Software Foundation may publish revised and/or new versions of\r
+the GNU General Public License from time to time.  Such new versions will\r
+be similar in spirit to the present version, but may differ in detail to\r
+address new problems or concerns.\r
+\r
+  Each version is given a distinguishing version number.  If the\r
+Program specifies that a certain numbered version of the GNU General\r
+Public License "or any later version" applies to it, you have the\r
+option of following the terms and conditions either of that numbered\r
+version or of any later version published by the Free Software\r
+Foundation.  If the Program does not specify a version number of the\r
+GNU General Public License, you may choose any version ever published\r
+by the Free Software Foundation.\r
+\r
+  If the Program specifies that a proxy can decide which future\r
+versions of the GNU General Public License can be used, that proxy's\r
+public statement of acceptance of a version permanently authorizes you\r
+to choose that version for the Program.\r
+\r
+  Later license versions may give you additional or different\r
+permissions.  However, no additional obligations are imposed on any\r
+author or copyright holder as a result of your choosing to follow a\r
+later version.\r
+\r
+  15. Disclaimer of Warranty.\r
+\r
+  THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY\r
+APPLICABLE LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT\r
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY\r
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,\r
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\r
+PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM\r
+IS WITH YOU.  SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF\r
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.\r
+\r
+  16. Limitation of Liability.\r
+\r
+  IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING\r
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS\r
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY\r
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE\r
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF\r
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD\r
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),\r
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF\r
+SUCH DAMAGES.\r
+\r
+  17. Interpretation of Sections 15 and 16.\r
+\r
+  If the disclaimer of warranty and limitation of liability provided\r
+above cannot be given local legal effect according to their terms,\r
+reviewing courts shall apply local law that most closely approximates\r
+an absolute waiver of all civil liability in connection with the\r
+Program, unless a warranty or assumption of liability accompanies a\r
+copy of the Program in return for a fee.\r
+\r
+                     END OF TERMS AND CONDITIONS\r
+\r
+            How to Apply These Terms to Your New Programs\r
+\r
+  If you develop a new program, and you want it to be of the greatest\r
+possible use to the public, the best way to achieve this is to make it\r
+free software which everyone can redistribute and change under these terms.\r
+\r
+  To do so, attach the following notices to the program.  It is safest\r
+to attach them to the start of each source file to most effectively\r
+state the exclusion of warranty; and each file should have at least\r
+the "copyright" line and a pointer to where the full notice is found.\r
+\r
+    <one line to give the program's name and a brief idea of what it does.>\r
+    Copyright (C) <year>  <name of author>\r
+\r
+    This program is free software: you can redistribute it and/or modify\r
+    it under the terms of the GNU General Public License as published by\r
+    the Free Software Foundation, either version 3 of the License, or\r
+    (at your option) any later version.\r
+\r
+    This program is distributed in the hope that it will be useful,\r
+    but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+    GNU General Public License for more details.\r
+\r
+    You should have received a copy of the GNU General Public License\r
+    along with this program.  If not, see <http://www.gnu.org/licenses/>.\r
+\r
+Also add information on how to contact you by electronic and paper mail.\r
+\r
+  If the program does terminal interaction, make it output a short\r
+notice like this when it starts in an interactive mode:\r
+\r
+    <program>  Copyright (C) <year>  <name of author>\r
+    This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.\r
+    This is free software, and you are welcome to redistribute it\r
+    under certain conditions; type `show c' for details.\r
+\r
+The hypothetical commands `show w' and `show c' should show the appropriate\r
+parts of the General Public License.  Of course, your program's commands\r
+might be different; for a GUI interface, you would use an "about box".\r
+\r
+  You should also get your employer (if you work as a programmer) or school,\r
+if any, to sign a "copyright disclaimer" for the program, if necessary.\r
+For more information on this, and how to apply and follow the GNU GPL, see\r
+<http://www.gnu.org/licenses/>.\r
+\r
+  The GNU General Public License does not permit incorporating your program\r
+into proprietary programs.  If your program is a subroutine library, you\r
+may consider it more useful to permit linking proprietary applications with\r
+the library.  If this is what you want to do, use the GNU Lesser General\r
+Public License instead of this License.  But first, please read\r
+<http://www.gnu.org/philosophy/why-not-lgpl.html>.\r
diff --git a/winboard/install/files/COPYRIGHT.txt b/winboard/install/files/COPYRIGHT.txt
new file mode 100644 (file)
index 0000000..6819a97
--- /dev/null
@@ -0,0 +1,36 @@
+                                      COPYRIGHTS\r
+\r
+This WinBoard installer package bundles software and data files released by various \r
+copyright holders under various  licences. It can only be distributed under conditions \r
+that simultaneously satisfy all license agreements of the components it contains.\r
+The various licenses that apply are listed below, with the copyright holders are indicated in parentheses.\r
+\r
+WinBoard is released under the GNU Public Licence (GPL) version 3. (Free Software Foundation)\r
+Polyglot is released under the GPL. (Fabien Letouzy, Huang Chen, Fonzy Bleumers & Michel van den Bergh)\r
+UCCI2WB is released under the Lesser GNUPublic License (LGPL) version 3. (Huang Chen & H.G.Muller)\r
+Fairy-Max, ShaMax and MaxQi are open-source freeware. (H.G.Muller)\r
+Fruit is released under the GPL. (Fabien Letouzy)\r
+Pulsar can be freely redistributed (Mike Adams)\r
+Joker80 and JokerKM are freeware. (H.G.Muller)\r
+Smirfoglot is freeware. (H.G.Muller)\r
+Elephant Eye 3.1 is released under the LGPL. (Huang Chen)\r
+HaQiKi D 0.8 is freeware. (H.G.Muller)\r
+default_book.bin can be freely (re-)distributed with this package. (Guenther Simon)\r
+xq_book.bin is released under the LGPL. (H.G.Muller) It is a reformatted version (cast into Polygot format)\r
+   of the Elephant-Eye book, which was released under the LGPL. (Huang Chen)\r
+The ChessMark font is freeware (Armando H.Marroquin)\r
+The XIANGQI font is free for all non-commercial purposes. (Kai Wan Leung)\r
+The FICS and ICC logos (owned by their respective organizations) can be freely distributed with this package.\r
+The micro-Max logo can be freely distributed with this package. (Graham Banks)\r
+The wood bitmaps ad Fruit and Pulsar logos can be freely distributed as part of this package. (David Dahlem)\r
+The bitmaps of the Xiangqi board can be freely distributed as part of this package. (David Dahlem & H.G.Muller)\r
+The marble textures are copyrighted by CGTextures.com. Permission to distribute these textures \r
+   under the GPL has been granted to the author of this software. Note that textures downloaded \r
+   from CGTextures.com may not be redistributed under any Open Source license by default. \r
+   For more information please visit www.CGTextures.com and read the full Terms of Use.\r
+PSWBTM is open-source software and can be freely re-distributed under the condition that proper credit\r
+   is given to its original author, see http://www.pradu.us/home/cc/PSWBTM/ . (Pradu Kannan)\r
+Timeseal ???????????????\r
+Timestamp ???????????????\r
+\r
+\r
diff --git a/winboard/install/files/fonts/MARKFONT.TTF b/winboard/install/files/fonts/MARKFONT.TTF
new file mode 100644 (file)
index 0000000..09c8a0d
Binary files /dev/null and b/winboard/install/files/fonts/MARKFONT.TTF differ
diff --git a/winboard/install/files/fonts/XIANGQI.TTF b/winboard/install/files/fonts/XIANGQI.TTF
new file mode 100644 (file)
index 0000000..8f3b78d
Binary files /dev/null and b/winboard/install/files/fonts/XIANGQI.TTF differ
diff --git a/winboard/install/files/root/EleEye/ATOM.DLL b/winboard/install/files/root/EleEye/ATOM.DLL
new file mode 100644 (file)
index 0000000..c0b17a1
Binary files /dev/null and b/winboard/install/files/root/EleEye/ATOM.DLL differ
diff --git a/winboard/install/files/root/EleEye/BOOK.DAT b/winboard/install/files/root/EleEye/BOOK.DAT
new file mode 100644 (file)
index 0000000..8f5eeae
Binary files /dev/null and b/winboard/install/files/root/EleEye/BOOK.DAT differ
diff --git a/winboard/install/files/root/EleEye/CCHESS.DLL b/winboard/install/files/root/EleEye/CCHESS.DLL
new file mode 100644 (file)
index 0000000..da0cf16
Binary files /dev/null and b/winboard/install/files/root/EleEye/CCHESS.DLL differ
diff --git a/winboard/install/files/root/EleEye/ELEEYE.EXE b/winboard/install/files/root/EleEye/ELEEYE.EXE
new file mode 100644 (file)
index 0000000..b302500
Binary files /dev/null and b/winboard/install/files/root/EleEye/ELEEYE.EXE differ
diff --git a/winboard/install/files/root/EleEye/EVALUATE.DLL b/winboard/install/files/root/EleEye/EVALUATE.DLL
new file mode 100644 (file)
index 0000000..73bc165
Binary files /dev/null and b/winboard/install/files/root/EleEye/EVALUATE.DLL differ
diff --git a/winboard/install/files/root/EleEye/logo.bmp b/winboard/install/files/root/EleEye/logo.bmp
new file mode 100644 (file)
index 0000000..d1e25bd
Binary files /dev/null and b/winboard/install/files/root/EleEye/logo.bmp differ
diff --git a/winboard/install/files/root/Fairy-Max/MaxQi.exe b/winboard/install/files/root/Fairy-Max/MaxQi.exe
new file mode 100644 (file)
index 0000000..654986b
Binary files /dev/null and b/winboard/install/files/root/Fairy-Max/MaxQi.exe differ
diff --git a/winboard/install/files/root/Fairy-Max/ShaMax.exe b/winboard/install/files/root/Fairy-Max/ShaMax.exe
new file mode 100644 (file)
index 0000000..21a8b73
Binary files /dev/null and b/winboard/install/files/root/Fairy-Max/ShaMax.exe differ
diff --git a/winboard/install/files/root/Fairy-Max/fmax.exe b/winboard/install/files/root/Fairy-Max/fmax.exe
new file mode 100644 (file)
index 0000000..acbdbe6
Binary files /dev/null and b/winboard/install/files/root/Fairy-Max/fmax.exe differ
diff --git a/winboard/install/files/root/Fairy-Max/fmax.ini b/winboard/install/files/root/Fairy-Max/fmax.ini
new file mode 100644 (file)
index 0000000..751efe5
--- /dev/null
@@ -0,0 +1,391 @@
+version 4.8(w)\r
+8x8\r
+6 4 5 7 3 5 4 6\r
+6 4 5 7 3 5 4 6\r
+p:74 -16,24 -16,6 -15,5 -17,5 \r
+p:74  16,24 16,6 15,5 17,5\r
+k:-1  1,34 -1,34 1,7 16,7 15,7 17,7 -1,7 -16,7 -15,7 -17,7\r
+n:259 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7\r
+b:296 15,3 17,3 -15,3 -17,3\r
+R:444 1,3 16,3 -1,3 -16,3\r
+Q:851 1,3 16,3 15,3 17,3 -1,3 -16,3 -15,3 -17,3\r
+\r
+\r
+Some Common piece definitions:\r
+\r
+The board steps are encoded as follows:\r
+\r
+                      ^  toward 8th rank\r
+                      |\r
+      -52 -51 -50 -49 -48 -47 -46 -45 -44\r
+      -36 -35 -34 -33 -32 -31 -30 -29 -28\r
+      -20 -19 -18 -17 -16 -15 -14 -13 -12\r
+ <--   -4  -3  -2  -1 start 1   2   3   4   --> towards h file\r
+ to    12  13  14  15  16  17  18  19  20\r
+a-file 28  29  30  31  32  33  34  35  36\r
+       44  45  46  47  48  49  50  51  52\r
+                      |\r
+                      v  towards first rank\r
+\r
+SIMPLE LEAPERS\r
+Ferz:\r
+f:150 15,7 17,7 -15,7 -17,7\r
+Wazir:\r
+w:125 1,7 16,7 -1,7 -16,7\r
+Knight:\r
+n:325 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7\r
+Dabbabah:\r
+d:100 2,7 32,7 -2,7 -32,7\r
+Elephant:\r
+e:80 30,7 34,7 -30,7 -34,7\r
+Camel:\r
+C:225 13,7 47,7 49,7 19,7 -13,7 -47,7 -49,7 -19,7\r
+Zebra:\r
+Z:175 29,7 46,7 50,7 35,7 -29,7 -46,7 -50,7 -35,7\r
+Unicorn:\r
+u:-1 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7\r
+\r
+COMPOUND LEAPERS\r
+King:\r
+k:-1 1,34 -1,34 1,7 16,7 15,7 17,7 -1,7 -16,7 -15,7 -17,7 1,34 -1,34\r
+King (Shatranj, no castling):\r
+k:-1 1,7 16,7 15,7 17,7 -1,7 -16,7 -15,7 -17,7 1,34 -1,34\r
+King (Capablanca castling):\r
+k:-1 2,3034 -2,1034 1,7 16,7 15,7 17,7 -1,7 -16,7 -15,7 -17,7\r
+Commoner:\r
+m:260 1,7 16,7 15,7 17,7 -1,7 -16,7 -15,7 -17,7 \r
+Bison:\r
+1000 13,7 47,7 49,7 19,7 -13,7 -47,7 -49,7 -19,7 29,7 46,7 50,7 35,7 -29,7 -46,7 -50,7 -35,7\r
+Wildebeest:\r
+g:800 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7 13,7 47,7 49,7 19,7 -13,7 -47,7 -49,7 -19,7\r
+Carpenter:\r
+c:450 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7 2,7 32,7 -2,7 -32,7\r
+Kangaroo:\r
+o:450 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7 30,7 34,7 -30,7 -34,7\r
+High Priestess:\r
+h:625 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7 30,7 34,7 -30,7 -34,7 15,7 17,7 -15,7 -17,7\r
+Minister\r
+c:625 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7 2,7 32,7 -2,7 -32,7 1,7 16,7 -1,7 -16,7\r
+Crab:\r
+c:150 31,7 33,7 -14,7 -18,7\r
+Barc:\r
+b:150 14,7 18,7 -31,7 -33,7\r
+\r
+SEPARATE CAPTURES / NON-CAPTURES\r
+White Pawn:\r
+p:100 -16,6 -15,5 -17,5 -16,24\r
+White Pawn (Shatranj, no double move):\r
+p:100 -16,6 -15,5 -17,5\r
+White Berolina Pawn\r
+p:74 -15,24 -17,24 -16,5 -15,6 -17,6 \r
+Black Pawn:\r
+p:100 16,6 15,5 17,5 16,24\r
+Pegasus (moves as Queen, captures as Rook):\r
+S:500 1,2 16,2 15,2 17,2 -1,2 -16,2 -15,2 -17,2 14,5 31,5 33,5 18,5 -14,5 -31,5 -33,5 -18,5\r
+Keen (moves as King, captures as Queen):\r
+k:750  1,6 16,6 15,6 17,6 -1,6 -16,6 -15,6 -17,6 1,1 16,1 15,1 17,1 -1,1 -16,1 -15,1 -17,1 \r
+Quing (moves as Queen, captures as King):\r
+q:600  1,5 16,5 15,5 17,5 -1,5 -16,5 -15,5 -17,5 1,2 16,2 15,2 17,2 -1,2 -16,2 -15,2 -17,2 \r
+\r
+SLIDERS\r
+Bishop:\r
+b:350 15,3 17,3 -15,3 -17,3\r
+Rook:\r
+R:500 1,3 16,3 -1,3 -16,3\r
+NightRider:\r
+H:560 14,3 31,3 33,3 18,3 -14,3 -31,3 -33,3 -18,3\r
+Queen:\r
+Q:950 1,3 16,3 15,3 17,3 -1,3 -16,3 -15,3 -17,3\r
+\r
+LEAPER / SLIDER COMPOUNDS\r
+Archbishop:\r
+A:875 15,3 17,3 -15,3 -17,3 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7\r
+Caliph:\r
+C:875 15,3 17,3 -15,3 -17,3 13,7 47,7 49,7 19,7 -13,7 -47,7 -49,7 -19,7\r
+Marshall:\r
+C:900 1,3 16,3 -1,3 -16,3 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7\r
+Canvasser:\r
+C:900 1,3 16,3 -1,3 -16,3 13,7 47,7 49,7 19,7 -13,7 -47,7 -49,7 -19,7\r
+Amazon:\r
+A:1150 1,3 16,3 15,3 17,3 -1,3 -16,3 -15,3 -17,3 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7\r
+Crooked Bishop:\r
+B:900 15,1E003 17,1E003 -15,1E003 -17,1E003 15,FFFE0003 -17,FFFE0003 -15,FFFE0003 17,FFFE0003\r
+\r
+HOPPERS\r
+GrassHopper:\r
+G:200 1,F8 16,F8 15,F8 17,F8 -1,F8 -16,F8 -15,F8 -17,F8\r
+Cannon:\r
+C:400 1,BA 16,BA -1,BA -16,BA\r
+\r
+LAME LEAPERS\r
+Horse:\r
+N:5 16,1070 16,1F070 1,10070 1,FFFF0070 -16,1070 -16,1F070 -1,10070 -1,FFFF0070\r
+Xiangqi Elephant:\r
+E:1 15,70 17,70 -15,70 -17,70\r
+\r
+\r
+\r
+Syntax of a variant description:\r
+\r
+Each variant starts with the label "Game:" followed by the variant name.\r
+After that follow upto 18 lines with the description.\r
+\r
+Line 1:     Board size (files x ranks). Ranks must currently still be 8.\r
+Line 2:     initial setup of white pieces on back rank\r
+Line 3:     initial setup of black pieces on back rank\r
+Line 4-10:  Description of pieces present in the opening position\r
+Line 11-18: Description 8 additional piece types\r
+\r
+The rest of the lines is ignored, but some pre-cooked descriptions are\r
+provided for easy copying into the first positions.\r
+\r
+\r
+\r
+In case you want to build your own pieces, this is how it works:\r
+\r
+The piece-description lines have the following syntax:\r
+1) a piece-indicator character (lower case if piece should be centralized)\r
+2) a colon\r
+3) the internal value to be used for the piece (in centiPawn; Royal = -1)\r
+4) for each direction it moves in, a ray descriptor consisting of:\r
+   a) the initial step vector (on a 16x8 board, so 16 = straight ahead)\r
+   b) a comma\r
+   c) the move-mode descriptor, most easily given in hexadecimal, as the\r
+      individual bits specify the various options\r
+\r
+The individual bits in the move-mode descriptor have the following meaning:\r
+In the last hexadecimal digit:\r
+    1 capture allowed (of enemy piece; own pieces always block a move)\r
+    2 con-capture allowed (i.e. we can move here if the square is empty)\r
+    4 leaper, i.e. move terminates after one step (as opposed to slider)\r
+    8 hop over non-empty square (normally occupied squares terminate a move)\r
+Bits set in the forelast digits TOGGLE the corresponding bits in the last\r
+digit. For hoppers when they hop over something, for the other pieces after\r
+every step (so for normal pieces, better not set those bits!).\r
+\r
+The digit before that can only be 0 or 1; a 1 indicates the board should\r
+be treated as a cylinder, pieces crossing the right edge re-entering the\r
+board at the left, and vice versa.\r
+\r
+The higher-order bits toggle corresponding bits in the step vector,\r
+to allow zig-zag paths. Better not set those either, if a straight\r
+path is desired.\r
+\r
+Useful bit combinations for the last digit are:\r
+    3   normal slider\r
+    7   normal leaper\r
+    6   leaper that only moves (e.g. Pawn straight ahead)\r
+    5   leaper that only captures (e.g. Pawn diagonal)\r
+    1   slider that only captures\r
+    2   slider that only moves\r
+    0   pass through (for testing emptiness by Xiangqi Horse and Elephant)\r
+    4   reserved for skip-step of Pawn double move and castling\r
+    8   skip to hopper platform (1st part of Grasshopper move)\r
+    A   non-capture before hop (1st part of Cannon move)\r
+    C   must hop immediately\r
+\r
+For example, if the initial step vector equals 1, and the descriptor\r
+is 11003, the piece is an alternator (as no hop bit is set), and alternates\r
+the mode from 3 to 3 (as the toggle digit is 0), i.e. all steps are moves\r
+that can both capture and non-capture, and only captures terminate the ray.\r
+The step vector is toggled by 11, though, and thus alternates between 1\r
+and 10 (hex) = 16. So the piece zig-zags over the board, right, forward, right,\r
+forward, etc. Had the move attributes been 11032, captures would only\r
+be allowed on the odd steps (after moving right), while the even steps could\r
+only be non-captures (both the 1 and 2 bit are toggled). With 11030 the\r
+odd steps can only be skipped (if empty), and the even steps can both capture\r
+and non-capture, meaning the piece moves like a Bishop that can be blocked\r
+by a piece just next to the diagonal.\r
+\r
+If the first step is a slider, a second step is made (if the square was\r
+empty), but if the mode toggles to leaper, the move stops there (e.g. Horse).\r
+\r
+Hoppers MUST change into non-hoppers on hopping, i.e. the 8 bit of BOTH\r
+lower digits must be set. Otherwise results will be undefined.\r
+\r
+Note that the first two piece-describing lines MUST be for the white and\r
+black Pawn, respectively, or promotions will have undefined effects. Also\r
+note that uMax does do primitive evaluation of Pawn structure, which might\r
+become counter-productive if the Pawn move is changed.\r
+\r
+Castling is done with the Rook replacement (the piece that starts in the\r
+corner, whatever its type). If you don't want that, remove the castling\r
+moves from the King desription. If the castling initiator does not start\r
+in a central file, the results are currently undefined.\r
+\r
+\r
+For the truly lazy, a few complete game descriptions can be found below:\r
+\r
+// FIDE Chess (Mad Queen variant)\r
+Game: normal\r
+8x8\r
+6 4 5 7 3 5 4 6\r
+6 4 5 7 3 5 4 6\r
+p:74 -16,24 -16,6 -15,5 -17,5 \r
+p:74  16,24 16,6 15,5 17,5\r
+k:-1  1,34 -1,34 1,7 16,7 15,7 17,7 -1,7 -16,7 -15,7 -17,7\r
+n:259 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7\r
+b:296 15,3 17,3 -15,3 -17,3\r
+R:444 1,3 16,3 -1,3 -16,3\r
+Q:851 1,3 16,3 15,3 17,3 -1,3 -16,3 -15,3 -17,3\r
+f:481 13,FFFFF207 29,F207 46,F207 47,10207 49,10207 50,11207 35,11207 19,1207 -13,1207 -29,FFFF1207 -46,FFFF1207 -47,FFFF0207 -49,FFFF0207 -50,FFFEF207 -35,FFFEF207 -19,FFFFF207 \r
+\r
+// Arabic precursor of modern Chess\r
+Game: shatranj\r
+8x8\r
+6 4 5 3 7 5 4 6\r
+6 4 5 3 7 5 4 6\r
+p:100 -16,6 -15,5 -17,5 \r
+p:100 16,6 15,5 17,5\r
+k:-1  1,7 16,7 15,7 17,7 -1,7 -16,7 -15,7 -17,7\r
+n:450 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7\r
+b:110 30,7 34,7 -30,7 -34,7\r
+R:630 1,3 16,3 -1,3 -16,3\r
+q:180 15,7 17,7 -15,7 -17,7\r
+e:110 30,7 34,7 -30,7 -34,7\r
+f:180 15,7 17,7 -15,7 -17,7\r
+\r
+// Medieval intermediate between Shatranj and FIDE Chess\r
+Game: courier\r
+12x8\r
+6 4 8 5 10 3 7 9 5 8 4 6\r
+6 4 8 5 10 3 7 9 5 8 4 6\r
+p:100 -16,6 -15,5 -17,5 \r
+p:100 16,6 15,5 17,5\r
+k:-1  1,7 16,7 15,7 17,7 -1,7 -16,7 -15,7 -17,7\r
+n:450 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7\r
+b:550 15,3 17,3 -15,3 -17,3\r
+R:625 1,3 16,3 -1,3 -16,3\r
+f:175 15,7 17,7 -15,7 -17,7\r
+e:110 30,7 34,7 -30,7 -34,7\r
+w:150 1,7 16,7 -1,7 -16,7\r
+m:425 1,7 16,7 15,7 17,7 -1,7 -16,7 -15,7 -17,7 \r
+\r
+// The King moves as a Knight, and vice versa\r
+Game: knightmate\r
+8x8\r
+6 4 5 7 3 5 4 6\r
+6 4 5 7 3 5 4 6\r
+p:74 -16,24 -16,6 -15,5 -17,5 \r
+p:74  16,24 16,6 15,5 17,5\r
+u:-1  1,34 -1,34 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7\r
+m:222 1,7 16,7 15,7 17,7 -1,7 -16,7 -15,7 -17,7\r
+b:296 15,3 17,3 -15,3 -17,3\r
+R:444 1,3 16,3 -1,3 -16,3\r
+Q:851 1,3 16,3 15,3 17,3 -1,3 -16,3 -15,3 -17,3\r
+\r
+// Modern variant with two new pieces (Archbishop and Chancellor) on 10x8 board\r
+Game: capablanca\r
+10x8\r
+6 4 8 5 7 3 5 9 4 6\r
+6 4 8 5 7 3 5 9 4 6\r
+p:100 -16,24 -16,6 -15,5 -17,5 \r
+p:100 16,24 16,6 15,5 17,5\r
+k:-1  1,3034 -1,1034 1,7 16,7 15,7 17,7 -1,7 -16,7 -15,7 -17,7\r
+n:310 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7\r
+b:350 15,3 17,3 -15,3 -17,3\r
+R:475 1,3 16,3 -1,3 -16,3\r
+Q:950 1,3 16,3 15,3 17,3 -1,3 -16,3 -15,3 -17,3\r
+A:825 15,3 17,3 -15,3 -17,3 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7\r
+C:875 1,3 16,3 -1,3 -16,3 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7\r
+\r
+// Gothic Chess is protected through U.S. patent #6,481,716 by Ed Trice.\r
+// Spreading it without license might be a criminal offense!\r
+Game: gothic\r
+10x8\r
+6 4 5 7 9 3 8 5 4 6\r
+6 4 5 7 9 3 8 5 4 6\r
+p:100 -16,24 -16,6 -15,5 -17,5 \r
+p:100 16,24 16,6 15,5 17,5\r
+k:-1 1,3034 -1,1034 1,7 16,7 15,7 17,7 -1,7 -16,7 -15,7 -17,7\r
+n:310 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7\r
+b:350 15,3 17,3 -15,3 -17,3\r
+R:475 1,3 16,3 -1,3 -16,3\r
+Q:950 1,3 16,3 15,3 17,3 -1,3 -16,3 -15,3 -17,3\r
+A:825 15,3 17,3 -15,3 -17,3 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7\r
+C:875 1,3 16,3 -1,3 -16,3 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7\r
+\r
+// Cylinder Chess (WinBoard legality testing should be off toplay this!)\r
+Game: cylinder\r
+8x8\r
+6 4 5 7 3 5 4 6\r
+6 4 5 7 3 5 4 6\r
+p:100 -16,24 -16,6 -15,105 -17,105 \r
+p:100 16,24 16,6 15,105 17,105\r
+k:-1 1,34 -1,34 1,107 16,7 15,107 17,107 -1,107 -16,7 -15,107 -17,107\r
+n:350 14,107 31,107 33,107 18,107 -14,107 -31,107 -33,107 -18,107\r
+b:450 15,103 17,103 -15,103 -17,103\r
+R:525 1,103 16,3 -1,103 -16,3\r
+Q:1150 1,103 16,3 15,103 17,103 -1,103 -16,3 -15,103 -17,103\r
+\r
+// Berolina Chess. \r
+Game: berolina\r
+8x8\r
+6 4 5 7 3 5 4 6\r
+6 4 5 7 3 5 4 6\r
+p:74 -15,24 -17,24 -16,5 -15,6 -17,6 \r
+p:74  15,24  17,24 16,5 15,6 17,6\r
+k:-1  1,34 -1,34 1,7 16,7 15,7 17,7 -1,7 -16,7 -15,7 -17,7\r
+n:259 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7\r
+b:296 15,3 17,3 -15,3 -17,3\r
+R:444 1,3 16,3 -1,3 -16,3\r
+Q:851 1,3 16,3 15,3 17,3 -1,3 -16,3 -15,3 -17,3\r
+\r
+// Modern variant with four new pieces in randomly chosen setup on 8x8 board\r
+Game: super\r
+8x8\r
+6 4 5 7 3 5 4 6\r
+6 4 5 7 3 5 4 6\r
+p:100 -16,24 -16,6 -15,5 -17,5 \r
+p:100 16,24 16,6 15,5 17,5\r
+k:-1  1,34 -1,34 1,7 16,7 15,7 17,7 -1,7 -16,7 -15,7 -17,7\r
+n:350 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7\r
+b:360 15,3 17,3 -15,3 -17,3\r
+R:575 1,3 16,3 -1,3 -16,3\r
+Q:900 1,3 16,3 15,3 17,3 -1,3 -16,3 -15,3 -17,3\r
+S:825 15,3 17,3 -15,3 -17,3 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7\r
+E:850 1,3 16,3 -1,3 -16,3 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7\r
+V:775 1,7 16,7 15,7 17,7 -1,7 -16,7 -15,7 -17,7 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7\r
+A:1200 1,3 16,3 -1,3 -16,3 15,3 17,3 -15,3 -17,3 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7\r
+o:700 2,7 30,7 32,7 34,7 -2,7 -30,7 -32,7 -34,7 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7\r
+g:640 1,7 16,7 15,7 17,7 -1,7 -16,7 -15,7 -17,7 2,7 30,7 32,7 34,7 -2,7 -30,7 -32,7 -34,7\r
+m:-1  1,34 -1,34 1,7 16,7 15,7 17,7 -1,7 -16,7 -15,7 -17,7 16,70 -16,70\r
+d:625 1,7 16,7 -1,7 -16,7 15,3 17,3 -15,3 -17,3\r
+\r
+// Modern variant with only short-range leapers on 10x8 board\r
+Game: great\r
+10x8\r
+6 4 5 8 3 10 9 5 4 6\r
+6 4 5 8 3 10 9 5 4 6\r
+p:100 -16,6 -15,5 -17,5 \r
+p:100 16,6 15,5 17,5\r
+k:-1  1,7 16,7 15,7 17,7 -1,7 -16,7 -15,7 -17,7\r
+n:290 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7\r
+e:270 15,7 17,7 -15,7 -17,7 30,7 34,7 -30,7 -34,7\r
+w:300 1,7 16,7 -1,7 -16,7 2,7 -2,7 32,7 -32,7\r
+s:280 1,7 16,7 15,7 17,7 -1,7 -16,7 -15,7 -17,7\r
+g:640 1,7 16,7 -1,7 -16,7 2,7 -2,7 32,7 -32,7 15,7 17,7 -15,7 -17,7 30,7 34,7 -30,7 -34,7\r
+h:640 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7 15,7 17,7 -15,7 -17,7 30,7 34,7 -30,7 -34,7\r
+m:640 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7 1,7 16,7 -1,7 -16,7 2,7 -2,7 32,7 -32,7\r
+\r
+// Game: fairy\r
+8x8\r
+6 4 5 7 3 5 4 6\r
+6 4 5 7 3 5 4 6\r
+p:100 -16,24 -16,6 -15,5 -17,5 \r
+p:100 16,24 16,6 15,5 17,5\r
+k:-1  1,34 -1,34 1,7 16,7 15,7 17,7 -1,7 -16,7 -15,7 -17,7\r
+n:325 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7\r
+b:350 15,3 17,3 -15,3 -17,3\r
+R:500 1,3 16,3 -1,3 -16,3\r
+Q:950 1,3 16,3 15,3 17,3 -1,3 -16,3 -15,3 -17,3\r
+S:875 15,3 17,3 -15,3 -17,3 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7\r
+E:900 1,3 16,3 -1,3 -16,3 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7\r
+V:850 1,7 16,7 15,7 17,7 -1,7 -16,7 -15,7 -17,7 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7\r
+A:1260 1,3 16,3 -1,3 -16,3 15,3 17,3 -15,3 -17,3 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7\r
+o:700 2,7 30,7 32,7 34,7 -2,7 -30,7 -32,7 -34,7 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7\r
+g:640 1,7 16,7 15,7 17,7 -1,7 -16,7 -15,7 -17,7 2,7 30,7 32,7 34,7 -2,7 -30,7 -32,7 -34,7\r
+m:-1  1,34 -1,34 1,7 16,7 15,7 17,7 -1,7 -16,7 -15,7 -17,7 16,70 -16,70\r
+d:625 1,7 16,7 -1,7 -16,7 15,3 17,3 -15,3 -17,3\r
+\r
+// End of game file\r
diff --git a/winboard/install/files/root/Fairy-Max/logo.bmp b/winboard/install/files/root/Fairy-Max/logo.bmp
new file mode 100644 (file)
index 0000000..8eeb09f
Binary files /dev/null and b/winboard/install/files/root/Fairy-Max/logo.bmp differ
diff --git a/winboard/install/files/root/Fairy-Max/qmax.ini b/winboard/install/files/root/Fairy-Max/qmax.ini
new file mode 100644 (file)
index 0000000..6e215db
--- /dev/null
@@ -0,0 +1,34 @@
+version 4.8(w)\r
+10x9\r
+11 9 4 8 3 8 4 9 11\r
+11 9 5 8 3 8 5 9 11\r
+p:100 -1,7\r
+p:100 1,7\r
+k:-1 1,C07 16,C07 -1,C07 -16,C07\r
+e:150 15,470 17,470 -15,470 -17,470\r
+e:150 15,870 17,870 -15,870 -17,870\r
+q:190 -1,7 16,7 -16,7\r
+q:190 1,7 16,7 -16,7\r
+A:200 15,C07 17,C07 -15,C07 -17,C07\r
+h:450 16,1070 16,1F070 1,10070 1,FFFF0070 -16,1070 -16,1F070 -1,10070 -1,FFFF0070\r
+C:460 1,BA 16,BA -1,BA -16,BA\r
+R:900 1,3 16,3 -1,3 -16,3\r
+\r
+\r
+// Chinese Chess\r
+Game: xiangqi\r
+10x9\r
+11 9 4 8 3 8 4 9 11\r
+11 9 5 8 3 8 5 9 11\r
+p:100 -1,7\r
+p:100 1,7\r
+k:-1 1,C07 16,C07 -1,C07 -16,C07\r
+e:150 15,470 17,470 -15,470 -17,470\r
+e:150 15,870 17,870 -15,870 -17,870\r
+q:190 -1,7 16,7 -16,7\r
+q:190 1,7 16,7 -16,7\r
+A:200 15,C07 17,C07 -15,C07 -17,C07\r
+h:450 16,1070 16,1F070 1,10070 1,FFFF0070 -16,1070 -16,1F070 -1,10070 -1,FFFF0070\r
+C:460 1,BA 16,BA -1,BA -16,BA\r
+R:900 1,3 16,3 -1,3 -16,3\r
+// End of game file\r
diff --git a/winboard/install/files/root/Fruit/copying.txt b/winboard/install/files/root/Fruit/copying.txt
new file mode 100644 (file)
index 0000000..45645b4
--- /dev/null
@@ -0,0 +1,340 @@
+                   GNU GENERAL PUBLIC LICENSE\r
+                      Version 2, June 1991\r
+\r
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.\r
+                       59 Temple Place, Suite 330, Boston, MA  02111-1307  USA\r
+ Everyone is permitted to copy and distribute verbatim copies\r
+ of this license document, but changing it is not allowed.\r
+\r
+                           Preamble\r
+\r
+  The licenses for most software are designed to take away your\r
+freedom to share and change it.  By contrast, the GNU General Public\r
+License is intended to guarantee your freedom to share and change free\r
+software--to make sure the software is free for all its users.  This\r
+General Public License applies to most of the Free Software\r
+Foundation's software and to any other program whose authors commit to\r
+using it.  (Some other Free Software Foundation software is covered by\r
+the GNU Library General Public License instead.)  You can apply it to\r
+your programs, too.\r
+\r
+  When we speak of free software, we are referring to freedom, not\r
+price.  Our General Public Licenses are designed to make sure that you\r
+have the freedom to distribute copies of free software (and charge for\r
+this service if you wish), that you receive source code or can get it\r
+if you want it, that you can change the software or use pieces of it\r
+in new free programs; and that you know you can do these things.\r
+\r
+  To protect your rights, we need to make restrictions that forbid\r
+anyone to deny you these rights or to ask you to surrender the rights.\r
+These restrictions translate to certain responsibilities for you if you\r
+distribute copies of the software, or if you modify it.\r
+\r
+  For example, if you distribute copies of such a program, whether\r
+gratis or for a fee, you must give the recipients all the rights that\r
+you have.  You must make sure that they, too, receive or can get the\r
+source code.  And you must show them these terms so they know their\r
+rights.\r
+\r
+  We protect your rights with two steps: (1) copyright the software, and\r
+(2) offer you this license which gives you legal permission to copy,\r
+distribute and/or modify the software.\r
+\r
+  Also, for each author's protection and ours, we want to make certain\r
+that everyone understands that there is no warranty for this free\r
+software.  If the software is modified by someone else and passed on, we\r
+want its recipients to know that what they have is not the original, so\r
+that any problems introduced by others will not reflect on the original\r
+authors' reputations.\r
+\r
+  Finally, any free program is threatened constantly by software\r
+patents.  We wish to avoid the danger that redistributors of a free\r
+program will individually obtain patent licenses, in effect making the\r
+program proprietary.  To prevent this, we have made it clear that any\r
+patent must be licensed for everyone's free use or not licensed at all.\r
+\r
+  The precise terms and conditions for copying, distribution and\r
+modification follow.\r
+\f\r
+                   GNU GENERAL PUBLIC LICENSE\r
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION\r
+\r
+  0. This License applies to any program or other work which contains\r
+a notice placed by the copyright holder saying it may be distributed\r
+under the terms of this General Public License.  The "Program", below,\r
+refers to any such program or work, and a "work based on the Program"\r
+means either the Program or any derivative work under copyright law:\r
+that is to say, a work containing the Program or a portion of it,\r
+either verbatim or with modifications and/or translated into another\r
+language.  (Hereinafter, translation is included without limitation in\r
+the term "modification".)  Each licensee is addressed as "you".\r
+\r
+Activities other than copying, distribution and modification are not\r
+covered by this License; they are outside its scope.  The act of\r
+running the Program is not restricted, and the output from the Program\r
+is covered only if its contents constitute a work based on the\r
+Program (independent of having been made by running the Program).\r
+Whether that is true depends on what the Program does.\r
+\r
+  1. You may copy and distribute verbatim copies of the Program's\r
+source code as you receive it, in any medium, provided that you\r
+conspicuously and appropriately publish on each copy an appropriate\r
+copyright notice and disclaimer of warranty; keep intact all the\r
+notices that refer to this License and to the absence of any warranty;\r
+and give any other recipients of the Program a copy of this License\r
+along with the Program.\r
+\r
+You may charge a fee for the physical act of transferring a copy, and\r
+you may at your option offer warranty protection in exchange for a fee.\r
+\r
+  2. You may modify your copy or copies of the Program or any portion\r
+of it, thus forming a work based on the Program, and copy and\r
+distribute such modifications or work under the terms of Section 1\r
+above, provided that you also meet all of these conditions:\r
+\r
+    a) You must cause the modified files to carry prominent notices\r
+    stating that you changed the files and the date of any change.\r
+\r
+    b) You must cause any work that you distribute or publish, that in\r
+    whole or in part contains or is derived from the Program or any\r
+    part thereof, to be licensed as a whole at no charge to all third\r
+    parties under the terms of this License.\r
+\r
+    c) If the modified program normally reads commands interactively\r
+    when run, you must cause it, when started running for such\r
+    interactive use in the most ordinary way, to print or display an\r
+    announcement including an appropriate copyright notice and a\r
+    notice that there is no warranty (or else, saying that you provide\r
+    a warranty) and that users may redistribute the program under\r
+    these conditions, and telling the user how to view a copy of this\r
+    License.  (Exception: if the Program itself is interactive but\r
+    does not normally print such an announcement, your work based on\r
+    the Program is not required to print an announcement.)\r
+\f\r
+These requirements apply to the modified work as a whole.  If\r
+identifiable sections of that work are not derived from the Program,\r
+and can be reasonably considered independent and separate works in\r
+themselves, then this License, and its terms, do not apply to those\r
+sections when you distribute them as separate works.  But when you\r
+distribute the same sections as part of a whole which is a work based\r
+on the Program, the distribution of the whole must be on the terms of\r
+this License, whose permissions for other licensees extend to the\r
+entire whole, and thus to each and every part regardless of who wrote it.\r
+\r
+Thus, it is not the intent of this section to claim rights or contest\r
+your rights to work written entirely by you; rather, the intent is to\r
+exercise the right to control the distribution of derivative or\r
+collective works based on the Program.\r
+\r
+In addition, mere aggregation of another work not based on the Program\r
+with the Program (or with a work based on the Program) on a volume of\r
+a storage or distribution medium does not bring the other work under\r
+the scope of this License.\r
+\r
+  3. You may copy and distribute the Program (or a work based on it,\r
+under Section 2) in object code or executable form under the terms of\r
+Sections 1 and 2 above provided that you also do one of the following:\r
+\r
+    a) Accompany it with the complete corresponding machine-readable\r
+    source code, which must be distributed under the terms of Sections\r
+    1 and 2 above on a medium customarily used for software interchange; or,\r
+\r
+    b) Accompany it with a written offer, valid for at least three\r
+    years, to give any third party, for a charge no more than your\r
+    cost of physically performing source distribution, a complete\r
+    machine-readable copy of the corresponding source code, to be\r
+    distributed under the terms of Sections 1 and 2 above on a medium\r
+    customarily used for software interchange; or,\r
+\r
+    c) Accompany it with the information you received as to the offer\r
+    to distribute corresponding source code.  (This alternative is\r
+    allowed only for noncommercial distribution and only if you\r
+    received the program in object code or executable form with such\r
+    an offer, in accord with Subsection b above.)\r
+\r
+The source code for a work means the preferred form of the work for\r
+making modifications to it.  For an executable work, complete source\r
+code means all the source code for all modules it contains, plus any\r
+associated interface definition files, plus the scripts used to\r
+control compilation and installation of the executable.  However, as a\r
+special exception, the source code distributed need not include\r
+anything that is normally distributed (in either source or binary\r
+form) with the major components (compiler, kernel, and so on) of the\r
+operating system on which the executable runs, unless that component\r
+itself accompanies the executable.\r
+\r
+If distribution of executable or object code is made by offering\r
+access to copy from a designated place, then offering equivalent\r
+access to copy the source code from the same place counts as\r
+distribution of the source code, even though third parties are not\r
+compelled to copy the source along with the object code.\r
+\f\r
+  4. You may not copy, modify, sublicense, or distribute the Program\r
+except as expressly provided under this License.  Any attempt\r
+otherwise to copy, modify, sublicense or distribute the Program is\r
+void, and will automatically terminate your rights under this License.\r
+However, parties who have received copies, or rights, from you under\r
+this License will not have their licenses terminated so long as such\r
+parties remain in full compliance.\r
+\r
+  5. You are not required to accept this License, since you have not\r
+signed it.  However, nothing else grants you permission to modify or\r
+distribute the Program or its derivative works.  These actions are\r
+prohibited by law if you do not accept this License.  Therefore, by\r
+modifying or distributing the Program (or any work based on the\r
+Program), you indicate your acceptance of this License to do so, and\r
+all its terms and conditions for copying, distributing or modifying\r
+the Program or works based on it.\r
+\r
+  6. Each time you redistribute the Program (or any work based on the\r
+Program), the recipient automatically receives a license from the\r
+original licensor to copy, distribute or modify the Program subject to\r
+these terms and conditions.  You may not impose any further\r
+restrictions on the recipients' exercise of the rights granted herein.\r
+You are not responsible for enforcing compliance by third parties to\r
+this License.\r
+\r
+  7. If, as a consequence of a court judgment or allegation of patent\r
+infringement or for any other reason (not limited to patent issues),\r
+conditions are imposed on you (whether by court order, agreement or\r
+otherwise) that contradict the conditions of this License, they do not\r
+excuse you from the conditions of this License.  If you cannot\r
+distribute so as to satisfy simultaneously your obligations under this\r
+License and any other pertinent obligations, then as a consequence you\r
+may not distribute the Program at all.  For example, if a patent\r
+license would not permit royalty-free redistribution of the Program by\r
+all those who receive copies directly or indirectly through you, then\r
+the only way you could satisfy both it and this License would be to\r
+refrain entirely from distribution of the Program.\r
+\r
+If any portion of this section is held invalid or unenforceable under\r
+any particular circumstance, the balance of the section is intended to\r
+apply and the section as a whole is intended to apply in other\r
+circumstances.\r
+\r
+It is not the purpose of this section to induce you to infringe any\r
+patents or other property right claims or to contest validity of any\r
+such claims; this section has the sole purpose of protecting the\r
+integrity of the free software distribution system, which is\r
+implemented by public license practices.  Many people have made\r
+generous contributions to the wide range of software distributed\r
+through that system in reliance on consistent application of that\r
+system; it is up to the author/donor to decide if he or she is willing\r
+to distribute software through any other system and a licensee cannot\r
+impose that choice.\r
+\r
+This section is intended to make thoroughly clear what is believed to\r
+be a consequence of the rest of this License.\r
+\f\r
+  8. If the distribution and/or use of the Program is restricted in\r
+certain countries either by patents or by copyrighted interfaces, the\r
+original copyright holder who places the Program under this License\r
+may add an explicit geographical distribution limitation excluding\r
+those countries, so that distribution is permitted only in or among\r
+countries not thus excluded.  In such case, this License incorporates\r
+the limitation as if written in the body of this License.\r
+\r
+  9. The Free Software Foundation may publish revised and/or new versions\r
+of the General Public License from time to time.  Such new versions will\r
+be similar in spirit to the present version, but may differ in detail to\r
+address new problems or concerns.\r
+\r
+Each version is given a distinguishing version number.  If the Program\r
+specifies a version number of this License which applies to it and "any\r
+later version", you have the option of following the terms and conditions\r
+either of that version or of any later version published by the Free\r
+Software Foundation.  If the Program does not specify a version number of\r
+this License, you may choose any version ever published by the Free Software\r
+Foundation.\r
+\r
+  10. If you wish to incorporate parts of the Program into other free\r
+programs whose distribution conditions are different, write to the author\r
+to ask for permission.  For software which is copyrighted by the Free\r
+Software Foundation, write to the Free Software Foundation; we sometimes\r
+make exceptions for this.  Our decision will be guided by the two goals\r
+of preserving the free status of all derivatives of our free software and\r
+of promoting the sharing and reuse of software generally.\r
+\r
+                           NO WARRANTY\r
+\r
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY\r
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN\r
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES\r
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED\r
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\r
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS\r
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE\r
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,\r
+REPAIR OR CORRECTION.\r
+\r
+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING\r
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR\r
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,\r
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING\r
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED\r
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY\r
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER\r
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE\r
+POSSIBILITY OF SUCH DAMAGES.\r
+\r
+                    END OF TERMS AND CONDITIONS\r
+\f\r
+           How to Apply These Terms to Your New Programs\r
+\r
+  If you develop a new program, and you want it to be of the greatest\r
+possible use to the public, the best way to achieve this is to make it\r
+free software which everyone can redistribute and change under these terms.\r
+\r
+  To do so, attach the following notices to the program.  It is safest\r
+to attach them to the start of each source file to most effectively\r
+convey the exclusion of warranty; and each file should have at least\r
+the "copyright" line and a pointer to where the full notice is found.\r
+\r
+    <one line to give the program's name and a brief idea of what it does.>\r
+    Copyright (C) <year>  <name of author>\r
+\r
+    This program is free software; you can redistribute it and/or modify\r
+    it under the terms of the GNU General Public License as published by\r
+    the Free Software Foundation; either version 2 of the License, or\r
+    (at your option) any later version.\r
+\r
+    This program is distributed in the hope that it will be useful,\r
+    but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+    GNU General Public License for more details.\r
+\r
+    You should have received a copy of the GNU General Public License\r
+    along with this program; if not, write to the Free Software\r
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA\r
+\r
+\r
+Also add information on how to contact you by electronic and paper mail.\r
+\r
+If the program is interactive, make it output a short notice like this\r
+when it starts in an interactive mode:\r
+\r
+    Gnomovision version 69, Copyright (C) year name of author\r
+    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.\r
+    This is free software, and you are welcome to redistribute it\r
+    under certain conditions; type `show c' for details.\r
+\r
+The hypothetical commands `show w' and `show c' should show the appropriate\r
+parts of the General Public License.  Of course, the commands you use may\r
+be called something other than `show w' and `show c'; they could even be\r
+mouse-clicks or menu items--whatever suits your program.\r
+\r
+You should also get your employer (if you work as a programmer) or your\r
+school, if any, to sign a "copyright disclaimer" for the program, if\r
+necessary.  Here is a sample; alter the names:\r
+\r
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the program\r
+  `Gnomovision' (which makes passes at compilers) written by James Hacker.\r
+\r
+  <signature of Ty Coon>, 1 April 1989\r
+  Ty Coon, President of Vice\r
+\r
+This General Public License does not permit incorporating your program into\r
+proprietary programs.  If your program is a subroutine library, you may\r
+consider it more useful to permit linking proprietary applications with the\r
+library.  If this is what you want to do, use the GNU Library General\r
+Public License instead of this License.\r
diff --git a/winboard/install/files/root/Fruit/fruit_21.exe b/winboard/install/files/root/Fruit/fruit_21.exe
new file mode 100644 (file)
index 0000000..f846dec
Binary files /dev/null and b/winboard/install/files/root/Fruit/fruit_21.exe differ
diff --git a/winboard/install/files/root/Fruit/logo.bmp b/winboard/install/files/root/Fruit/logo.bmp
new file mode 100644 (file)
index 0000000..0217880
Binary files /dev/null and b/winboard/install/files/root/Fruit/logo.bmp differ
diff --git a/winboard/install/files/root/Fruit/readme.txt b/winboard/install/files/root/Fruit/readme.txt
new file mode 100644 (file)
index 0000000..9bf51e4
--- /dev/null
@@ -0,0 +1,577 @@
+\r
+Legal details\r
+-------------\r
+\r
+Fruit 2.1 Copyright 2004-2005 Fabien Letouzey.\r
+\r
+This program is free software; you can redistribute it and/or modify\r
+it under the terms of the GNU General Public License as published by\r
+the Free Software Foundation; either version 2 of the License, or (at\r
+your option) any later version.\r
+\r
+This program is distributed in the hope that it will be useful, but\r
+WITHOUT ANY WARRANTY; without even the implied warranty of\r
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\r
+General Public License for more details.\r
+\r
+You should have received a copy of the GNU General Public License\r
+along with this program; if not, write to the Free Software\r
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307\r
+USA\r
+\r
+See the file "copying.txt" for details.\r
+\r
+\r
+General\r
+-------\r
+\r
+Today is 2005/06/17.  This is Fruit 2.1 (Peach).\r
+\r
+Fruit is a UCI-only chess engine.  This distribution comes up with\r
+Windows, Linux and Mac OS X executable files as well as an opening\r
+book and platform-independent source code.\r
+\r
+Sorry that the word "Fruit" looks like "Fritz" (it certainly sounds\r
+different in English).  This is obviously unintentional (or is it not,\r
+yes?  I don't know anymore)!\r
+\r
+PS: How would "Deep Fruit" sound? :)\r
+\r
+\r
+Official distribution URL\r
+-------------------------\r
+\r
+The official distribution web site is Leo Dijksman's WBEC Ridderkerk:\r
+http://wbec-ridderkerk.nl/  This is where you should be looking for\r
+Fruit updates in the future.\r
+\r
+\r
+Version\r
+-------\r
+\r
+"2.1, what's with the version number?  I invested $1M on 2.5 at the\r
+stock market and now who's gonna bring my money back???"\r
+\r
+Not me!  Version numbers have nothing to do with chess strength, but\r
+with the quantity of code change and the position of the program in\r
+long-term plans.\r
+\r
+I decided to enter the Massy tournament (2005/06/12) only two weeks\r
+beforehand, and I had to quickly decide for the version that would\r
+play.  There were only 3 main changes as compared with Fruit 2.0,\r
+because I had also been working on other programming projects.\r
+\r
+After the tournament, "Fruit Massy" was tested and it appeared obvious\r
+that some strength had been gained.  Fruit 2.1 is a "hurry release" of\r
+the tournament version.  It took a few more days to fix an interface\r
+problem (hash-table size under Arena) and add opening-book code\r
+(compatible with PolyGlot).\r
+\r
+OK so in short I switched from 2.0 to 2.1 because there were few\r
+changes and I don't especially have plans for a 3.0, sorry for that.\r
+\r
+For a description of the main additions, see the History section.\r
+\r
+\r
+Files\r
+-----\r
+\r
+The archive contains executable files for Windows, Linux and Mac OS X,\r
+as well as source code and a small opening book.\r
+\r
+The file "technical_10.txt" only concerns the - obsolete - version 1.0\r
+of Fruit (because I am too lazy to edit it right now AND also was when\r
+releasing Fruit 2.0 AND also ...).  The search part of it is still\r
+valid for Fruit 2.1 (except for the addition of history pruning).\r
+However the evaluation function has almost been completely re-written.\r
+Again, see the History section for a succinct description.\r
+\r
+\r
+Compiling\r
+---------\r
+\r
+The distribution comes up with Windows, Linux and Mac OS X binaries.\r
+Compiling is therefore not necessary on those systems unless you want\r
+to make a change in the program.  In any case this section describes\r
+the compiling procedure, it is safe to skip it.\r
+\r
+Fruit was developed on Linux using g++ (the GNU C++ compiler).\r
+\r
+The source code has also been successfully compiled on Windows using\r
+both MSVC and Intel C++ compilers.  I do not know about\r
+FreeBSD/OpenBSD/NetBSD or other POSIX-compliant operating systems, but\r
+I don't expect many problems.\r
+\r
+If you had problems getting Fruit compiled on your system, but somehow\r
+managed it in the end, please let me know what changes were necessary\r
+(see the contact section for details).\r
+\r
+I have now included my Makefile for Unix systems.  It is a bit weird\r
+(it uses GNU extensions), I hope it works on your OS (let me know if\r
+it doesn't).  Associate the "-march" option with the appropriate\r
+value on your system, and type "make" in the "src" directory.\r
+\r
+If you find better optimisation options for g++ please let me know.\r
+\r
+\r
+XBoard / Winboard\r
+-----------------\r
+\r
+Fruit is a UCI-only engine.  This is unlikely to change in the future.\r
+\r
+Fruit and other UCI engines can be used with XBoard or WinBoard (or\r
+other xboard-compatible interfaces) with the help of PolyGlot\r
+(UCI-to-xboard adapter).  You can download PolyGlot at\r
+http://wbec-ridderkerk.nl/\r
+\r
+\r
+Opening book\r
+------------\r
+\r
+*** NEW ***\r
+\r
+Starting with version 2.1, Fruit handles an opening book,\r
+tada! (<- Windows 3.x sound for those old enough to remember).\r
+\r
+I cloned the code from my own software (assuming it was legal)\r
+"PolyGlot", sorry myself (it's OK /Ed).  And some say that open-source\r
+is not useful!\r
+\r
+Now, I hear it already.  Tournament directors will want me to\r
+designate an official book that they should use.  To keep download\r
+overhead low, I decided to include only a small book in the main\r
+archive: it's called "book_small.bin".  It is in fact the same as\r
+"fruit.bin" in the PolyGlot 1.3 release.\r
+\r
+However, I would prefer that Fruit has access to a larger book during\r
+tournaments.  At the time I am writing this line, "book_corbit.bin" is\r
+planned to be made available on WBEC.\r
+\r
+You can build your own book from a PGN file by using PolyGlot on the\r
+command line.  PolyGlot is available for download at\r
+http://wbec-ridderkerk.nl/\r
+\r
+\r
+Tablebases\r
+----------\r
+\r
+Fruit does not use the so-called Nalimov tablebases, sorry for that.\r
+This is unlikely to change in the future.\r
+\r
+The reasons for my decision are:\r
+\r
+- the source code by Eugene Nalimov is not "free of use"\r
+  (although you don't have to pay for it)\r
+\r
+- the design of the code does not work well with Fruit's "small memory\r
+  footprint" requirement (for example the executable file would be at\r
+  least twice as large with the TB code).\r
+\r
+It must be said though that I have great respect for Eugene's\r
+contribution to the computer-chess community.\r
+\r
+As for Fruit I plan on using selected "bitbases" in the (very far)\r
+future.  For now some draws are recognised by the evaluation function,\r
+and - despite the errors - this somewhat reduces the penalty for not\r
+using tablebases.\r
+\r
+\r
+UCI options\r
+-----------\r
+\r
+You are advised to skip this section unless you are completely crazy\r
+about computer chess.\r
+\r
+Here I give you another chance to skip the section, as you should not\r
+be reading this ...\r
+\r
+Well you have downloaded Fruit in the first place so I suppose I can't\r
+do anything for you anyway ...  I give up!\r
+\r
+- "NullMove Pruning" (Always/Fail High/Never, default: Fail High)\r
+\r
+"Always" actually means the usual conditions (not in check, etc ...).\r
+"Fail High" adds the condition that the static evaluation fails high.\r
+Never use "Never" (ever)!  OK you can use "Never" to test a Zugzwang\r
+problem, but ask your Momma first!\r
+\r
+I expect that this option has little effect (assuming the first two\r
+choices only).  I only added it because most engines do not use the\r
+fail-high condition.\r
+\r
+- "NullMove Reduction" (1-3 plies, default: 3)\r
+\r
+3 is rather aggressive, especially in the endgame.  It seems better\r
+than always using 2 though.  I have not experimented with adaptive\r
+solutions.\r
+\r
+- "Verification Search" (Always/Endgame/Never, default: Endgame)\r
+\r
+This tries to solve some Zugzwang-related problems.  I expect it to\r
+hardly have any effect in games.  The default value should be\r
+sufficient for most-common Zugzwang situations.\r
+\r
+- "Verification Reduction" (1-6 plies, default: 5)\r
+\r
+5 guarantees that the cost of verification search is negligible in\r
+most cases.  Of course it means Zugzwang problems need a lot of depth\r
+to get solved, if ever!  With such a reduction, verification search is\r
+similar to Vincent Diepeveen's "double null move".\r
+\r
+- "History Pruning" (true/false, default: true)\r
+\r
+A bit dodgy, but fun to experiment with.  I added it in Fruit 2.0, and\r
+I still haven't found the time to test it seriously ...  It should\r
+help in blitz, but it's possible it actually hurts play in longer\r
+games(!!!).  One day, I should check this.  One day ...\r
+\r
+- "History Threshold" (percentage, default: 60%)\r
+\r
+This is the thing, as it affects the search tree!  Lower values are\r
+safer, and higher values more aggressive.  THIS VALUE HAS NOT BEEN\r
+TUNED!  There is a good chance Fruit's strength can be improved by\r
+changing this option.\r
+\r
+- "Futility Pruning" (true/false, default: false)\r
+\r
+Very common but controversial.  Makes the engine a tiny bit\r
+better at tactics but slightly weaker positionally.  It might be\r
+beneficial by a very small amount, but has not been tested in\r
+conjunction with history pruning yet.\r
+\r
+- "Futility Margin" (centipawns, default: 100)\r
+\r
+This value is somewhat aggressive.  It could lead to problems in\r
+the endgame.  Larger values prune less but will lead to fewer\r
+positional errors.\r
+\r
+- "Delta Pruning" (true/false, default: false)\r
+\r
+Similar to futility pruning.  Probably safer because it is used\r
+mainly during the middlegame.  Has not been tested with history\r
+pruning either.\r
+\r
+- "Delta Margin" (centipawns, default: 50)\r
+\r
+Same behaviour as futility margin.  This one is probably safe.\r
+\r
+- "Quiescence Check Plies" (0-2 plies, default: 1)\r
+\r
+Fruit tries safe (SEE >= 0) checks at the first plies of the\r
+quiescence search.  0 means no checks at all (as in most older\r
+engines).  1 is the same as previous versions of Fruit.  2 is probably\r
+not worth the extra cost.  It could be interesting when solving mate\r
+problems though.\r
+\r
+- evaluation options (percentage, default: 100%)\r
+\r
+These options are evaluation-feature multipliers.  You can modify\r
+Fruit's playing style to an extent or make Fruit weaker for instance\r
+by setting "Material" to a low value.\r
+\r
+"Material" is obvious.  It also includes the bishop-pair bonus.\r
+"Piece Activity": piece placement and mobility.\r
+"King Safety": mixed features related to the king during early phases\r
+"Pawn Structure": all pawn-only features (not passed pawns).\r
+"Passed Pawns": ... can you guess?\r
+\r
+I think "Pawn Structure" is not an important parameter.\r
+Who knows what you can obtain by playing with others?\r
+\r
+\r
+History\r
+-------\r
+\r
+2004/03/17 Fruit 1.0, first stable release\r
+------------------------------------------\r
+\r
+Fruit was written in early 2003, then hibernated for many months.\r
+I suddenly decided to remove some dust from it and release it after\r
+seeing the great WBEC web site by Leo Dijksman!  Note that Fruit is\r
+nowhere near ready to compete there because of the lack of xboard\r
+support and opening book.  Note from the future: these limitations\r
+seem not to be a problem anymore.\r
+\r
+Fruit 1.0 is as close to the original program as possible, with the\r
+main exception of added UCI-handling code (Fruit was using a private\r
+protocol before).  It is a very incomplete program, released "as is",\r
+before I start heavily modifying the code (for good or bad).\r
+\r
+You can find a succinct description of some algorithms that Fruit uses\r
+in the file "technical_10.txt" (don't expect much).\r
+\r
+\r
+2004/06/04 Fruit 1.5, halfway through the code cleanup\r
+------------------------------------------------------\r
+\r
+In chronological order:\r
+\r
+- added mobility in evaluation (makes Fruit play more actively)\r
+\r
+- added drawish-material heuristics (makes Fruit look a bit less stupid\r
+  in some dead-draw endgames)\r
+\r
+- tweaked the piece/square tables (especially for knights)\r
+\r
+- added time management (play easy moves more quickly, take more time\r
+  when unsure)\r
+\r
+- enabled the single-reply extension (to partly compensate for the lack\r
+  of king safety)\r
+\r
+- some speed up (but bear in mind mobility is a costly feature, when\r
+  implemented in a straightforward way as I did)\r
+\r
+\r
+2004/12/24 Fruit 2.0, the new departure\r
+---------------------------------------\r
+\r
+The main characteristic of Fruit 2.0 is the "completion" of the\r
+evaluation function (addition of previously-missing major features).\r
+\r
+In chronological order:\r
+\r
+- separated passed-pawn evaluation from the pawn hash table,\r
+  interaction with pieces can now be taken into account\r
+\r
+- added a pawn-shelter penalty; with king placement this forms\r
+  some sort of a simplistic king-safety feature\r
+\r
+- added incremental move generation (Fruit was starting to be too slow\r
+  for my taste)\r
+\r
+- added futility and delta pruning (not tested in conjunction with\r
+  history pruning and hence not activated by default)\r
+\r
+- improved move ordering (bad captures are now postponed)\r
+\r
+- added history pruning (not tested seriously at the time I write\r
+  this yet enabled by default, I must be really dumb)\r
+\r
+- cleaned up a large amount of code (IMO anyway), this should allow\r
+  easier development in the future\r
+\r
+\r
+2005/06/17 Fruit 2.1, the unexpected\r
+------------------------------------\r
+\r
+Unexpected because participation in the Massy tournament had not been\r
+planned.  What you see is a picture of Fruit right in the middle of\r
+development.  There may even be bugs (but this is a rumour)!\r
+\r
+I have completed the eval "even more", not that it's ever complete\r
+anyway.  I have to admit that I had always been too lazy to include\r
+king attacks in previous versions.  However, some programs had fun\r
+trashing Fruit 2.0 mercilessly in 20 moves, no doubt in order to make\r
+me angry.  Now they should need at least 25 moves, don't bother me\r
+again!\r
+\r
+- added rook-on-open file bonus; thanks to Vincent Diepeveen for\r
+  reminding me to add this.  Some games look less pathetic now.\r
+\r
+- added pawn storms; they don't increase strength but they are so\r
+  ridiculous that I was unable to deactivate them afterwards!\r
+\r
+- added PV-node extensions (this is from Toga), e.g. extending\r
+  recaptures only at PV nodes.  Not sure if these extensions help; if\r
+  they do, we all need to recognise Thomas Gaksch's contribution to\r
+  the community!\r
+\r
+- added (small) king-attack bonus, the last *huge* hole in the eval;\r
+  now only large holes remain, "be prepared" says he (to himself)!\r
+\r
+- added history-pruning re-search; does not help in my blitz tests,\r
+  but might at longer time control; it's also safer in theory,\r
+  everybody else is using it and I was feeling lonely not doing like\r
+  them.  OK, Tord told me that it helped in his programs ...\r
+\r
+- added opening book (compatible with PolyGlot 1.3 ".bin" files)\r
+\r
+- fixed hash-size UCI option, it should now be easy to configure using\r
+  all interfaces (there used to be problems with Arena, entirely by my\r
+  fault)\r
+\r
+\r
+Breakpoint\r
+----------\r
+\r
+Why a breakpoint now?  For the first time of its life, after the\r
+recent addition of king attacks, Fruit has all major (but admittedly\r
+few others) evaluation components.  Don't get me wrong: they all need\r
+a lot of refinement, but the code layout is there.\r
+\r
+When Fruit 1.0 was released, some programmers told their surprise\r
+that the program was playing OK-ish (not that I agreed) despite having\r
+virtually no eval.  They might have wondered whether their larger code\r
+was really useful.\r
+\r
+Since then, I have mostly added classical evaluation features.  I\r
+believe that Fruit has gained overall 150 to 200 Elo points by\r
+evaluation alone.  Here I just want to explain that the minimalism of\r
+Fruit 1.0 was never a goal, but the consequence of the "as is" state\r
+of the distribution.\r
+\r
+In the end, the moral is safe: eval is good for you!\r
+Also "don't jump at conclusions" seems appropriate.\r
+\r
+\r
+Future?\r
+-------\r
+\r
+Because of this "hurry release", I haven't had the time to continue\r
+cleaning up the code.  This is the main reason why the version number\r
+is only 2.1\r
+\r
+I hope to provide a cleaner alternative, perhaps tuned a little, in a\r
+few months.  Maybe it is time to consider adding features like\r
+MultiPV.\r
+\r
+Although I believe I could keep on increasing strength by adding more\r
+and more eval terms, I have little interest in doing so.  I would not\r
+learn anything in the process, unless I develop new tuning/testing\r
+techniques.  Ideally I would like to spend more time in alternative\r
+software, like my own GUI perhaps (specific to engine testing/matches).\r
+\r
+Nonetheless, a lot can be done like tuning existing code or building\r
+an adapted opening book.  Therefore, don't hesitate to contact me if\r
+you are interested in giving a hand.  Computer testing time is\r
+especially welcome, but be warned that I am quite demanding.  "I can\r
+include test versions in my Fritz-GUI swiss tournament." -> forget it,\r
+as well as my email address please, thanks a lot!\r
+\r
+Lastly, don't take it too seriously.  I am tired and always under big\r
+pressure before a release, because I want everything to go smoothly.\r
+Who knows what I will think in a month?\r
+\r
+\r
+Bug fixes\r
+---------\r
+\r
+Contrary to Fruit 2.0, Fruit 2.1 checks the legality of the hash-table\r
+move before playing it.  This could make Fruit 2.0 crash in rare\r
+occasion (like once every 10000 games).  This means that if Fruit 2.1\r
+crashes, the bug is somewhere else.\r
+\r
+Fruit 2.1 will now tolerate a hash-table resize after initialisation.\r
+This seems especially important for use with Arena.  Unfortunately, it\r
+also raises the notorious 1MB problem of some "bug"-full interface ...\r
+\r
+\r
+Known bugs\r
+----------\r
+\r
+Fruit always claims that CPU is 100% used.  This is apparently a\r
+problem in the standard C libraries on Windows.  Mailbomb me if fixing\r
+this would save lives (especially children)!  I prefer waiting for\r
+late users to throw away Windows 95/98/ME before adding an\r
+NT/2000/XP/... solution.\r
+\r
+\r
+Thanks\r
+------\r
+\r
+Big thanks go to:\r
+\r
+- Joachim Rang and Robert W. Allgeuer for spending so much time\r
+  testing different versions/settings of Fruit and getting actively\r
+  involved in the project in general.  I don't know why they got\r
+  interested in Fruit but the current version would definitely NOT\r
+  exist without them.\r
+\r
+- Bryan Hofmann for compiling Fruit (and other engines) for Windows\r
+\r
+- Aaron Gordon for the Linux binary and long-term friendship;\r
+  he's the one who showed me CCC years ago!\r
+\r
+- George Sobala for the Mac OS X executable\r
+\r
+- Leo Dijksman for hosting the Fruit distribution (and also the\r
+  PolyGlot adapter) on his web site (see Links) and all the rest:\r
+  tournament, testing, documentation, etc, ...  For those who have not\r
+  noticed (e.g. people still using a TRS-80), Leo is EXTREMELY serious\r
+  in what he is doing.  A reference in behaviour!\r
+\r
+- Ernest Bonnem for making it possible for Fruit to play in the\r
+  Massy 2005 tournament\r
+\r
+- Tord Romstad for being my virtual twin brother; who knows if we can\r
+  materialise in the same place some day?\r
+\r
+- You, for having patiently waited for this release and still being\r
+  reading this file (don't worry, it's nearly finished)\r
+\r
+As usual there are dozens missing, it is simply impossible to include\r
+everybody.\r
+\r
+\r
+Links\r
+-----\r
+\r
+- engine lists, and much more:\r
+\r
+Leo Dijksman's WBEC Ridderkerk: http://wbec-ridderkerk.nl/\r
+Alex Schmidt's UCIengines.de: http://www.uciengines.de/\r
+\r
+- free chess GUIs:\r
+\r
+Tim Mann's Chess Pages: http://www.tim-mann.org/xboard.html\r
+Arena: http://www.playwitharena.com/\r
+\r
+- computer-chess fora:\r
+\r
+The Computer Chess Club (CCC): http://www.talkchess.com/\r
+Volker Pittlik's Winboard Forum: http://wbforum.volker-pittlik.name/\r
+\r
+- mostly programmer stuff (if you have several lives to spend):\r
+\r
+Dann Corbit's FTP: ftp://cap.connx.com (do *not* use passive mode)\r
+\r
+Sorry for the dozens I simply had to leave away (but you know them if\r
+you went that far) ...\r
+\r
+\r
+Contact me\r
+----------\r
+\r
+You can contact me at fabien_letouzey@hotmail.com\r
+\r
+For a long time, I have been waiting in vain for the "Fruit Fan Club"\r
+T-shirts and donations of source-code improvements of several hundreds\r
+Elo points I had been asking for.  About the latter I have to say that\r
+it is not very smart to delay much further: the more you wait and the\r
+more difficult it will be, but I suppose that it had not yet been\r
+challenging enough ...\r
+\r
+Anyway, I have decided to launch a new initiative.  What's more boring\r
+than reading one's own code at 3am tracking down a bug that might not\r
+even exist, know what I mean?  I have the solution: let's fix\r
+each others bugs!\r
+\r
+The new operation is called "Fix my Bugs and I Fix Yours!" (patent\r
+pending).  It works as follows:\r
+\r
+1) You fix one of my bugs (excluding null move) before 2005/09/01\r
+   00:00 UTC (the acronym that does not mean anything in either\r
+   English or French, so that both parties are equally disappointed).\r
+\r
+2) I select the most artistic bug fix after the date limit.  A jury\r
+   will be nominated if necessary.\r
+\r
+3) I fix a bug of your choice in your program (excluding "it plays bad\r
+   moves"), it's that simple!\r
+\r
+This is not irony: contrary to popular belief, there really are bugs\r
+in Fruit.  Even search bugs.  I just couldn't be bothered with fixing\r
+them so far.  Sorry that I can't give you more hints, for now I am\r
+using them to find clones effortlessly.\r
+\r
+See you in September!!!\r
+\r
+\r
+The end\r
+-------\r
+\r
+Thanks for listening, and have fun with Fruit!\r
+\r
+Fabien Letouzey, 2005/06/17.\r
+\r
diff --git a/winboard/install/files/root/Fruit/technical_10.txt b/winboard/install/files/root/Fruit/technical_10.txt
new file mode 100644 (file)
index 0000000..58923ae
--- /dev/null
@@ -0,0 +1,163 @@
+\r
+*** WARNING ***\r
+\r
+This file described the older Fruit 1.0\r
+The evaluation function has been mostly rewritten since.\r
+The rest is still mostly accurate.\r
+\r
+Fabien, a very lazy man.\r
+\r
+---\r
+\r
+Fruit overview\r
+--------------\r
+\r
+Fruit was designed to help with the study of game-tree search\r
+algorithms, when applied to chess.  It is now released as a chess\r
+engine, which is a somewhat different category of programs.  Therefore\r
+the source code contains entire files and also functions that are\r
+either not used by the engine, or could be replaced with a much\r
+simpler (although somewhat less efficient) equivalent.\r
+\r
+As a chess engine, Fruit combines a "robust" search algorithm with a\r
+"minimalist" evaluation function.  The latter is not a design choice,\r
+and will hopefully change in the future.\r
+\r
+The following description is only a very incomplete description.\r
+Please consult the source code for an absolute definition.\r
+\r
+The search algorithm was designed to accommodate with heavy\r
+forward-pruning eccentricities (such as search inconsistencies).  Note\r
+that in Fruit 1.0 only null-move pruning is used as a forward-pruning\r
+mechanism.\r
+\r
+\r
+Board data structure\r
+--------------------\r
+\r
+Fruit uses the 16x12 board.  Although this structure is not very\r
+popular, it can be seen as simply combining 10x12 (mailbox) with 16x8\r
+(0x88).\r
+\r
+0x88 was picked in Fruit because of the small memory requirements of\r
+vector calculations (much smaller tables).  It is possible that Fruit\r
+uses bitboards for pawns in the future.\r
+\r
+\r
+Search algorithm\r
+----------------\r
+\r
+The main search algorithm is a classical PVS with iterative deepening.\r
+Search enhancements such as a transposition table and null-move\r
+pruning are also used (see below).\r
+\r
+A few details in the PVS implementation are not-so-standard and are\r
+there to supposedly enhance the stability of the search (like reducing\r
+the consequences of search inconsistencies).  For example the\r
+re-search window after a scout fail high of score "value" (with value\r
+> alpha) is [alpha,beta], not [value,beta].  As another example, I\r
+only allow null move when the static evaluation fails high\r
+(i.e. eval() >= beta).  Whether these features improve the strength of\r
+the engine is an open question.\r
+\r
+\r
+Transposition table\r
+-------------------\r
+\r
+Fruit uses 4 probes and replaces the shallowest entry.  Time stamping\r
+is used so that entries from previous searches are considered\r
+available for overwriting.\r
+\r
+Enhanced Transposition Cutoff (ETC) is also used 4 plies (and more)\r
+away from the horizon.\r
+\r
+\r
+Null move\r
+---------\r
+\r
+Fruit uses R=3 recursive null move, even in the endgame.\r
+\r
+In Fruit, a precondition to using null move is that the static eval\r
+fails high.  One of the consequences of this is that no two null moves\r
+can be played in a row (this is because the evaluation is\r
+symmetrical).  This is a usual condition but notice that in Fruit the\r
+null-move condition is "pure" (independent of move paths).  The\r
+fail-high condition was selected for other reasons however.\r
+\r
+Also, a verification search is launched in the endgame.\r
+\r
+\r
+Move ordering\r
+-------------\r
+\r
+The move ordering is rather basic:\r
+\r
+- transposition-table move\r
+- captures sorted by MVV/LVA\r
+- promotions\r
+- killer moves (two per level, no counters)\r
+- history moves (piece-type/to-square table, with "aging").\r
+\r
+\r
+Evaluation function\r
+-------------------\r
+\r
+The evaluation function is pretty minimal and only includes:\r
+\r
+- material (only sum of the usual 1/3/3/5/9 values)\r
+\r
+- piece-on-square table (that can probably be improved a lot)\r
+\r
+- static pawn-structure evaluation (independent of pieces), stored in a\r
+  hash table\r
+\r
+- a few boolean features supposed to represent some sort of piece\r
+  activity, such as a penalty for bishops and rooks "blocked" by a\r
+  pawn of the same colour in the "forward" direction.\r
+\r
+Note that some vital features such as king safety are completely\r
+missing.  I cannot recommend such an approach in a serious program.\r
+\r
+There are two (bad) reasons why the evaluation is so "simple":\r
+\r
+1) Fruit was designed to experiment with search algorithms (not just\r
+   for chess)\r
+\r
+2) I just can't be bothered with trying to design a "good" evaluation\r
+   function, as this would be an extremely boring occupation for me.\r
+\r
+\r
+Speed\r
+-----\r
+\r
+Fruit is not fast (in nodes per second) given the little it is\r
+calculating.  I actually plan on undoing more "optimisations" in order\r
+to make the code shorter and more flexible.  I will care about raw\r
+speed when (if at all) Fruit's design is more or less "fixed".\r
+\r
+\r
+Notes for programmers\r
+---------------------\r
+\r
+Some people find that Fruit is surprisingly "strong" given the above\r
+(dull) description.  The same persons are probably going to scrutinise\r
+the source code looking for "magic tricks"; I wish them good luck.  If\r
+they find any, those are likely to be "bugs" that I have overlooked or\r
+"features" I have forgotten to remove (please let me know).  The main\r
+search function is full_search() in search_full.cpp\r
+\r
+I suggest instead that one ponders on what other "average amateur"\r
+engines might be doing wrong ...  Maybe trying too many heuristics\r
+(they might be conflicting or choosing weights for them is too\r
+difficult) or code that is too complex, maybe features that look\r
+important but are actually performing no useful function ...  Sorry I\r
+do not know, and I don't think we will find the answer in Fruit ...\r
+\r
+\r
+Disclaimer\r
+----------\r
+\r
+Lastly, please take what I am saying with a grain of salt.  I hope\r
+that the reader is not completely lacking any sense of humour and I\r
+certainly did not intend to be insulting to anyone.\r
+\r
diff --git a/winboard/install/files/root/HaQi/haqikid.exe b/winboard/install/files/root/HaQi/haqikid.exe
new file mode 100644 (file)
index 0000000..091fbe9
Binary files /dev/null and b/winboard/install/files/root/HaQi/haqikid.exe differ
diff --git a/winboard/install/files/root/HaQi/logo.bmp b/winboard/install/files/root/HaQi/logo.bmp
new file mode 100644 (file)
index 0000000..44e5ace
Binary files /dev/null and b/winboard/install/files/root/HaQi/logo.bmp differ
diff --git a/winboard/install/files/root/Joker/joker80.exe b/winboard/install/files/root/Joker/joker80.exe
new file mode 100644 (file)
index 0000000..030385c
Binary files /dev/null and b/winboard/install/files/root/Joker/joker80.exe differ
diff --git a/winboard/install/files/root/Joker/jokerKM.exe b/winboard/install/files/root/Joker/jokerKM.exe
new file mode 100644 (file)
index 0000000..5678381
Binary files /dev/null and b/winboard/install/files/root/Joker/jokerKM.exe differ
diff --git a/winboard/install/files/root/Joker/logo.bmp b/winboard/install/files/root/Joker/logo.bmp
new file mode 100644 (file)
index 0000000..b0e1a69
Binary files /dev/null and b/winboard/install/files/root/Joker/logo.bmp differ
diff --git a/winboard/install/files/root/PSWBTM/PSWBTM.exe b/winboard/install/files/root/PSWBTM/PSWBTM.exe
new file mode 100644 (file)
index 0000000..b54a2d2
Binary files /dev/null and b/winboard/install/files/root/PSWBTM/PSWBTM.exe differ
diff --git a/winboard/install/files/root/PSWBTM/README.txt b/winboard/install/files/root/PSWBTM/README.txt
new file mode 100644 (file)
index 0000000..c8c2ced
--- /dev/null
@@ -0,0 +1,168 @@
+=================\r
+PSWBTM 2.0 README\r
+=================\r
+\r
+Website\r
+=======\r
+http://www.prism.gatech.edu/~gtg365v/PSWBTM/\r
+\r
+Release Note\r
+============\r
+I had promised there would be a Linux release with this PSWBTM but I haven't had the\r
+time to do it yet and I've also found out that Xboard is very different from Winboard.\r
+Perhaps it would be a better idea to port Winboard to various operating systems by\r
+using a cross-platform programming API like wxWidgets.\r
+\r
+Licence\r
+=======\r
+Copyright (C) 2006 Pradu Kannan\r
+\r
+This software is provided 'as-is', without any express or implied warranty. In\r
+no event will the authors be held liable for any damages arising from the use of\r
+this software.\r
+\r
+Permission is granted to anyone to use this software for any purpose, including\r
+commercial applications, and to alter it and redistribute it freely, subject to\r
+the following restrictions:\r
+\r
+1. The origin of this software must not be misrepresented; you must not claim\r
+that you wrote the original software. If you use this software in a product, an\r
+acknowledgment in the product documentation would be appreciated but is not required.\r
+\r
+2. Altered source versions must be plainly marked as such, and must not be\r
+misrepresented as being the original software.\r
+\r
+3. This notice may not be removed or altered from any source distribution. \r
+\r
+\r
+Instructions\r
+============\r
+\r
+PSWBTM should be mostly intuitive so the instructions will only point out\r
+peculiar behaviours of the program.\r
+\r
+General\r
+-------\r
+All windows are resizable.\r
+\r
+Engine Manager\r
+--------------\r
+The "save" button only updates the engine list you are editing; you will have to\r
+click "save as" to save the changes permenantly.\r
+\r
+"Select Duplicates" selects all engines with the same name.\r
+"Select Invalid" does not check java engines for validity.\r
+\r
+You can "Import" from Toms's Simple Engine Manger produced winboard.ini files as\r
+well as PSWBTM export files.\r
+\r
+"Export" will only export engines that exists inside the directory where the\r
+save file is located and it saves all paths as relative. This way you can move\r
+directories of engines from one computer/drive to another and update PSWBTM\r
+easily.\r
+\r
+You can select multiple engines from the engine list.\r
+\r
+New Tournament\r
+--------------\r
+\r
+PSWBTM allows engine updates during a tourney and therefore a pgn file which has\r
+the updated names will be placed in the Result Table PGN for the purpose of\r
+producing cross tables.\r
+\r
+All debug files will be placed in the debug folder will have the number of its\r
+respective game in the PGN.\r
+\r
+NOTE: winboard.debug will show up in the PSWBTM folder not the Winboard folder.\r
+NOTE: winboard.ini is loaded from the PSWBTM folder for the tourney.\r
+\r
+Starting Postions\r
+You can setup starting positions using FEN or PGN files.  The position loaded\r
+will increment every two games in a pairing.  You must make sure there are\r
+enough positions for the number of games otherwise the game won't start.  You can have PSWBTM rewind after a certain number of starting positions have been played by checking the Rewind checkbox and typing the number of positions to parameter box next to the Rewind checkbox.  If you check two games, then PSWBTM will check play two games with one starting position.  This is helpful say when you are doing two games per pairing and you want to use the same starting position twice with the engines having the colors alternated.\r
+\r
+Doubble clicking in the Available or Participants box will move engines to the\r
+other side.  You can select multiple engines and use the move buttons as well.  You can import pairings from a PGN file or just a regular text file which has lines for "White Player" and "Black Player".  PSWBTM can find matches to the engine names by itself.  For example it can tell that "Buzz, 2.01" is the same engine as "Buzz" or "Buzz 2.01" or "Buzz v201" or pretty much anything else that looks close to "Buzz, 2.01".\r
+\r
+Round Robin pairings done FIDE Berger style.\r
+\r
+Pairings Tab\r
+------------\r
+You can move the subdivision between the rounds list and pairings list.  If you\r
+drag it all the way to the side of the window it will hide whichever window you\r
+wish (this might be useful for gauntlets).  Pressing ctrl-S will show all\r
+windows again.\r
+\r
+Controls Tab\r
+------------\r
+First button is to start/pause the tourney.  Tourney will be paused after the\r
+current game has finished.\r
+\r
+Kill Pause forces winboard and the engines to quit and the killed game will be\r
+replayed when the tourney continues.\r
+\r
+Abort stopts the tournament.\r
+\r
+Round Pause automatically pauses the tourney every round.\r
+\r
+\r
+\r
+Winboard Size and Location\r
+---------------------------\r
+\r
+If you want to change the size and location of winboard when a tournament starts\r
+up then do this:\r
+\r
+1) Open the engine manager\r
+2) Launch a quick loading engine\r
+3) Resize/Move or change other options with the Winboard\r
+4) Close Winboard\r
+\r
+It might be useful know that the working directory while running Winboard is the\r
+working directory that PSWBTM uses.  Therefore if you double-click to open PSWBTM\r
+under Windows, the working directory is the directory PSWBTM is in.  Under Linux,\r
+it is whatever directory you run PSWBTM from.\r
+\r
+During Tournament\r
+-----------------\r
+\r
+When a tournament is paused, you can close <,shutdown><,restart> and reopen\r
+PSWBTM and resume the tournament as if nothing happened.\r
+\r
+When a game did not start PSWBTM will produce an error message and a prompt\r
+asking whether you want to pause the game. This allows you to fix any problems\r
+that occur during a tournament.\r
+\r
+Advanced Features\r
+-----------------\r
+If you want certain commands run after every game, put them in a file call\r
+aftergame.txt.  This will run before moving any pgn or debug files.\r
+\r
+For instance you could use this to kill misbehaving engines that hang in memory\r
+after a game. I suggest you call shell scripts or bat files from aftergame.txt\r
+to also to be able to use system utilities.\r
+\r
+For example to kill certain misbehaving engines in Windows you can do this:\r
+\r
+Download a utility that will kill engines (pv.exe)\r
+http://www.teamcti.com/pview/prcview.htm\r
+Lets say we put this in a folder called utils in the PSWBTM folder.\r
+\r
+Now make a batfile (pv.bat) of misbehaving engines that you will kill and lets\r
+put this in the utils folder too\r
+\r
+pv.bat\r
+=======\r
+pv Â–kf misbehavingengine1.exe\r
+pv Â–kf misbehavingengine2.exe\r
+pv Â–kf misbehavingengine3.exe\r
+...\r
+\r
+aftergame.txt\r
+=============\r
+utils\pv.bat\r
+\r
+This should now kill all misbehaving winboard engines.  You can also use\r
+aftergame.txt to do a number of other things like uploading result tables to a\r
+server.  The possibilities are endless.  Aftergame is not called after the last\r
+game of the tourney.  Instead, aftertourney.txt is called.
\ No newline at end of file
diff --git a/winboard/install/files/root/PSWBTM/config.pswbtm b/winboard/install/files/root/PSWBTM/config.pswbtm
new file mode 100644 (file)
index 0000000..ea56d4c
--- /dev/null
@@ -0,0 +1 @@
+..\WinBoard\winboard.exe\r
diff --git a/winboard/install/files/root/PSWBTM/doc/PGfruit.png b/winboard/install/files/root/PSWBTM/doc/PGfruit.png
new file mode 100644 (file)
index 0000000..ff00a6a
Binary files /dev/null and b/winboard/install/files/root/PSWBTM/doc/PGfruit.png differ
diff --git a/winboard/install/files/root/PSWBTM/doc/UCI.html b/winboard/install/files/root/PSWBTM/doc/UCI.html
new file mode 100644 (file)
index 0000000..6f98159
--- /dev/null
@@ -0,0 +1,146 @@
+<html>\r
+<header>\r
+<title>WGP: UCI installation</title>\r
+</header>\r
+<body>\r
+<table cellpadding="20"><tr><td>\r
+<h1>The WinBoard Gold Pack 4.4.0</h1>\r
+<h2>For the ultimate WinBoard experience!</h2>\r
+</td><td>\r
+<img src="../../WinBoard/doc/mini.gif">\r
+</td></tr></table>\r
+<h3>Getting UCI Engines to run under Polyglot</h3>.\r
+<p>\r
+UCI engines need the Polyglot adapter to communicate with WinBoard.\r
+As far as WinBoard is concerned, Polyglot is the engine.\r
+Polyglot has to be instructed to which real engine it should 'connect',\r
+and it takes this information from  file, known as a Polyglot .ini file.\r
+Apart from telling polyglot which UCI engine to run,\r
+Polyglot alo has to supply all paramter settings for this UCI engine\r
+that WInBoard doesn't.\r
+And UCI engines usually need a lot more support from their GUI than WinBoard engines.\r
+Polyglot has to fill in the gaps, again from information stored in the Polyglot .ini file.\r
+</p><p>\r
+This leaves us with the problem to fill that Poglot .ini file with all the required info.\r
+For the engine name, location and standard parameters this is not such a big problem:\r
+we could copy the .ini file of another engine, and just change the name in it.\r
+But every UCI engine defines its own engine-specific options,\r
+and they all do it in different ways, needing different values for them.\r
+Polyglot GUI is a program that figures out what options a UCI engine needs,\r
+and what their defaut settings what should be.\r
+It then can create a Polyglot .ini file for that engine that contins all this information.\r
+</p><p>\r
+Navigate to the Polyglot14w folder of the WinBoard Gold Pack.\r
+This folder contains two application files, polyglot itself\r
+(which is there ony for running by WinBoard),\r
+and Polyglot GUI.\r
+Double-click the latter to start Polyglot GUI.\r
+A file-selector window will pop, though which you can browse to one of your UCI engines.\r
+By double-clicking the engine application file in the corresponding engine folder,\r
+you will make Polyglot GUI interrogate this engine in UCI protocol,\r
+to learn which options it supports and requires.\r
+In this example we have used Fruit 2.1 for this purpose.\r
+</p><p>\r
+After selecting the engine, a window that is divided in a right and left part will appear.\r
+On the left you will see a set of controls for the engine-specific options,\r
+on the right the options for Polyglot (which are thus always the same).\r
+Both parts of the screen have a vertical slider, as the number of options is usually too large to fit the window.\r
+Fortunately all options are already preset to their default value,\r
+and unless you know very well what an option does, it is best to leave it there.\r
+So we will now only discuss the options that require attention.\r
+</p><p>\r
+We start wit the Polyglot settings on the right.\r
+From top to bottom we see: Engine name, installation folder and name of the application.\r
+In fact this is what we just entered by clicking the engine application, so it is always correct.\r
+Then we must select if Polyglot wil use a book on behalf of the engine,\r
+and where to find this book file (which must be a book in Polyglot format).\r
+Although WinBoard is also able to consult a book on behalf of the engines,\r
+it currently always consults the same book for both engines.\r
+So it does not make much sense to ut the same general book here as WinBoard is already using.\r
+But some UCI engines are dependent on Polyglot for their opening book,\r
+although it is a book that is made especially for them.\r
+For such engines it would make sense to put the book dedicated to them here.\r
+Then they can use their private book, while the opponent is using another one.\r
+Fruit downloads usually comes with an opening book called "book_small.bin",\r
+and we could type that in the book field, provided that we have put it in the Polyglot14w folder\r
+with the other Polyglot books, including the general book "default.bin" that came with the WinBoard Gold Pack.\r
+If we prefer to keep the book in the Fruit2_1 folder,\r
+we must type "../Fruit2_1/book_small.bin" here (without the quotes).\r
+This is not really needed, though, as Fruit is perfectly able to consult its own book.\r
+(Polyglot and Fruit use the same book format, as they are by the same author!)\r
+</p><p>\r
+Next check box and text field only have to be completed if we want to make a log file\r
+(recording all communication between Polyglot and WinBoard), which makes little sense for normal use.\r
+(It is meant for debugging.)\r
+Then we can control if Polyglot must be able to resign on behalf of the engine.\r
+(UCI engines cannot resign by themselves.)\r
+</p>\r
+<img src="PGfruit.png">\r
+<p>\r
+The left part of the Polyglot GUI window will look different for every engine,\r
+as it represents the engine-specific options.\r
+Some options are standard, though.\r
+These are shown at the top.\r
+We startd there entering the size of the hash table.\r
+(Future Polyglot versions might overrule this with the value specified in WinBoard, \r
+but for now it is an important engine parameter.)\r
+The check box that follows is not important,\r
+as Polylot will translate and transmit the ponder command from WinBoard to the engine in real time,\r
+and is not dependent on a static setting gven in the Polyglot .ini file.\r
+If you want to run matches between 2 engines, select about 1/4 of your computer's memory size.\r
+</p><p>\r
+Next you would have to specify if the engine has an "own" book, \r
+i.e. one that it can consult without the aid of Polyglot.\r
+We already mentioned that for Fruit you can do both, because the format of ts own book\r
+is the same as hat of a Polyglot book.\r
+But in general, that will not be the case, and books downloaded with the engine might have\r
+an unknown proprietry formt.\r
+Then it is really essential to put the name of that book here, \r
+and not in the right part as Polyglot book, as Polyglot wouldn't understand any of it.\r
+In the Fruit example, the following options are already specialist options for tuning the engine,\r
+and we leave them alone.\r
+</p><p>\r
+SMP engines might have another important parameter, the number of CPUs they must use.\r
+The name for this option is not standardized,\r
+but contains something like "threads", "cores", or "CPUs" in its description.\r
+Better not use values larger than the number of cores your computer has if you plan to play without ponder,\r
+and even half of tat when you want to play with ponder on.\r
+</p>\r
+<h3>Saving the Settings in a Polyglot .ini file</h3>\r
+<p>\r
+The last, and most important step is to save the settings we just made in a Polyglot .ini file.\r
+To this end we must first type the name of the file we want,\r
+which is the name that we also use when installing the engine in the PSWBTM engine database.\r
+This name must be unique, as all Polyglot .ini files sit in the same folder in the \r
+configuration the WinBoard Gold Pack uses.\r
+So never call it polyglot.ini, as Polyglot GUI proposes.\r
+For Fruit we would call it fruit.ini.\r
+If we have multiple versions of Fruit on our computer they all must have their own .ini file \r
+with its own unique name.\r
+After having typed this name, we click the "Save" button on the bottom right.\r
+That terminates Polyglot GUI,\r
+and leaves the .ini file in the Polyglot14w folder (which is where Polyglot expects it).\r
+</p><p>\r
+</p><p>\r
+<a href=".html"></a>\r
+</br>\r
+<a href=".html"></a>\r
+</br>\r
+<a href=".html"></a>\r
+</br>\r
+<a href=".html"></a>\r
+</br>\r
+<a href=""></a>\r
+</br>\r
+<a href=""></a>\r
+</br>\r
+<a href=""></a>\r
+</p><p>\r
+</p><p>\r
+</p><p>\r
+</p><p>\r
+</p><p>\r
+\r
+</p>\r
+</body>\r
+</html>
\ No newline at end of file
diff --git a/winboard/install/files/root/PSWBTM/doc/conf.png b/winboard/install/files/root/PSWBTM/doc/conf.png
new file mode 100644 (file)
index 0000000..ed9cd8f
Binary files /dev/null and b/winboard/install/files/root/PSWBTM/doc/conf.png differ
diff --git a/winboard/install/files/root/PSWBTM/doc/configure.html b/winboard/install/files/root/PSWBTM/doc/configure.html
new file mode 100644 (file)
index 0000000..fed8de7
--- /dev/null
@@ -0,0 +1,54 @@
+<html>\r
+<header>\r
+<title>WGP: configuring PSWBTM</title>\r
+</header>\r
+<body>\r
+<table cellpadding="20"><tr><td>\r
+<h1>The WinBoard Gold Pack 4.4.0</h1>\r
+<h2>For the ultimate WinBoard experience!</h2>\r
+</td><td>\r
+<img src="../../WinBoard/doc/mini.gif">\r
+</td></tr></table>\r
+<h3>Configuring PSWBTM</h3>\r
+<p>\r
+PSWBTM has to know where WinBoard is installed, in order to invoke it.\r
+This is really all that configuring it means.\r
+The WinBoard Gold Pack comes with PSWBTM already configured and fully opertional,\r
+so normally you would not have to do this.\r
+Only if during the installation PSWBTM somehow lost track of where WinBoard is located,\r
+(e.g. because you moved or renamed some folders),\r
+you would have to configure PSWBTM again.\r
+</p><p>\r
+To do it, you have to start up PSWBTM \r
+(to be found in the PSWBTM folder of the WinBoard Gold Pack download)\r
+by double clicking it.\r
+Then select the menu item "Tools -> Configuration".\r
+This pops up the following dialog:\r
+</p>\r
+<img src="conf.png">\r
+<p>\r
+Use the "Browse" button on the right to summon up a file-selector dialog.\r
+Use that to navigate to the WinBoard folder of the WinBoard Gold Pack (~\WinBoard).\r
+In the file-selector window you will then see a lot of black-Knight icons,\r
+for the winboard application and all its shortcuts.\r
+Double-click the icon named "winboard".\r
+This terminates the file-selector dialog,\r
+and copies the full name of the WinBoard application to the input field.\r
+Then click the "Save" button, and the configuration is done.\r
+</p>\r
+<h3>Running Multiple Tournaments Simultaneously</h3>\r
+<p>\r
+Note that it is possible to run several instances of PSWBTM at the same time.\r
+This only works properly, however, if you make sure they do not interfere with each other.\r
+This can be done by making a copy of the PSWBTM1 folder, and everything in it.\r
+If you want to run tournaments which need different settings in the winboard.ini file,\r
+you would similarly have to make a copy of the winboard.exe and winboard.ini\r
+(you could for instance put these in the same folder as the PSWBTM copy, say PSWBTM2).\r
+This PSWBTM copy would then have to be configured to work with the WinBoard copy.\r
+If you also want to run the same engine several times at once,\r
+you might have to duplicate their folders too (and install the copies in a PSWBTM).\r
+Some engines don't care how many times you run them, but others,\r
+especially the ones that write on files in their own folder, do not like it at all.\r
+</p>\r
+</body>\r
+</html>
\ No newline at end of file
diff --git a/winboard/install/files/root/PSWBTM/doc/eman.png b/winboard/install/files/root/PSWBTM/doc/eman.png
new file mode 100644 (file)
index 0000000..548dc3c
Binary files /dev/null and b/winboard/install/files/root/PSWBTM/doc/eman.png differ
diff --git a/winboard/install/files/root/PSWBTM/doc/install.html b/winboard/install/files/root/PSWBTM/doc/install.html
new file mode 100644 (file)
index 0000000..83e3e3b
--- /dev/null
@@ -0,0 +1,173 @@
+<html>\r
+<header>\r
+<title>WGP: Installing Engines</title>\r
+</header>\r
+<body>\r
+<table cellpadding="20"><tr><td>\r
+<h1>The WinBoard Gold Pack 4.4.0</h1>\r
+<h2>For the ultimate WinBoard experience!</h2>\r
+</td><td>\r
+<img src="../../WinBoard/doc/mini.gif">\r
+</td></tr></table>\r
+<h3>Installing Engines in PSWBTM</h3>\r
+<p>\r
+Installing a Chess engine always begins with obtaining the necessary files.\r
+There are many places from which you can download Chess engines.\r
+Especially the website of \r
+<a href="http://wbec-ridderkerk.nl/html/enginesindex.htm">WBEC</a> offers a good overview of which engines are around,\r
+and where they can be obtained.\r
+</p><p>\r
+When downloading an engine, it usually come as a compressed archive, (e.g. a .zip file),\r
+containing the engine executabe (= application), plus the data files it needs for its operation\r
+(opening books, logos, manuals, sometimes source code).\r
+There are many compression formats around, e.g. .zip, .tar.gz, .rar, .7z.\r
+On a modern Windows system, the decompression sftware will understand most of those.\r
+</p><p>\r
+One thing one should carefully observe is if the downloaded archive contains a single folder,\r
+or  large group of individual files and folders.\r
+In the first case, we would like to place this single folder in the folder on our computer\r
+that holds all our Chess engines:\r
+we would like to have a single folder for each engine, or each version of an engine there.\r
+Otherwise, things would quickly degenerate into a mess, one Chess engine using incompatible data of another,\r
+because it happened to have the same name, etc.\r
+So if the engine comes as a set of loose files inside the archive, rather than a single folder,\r
+we first want to create a new folder inside the folder that holds all our engines,\r
+and unpack the archive there.\r
+Otherwise we would have a lot of trouble collecting the just unpacked files and folders\r
+from amongst out other engine folders.\r
+Milk is a lot easier to spill on the floor than to get back into the bottle, and the same holds for files.\r
+So just to be save I always create a new folder for the engine I am downloading.\r
+If it turns out that unpacking the download gives me a single folder inside this folder,\r
+it is easy enough to eliminate one level of folders, by selecting all the contents,\r
+and dragging it to the encompassing folder.\r
+Very often it is the folder that came with the archive that I get rid off, because it has a cumbersome name.\r
+</p><p>\r
+When the files are sitting where you want them, you have to tell PSWBTM were they are.\r
+PSWBTM will transmit that information to WinBoard when it wants this engine to play.\r
+So WinBoard itself does not have to know anything of the engines,\r
+except when you also want to run the without PSWBTM,\r
+through the WinBoard startup dialog.\r
+</p><p>\r
+To install an engine in PSWBTM, you start up PSWBTM, and select "Tools -> Engine Manager" to pop up\r
+the engine-manager window.\r
+First click the "New" button on the lower-left, to signal that you are going to install a new engine.\r
+(Otherwise you run the risk to overwrite an existing engine, so that it wil disappear from te PSWBTM database.)\r
+After that, you have to complete the three text fields on the upper right.\r
+</p><p>\r
+In the upper field you have to type the name under which you want this engine to appear in the list you see on the left.\r
+You can give it any name you like, this information is only for your convenience.\r
+On the second line you must tell PSWBTM where it can find the engine application file.\r
+Simplest is to use the "Browse" button to browse to it.\r
+This pops up a file-selector dialog.\r
+What you have to do then depends on the type of engine,\r
+if it is WinBoard or UCI.\r
+First we discuss the WinBoard case.\r
+</p>\r
+<h3>WinBoard Engines</h3>\r
+<p>\r
+Navigate through your file-system tree, first to your folder where all engines folders are, \r
+and then to the folder of the freshly downloaded engine in it.\r
+The file-selector dialog only shows you folders and application (.exe) files.\r
+Usually the engine applicaton is present in the folder you downloaded; \r
+sometimes it in a sub-folder "bin".\r
+Once you reach the executable, double-click it, and the file-selector dialaog will close,\r
+and leave the full name of the application in the second input field of the engine manager window.\r
+</p><p>\r
+The third line has to contain the options the engine needs on the command line that starts it.\r
+What you have to put here can vary enormously, and suffers from total absence of standardization.\r
+Some engines do not need any options on their command line,\r
+because they read all their settings from asom fixed file.\r
+(Usulally this is a .ini file that came with the download of the engine, and sits with it in the same folder.)\r
+Fairy-max is a very simple engine, and the only argument it can have is a number to specify the size of its hash table.\r
+If you omit this, Fairy-Mas uses a default value (96MB), so the option is not strictly needed.\r
+In the WinBoard Gold Pack Fairy-Max is installed with an 48MB hash table, which for Fairy-Max is indicated by the option "22".\r
+Which options you need, and what their values mean can only be learned from reading the documentation that came with the engine.\r
+Fairly common is an option to set the hash size, often called hash, -hash or /hash=....\r
+Some engines need an option xboard or /xboard or --io-mode=xboard to work as WinBoard engines,\r
+and use their own built-in GUI otherwise.\r
+Anyway, whatever the engine needs, you have to type in this third line.\r
+</p>\r
+<h3>UCI Engines</h3>\r
+<p>\r
+For UCI Engines you must not browse to the engine aplication, but to Polygot in stead.\r
+The latter can be found in the Polyglot15w folder of the WinBoard Gold Pack,\r
+which should also be located in the folder with all engine folders.\r
+In fact Polyglot is an engine for WinBoard, \r
+except that it does't think up the moves it sends toWinBoard by itself,\r
+but consults a UCI engine (speaking to it in UCI protocol) without WinBoard knowing anything about it.\r
+The application you need is named "polyglot.exe" in this folder.\r
+Do not confuse it with "Polyglot GUI.exe, which should also be in this folder,\r
+if you downloaded it.\r
+Double-click polyglot to leave the file-selector dialog, and get its full file name in the second input field of the engine manager.\r
+</p><p>\r
+The third line, for the engine options, now contains the options for Polyglot.\r
+The latter needs only a single option, the name of a file where is specified what it really has to do\r
+(i.e. which UCI engine it should fire up to get the moves, and what parameter settings it should use to control this engine).\r
+If you type a simple filename (without a folder-name part, i.e. without backslashes '\' in it),\r
+Polyglot will look for this file in the directory where its .exe file is located,\r
+which is just the place where we put all such files.\r
+So we type such a simple filename here, which reminds us of the engine.\r
+E.g. to install Fruit, we would type "fruit.ini" on the third line.\r
+That is not the full story yet,\r
+as we also would have to provide the fruit.ini file.\r
+Normally we would have made that file before we would install the engine in PSWBTM,\r
+(see the <a = href="polyglotGUI">installing UCI engines with Polygot GUI</a> page),\r
+but you can also do it afterwards.\r
+The WinBoard Gold pack does already contain a pre-installed fruit.ini file, though,\r
+so at the moment we can simply continue.\r
+</p>\r
+<h3>Finishing the install for both WB and UCI engines</h3>\r
+<p>\r
+It is possible to add  few options for WinBoard that will only be used with this engine,\r
+and not automatically with any other engine you put it with in the same tournament.\r
+(Usually you don't need that so you might skip this paragraph, but it is useful to be aware of the possibility.)\r
+E.g., you could give it a time-odds penalty if it was too strong to make the tournament interesting,\r
+and let it play with only half the time (say) of its opponents.\r
+Winboard does have the optons /firstTimeOdd=2 and /secondTimeOdds=2 for this.\r
+PSWBTM does not have a separate input field for such engine-specific WinBoard settigs,\r
+but you can enter them at the end of te engine options, on the third input line,\r
+after the word "WBopt".\r
+Everything behind this word will be interpreted as WinBoard options,\r
+which will overrule any options in the winboard.ini, or even on the command line invoking WinBoard.\r
+Because the engine will sometimes run under WinBoard as first, and sometimes as second engine,\r
+(depending on the color it plays),\r
+you have to leave it open which of the two time-odds options should be used.\r
+This is done by replacing the "first" or "second" in the option name by "%s".\r
+So for the time-odds example, you would add "WBopt /%sTimeOdds=1" to the third line.\r
+An example for Fairy-Max is pre-installed.\r
+</p><p>\r
+When you have completed all three text-input fields, you should press the button "Save" below it.\r
+After that, you could install a new engine by pressing "New",\r
+but be sure you press "Save" first, or you would lose everything you just did!\r
+If you don't ant to install any other engines,\r
+you should press "Save Changes", and then "Exit" to close the engine manager.\r
+(It is kind eough to arn you if you forget to press "Save Changes",\r
+which is just as well, as exiting without it would make you lose all engines you just installed!)\r
+The newly installed engines are then ready for selection in a tournament!\r
+(Unless it was UCI and you forgot to make the Polyglot .ini file!)\r
+Befor you press "Exit"\r
+</p>\r
+<h3>Links</h3>\r
+<p>\r
+a href=".html"></a>\r
+</br>\r
+<a href=".html"></a>\r
+</br>\r
+<a href=".html"></a>\r
+</br>\r
+<a href=".html"></a>\r
+</br>\r
+<a href=""></a>\r
+</br>\r
+<a href=""></a>\r
+</br>\r
+<a href=""></a>\r
+</p><p>\r
+</p><p>\r
+</p><p>\r
+</p><p>\r
+</p><p>\r
+\r
+</p>\r
+</body>\r
+</html>
\ No newline at end of file
diff --git a/winboard/install/files/root/PSWBTM/doc/menu.png b/winboard/install/files/root/PSWBTM/doc/menu.png
new file mode 100644 (file)
index 0000000..4934768
Binary files /dev/null and b/winboard/install/files/root/PSWBTM/doc/menu.png differ
diff --git a/winboard/install/files/root/PSWBTM/doc/pswbtm.png b/winboard/install/files/root/PSWBTM/doc/pswbtm.png
new file mode 100644 (file)
index 0000000..23dca42
Binary files /dev/null and b/winboard/install/files/root/PSWBTM/doc/pswbtm.png differ
diff --git a/winboard/install/files/root/PSWBTM/doc/running.html b/winboard/install/files/root/PSWBTM/doc/running.html
new file mode 100644 (file)
index 0000000..4ae1a4a
--- /dev/null
@@ -0,0 +1,106 @@
+<html>\r
+<header>\r
+<title>WGP: Running a Tournament with PSWBTM</title>\r
+</header>\r
+<body>\r
+<table cellpadding="20"><tr><td>\r
+<h1>The WinBoard Gold Pack 4.4.0</h1>\r
+<h2>For the ultimate WinBoard experience!</h2>\r
+</td><td>\r
+<img src="../../WinBoard/doc/mini.gif">\r
+</td></tr></table>\r
+<h3>Using PSWBTM to run an Engine</h3>\r
+<p>\r
+The PSWBTM software basically consists of a single application file, PSWBTM.exe,\r
+located in the PSWBTM folder of te WinBoard Gold Pack. \r
+Just double-click it to run PSWBTM.\r
+The PSWBTM main window that pops up consists of a menu bar with "File", "Tools" and "Help" menu,\r
+and below it an area with 4 selectable displays, \r
+"Pairings", "Standings", "Control" and "Details".\r
+</p>\r
+<img src="menu.png">\r
+<p>\r
+The first step in using PSWBTM is configuring it. \r
+Basically, this only means you have to tell it where it can find WinBoard. \r
+The WinBoard Gold Pack comes with PSWBTM already configured, so you only have \r
+to perform this step if you moved the WinBoard or PSWBTM folders around or renamed them.\r
+How you would have to do that is described <a href="configure.html">here</a>.\r
+</p>\r
+<p>\r
+The next step is to use PSWBTM's engine-manager function to install some engines in the database. \r
+Here also the WinBoard Gold Pack comes with some engines pre-installed\r
+(if you haven't altered the folder structure).\r
+Nevertheless, we first invoke the engine manager to see if they are OK.\r
+This is what you would also do when you wanted to play a Human-engine game against an already installed engine,\r
+or use your engine in over-the-board tournaments as human operator.\r
+</p>\r
+<h3>Running a Single Engine through the Engine Manager</h3>\r
+<p>\r
+Select the menu "Tools -> Engine Manager". \r
+This makes the engine-manager window pop up.\r
+On the left you will see the list of names of all installed engines,\r
+by the names that the user has given them.\r
+In the distribution these are only two engines pre-installed, CPW and Fairy-Max.\r
+(CPW is installed in two different ways, though, so you see three entries.)\r
+Left-click one of the engines in this list (say Fairy-Max) to select it.\r
+This highlights this engine in blue,\r
+while the details of how it is installed appear in the three text lines on the upper right.\r
+Don't bother with these lines yet,\r
+but left-click the button "Launch Engine".\r
+This will invoke WinBoard with this engine,\r
+so you can play a game against it, or have it play itself.\r
+At this point you are in the same position as when you started WinBoard through a shortcut for running this engine,\r
+or when you would have started through the WinBoard startup dialog,\r
+entering all the engine details there by yourself.\r
+PSWBTM has done all this for you,\r
+taking the egine details from the engine-anager database.\r
+</p>\r
+<img src="eman.png">\r
+<p>\r
+You can now <a href="..\..\WinBoard\doc\.html">customize WinBoard</a> through its own menus,\r
+so that the display looks like you want to have it,\r
+(size, colors),\r
+the proper auxiliary windows are up and\r
+correctly sized and positioned,\r
+adjudication options are set as you intend to use them,\r
+select a GUI book, engine hash-table sizes,\r
+etc.\r
+WinBoard will remember almost everything you do here,\r
+and come up the next time exactly as you left it this time.\r
+Only transient WinBoard options,\r
+like the Chess variant,\r
+will be forgotten and start at their default value next time.\r
+So you can safely play a game of Gothic Chess or Knightmate against Fairy-Max now,\r
+that won't affect future operation.\r
+</p><p>\r
+Once you are satisfied with the WinBoard settings,\r
+and perhaps have played a game or had the engine play itself,\r
+you simply quit WinBoard (e.g. by closing its window),\r
+and this will return you to the task manager.\r
+You could now select another engine, and launch that,\r
+or quit the engine manager by clicking the "Exit" button at the bottom.\r
+</p>\r
+<h3>Links</h3>\r
+<p>\r
+<a href=".html"></a>\r
+</br>\r
+<a href=".html"></a>\r
+</br>\r
+<a href=".html"></a>\r
+</br>\r
+<a href=".html"></a>\r
+</br>\r
+<a href=""></a>\r
+</br>\r
+<a href=""></a>\r
+</br>\r
+<a href=""></a>\r
+</p><p>\r
+</p><p>\r
+</p><p>\r
+</p><p>\r
+</p><p>\r
+\r
+</p>\r
+</body>\r
+</html>
\ No newline at end of file
diff --git a/winboard/install/files/root/PSWBTM/doc/tour.png b/winboard/install/files/root/PSWBTM/doc/tour.png
new file mode 100644 (file)
index 0000000..7fa99be
Binary files /dev/null and b/winboard/install/files/root/PSWBTM/doc/tour.png differ
diff --git a/winboard/install/files/root/PSWBTM/doc/tourney.html b/winboard/install/files/root/PSWBTM/doc/tourney.html
new file mode 100644 (file)
index 0000000..64fb527
--- /dev/null
@@ -0,0 +1,148 @@
+<html>\r
+<header>\r
+<title>WGP: Running a Tournament with PSWBTM</title>\r
+</header>\r
+<body>\r
+<table cellpadding="20"><tr><td>\r
+<h1>The WinBoard Gold Pack 4.4.0</h1>\r
+<h2>For the ultimate WinBoard experience!</h2>\r
+</td><td>\r
+<img src="../../WinBoard/doc/mini.gif">\r
+</td></tr></table>\r
+<h3>Setting up  Tournament with PSWBTM</h3>\r
+<p>\r
+The first two step for using PSWBTM,\r
+<a href="configure.html">configuring</a> it, \r
+and <a href="install.html">instaling some engines</a> into its database,\r
+have been described on an earlier page of this tutorial.\r
+In the WinBoard Gold Pack PSWBTM comes fully configured,\r
+with two engines pre-installed, so for a first trial these steps\r
+can be skipped.\r
+</p>\r
+<p>\r
+The third step in using PSWBTM is to set up a tournament.\r
+For this you select the "Tools -> New Tournament" menu item.\r
+This pops up a complex window with lot of controls and input fields.\r
+Here you have to provide all details about the tournament.\r
+But don't despair: most of the time you only change a few of these fields,\r
+and leave all others as they were for your last tournament.\r
+It is thus not as bad as it looks!\r
+</p>\r
+<p>\r
+We will start at the top and work our way down.\r
+You can give a name to your tourney,\r
+wich will appear in the PGN headers of all games.\r
+This is optional.\r
+The next line you will have to enter the name of a PGN file,\r
+to which all games of the tourney will then be added.\r
+You thus can select an existing file,\r
+and to this end there is a "Browse" button, to spare you typing the name.\r
+The other two lines of the "File Settings" panel are not important now;\r
+we skip them, making sure the checkboxes in front of them are unchecked.\r
+</p><p>\r
+The fields of the next panel, "Tournament Type", are essential.\r
+You have to choose between Gauntlet and Round-Robin with the radio-buttons on the left.\r
+If you have selected "Gauntlet",\r
+(meaning a single engine against one or more others),\r
+it is essential that you select the engine that has to play the gauntlet\r
+with the combo-box.\r
+This combo box shows you (when you open it) the same list of engines you saw in the\r
+engine-manager window.\r
+Just select one by clicking it.\r
+For a Round-Robin this field is ignored.\r
+So for now, click "Round-Robin".\r
+You then must specify how many times the engines will have to play each other\r
+(usually 1 or 2 times, we select 2).\r
+</p>\r
+<img src="tour.png">\r
+<p>\r
+Then you have to select the time control for the tourney.\r
+The panel is more or less self-explanatory,\r
+and supports all time controls known by WinBoard,\r
+including fixed time or fixed depth.\r
+You can also select here if the engines will ponder or not.\r
+To make for a few quick games, select "incremental", with 1 min + 0 sec/move.\r
+</p><p>\r
+Then you have to select the starting position.\r
+The default starting position will do for now,\r
+and in that case all other data in the panel is ignored.\r
+But the combo-box on the left also allows you to select \r
+to play from positions given in a PGN or FEN file.\r
+If you select that, you will have to give the corresponding file name in\r
+the field right of it, or browse to such a file.\r
+In that case you will also have to tick if you want to play each position\r
+once, or twice (with reversed colors).\r
+</p><p>\r
+The "Initial Pairing Import" panel can be ignored.\r
+</p><p>\r
+The last, but most important task, is to select the participants to the tourney.\r
+As only two engines are installed initially,\r
+we need both of them to participate.\r
+Just double-click them in the list on the right\r
+(which is again a display of the engine-manager database),\r
+and this will transfer them to the box on the left\r
+(which shows the participants).\r
+Once both engines are in, the tourney is fully specified,\r
+and we can click "OK" to quit the tournament-setup window.\r
+(As long as the tournament is not started, you can call up the \r
+"New Tournment" dialog again to correct possible errors.)\r
+</p><p>\r
+This brings us back into the PSWBTM main window.\r
+The four tabs now all contain some information.\r
+The first one shows the pairings for every round.\r
+(With only two participants, te tourney will finish in  single round, though.)\r
+The fourth shows an overview of all the settings for the tourney,\r
+which you just entered.\r
+So you can check there if you goofed.\r
+The fourth and final step, however,\r
+is to go to the "Control" tab.\r
+That is where the buttons are located that allow you to start the tourney,\r
+abort it permanently, or pause it \r
+(immediately, or after finishing the game in progress).\r
+The only confusing thing is that to start the tourney,\r
+you have to press "Resume".\r
+(The button is named this way because the same button is used to restart after a pause.)\r
+After that, the tournament will start,\r
+and run automatically to completion.\r
+While it is running you can use the PSWBTM "Standings" tab sheet to see\r
+how the participants are doing upto now.\r
+And watch and enjoy the games, of course.\r
+WinBoard will pop up as you left it last time,\r
+but noting you change now (including the size and position of all its windows) will be remembered for the next game of the tourney.\r
+</p>\r
+<img src="pswbtm.png">\r
+<p>\r
+After two games our small round-robin will be finished.\r
+The games will have been saved in the PGN file you selected.\r
+</p><p>\r
+<strong>Congratulations!</strong>\r
+You now have played your first tournament\r
+with PSWBTM + WinBoard.\r
+That is all there is to it.\r
+Now just <a href="install.html">install some more engines</a>,\r
+and you are in business!\r
+</p>\r
+<h3>Links</h3>\r
+<p>\r
+<a href=".html"></a>\r
+</br>\r
+<a href=".html"></a>\r
+</br>\r
+<a href=".html"></a>\r
+</br>\r
+<a href=".html"></a>\r
+</br>\r
+<a href=""></a>\r
+</br>\r
+<a href=""></a>\r
+</br>\r
+<a href=""></a>\r
+</p><p>\r
+</p><p>\r
+</p><p>\r
+</p><p>\r
+</p><p>\r
+\r
+</p>\r
+</body>\r
+</html>
\ No newline at end of file
diff --git a/winboard/install/files/root/PSWBTM/engines.pswbtm b/winboard/install/files/root/PSWBTM/engines.pswbtm
new file mode 100644 (file)
index 0000000..953e717
--- /dev/null
@@ -0,0 +1,12 @@
+CPW (Polyglot + .ini file)\r
+..\Polyglot15w\polyglot.exe\r
+cpw.ini\r
+CPW (WB UCI option)\r
+..\cpw_060109\cpw.exe\r
+WBopt /%sIsUCI=true\r
+Fairy-Max (time handicap 2x)\r
+C:\cygwin\home\fboard\Winboard_F.4.3.13\win15\Fairy-Max\fmax.exe\r
+22 WBopt /%sTimeOdds=2\r
+Fairy-Max 4.8(E)\r
+..\Fairy-Max\fmax.exe\r
+22\r
diff --git a/winboard/install/files/root/PSWBTM/ntls.pswbtm b/winboard/install/files/root/PSWBTM/ntls.pswbtm
new file mode 100644 (file)
index 0000000..7865c01
--- /dev/null
@@ -0,0 +1,18 @@
+games\CPW-Fairy.pgn\r
+\r
+\r
+start positions\silver.epd\r
+0\r
+0\r
+1\r
+80\r
+2\r
+1\r
+40\r
+0\r
+1\r
+0\r
+1\r
+1\r
+0\r
+1\r
diff --git a/winboard/install/files/root/PSWBTM/start positions/nunn.pgn b/winboard/install/files/root/PSWBTM/start positions/nunn.pgn
new file mode 100644 (file)
index 0000000..997f853
--- /dev/null
@@ -0,0 +1,260 @@
+[Event "?"]\r
+[Site "?"]\r
+[Date "????.??.??"]\r
+[Round "?"]\r
+[White "Sveshnikov"]\r
+[Black "?"]\r
+[Result "*"]\r
+[ECO "B33"]\r
+[PlyCount "26"]\r
+\r
+1. e4 c5 2. Nf3 e6 3. d4 cxd4 4. Nxd4 Nc6 5. Nb5 Nf6 6. N1c3 d6 7. Bf4 e5 8.\r
+Bg5 a6 9. Na3 b5 10. Bxf6 gxf6 11. Nd5 f5 12. c3 Bg7 13. exf5 Bxf5 *\r
+\r
+[Event "?"]\r
+[Site "?"]\r
+[Date "????.??.??"]\r
+[Round "?"]\r
+[White "Siz1"]\r
+[Black "?"]\r
+[Result "1-0"]\r
+[ECO "B89"]\r
+[PlyCount "20"]\r
+\r
+1. e4 c5 2. Nf3 Nc6 3. d4 cxd4 4. Nxd4 Nf6 5. Nc3 d6 6. Bc4 e6 7. Be3 a6 8. Qe2\r
+Qc7 9. O-O-O Be7 10. Bb3 O-O 1-0\r
+\r
+[Event "?"]\r
+[Site "?"]\r
+[Date "????.??.??"]\r
+[Round "?"]\r
+[White "French"]\r
+[Black "?"]\r
+[Result "1-0"]\r
+[ECO "C19"]\r
+[PlyCount "21"]\r
+\r
+1. e4 e6 2. d4 d5 3. Nc3 Bb4 4. e5 c5 5. a3 Bxc3+ 6. bxc3 Qc7 7. Nf3 Ne7 8. a4\r
+b6 9. Bb5+ Bd7 10. Bd3 Nbc6 11. O-O 1-0\r
+\r
+[Event "?"]\r
+[Site "?"]\r
+[Date "????.??.??"]\r
+[Round "?"]\r
+[White "Spanish closed"]\r
+[Black "?"]\r
+[Result "1-0"]\r
+[ECO "C99"]\r
+[PlyCount "23"]\r
+\r
+1. e4 e5 2. Nf3 Nc6 3. Bb5 a6 4. Ba4 Nf6 5. O-O b5 6. Bb3 Be7 7. Re1 O-O 8. c3\r
+d6 9. h3 Na5 10. Bc2 c5 11. d4 Qc7 12. Nbd2 1-0\r
+\r
+[Event "?"]\r
+[Site "?"]\r
+[Date "????.??.??"]\r
+[Round "?"]\r
+[White "QGExch"]\r
+[Black "?"]\r
+[Result "1-0"]\r
+[ECO "D36"]\r
+[PlyCount "20"]\r
+\r
+1. d4 d5 2. c4 c6 3. Nf3 e6 4. cxd5 exd5 5. Nc3 Nf6 6. Bg5 Be7 7. Qc2 Nbd7 8.\r
+e3 O-O 9. Bd3 Re8 10. O-O Nf8 1-0\r
+\r
+[Event "?"]\r
+[Site "?"]\r
+[Date "????.??.??"]\r
+[Round "?"]\r
+[White "Gruenfeld"]\r
+[Black "?"]\r
+[Result "1-0"]\r
+[ECO "D85"]\r
+[PlyCount "19"]\r
+\r
+1. d4 Nf6 2. c4 g6 3. Nc3 d5 4. cxd5 Nxd5 5. e4 Nxc3 6. bxc3 Bg7 7. Nf3 c5 8.\r
+Rb1 O-O 9. Be2 cxd4 10. cxd4 1-0\r
+\r
+[Event "?"]\r
+[Site "?"]\r
+[Date "????.??.??"]\r
+[Round "?"]\r
+[White "Queens Indian"]\r
+[Black "?"]\r
+[Result "1-0"]\r
+[ECO "E15"]\r
+[PlyCount "25"]\r
+\r
+1. d4 Nf6 2. c4 e6 3. Nf3 b6 4. g3 Ba6 5. b3 Bb4+ 6. Bd2 Be7 7. Bg2 c6 8. Bc3\r
+d5 9. Ne5 Nfd7 10. Nxd7 Nxd7 11. Nd2 O-O 12. O-O Rc8 13. e4 1-0\r
+\r
+[Event "?"]\r
+[Site "?"]\r
+[Date "????.??.??"]\r
+[Round "?"]\r
+[White "KI Classical"]\r
+[Black "?"]\r
+[Result "0-1"]\r
+[ECO "E98"]\r
+[PlyCount "19"]\r
+\r
+1. d4 Nf6 2. c4 g6 3. Nc3 Bg7 4. e4 d6 5. Be2 O-O 6. Nf3 e5 7. O-O Nc6 8. d5\r
+Ne7 9. Ne1 Ne8 10. Be3 0-1\r
+\r
+[Event "?"]\r
+[Site "?"]\r
+[Date "????.??.??"]\r
+[Round "?"]\r
+[White "English c4/e5"]\r
+[Black "?"]\r
+[Result "0-1"]\r
+[ECO "A25"]\r
+[PlyCount "15"]\r
+\r
+1. c4 e5 2. Nc3 Nc6 3. g3 g6 4. Bg2 Bg7 5. e3 Nge7 6. Nge2 O-O 7. O-O d6 8. d3\r
+0-1\r
+\r
+[Event "?"]\r
+[Site "?"]\r
+[Date "????.??.??"]\r
+[Round "?"]\r
+[White "Size pawn chase"]\r
+[Black "?"]\r
+[Result "1-0"]\r
+[ECO "B97"]\r
+[PlyCount "18"]\r
+\r
+1. e4 c5 2. Nf3 d6 3. d4 cxd4 4. Nxd4 Nf6 5. Nc3 a6 6. Bg5 e6 7. f4 Qb6 8. Qd2\r
+Qxb2 9. Rb1 Qa3 1-0\r
+\r
+[Event "?"]\r
+[Site "?"]\r
+[Date "????.??.??"]\r
+[Round "?"]\r
+[White "Siz1"]\r
+[Black "?"]\r
+[Result "1-0"]\r
+[ECO "B89"]\r
+[PlyCount "20"]\r
+\r
+1. e4 c5 2. Nf3 Nc6 3. d4 cxd4 4. Nxd4 Nf6 5. Nc3 d6 6. Bc4 e6 7. Be3 a6 8. Qe2\r
+Qc7 9. O-O-O Be7 10. Bb3 O-O 1-0\r
+\r
+[Event "?"]\r
+[Site "?"]\r
+[Date "????.??.??"]\r
+[Round "?"]\r
+[White "French"]\r
+[Black "?"]\r
+[Result "1-0"]\r
+[ECO "C19"]\r
+[PlyCount "21"]\r
+\r
+1. e4 e6 2. d4 d5 3. Nc3 Bb4 4. e5 c5 5. a3 Bxc3+ 6. bxc3 Qc7 7. Nf3 Ne7 8. a4\r
+b6 9. Bb5+ Bd7 10. Bd3 Nbc6 11. O-O 1-0\r
+\r
+[Event "?"]\r
+[Site "?"]\r
+[Date "????.??.??"]\r
+[Round "?"]\r
+[White "Spanish closed"]\r
+[Black "?"]\r
+[Result "1-0"]\r
+[ECO "C99"]\r
+[PlyCount "23"]\r
+\r
+1. e4 e5 2. Nf3 Nc6 3. Bb5 a6 4. Ba4 Nf6 5. O-O b5 6. Bb3 Be7 7. Re1 O-O 8. c3\r
+d6 9. h3 Na5 10. Bc2 c5 11. d4 Qc7 12. Nbd2 1-0\r
+\r
+[Event "?"]\r
+[Site "?"]\r
+[Date "????.??.??"]\r
+[Round "?"]\r
+[White "QGExch"]\r
+[Black "?"]\r
+[Result "1-0"]\r
+[ECO "D36"]\r
+[PlyCount "20"]\r
+\r
+1. d4 d5 2. c4 c6 3. Nf3 e6 4. cxd5 exd5 5. Nc3 Nf6 6. Bg5 Be7 7. Qc2 Nbd7 8.\r
+e3 O-O 9. Bd3 Re8 10. O-O Nf8 1-0\r
+\r
+[Event "?"]\r
+[Site "?"]\r
+[Date "????.??.??"]\r
+[Round "?"]\r
+[White "Gruenfeld"]\r
+[Black "?"]\r
+[Result "1-0"]\r
+[ECO "D85"]\r
+[PlyCount "19"]\r
+\r
+1. d4 Nf6 2. c4 g6 3. Nc3 d5 4. cxd5 Nxd5 5. e4 Nxc3 6. bxc3 Bg7 7. Nf3 c5 8.\r
+Rb1 O-O 9. Be2 cxd4 10. cxd4 1-0\r
+\r
+[Event "?"]\r
+[Site "?"]\r
+[Date "????.??.??"]\r
+[Round "?"]\r
+[White "Queens Indian"]\r
+[Black "?"]\r
+[Result "1-0"]\r
+[ECO "E15"]\r
+[PlyCount "25"]\r
+\r
+1. d4 Nf6 2. c4 e6 3. Nf3 b6 4. g3 Ba6 5. b3 Bb4+ 6. Bd2 Be7 7. Bg2 c6 8. Bc3\r
+d5 9. Ne5 Nfd7 10. Nxd7 Nxd7 11. Nd2 O-O 12. O-O Rc8 13. e4 1-0\r
+\r
+[Event "?"]\r
+[Site "?"]\r
+[Date "????.??.??"]\r
+[Round "?"]\r
+[White "KI Classical"]\r
+[Black "?"]\r
+[Result "0-1"]\r
+[ECO "E98"]\r
+[PlyCount "19"]\r
+\r
+1. d4 Nf6 2. c4 g6 3. Nc3 Bg7 4. e4 d6 5. Be2 O-O 6. Nf3 e5 7. O-O Nc6 8. d5\r
+Ne7 9. Ne1 Ne8 10. Be3 0-1\r
+\r
+[Event "?"]\r
+[Site "?"]\r
+[Date "????.??.??"]\r
+[Round "?"]\r
+[White "English c4/e5"]\r
+[Black "?"]\r
+[Result "0-1"]\r
+[ECO "A25"]\r
+[PlyCount "15"]\r
+\r
+1. c4 e5 2. Nc3 Nc6 3. g3 g6 4. Bg2 Bg7 5. e3 Nge7 6. Nge2 O-O 7. O-O d6 8. d3\r
+0-1\r
+\r
+[Event "?"]\r
+[Site "?"]\r
+[Date "????.??.??"]\r
+[Round "?"]\r
+[White "Size pawn chase"]\r
+[Black "?"]\r
+[Result "1-0"]\r
+[ECO "B97"]\r
+[PlyCount "18"]\r
+\r
+1. e4 c5 2. Nf3 d6 3. d4 cxd4 4. Nxd4 Nf6 5. Nc3 a6 6. Bg5 e6 7. f4 Qb6 8. Qd2\r
+Qxb2 9. Rb1 Qa3 1-0\r
+\r
+[Event "?"]\r
+[Site "?"]\r
+[Date "????.??.??"]\r
+[Round "?"]\r
+[White "Sveshnikov"]\r
+[Black "?"]\r
+[Result "*"]\r
+[ECO "B33"]\r
+[PlyCount "26"]\r
+\r
+1. e4 c5 2. Nf3 e6 3. d4 cxd4 4. Nxd4 Nc6 5. Nb5 Nf6 6. N1c3 d6 7. Bf4 e5 8.\r
+Bg5 a6 9. Na3 b5 10. Bxf6 gxf6 11. Nd5 f5 12. c3 Bg7 13. exf5 Bxf5 *\r
+\r
diff --git a/winboard/install/files/root/PSWBTM/start positions/silver.epd b/winboard/install/files/root/PSWBTM/start positions/silver.epd
new file mode 100644 (file)
index 0000000..0e69cbd
--- /dev/null
@@ -0,0 +1,40 @@
+1rbq1rk1/1pp2pbp/p1np1np1/4p3/2PPP3/2N1BP2/PP1Q2PP/R1N1KB1R w KQ e6 fmvn 10; id "Silver Suite - King's Indian, Saemisch : ECO E84";\r
+r1b1k2r/ppppnppp/2n2q2/2b5/3NP3/2P1B3/PP3PPP/RN1QKB1R w KQkq - fmvn 7; id "Silver Suite - Scotch : ECO C45";\r
+r1b1k2r/ppppqppp/2n1pn2/8/1bPP4/5NP1/PP1BPP1P/RN1QKB1R w KQkq - fmvn 6; id "Silver Suite - Bogo-Indian : ECO E11";\r
+r1b1kbnr/1pp2ppp/p1p5/8/3NP3/8/PPP2PPP/RNB1K2R b KQkq - fmvn 7; id "Silver Suite - Spanish, Exchange : ECO C68";\r
+r1b1kbnr/1pqp1ppp/p1n1p3/8/3NP3/2N5/PPP1BPPP/R1BQK2R w KQkq - fmvn 7; id "Silver Suite - Sicilian, Paulsen : ECO B47";\r
+r1b1kbnr/pp3ppp/1qn1p3/3pP3/2pP4/P1P2N2/1P3PPP/RNBQKB1R w KQkq - fmvn 7; id "Silver Suite - French, Advance : ECO C02";\r
+r1bq1rk1/1p2bppp/p1n1pn2/8/P1BP4/2N2N2/1P2QPPP/R1BR2K1 b - - fmvn 11; id "Silver Suite - Queen's Gambit accepted : ECO D27";\r
+r1bq1rk1/pp2bpp1/2n2n1p/3p4/3N4/2N1B1P1/PP2PPBP/R2Q1RK1 b - - fmvn 11; id "Silver Suite - Queen's Gambit, Tarrash : ECO D34";\r
+r1bq1rk1/pp2ppbp/2n3p1/2p5/2BPP3/2P1B3/P3NPPP/R2Q1RK1 b - - fmvn 10; id "Silver Suite - Gruenfeld : ECO D87";\r
+r1bq1rk1/pp3ppp/2n1pn2/2pp4/2PP4/P1PBPN2/5PPP/R1BQ1RK1 b - - fmvn 9; id "Silver Suite - Nimzo-Indian, Rubinstein : ECO E58";\r
+r1bq1rk1/ppp1npbp/3p2p1/3Pp2n/1PP1P3/2N2N2/P3BPPP/R1BQR1K1 b - - fmvn 10; id "Silver Suite - King's Indian, Classical : ECO E99";\r
+r1bq1rk1/pppn1pbp/3p1np1/4p3/2PPP3/2N2NP1/PP3PBP/R1BQ1RK1 b - e3 fmvn 8; id "Silver Suite - King's Indian, Fianchetto : ECO E66";\r
+r1bqk1nr/pp3pbp/2npp1p1/2p5/4PP2/2NP2P1/PPP3BP/R1BQK1NR w KQkq - fmvn 7; id "Silver Suite - Sicilian, Closed : ECO B25";\r
+r1bqk2r/1pp2ppp/pbnp1n2/4p3/PPB1P3/2PP1N2/5PPP/RNBQK2R w KQkq - fmvn 8; id "Silver Suite - Italian : ECO C54";\r
+r1bqk2r/5ppp/p1np1b2/1p1Np3/4P3/N1P5/PP3PPP/R2QKB1R b KQkq - fmvn 11; id "Silver Suite - Sicilian, Sveshnikov : ECO B33";\r
+r1bqkb1r/pp1n1ppp/2n1p3/2ppP3/3P4/2PB4/PP1N1PPP/R1BQK1NR w KQkq - fmvn 7; id "Silver Suite - French, Tarrasch : ECO C05";\r
+r1bqkb1r/pppp1ppp/2n2n2/4p3/2P5/2N2NP1/PP1PPP1P/R1BQKB1R b KQkq - fmvn 4; id "Silver Suite - English, Asymmetric : ECO A29";\r
+r1r3k1/pp1bppbp/3p1np1/q3n3/3NP2P/1BN1BP2/PPPQ2P1/2KR3R w - - fmvn 13; id "Silver Suite - Sicilian, Dragon : ECO B79";\r
+r2q1rk1/1b1nbppp/pp1ppn2/8/2PQP3/1PN2NP1/PB3PBP/R2R2K1 b - e3 fmvn 12; id "Silver Suite - Queen's Indian, hedgehog : ECO A30";\r
+r2qk2r/pp1n1ppp/2p1pn2/5b2/PbBP4/2N1PN2/1P3PPP/R1BQ1RK1 w kq - fmvn 9; id "Silver Suite - Queen's Gambit, Slav : ECO D18";\r
+r2qkb1r/2p2ppp/p1n1b3/1p1pP3/4n3/1B3N2/PPP2PPP/RNBQ1RK1 w kq - fmvn 9; id "Silver Suite - Spanish, Open : ECO C80";\r
+r2qr1k1/1bp1bppp/p1np1n2/1p2p3/3PP3/1BP2N1P/PP1N1PP1/R1BQR1K1 b - - fmvn 11; id "Silver Suite - Spanish, Closed - Zaitsev : ECO C92";\r
+r3k2r/pp2bppp/2nqpn2/7b/3P4/2N1BN1P/PP2BPP1/R2Q1RK1 w kq - fmvn 12; id "Silver Suite - Sicilian, 2.c3 : ECO B22";\r
+rn1q1rk1/pbp2pp1/1p2pn1p/3p4/2PP3B/P1Q2P2/1P2P1PP/R3KBNR w KQ d6 fmvn 10; id "Silver Suite - Nimzo-Indian, 4.Qc2 : ECO E32";\r
+rn1q1rk1/ppp1ppbp/3p1np1/8/3PP1b1/2N2N2/PPP1BPPP/R1BQ1RK1 w - - fmvn 7; id "Silver Suite - Pirc, 4.Nf3 : ECO B08";\r
+rn1qk2r/p3bppp/bpp1pn2/3p4/2PP4/1PB2NP1/P3PPBP/RN1QK2R w KQkq d6 fmvn 9; id "Silver Suite - Queen's Indian : ECO E15";\r
+rn1qk2r/ppp1bppp/1n1pp3/4P2b/2PP4/5N1P/PP2BPP1/RNBQ1RK1 w kq - fmvn 9; id "Silver Suite - Alekhine, Modern : ECO B05";\r
+rn1qkb1r/3ppp1p/b4np1/2pP4/8/2N5/PP2PPPP/R1BQKBNR w KQkq - fmvn 7; id "Silver Suite - Benko Gambit : ECO A58";\r
+rn1qkbnr/pp3ppp/2p1p3/3pPb2/3P4/5N2/PPP1BPPP/RNBQK2R b KQkq - fmvn 5; id "Silver Suite - Caro-Kann, Advance : ECO B12";\r
+rn2kb1r/pp2pppp/2p2n2/q4b2/2BP4/2N2N2/PPP2PPP/R1BQK2R w KQkq - fmvn 7; id "Silver Suite - Scandinavian : ECO B01";\r
+rnb1qrk1/ppp1p1bp/3p1np1/3P1p2/2P5/2N2NP1/PP2PPBP/R1BQ1RK1 b - - fmvn 8; id "Silver Suite - Dutch, Leningrad : ECO A87";\r
+rnb2rk1/1pq1bppp/p2ppn2/8/3NPP2/2N1B3/PPP1B1PP/R2Q1RK1 w - - fmvn 10; id "Silver Suite - Sicilian, Scheveningen : ECO B84";\r
+rnbq1rk1/p1p1bpp1/1p2pn1p/3p4/2PP3B/2N1PN2/PP3PPP/R2QKB1R w KQ - fmvn 8; id "Silver Suite - Queen's Gambit declined, Tartakower : ECO D58";\r
+rnbq1rk1/pp3pbp/3p1np1/2pP4/4P3/2N2N2/PP2BPPP/R1BQ1RK1 b - - fmvn 9; id "Silver Suite - Benoni, Modern : ECO A73";\r
+rnbq1rk1/ppp1ppbp/3p1np1/8/3PPP2/2NB1N2/PPP3PP/R1BQK2R b KQ - fmvn 6; id "Silver Suite - Pirc, Austrian attack : ECO B09";\r
+rnbq1rk1/ppp1ppbp/3p1np1/8/8/3P1NP1/PPP1PPBP/RNBQ1RK1 w - - fmvn 6; id "Silver Suite - Reti Opening : ECO A05";\r
+rnbqk2r/pp2nppp/4p3/2ppP3/3P4/P1P2N2/2P2PPP/R1BQKB1R b KQkq - fmvn 7; id "Silver Suite - French, Winawer : ECO C19";\r
+rnbqk2r/ppp1bppp/3p1n2/8/3NP3/2N5/PPP2PPP/R1BQKB1R w KQkq - fmvn 6; id "Silver Suite - Philidor's Defense : ECO C41";\r
+rnbqkb1r/pp3ppp/4pn2/2pp4/3P4/2PBPN2/PP3PPP/RNBQK2R b KQkq - fmvn 5; id "Silver Suite - Colle system : ECO D05";\r
+rnbqkb1r/ppp1pppp/5n2/3p4/5P2/1P3N2/P1PPP1PP/RNBQKB1R b KQkq - fmvn 3; id "Silver Suite - Bird's Opening : ECO A03";\r
diff --git a/winboard/install/files/root/Pulsar/atomicBookBlack.txt b/winboard/install/files/root/Pulsar/atomicBookBlack.txt
new file mode 100644 (file)
index 0000000..be618af
--- /dev/null
@@ -0,0 +1,33 @@
+g1f3f7f6f3d4g8h6f2f3c7c6e2e4b1c3\r
+g1f3f7f6f3d4g8h6h2h3c7c6b1c3b7b5e2e4e7e5\r
+g1f3f7f6f3d4g8h6d4f5h6f5d2d4\r
+g1f3f7f6f3d4g8h6d4f5h6f5b1c3c7c6d2d4e7e6e2e4h7h5c3b5c6b5f1b5b8c6c2c3g7g6\r
+e2e3e7e6d1f3f7f5f3b7d8h4g2g3h4b4c2c3b4b2\r
+g1f3f7f6e2e3d7d5b1c3b7b5f3g5f6g5d1h5g7g6h5e5e7e6e5c7g8f6f2f3f8h6\r
+g1f3f7f6e2e3d7d5b1c3b7b5f1d3g7g6f3d4\r
+g1f3f7f6f3d4g8h6e2e3h6g4f2f4c7c6d4b5c6b5b1c3d7d5c3b5d8a5b2b4a5b4f1b5b8c6\r
+g1f3f7f6f3d4g8h6e2e3h6g4f2f4c7c6d4f5e7e6f5g7h7h5\r
+b1c3g8f6e2e4e7e6\r
+g1f3f7f6f3d4g8h6d4f5h6f5d2d4c7c6b1c3d7d5e2e4b7b5h2h3h7h5\r
+g1f3f7f6f3d4g8h6d4f5h6f5b1c3c7c6d2d4d7d5e2e4b7b5h2h3h7h5\r
+g1f3f7f6f3d4g8h6d4f5h6f5d2d4e7e6b1c3f8b4e2e4h7h5f2f4d7d5\r
+g1h3f7f6b1c3g8h6c3d5e7e6c2c3h6g4f2f3f8c5\r
+g1f3f7f6e2e4d7d5b1c3b7b5d2d4c8g4e4d5e7e5\r
+g1f3f7f6e2e4d7d5b1c3b7b5f3g5f6g5d2d4\r
+g1f3f7f6e2e4d7d5d2d4c8g4e4d5e7e6\r
+g1f3f7f6f3d4g8h6d4f5h6f5b1c3c7c6c3d5c6d5e2e4d7d6f1b5b8c6d2d4h7h5\r
+g1f3f7f6f3d4g8h6h2h3b8c6d4b5c6d4b5d4\r
+g1f3f7f6f3d4g8h6d4f5h6f5b1c3c7c6d2d4e7e6e2e4h7h5f2f4f8b4f4f5d7d5h2h4g7g5\r
+g1f3f7f6b1c3c7c6e2e4e7e6\r
+b1c3g8f6e2e4e7e6c3b5f6g4f2f4d8f6\r
+e2e3e7e6g1f3d8f6f1d3f8b4c2c3b4c3b1c3g8h6g2g4h6g4d1f3\r
+e2e3e7e6g1f3d8f6b1c3g8h6g2g4h6g4d1f3\r
+e2e4e7e6d1f3f7f5e4f5f8b4b1c3g8f6\r
+g1h3h7h6b1c3e7e6e2e3f8b4\r
+g1h3h7h6h3f4d7d5f4h5d5d4\r
+g1h3h7h6e2e3e7e6h3f4g7g6f4h5f8b4\r
+e2e3e7e6g1h3h7h6h3f4g7g6f4h5f8b4\r
+g1h3h7h6e2e4e7e6b1a3b7b5d2d4d7d5c2c3f8e7g2g3e7h4h3g5h4g5\r
+g1h3h7h6e2e4e7e6d2d4d7d5b1a3b7b5c2c3f8e7g2g3e7h4h3g5h4g5\r
+g1h3h7h6b1c3e7e6c3b5d8h4g2g3h4e4e2e3a7a6b5c7e4c2f1g2d7d5\r
+$
\ No newline at end of file
diff --git a/winboard/install/files/root/Pulsar/atomicBookWhite.txt b/winboard/install/files/root/Pulsar/atomicBookWhite.txt
new file mode 100644 (file)
index 0000000..d99483f
--- /dev/null
@@ -0,0 +1,30 @@
+g1f3f7f6f3d4g8h6h2h3c7c6b1c3b7b5e2e4e7e5\r
+g1f3f7f6f3d4g8h6d4f5h6f5d2d4\r
+g1f3f7f6f3d4g8h6d4f5h6f5b1c3c7c6d2d4e7e6e2e4h7h5c3b5c6b5f1b5b8c6c2c3g7g6\r
+e2e3e7e6d1f3f7f5f3b7d8h4g2g3h4b4c2c3b4b2\r
+g1f3f7f6e2e3d7d5b1c3b7b5f1d3g7g6f3d4\r
+g1f3f7f6f3d4g8h6e2e3h6g4f2f4c7c6d4b5c6b5b1c3\r
+g1f3f7f6f3d4g8h6e2e3h6g4f2f4c7c6d4f5e7e6f5g7h7h5\r
+b1c3g8f6e2e4e7e6\r
+g1f3f7f6f3d4g8h6d4f5h6f5d2d4c7c6b1c3d7d5e2e4b7b5h2h3h7h5\r
+g1f3f7f6f3d4g8h6d4f5h6f5b1c3c7c6d2d4d7d5e2e4b7b5h2h3h7h5\r
+g1f3f7f6f3d4g8h6d4f5h6f5d2d4e7e6b1c3f8b4e2e4h7h5f2f4d7d5\r
+g1f3f7f6e2e4d7d5b1c3b7b5d2d4c8g4e4d5e7e5\r
+g1f3f7f6e2e4d7d5b1c3b7b5f3g5f6g5d2d4\r
+g1h3f7f6e2e4d7d5b1a3b7b5d2d4g8h6c1h6c8g4f2f3g4h3c2c3e7e6e4d5g7g6d4d5f8h6d5d6\r
+g1h3f7f6e2e4d7d5b1a3b7b5d2d4g8h6c1h6c8g4f2f3g4h3c2c3h7h5e4d5e7e6d4d5f8d6f1d3g7g6f3f4\r
+g1h3f7f6e2e4d7d5b1a3b7b5d2d4g8h6c1h6c8g4f2f3g4h3e4d5e7e6d4d5f8d6f3f4h7h5g2g3\r
+g1f3f7f6e2e4d7d5d2d4c8g4e4d5e7e6\r
+g1f3f7f6e2e4d7d5b1c3c7c6c3b5c6b5f1b5b8c6d2d4d5e4d1h5g7g6h5d5d8a5c2c3\r
+g1f3f7f6e2e4d7d5b1c3c7c6c3b5c6b5f1b5b8c6d2d4\r
+g1h3f7f6e2e4d7d5b1a3c7c6a3b5c6b5f1b5b8c6d2d4\r
+g1h3f7f6e2e4d7d5b1a3b7b5d2d4g8h6c1h6c8g4f2f3g4h3c2c3e7e5e4d5c7c5a3c4\r
+e2e4e7e5d1h5g7g6h5h3\r
+g1f3f7f6f3d4g8h6d4f5h6f5b1c3c7c6c3d5c6d5e2e4d7d6f1b5b8c6d2d4h7h5\r
+g1f3f7f6f3d4g8h6h2h3b8c6d4b5c6d4b5d4\r
+g1f3f7f6f3d4g8h6d4f5h6f5b1c3c7c6d2d4e7e6e2e4h7h5f2f4f8b4f4f5d7d5h2h4g7g5\r
+g1f3f7f6f3d4g8h6e2e3c7c6b1c3d7d6c3b5c6b5f1b5b8c6d1h5g7g6h5d5e7e6d5d6\r
+e2e3e7e6g1f3f7f6f3d4c7c6b1c3b7b5d4f5e6f5c3d5\r
+b1c3g8f6e2e4e7e6c3b5f6g4f2f4d8f6\r
+g1h3f7f6e2e4d7d5b1a3b7b5d2d4g8h6c1h6c8g4f2f3g4h3c2c3g7g6h2h4e7e6\r
+$
\ No newline at end of file
diff --git a/winboard/install/files/root/Pulsar/bigbook.txt b/winboard/install/files/root/Pulsar/bigbook.txt
new file mode 100644 (file)
index 0000000..df90200
--- /dev/null
@@ -0,0 +1,3560 @@
+b1c3g8f6d2d4d7d6c1g5b8d7e2e4g7g6f2f4h7h6g5h4f6h5g1e2g6g5f4g5e7e6e2g3h5f4\r
+b1c3g8f6d2d4d7d6e2e4g7g6f1c4f8g7f2f4c7c5d4c5d8a5c1d2a5c5d1e2e8g8e1c1c8g4g1f3b8d7\r
+b1c3g8f6e2e4d7d6d2d4g7g6f1c4f8g7g1f3e8g8e4e5d6e5d4e5d8d1c3d1f6g4c1f4b8c6e5e6c8e6\r
+b1c3g8f6g1f3g7g6d2d4d7d6e2e4f8g7f1e2e8g8h2h3c7c5d4c5d8a5e1g1a5c5c1e3c5a5f3d4a7a6\r
+b1c3g8f6g1f3g7g6e2e4d7d6d2d4f8g7f1e2e8g8c1f4b8c6d4d5e7e5f4g5c6e7d1d2f6h5e1c1\r
+b2b3e7e5c1b2b8c6c2c4g8f6b1c3d7d5c4d5f6d5g1f3d5c3b2c3f8d6d2d3e8g8e2e3d8e7f1e2c8d7\r
+b2b3e7e5c1b2b8c6c2c4g8f6e2e3d7d5c4d5f6d5g1f3f8d6d2d3e8g8a2a3d8e7\r
+b2b3e7e5c1b2b8c6c2c4g8f6g1f3e5e4f3d4f8c5\r
+b2b3e7e5c1b2b8c6e2e3d7d5f1b5f8d6b1c3g8f6d2d4e8g8d4e5c6d5\r
+b2b3e7e5c1b2b8c6e2e3d7d5f1b5f8d6f2f4d8h4g2g3h4e7g1f3c8g4\r
+b2b3e7e5c1b2b8c6g1f3e5e4f3d4c6d4b2d4g8f6e2e3d7d5\r
+b2b4e7e5c1b2f7f6b4b5d7d5e2e3c8e6g1f3c7c5c2c4d5d4d2d3g8h6e3e4g7g6g2g3d8c8f1g2e6h3\r
+b2b4e7e5c1b2f7f6e2e4f8b4f1c4g8e7d1h5g7g6h5h4e7c6f2f4d8e7a2a3b4a5g1e2\r
+b2b4e7e5c1b2f7f6e2e4f8b4f1c4g8e7d1h5g7g6h5h4e7c6f2f4d8e7f4f5g6f5h4h5e8d8\r
+b2b4e7e5c1b2f7f6e2e4f8b4f1c4g8e7f2f4d7d5e4d5e5f4d1f3b4d6g1e2e7g6d2d4d8e7b2c1c8f5\r
+b2b4e7e5c1b2f7f6e2e4f8b4f1c4g8e7f2f4d7d5e4d5e5f4d1f3b4d6g1e2e7g6d2d4e8g8b2c1c8f5\r
+b2b4e7e5c1b2f8b4b2e5g8f6c2c4e8g8e2e3d7d5c4d5f6d5g1f3f8e8e5b2c1f5\r
+c2c4b7b6b1c3c7c5g1f3c8b7d2d4c5d4f3d4g8f6f2f3b8c6e2e4e7e6c1e3f8c5d1d2e8g8e1c1d8e7\r
+c2c4b7b6b1c3e7e6g1f3c8b7g2g3f7f5f1g2g8f6e1g1f8b4d1b3b4c3b3c3e8g8b2b4a7a5b4b5d8e7\r
+c2c4b7b6e2e4c8b7b1c3e7e5d2d3b8c6g2g3f8c5f1g2g8e7g1f3e8g8e1g1a7a5c1e3d7d6d3d4e5d4\r
+c2c4b8c6g2g3e7e5f1g2g7g6b1c3f8g7e2e3d7d6g1e2g8e7a1b1a7a5a2a3c8e6c3d5e7f5b2b4a5b4\r
+c2c4c7c5b1c3b8c6g1f3e7e5e2e3g8f6d2d4e5d4e3d4c5d4f3d4f8e7d4c6d7c6f1e2d8d1e2d1c8f5\r
+c2c4c7c5b1c3b8c6g1f3g7g6e2e3g8f6d2d4c5d4e3d4d7d5c4d5f6d5d1b3d5c3f1c4e7e6b2c3f8g7\r
+c2c4c7c5b1c3b8c6g1f3g8f6g2g3g7g6f1g2f8g7e1g1e8g8d2d4c5d4f3d4c6d4d1d4d7d6c1g5c8e6\r
+c2c4c7c5b1c3g8f6e2e4b8c6g1f3e7e6d2d3d7d6f1e2f8e7e1g1e8g8d3d4c5d4f3d4d8c7d4b5c7b8\r
+c2c4c7c5b1c3g8f6g2g3d7d5c4d5f6d5f1g2e7e6c3d5e6d5d1b3b8c6b3d5d8d5g2d5c6b4d5e4f7f5\r
+c2c4c7c5g1f3b8c6b1c3g8f6e2e3e7e6d2d4d7d5a2a3a7a6b2b3c5d4e3d4f8e7c4c5b7b6c5b6f6d7\r
+c2c4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d5c4d5f6d5d4c6b7c6c1d2e7e6g2g3f8e7f1g2e8g8\r
+c2c4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3e7e6c1f4f8b4d4b5e8g8f4c7d8e7c7d6b4d6d1d6e7d8\r
+c2c4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3e7e6d4b5f8b4c1f4e8g8f4c7d8e7c7d6b4d6d1d6e7d8\r
+c2c4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3e7e6d4b5f8b4c1f4e8g8f4d6b4d6b5d6d8b6d1d2f6e8\r
+c2c4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3e7e6d4b5f8b4c1f4e8g8f4d6b4d6b5d6f6e8a2a3b7b6\r
+c2c4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3e7e6d4b5f8b4c1f4e8g8f4d6b4d6b5d6f6e8d1d2e8d6\r
+c2c4c7c5g1f3b8c6g2g3g7g6f1g2f8g7b1c3d7d6e1g1g8h6a2a3e8g8a1b1a8b8b2b4h6f5e2e3c8d7\r
+c2c4c7c5g1f3f7f5d2d4c5d4f3d4g7g6g2g3f8g7f1g2b8c6d4b5g8f6b5c3e8g8e1g1b7b6b2b3c8b7\r
+c2c4c7c5g1f3g7g6d2d4c5d4f3d4b8c6e2e4g8f6b1c3d7d6f1e2c6d4d1d4f8g7c1g5h7h6g5e3e8g8\r
+c2c4c7c5g1f3g7g6d2d4c5d4f3d4b8c6e2e4g8f6b1c3d7d6f2f3c6d4d1d4f8g7c1e3e8g8d4d2d8a5\r
+c2c4c7c5g1f3g7g6d2d4c5d4f3d4f8g7e2e4b8c6c1e3g8f6b1c3f6g4d1g4c6d4g4d1d4e6a1c1e8g8\r
+c2c4c7c5g1f3g7g6d2d4c5d4f3d4f8g7e2e4g8f6b1c3b8c6c1e3f6g4d1g4c6d4g4d1d4e6d1d2d7d6\r
+c2c4c7c5g1f3g7g6e2e4b8c6d2d4c5d4f3d4g8f6b1c3c6d4d1d4d7d6f1e2f8g7e1g1e8g8d4e3c8e6\r
+c2c4c7c5g1f3g8f6b1c3b7b6e2e4b8c6d2d4c5d4f3d4c8b7c1g5d8b8d4c6b7c6f1d3e7e6e1g1f8b4\r
+c2c4c7c5g1f3g8f6b1c3b8c6d2d4c5d4f3d4e7e6d4b5d7d5c1f4e6e5c4d5e5f4d5c6b7c6d1d8e8d8\r
+c2c4c7c5g1f3g8f6b1c3b8c6d2d4c5d4f3d4e7e6d4b5d7d5c1f4e6e5c4d5e5f4d5c6b7c6d1d8e8d8\r
+c2c4c7c5g1f3g8f6b1c3b8c6d2d4c5d4f3d4e7e6d4b5d7d5c1f4e6e5c4d5e5f4d5c6b7c6d1d8e8d8\r
+c2c4c7c5g1f3g8f6b1c3b8c6d2d4c5d4f3d4e7e6d4b5d7d5c4d5f6d5e2e4d5c3d1d8e8d8b5c3f8c5\r
+c2c4c7c5g1f3g8f6b1c3b8c6d2d4c5d4f3d4e7e6e2e3f8e7f1e2e8g8e1g1d7d6b2b3a7a6c1b2c8d7\r
+c2c4c7c5g1f3g8f6b1c3b8c6d2d4c5d4f3d4e7e6g2g3d8b6d4b3c6e5e2e4f8b4d1e2e8g8f2f4e5c6\r
+c2c4c7c5g1f3g8f6b1c3b8c6d2d4c5d4f3d4e7e6g2g3d8b6d4b3c6e5e2e4f8b4d1e2e8g8f2f4e5c6\r
+c2c4c7c5g1f3g8f6b1c3b8c6d2d4c5d4f3d4e7e6g2g3d8b6d4b3f8b4f1g2b6a6b3d2b4c3b2c3e8g8\r
+c2c4c7c5g1f3g8f6b1c3b8c6d2d4c5d4f3d4e7e6g2g3f8c5d4b3c5b4f1g2d7d5c4d5f6d5a2a3b4c3\r
+c2c4c7c5g1f3g8f6b1c3d7d5c4d5f6d5d2d4d5c3b2c3g7g6e2e3f8g7f1d3e8g8e1g1d8c7a1b1b7b6\r
+c2c4c7c5g1f3g8f6b1c3d7d5c4d5f6d5e2e4d5b4f1c4b4d3e1e2d3f4e2f1f4e6b2b4c5b4c3d5g7g6\r
+c2c4c7c5g1f3g8f6b1c3e7e6e2e3b8c6d2d4d7d5c4d5e6d5f1b5f8d6d4c5d6c5e1g1e8g8b2b3c8g4\r
+c2c4c7c5g1f3g8f6b1c3e7e6e2e3b8c6d2d4d7d5c4d5e6d5f1b5f8d6f3e5d8c7e5c6b7c6d4c5d6c5\r
+c2c4c7c5g1f3g8f6b1c3e7e6e2e3d7d5d2d4b8c6c4d5e6d5f1b5f8d6d4c5d6c5e1g1e8g8b2b3c8e6\r
+c2c4c7c5g1f3g8f6b1c3e7e6g2g3b7b6f1g2c8b7e1g1f8e7b2b3e8g8c1b2d7d5c4d5f6d5d1c2b8c6\r
+c2c4c7c5g1f3g8f6b1c3e7e6g2g3b7b6f1g2c8b7e1g1f8e7d2d4c5d4d1d4b8c6d4f4e8g8f1d1d8b8\r
+c2c4c7c5g1f3g8f6b1c3e7e6g2g3b7b6f1g2c8b7e1g1f8e7d2d4c5d4d1d4e8g8f1d1b8c6d4f4e7b4\r
+c2c4c7c5g1f3g8f6b1c3e7e6g2g3b7b6f1g2c8b7e1g1f8e7f1e1d7d5c4d5f6d5e2e4d5b4d2d4c5d4\r
+c2c4c7c5g1f3g8f6b1c3e7e6g2g3b8c6f1g2d7d5c4d5f6d5e1g1f8e7d2d4e8g8c3d5e6d5d4c5e7c5\r
+c2c4c7c5g1f3g8f6b1c3e7e6g2g3b8c6f1g2d7d5c4d5f6d5e1g1f8e7d2d4e8g8e2e4d5b4a2a3c5d4\r
+c2c4c7c5g1f3g8f6b1c3e7e6g2g3b8c6f1g2d7d5c4d5f6d5e1g1f8e7d2d4e8g8e2e4d5c3b2c3c5d4\r
+c2c4c7c5g1f3g8f6b1c3e7e6g2g3d7d5c4d5f6d5f1g2b8c6e1g1f8e7d2d4e8g8c3d5e6d5d4c5e7c5\r
+c2c4c7c5g1f3g8f6b2b3g7g6c1b2f8g7e2e3e8g8f1e2b8c6e1g1b7b6d2d4c5d4f3d4c8b7e2f3d7d5\r
+c2c4c7c5g1f3g8f6d2d4c5d4f3d4e7e6g2g3d7d5f1g2e6e5d4c2d5d4e1g1b8c6b1d2c8g4d2f3a7a5\r
+c2c4c7c5g1f3g8f6d2d4c5d4f3d4g7g6b1c3d7d5c1g5d5c4e2e3d8a5g5f6e7f6f1c4f8b4a1c1a7a6\r
+c2c4c7c5g1f3g8f6g2g3b7b6f1g2c8b7e1g1e7e6b2b3f8e7c1b2e8g8b1c3d7d5e2e3b8d7d1e2d8c7\r
+c2c4c7c5g1f3g8f6g2g3b7b6f1g2c8b7e1g1e7e6b2b3f8e7c1b2e8g8e2e3d7d5d1e2b8c6f1d1a8c8\r
+c2c4c7c5g1f3g8f6g2g3b7b6f1g2c8b7e1g1g7g6d2d4c5d4d1d4f8g7b1c3b8c6d4h4h7h6c3d5e7e6\r
+c2c4c7c5g1f3g8f6g2g3g7g6f1g2f8g7e1g1e8g8d2d4c5d4f3d4b8c6b1c3d7d6d4c2h7h5c1g5c8e6\r
+c2c4c7c5g2g3b8c6f1g2g8f6g1f3e7e6e1g1d7d5c4d5e6d5d2d4f8e7b1c3e8g8c1f4c5d4f3d4d8b6\r
+c2c4c7c5g2g3b8c6g1f3e7e5b1c3g7g6f1g2f8g7e1g1g8e7f3e1d7d6e1c2c8e6d2d3d6d5b2b3e8g8\r
+c2c4c7c5g2g3b8c6g1f3g7g6d2d4c5d4f3d4f8g7d4c2g8f6f1g2e8g8b1c3d7d6e1g1c8d7b2b3d8c8\r
+c2c4c7c5g2g3g7g6f1g2f8g7b1c3b8c6a2a3a7a6a1b1a8b8b2b4c5b4a3b4b7b5c4b5a6b5g1f3d7d5\r
+c2c4c7c5g2g3g7g6f1g2f8g7b1c3b8c6a2a3d7d6e2e3g8f6g1e2e8g8e1g1c8f5e3e4f5g4f2f3g4d7\r
+c2c4c7c5g2g3g7g6f1g2f8g7b1c3b8c6e2e4e7e5g1e2g8e7a2a3d7d6a1b1a7a5e1g1e8g8d2d3a8b8\r
+c2c4c7c5g2g3g7g6f1g2f8g7b1c3g8f6b2b3e8g8c1b2b8c6g1f3e7e5e1g1d7d6d2d3h7h6e2e3c8e6\r
+c2c4c7c6d2d4d7d5b1c3g8f6e2e3a7a6g1f3b7b5b2b3c8g4f1e2e7e6f3e5g4e2d1e2f8e7e1g1e8g8\r
+c2c4c7c6d2d4d7d5b1c3g8f6e2e3a7a6g1f3b7b5b2b3c8g4f1e2e7e6h2h3g4f3e2f3f8e7e1g1e8g8\r
+c2c4c7c6d2d4d7d5b1c3g8f6g1f3e7e6e2e3b8d7d1c2b7b6f1d3c8b7e1g1f8e7b2b3d8c7c1b2a8d8\r
+c2c4c7c6d2d4d7d5b1c3g8f6g1f3e7e6e2e3b8d7d1c2b7b6f1d3c8b7e1g1f8e7b2b3d8c7c1b2h7h6\r
+c2c4c7c6d2d4d7d5c4d5c6d5c1f4b8c6e2e3g8f6b1c3a7a6f1d3c8g4g1e2e7e6e1g1f8d6f2f3\r
+c2c4c7c6d2d4d7d5e2e3e7e6b1c3f7f5g1f3f8d6f1d3g8h6f3e5d8h4g2g3h4f6f2f4d6e5d4e5f6e7\r
+c2c4c7c6d2d4d7d5g1f3g8f6b1c3d5c4a2a4c8f5e2e3e7e6f1c4f8b4e1g1e8g8d1e2b8d7e3e4f5g6\r
+c2c4c7c6d2d4d7d5g1f3g8f6b1c3e7e6c1g5d5c4e2e4b7b5e4e5h7h6g5h4g7g5f3g5h6g5h4g5b8d7\r
+c2c4c7c6e2e4d7d5e4d5c6d5d2d4g8f6b1c3e7e6g1f3f8b4f1d3d5c4d3c4e8g8e1g1b7b6c1g5c8b7\r
+c2c4c7c6g1f3d7d5b2b3c8g4e2e3b8d7c1b2e7e6f1e2g8f6e1g1f8d6d2d3e8g8d1c2d8e7f1d1e6e5\r
+c2c4c7c6g1f3d7d5d2d4g8f6b1c3e7e6e2e3b8d7f1d3d5c4d3c4b7b5c4e2b5b4c3a4c8b7e1g1f8e7\r
+c2c4c7c6g1f3d7d5e2e3g8f6b1c3a7a6h2h3b7b5b2b3b8d7d2d4e7e6f1d3f8b4c1d2b5c4b3c4d5c4\r
+c2c4c7c6g1f3d7d5e2e3g8f6b1c3e7e6b2b3b8d7c1b2e6e5d2d4e5e4f3d2f8e7a2a3e8g8b3b4f8e8\r
+c2c4c7c6g1f3d7d5e2e3g8f6b1c3e7e6b2b3b8d7c1b2f8e7d2d4e8g8f1d3b7b6e1g1c8b7d1e2d8c7\r
+c2c4e7e5a2a3g8f6d2d3c7c6g1f3g7g6b1c3d7d6g2g3f8g7f1g2e8g8e1g1d8e7e2e4h7h6d3d4c8g4\r
+c2c4e7e5b1c3b8c6g1f3f7f5d2d4e5e4f3d2g8f6e2e3g7g6a2a3f8g7b2b4e8g8g2g3d7d6d2b3d8e7\r
+c2c4e7e5b1c3b8c6g1f3g8f6g2g3c6d4f1g2d4f3g2f3f8c5e1g1e8g8e2e3c5b4f3g2b4c3b2c3c7c6\r
+c2c4e7e5b1c3b8c6g2g3g7g6f1g2d7d6a1b1c8f5d2d3d8d7b2b4f8g7b4b5c6d8c3d5c7c6b5c6b7c6\r
+c2c4e7e5b1c3b8c6g2g3g7g6f1g2f8g7e2e3d7d6g1e2f7f5d2d4e5e4b2b4g8f6a1b1c6e7f2f3e4f3\r
+c2c4e7e5b1c3b8c6g2g3g7g6f1g2f8g7e2e3d7d6g1e2g8f6e1g1e8g8d2d3c8e6c3d5d8d7f1e1a8b8\r
+c2c4e7e5b1c3b8c6g2g3g7g6f1g2f8g7e2e3g8e7g1e2e8g8e1g1d7d6a2a3c8e6c3d5d8d7d2d3e7f5\r
+c2c4e7e5b1c3b8c6g2g3g7g6f1g2f8g7e2e4d7d6g1e2g8e7d2d3e8g8e1g1c8e6h2h3d8d7g1h2f7f5\r
+c2c4e7e5b1c3d7d6d2d4e5d4d1d4b8c6d4d2g8f6b2b3a7a5e2e4a5a4a1b1a4b3a2b3g7g6g2g3f8g7\r
+c2c4e7e5b1c3d7d6g1f3c8g4e2e3g8f6f1e2c7c6h2h3g4h5e1g1f8e7d2d3e8g8b2b3b8d7f3h4h5e2\r
+c2c4e7e5b1c3d7d6g1f3c8g4e2e3g8f6f1e2f8e7h2h3g4h5d2d4b8d7e1g1c7c6b2b3e8g8c1b2f8e8\r
+c2c4e7e5b1c3d7d6g1f3c8g4e2e3g8f6h2h3g4f3d1f3c7c6d2d4f8e7d4d5e8g8f1d3b8a6e1g1c6d5\r
+c2c4e7e5b1c3d7d6g1f3f7f5d2d4e5e4f3d2c7c6e2e3g8f6f1e2g7g6e1g1f8h6b2b4e8g8b4b5f8e8\r
+c2c4e7e5b1c3d7d6g1f3f7f5d2d4e5e4f3g5f8e7g5h3c7c5d4c5d6c5d1d8e7d8c3b5d8a5c1d2a5d2\r
+c2c4e7e5b1c3d7d6g1f3g7g6d2d4b8d7g2g3f8g7f1g2g8h6e1g1e8g8e2e4c7c6b2b3f8e8c1b2f7f6\r
+c2c4e7e5b1c3d7d6g2g3b8c6f1g2g7g6d2d3f8g7c1d2g8e7g1f3e8g8e1g1c8d7a1b1d8c8b2b4d7h3\r
+c2c4e7e5b1c3d7d6g2g3c7c5f1g2b8c6a2a3g7g6b2b4f8g7a1b1g8e7e2e3e8g8d2d3a8b8g1e2c8e6\r
+c2c4e7e5b1c3d7d6g2g3c8e6f1g2c7c6d2d3g8f6g1f3h7h6e1g1f8e7b2b3e8g8e2e4c6c5f3h4b8c6\r
+c2c4e7e5b1c3d7d6g2g3f7f5f1g2b8c6d2d3g8f6e2e3f8e7g1e2e8g8e1g1d8e8f2f4e7d8a2a3a8b8\r
+c2c4e7e5b1c3d7d6g2g3g7g6d2d4b8c6d4d5c6e7e2e4f8g7h2h4g8f6f1e2h7h5g1h3c7c5h3g5c8d7\r
+c2c4e7e5b1c3d7d6g2g3g7g6d2d4b8d7f1g2f8g7g1f3g8h6c4c5e8g8c5d6c7d6e2e4e5d4f3d4d7c5\r
+c2c4e7e5b1c3d7d6g2g3g7g6f1g2f8g7d2d3b8c6e2e4g8e7g1e2e8g8e1g1c8e6c3d5d8d7c1e3f7f5\r
+c2c4e7e5b1c3d7d6g2g3g7g6f1g2f8g7g1f3g8h6d2d4b8d7e1g1e8g8e2e4c7c6b2b3f8e8h2h3f7f6\r
+c2c4e7e5b1c3g8f6g1f3b8c6d2d4e5d4f3d4f8b4c1g5h7h6g5h4e8g8e2e3f8e8f1e2c6e5d1b3b4a5\r
+c2c4e7e5b1c3g8f6g1f3b8c6d2d4e5e4f3e5f8b4c1g5h7h6g5h4d8e7e5c6b7c6e2e3e8g8f1e2d7d6\r
+c2c4e7e5b1c3g8f6g1f3b8c6e2e3f8b4c3d5b4e7d1c2d7d6b2b4c8e6d5e7c6e7c1b2e6f5d2d3e8g8\r
+c2c4e7e5b1c3g8f6g1f3b8c6g2g3c6d4f1g2d4f3g2f3f8b4d1b3b4c5d2d3e8g8e1g1c7c6f3g2f8e8\r
+c2c4e7e5b1c3g8f6g1f3b8c6g2g3d7d5c4d5f6d5f1g2d5b6e1g1f8e7a2a3e8g8b2b4f8e8d2d3e7f8\r
+c2c4e7e5b1c3g8f6g1f3b8c6g2g3d7d5c4d5f6d5f1g2d5b6e1g1f8e7d2d3e8g8a2a3c8e6c1e3f7f5\r
+c2c4e7e5b1c3g8f6g1f3b8c6g2g3f8b4f1g2e8g8e1g1b4c3b2c3d7d6d2d3e5e4f3d4e4d3d4c6d3e2\r
+c2c4e7e5b1c3g8f6g1f3b8c6g2g3f8b4f1g2e8g8e1g1e5e4f3e1b4c3d2c3d7d6e1c2f8e8c2e3h7h6\r
+c2c4e7e5b1c3g8f6g1f3b8c6g2g3f8b4f1g2e8g8e1g1e5e4f3e1b4c3d2c3h7h6e1c2f8e8c2e3d7d6\r
+c2c4e7e5b1c3g8f6g1f3b8c6g2g3f8b4f1g2e8g8e1g1e5e4f3g5b4c3b2c3f8e8f2f3e4e3d2d3d7d5\r
+c2c4e7e5b1c3g8f6g1f3b8c6g2g3f8b4f1g2e8g8e1g1f8e8c3d5f6d5c4d5c6d4f3d4e5d4e2e3c7c5\r
+c2c4e7e5b1c3g8f6g1f3b8c6g2g3f8b4f1g2e8g8e1g1f8e8d2d3b4c3b2c3e5e4f3d4h7h6d3e4f6e4\r
+c2c4e7e5b1c3g8f6g1f3b8c6g2g3f8b4f1g2e8g8e1g1f8e8d2d3h7h6c3d5b4f8h2h3d7d6e2e4c6d4\r
+c2c4e7e5b1c3g8f6g1f3b8c6g2g3f8c5f1g2d7d6d2d3a7a6c1g5h7h6g5f6d8f6e1g1f6d8a2a3c6d4\r
+c2c4e7e5b1c3g8f6g1f3b8c6g2g3f8c5f1g2e8g8e1g1d7d6d2d3c8e6a2a3a7a5c1g5h7h6g5h4c6d4\r
+c2c4e7e5b1c3g8f6g1f3b8c6g2g3f8c5f1g2e8g8e1g1d7d6d2d3h7h6a2a3a7a6b2b4c5a7c1b2c8g4\r
+c2c4e7e5b1c3g8f6g2g3c7c6g1f3e5e4f3d4d7d5c4d5c6d5d2d3d8b6d4b3f6g4d3d4c8e6f2f3e4f3\r
+c2c4e7e5b1c3g8f6g2g3d7d5c4d5f6d5f1g2d5b6g1f3b8c6e1g1f8e7a2a3c8e6b2b4e8g8a1b1f7f6\r
+c2c4e7e5b1c3g8f6g2g3d7d5c4d5f6d5f1g2d5b6g1f3b8c6e1g1f8e7a2a3e8g8b2b4c8e6a1b1f7f6\r
+c2c4e7e5b1c3g8f6g2g3f8b4f1g2e8g8d1b3b4c3b3c3f8e8d2d3d7d5c4d5f6d5c3b3d5b6b3c2b8c6\r
+c2c4e7e5b1c3g8f6g2g3f8b4f1g2e8g8e2e4b4c3d2c3d7d6d1e2b8d7g1f3d7c5f3h4a7a6b2b3b7b5\r
+c2c4e7e5b1c3g8f6g2g3f8b4f1g2e8g8g1f3f8e8e1g1e5e4f3d4b8c6d4c2b4c3d2c3c6e5b2b3d7d6\r
+c2c4e7e5b1c3g8f6g2g3f8c5f1g2b8c6e2e3e8g8g1e2f8e8e1g1d7d6d2d4c5b6h2h3c8d7a2a3c6e7\r
+c2c4e7e5g1f3e5e4f3d4b8c6d4c2g8f6b1c3f8c5b2b3e8g8g2g3d7d5c4d5c6b4c2b4c5b4f1g2f8e8\r
+c2c4e7e5g2g3b8c6f1g2g7g6b1c3f8g7e2e3d7d6g1e2g8e7e1g1e8g8d2d3c8g4h2h3g4e6c3d5d8d7\r
+c2c4e7e5g2g3b8c6f1g2g7g6b1c3f8g7e2e3d7d6g1e2g8h6a1b1c8e6d2d3e8g8b2b4d8d7h2h4f7f5\r
+c2c4e7e5g2g3b8c6f1g2g7g6b1c3f8g7e2e3d7d6g1e2h7h5h2h4c8g4d2d3g8f6c3d5f6d5c4d5c6e7\r
+c2c4e7e5g2g3b8c6f1g2g7g6b1c3f8g7e2e3g8f6g1e2e8g8e1g1d7d6d2d4e5d4e3d4f8e8h2h3h7h6\r
+c2c4e7e5g2g3c7c6b2b3d7d5c1b2d5d4g1f3f8d6d2d3c6c5f1g2g8e7e1g1e7c6e2e3e8g8b1d2c8e6\r
+c2c4e7e5g2g3d7d6b1c3f7f5f1g2g8f6e2e3f8e7g1e2c7c6d2d4e8g8e1g1b8a6a1b1a6c7b2b3e5e4\r
+c2c4e7e5g2g3d7d6f1g2g7g6d2d4b8d7b1c3f8g7g1f3g8f6e1g1e8g8d1c2f8e8f1d1c7c6b2b3d8e7\r
+c2c4e7e5g2g3g8f6f1g2b8c6b1c3d7d6e2e3c8g4g1e2d8d7h2h3g4e6c3d5e6d5c4d5c6b4d1b3c7c5\r
+c2c4e7e5g2g3g8f6f1g2b8c6g1f3f8c5e1g1d7d6b1c3e8g8d2d3a7a6a2a3c6d4f3d2c7c6b2b4c5a7\r
+c2c4e7e6b1c3c7c5g1f3g8f6g2g3b7b6f1g2c8b7e1g1f8e7d2d4c5d4d1d4d7d6b2b3e8g8c1b2a7a6\r
+c2c4e7e6b1c3d7d5d2d4c7c6e2e3g8f6g1f3b8d7d1c2b7b6f1d3c8b7e1g1f8e7b2b3d8c7c1b2a8c8\r
+c2c4e7e6b1c3d7d5d2d4f8e7c4d5e6d5c1f4c7c6e2e3c8f5g2g4f5e6h2h3g8f6g1f3e8g8f1d3c6c5\r
+c2c4e7e6b1c3d7d5d2d4f8e7c4d5e6d5c1f4g8f6e2e3c8f5g1e2e8g8a1c1c7c6e2g3f5e6f1d3f8e8\r
+c2c4e7e6b1c3d7d5d2d4f8e7g1f3g8f6c1f4e8g8e2e3c7c5d4c5e7c5a2a3b8c6d1c2c5e7a1d1d8a5\r
+c2c4e7e6b1c3d7d5d2d4f8e7g1f3g8f6c1f4e8g8e2e3c7c5d4c5e7c5d1c2b8c6a1d1d8a5a2a3c5e7\r
+c2c4e7e6b1c3d7d5d2d4f8e7g1f3g8f6c1g5e8g8e2e3b8d7d1c2h7h6g5h4c7c5a1d1c5d4f3d4d7b6\r
+c2c4e7e6b1c3d7d5d2d4f8e7g1f3g8f6c1g5e8g8e2e3b8d7d1c2h7h6g5h4c7c5c4d5c5d4f3d4f6d5\r
+c2c4e7e6b1c3d7d5d2d4f8e7g1f3g8f6c1g5e8g8e2e3h7h6g5h4b7b6a1c1c8b7h4f6e7f6c4d5e6d5\r
+c2c4e7e6b1c3d7d5d2d4f8e7g1f3g8f6c1g5e8g8e2e3h7h6g5h4b7b6c4d5f6d5h4e7d8e7c3d5e6d5\r
+c2c4e7e6b1c3d7d5d2d4f8e7g1f3g8f6c1g5e8g8e2e3h7h6g5h4b7b6c4d5f6d5h4e7d8e7c3d5e6d5\r
+c2c4e7e6b1c3d7d5d2d4f8e7g1f3g8f6c1g5e8g8e2e3h7h6g5h4b7b6c4d5f6d5h4e7d8e7c3d5e6d5\r
+c2c4e7e6b1c3d7d5d2d4f8e7g1f3g8f6c1g5h7h6g5h4b7b6a1c1e8g8c4d5f6d5c3d5e6d5h4e7d8e7\r
+c2c4e7e6b1c3d7d5d2d4f8e7g1f3g8f6c1g5h7h6g5h4e8g8a1c1b7b6c4d5f6d5c3d5e6d5h4e7d8e7\r
+c2c4e7e6b1c3d7d5d2d4f8e7g1f3g8f6c1g5h7h6g5h4e8g8a1c1d5c4e2e3c7c5f1c4c5d4e3d4b8c6\r
+c2c4e7e6b1c3d7d5d2d4f8e7g1f3g8f6c1g5h7h6g5h4e8g8e2e3b7b6a1c1c8b7f1e2b8d7c4d5e6d5\r
+c2c4e7e6b1c3d7d5d2d4f8e7g1f3g8f6c1g5h7h6g5h4e8g8e2e3b7b6a1c1c8b7f1e2d5c4e2c4b8d7\r
+c2c4e7e6b1c3d7d5d2d4f8e7g1f3g8f6c1g5h7h6g5h4e8g8e2e3b7b6a1c1c8b7h4f6e7f6c4d5e6d5\r
+c2c4e7e6b1c3d7d5d2d4f8e7g1f3g8f6c1g5h7h6g5h4e8g8e2e3b7b6f1e2c8b7h4f6e7f6c4d5e6d5\r
+c2c4e7e6b1c3d7d5d2d4f8e7g1f3g8f6d1c2e8g8c1g5c7c5d4c5d5c4e2e4d8a5e4e5f6d5f1c4d5c3\r
+c2c4e7e6b1c3d7d5d2d4g8f6c1g5f8e7e2e3h7h6g5h4e8g8g1f3b7b6c4d5f6d5h4e7d8e7c3d5e6d5\r
+c2c4e7e6b1c3d7d5d2d4g8f6c4d5e6d5c1g5c7c6d1c2f8e7e2e3b8d7f1d3e8g8g1e2f8e8e1g1g7g6\r
+c2c4e7e6b1c3d7d5d2d4g8f6c4d5e6d5c1g5f8e7e2e3e8g8f1d3b8d7g1e2f8e8e1g1d7f8d1c2c7c6\r
+c2c4e7e6b1c3d7d5d2d4g8f6c4d5e6d5c1g5f8e7e2e3e8g8f1d3b8d7g1f3f8e8d1c2c7c6e1g1d7f8\r
+c2c4e7e6b1c3d7d5d2d4g8f6c4d5e6d5c1g5f8e7e2e3e8g8f1d3c7c6d1c2b8d7g1f3f8e8h2h3d7f8\r
+c2c4e7e6b1c3d7d5d2d4g8f6g1f3b8d7c4d5e6d5c1f4c7c6e2e3f8e7h2h3e8g8f1d3f8e8d1c2d7f8\r
+c2c4e7e6b1c3d7d5d2d4g8f6g1f3f8e7c1f4e8g8e2e3b7b6c4d5e6d5f1d3c8b7h2h3c7c5e1g1b8d7\r
+c2c4e7e6b1c3d7d5d2d4g8f6g1f3f8e7c1g5h7h6g5h4e8g8e2e3b7b6a1c1c8b7c4d5f6d5c3d5b7d5\r
+c2c4e7e6b1c3f7f5d2d4g8f6c1g5f8e7g1f3e8g8h2h3d7d6e2e3b7b6f1e2d8e8d1c2h7h6g5h4g7g5\r
+c2c4e7e6b1c3f7f5g1f3g8f6b2b3b7b6g2g3c8b7f1g2f8b4c1b2e8g8e1g1b4c3b2c3d7d6d2d3d8e8\r
+c2c4e7e6b1c3f7f5g2g3g8f6f1g2f8e7d2d4e8g8g1f3d7d5e1g1c7c6b2b3f6e4c1b2b8d7e2e3e7f6\r
+c2c4e7e6b1c3f7f5g2g3g8f6f1g2f8e7e2e3e8g8g1e2c7c6d2d4d7d5b2b3c8d7c1b2d7e8e2f4e8f7\r
+c2c4e7e6b1c3g8f6d2d4f8b4e2e3c7c5g1e2d7d5a2a3b4c3e2c3c5d4e3d4d5c4f1c4b8c6c1e3e8g8\r
+c2c4e7e6b1c3g8f6d2d4f8b4f2f3d7d5a2a3b4c3b2c3c7c6e2e3b7b6c4d5c6d5f1b5b8d7a3a4a7a6\r
+c2c4e7e6b1c3g8f6g1f3d7d5d2d4f8e7c1g5e8g8d1c2b7b6g5f6e7f6e2e4b8c6e1c1d5e4c2e4c8b7\r
+c2c4e7e6d2d4d7d5b1c3c7c5c4d5e6d5g1f3b8c6g2g3g8f6f1g2f8e7e1g1e8g8c1g5c5d4f3d4h7h6\r
+c2c4e7e6d2d4d7d5b1c3c7c5c4d5e6d5g1f3b8c6g2g3g8f6f1g2f8e7e1g1e8g8c1g5c5d4f3d4h7h6\r
+c2c4e7e6d2d4d7d5b1c3c7c5c4d5e6d5g1f3b8c6g2g3g8f6f1g2f8e7e1g1e8g8c1g5c5d4f3d4h7h6\r
+c2c4e7e6d2d4d7d5b1c3f8e7g1f3g8f6c1f4c7c5d4c5b8a6e2e3a6c5c4d5e6d5f1e2e8g8e1g1c8e6\r
+c2c4e7e6d2d4d7d5b1c3f8e7g1f3g8f6c1g5e8g8e2e3h7h6g5f6e7f6d1d2b7b6c4d5e6d5a1d1c8e6\r
+c2c4e7e6d2d4d7d5b1c3f8e7g1f3g8f6c1g5h7h6g5h4e8g8a1c1f6e4h4e7d8e7e2e3c7c6d1c2e4c3\r
+c2c4e7e6d2d4d7d5b1c3g8f6c1g5f8e7e2e3e8g8a1c1b8d7g1f3c7c5c4d5f6d5g5e7d5e7f1e2b7b6\r
+c2c4e7e6d2d4d7d5b1c3g8f6c4d5e6d5c1g5c7c6e2e3c8f5d1f3f5g6g5f6d8f6f3f6g7f6e1d2b8d7\r
+c2c4e7e6d2d4d7d5g1f3c7c5c4d5e6d5g2g3b8c6f1g2g8f6e1g1f8e7b1c3e8g8c1g5c5d4f3d4h7h6\r
+c2c4e7e6d2d4d7d5g1f3c7c5c4d5e6d5g2g3b8c6f1g2g8f6e1g1f8e7b1c3e8g8c1g5c8e6d4c5e7c5\r
+c2c4e7e6d2d4d7d5g1f3f8e7b1c3g8f6c1g5e8g8e2e3h7h6g5f6e7f6d1d2b7b6c4d5e6d5b2b4c8b7\r
+c2c4e7e6d2d4d7d5g1f3g8f6c1g5f8e7e2e3e8g8c4d5e6d5b1c3b8d7f1d3b7b6e1g1c8b7a1c1c7c5\r
+c2c4e7e6d2d4g8f6g1f3d7d5b1c3c7c5c4d5f6d5g2g3b8c6f1g2d5c3b2c3c5d4c3d4f8b4c1d2b4e7\r
+c2c4e7e6g1f3d7d5b2b3f8e7c1b2e7f6b1c3c7c5c4d5e6d5d2d4c5d4f3d4g8e7g2g3e8g8f1g2b8c6\r
+c2c4e7e6g1f3d7d5b2b3g8f6g2g3b7b6f1g2c8b7e1g1b8d7c1b2f8e7e2e3e8g8d2d3d5c4b3c4d7c5\r
+c2c4e7e6g1f3d7d5d2d4g8f6b1c3f8e7c1f4e8g8e2e3c7c5d4c5b8c6c4d5e6d5f1e2e7c5e1g1c8e6\r
+c2c4e7e6g1f3d7d5d2d4g8f6b1c3f8e7c1g5e8g8e2e3h7h6g5h4b7b6c4d5f6d5h4e7d8e7c3d5e6d5\r
+c2c4e7e6g1f3d7d5d2d4g8f6b1c3f8e7c1g5h7h6g5h4e8g8a1c1b7b6c4d5e6d5e2e3c8b7f1e2b8d7\r
+c2c4e7e6g1f3d7d5d2d4g8f6b1c3f8e7c1g5h7h6g5h4e8g8e2e3b8d7a1c1c7c6f1d3d5c4d3c4b7b5\r
+c2c4e7e6g1f3d7d5e2e3g8f6b2b3g7g6c1b2f8g7d2d4e8g8f1d3c7c5e1g1c5d4f3d4e6e5d4b5a7a6\r
+c2c4e7e6g1f3d7d5g2g3d5d4e2e3b8c6e3d4c6d4f1g2g8h6e1g1h6f5d2d3f8e7f3d4f5d4b1d2e8g8\r
+c2c4e7e6g1f3g8f6b1c3b7b6e2e4c8b7d2d3d7d6g2g3g7g6f1g2f8g7e1g1e8g8f3e1f6e8d3d4c7c5\r
+c2c4e7e6g1f3g8f6b1c3c7c5g2g3b8c6f1g2d7d5c4d5f6d5e1g1f8e7d2d4e8g8c3d5e6d5c1e3c5c4\r
+c2c4e7e6g1f3g8f6b1c3d7d5d2d4f8b4c4d5e6d5c1g5h7h6g5f6d8f6d1a4b8c6e2e3e8g8f1e2c8e6\r
+c2c4e7e6g1f3g8f6d2d4d7d5b1c3b8d7c4d5e6d5c1g5f8e7e2e3c7c6d1c2d7f8f1d3f8e6g5h4g7g6\r
+c2c4e7e6g1f3g8f6g2g3b7b6f1g2c8b7e1g1f8e7b2b3e8g8c1b2d7d5c4d5e6d5d1c2f8e8e2e3b8d7\r
+c2c4e7e6g1f3g8f6g2g3d7d5b2b3f8e7f1g2e8g8e1g1b7b6c1b2c8b7e2e3b8d7b1c3f6e4c3e2a7a5\r
+c2c4e7e6g1f3g8f6g2g3d7d5f1g2f8e7e1g1e8g8d2d4b8d7b1d2b7b6c4d5e6d5f3e5c8b7d2f3f6e4\r
+c2c4e7e6g2g3d7d5f1g2d5d4b2b4c7c5b4b5e6e5d2d3f8d6e2e4d8c7g1e2h7h5h2h4g8h6e1g1c8g4\r
+c2c4e7e6g2g3d7d5f1g2g8f6g1f3f8e7d2d4d5c4b1c3e8g8f3e5c7c5d4c5d8d1c3d1b8d7e5c4d7c5\r
+c2c4e7e6g2g3d7d5f1g2g8f6g1f3f8e7e1g1e8g8b2b3b7b6c1b2c8b7e2e3c7c5d1e2b8c6f1d1a8c8\r
+c2c4e7e6g2g3d7d5f1g2g8f6g1f3f8e7e1g1e8g8d2d4b8d7b1d2c7c6b2b3b7b6c1b2c8b7a1c1a7a5\r
+c2c4e7e6g2g3d7d5f1g2g8f6g1f3f8e7e1g1e8g8d2d4b8d7d1c2c7c6b2b3b7b5b1d2b5c4b3c4c8a6\r
+c2c4e7e6g2g3d7d5f1g2g8f6g1f3f8e7e1g1e8g8d2d4b8d7d1c2c7c6c1f4f6e4b1c3g7g5f4c1f7f5\r
+c2c4e7e6g2g3d7d5f1g2g8f6g1f3f8e7e1g1e8g8d2d4c7c6b2b3b7b6c1b2c8b7b1c3b8d7d1c2a8c8\r
+c2c4e7e6g2g3d7d5f1g2g8f6g1f3f8e7e1g1e8g8d2d4d5c4d1c2a7a6c2c4b7b5c4c2c8b7c1d2b7e4\r
+c2c4e7e6g2g3d7d5f1g2g8f6g1f3f8e7e1g1e8g8d2d4d5c4f3e5b8c6g2c6b7c6b1c3c6c5d4c5e7c5\r
+c2c4e7e6g2g3d7d5g1f3g8f6f1g2f8e7d2d4e8g8b1c3d5c4f3e5c7c5d4c5d8d1c3d1e7c5e5c4b8c6\r
+c2c4e7e6g2g3d7d5g1f3g8f6f1g2f8e7d2d4e8g8b1d2b7b6e1g1c8b7b2b3b8d7c1b2c7c5a1c1a8c8\r
+c2c4e7e6g2g3f7f5f1g2g8f6g1f3f8e7e1g1e8g8b2b3a7a5a2a3d7d5c1b2c7c6d2d3c8d7b1d2b8a6\r
+c2c4e7e6g2g3f7f5f1g2g8f6g1f3f8e7e1g1e8g8b2b3d7d5c1b2c8d7d2d3d7e8b1d2b8c6a2a3a7a5\r
+c2c4e7e6g2g3g8f6f1g2d7d5g1f3d5c4d1a4b8d7a4c4a7a6e1g1f8d6d2d4e8g8f1d1d8e7c4c2a8b8\r
+c2c4e7e6g2g3g8f6f1g2d7d5g1f3f8e7e1g1e8g8d2d4b8d7d1c2b7b6c4d5f6d5b1c3c8b7c3d5b7d5\r
+c2c4f7f5g1f3g8f6g2g3g7g6f1g2f8g7d2d4d7d6b1c3e7e6e1g1e8g8d1c2b8c6f1d1d8e7a1b1a7a5\r
+c2c4g7g6b1c3c7c5g2g3f8g7f1g2b8c6a2a3a7a6a1b1a8b8d1a4d7d6b2b4c8f5g2c6b7c6a4c6f5d7\r
+c2c4g7g6b1c3c7c5g2g3f8g7f1g2b8c6e2e3e7e6g1e2g8e7d2d4c5d4e2d4d7d5c4d5c6d4e3d4e7d5\r
+c2c4g7g6b1c3c7c5g2g3f8g7f1g2b8c6g1f3e7e6e1g1g8e7d2d3e8g8c1d2b7b6d1c1c8b7d2h6d7d6\r
+c2c4g7g6b1c3c7c5g2g3f8g7f1g2b8c6g1f3e7e6e1g1g8e7d2d3e8g8c1d2h7h6a2a3d7d5a1b1a7a5\r
+c2c4g7g6b1c3f8g7g1f3d7d6d2d4g8f6e2e4e8g8f1e2e7e5e1g1b8d7f1e1c7c6d4d5c6c5a2a3f6e8\r
+c2c4g7g6b1c3f8g7g2g3d7d6f1g2e7e5d2d3b8c6e2e4f7f5g1e2g8h6h2h4c8e6c3d5h6f7c1e3d8d7\r
+c2c4g7g6b1c3f8g7g2g3e7e5f1g2d7d6e2e3g8f6g1e2c7c6e3e4e8g8d2d3a7a6h2h3b7b5c1g5b8d7\r
+c2c4g7g6d2d4f8g7b1c3d7d6e2e4g8f6f2f3e8g8c1e3e7e5g1e2c7c6d4d5c6d5c4d5a7a6d1d2b8d7\r
+c2c4g7g6d2d4g8f6b1c3d7d5c1f4f8g7a1c1d5c4e2e4c7c5d4c5d8a5f1c4e8g8e4e5f6d7g1f3d7c5\r
+c2c4g7g6d2d4g8f6b1c3d7d5g1f3f8g7d1a4c8d7a4b3d5c4b3c4e8g8e2e4d7g4c1e3f6d7a1d1d7b6\r
+c2c4g7g6d2d4g8f6b1c3d7d5g1f3f8g7e2e3e8g8f1e2d5c4e2c4c7c5d4d5e7e6d5e6d8d1e1d1c8e6\r
+c2c4g7g6d2d4g8f6g1f3f8g7g2g3e8g8f1g2d7d6e1g1b8c6b1c3a7a6b2b3a8b8c1b2b7b5c4b5a6b5\r
+c2c4g7g6d2d4g8f6g2g3c7c5d4d5d7d6f1g2f8g7g1f3a7a6a2a4e7e5d5e6f7e6b1c3b8c6e1g1e8g8\r
+c2c4g7g6e2e4f8g7d2d4d7d6b1c3a7a6c1e3g8f6f2f3c7c6f1d3b7b5d1d2b5c4d3c4d6d5c4b3d5e4\r
+c2c4g7g6g1f3f8g7b1c3d7d6d2d4g8f6c1g5h7h6g5h4g6g5h4g3f6h5e2e3c7c5d4c5h5g3h2g3d6c5\r
+c2c4g7g6g1f3f8g7b1c3e7e5g2g3g8e7f1g2e8g8d2d4e5d4f3d4b8c6d4c6e7c6e1g1d7d6c1d2c8g4\r
+c2c4g7g6g1f3f8g7d2d4g8f6b1c3e8g8e2e4d7d6f1e2e7e5e1g1b8c6d4d5c6e7f3d2c7c5a1b1f6e8\r
+c2c4g7g6g2g3f8g7f1g2c7c5g1f3b8c6e1g1g8h6b1c3e8g8a2a3a8b8b2b4b7b6a1b1c8b7d2d3h6f5\r
+c2c4g7g6g2g3f8g7f1g2e7e5b1c3g8e7e2e4e8g8g1e2b8c6d2d3d7d6e1g1c8e6c3d5f7f5c1e3d8d7\r
+c2c4g8f6b1c3c7c5g1f3b8c6d2d4c5d4f3d4g7g6e2e4f8g7c1e3f6g4d1g4c6d4g4d1d4e6a1c1d7d6\r
+c2c4g8f6b1c3c7c5g1f3b8c6e2e3e7e6d2d4d7d5c4d5e6d5f1e2c5d4f3d4f8d6e1g1e8g8e2f3d6e5\r
+c2c4g8f6b1c3c7c5g1f3d7d5c4d5f6d5e2e3e7e6d2d4b8c6f1d3f8e7e1g1c5d4e3d4e8g8f1e1d8d6\r
+c2c4g8f6b1c3c7c5g1f3d7d5c4d5f6d5g2g3b8c6f1g2d5c7a2a3e7e5b2b4f7f6b4c5f8c5e1g1e8g8\r
+c2c4g8f6b1c3c7c5g1f3d7d5c4d5f6d5g2g3d5c3b2c3g7g6d1a4b8d7h2h4h7h6a1b1f8g7f1g2e8g8\r
+c2c4g8f6b1c3c7c5g1f3e7e6e2e3b8c6d2d4d7d5c4d5e6d5f1e2f8d6d4c5d6c5e1g1e8g8c1d2a7a6\r
+c2c4g8f6b1c3c7c5g1f3g7g6e2e4b8c6d2d4c5d4f3d4f8g7c1e3f6g4d1g4c6d4g4d1d4e6a1c1d7d6\r
+c2c4g8f6b1c3c7c5g2g3e7e6g1f3b7b6f1g2c8b7b2b3f8e7c1b2d7d6e1g1e8g8d2d4c5d4d1d4a7a6\r
+c2c4g8f6b1c3c7c6e2e4d7d5e4d5c6d5d2d4e7e6g1f3f8e7f1d3d5c4d3c4e8g8e1g1b8c6f1e1a7a6\r
+c2c4g8f6b1c3d7d5c4d5f6d5e2e4d5c3b2c3g7g6c1a3b8d7g1f3f8g7f1e2c7c5e1g1e8g8d2d4c5d4\r
+c2c4g8f6b1c3d7d5c4d5f6d5g1f3d5c3b2c3g7g6d2d4f8g7e2e3c7c5f1b5b8d7e1g1e8g8a2a4a7a6\r
+c2c4g8f6b1c3d7d5c4d5f6d5g2g3g7g6f1g2d5c3b2c3f8g7a1b1b8d7c3c4e8g8g1f3a8b8e1g1b7b6\r
+c2c4g8f6b1c3d7d5c4d5f6d5g2g3g7g6f1g2d5c3b2c3f8g7a1b1b8d7g1f3e8g8e1g1e7e5d2d4c7c6\r
+c2c4g8f6b1c3d7d5c4d5f6d5g2g3g7g6f1g2d5c3b2c3f8g7c1a3b8d7g1f3c7c5d1a4e8g8a1b1a7a6\r
+c2c4g8f6b1c3d7d5c4d5f6d5g2g3g7g6f1g2d5c3b2c3f8g7d1b3b8c6g1f3e8g8e1g1c6a5b3c2c7c5\r
+c2c4g8f6b1c3d7d5c4d5f6d5g2g3g7g6f1g2d5c3b2c3f8g7g1f3e8g8e1g1c7c5a1b1b8c6d1a4c6a5\r
+c2c4g8f6b1c3d7d5d2d4c7c6g1f3d5c4a2a4c8f5f3e5e7e6f2f3f8b4e2e4f5e4f3e4f6e4c1d2d8d4\r
+c2c4g8f6b1c3d7d5d2d4g7g6c4d5f6d5e2e4d5c3b2c3f8g7f1b5c7c6b5c4b8d7g1f3h7h6e1g1e8g8\r
+c2c4g8f6b1c3d7d5d2d4g7g6e2e3f8g7g1f3e8g8d1b3c7c6c1d2e7e6a1c1b8d7c4d5e6d5f1d3f8e8\r
+c2c4g8f6b1c3e7e5e2e3b8c6a2a3d7d5c4d5f6d5d1c2d5c3d2c3f8d6e3e4c8e6g1f3f7f6c1e3d8e7\r
+c2c4g8f6b1c3e7e5g1f3b8c6a2a3d7d6d2d4c8g4d4d5c6e7e2e4g7g6f1e2f8g7e1g1f6h5f3e1g4e2\r
+c2c4g8f6b1c3e7e5g1f3b8c6d2d3f8e7e2e3d7d5c4d5f6d5f1e2e8g8e1g1c8e6a2a3a7a5d1c2d8d7\r
+c2c4g8f6b1c3e7e5g1f3b8c6d2d4e5d4f3d4f8b4c1g5h7h6g5h4b4c3b2c3c6e5f2f4e5g6h4f6d8f6\r
+c2c4g8f6b1c3e7e5g1f3b8c6g2g3f8b4c3d5b4c5d2d3h7h6f1g2d7d6e1g1e8g8e2e3a7a5d5c3c5a7\r
+c2c4g8f6b1c3e7e5g1f3b8c6g2g3f8b4c3d5b4c5f1g2d7d6e1g1e8g8e2e3c8g4h2h3g4f3g2f3f6d5\r
+c2c4g8f6b1c3e7e5g1f3b8c6g2g3f8b4c3d5b4c5f1g2d7d6e1g1f6d5c4d5c6d4f3d4c5d4e2e3d4b6\r
+c2c4g8f6b1c3e7e5g1f3b8c6g2g3f8b4c3d5f6d5c4d5c6d4f3d4e5d4d1c2d8e7f1g2b4c5e1g1e8g8\r
+c2c4g8f6b1c3e7e5g1f3b8c6g2g3f8b4f1g2e8g8c3d5f6d5c4d5c6d4f3d4e5d4d1c2d7d6e1g1a7a5\r
+c2c4g8f6b1c3e7e5g1f3b8c6g2g3f8b4f1g2e8g8e1g1e5e4f3e1b4c3d2c3h7h6e1c2b7b6c2e3c8b7\r
+c2c4g8f6b1c3e7e5g1f3b8c6g2g3f8b4f1g2e8g8e1g1e5e4f3e1b4c3d2c3h7h6e1c2f8e8c2e3b7b6\r
+c2c4g8f6b1c3e7e5g1f3b8c6g2g3f8b4f1g2e8g8e1g1e5e4f3g5b4c3b2c3f8e8f2f3e4f3g5f3d8e7\r
+c2c4g8f6b1c3e7e5g1f3b8c6g2g3f8c5f1g2e8g8e1g1f8e8e2e3c5b4c3d5b4f8d2d4d7d6d1b3f6e4\r
+c2c4g8f6b1c3e7e5g2g3c7c6g1f3d7d6f1g2g7g6e1g1f8g7d2d4b8d7e2e4e8g8h2h3f6e8c1g5f7f6\r
+c2c4g8f6b1c3e7e5g2g3c7c6g1f3e5e4f3d4d7d5c4d5d8b6d4b3c6d5f1g2a7a5d2d3a5a4c1e3b6b4\r
+c2c4g8f6b1c3e7e5g2g3f8b4d1b3b8c6c3d5b4c5e2e3e8g8f1g2f6d5c4d5c6e7g1e2d7d6e1g1c7c6\r
+c2c4g8f6b1c3e7e6d2d4d7d5c1g5b8d7e2e3c7c6g1f3d8a5f3d2f8b4d1c2e8g8f1e2e6e5g5f6d7f6\r
+c2c4g8f6b1c3e7e6d2d4d7d5c1g5f8e7e2e3h7h6g5h4b7b6c4d5f6d5h4e7d8e7c3d5e6d5g1e2e8g8\r
+c2c4g8f6b1c3e7e6d2d4d7d5e2e3b8d7g1f3c7c6d1c2f8d6c1d2d5c4f1c4e6e5d4e5d7e5f3e5d6e5\r
+c2c4g8f6b1c3e7e6d2d4f8b4a2a3b4c3b2c3b7b6f2f3c8a6e2e4d7d5c4d5a6f1e1f1e6d5c1g5h7h6\r
+c2c4g8f6b1c3e7e6d2d4f8b4c1d2e8g8g1f3b7b6e2e3c8b7a2a3b4c3d2c3d7d5a1c1b8d7f1e2f6e4\r
+c2c4g8f6b1c3e7e6d2d4f8b4c1d2e8g8g1f3b7b6e2e3c8b7f1d3d7d6e1g1b8d7a2a3b4c3d2c3f6e4\r
+c2c4g8f6b1c3e7e6d2d4f8b4c1d2e8g8g1f3c7c5d4c5b4c5e2e3d7d5a1c1d8e7c4d5e6d5f1e2b8c6\r
+c2c4g8f6b1c3e7e6d2d4f8b4d1c2e8g8a2a3b4c3c2c3b7b6c1g5c8b7e2e3c7c5d4c5b6c5f2f3b8c6\r
+c2c4g8f6b1c3e7e6d2d4f8b4e2e3b7b6g1e2c8a6a2a3b4c3e2c3d7d5b2b3e8g8a3a4c7c5c1a3d5c4\r
+c2c4g8f6b1c3e7e6d2d4f8b4e2e3b7b6g1e2c8a6a2a3b4c3e2c3d7d5b2b3e8g8f1e2d5c4b3c4b8c6\r
+c2c4g8f6b1c3e7e6d2d4f8b4e2e3b7b6g1e2c8a6a2a3b4c3e2c3d7d5b2b3e8g8f1e2d5c4b3c4b8c6\r
+c2c4g8f6b1c3e7e6d2d4f8b4e2e3e8g8f1d3c7c5d4d5b7b5d5e6f7e6c4b5a7a6g1e2d7d5e1g1e6e5\r
+c2c4g8f6b1c3e7e6d2d4f8b4e2e3e8g8f1d3d7d5a2a3d5c4d3c4b4d6g1f3b8c6b2b4e6e5c1b2c8g4\r
+c2c4g8f6b1c3e7e6d2d4f8b4e2e3e8g8f1d3d7d5a2a3d5c4d3c4b4d6g1f3b8c6b2b4e6e5c1b2c8g4\r
+c2c4g8f6b1c3e7e6d2d4f8b4e2e3e8g8f1d3d7d5a2a3d5c4d3c4b4d6g1f3b8c6c3b5e6e5b5d6d8d6\r
+c2c4g8f6b1c3e7e6d2d4f8b4e2e3e8g8g1e2d7d5a2a3b4e7c4d5e6d5g2g3b8d7f1g2d7b6e1g1f8e8\r
+c2c4g8f6b1c3e7e6d2d4f8b4g1f3c7c5e2e3e8g8f1d3d7d5e1g1b8d7c4d5e6d5d1b3d7b6c3e2a7a5\r
+c2c4g8f6b1c3e7e6e2e4c7c5e4e5f6g8d2d4c5d4d1d4b8c6d4e4d7d6g1f3d6e5f3e5g8f6e5c6d8b6\r
+c2c4g8f6b1c3e7e6e2e4c7c5e4e5f6g8g1f3b8c6d2d4c5d4f3d4c6e5d4b5a7a6b5d6f8d6d1d6f7f6\r
+c2c4g8f6b1c3e7e6e2e4c7c5e4e5f6g8g1f3b8c6d2d4c5d4f3d4c6e5d4b5a7a6b5d6f8d6d1d6f7f6\r
+c2c4g8f6b1c3e7e6e2e4c7c5e4e5f6g8g1f3d7d6e5d6f8d6d2d4c5d4d1d4g8f6c3b5d6b4c1d2d8d4\r
+c2c4g8f6b1c3e7e6e2e4d7d5e4e5f6e4g1f3f8e7d1c2e4g5f3g5e7g5c4d5e6d5d2d4g5e7c1e3e8g8\r
+c2c4g8f6b1c3e7e6g1f3b7b6e2e4c8b7d1e2c7c5e4e5f6g8d2d4b7f3e2f3b8c6d4d5c6e5f3g3d7d6\r
+c2c4g8f6b1c3e7e6g1f3b7b6e2e4c8b7d1e2f8b4e4e5f6g8d2d4g8e7c1d2e8g8e1c1d7d5h2h4b4c3\r
+c2c4g8f6b1c3e7e6g1f3b7b6e2e4c8b7d1e2f8b4e4e5f6g8d2d4g8e7e2d3d7d5e5d6c7d6a2a3b4c3\r
+c2c4g8f6b1c3e7e6g1f3b7b6e2e4c8b7d1e2f8b4e4e5f6g8g2g3b8c6f1g2c6d4e2d3b7f3g2f3d4f3\r
+c2c4g8f6b1c3e7e6g1f3b7b6e2e4c8b7d2d3d7d6g2g3f8e7f1g2e8g8e1g1c7c5b2b3b8a6f1e1e6e5\r
+c2c4g8f6b1c3e7e6g1f3b7b6e2e4c8b7f1d3c7c5e1g1b8c6e4e5f6g4d3e4d8c8f1e1d7d6e5d6f8d6\r
+c2c4g8f6b1c3e7e6g1f3b7b6e2e4c8b7f1d3c7c5e1g1b8c6e4e5f6g4d3e4f7f5e5f6g4f6e4c6b7c6\r
+c2c4g8f6b1c3e7e6g1f3b7b6e2e4c8b7f1d3c7c5e4e5f6g4h2h3b7f3d1f3g4e5f3a8e5d3e1e2d3f4\r
+c2c4g8f6b1c3e7e6g1f3b7b6e2e4c8b7f1d3d7d6d3c2c7c5d2d4c5d4f3d4a7a6b2b3f8e7e1g1e8g8\r
+c2c4g8f6b1c3e7e6g1f3b7b6e2e4f8b4d1e2c8b7e4e5f6g8d2d4d7d6c1d2d6e5d4e5b8a6e1c1d8e7\r
+c2c4g8f6b1c3e7e6g1f3b7b6g2g3c8b7f1g2f8e7d2d4e8g8d1c2c7c5d4d5e6d5f3g5g7g6c2d1d7d6\r
+c2c4g8f6b1c3e7e6g1f3b7b6g2g3c8b7f1g2f8e7e1g1e8g8d2d4f6e4d1c2e4c3c2c3f7f5b2b3e7f6\r
+c2c4g8f6b1c3e7e6g1f3c7c5d2d4d7d5c4d5f6d5e2e4d5c3b2c3c5d4c3d4f8b4c1d2b4d2d1d2e8g8\r
+c2c4g8f6b1c3e7e6g1f3c7c5e2e3f8e7b2b3e8g8c1b2b7b6d2d4c5d4e3d4d7d5f1d3b8c6e1g1c8b7\r
+c2c4g8f6b1c3e7e6g1f3c7c5g2g3b7b6f1g2c8b7e1g1f8e7d2d4c5d4d1d4e8g8f1d1b8c6d4f4d8b8\r
+c2c4g8f6b1c3e7e6g1f3c7c5g2g3b7b6f1g2c8b7e1g1f8e7d2d4c5d4d1d4e8g8f1d1b8c6d4f4d8b8\r
+c2c4g8f6b1c3e7e6g1f3c7c5g2g3b8c6f1g2d7d5c4d5e6d5d2d4f8e7e1g1e8g8c1f4c8e6a1c1a8c8\r
+c2c4g8f6b1c3e7e6g1f3d7d5d2d4b8d7c4d5e6d5c1g5f8e7e2e3e8g8f1d3c7c6d1c2f8e8e1g1d7f8\r
+c2c4g8f6b1c3e7e6g1f3d7d5d2d4b8d7c4d5e6d5c1g5f8e7e2e3e8g8f1d3c7c6d1c2f8e8h2h3d7f8\r
+c2c4g8f6b1c3e7e6g1f3d7d5d2d4c7c5c4d5f6d5e2e3f8e7f1d3c5d4e3d4b7b6c3d5d8d5e1g1b8d7\r
+c2c4g8f6b1c3e7e6g1f3d7d5d2d4c7c5c4d5f6d5e2e4d5c3b2c3c5d4c3d4f8b4c1d2b4d2d1d2e8g8\r
+c2c4g8f6b1c3e7e6g1f3d7d5d2d4c7c5c4d5f6d5g2g3c5d4c3d5d8d5d1d4d5b5e2e3b5b4c1d2b8c6\r
+c2c4g8f6b1c3e7e6g1f3d7d5d2d4c7c6c1g5b8d7e2e3d8a5g5f6d7f6f1d3f8b4d1b3e8g8e1g1c6c5\r
+c2c4g8f6b1c3e7e6g1f3d7d5d2d4c7c6e2e3b8d7f1d3d5c4d3c4b7b5c4d3c8b7e1g1b5b4c3e4f6e4\r
+c2c4g8f6b1c3e7e6g1f3d7d5d2d4c7c6e2e3b8d7f1d3d5c4d3c4b7b5c4d3c8b7e1g1b5b4c3e4f8e7\r
+c2c4g8f6b1c3e7e6g1f3d7d5d2d4c7c6e2e3b8d7f1d3d5c4d3c4b7b5c4d3c8b7e1g1b5b4c3e4f8e7\r
+c2c4g8f6b1c3e7e6g1f3d7d5d2d4c7c6e2e3b8d7f1d3d5c4d3c4b7b5c4d3c8b7e1g1b5b4c3e4f8e7\r
+c2c4g8f6b1c3e7e6g1f3d7d5d2d4c7c6e2e3b8d7f1d3d5c4d3c4b7b5c4d3c8b7e3e4b5b4c3a4c6c5\r
+c2c4g8f6b1c3e7e6g1f3d7d5d2d4c7c6e2e3b8d7f1d3d5c4d3c4b7b5c4d3c8b7e3e4b5b4c3a4c6c5\r
+c2c4g8f6b1c3e7e6g1f3d7d5d2d4c7c6e2e3b8d7f1d3d5c4d3c4b7b5c4d3c8b7e3e4b5b4c3a4c6c5\r
+c2c4g8f6b1c3e7e6g1f3d7d5d2d4f8b4c4d5e6d5c1g5h7h6g5f6d8f6d1a4b8c6e2e3e8g8f1e2a7a6\r
+c2c4g8f6b1c3e7e6g1f3d7d5d2d4f8e7c1f4e8g8e2e3c7c5d4c5e7c5d1c2b8c6a1d1d8a5a2a3c5e7\r
+c2c4g8f6b1c3e7e6g1f3d7d5d2d4f8e7c1f4e8g8e2e3c7c5d4c5e7c5d1c2b8c6a1d1d8a5a2a3c5e7\r
+c2c4g8f6b1c3e7e6g1f3d7d5d2d4f8e7c1f4e8g8e2e3c7c5d4c5e7c5d1c2b8c6a1d1d8a5a2a3f8e8\r
+c2c4g8f6b1c3e7e6g1f3d7d5d2d4f8e7c1g5e8g8e2e3b8d7c4d5e6d5d1c2f8e8f1d3c7c6e1c1a7a5\r
+c2c4g8f6b1c3e7e6g1f3d7d5d2d4f8e7c1g5e8g8e2e3h7h6g5h4b7b6a1c1c8b7c4d5e6d5f1d3b8d7\r
+c2c4g8f6b1c3e7e6g1f3d7d5d2d4f8e7c1g5h7h6g5h4e8g8a1c1b7b6h4f6e7f6c4d5e6d5g2g3c7c6\r
+c2c4g8f6b1c3e7e6g1f3d7d5d2d4f8e7c1g5h7h6g5h4e8g8e2e3b7b6a1c1c8b7f1d3d5c4d3c4b8d7\r
+c2c4g8f6b1c3e7e6g1f3d7d5d2d4f8e7c1g5h7h6g5h4e8g8e2e3b7b6a1c1c8b7f1e2d5c4e2c4f6e4\r
+c2c4g8f6b1c3e7e6g1f3d7d5d2d4f8e7g2g3e8g8f1g2d5c4f3e5b8c6g2c6b7c6e5c6d8e8c6e7e8e7\r
+c2c4g8f6b1c3e7e6g1f3d7d5e2e3f8e7d2d4e8g8f1d3d5c4d3c4c7c5e1g1a7a6d4c5d8d1f1d1e7c5\r
+c2c4g8f6b1c3e7e6g1f3f8b4g2g3b7b6f1g2c8b7e1g1e8g8d1b3b4c3b3c3d7d6b2b3d8e7c1b2c7c5\r
+c2c4g8f6b1c3g7g6d2d4d7d6e2e4f8g7f2f3e7e5d4e5d6e5d1d8e8d8c1e3c8e6g1h3e6h3g2h3c7c6\r
+c2c4g8f6b1c3g7g6d2d4f8g7c1g5d7d6e2e3c7c5g1f3h7h6g5h4g6g5h4g3f6h5d4c5h5g3h2g3d6c5\r
+c2c4g8f6b1c3g7g6d2d4f8g7e2e4d7d6f1e2e8g8g1f3e7e5d4d5b8d7c1g5h7h6g5h4a7a6e1g1d8e8\r
+c2c4g8f6b1c3g7g6d2d4f8g7e2e4d7d6f2f3e7e5g1e2c7c6c1e3e8g8d1d2d8a5e1c1b7b5c4b5c6b5\r
+c2c4g8f6b1c3g7g6d2d4f8g7e2e4d7d6f2f3e8g8c1e3e7e5d4d5c7c5g2g4f6e8h2h4f7f5e4f5g6f5\r
+c2c4g8f6b1c3g7g6d2d4f8g7e2e4d7d6g1f3e8g8f1e2e7e5d4d5b8d7d1c2a7a5h2h3c7c6c1e3c6d5\r
+c2c4g8f6b1c3g7g6d2d4f8g7g2g3e8g8f1g2d7d6g1f3b8c6e1g1a7a6h2h3a8b8c1e3b7b5c4b5a6b5\r
+c2c4g8f6b1c3g7g6e2e4d7d6d2d4f8g7f2f4c7c5d4d5e8g8g1f3e7e6f1e2e6d5e4d5f8e8e1g1f6g4\r
+c2c4g8f6b1c3g7g6e2e4d7d6g2g3c7c5f1g2b8c6g1e2f8g7e1g1e8g8d2d3a7a6a1b1a8b8a2a3b7b5\r
+c2c4g8f6b1c3g7g6e2e4f8g7d2d4d7d6g1f3e8g8f1e2e7e5d4e5d6e5d1d8f8d8c1g5d8e8c3d5f6d5\r
+c2c4g8f6b1c3g7g6g1f3f8g7g2g3e8g8f1g2d7d6e1g1b8c6d2d3e7e5a1b1a7a5a2a3f8e8f3d2c6d4\r
+c2c4g8f6b1c3g7g6g2g3f8g7f1g2d7d6g1f3e8g8e1g1c7c5d2d4b8c6d4d5c6a5d1d3a7a6f3d2a8b8\r
+c2c4g8f6b1c3g7g6g2g3f8g7f1g2e8g8d2d4d7d6g1f3b8c6e1g1a7a6a2a3c8g4c1e3e7e5d4e5d6e5\r
+c2c4g8f6b1c3g7g6g2g3f8g7f1g2e8g8d2d4d7d6g1f3b8c6e1g1a7a6d4d5c6a5f3d2c7c5d1c2e7e5\r
+c2c4g8f6b1c3g7g6g2g3f8g7f1g2e8g8d2d4d7d6g1f3b8d7e1g1e7e5e2e4e5d4f3d4d7c5f2f3a7a5\r
+c2c4g8f6b1c3g7g6g2g3f8g7f1g2e8g8d2d4d7d6g1f3c7c6e1g1c8f5f3h4f5e6d4d5c6d5c4d5e6d7\r
+c2c4g8f6b1c3g7g6g2g3f8g7f1g2e8g8d2d4d7d6g1f3c8g4h2h3g4f3g2f3b8c6f3g2f6d7e2e3e7e5\r
+c2c4g8f6b1c3g7g6g2g3f8g7f1g2e8g8e2e4c7c5g1e2b8c6e1g1d7d6a2a3c8d7h2h3f6e8d2d3e8c7\r
+c2c4g8f6b1c3g7g6g2g3f8g7f1g2e8g8f2f4c7c5g1f3d7d5c4d5f6d5e1g1d5c7b2b3b8c6c1b2a8b8\r
+c2c4g8f6b1c3g7g6g2g3f8g7f1g2e8g8g1f3c7c5e1g1b8c6d2d4d7d6d4c5d6c5c1e3f6d7d1c1c6d4\r
+c2c4g8f6b1c3g7g6g2g3f8g7f1g2e8g8g1f3c7c5e1g1b8c6d2d4d7d6d4c5d6c5c1e3f6d7d1c1c6d4\r
+c2c4g8f6b1c3g7g6g2g3f8g7f1g2e8g8g1f3d7d6e1g1b8c6a1b1e7e5b2b4e5e4f3e1c8f5d2d3d6d5\r
+c2c4g8f6d2d4c7c6c1f4d8b6d1d2f6e4d2c2d7d5f2f3e7e5f4e5b6a5b1c3e4c3b2c3d5c4e2e4b7b5\r
+c2c4g8f6d2d4c7c6e2e3d7d5f1d3g7g6g1f3f8g7b1c3e8g8e1g1c8g4h2h3g4f3d1f3e7e6f1d1b8d7\r
+c2c4g8f6d2d4d7d6g1f3g7g6b1c3f8g7g2g3e8g8f1g2b8d7e1g1e7e5e2e4c7c6b2b3e5d4f3d4d7c5\r
+c2c4g8f6d2d4e7e6b1c3f8b4a2a3b4c3b2c3b8c6f2f3b7b6e2e4c8a6e4e5f6g8g1h3c6a5d1a4g8e7\r
+c2c4g8f6d2d4e7e6b1c3f8b4e2e3c7c5f1d3e8g8g1f3d7d5e1g1b7b6c4d5e6d5a2a3b4c3b2c3c8a6\r
+c2c4g8f6d2d4e7e6b1c3f8b4e2e3c7c5g1e2c5d4e3d4d7d5c4c5f6e4c1d2e4d2d1d2a7a5a2a3b4c3\r
+c2c4g8f6d2d4e7e6b1c3f8b4e2e3c7c5g1e2d7d5a2a3b4c3e2c3c5d4e3d4d5c4f1c4b8c6c1e3e8g8\r
+c2c4g8f6d2d4e7e6g1f3b7b6a2a3c8b7b1c3d7d5c4d5f6d5d1c2d5c3b2c3b8d7e2e4c7c5c1f4c5d4\r
+c2c4g8f6d2d4e7e6g1f3b7b6b1c3f8b4e2e3c7c5f1d3d7d5d4c5b6c5e1g1e8g8c3e2c8b7b2b3b8d7\r
+c2c4g8f6d2d4e7e6g1f3b7b6e2e3c8b7b1c3d7d5c4d5e6d5f1b5c7c6b5d3f8e7e1g1e8g8b2b3b8d7\r
+c2c4g8f6d2d4e7e6g1f3b7b6g2g3c8b7f1g2f8e7e1g1e8g8d1c2c7c5d4c5e7c5b1c3b8c6e2e4e6e5\r
+c2c4g8f6d2d4e7e6g1f3c7c5e2e3c5d4e3d4d7d5b1c3f8b4f1d3d5c4d3c4d8c7d1d3e8g8e1g1b7b6\r
+c2c4g8f6d2d4e7e6g1f3d7d5b1c3c7c5e2e3b8c6a2a3f8d6d4c5d6c5b2b4c5d6c1b2e8g8c4d5e6d5\r
+c2c4g8f6d2d4e7e6g1f3d7d5c1g5b8d7b1c3c7c6e2e3d8a5g5f6d7f6f1d3f8b4d1c2d5c4d3c4f6d5\r
+c2c4g8f6d2d4e7e6g2g3d7d5f1g2d5c4d1a4c8d7a4c4d7c6g1f3c6d5c4a4d8d7a4d1b8c6b1c3f8b4\r
+c2c4g8f6d2d4e7e6g2g3d7d5f1g2f8e7g1f3e8g8d1c2c7c5d4c5d8a5c2c3a5c5c4d5f6d5c3c5e7c5\r
+c2c4g8f6d2d4e7e6g2g3d7d5f1g2f8e7g1f3e8g8e1g1d5c4d1c2a7a6a2a4c8d7c2c4d7c6c1f4a6a5\r
+c2c4g8f6d2d4g7g6b1c3d7d5c1f4f8g7e2e3e8g8f4e5e7e6g1f3b8d7e5g3c7c6f1d3b7b6e1g1c8b7\r
+c2c4g8f6d2d4g7g6b1c3f8g7g2g3d7d5f1g2d5c4d1a4f6d7e2e3e8g8a4c4c7c5g1f3c5d4f3d4d7e5\r
+c2c4g8f6d2d4g7g6g2g3c7c6g1f3f8g7b1c3e8g8f1g2d7d5d1b3d5c4b3c4c8e6c4d3b8a6e1g1e6f5\r
+c2c4g8f6g1f3b7b6b1c3c8b7d2d4e7e6e2e3f8b4f1d3f6e4e1g1f7f5c3e2b4d6b2b3e8g8f3e5b8c6\r
+c2c4g8f6g1f3b7b6g2g3c7c5f1g2c8b7e1g1e7e6b1c3f8e7d2d4c5d4d1d4e8g8f1d1b8c6d4f4d8b8\r
+c2c4g8f6g1f3b7b6g2g3c8b7f1g2c7c5e1g1e7e6b1c3f8e7d2d4c5d4f3d4b7g2g1g2d8c8d1d3b8c6\r
+c2c4g8f6g1f3b7b6g2g3c8b7f1g2e7e6d2d4f8e7b1c3f6e4c1d2c7c5e1g1e8g8a1c1e7f6c3e4b7e4\r
+c2c4g8f6g1f3c7c5b1c3e7e6g2g3b7b6f1g2c8b7e1g1f8e7d2d4c5d4d1d4e8g8e2e4d8c8e4e5b8c6\r
+c2c4g8f6g1f3c7c5b1c3e7e6g2g3b7b6f1g2c8b7e1g1f8e7d2d4f6e4c3e4b7e4c1f4e8g8d1d2b8c6\r
+c2c4g8f6g1f3c7c5g2g3b7b6f1g2c8b7e1g1e7e6b2b3f8e7c1b2e8g8e2e3d7d5c4d5f6d5d2d4c5d4\r
+c2c4g8f6g1f3c7c5g2g3b8c6f1g2g7g6e1g1f8g7b1c3e8g8d2d4c5d4f3d4c6d4d1d4d7d6f1d1c8e6\r
+c2c4g8f6g1f3c7c5g2g3d7d5f1g2b8c6c4d5f6d5b1c3d5f6e1g1e7e6b2b3f8e7c1b2e8g8a1c1d8a5\r
+c2c4g8f6g1f3c7c6b1c3d7d5d2d4d5c4a2a4c8f5e2e3e7e6f1c4b8d7e1g1f8b4d1e2f5g6f1d1e8g8\r
+c2c4g8f6g1f3c7c6b1c3d7d5e2e3g7g6d2d4f8g7c4d5f6d5f1c4e8g8e1g1b7b6d1b3d5c3b2c3c8a6\r
+c2c4g8f6g1f3c7c6d2d4d7d5b1c3d5c4a2a4c8f5f3e5e7e6f2f3f8b4e5c4e8g8c1g5h7h6g5h4b8a6\r
+c2c4g8f6g1f3c7c6d2d4d7d5e2e3g7g6b1c3f8g7f1d3e8g8e1g1c8g4h2h3g4f3d1f3e7e6f1d1b8d7\r
+c2c4g8f6g1f3e7e6b1c3d7d5d2d4b8d7c4d5e6d5c1g5f8e7e2e3e8g8f1d3c7c6d1c2f8e8e1g1d7f8\r
+c2c4g8f6g1f3e7e6b1c3d7d5d2d4f8b4c4d5e6d5c1g5h7h6g5f6d8f6d1b3f6d6a2a3b4c3b3c3e8g8\r
+c2c4g8f6g1f3e7e6b1c3f8b4d1c2e8g8e2e3b7b6b2b3c8b7c1b2d7d5f1e2b8d7e1g1a7a6a1d1d8e7\r
+c2c4g8f6g1f3e7e6b1c3f8b4g2g4h7h6h1g1d7d6h2h4e6e5g4g5h6g5h4g5f6g4c3d5b4c5d2d4c5b6\r
+c2c4g8f6g1f3e7e6d2d4b7b6g2g3c8a6b2b3f8b4c1d2b4e7f1g2d7d5f3e5e8g8e1g1c7c6d2c3f6d7\r
+c2c4g8f6g1f3e7e6d2d4b7b6g2g3c8b7f1g2f8e7b1c3f6e4c1d2d7d6d4d5e4d2f3d2e8g8e1g1g8h8\r
+c2c4g8f6g1f3e7e6d2d4f8b4c1d2b4d2d1d2d7d6b1c3d8e7g2g3e8g8f1g2f8d8e1g1b8d7a1d1d7f8\r
+c2c4g8f6g1f3e7e6d2d4f8b4c1d2d8e7g2g3b8c6b1c3b4c3d2c3f6e4a1c1e8g8f1g2d7d6d4d5c6d8\r
+c2c4g8f6g1f3e7e6g2g3b7b6f1g2c8b7e1g1f8e7d2d4e8g8b1c3f6e4d1c2e4c3b2c3b8c6f3e5c6a5\r
+c2c4g8f6g1f3e7e6g2g3d7d5f1g2f8e7e1g1e8g8b2b3a7a5d2d4a5a4b1a3c7c6c1b2b8d7e2e3d8a5\r
+c2c4g8f6g1f3e7e6g2g3d7d5f1g2f8e7e1g1e8g8d2d4c7c6b2b3b8d7c1b2b7b6d1c2c8b7b1c3a8c8\r
+c2c4g8f6g1f3g7g6b1c3d7d5c4d5f6d5e2e4d5c3d2c3d8d1e1d1c8g4f1e2b8d7c1e3e7e5f3d2\r
+c2c4g8f6g1f3g7g6g2g3f8g7f1g2e8g8d2d4d7d6b1c3b8d7e1g1e7e5e2e4c7c6h2h3d8b6d4d5c6d5\r
+c2c4g8f6g1f3g7g6g2g3f8g7f1g2e8g8e1g1d7d5c4d5f6d5d2d4c7c5d4c5b8a6f3g5d5b4b1c3h7h6\r
+c2c4g8f6g2g3c7c5f1g2d7d5c4d5f6d5b1c3d5c7d2d3e7e5c1e3b8c6g2c6b7c6d1a4c8d7a1c1a8b8\r
+c2c4g8f6g2g3c7c6g1f3d7d5b2b3c8f5c1a3g7g6d2d3f8g7b1d2d8b6f1g2f6g4d3d4b8a6e1g1a6b4\r
+c2c4g8f6g2g3c7c6g1f3d7d5b2b3c8f5f1g2e7e6c1b2b8d7e1g1h7h6d2d3f8e7b1d2e8g8a2a3a7a5\r
+c2c4g8f6g2g3c7c6g1f3d7d5b2b3c8f5f1g2e7e6e1g1b8d7c1b2f8e7b1c3e8g8f3h4f5g4h2h3g4h5\r
+c2c4g8f6g2g3c7c6g1f3d7d5b2b3g7g6c1b2f8g7f1g2d8b6d1c1e8g8e1g1b8d7c4d5c6d5b2d4b6d6\r
+c2c4g8f6g2g3e7e6f1g2d7d5d2d4d5c4d1a4b8d7g1f3a7a6a4c4b7b5c4c6a8b8c1f4f6d5f4g5f8e7\r
+c2c4g8f6g2g3e7e6f1g2d7d5g1f3d5c4d1a4b8d7a4c4a7a6e1g1b7b5c4c2c8b7b2b3c7c5c1b2f8e7\r
+c2c4g8f6g2g3e7e6f1g2d7d5g1f3d5c4e1g1a7a6d1c2b7b5f3e5f6d5d2d3c4d3e5d3c8b7f1d1d8c8\r
+c2c4g8f6g2g3e7e6f1g2d7d5g1f3d5d4b2b4c7c5c1b2d8b6d1b3b8c6b4b5c6a5b3c2f8d6e2e3e6e5\r
+c2c4g8f6g2g3e7e6f1g2d7d5g1f3f8e7d2d4e8g8b1d2b7b6e1g1c8b7c4d5e6d5f3e5b8d7d2f3c7c5\r
+c2c4g8f6g2g3g7g6f1g2f8g7b1c3c7c5d2d3b8c6c1d2d7d6d1c1c6d4a1b1a8b8d2h6d4c2e1f1g7h6\r
+c2c4g8f6g2g3g7g6f1g2f8g7d2d4e8g8b1c3c7c6d4d5d7d6g1f3e7e5e1g1c6d5c4d5b8d7a2a4a7a5\r
+c2c4g8f6g2g3g7g6f1g2f8g7e2e4d7d6g1e2e8g8e1g1c7c5b1c3b8c6d2d3c8d7h2h3f6e8g3g4e8c7\r
+c2c4g8f6g2g3g7g6f1g2f8g7g1f3d7d6b1c3e7e5d2d3e8g8c1d2b8d7e1g1f8e8a1b1d7f8b2b4c7c6\r
+d2d3g7g6c2c3g8f6g1f3f8g7g2g3e8g8f1g2c7c5e1g1b8c6\r
+d2d3g7g6c2c3g8f6g2g3f8g7f1g2e8g8g1f3c7c5e1g1b8c6\r
+d2d3g7g6e2e4d7d6g1f3f8g7f1e2g8f6e1g1e8g8b1c3c7c5\r
+d2d3g7g6g1f3g8f6g2g3f8g7f1g2e8g8e1g1c7c5c2c3b8c6\r
+d2d3g7g6g2g3g8f6f1g2f8g7c2c3e8g8g1f3c7c5e1g1b8c6\r
+d2d4b7b5e2e4c8b7f2f3a7a6c1e3e7e6b1d2g8f6c2c3f8e7f1d3d7d6a2a4c7c6g1e2b8d7e1g1e8g8\r
+d2d4c7c5d4d5e7e5e2e4d7d6f2f4e5f4c1f4d8h4g2g3h4e7b1c3g7g5f4e3b8d7g1f3h7h6d1d2g8f6\r
+d2d4c7c6e2e4d7d5e4d5c6d5c2c4g8f6b1c3b8c6c1g5d8a5d1d2c8e6c4c5f6e4c3e4d5e4d2a5c6a5\r
+d2d4d7d5c1f4g8f6e2e3c8f5f1d3f5g6h2h3e7e6g1f3b8d7e1g1f8e7d1e2c7c5c2c3e8g8b1d2a8c8\r
+d2d4d7d5c1g5f7f6g5h4b8c6e2e3g8h6f1d3h6f5g1f3h7h5h4g3c6b4e3e4d5e4d3e4g7g5c2c3b4d5\r
+d2d4d7d5c2c4b8c6c4d5d8d5e2e3e7e5b1c3f8b4c1d2b4c3d2c3e5d4g1e2g8f6e2d4e8g8d4b5d5g5\r
+d2d4d7d5c2c4b8c6c4d5d8d5g1f3g8f6b1c3d5a5e2e3e7e5d4e5c6e5f1b5e5d7d1b3f8b4c1d2e8g8\r
+d2d4d7d5c2c4b8c6g1f3c8g4d1a4g4f3g2f3g8f6b1c3e7e6c1g5d5c4e1c1f8e7a4c4f6d5g5e7c6e7\r
+d2d4d7d5c2c4c7c6b1c3d5c4e2e4e7e5f1c4e5d4g1f3b7b5c3b5c8a6d1b3d8e7e1g1a6b5c4b5g8f6\r
+d2d4d7d5c2c4c7c6b1c3e7e6e2e4d5e4c3e4f8b4c1d2d8d4d2b4d4e4f1e2c6c5b4c3f7f6g1f3e4f4\r
+d2d4d7d5c2c4c7c6b1c3e7e6g1f3g8f6c1g5d5c4e2e4b7b5e4e5h7h6g5h4g7g5f3g5h6g5h4g5b8d7\r
+d2d4d7d5c2c4c7c6b1c3e7e6g1f3g8f6e2e3b8d7d1c2f8d6f1e2e8g8b2b3d8e7e1g1d5c4b3c4e6e5\r
+d2d4d7d5c2c4c7c6b1c3g8f6c1g5b8d7g1f3e7e6c4d5e6d5e2e3f8d6f1d3h7h6g5h4e8g8d1c2f8e8\r
+d2d4d7d5c2c4c7c6b1c3g8f6c4d5c6d5c1f4e7e6e2e3f8e7f1d3b8c6h2h3e8g8g1f3c8d7e1g1d8b6\r
+d2d4d7d5c2c4c7c6b1c3g8f6c4d5c6d5g1f3b8c6c1f4e7e6e2e3f8e7h2h3e7d6f1d3d6f4e3f4e8g8\r
+d2d4d7d5c2c4c7c6b1c3g8f6e2e3a7a6f1d3b7b5b2b3c8g4g1e2b8d7e1g1e7e6f2f3g4h5e2f4f8d6\r
+d2d4d7d5c2c4c7c6b1c3g8f6e2e3c8f5c4d5c6d5d1b3f5c8g1f3b8c6f3e5e7e6f1b5d8c7c1d2f8d6\r
+d2d4d7d5c2c4c7c6b1c3g8f6e2e3e7e6f1d3b8d7f2f4d5c4d3c4b7b5c4d3c8b7g1f3a7a6a2a4b5b4\r
+d2d4d7d5c2c4c7c6b1c3g8f6e2e3e7e6g1f3b8d7d1c2f8d6f1d3e8g8e1g1d5c4d3c4a7a6f1d1b7b5\r
+d2d4d7d5c2c4c7c6b1c3g8f6e2e3e7e6g1f3b8d7f1d3d5c4d3c4b7b5c4d3a7a6e3e4c6c5d4d5c8b7\r
+d2d4d7d5c2c4c7c6b1c3g8f6e2e3e7e6g1f3b8d7f1d3d5c4d3c4b7b5c4d3a7a6e3e4c6c5e4e5c5d4\r
+d2d4d7d5c2c4c7c6b1c3g8f6e2e3e7e6g1f3b8d7f1d3d5c4d3c4b7b5c4d3c8b7a2a3b5b4c3e4f6e4\r
+d2d4d7d5c2c4c7c6b1c3g8f6e2e3e7e6g1f3b8d7f1d3d5c4d3c4b7b5c4d3c8b7e1g1a7a6e3e4c6c5\r
+d2d4d7d5c2c4c7c6b1c3g8f6e2e3e7e6g1f3b8d7f1d3d5c4d3c4b7b5c4e2b5b4c3a4c8b7e1g1f8e7\r
+d2d4d7d5c2c4c7c6b1c3g8f6e2e3e7e6g1f3f8e7f1d3b8d7e1g1e8g8b2b3f8e8c1b2d7f8f3e5f8g6\r
+d2d4d7d5c2c4c7c6b1c3g8f6e2e3g7g6g1f3f8g7f1d3e8g8e1g1c8g4h2h3g4f3d1f3e7e6f1d1b8d7\r
+d2d4d7d5c2c4c7c6b1c3g8f6e2e3g7g6g1f3f8g7f1d3e8g8e1g1c8g4h2h3g4f3d1f3f8e8f1d1d8d6\r
+d2d4d7d5c2c4c7c6b1c3g8f6g1f3d5c4a2a4c6c5e2e4c5d4d1d4d8d4f3d4e7e6d4b5b8a6f1c4f8c5\r
+d2d4d7d5c2c4c7c6b1c3g8f6g1f3d5c4a2a4c8f5e2e3e7e6f1c4f8b4e1g1b8d7d1e2f5g6e3e4e8g8\r
+d2d4d7d5c2c4c7c6b1c3g8f6g1f3d5c4a2a4c8f5e2e3e7e6f1c4f8b4e1g1b8d7d1e2f5g6f1d1d8c7\r
+d2d4d7d5c2c4c7c6b1c3g8f6g1f3d5c4a2a4c8f5e2e3e7e6f1c4f8b4e1g1e8g8d1e2f5g4h2h3g4f3\r
+d2d4d7d5c2c4c7c6b1c3g8f6g1f3e7e6c1g5b8d7e2e3d8a5c4d5f6d5d1d2f8b4a1c1e8g8f1d3h7h6\r
+d2d4d7d5c2c4c7c6b1c3g8f6g1f3e7e6c1g5d5c4a2a4f8b4e2e4c6c5f1c4c5d4f3d4h7h6g5e3f6e4\r
+d2d4d7d5c2c4c7c6b1c3g8f6g1f3e7e6c1g5d5c4e2e4b7b5e4e5h7h6g5h4g7g5f3g5h6g5h4g5b8d7\r
+d2d4d7d5c2c4c7c6b1c3g8f6g1f3e7e6c1g5h7h6g5f6d8f6e2e3b8d7f1d3d5c4d3c4g7g6e1g1f8g7\r
+d2d4d7d5c2c4c7c6b1c3g8f6g1f3e7e6c1g5h7h6g5f6d8f6e2e3b8d7f1d3f6d8e1g1f8e7a2a3e8g8\r
+d2d4d7d5c2c4c7c6b1c3g8f6g1f3e7e6c4d5e6d5c1g5h7h6g5h4f8e7d1c2e8g8e2e3f6e4h4e7d8e7\r
+d2d4d7d5c2c4c7c6b1c3g8f6g1f3e7e6e2e3a7a6f1d3b7b5b2b3b8d7e1g1c8b7c4c5f8e7a2a3a6a5\r
+d2d4d7d5c2c4c7c6b1c3g8f6g1f3e7e6e2e3b8d7f1d3d5c4d3c4b7b5c4d3a7a6e3e4c6c5e4e5c5d4\r
+d2d4d7d5c2c4c7c6b1c3g8f6g1f3e7e6e2e3f8e7f1d3e8g8e1g1b8d7b2b3b7b6c1b2c8b7f3e5d5c4\r
+d2d4d7d5c2c4c7c6b1c3g8f6g1f3g7g6c4d5c6d5c1f4f8g7e2e3e8g8f1e2b8c6h2h3f6e4a1c1c8e6\r
+d2d4d7d5c2c4c7c6c4d5c6d5b1c3g8f6c1f4b8c6g1f3a7a6f3e5e7e6e2e3f8d6f4g3d6e5d4e5f6d7\r
+d2d4d7d5c2c4c7c6c4d5c6d5b1c3g8f6c1f4d8b6d1c2b8c6e2e3c8f5c2d2e7e6f1b5f8b4b5c6b6c6\r
+d2d4d7d5c2c4c7c6c4d5c6d5b1c3g8f6g1f3b8c6c1f4c8f5e2e3e7e6d1b3f8b4f1b5d8a5b5c6b7c6\r
+d2d4d7d5c2c4c7c6c4d5c6d5b1c3g8f6g1f3b8c6c1f4c8f5e2e3e7e6f3e5c6e5f4e5f6d7e5g3a7a6\r
+d2d4d7d5c2c4c7c6e2e3c8f5a2a3e7e6c4c5a7a5d1b3d8c7b1c3b8d7c3a4g8f6g1e2f8e7e2g3f5g6\r
+d2d4d7d5c2c4c7c6e2e3c8f5b1c3e7e6g1f3b8d7a2a3f8d6c4c5d6c7b2b4e6e5f1e2g8f6c1b2e5e4\r
+d2d4d7d5c2c4c7c6e2e3g8f6b1c3e7e6g1f3b8d7f1d3d5c4d3c4b7b5c4d3a7a6e3e4c6c5e4e5c5d4\r
+d2d4d7d5c2c4c7c6e2e3g8f6g1f3c8f5c4d5c6d5b1c3e7e6f3e5f6d7g2g4f5g6e5g6h7g6f1g2b8c6\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3a7a6c1g5d5c4a2a4c8e6e2e4b8d7d4d5c6d5e4d5e6g4f1c4g4f3\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3d5c4a2a4b8a6e2e3c8g4f1c4e7e6h2h3g4h5e1g1a6b4c4e2f8e7\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3d5c4a2a4c8f5e2e3e7e6f1c4b8d7d1e2f6e4e1g1f8b4c4d3b4c3\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3d5c4a2a4c8f5e2e3e7e6f1c4b8d7e1g1f8d6d1e2f6e4c3e4f5e4\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3d5c4a2a4c8f5e2e3e7e6f1c4f8b4e1g1b8d7d1e2e8g8e3e4f5g6\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3d5c4a2a4c8f5e2e3e7e6f1c4f8b4e1g1b8d7d1e2e8g8e3e4f5g6\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3d5c4a2a4c8f5e2e3e7e6f1c4f8b4e1g1b8d7d1e2e8g8e3e4f5g6\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3d5c4a2a4c8f5e2e3e7e6f1c4f8b4e1g1b8d7d1e2f5g6c4d3g6d3\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3d5c4a2a4c8f5e2e3e7e6f1c4f8b4e1g1b8d7d1e2f5g6e3e4e8g8\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3d5c4a2a4c8f5e2e3e7e6f1c4f8b4e1g1b8d7d1e2f6e4c4d3b4c3\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3d5c4a2a4c8f5e2e3e7e6f1c4f8b4e1g1b8d7f3h4e8g8f2f3f5g6\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3d5c4a2a4c8f5e2e3e7e6f1c4f8b4e1g1e8g8c1d2b8d7f1e1h7h6\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3d5c4a2a4c8f5e2e3e7e6f1c4f8b4e1g1e8g8c3e2h7h6e2g3f5h7\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3d5c4a2a4c8f5e2e3e7e6f1c4f8b4e1g1e8g8d1e2b8d7f1d1d8c7\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3d5c4a2a4c8f5e2e3e7e6f1c4f8b4e1g1e8g8d1e2f5g4h2h3g4f3\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3d5c4a2a4c8f5e2e3e7e6f1c4f8b4e1g1e8g8d1e2f5g4h2h3g4f3\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3d5c4a2a4c8f5e2e3e7e6f1c4f8b4e1g1e8g8d1e2f6e4c4d3b4c3\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3d5c4a2a4c8f5f3e5b8a6f2f3f6d7e5c4e7e5e2e4e5d4c3e2f8b4\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3d5c4a2a4c8f5f3e5b8d7e5c4d8c7g2g3e7e5d4e5d7e5c1f4f6d7\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3d5c4a2a4c8f5f3e5b8d7e5c4d8c7g2g3e7e5d4e5d7e5c1f4f6d7\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3d5c4a2a4c8f5f3e5b8d7e5c4d8c7g2g3e7e5d4e5d7e5c1f4f6d7\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3d5c4a2a4c8f5f3e5b8d7e5c4d8c7g2g3e7e5d4e5d7e5c1f4f6d7\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3d5c4a2a4c8f5f3e5e7e6c1g5f8b4e5c4d8d5g5f6d5c4d1d2g7f6\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3d5c4a2a4c8f5f3e5e7e6c1g5f8b4f2f3h7h6g5f6g7f6e5c4c6c5\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3d5c4a2a4c8f5f3e5e7e6c1g5f8e7f2f3h7h6e2e4f5h7g5e3b8d7\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3d5c4a2a4c8f5f3e5e7e6f2f3c6c5d4c5d8d1e1d1f8c5e2e4f5g6\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3d5c4a2a4c8f5f3e5e7e6f2f3f8b4c1g5c6c5d4c5d8d5d1d5e6d5\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3d5c4a2a4c8f5f3h4f5c8e2e3e7e5d4e5d8d1c3d1f8b4c1d2b4d2\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3d5c4a2a4c8g4f3e5g4h5h2h3b8a6g2g4h5g6f1g2a6b4e1g1g6c2\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3d5c4a2a4e7e6e2e4f8b4e4e5f6d5c1d2b4c3b2c3b7b5f3g5f7f6\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3d5c4a2a4e7e6e2e4f8b4e4e5f6e4d1c2d8d5f1e2c6c5e1g1e4c3\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3d5c4e2e3b7b5a2a4b5b4c3b1c8a6f1e2e7e6f3e5f8e7e1g1e8g8\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3e7e6c1g5b8d7e2e3d8a5c4d5f6d5d1d2d7b6f1d3d5c3b2c3b6d5\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3e7e6c1g5b8d7e2e3d8a5c4d5f6d5d1d2d7b6f1d3f8b4a1c1f7f6\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3e7e6c1g5b8d7e2e3d8a5c4d5f6d5d1d2f8b4a1c1h7h6g5h4e8g8\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3e7e6c1g5b8d7e2e3d8a5f3d2f8b4d1c2d5c4g5f6d7f6d2c4a5c7\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3e7e6c1g5b8d7e2e3d8a5f3d2f8b4d1c2e8g8f1e2d5c4g5f6d7f6\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3e7e6c1g5h7h6g5f6d8f6e2e3b8d7f1d3d5c4d3c4g7g6e1g1f8g7\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3e7e6c1g5h7h6g5f6d8f6e2e3f8d6f1d3f6e7e1g1b8d7c4c5d6c7\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3e7e6c1g5h7h6g5h4d5c4e2e4g7g5h4g3b7b5f1e2b5b4c3a4f6e4\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3e7e6d1b3f8e7c1g5d5c4b3c4b7b6e2e4c8a6c4b3a6f1h1f1e8g8\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3e7e6e2e3a7a6c4c5b8d7b2b4a6a5b4b5e6e5d1a4d8c7c1a3e5e4\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3e7e6e2e3b8d7d1c2b7b6f1d3c8b7e1g1f8d6f1d1d8e7b2b3e8g8\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3e7e6e2e3b8d7d1c2b7b6f1d3c8b7e1g1f8e7b2b3d8c7c1b2a8d8\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3e7e6e2e3b8d7d1c2b7b6f1d3c8b7e1g1f8e7b2b3d8c7c1b2a8d8\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3e7e6e2e3b8d7d1c2f8d6f1d3e8g8e1g1d5c4d3c4b7b5c4d3c8b7\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3e7e6e2e3b8d7d1c2f8d6f1e2e8g8e1g1d5c4e2c4d8e7a2a3e6e5\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3e7e6e2e3b8d7d1c2f8d6f1e2e8g8e1g1d5c4e2c4d8e7h2h3a7a6\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3e7e6e2e3b8d7d1c2f8d6f1e2e8g8e1g1d5c4e2c4d8e7h2h3c6c5\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3e7e6e2e3b8d7d1c2f8d6f1e2e8g8e1g1d5c4e2c4d8e7h2h3c6c5\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3e7e6e2e3b8d7d1c2f8d6f1e2e8g8e1g1f8e8f1d1d8e7a2a3b7b6\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3e7e6e2e3b8d7f1d3d5c4d3c4b7b5c4d3b5b4c3e4f6e4d3e4c8b7\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3e7e6e2e3b8d7f1d3d5c4d3c4b7b5c4d3c8b7e1g1a7a6e3e4c6c5\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3e7e6e2e3b8d7f1d3d5c4d3c4b7b5c4d3c8b7e1g1a7a6e3e4c6c5\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3e7e6e2e3b8d7f1d3d5c4d3c4b7b5c4d3c8b7e1g1a7a6e3e4c6c5\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3e7e6e2e3b8d7f1d3f8b4e1g1e8g8a2a3b4c3b2c3d8c7f3d2e6e5\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3e7e6e2e3b8d7f1e2f8d6e1g1e8g8d1c2d5c4e2c4a7a6f1d1d8e7\r
+d2d4d7d5c2c4c7c6g1f3g8f6c4d5c6d5b1c3b8c6c1f4c8f5e2e3e7e6d1b3f8b4f1b5d8a5e1g1e8g8\r
+d2d4d7d5c2c4c7c6g1f3g8f6c4d5c6d5b1c3b8c6c1f4e7e6e2e3f8d6f4d6d8d6f1e2e8g8e1g1c8d7\r
+d2d4d7d5c2c4c7c6g1f3g8f6d1c2d5c4c2c4c8f5g2g3e7e6f1g2b8d7e1g1f8e7e2e3e8g8c4e2c6c5\r
+d2d4d7d5c2c4c7c6g1f3g8f6e2e3c8f5b1c3e7e6f3h4f5g6d1b3d8b6h4g6h7g6c1d2b8d7f1d3f8e7\r
+d2d4d7d5c2c4c7c6g1f3g8f6e2e3c8f5c4d5c6d5b1c3e7e6d1b3d8c8c1d2b8c6a1c1f8e7f1b5e8g8\r
+d2d4d7d5c2c4c7c6g1f3g8f6e2e3c8f5c4d5c6d5b1c3e7e6f3e5f6d7d1b3d8c8c1d2b8c6a1c1f8e7\r
+d2d4d7d5c2c4c7c6g1f3g8f6e2e3c8f5c4d5f6d5f1c4e7e6e1g1b8d7d1e2f5g4h2h3g4h5e3e4d5b6\r
+d2d4d7d5c2c4c7c6g1f3g8f6e2e3c8f5f1d3f5d3d1d3e7e6e1g1b8d7b1d2f8e7b2b3e8g8c1b2a7a5\r
+d2d4d7d5c2c4c7c6g1f3g8f6e2e3e7e6b1c3a7a6c4c5b7b6c5b6b8d7c3a4d7b6c1d2b6a4d1a4d8b6\r
+d2d4d7d5c2c4c7c6g1f3g8f6e2e3e7e6b1c3a7a6c4c5b8d7b2b4a6a5b4b5f6e4c3e4d5e4f3d2f7f5\r
+d2d4d7d5c2c4c7c6g1f3g8f6e2e3e7e6f1d3b8d7b1d2f8e7e1g1e8g8b2b3a7a5a2a3c6c5c4d5e6d5\r
+d2d4d7d5c2c4c7c6g1f3g8f6e2e3e7e6f1d3b8d7b1d2f8e7e1g1e8g8b2b3b7b6c1b2c8b7d1e2a7a5\r
+d2d4d7d5c2c4c7c6g1f3g8f6e2e3e7e6f1d3b8d7b1d2f8e7e1g1e8g8e3e4d5e4d2e4b7b6d1e2c8b7\r
+d2d4d7d5c2c4c7c6g1f3g8f6e2e3e7e6f1d3b8d7e1g1d5c4d3c4f8d6b1d2e8g8c4b3d6c7d2c4b7b6\r
+d2d4d7d5c2c4c7c6g1f3g8f6e2e3e7e6f1d3c6c5e1g1b8c6b1c3f8e7a2a3a7a5d4c5e7c5d1e2e8g8\r
+d2d4d7d5c2c4c7c6g1f3g8f6e2e3g7g6b1c3f8g7f1d3e8g8d1c2b8a6a2a3d5c4d3c4b7b5c4d3b5b4\r
+d2d4d7d5c2c4d5c4e2e3e7e5d4e5d8d1e1d1b8c6f1c4c6e5c4b5c7c6b5e2c8e6b1c3e8c8d1c2g8f6\r
+d2d4d7d5c2c4d5c4e2e3e7e5f1c4e5d4e3d4g8f6g1f3f8e7e1g1e8g8h2h3b8c6b1c3c6a5c4d3c8e6\r
+d2d4d7d5c2c4d5c4e2e4b8c6c1e3g8f6b1c3e7e5d4d5c6a5g1f3a7a6f3e5b7b5f1e2f8b4d1d4e8g8\r
+d2d4d7d5c2c4d5c4e2e4b8c6c1e3g8f6b1c3e7e5d4d5c6e7f1c4e7g6c4b5f6d7d1d2a7a6b5d3f8d6\r
+d2d4d7d5c2c4d5c4e2e4b8c6c1e3g8f6b1c3e7e5d4d5c6e7f1c4e7g6c4b5f6d7g1e2f8d6d1d2a7a6\r
+d2d4d7d5c2c4d5c4e2e4b8c6g1f3c8g4d4d5c6e5c1f4e5g6f4g3e7e5f1c4f8d6c4b5g4d7b5d7d8d7\r
+d2d4d7d5c2c4d5c4e2e4c7c5d4d5g8f6b1c3e7e6f1c4e6d5c3d5f6d5c4d5f8e7d1h5e8g8g1f3b8d7\r
+d2d4d7d5c2c4d5c4e2e4e7e5g1f3e5d4f1c4f8b4b1d2b8c6e1g1d8f6e4e5f6g6f3h4g6g4d2f3c8e6\r
+d2d4d7d5c2c4d5c4e2e4e7e5g1f3f8b4b1c3e5d4f3d4g8e7f1c4b8c6c1e3e8g8a2a3b4c3b2c3c6a5\r
+d2d4d7d5c2c4d5c4e2e4e7e5g1f3f8b4c1d2b4d2d1d2e5d4d2d4g8f6d4d8e8d8b1c3c8e6f3e5b8c6\r
+d2d4d7d5c2c4d5c4e2e4g8f6e4e5f6d5f1c4b8c6b1c3d5b6c4b5c8d7g1f3e7e6e1g1\r
+d2d4d7d5c2c4d5c4e2e4g8f6e4e5f6d5f1c4d5b6c4b3b8c6c1e3c8f5b1c3e7e6g1e2f8e7a2a3e8g8\r
+d2d4d7d5c2c4d5c4e2e4g8f6e4e5f6d5f1c4d5b6c4b3b8c6g1f3c8g4b3f7e8f7f3g5f7e8d1g4d8d4\r
+d2d4d7d5c2c4d5c4e2e4g8f6e4e5f6d5f1c4d5b6c4b3c7c5d4c5d8d1e1d1b6d7e5e6f7e6b3e6b8a6\r
+d2d4d7d5c2c4d5c4e2e4g8f6e4e5f6d5f1c4d5b6c4d3b8c6c1e3c6b4d3e4f7f5e5f6e7f6b1c3f6f5\r
+d2d4d7d5c2c4d5c4e2e4g8f6e4e5f6d5f1c4d5b6c4d3b8c6c1e3c6b4d3e4f7f5e5f6e7f6b1c3f6f5\r
+d2d4d7d5c2c4d5c4g1f3a7a6e2e3c8g4f1c4e7e6b1d2b8d7e1g1g8f6h2h3g4h5b2b3c7c5c4e2c5d4\r
+d2d4d7d5c2c4d5c4g1f3a7a6e2e3c8g4f1c4e7e6d1b3g4f3g2f3b7b5c4e2b8d7a2a4b5b4b1d2g8f6\r
+d2d4d7d5c2c4d5c4g1f3a7a6e2e3c8g4f1c4e7e6d1b3g4f3g2f3b7b5c4e2b8d7a2a4b5b4f3f4g8f6\r
+d2d4d7d5c2c4d5c4g1f3a7a6e2e3c8g4f1c4e7e6h2h3g4h5b1c3g8f6e1g1b8c6a2a3f8d6c4e2e8g8\r
+d2d4d7d5c2c4d5c4g1f3a7a6e2e3g8f6f1c4e7e6d1e2c7c5d4c5f8c5e1g1b7b5c4d3b8c6b1c3c8b7\r
+d2d4d7d5c2c4d5c4g1f3a7a6e2e3g8f6f1c4e7e6e1g1c7c5d1e2b7b5c4b3c8b7a2a4b8d7e3e4c5d4\r
+d2d4d7d5c2c4d5c4g1f3a7a6e2e3g8f6f1c4e7e6e1g1c7c5d1e2b8c6b1c3b7b5c4b3f8e7d4c5e7c5\r
+d2d4d7d5c2c4d5c4g1f3a7a6e2e3g8f6f1c4e7e6e1g1c7c5d4c5d8d1f1d1f8c5a2a3b7b5c4e2c8b7\r
+d2d4d7d5c2c4d5c4g1f3b8d7d1a4c7c6a4c4g8f6g2g3g7g6b1c3f8g7f1g2e8g8e1g1d8a5e2e4a5h5\r
+d2d4d7d5c2c4d5c4g1f3c7c5d4d5e7e6b1c3e6d5d1d5d8d5c3d5f8d6e2e4g8e7f1c4e7d5c4d5b8a6\r
+d2d4d7d5c2c4d5c4g1f3c7c5d4d5e7e6b1c3e6d5d1d5d8d5c3d5f8d6f3d2g8e7d2c4e7d5c4d6e8e7\r
+d2d4d7d5c2c4d5c4g1f3c7c5e2e3c5d4f1c4d8c7d1b3e7e6f3d4a7a6b1c3g8f6c1d2c8d7a1c1b8c6\r
+d2d4d7d5c2c4d5c4g1f3c7c5e2e3g8f6f1c4e7e6d1e2a7a6d4c5f8c5e1g1b8c6e3e4d8c7e4e5f6g4\r
+d2d4d7d5c2c4d5c4g1f3e7e6e2e3a7a6f1c4g8f6b1c3c7c5c4d3b8c6e1g1c5d4e3d4f8e7a2a3e8g8\r
+d2d4d7d5c2c4d5c4g1f3e7e6e2e3c7c5f1c4g8f6e1g1b8c6d1e2c5d4f1d1f8e7e3d4e8g8b1c3c6a5\r
+d2d4d7d5c2c4d5c4g1f3e7e6e2e3g8f6f1c4a7a6e1g1c7c5d4c5d8d1f1d1f8c5b1d2e8g8a2a3b7b5\r
+d2d4d7d5c2c4d5c4g1f3g8f6b1c3a7a6e2e4b7b5e4e5f6d5f3g5e7e6d1f3d8d7c3d5e6d5a2a3b8c6\r
+d2d4d7d5c2c4d5c4g1f3g8f6b1c3c7c5d4d5c8f5d1a4b8d7a4c4e7e6e2e4e6d5e4d5f8d6c1g5e8g8\r
+d2d4d7d5c2c4d5c4g1f3g8f6d1a4b8c6b1c3c8g4f3e5g4d7a4c4e7e6c1g5f8e7g5f6e7f6e5d7d8d7\r
+d2d4d7d5c2c4d5c4g1f3g8f6d1a4b8c6b1c3f6d5e2e4d5b6a4d1c8g4d4d5c6e5c1f4e5g6f4e3e7e6\r
+d2d4d7d5c2c4d5c4g1f3g8f6d1a4c7c6a4c4c8f5b1c3e7e6c4b3d8b6b3b6a7b6f3h4b6b5h4f5e6f5\r
+d2d4d7d5c2c4d5c4g1f3g8f6d1a4c7c6a4c4c8g4b1d2g7g6g2g3f8g7f1g2e8g8e1g1b8a6b2b3c6c5\r
+d2d4d7d5c2c4d5c4g1f3g8f6e2e3c7c5f1c4e7e6e1g1a7a6a2a4b8c6d1e2c5d4f1d1f8e7e3d4e8g8\r
+d2d4d7d5c2c4d5c4g1f3g8f6e2e3c7c5f1c4e7e6e1g1a7a6c4b3b8c6d1e2c5d4f1d1f8e7e3d4c6a5\r
+d2d4d7d5c2c4d5c4g1f3g8f6e2e3c7c5f1c4e7e6e1g1a7a6c4d3c5d4e3d4f8e7b1c3e8g8c1g5b7b5\r
+d2d4d7d5c2c4d5c4g1f3g8f6e2e3c7c5f1c4e7e6e1g1a7a6d1e2b8c6f1d1b7b5c4b3c5c4b3c2c6b4\r
+d2d4d7d5c2c4d5c4g1f3g8f6e2e3c7c5f1c4e7e6e1g1b8c6b1c3f8e7d4c5d8d1f1d1e7c5a2a3e8e7\r
+d2d4d7d5c2c4d5c4g1f3g8f6e2e3c8g4f1c4e7e6b1c3b8d7e1g1f8d6h2h3g4h5e3e4e6e5c4e2e8g8\r
+d2d4d7d5c2c4d5c4g1f3g8f6e2e3e7e6f1c4c7c5e1g1a7a6a2a4b8c6d1e2c5d4f1d1f8e7e3d4e8g8\r
+d2d4d7d5c2c4d5c4g1f3g8f6e2e3e7e6f1c4c7c5e1g1a7a6a2a4b8c6d1e2c5d4f1d1f8e7e3d4e8g8\r
+d2d4d7d5c2c4d5c4g1f3g8f6e2e3e7e6f1c4c7c5e1g1a7a6a2a4b8c6d1e2f8e7d4c5e7c5e3e4f6g4\r
+d2d4d7d5c2c4d5c4g1f3g8f6e2e3e7e6f1c4c7c5e1g1a7a6a2a4b8c6d1e2f8e7d4c5e7c5e3e4f6g4\r
+d2d4d7d5c2c4d5c4g1f3g8f6e2e3e7e6f1c4c7c5e1g1a7a6d1e2b7b5c4b3c8b7b1c3b8d7f1d1f8e7\r
+d2d4d7d5c2c4d5c4g1f3g8f6e2e3e7e6f1c4c7c5e1g1a7a6d1e2b7b5c4b3c8b7f1d1b8d7a2a4f8e7\r
+d2d4d7d5c2c4d5c4g1f3g8f6e2e3e7e6f1c4c7c5e1g1a7a6d1e2b7b5c4b3c8b7f1d1b8d7b1c3f8e7\r
+d2d4d7d5c2c4d5c4g1f3g8f6e2e3e7e6f1c4c7c5e1g1a7a6d1e2b8d7b1c3b7b5c4b3c8b7f1d1b5b4\r
+d2d4d7d5c2c4d5c4g1f3g8f6e2e3e7e6f1c4c7c5e1g1a7a6d1e2c5d4e3d4f8e7b1c3b7b5c4b3c8b7\r
+d2d4d7d5c2c4d5c4g1f3g8f6e2e3e7e6f1c4c7c5e1g1a7a6d4c5d8c7d1e2f8c5e3e4b8c6b1c3f6g4\r
+d2d4d7d5c2c4d5c4g1f3g8f6e2e3e7e6f1c4c7c5e1g1a7a6d4c5d8d1f1d1f8c5b2b3b7b5c4e2c8b7\r
+d2d4d7d5c2c4d5c4g1f3g8f6e2e3e7e6f1c4c7c5e1g1a7a6d4c5d8d1f1d1f8c5b2b3b8d7c1b2b7b5\r
+d2d4d7d5c2c4d5c4g1f3g8f6e2e3e7e6f1c4c7c5e1g1a7a6d4c5d8d1f1d1f8c5b2b3b8d7c1b2b7b6\r
+d2d4d7d5c2c4d5c4g1f3g8f6e2e3e7e6f1c4f8b4b1c3e8g8e1g1b7b6f3e5c8b7d1b3b4c3b2c3b7d5\r
+d2d4d7d5c2c4e7e6b1c3c7c5c4d5e6d5g1f3b8c6c1g5f8e7g5e7g8e7d4c5d8a5e2e3a5c5f1d3c8g4\r
+d2d4d7d5c2c4e7e6b1c3c7c5c4d5e6d5g1f3b8c6c1g5f8e7g5e7g8e7e2e3c8g4d4c5d8a5d1a4a5a4\r
+d2d4d7d5c2c4e7e6b1c3c7c5c4d5e6d5g1f3b8c6g2g3c5c4f1g2f8b4e1g1g8e7a2a3b4a5e2e4e8g8\r
+d2d4d7d5c2c4e7e6b1c3c7c5c4d5e6d5g1f3b8c6g2g3c5c4f1g2f8b4e1g1g8e7e2e4d5e4c3e4e8g8\r
+d2d4d7d5c2c4e7e6b1c3c7c5c4d5e6d5g1f3b8c6g2g3g8f6f1g2c5d4f3d4f8c5d4c6b7c6e1g1e8g8\r
+d2d4d7d5c2c4e7e6b1c3c7c5c4d5e6d5g1f3b8c6g2g3g8f6f1g2f8e7e1g1c8e6d4c5e7c5c1g5d5d4\r
+d2d4d7d5c2c4e7e6b1c3c7c5c4d5e6d5g1f3b8c6g2g3g8f6f1g2f8e7e1g1e8g8c1g5c5c4f3e5c8e6\r
+d2d4d7d5c2c4e7e6b1c3c7c5c4d5e6d5g1f3b8c6g2g3g8f6f1g2f8e7e1g1e8g8c1g5c5d4f3d4h7h6\r
+d2d4d7d5c2c4e7e6b1c3c7c5c4d5e6d5g1f3b8c6g2g3g8f6f1g2f8e7e1g1e8g8c1g5c5d4f3d4h7h6\r
+d2d4d7d5c2c4e7e6b1c3c7c5c4d5e6d5g1f3b8c6g2g3g8f6f1g2f8e7e1g1e8g8c1g5c5d4f3d4h7h6\r
+d2d4d7d5c2c4e7e6b1c3c7c5c4d5e6d5g1f3b8c6g2g3g8f6f1g2f8e7e1g1e8g8c1g5c8e6d4c5e7c5\r
+d2d4d7d5c2c4e7e6b1c3c7c5c4d5e6d5g1f3b8c6g2g3g8f6f1g2f8e7e1g1e8g8d4c5e7c5c1g5d5d4\r
+d2d4d7d5c2c4e7e6b1c3c7c5c4d5e6d5g1f3c5d4d1d4g8f6e2e4b8c6f1b5d5e4b5c6b7c6d4d8e8d8\r
+d2d4d7d5c2c4e7e6b1c3c7c5c4d5e6d5g1f3c8e6e2e4d5e4c3e4b8c6c1e3c5d4f3d4d8a5e4c3e8c8\r
+d2d4d7d5c2c4e7e6b1c3c7c5e2e3g8f6g1f3b8c6a2a3c5d4e3d4f8e7f1d3d5c4d3c4e8g8e1g1a7a6\r
+d2d4d7d5c2c4e7e6b1c3c7c5e2e3g8f6g1f3b8c6c4d5e6d5f1e2f8d6d4c5d6c5e1g1e8g8a2a3a7a5\r
+d2d4d7d5c2c4e7e6b1c3c7c5g1f3b8c6e2e3g8f6a2a3f8d6d4c5d6c5b2b4c5d6c1b2e8g8a1c1a7a5\r
+d2d4d7d5c2c4e7e6b1c3c7c5g1f3g8f6c4d5e6d5c1g5c8e6e2e3b8c6f1e2f8e7d4c5e7c5e1g1e8g8\r
+d2d4d7d5c2c4e7e6b1c3c7c6e2e3f7f5f2f4g8f6g1f3f8e7f1e2e8g8e1g1f6e4d1c2b8d7b2b3e4c3\r
+d2d4d7d5c2c4e7e6b1c3c7c6e2e3f7f5g1f3g8f6f1e2f8d6e1g1f6e4f3e5e8g8f2f3e4c3b2c3b7b6\r
+d2d4d7d5c2c4e7e6b1c3c7c6e2e3g8f6d1c2b8d7g1f3f8d6f1d3e8g8e1g1d5c4d3c4e6e5c3e4f6e4\r
+d2d4d7d5c2c4e7e6b1c3c7c6e2e3g8f6f2f3f8b4g1h3b8d7h3f4e8g8f1e2d5c4e2c4e6e5f4e2e5d4\r
+d2d4d7d5c2c4e7e6b1c3c7c6e2e3g8f6g1f3b8d7d1c2f8d6b2b3e8g8f1e2d5c4b3c4e6e5e1g1f8e8\r
+d2d4d7d5c2c4e7e6b1c3c7c6e2e3g8f6g1f3b8d7d1c2f8d6f1d3e8g8e1g1a7a6b2b3e6e5c4d5c6d5\r
+d2d4d7d5c2c4e7e6b1c3c7c6e2e3g8f6g1f3b8d7d1c2f8d6f1d3e8g8e1g1d5c4d3c4b7b5c4e2c8b7\r
+d2d4d7d5c2c4e7e6b1c3c7c6e2e3g8f6g1f3b8d7f1d3d5c4d3c4b7b5c4d3a7a6e3e4c6c5d4d5c5c4\r
+d2d4d7d5c2c4e7e6b1c3c7c6e2e3g8f6g1f3f8d6f1d3b8d7e1g1e8g8e3e4d5e4c3e4f6e4d3e4h7h6\r
+d2d4d7d5c2c4e7e6b1c3c7c6e2e4d5e4c3e4f8b4c1d2b4d2d1d2g8f6e4f6d8f6g1f3e8g8f1e2c6c5\r
+d2d4d7d5c2c4e7e6b1c3c7c6e2e4d5e4c3e4f8b4c1d2d8d4d2b4d4e4f1e2b8a6b4c3g8e7c3g7h8g8\r
+d2d4d7d5c2c4e7e6b1c3c7c6g1f3g8f6c1g5b8d7c4d5e6d5e2e3f8d6f1d3d7f8f3e5d8b6e1g1d6e5\r
+d2d4d7d5c2c4e7e6b1c3f7f5c1f4g8f6e2e3f8e7d1c2c7c6f1d3e8g8g1f3f6e4f4b8a8b8e1g1e7d6\r
+d2d4d7d5c2c4e7e6b1c3f8b4c4d5e6d5c1f4g8f6a1c1c7c6e2e3e8g8f1d3f8e8g1f3b8d7e1g1d7f8\r
+d2d4d7d5c2c4e7e6b1c3f8e7c4d5e6d5c1f4c7c6d1c2g7g6e1c1g8f6f2f3b8a6e2e4a6b4c2b3c8e6\r
+d2d4d7d5c2c4e7e6b1c3f8e7c4d5e6d5c1f4c7c6d1c2g7g6e2e3c8f5c2d2b8d7f2f3d7b6e3e4f5e6\r
+d2d4d7d5c2c4e7e6b1c3f8e7c4d5e6d5c1f4c7c6e2e3c8f5g1e2b8d7e2g3f5g6f1e2g8f6h2h4h7h5\r
+d2d4d7d5c2c4e7e6b1c3f8e7c4d5e6d5c1f4c7c6e2e3c8f5g2g4f5e6f1d3b8d7h2h3h7h5g4h5d7f6\r
+d2d4d7d5c2c4e7e6b1c3f8e7c4d5e6d5c1f4c7c6e2e3c8f5g2g4f5e6h2h3e7d6g1e2g8e7d1b3e6c8\r
+d2d4d7d5c2c4e7e6b1c3f8e7c4d5e6d5c1f4c7c6e2e3c8f5g2g4f5e6h2h3g8f6f1d3c6c5g1f3b8c6\r
+d2d4d7d5c2c4e7e6b1c3f8e7c4d5e6d5c1f4c7c6e2e3c8f5g2g4f5e6h2h3g8f6g1f3b8d7f1d3d7b6\r
+d2d4d7d5c2c4e7e6b1c3f8e7c4d5e6d5c1f4c7c6e2e3c8f5g2g4f5e6h2h4b8d7h4h5g8h6f1e2d7b6\r
+d2d4d7d5c2c4e7e6b1c3f8e7c4d5e6d5c1f4g8f6d1c2e8g8e2e3c7c5d4c5e7c5g1f3b8c6f1e2d5d4\r
+d2d4d7d5c2c4e7e6b1c3f8e7c4d5e6d5c1f4g8f6e2e3e8g8f1d3c7c5g1f3b8c6e1g1c8g4d4c5e7c5\r
+d2d4d7d5c2c4e7e6b1c3f8e7c4d5e6d5c1f4g8f6e2e3e8g8g1f3c8f5h2h3c7c6g2g4f5g6f3e5f6d7\r
+d2d4d7d5c2c4e7e6b1c3f8e7g1f3g8f6c1f4e8g8e2e3c7c5d4c5e7c5d1c2b8c6a1d1d8a5a2a3c5e7\r
+d2d4d7d5c2c4e7e6b1c3f8e7g1f3g8f6c1g5e8g8e2e3b8d7a1c1a7a6c4c5c7c6f1d3b7b6c5b6c6c5\r
+d2d4d7d5c2c4e7e6b1c3f8e7g1f3g8f6c1g5e8g8e2e3h7h6g5h4b7b6f1e2c8b7h4f6e7f6c4d5e6d5\r
+d2d4d7d5c2c4e7e6b1c3f8e7g1f3g8f6c1g5e8g8e2e3h7h6g5h4b7b6h4f6e7f6c4d5e6d5d1d2c8e6\r
+d2d4d7d5c2c4e7e6b1c3f8e7g1f3g8f6c1g5h7h6g5f6e7f6e2e3e8g8a1c1c7c6f1d3b8d7e1g1d5c4\r
+d2d4d7d5c2c4e7e6b1c3f8e7g1f3g8f6c1g5h7h6g5f6e7f6e2e3e8g8a1c1c7c6f1d3b8d7e1g1d5c4\r
+d2d4d7d5c2c4e7e6b1c3f8e7g1f3g8f6c1g5h7h6g5f6e7f6e2e3e8g8a1c1c7c6f1d3b8d7e1g1d5c4\r
+d2d4d7d5c2c4e7e6b1c3f8e7g1f3g8f6c1g5h7h6g5f6e7f6e2e3e8g8d1c2b8a6a1d1c7c5d4c5d8a5\r
+d2d4d7d5c2c4e7e6b1c3f8e7g1f3g8f6c1g5h7h6g5f6e7f6e2e3e8g8d1d2d5c4f1c4b8d7e1g1c7c5\r
+d2d4d7d5c2c4e7e6b1c3f8e7g1f3g8f6c1g5h7h6g5h4b8d7e2e3e8g8a1c1c7c6f1d3d5c4d3c4b7b5\r
+d2d4d7d5c2c4e7e6b1c3f8e7g1f3g8f6c1g5h7h6g5h4e8g8e2e3b7b6f1e2c8b7h4f6e7f6c4d5e6d5\r
+d2d4d7d5c2c4e7e6b1c3f8e7g1f3g8f6e2e3e8g8a2a3b7b6c4d5e6d5f1d3c7c5f3e5c8b7c3e2b8c6\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1f4c7c5e2e3c5d4e3d4d5c4f1c4b8c6g1f3f8e7e1g1e8g8f1e1c8d7\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5b8d7e2e3c7c6a2a3f8e7g1f3e8g8f1d3d5c4d3c4f6d5g5e7d8e7\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5b8d7e2e3c7c6a2a3f8e7g1f3e8g8f1d3d5c4d3c4f6d5g5e7d8e7\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5b8d7e2e3c7c6d1c2d8a5c4d5f6d5e3e4d5c3g5d2a5a4c2c3a7a5\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5b8d7e2e3c7c6f1d3d8a5g5h4d5c4d3c4b7b5c4b3c8b7g1f3c6c5\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5b8d7e2e3c7c6f1d3d8a5g5h4d5c4d3c4b7b5c4d3c8b7g1e2a7a6\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5b8d7e2e3c7c6g1f3d8a5f3d2f8b4d1c2d5c4g5f6d7f6d2c4a5c7\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5b8d7e2e3c7c6g1f3d8a5f3d2f8b4d1c2d5c4g5f6d7f6d2c4a5c7\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5b8d7e2e3f8e7g1f3e8g8a1c1a7a6a2a3b7b6c4d5e6d5f1d3c8b7\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5b8d7e2e3f8e7g1f3e8g8a1c1a7a6a2a3h7h6g5h4d5c4f1c4b7b5\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5b8d7e2e3f8e7g1f3e8g8a1c1a7a6a2a3h7h6g5h4d5c4f1c4c7c5\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5b8d7e2e3f8e7g1f3e8g8a1c1a7a6a2a3h7h6g5h4d5c4f1c4c7c5\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5b8d7e2e3f8e7g1f3e8g8a1c1a7a6a2a3h7h6g5h4d5c4f1c4c7c5\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5b8d7e2e3f8e7g1f3e8g8a1c1a7a6c4d5e6d5f1d3c7c6d1c2f8e8\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5b8d7e2e3f8e7g1f3e8g8a1c1a7a6c4d5e6d5f1d3c7c6d1c2h7h6\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5b8d7e2e3f8e7g1f3e8g8a1c1a7a6c4d5e6d5f1d3c7c6e1g1f6e8\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5c7c5c4d5e6d5g5f6g7f6e2e3c8e6d1b3d8d7f1b5b8c6e3e4e8c8\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5c7c5e2e3c5d4e3d4f8e7g1f3e8g8f1d3d5c4d3c4b8c6e1g1b7b6\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5c7c6e2e3b8d7c4d5e6d5f1d3f8e7g1f3e8g8d1c2f8e8e1g1d7f8\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5f8e7c4d5f6d5g5e7d8e7e2e4d5c3b2c3c7c5g1f3e8g8f1d3c5d4\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5f8e7e2e3b8d7g1f3e8g8a1c1h7h6g5h4c7c6f1d3d5c4d3c4b7b5\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5f8e7e2e3b8d7g1f3e8g8d1b3c7c6f1e2d5c4b3c4f6d5g5f4d5f4\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5f8e7e2e3e8g8a1c1h7h6g5h4b7b6c4d5f6d5c3d5e6d5h4e7d8e7\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5f8e7e2e3e8g8d1b3d5c4f1c4c7c5d4c5b8d7c5c6b7c6g1f3f6d5\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5f8e7e2e3e8g8d1b3d5c4f1c4c7c5d4c5b8d7g1f3d7c5b3c2a7a6\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5f8e7e2e3e8g8d1b3d5c4f1c4c7c5d4c5d8a5g1f3a5c5e1g1b8c6\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5f8e7e2e3e8g8d1b3d5c4f1c4c7c5d4c5d8a5g1f3a5c5e1g1b8c6\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5f8e7e2e3e8g8d1b3d5c4f1c4c7c5d4c5d8a5g1f3a5c5e1g1b8c6\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5f8e7e2e3e8g8d1b3d5c4f1c4c7c5d4c5f6d7g5e7d8e7g1f3d7c5\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5f8e7e2e3e8g8f1d3b8d7g1f3b7b6c4d5e6d5e1g1c8b7d1e2c7c5\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5f8e7e2e3e8g8g1f3b8d7d1c2c7c5a1d1d8a5f1d3h7h6g5h4c5d4\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5f8e7e2e3e8g8g1f3b8d7d1c2c7c6f1d3d5c4d3c4f6d5g5e7d8e7\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5f8e7e2e3e8g8g1f3h7h6g5h4b7b6c4d5f6d5h4e7d8e7a1c1d5f6\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5f8e7e2e3e8g8g1f3h7h6g5h4b7b6f1e2c8b7h4f6e7f6c4d5e6d5\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5f8e7e2e3e8g8g1f3h7h6g5h4b7b6f1e2c8b7h4f6e7f6c4d5e6d5\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5f8e7e2e3e8g8g1f3h7h6g5h4b7b6f1e2c8b7h4f6e7f6c4d5e6d5\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5f8e7e2e3f6e4g5e7d8e7c4d5e4c3b2c3e6d5d1b3c7c6c3c4e8g8\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5f8e7e2e3f6e4g5e7d8e7f1d3e4c3b2c3b8d7g1f3e6e5d4e5d5c4\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5f8e7e2e3f6e4g5e7d8e7f1d3e4c3b2c3b8d7g1f3e8g8e1g1f8d8\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5f8e7e2e3h7h6g5h4e8g8a1c1b7b6h4f6e7f6c4d5e6d5d1f3c8e6\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5f8e7g1f3b8d7e2e3e8g8c4c5f6e4c3e4d5e4g5e7d8e7f3d2d7f6\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5f8e7g1f3e8g8c4c5b7b6b2b4b6c5d4c5a7a5a2a3d5d4g5f6g7f6\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5f8e7g1f3e8g8e2e3b8d7a1c1c7c6f1d3d5c4d3c4f6d5g5e7d8e7\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5f8e7g1f3e8g8e2e3b8d7c4c5c7c6f1d3h7h6g5h4e6e5d4e5f6e4\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5f8e7g1f3e8g8e2e3d5c4f1c4b8d7e1g1c7c5d1e2h7h6g5h4d7b6\r
+d2d4d7d5c2c4e7e6b1c3g8f6c4d5e6d5c1g5c7c6d1c2b8a6e2e3a6b4c2d2c8f5a1c1a7a5a2a3b4a6\r
+d2d4d7d5c2c4e7e6b1c3g8f6c4d5e6d5c1g5c7c6d1c2f8e7e2e3b8d7f1d3f6h5g5e7d8e7g1e2d7b6\r
+d2d4d7d5c2c4e7e6b1c3g8f6c4d5e6d5c1g5c7c6e2e3c8f5d1f3f5g6g5f6d8f6f3f6g7f6a1d1b8d7\r
+d2d4d7d5c2c4e7e6b1c3g8f6c4d5e6d5c1g5f8e7e2e3b8d7d1c2e8g8f1d3f8e8g1f3d7f8e1g1c7c6\r
+d2d4d7d5c2c4e7e6b1c3g8f6c4d5e6d5c1g5f8e7e2e3e8g8f1d3b8d7g1e2f8e8e1g1d7f8b2b4a7a6\r
+d2d4d7d5c2c4e7e6b1c3g8f6c4d5e6d5c1g5f8e7e2e3h7h6g5h4e8g8f1d3b7b6g1f3c8b7e1g1c7c5\r
+d2d4d7d5c2c4e7e6b1c3g8f6c4d5e6d5c1g5f8e7e2e3h7h6g5h4e8g8f1d3b7b6g1f3c8b7e1g1c7c5\r
+d2d4d7d5c2c4e7e6b1c3g8f6c4d5e6d5c1g5f8e7e2e3h7h6g5h4e8g8f1d3b7b6g1f3c8b7e1g1f6e4\r
+d2d4d7d5c2c4e7e6b1c3g8f6e2e3c7c5g1f3b8c6a2a3d5c4f1c4c5d4e3d4f8e7e1g1e8g8c1e3c8d7\r
+d2d4d7d5c2c4e7e6b1c3g8f6e2e3c7c5g1f3b8c6d4c5f8c5a2a3a7a5f1e2e8g8e1g1d5c4d1c2e6e5\r
+d2d4d7d5c2c4e7e6b1c3g8f6f2f3b8c6e2e3f8e7g1h3e8g8h3f2f8e8f1e2e7b4c1d2e6e5d4e5e8e5\r
+d2d4d7d5c2c4e7e6b1c3g8f6f2f3c7c5d4c5f8c5c4d5f6d5e2e4d5c3d1d8e8d8b2c3b8c6g1h3d8c7\r
+d2d4d7d5c2c4e7e6b1c3g8f6g1f3b8d7c1g5c7c6e2e3d8a5f3d2f8b4d1c2e8g8g5h4c6c5d2b3a5a4\r
+d2d4d7d5c2c4e7e6b1c3g8f6g1f3b8d7c1g5f8e7e2e3e8g8a1c1f8e8f1d3d5c4d3c4c7c5e1g1a7a6\r
+d2d4d7d5c2c4e7e6b1c3g8f6g1f3b8d7e2e3f8e7b2b3e8g8f1d3b7b6e1g1c8b7c1b2a7a6a1c1f6e4\r
+d2d4d7d5c2c4e7e6b1c3g8f6g1f3b8d7e2e3f8e7f1d3e8g8e1g1c7c5d1c2b7b6c4d5e6d5b2b3c8b7\r
+d2d4d7d5c2c4e7e6b1c3g8f6g1f3b8d7e2e3f8e7f1d3e8g8e1g1d5c4d3c4c7c5d1e2a7a6f1d1b7b5\r
+d2d4d7d5c2c4e7e6b1c3g8f6g1f3d5c4e2e3c7c5f1c4c5d4e3d4f8e7e1g1e8g8d1e2b8d7c4b3d7b6\r
+d2d4d7d5c2c4e7e6b1c3g8f6g1f3f8b4a2a3b4c3b2c3d5c4d1a4b8c6c1g5d8d5g5f6g7f6g2g3c8d7\r
+d2d4d7d5c2c4e7e6b1c3g8f6g1f3f8e7c1f4c7c5d4c5b8a6e2e3a6c5c4d5e6d5f1b5c8d7b5d7d8d7\r
+d2d4d7d5c2c4e7e6b1c3g8f6g1f3f8e7c1g5h7h6g5f6e7f6d1b3c7c6e1c1d5c4b3c4b7b5c4b3a7a5\r
+d2d4d7d5c2c4e7e6b1c3g8f6g1f3f8e7c4d5e6d5c1f4c7c6d1c2g7g6e2e3c8f5f1d3f5d3c2d3b8d7\r
+d2d4d7d5c2c4e7e6b1c3g8f6g1f3f8e7e2e3e8g8f1d3c7c5d4c5d5c4d3c4d8d1e1d1b8c6a2a3e7c5\r
+d2d4d7d5c2c4e7e6b1c3g8f6g1f3f8e7e2e3e8g8f1d3c7c5d4c5d5c4d3c4d8d1e1d1b8c6a2a3e7c5\r
+d2d4d7d5c2c4e7e6b1c3g8f6g1f3f8e7e2e3e8g8f1d3c7c5e1g1c5d4e3d4d5c4d3c4b8d7c4b3d7b6\r
+d2d4d7d5c2c4e7e6g1f3b8d7b1c3g8f6c1g5f8e7e2e3e8g8a1c1c7c6d1c2a7a6a2a3h7h6g5h4f8e8\r
+d2d4d7d5c2c4e7e6g1f3c7c5c4d5e6d5g2g3b8c6f1g2g8f6e1g1f8e7b1c3e8g8c1e3c8e6d4c5f6g4\r
+d2d4d7d5c2c4e7e6g1f3c7c5c4d5e6d5g2g3b8c6f1g2g8f6e1g1f8e7c1e3c5c4f3e5e8g8b2b3c4b3\r
+d2d4d7d5c2c4e7e6g1f3c7c5c4d5e6d5g2g3g8f6f1g2f8e7e1g1e8g8b1c3b8c6c1g5c5d4f3d4h7h6\r
+d2d4d7d5c2c4e7e6g1f3c7c5c4d5e6d5g2g3g8f6f1g2f8e7e1g1e8g8b1c3b8c6c1g5c5d4f3d4h7h6\r
+d2d4d7d5c2c4e7e6g1f3c7c5c4d5e6d5g2g3g8f6f1g2f8e7e1g1e8g8b1c3b8c6c1g5c5d4f3d4h7h6\r
+d2d4d7d5c2c4e7e6g1f3c7c6b1c3d5c4a2a4f8b4e2e3b7b5c1d2a7a5a4b5b4c3d2c3c6b5b2b3c8b7\r
+d2d4d7d5c2c4e7e6g1f3c7c6b1d2f7f5g2g3f8d6f1g2b8d7e1g1d8f6c4d5e6d5d2b3g8e7c1f4e8g8\r
+d2d4d7d5c2c4e7e6g1f3c7c6d1c2g8f6e2e3f6e4b1c3f7f5f3e5b8d7e5d3f8d6d3f4d7f6f2f3e4c3\r
+d2d4d7d5c2c4e7e6g1f3c7c6d1c2g8f6g2g3g7g6f1g2f8g7e1g1e8g8f1d1b8d7b1d2f8e8b2b3b7b6\r
+d2d4d7d5c2c4e7e6g1f3c7c6e2e3f7f5f1d3g8f6e1g1f8d6b2b3d8e7c1b2e8g8f3e5b7b6c4d5c6d5\r
+d2d4d7d5c2c4e7e6g1f3c7c6g2g3f7f5f1g2g8f6e1g1f8e7b2b3e8g8c1a3b7b6a3e7d8e7f3e5c8b7\r
+d2d4d7d5c2c4e7e6g1f3g8f6b1c3b8d7c1g5f8e7e2e3e8g8a1c1b7b6c4d5e6d5d1a4c7c5f1a6h7h6\r
+d2d4d7d5c2c4e7e6g1f3g8f6b1c3b8d7c4d5e6d5c1g5f8e7e2e3c7c6d1c2d7f8f1d3f8e6h2h4h7h6\r
+d2d4d7d5c2c4e7e6g1f3g8f6b1c3c7c5c1g5c5d4f3d4d5c4e2e3d8b6g5f6g7f6f1c4c8d7e1g1b8c6\r
+d2d4d7d5c2c4e7e6g1f3g8f6b1c3c7c6e2e3b8d7f1d3f8b4a2a3b4a5d1c2d8e7c1d2d5c4d3c4e6e5\r
+d2d4d7d5c2c4e7e6g1f3g8f6b1c3c7c6e2e3b8d7f1d3f8b4a2a3b4a5d1c2d8e7c1d2d5c4d3c4e6e5\r
+d2d4d7d5c2c4e7e6g1f3g8f6b1c3c7c6e2e3b8d7f1d3f8b4e1g1e8g8c1d2d8e7d1b3d5c4b3c4b4d6\r
+d2d4d7d5c2c4e7e6g1f3g8f6b1c3f8b4c1g5b8d7c4d5e6d5a1c1c7c6e2e3d8a5d1b3f6e4f1d3e4g5\r
+d2d4d7d5c2c4e7e6g1f3g8f6b1c3f8b4c1g5b8d7c4d5e6d5d1c2e8g8a2a3b4c3b2c3c7c5e2e3d8a5\r
+d2d4d7d5c2c4e7e6g1f3g8f6b1c3f8b4c1g5b8d7c4d5e6d5d1c2e8g8a2a3b4e7e2e3c7c5d4c5d7c5\r
+d2d4d7d5c2c4e7e6g1f3g8f6b1c3f8b4c1g5b8d7c4d5e6d5d1c2e8g8a2a3b4e7e2e3c7c5f1e2b7b6\r
+d2d4d7d5c2c4e7e6g1f3g8f6b1c3f8e7c1g5e8g8e2e3h7h6g5h4f6e4h4e7d8e7d1c2e4c3c2c3d5c4\r
+d2d4d7d5c2c4e7e6g1f3g8f6b1c3f8e7c1g5h7h6g5f6e7f6e2e3e8g8a1c1a7a6c4d5e6d5f1d3c7c6\r
+d2d4d7d5c2c4e7e6g1f3g8f6b1c3f8e7c1g5h7h6g5f6e7f6e2e3e8g8d1d2b8c6a1c1a7a6f1e2d5c4\r
+d2d4d7d5c2c4e7e6g1f3g8f6b1c3f8e7c1g5h7h6g5h4e8g8e2e3b7b6a1c1c8b7f1e2d5c4e2c4b8d7\r
+d2d4d7d5c2c4e7e6g1f3g8f6c1g5d5c4d1a4b8d7b1d2c7c5d2c4a7a6g5f6g7f6d4c5f8c5a4d1b7b5\r
+d2d4d7d5c2c4e7e6g1f3g8f6c1g5f8e7b1c3e8g8e2e3h7h6g5f4c7c5d4c5e7c5c4d5f6d5c3d5e6d5\r
+d2d4d7d5c2c4e7e6g1f3g8f6c1g5f8e7b1c3h7h6g5h4e8g8e2e3b7b6d1b3c8b7h4f6e7f6c4d5e6d5\r
+d2d4d7d5c2c4e7e6g1f3g8f6c4d5e6d5b1c3c7c6c1g5h7h6g5h4c8f5d1b3g7g5h4g3d8b6e2e3b8a6\r
+d2d4d7d5c2c4e7e6g1f3g8f6c4d5e6d5c1g5c7c6b1c3h7h6g5h4c8f5d1b3g7g5h4g3d8b6e2e3f6e4\r
+d2d4d7d5c2c4e7e6g1f3g8f6g2g3d5c4f1g2c7c5d1a4c8d7a4c4d7c6d4c5b8d7c1e3c6d5c4a4d5c6\r
+d2d4d7d5c2c4e7e6g1f3g8f6g2g3f8e7f1g2c7c6d1c2e8g8e1g1b7b6b1d2c8b7e2e4d5e4d2e4b8d7\r
+d2d4d7d5c2c4e7e6g1f3g8f6g2g3f8e7f1g2e8g8e1g1d5c4d1c2a7a6c2c4b7b5c4c2c8b7c1d2b7e4\r
+d2d4d7d5c2c4e7e6g2g3g8f6f1g2f8e7g1f3b8d7e1g1e8g8d1c2c7c6f1d1b7b6b2b3c8b7b1c3a8c8\r
+d2d4d7d5c2c4e7e6g2g3g8f6f1g2f8e7g1f3e8g8e1g1d5c4b1d2c7c5d4c5b8c6d1c2e7c5d2c4d8e7\r
+d2d4d7d5c2c4g8f6b1c3e7e6e2e3b8d7g1f3f8b4f1d3d5c4d3c4f6e4d1c2e4c3b2c3b4d6e1g1e8g8\r
+d2d4d7d5c2c4g8f6c4d5f6d5e2e4d5f6b1c3e7e5d4e5d8d1e1d1f6g4c3d5e8d7g1h3c7c6d5c3g4e5\r
+d2d4d7d5e2e3e7e6f1d3c7c5b2b3b8c6g1f3g8f6e1g1c8d7c1b2a8c8c2c3f8d6b1d2e6e5d4e5c6e5\r
+d2d4d7d5e2e3g8f6c2c4e7e6b1c3f8e7g1f3e8g8f1e2d5c4e2c4c7c5e1g1b8c6d4c5e7c5d1d8f8d8\r
+d2d4d7d5g1f3b8c6c1f4c8f5e2e3e7e6f1d3g8e7e1g1f5d3d1d3e7g6f4g3f8d6g3d6c7d6b1d2e8g8\r
+d2d4d7d5g1f3b8c6c2c4c8g4c4d5g4f3g2f3d8d5e2e3e7e5b1c3f8b4c1d2b4c3b2c3d5d6a1b1b7b6\r
+d2d4d7d5g1f3c7c5c2c4c5d4c4d5g8f6d1a4d8d7a4d4d7d5b1c3d5d4f3d4c8d7d4b5e8d8c1e3b8c6\r
+d2d4d7d5g1f3c7c5c2c4d5c4d4d5e7e6b1c3e6d5d1d5d8d5c3d5f8d6f3d2g8e7d2c4e7d5c4d6e8e7\r
+d2d4d7d5g1f3c7c5c2c4d5c4e2e3e7e6f1c4g8f6e1g1a7a6c4b3b8c6d1e2f8e7f1d1c5d4e3d4c6a5\r
+d2d4d7d5g1f3c7c5c2c4e7e6c4d5e6d5b1c3b8c6g2g3g8f6f1g2f8e7e1g1e8g8c1g5c8e6d4c5e7c5\r
+d2d4d7d5g1f3c7c5c2c4e7e6c4d5e6d5g2g3g8f6f1g2f8e7e1g1e8g8b1c3b8c6c1g5c5d4f3d4h7h6\r
+d2d4d7d5g1f3c7c5c2c4e7e6c4d5e6d5g2g3g8f6f1g2f8e7e1g1e8g8b1c3b8c6c1g5c5d4f3d4h7h6\r
+d2d4d7d5g1f3c7c5c2c4e7e6c4d5e6d5g2g3g8f6f1g2f8e7e1g1e8g8b1c3b8c6c1g5c5d4f3d4h7h6\r
+d2d4d7d5g1f3c7c5c2c4e7e6c4d5e6d5g2g3g8f6f1g2f8e7e1g1e8g8b1c3b8c6c1g5c5d4f3d4h7h6\r
+d2d4d7d5g1f3c7c5d4c5e7e6e2e4f8c5e4d5e6d5f1b5b8c6e1g1g8f6b1c3e8g8c1g5c5e7g5f6e7f6\r
+d2d4d7d5g1f3c7c6c1g5h7h6g5h4d8b6b2b3b8d7e2e3e7e5f1e2e5e4f3d2c6c5d4c5d7c5b1c3g7g5\r
+d2d4d7d5g1f3c7c6c2c4d5c4e2e3c8g4f1c4e7e6b1c3b8d7h2h3g4h5a2a3g8f6e3e4f8e7e1g1e8g8\r
+d2d4d7d5g1f3c7c6c2c4e7e6e2e3f7f5f1e2g8f6e1g1f8d6b2b3d8e7c1b2b8d7f3e5e8g8b1d2g7g5\r
+d2d4d7d5g1f3c7c6c2c4e7e6e2e3g8f6f1d3c6c5e1g1d5c4d3c4a7a6f3e5d8c7b1d2b7b5c4e2c5d4\r
+d2d4d7d5g1f3c7c6c2c4g8f6b1c3e7e6e2e3b8d7d1c2f8d6f1d3e8g8e1g1d5c4d3c4a7a6f1d1b7b5\r
+d2d4d7d5g1f3c7c6c2c4g8f6b1c3e7e6e2e3b8d7d1c2f8d6f1d3e8g8e1g1d5c4d3c4a7a6f1d1b7b5\r
+d2d4d7d5g1f3c8f5c2c4e7e6c4d5e6d5d1b3b8c6c1g5f8e7g5e7g8e7e2e3d8d6b1d2e8g8a1c1a7a5\r
+d2d4d7d5g1f3c8f5c2c4e7e6d1b3b8c6c1d2d5c4b3b7g8e7b7b5a8b8b5a4b8b2b1a3d8d7a3c4b2b8\r
+d2d4d7d5g1f3e7e6c2c4a7a6c4c5b7b6c5b6c7c5b1c3b8d7c3a4c5c4c1d2f8d6b2b3c8b7e2e3c4b3\r
+d2d4d7d5g1f3e7e6c2c4c7c5c4d5e6d5b1c3b8c6g2g3g8f6f1g2c8e6e1g1f8e7d4c5e7c5c1g5d5d4\r
+d2d4d7d5g1f3e7e6c2c4d5c4e2e3c7c5f1c4g8f6e1g1a7a6e3e4b7b5c4d3c5d4a2a4b5a4e4e5f6d5\r
+d2d4d7d5g1f3e7e6c2c4f8e7b1c3g8f6c1g5h7h6g5h4e8g8e2e3b7b6f1d3c8b7e1g1b8d7a1c1c7c5\r
+d2d4d7d5g1f3e7e6c2c4g8f6c1g5b8d7e2e3f8e7b1c3e8g8a1c1f8e8d1c2c7c6f1d3d5c4d3c4f6d5\r
+d2d4d7d5g1f3e7e6c2c4g8f6c1g5f8e7e2e3b8d7b1c3e8g8a1c1b7b6c4d5e6d5f1b5c8b7d1a4a7a6\r
+d2d4d7d5g1f3e7e6c2c4g8f6c1g5f8e7e2e3b8d7b1c3e8g8a1c1c7c6d1c2c6c5c1d1d8a5c4d5f6d5\r
+d2d4d7d5g1f3e7e6g2g3c7c5f1g2c5d4e1g1g8f6f3d4e6e5d4f3b8c6c2c4d5d4e2e3f8c5e3d4c5d4\r
+d2d4d7d5g1f3e7e6g2g3c7c5f1g2c5d4e1g1g8f6f3d4e6e5d4f3b8c6c2c4d5d4e2e3f8c5e3d4c5d4\r
+d2d4d7d5g1f3e7e6g2g3c7c5f1g2g8f6e1g1c5d4f3d4e6e5d4f3b8c6c2c4d5d4e2e3d4d3b1c3f8b4\r
+d2d4d7d5g1f3g8f6c1f4e7e6e2e3f8e7f1d3c7c5c2c3b8c6b1d2a7a6h2h3b7b6f3e5c8b7d1e2f6d7\r
+d2d4d7d5g1f3g8f6c2c4c7c6b1c3d5c4a2a4c8f5e2e3e7e6f1c4f8b4e1g1b8d7d1e2e8g8e3e4f5g6\r
+d2d4d7d5g1f3g8f6c2c4c7c6b1c3e7e6c1g5b8d7e2e3d8a5c4d5f6d5d1d2f8b4a1c1e6e5a2a3b4d6\r
+d2d4d7d5g1f3g8f6c2c4c7c6b1c3e7e6c1g5b8d7e2e3d8a5c4d5f6d5d1d2f8b4a1c1e8g8f1d3e6e5\r
+d2d4d7d5g1f3g8f6c2c4c7c6b1c3e7e6c1g5b8d7e2e3d8a5f3d2f8b4d1c2e8g8a2a3d5c4g5f6d7f6\r
+d2d4d7d5g1f3g8f6c2c4c7c6b1c3e7e6c1g5b8d7e2e3d8a5f3d2f8b4d1c2e8g8f1e2e6e5g5f6d7f6\r
+d2d4d7d5g1f3g8f6c2c4c7c6b1c3e7e6c1g5d5c4e2e4b7b5e4e5h7h6g5h4g7g5f3g5h6g5h4g5f8e7\r
+d2d4d7d5g1f3g8f6c2c4c7c6b1c3e7e6c1g5h7h6g5f6d8f6e2e3b8d7f1d3d5c4d3c4f8d6e1g1f6e7\r
+d2d4d7d5g1f3g8f6c2c4c7c6b1c3e7e6d1b3b8d7c1g5d8a5g5d2a5b6e2e3d5c4b3c2f8d6f1c4e6e5\r
+d2d4d7d5g1f3g8f6c2c4c7c6b1c3e7e6e2e3b8d7d1c2f8d6f1d3e8g8e1g1d5c4d3c4a7a6f1d1b7b5\r
+d2d4d7d5g1f3g8f6c2c4c7c6b1c3g7g6c1g5f8g7e2e3e8g8f1d3c8e6d1e2b8d7e1g1h7h6g5h4e6g4\r
+d2d4d7d5g1f3g8f6c2c4c7c6e2e3c8f5b1c3e7e6f1d3f5d3d1d3b8d7e1g1f8d6e3e4d5e4c3e4f6e4\r
+d2d4d7d5g1f3g8f6c2c4c7c6e2e3c8f5d1b3d8c7c4d5c6d5f1b5b8c6c1d2e7e6e1g1f8d6d2b4e8g8\r
+d2d4d7d5g1f3g8f6c2c4c7c6e2e3c8f5f1d3f5d3d1d3e7e6e1g1b8d7b2b3f6e4f3d2d8h4g2g3h4h3\r
+d2d4d7d5g1f3g8f6c2c4d5c4b1c3a7a6a2a4c8f5e2e3e7e6f1c4f8b4e1g1e8g8d1e2f5g4f1d1b8d7\r
+d2d4d7d5g1f3g8f6c2c4d5c4b1c3a7a6d1a4b7b5a4c2b8c6e2e4e7e6c1g5c6d4f3d4d8d4a1d1d4c5\r
+d2d4d7d5g1f3g8f6c2c4d5c4b1c3c7c6a2a4c8f5e2e3e7e6f1c4f8b4e1g1b8d7d1e2f5g6e3e4b4c3\r
+d2d4d7d5g1f3g8f6c2c4d5c4b1c3c7c6a2a4c8f5e2e3e7e6f1c4f8b4e1g1b8d7f3h4e8g8h4f5e6f5\r
+d2d4d7d5g1f3g8f6c2c4d5c4b1c3c7c6a2a4c8f5f3e5e7e6f2f3f8b4e2e4f5e4f3e4f6e4c1d2d8d4\r
+d2d4d7d5g1f3g8f6c2c4d5c4b1c3c7c6a2a4c8g4f3e5g4h5g2g3e7e6f1g2f8b4e5c4f6d5d1b3b8a6\r
+d2d4d7d5g1f3g8f6c2c4d5c4b1c3e7e6e2e4f8b4c1g5c7c5f1c4c5d4f3d4d8a5g5d2a5c5c4b5c8d7\r
+d2d4d7d5g1f3g8f6c2c4d5c4d1a4c7c6a4c4c8f5b1c3e7e6g2g3b8d7f1g2f5c2e2e3f8e7e1g1e8g8\r
+d2d4d7d5g1f3g8f6c2c4d5c4e2e3c8g4f1c4e7e6e1g1b8d7b1c3f8d6e3e4e6e5d4e5d7e5c4e2g4f3\r
+d2d4d7d5g1f3g8f6c2c4d5c4e2e3e7e6f1c4c7c5e1g1a7a6a2a4b8c6d1e2c5d4f1d1f8e7e3d4e8g8\r
+d2d4d7d5g1f3g8f6c2c4d5c4e2e3e7e6f1c4c7c5e1g1a7a6a2a4b8c6d1e2c5d4f1d1f8e7e3d4e8g8\r
+d2d4d7d5g1f3g8f6c2c4d5c4e2e3e7e6f1c4c7c5e1g1a7a6c4b3b8c6b1c3b7b5d1e2c6a5d4c5a5b3\r
+d2d4d7d5g1f3g8f6c2c4e7e6b1c3b8d7c1g5f8e7e2e3e8g8a1c1a7a6a2a3c7c5d4c5d7c5c4d5e6d5\r
+d2d4d7d5g1f3g8f6c2c4e7e6b1c3c7c6c1g5d5c4e2e4b7b5e4e5h7h6g5h4g7g5f3g5f6d5g5f7d8h4\r
+d2d4d7d5g1f3g8f6c2c4e7e6b1c3c7c6e2e3b8d7f1d3d5c4d3c4b7b5c4d3a7a6e3e4c6c5e4e5c5d4\r
+d2d4d7d5g1f3g8f6c2c4e7e6b1c3f8e7c1f4e8g8e2e3c7c5d4c5e7c5f1e2d5c4e2c4a7a6d1e2b7b5\r
+d2d4d7d5g1f3g8f6c2c4e7e6b1c3f8e7c1g5h7h6g5f6e7f6e2e3e8g8d1b3c7c6a1d1b8d7f1d3b7b6\r
+d2d4d7d5g1f3g8f6c2c4e7e6b1c3f8e7c1g5h7h6g5h4e8g8a1c1f6e4h4e7d8e7e2e3c7c6f1d3e4c3\r
+d2d4d7d5g1f3g8f6c2c4e7e6b1c3f8e7d1c2e8g8e2e4d5e4c3e4b8d7f1d3f6e4d3e4d7f6e4d3e7b4\r
+d2d4d7d5g1f3g8f6c2c4e7e6c1g5b8d7e2e3f8e7b1c3e8g8a1c1b7b6c4d5e6d5d1a4c7c5a4c6a8b8\r
+d2d4d7d5g1f3g8f6c2c4e7e6c1g5f8e7e2e3b8d7b1c3e8g8a1c1f8e8d1c2h7h6g5h4c7c5c4d5f6d5\r
+d2d4d7d5g1f3g8f6c2c4e7e6c4d5e6d5b1c3c7c6d1c2g7g6c1g5f8g7e2e3c8f5f1d3f5d3c2d3e8g8\r
+d2d4d7d5g1f3g8f6c2c4e7e6e2e3c7c5f1d3b8c6e1g1d5c4d3c4a7a6b1c3b7b5c4d3c8b7a2a4b5b4\r
+d2d4d7d5g1f3g8f6c2c4e7e6g2g3d5c4f1g2b8c6e1g1a8b8b1c3b7b5e2e4f8e7c1f4e8g8a2a4a7a6\r
+d2d4d7d5g1f3g8f6e2e3c7c5c2c4e7e6f1d3b8c6e1g1a7a6b1c3d5c4d3c4b7b5c4d3c8b7a2a4b5b4\r
+d2d4d7d5g1f3g8f6e2e3c7c5c2c4e7e6f1d3b8c6e1g1d5c4d3c4a7a6a2a4f8e7b1c3e8g8b2b3c5d4\r
+d2d4d7d5g1f3g8f6e2e3c7c6f1d3g7g6b1d2f8g7e3e4d5e4d2e4e8g8e4g3f6d5c2c3c8g4h2h3g4f3\r
+d2d4d7d5g1f3g8f6e2e3c8f5f1d3e7e6d3f5e6f5d1d3d8c8b2b3b8a6e1g1f8e7c2c4e8g8b1c3c7c6\r
+d2d4d7d5g1f3g8f6e2e3e7e6f1d3c7c5e1g1b8c6b2b3f8d6c1b2e8g8b1d2d8e7f3e5f8d8a2a3c8d7\r
+d2d4d7d5g1f3g8f6g2g3c7c6f1g2c8f5e1g1e7e6c2c4b8d7b2b3f8e7b1c3f6e4c1b2d8a5d1c1e8g8\r
+d2d4d7d6c2c4e7e5b1c3e5d4d1d4b8d7g1f3g8f6b2b3f8e7c1b2c7c6e2e3e8g8f1e2d8b6e1g1d7c5\r
+d2d4d7d6c2c4e7e5g1f3e5e4f3g5f7f5b1c3g8f6h2h4b8c6g5h3g7g6e2e3f8h6g2g3c6e7b2b3c8e6\r
+d2d4d7d6e2e4e7e5d4e5d6e5d1d8e8d8g1f3f8d6b1c3c8e6c1e3g8f6e1c1f6g4e3g5f7f6g5h4b8d7\r
+d2d4d7d6e2e4g7g6b1c3c7c6c1e3f8g7d1d2b7b5f1d3b8d7f2f4d7b6b2b3g8f6g1f3a7a6a2a4b5b4\r
+d2d4d7d6e2e4g8f6b1c3g7g6g1f3f8g7f1e2e8g8e1g1b8c6a2a4e7e5d4d5c6e7a4a5h7h6a5a6c7c6\r
+d2d4d7d6e2e4g8f6b1c3g7g6g2g3f8g7f1g2e8g8g1e2b8d7h2h3e7e5e1g1e5d4e2d4f8e8f1e1d7c5\r
+d2d4d7d6e2e4g8f6f2f3d6d5e4e5f6d7f3f4c7c5g1f3b8c6c1e3c5d4f3d4c6d4e3d4d7b8b1c3b8c6\r
+d2d4d7d6g1f3g7g6c2c4f8g7e2e4b8d7b1c3e7e5d4d5a7a5f1e2g8f6e1g1e8g8d1c2d7c5c1g5h7h6\r
+d2d4e7e6c2c4b7b6b1c3c8b7a2a3f7f5d4d5g8f6g1f3f8e7g2g3f6e4f1g2e4c3b2c3b8a6f3d4e8g8\r
+d2d4e7e6c2c4b7b6e2e4c8b7d1c2d8h4b1d2f8b4f1d3f7f5g1f3b4d2e1f1h4h5c1d2g8f6e4f5b7f3\r
+d2d4e7e6c2c4b7b6e2e4c8b7f1d3b8c6g1e2c6b4e1g1b4d3d1d3g8e7b1c3d7d6d4d5d8d7c1e3e7g6\r
+d2d4e7e6c2c4b7b6e2e4c8b7f1d3f7f5e4f5f8b4e1f1g8f6d3e2e8g8c4c5b6c5a2a3b4a5d4c5f6d5\r
+d2d4e7e6c2c4d7d5b1c3f8e7g1f3g8f6c1g5e8g8e2e3b8d7d1c2c7c5c4d5f6d5g5e7d8e7c3d5e6d5\r
+d2d4e7e6c2c4d7d5g1f3d5c4d1a4b8d7b1c3a7a6a4c4b7b5c4d3c8b7e2e4g8f6a2a3c7c5e4e5f6d5\r
+d2d4e7e6c2c4f7f5b1c3f8b4d1c2g8f6e2e3e8g8f1d3d7d6g1e2c7c5a2a3b4c3e2c3b8c6d4c5d6c5\r
+d2d4e7e6c2c4f7f5b1c3g8f6e2e3d7d5f1d3c7c6f2f4f8e7g1f3e8g8e1g1b7b6c1d2c8a6d1e2a6b7\r
+d2d4e7e6c2c4f7f5e2e3g8f6b1c3d7d5g1h3c7c6c1d2f8d6d1c2e8g8e1c1d8e7f2f3d5c4e3e4f5e4\r
+d2d4e7e6c2c4f7f5g1f3g8f6b1c3f8e7d1c2d7d5b2b3e8g8e2e3c7c6f3e5e7b4c1d2b4c3d2c3f6e4\r
+d2d4e7e6c2c4f7f5g2g3f8b4c1d2b4e7f1g2g8f6b1c3e8g8g1f3f6e4e1g1b7b6d1c2c8b7f3e5e4c3\r
+d2d4e7e6c2c4f7f5g2g3f8b4c1d2b4e7f1g2g8f6b1c3e8g8g1f3f6e4e1g1e7f6c3e4f5e4f3e1f6d4\r
+d2d4e7e6c2c4f7f5g2g3g8f6b1c3f8e7f1g2e8g8g1f3d7d5e1g1c7c6d1c2b8d7c4d5c6d5c3b5d7b6\r
+d2d4e7e6c2c4f7f5g2g3g8f6f1g2f8b4c1d2b4e7b1c3e8g8g1f3d7d6e1g1d8e8d1c2e8h5e2e4e6e5\r
+d2d4e7e6c2c4f7f5g2g3g8f6f1g2f8e7b1c3e8g8d4d5e7b4c1d2e6e5e2e3d7d6g1e2a7a6d1c2d8e8\r
+d2d4e7e6c2c4f7f5g2g3g8f6f1g2f8e7b1c3e8g8e2e3d7d5g1e2c7c6b2b3e7d6e1g1d8e7d1c2f6e4\r
+d2d4e7e6c2c4f7f5g2g3g8f6f1g2f8e7b1c3e8g8e2e3d7d5g1e2c7c6b2b3f6e4e1g1b8d7c1b2d7f6\r
+d2d4e7e6c2c4f7f5g2g3g8f6f1g2f8e7b1c3e8g8e2e3d7d6g1e2c7c6e1g1e6e5d4d5d8e8e3e4e8h5\r
+d2d4e7e6c2c4f7f5g2g3g8f6f1g2f8e7g1f3d7d5e1g1e8g8d1c2c8d7b2b3a7a5c1a3c7c6a3e7d8e7\r
+d2d4e7e6c2c4f7f5g2g3g8f6f1g2f8e7g1f3e8g8e1g1d7d6b1c3d8e8f1e1e8g6e2e4f6e4c3e4f5e4\r
+d2d4e7e6c2c4f7f5g2g3g8f6f1g2f8e7g1f3e8g8e1g1f6e4b2b3e7f6c1b2b7b6b1d2c8b7f3e5d7d6\r
+d2d4e7e6c2c4f7f5g2g3g8f6f1g2f8e7g1h3e8g8e1g1d7d6b1c3d8e8e2e4f5e4h3f4c7c6c3e4f6e4\r
+d2d4e7e6c2c4f8b4c1d2b4d2d1d2g8f6b1c3d7d5f2f3b8c6e1c1e8g8e2e3d8e7c4d5f6d5e3e4d5c3\r
+d2d4e7e6c2c4f8b4c1d2b4d2d1d2g8f6b1c3d7d6e2e4e8g8e1c1b8c6d4d5c6e7f2f4e6d5c4d5c7c6\r
+d2d4e7e6c2c4f8b4c1d2d8e7e2e4d7d5e4e5b8c6g1f3b4d2d1d2d5c4b1c3g8h6d4d5c6e5f3e5e6d5\r
+d2d4e7e6c2c4f8b4c1d2d8e7g2g3b8c6g1f3g8f6b1c3b4c3d2c3f6e4a1c1d7d6d4d5e4c3c1c3c6d8\r
+d2d4e7e6c2c4g8f6b1c3d7d5c4d5e6d5c1g5c7c6e2e3f8e7f1d3b8d7g1e2f6h5g5e7d8e7g2g4h5f6\r
+d2d4e7e6c2c4g8f6b1c3f8b4d1c2b8c6g1f3d7d6c1d2e8g8a2a3b4c3d2c3d8e7e2e3e6e5d4d5c6b8\r
+d2d4e7e6c2c4g8f6b1c3f8b4e2e3e8g8g1f3c7c5f1d3d7d5e1g1d5c4d3c4b8d7d1e2b7b6c1d2c5d4\r
+d2d4e7e6c2c4g8f6b1c3f8b4e2e3e8g8g1f3c7c5f1d3d7d5e1g1d5c4d3c4b8d7d1e2b7b6f1d1c5d4\r
+d2d4e7e6c2c4g8f6g1f3b7b6g2g3c8a6b1d2f8b4d1b3d8e7f1g2a6b7e1g1b4d2c1d2e8g8a1d1d7d6\r
+d2d4e7e6c2c4g8f6g1f3b7b6g2g3c8a6b2b3f8b4c1d2b4e7b1c3d7d5c4d5e6d5f1g2e8g8e1g1b8d7\r
+d2d4e7e6c2c4g8f6g1f3b7b6g2g3c8b7f1g2f8e7e1g1e8g8b1c3f6e4d1c2e4c3c2c3b7e4c1f4b8c6\r
+d2d4e7e6c2c4g8f6g1f3d7d5b1c3c7c6e2e3b8d7d1c2f8d6b2b3e8g8f1e2b7b6e1g1c8b7c1b2f8e8\r
+d2d4e7e6c2c4g8f6g1f3d7d5b1c3f8e7c1f4e8g8e2e3c7c5d4c5e7c5a2a3b8c6b2b4c5e7c4d5f6d5\r
+d2d4e7e6c2c4g8f6g2g3f8b4c1d2b4e7f1g2d7d5g1f3e8g8e1g1c7c6d1c2b8d7b2b3b7b6f1d1c8a6\r
+d2d4e7e6e2e4d7d5b1c3f8b4e4e5c7c5a2a3b4c3b2c3d8c7d1g4f7f5g4g3c5d4c3d4g8e7e1d2e8g8\r
+d2d4e7e6e2e4d7d5b1c3f8b4e4e5c7c5a2a3b4c3b2c3d8c7d1g4f7f5g4g3g8e7c1d2e8g8f1d3b7b6\r
+d2d4e7e6e2e4d7d5b1c3f8b4e4e5c7c5a2a3b4c3b2c3d8c7d1g4f7f5g4h5g7g6h5d1b8c6g1f3c8d7\r
+d2d4e7e6e2e4d7d5b1d2c7c5e4d5e6d5g1f3a7a6d4c5f8c5d2b3c5a7c1g5g8f6f3d4e8g8f1e2d8d6\r
+d2d4e7e6e2e4d7d5b1d2c7c5e4d5e6d5g1f3g8f6f1b5c8d7b5d7b8d7e1g1f8e7d4c5d7c5f3d4d8d7\r
+d2d4e7e6e2e4d7d5b1d2d5e4d2e4b8d7g1f3g8f6e4f6d7f6c1g5f8e7f1d3c7c5e1g1c5d4f3d4e8g8\r
+d2d4e7e6e2e4d7d5e4d5e6d5g1f3g8f6c1g5c7c6f1d3c8e6e1g1b8d7f1e1d8b6b1d2f8e7a1b1h7h6\r
+d2d4e7e6e2e4d7d5e4e5c7c5c2c3b8c6g1f3c8d7f1e2g8e7b1a3c5d4c3d4e7f5a3c2c6b4c2e3f5e3\r
+d2d4e7e6g1f3f7f5g2g3g8f6f1g2f8e7e1g1e8g8c2c4d7d6b2b3a7a5c1b2d8e8b1d2b8c6a2a3e7d8\r
+d2d4e7e6g1f3g8f6c1g5c7c5e2e3f8e7f1d3b7b6c2c3c8b7b1d2c5d4c3d4f6d5d2c4e8g8h2h4f7f5\r
+d2d4e7e6g1f3g8f6c2c4b7b6b1c3c8b7c1g5h7h6g5f6d8f6e2e4f8b4f1d3c7c5e1g1c5d4c3b5f6d8\r
+d2d4e7e6g1f3g8f6c2c4b7b6g2g3c8a6b2b3a6b7f1g2f8b4c1d2a7a5e1g1e8g8d1c2c7c5f1d1b4d2\r
+d2d4e7e6g1f3g8f6c2c4b7b6g2g3c8b7f1g2f8e7e1g1e8g8b1c3f6e4d1c2e4c3c2c3b7e4b2b3c7c5\r
+d2d4e7e6g1f3g8f6c2c4b7b6g2g3c8b7f1g2f8e7e1g1e8g8b2b3d7d5c4d5e6d5c1b2b8d7b1c3f8e8\r
+d2d4e7e6g1f3g8f6c2c4b7b6g2g3c8b7f1g2f8e7e1g1e8g8d1c2c7c5b2b3c5d4f3d4b7g2g1g2d7d5\r
+d2d4e7e6g1f3g8f6c2c4d7d5c4d5e6d5b1c3c7c6d1c2c8g4c1g5b8d7e2e3f8d6f1d3d8c7e1c1h7h6\r
+d2d4e7e6g1f3g8f6c2c4f8b4c1d2c7c5d2b4c5b4g2g3b7b6f1g2c8b7e1g1e8g8b1d2d7d6d1b3a7a5\r
+d2d4e7e6g2g3c7c5g1f3c5d4f3d4d7d5f1g2g8f6e1g1e6e5d4b3c8e6c2c4b8c6c4d5f6d5b1d2f8e7\r
+d2d4f7f5b1c3g8f6c1g5d7d5g5f6e7f6e2e3c8e6f1d3b8c6a2a3d8d7g1f3f8d6c3b5d6e7e1g1c6d8\r
+d2d4f7f5c1g5c7c6e2e3g7g6c2c4f8g7b1c3d7d6f1d3d8a5g1e2b8d7e1g1e7e5d4e5d6e5a2a3h7h6\r
+d2d4f7f5c2c4g8f6g2g3e7e6f1g2d7d5g1f3c7c6e1g1f8d6f3e5e8g8c1f4f6g4e5g4d6f4g3f4f5g4\r
+d2d4f7f5c2c4g8f6g2g3e7e6f1g2f8b4c1d2b4e7g1f3e8g8e1g1c7c6d1b3b8a6b1c3d8e8d4d5a6c5\r
+d2d4f7f5e2e4f5e4b1c3g8f6c1g5c7c6f2f3d8a5g5f6e7f6f3e4f8b4d1f3d7d5g1e2e8g8e4d5a5d5\r
+d2d4f7f5e2e4f5e4f2f3e4f3g1f3g8f6f1d3d7d6e1g1c8g4b1c3b8c6c1e3d8d7d4d5c6e5d3b5c7c6\r
+d2d4f7f5g1f3g8f6g2g3g7g6f1g2f8g7e1g1e8g8c2c4c7c6b1c3b8a6b2b3d7d6c1b2c8d7f1e1d8a5\r
+d2d4f7f5g2g3g8f6f1g2e7e6g1f3f8e7c2c4e8g8b1c3d7d6c1f4d8e8a1c1b8c6d4d5c6d8c3b5e8d7\r
+d2d4f7f5g2g3g8f6f1g2e7e6g1f3f8e7e1g1e8g8c2c4c7c6b1c3d7d5c1g5b8d7e2e3d8e8d1c2g8h8\r
+d2d4f7f5g2g3g8f6f1g2g7g6g1f3f8g7b2b3e8g8c1b2d7d5c2c4c7c6e1g1c8e6f3g5e6f7b1c3d8e8\r
+d2d4f7f5g2g3g8f6f1g2g7g6g1f3f8g7e1g1e8g8b2b4f6e4c2c4e7e6c1b2b7b6b1c3c8b7a1c1a7a5\r
+d2d4f7f5g2g3g8f6f1g2g7g6g1f3f8g7e1g1e8g8d4d5c7c6c2c4d7d6f3d4d8c7b1c3e7e5d5e6b8a6\r
+d2d4f7f5g2g3g8f6f1g2g7g6g1h3f8g7e1g1e8g8c2c4b8c6b1c3e7e6d4d5c6e5b2b3e5f7c1a3f8e8\r
+d2d4f7f5g2g3g8f6f1g2g7g6g1h3f8g7h3f4b8c6d4d5c6e5b1c3c7c6e2e4f5e4c3e4f6e4g2e4c6d5\r
+d2d4g7g6c2c4f8g7g1f3c7c5g2g3c5d4f3d4b8c6d4c2b7b6f1g2c8a6b1a3a8c8a1b1g8f6e1g1e8g8\r
+d2d4g7g6e2e4f8g7b1c3d7d6c1e3c7c6d1d2b7b5f2f3b8d7h2h4h7h5g1h3d8a5h3g5g8h6a2a3a8b8\r
+d2d4g7g6e2e4f8g7c2c3c7c6f1d3d7d6f2f4d6d5e4e5h7h5g1f3g8h6c1e3c8f5d3f5h6f5e3f2b8a6\r
+d2d4g7g6e2e4f8g7c2c4d7d6b1c3b8d7g1e2e7e5c1e3g8e7d1d2e8g8e1c1a7a6h2h4e5d4e2d4d7e5\r
+d2d4g7g6e2e4f8g7c2c4d7d6b1c3e7e5d4e5d6e5d1d8e8d8f2f4b8c6g1f3c6d4e1f2e5f4c1f4d4e6\r
+d2d4g7g6e2e4f8g7c2c4d7d6b1c3g8f6f2f3b8d7c1e3e8g8f1d3e7e5g1e2f6h5d4e5d6e5e1g1c7c6\r
+d2d4g7g6e2e4f8g7g1f3d7d6b1c3g8f6f1e2e8g8e1g1b8d7e4e5f6e8c1f4d7b6f1e1c7c6h2h3e8c7\r
+d2d4g7g6e2e4f8g7g1f3d7d6c2c3g8f6f1d3e8g8e1g1b8c6c1g5h7h6g5h4e7e5d4e5d6e5b1a3c8e6\r
+d2d4g7g6e2e4f8g7g1f3d7d6f1e2e7e6c2c3b8d7e1g1g8e7b1d2b7b6a2a4a7a6f1e1c8b7e2d3e8g8\r
+d2d4g7g6g1f3f7f5g2g3f8g7f1g2g8f6e1g1e8g8c2c4d7d6d4d5c7c5b1c3b8a6f3e1a8b8e1c2a6c7\r
+d2d4g8f6b1c3d7d5c1g5c8f5f2f3f5g6e2e4d5e4d1d2e7e6f3e4f8b4d2e3f6g4e3d2g4f6d2e3f6g4\r
+d2d4g8f6b1c3d7d5c1g5c8f5g5f6g7f6e2e3c7c6f1d3f5g6f2f4g6d3d1d3e7e6e3e4d5e4c3e4f6f5\r
+d2d4g8f6b1c3d7d5c1g5h7h6g5f6e7f6e2e3c7c6f1d3f8d6d1f3e8g8g1e2f8e8e1c1b7b5g2g4b5b4\r
+d2d4g8f6b1c3d7d5c1g5h7h6g5f6e7f6e2e4f8b4e4d5d8d5g1f3e8g8f1e2d5a5d1d2b8d7a2a3d7b6\r
+d2d4g8f6b1c3g7g6e2e4d7d6g1f3f8g7f1c4e8g8e1g1c8g4h2h3g4f3d1f3b8c6c1e3e7e5d4e5c6e5\r
+d2d4g8f6c1g5d7d5g5f6e7f6e2e3c8e6b1d2c7c6f1d3f6f5d1f3g7g6g1e2b8d7e1g1f8d6c2c4d7f6\r
+d2d4g8f6c1g5d7d5g5f6e7f6e2e3c8e6g2g3f6f5f1d3c7c6b1d2b8d7g1e2f8d6e1g1e8g8c2c3d7f6\r
+d2d4g8f6c1g5e7e6e2e3h7h6g5h4c7c5c2c3c5d4c3d4g7g5h4g3f6e4b1c3e4g3h2g3d7d5f1d3f8g7\r
+d2d4g8f6c1g5e7e6e2e4h7h6g5f6d8f6b1c3d7d6d1d2g7g5f1c4b8c6g1e2f8g7a1d1c8d7e1g1e8c8\r
+d2d4g8f6c1g5e7e6e2e4h7h6g5f6d8f6g1f3d7d6b1c3g7g6d1d2f6e7e1c1a7a6h2h4f8g7g2g3b7b5\r
+d2d4g8f6c1g5f6e4g5f4c7c5f2f3e4f6d4d5e7e6b1c3f6h5f4e3d7d6d1d2e6e5g2g4h5f6e3f2a7a6\r
+d2d4g8f6c1g5f6e4g5f4d7d5b1d2e4d2d1d2c8f5e2e3e7e6g1f3f8e7c2c4e8g8a1c1c7c6f1e2b8d7\r
+d2d4g8f6c1g5f6e4h2h4c7c5d4c5d8a5b1d2e4g5h4g5g7g6c2c3a5c5g1f3f8g7e2e3a7a6a2a4d7d5\r
+d2d4g8f6c1g5g7g6g5f6e7f6e2e3d7d5c2c4d5c4f1c4f8d6b1c3e8g8g1f3b8d7e1g1d7b6c4b3f8e8\r
+d2d4g8f6c2c4b7b6b1c3c8b7f2f3d7d5c4d5f6d5e2e4d5c3b2c3e7e6f1b5b8d7g1e2f8e7e1g1a7a6\r
+d2d4g8f6c2c4c7c5d4d5b7b5c4b5a7a6b5a6c8a6b1c3d7d6g1f3g7g6g2g3f8g7f1g2b8d7e1g1d7b6\r
+d2d4g8f6c2c4c7c5d4d5b7b5c4b5a7a6b5a6g7g6b1c3c8a6e2e4a6f1e1f1d7d6g2g3f8g7f1g2b8d7\r
+d2d4g8f6c2c4c7c5d4d5b7b5c4b5a7a6b5a6g7g6g2g3f8g7f1g2d7d6g1h3b8a6h3f4d8b6e1g1e8g8\r
+d2d4g8f6c2c4c7c5d4d5b7b5g1f3g7g6c4b5a7a6b5b6d8b6b1c3d7d6f3d2f8g7e2e4e8g8f1e2a6a5\r
+d2d4g8f6c2c4c7c5d4d5b7b5g1f3g7g6d1c2f8g7e2e4d7d6c4b5e8g8b1c3a7a6a2a4a6b5f1b5b8a6\r
+d2d4g8f6c2c4c7c5d4d5d7d6b1c3g7g6e2e4f8g7c1g5h7h6g5h4g6g5h4g3d8a5f1d3f6e4d3e4g7c3\r
+d2d4g8f6c2c4c7c5d4d5d7d6b1c3g7g6e2e4f8g7f1d3e8g8g1f3c8g4h2h3g4f3d1f3b8d7f3d1e7e6\r
+d2d4g8f6c2c4c7c5d4d5d7d6b1c3g7g6g1f3f8g7e2e4e8g8c1f4a7a6a2a4d8a5f4d2e7e6f1e2e6d5\r
+d2d4g8f6c2c4c7c5d4d5e7e5b1c3d7d6e2e4g7g6f1d3b8a6g1e2a6b4d3b1f8g7h2h3c8d7c1e3e8g8\r
+d2d4g8f6c2c4c7c5d4d5e7e5b1c3d7d6e2e4g7g6f1e2f8g7c1g5b8a6g1f3h7h6g5d2c8g4a2a3g4f3\r
+d2d4g8f6c2c4c7c5d4d5e7e5b1c3d7d6e2e4g7g6f2f3b8a6c1e3a6c7d1d2a7a6a2a4b7b6f1d3a8b8\r
+d2d4g8f6c2c4c7c5d4d5e7e5b1c3d7d6e2e4g7g6f2f3f6h5c1e3f8g7d1d2e8g8g2g4h5f4g1e2b8d7\r
+d2d4g8f6c2c4c7c5d4d5e7e5b1c3d7d6e2e4g7g6g1f3f8g7c1g5b8a6f1e2a6c7f3d2c8d7a2a4b7b6\r
+d2d4g8f6c2c4c7c5d4d5e7e5b1c3d7d6g2g3g7g6f1h3b8d7g1f3f8g7e1g1a7a6e2e4e8g8f1e1f6e8\r
+d2d4g8f6c2c4c7c5d4d5e7e6b1c3e6d5c4d5d7d6e2e4g7g6f2f4f8g7f1b5f6d7a2a4d8h4e1f1e8g8\r
+d2d4g8f6c2c4c7c5d4d5e7e6b1c3e6d5c4d5d7d6e2e4g7g6g1f3f8g7f1d3e8g8h2h3a7a6a2a4b8d7\r
+d2d4g8f6c2c4c7c5d4d5e7e6b1c3e6d5c4d5d7d6e2e4g7g6g1f3f8g7f1e2e8g8e1g1f8e8f3d2b8a6\r
+d2d4g8f6c2c4c7c5d4d5e7e6b1c3e6d5c4d5d7d6e2e4g7g6g1f3f8g7h2h3e8g8f1d3b7b5c3b5f8e8\r
+d2d4g8f6c2c4c7c5d4d5e7e6b1c3e6d5c4d5d7d6g1f3g7g6c1g5f8g7f3d2h7h6g5h4g6g5h4g3f6h5\r
+d2d4g8f6c2c4c7c5d4d5e7e6b1c3e6d5c4d5d7d6g1f3g7g6f3d2b8d7g2g3f8g7f1g2e8g8e1g1d8e7\r
+d2d4g8f6c2c4c7c5d4d5e7e6b1c3e6d5c4d5d7d6g1f3g7g6g2g3f8g7f1g2e8g8e1g1a7a6a2a4b8d7\r
+d2d4g8f6c2c4c7c5d4d5g7g6b1c3d7d6e2e4b7b5c4b5f8g7g1f3e8g8f1e2a7a6b5a6c8a6e1g1d8c7\r
+d2d4g8f6c2c4c7c6b1c3d7d5c4d5c6d5g1f3b8c6c1f4c8f5e2e3e7e6f1b5f8b4f3e5d8a5b5c6b7c6\r
+d2d4g8f6c2c4c7c6b1c3d7d6g1f3b8d7g2g3e7e5f1g2f8e7d1c2e8g8e1g1f8e8b2b3e7f8e2e4a7a6\r
+d2d4g8f6c2c4c7c6b1c3e7e6g1f3d7d5c1g5b8d7e2e4d5e4c3e4d8b6e4f6g7f6g5c1e6e5f1d3e5d4\r
+d2d4g8f6c2c4c7c6g1f3d7d5b1c3e7e6c1g5b8d7e2e4d5e4c3e4f8e7e4c3e8g8d1c2b7b6e1c1c8b7\r
+d2d4g8f6c2c4c7c6g1f3d7d5e2e3e7e6f1d3b8d7b1c3d5c4d3c4b7b5c4d3a7a6e1g1c6c5a2a4b5b4\r
+d2d4g8f6c2c4c7c6g1f3d7d5e2e3e7e6f1d3b8d7b1d2f8e7e1g1e8g8b2b3b7b6c1b2c8b7d1e2c6c5\r
+d2d4g8f6c2c4d7d5g1f3e7e6b1c3b8d7e2e3f8e7f1d3d5c4d3c4c7c5e1g1e8g8f1e1a7a6a2a4d8c7\r
+d2d4g8f6c2c4d7d6b1c3b8d7c1g5h7h6g5h4g7g5h4g3f6h5e2e3h5g3h2g3f8g7f1d3d7f6d1d2c7c6\r
+d2d4g8f6c2c4d7d6b1c3b8d7e2e4e7e5d4d5d7c5d1c2a7a5g2g3f8e7f1g2e8g8g1e2f6h5e1g1e7g5\r
+d2d4g8f6c2c4d7d6b1c3b8d7e2e4e7e5g1f3f8e7g2g3e8g8f1g2c7c6e1g1a7a6b2b3f8e8c1b2e7f8\r
+d2d4g8f6c2c4d7d6b1c3b8d7e2e4e7e5g1f3g7g6f1e2f8g7e1g1e8g8c1g5c7c6d1d2d8b6c4c5d6c5\r
+d2d4g8f6c2c4d7d6b1c3b8d7g1f3c7c6g2g3e7e5f1g2f8e7e1g1e8g8d1c2f8e8b2b3e7f8c1b2a7a6\r
+d2d4g8f6c2c4d7d6b1c3b8d7g1f3g7g6e2e4e7e5f1e2f8g7e1g1e8g8f1e1c7c6e2f1f6e8a1b1e8c7\r
+d2d4g8f6c2c4d7d6b1c3e7e5e2e3b8d7f1d3g7g6g1e2f8g7e1g1e8g8f2f4f8e8e2g3c7c6g1h1d7f8\r
+d2d4g8f6c2c4d7d6b1c3e7e5g1f3b8d7c1g5f8e7e2e3c7c6f1e2e8g8e1g1f8e8d1c2d8c7h2h3d7f8\r
+d2d4g8f6c2c4d7d6b1c3e7e5g1f3b8d7c1g5f8e7e2e3e8g8d1c2c7c6f1d3e5d4e3d4f8e8e1g1h7h6\r
+d2d4g8f6c2c4d7d6b1c3e7e5g1f3b8d7c1g5h7h6g5h4g7g5d4e5g5h4e5f6d8f6c3d5f6b2a1b1b2a2\r
+d2d4g8f6c2c4d7d6b1c3e7e5g1f3b8d7e2e4g7g6f1e2f8g7e1g1e8g8f1e1c7c6e2f1f6g4h2h3e5d4\r
+d2d4g8f6c2c4d7d6b1c3e7e5g1f3b8d7g2g3g7g6f1g2f8g7e1g1e8g8e2e4c7c6h2h3f6h5c1e3d8e7\r
+d2d4g8f6c2c4d7d6b1c3e7e5g1f3b8d7g2g3g7g6f1g2f8g7e1g1e8g8e2e4f8e8c1e3f6g4e3g5f7f6\r
+d2d4g8f6c2c4d7d6b1c3e7e5g1f3b8d7g2g3g7g6f1g2f8g7e1g1e8g8e2e4f8e8c1e3f6g4e3g5f7f6\r
+d2d4g8f6c2c4d7d6b1c3e7e5g1f3e5e4f3g5c8f5d1c2h7h6g5e4f6e4c3e4d8h4e4d6f8d6c2f5d6b4\r
+d2d4g8f6c2c4d7d6b1c3g7g6e2e4f8g7f2f3e8g8c1e3a7a6d1d2c7c6f1d3e7e5d4e5d6e5c3a4b7b5\r
+d2d4g8f6c2c4d7d6g1f3b8d7b1c3c7c6e2e4e7e5f1e2f8e7e1g1a7a6d1c2e8g8f1d1d8c7c1g5h7h6\r
+d2d4g8f6c2c4d7d6g1f3b8d7b1c3e7e5e2e4c7c6f1e2f8e7e1g1e8g8d1c2f8e8b2b3e7f8c1b2f6h5\r
+d2d4g8f6c2c4d7d6g1f3b8d7b1c3e7e5e2e4f8e7f1e2e8g8e1g1c7c6d1c2f8e8f1d1e7f8a1b1a7a5\r
+d2d4g8f6c2c4d7d6g1f3b8d7g2g3e7e5f1g2c7c6d4e5d6e5e1g1f8c5b1c3e8g8d1c2d8e7f3h4f8e8\r
+d2d4g8f6c2c4d7d6g1f3g7g6b1c3f8g7e2e4e7e5f1e2e8g8e1g1b8c6c1e3f6g4e3g5f7f6g5c1e5d4\r
+d2d4g8f6c2c4d7d6g1f3g7g6b1c3f8g7e2e4e8g8f1e2b8d7e1g1e7e5f1e1e5d4f3d4d7c5e2f1f8e8\r
+d2d4g8f6c2c4d7d6g1f3g7g6b1c3f8g7g2g3e8g8f1g2b8d7e1g1e7e5d1c2c7c6f1d1f8e8d4e5d6e5\r
+d2d4g8f6c2c4d7d6g1f3g7g6b1c3f8g7g2g3e8g8f1g2b8d7e1g1e7e5e2e4f8e8c1e3f6g4e3g5f7f6\r
+d2d4g8f6c2c4d7d6g1f3g7g6g2g3f8g7f1g2e8g8e1g1b8c6b1c3c8g4h2h3g4f3g2f3f6d7f3g2c6d4\r
+d2d4g8f6c2c4e7e5d4e5f6g4c1f4b8c6g1f3f8b4b1d2d8e7e2e3g4e5f3e5c6e5f1e2e8g8e1g1d7d6\r
+d2d4g8f6c2c4e7e5d4e5f6g4g1f3f8c5e2e3b8c6b1c3g4e5f3e5c6e5f1e2e8g8a2a3a7a5e1g1d7d6\r
+d2d4g8f6c2c4e7e5d4e5f6g4g1f3f8c5e2e3b8c6f1e2g4e5f3e5c6e5e1g1e8g8b1c3d7d6c3a4c5b6\r
+d2d4g8f6c2c4e7e6b1c3c7c5d4d5e6d5c4d5d7d6e2e4g7g6f2f4f8g7f1b5f6d7a2a4e8g8g1f3a7a6\r
+d2d4g8f6c2c4e7e6b1c3d7d5c1g5b8d7e2e3c7c6c4d5e6d5f1d3f8e7d1c2e8g8g1f3h7h6g5h4f8e8\r
+d2d4g8f6c2c4e7e6b1c3d7d5c1g5b8d7e2e3c7c6c4d5e6d5f1d3f8e7g1e2e8g8e2g3f6e8h2h4d7f6\r
+d2d4g8f6c2c4e7e6b1c3d7d5c1g5b8d7e2e3f8e7g1f3e8g8a1c1c7c6d1c2a7a6a2a3f8e8f1d3h7h6\r
+d2d4g8f6c2c4e7e6b1c3d7d5c1g5b8d7e2e3f8e7g1f3e8g8a1c1c7c6d1c2a7a6a2a3h7h6g5h4f8e8\r
+d2d4g8f6c2c4e7e6b1c3d7d5c1g5b8d7e2e3f8e7g1f3e8g8a1c1c7c6f1d3d5c4d3c4f6d5g5e7d8e7\r
+d2d4g8f6c2c4e7e6b1c3d7d5c1g5b8d7e2e3f8e7g1f3e8g8a1c1c7c6f1d3d5c4d3c4f6d5g5e7d8e7\r
+d2d4g8f6c2c4e7e6b1c3d7d5c1g5b8d7e2e3f8e7g1f3e8g8a1c1c7c6f1d3d5c4d3c4f6d5g5e7d8e7\r
+d2d4g8f6c2c4e7e6b1c3d7d5c1g5b8d7e2e3f8e7g1f3e8g8a1c1c7c6f1d3d5c4d3c4f6d5g5e7d8e7\r
+d2d4g8f6c2c4e7e6b1c3d7d5c1g5b8d7e2e3f8e7g1f3e8g8a1c1c7c6f1d3d5c4d3c4f6d5g5e7d8e7\r
+d2d4g8f6c2c4e7e6b1c3d7d5c1g5b8d7e2e3f8e7g1f3e8g8a1c1c7c6f1d3d5c4d3c4f6d5g5e7d8e7\r
+d2d4g8f6c2c4e7e6b1c3d7d5c1g5b8d7e2e3f8e7g1f3e8g8a1c1c7c6f1d3d5c4d3c4f6d5g5e7d8e7\r
+d2d4g8f6c2c4e7e6b1c3d7d5c1g5b8d7e2e3f8e7g1f3e8g8d1c2c7c5c4d5f6d5c3d5e6d5g5e7d8e7\r
+d2d4g8f6c2c4e7e6b1c3d7d5c1g5b8d7g1f3c7c6e2e3d8a5g5f6d7f6f3d2f8b4d1c2e8g8f1d3b4c3\r
+d2d4g8f6c2c4e7e6b1c3d7d5c1g5b8d7g1f3h7h6g5h4f8e7e2e3e8g8a1c1a7a6b2b3b7b6c4d5e6d5\r
+d2d4g8f6c2c4e7e6b1c3d7d5c1g5c7c5e2e3c5d4e3d4f8e7g1f3e8g8a1c1b7b6f1d3b8c6e1g1c6b4\r
+d2d4g8f6c2c4e7e6b1c3d7d5c1g5f8e7e2e3b8d7g1f3e8g8a1c1c7c6f1d3d5c4d3c4f6d5g5e7d8e7\r
+d2d4g8f6c2c4e7e6b1c3d7d5c1g5f8e7e2e3b8d7g1f3e8g8a1c1c7c6f1d3h7h6g5h4d5c4d3c4b7b5\r
+d2d4g8f6c2c4e7e6b1c3d7d5c1g5f8e7e2e3b8d7g1f3e8g8d1c2c7c6a1d1f8e8a2a3d5c4f1c4f6d5\r
+d2d4g8f6c2c4e7e6b1c3d7d5c1g5f8e7e2e3e8g8g1f3b8d7a1c1c7c6a2a3a7a6d1c2f8e8f1d3h7h6\r
+d2d4g8f6c2c4e7e6b1c3d7d5c1g5f8e7e2e3e8g8g1f3b8d7a1c1c7c6d1c2a7a6c4d5f6d5g5e7d8e7\r
+d2d4g8f6c2c4e7e6b1c3d7d5c1g5f8e7e2e3e8g8g1f3b8d7a1c1c7c6f1d3d5c4d3c4f6d5g5e7d8e7\r
+d2d4g8f6c2c4e7e6b1c3d7d5c1g5f8e7e2e3e8g8g1f3h7h6g5h4b7b6f1d3c8b7e1g1b8d7a1c1c7c5\r
+d2d4g8f6c2c4e7e6b1c3d7d5c1g5f8e7e2e3e8g8g1f3h7h6g5h4f6e4h4e7d8e7c4d5e4c3b2c3e6d5\r
+d2d4g8f6c2c4e7e6b1c3d7d5c1g5f8e7g1f3e8g8e2e3h7h6g5h4b7b6f1d3c8b7e1g1b8d7a1c1c7c5\r
+d2d4g8f6c2c4e7e6b1c3d7d5c4d5e6d5c1g5f8e7d1c2e8g8e2e3f8e8f1d3b8d7g1f3d7f8e1g1c7c6\r
+d2d4g8f6c2c4e7e6b1c3d7d5c4d5e6d5c1g5f8e7e2e3c7c6f1d3b8d7d1c2f6h5g5e7d8e7g1e2d7b6\r
+d2d4g8f6c2c4e7e6b1c3d7d5c4d5e6d5c1g5f8e7e2e3e8g8d1c2b8d7g1f3c7c6f1d3f8e8e1g1d7f8\r
+d2d4g8f6c2c4e7e6b1c3d7d5c4d5e6d5c1g5f8e7e2e3e8g8f1d3c7c6d1c2b8d7g1e2f8e8e1g1d7f8\r
+d2d4g8f6c2c4e7e6b1c3d7d5c4d5e6d5c1g5f8e7e2e3e8g8f1d3c7c6d1c2b8d7g1e2f8e8e1g1d7f8\r
+d2d4g8f6c2c4e7e6b1c3d7d5c4d5e6d5c1g5f8e7e2e3h7h6g5h4e8g8f1d3b7b6g1f3c8b7e1g1c7c5\r
+d2d4g8f6c2c4e7e6b1c3d7d5e2e3b8d7g1f3f8e7f1d3c7c5c4d5e6d5d4c5e8g8e1g1d7c5d3c2c8g4\r
+d2d4g8f6c2c4e7e6b1c3d7d5g1f3b8d7c1g5f8b4c4d5e6d5e2e3c7c5f1d3d8a5e1g1c5c4d3f5e8g8\r
+d2d4g8f6c2c4e7e6b1c3d7d5g1f3b8d7c4d5e6d5c1g5f8e7e2e3e8g8d1c2c7c6f1d3f8e8h2h3f6e4\r
+d2d4g8f6c2c4e7e6b1c3d7d5g1f3b8d7e2e3a7a6a2a4f8b4c1d2c7c6f1d3d5c4d3c4d8a5e1g1e8g8\r
+d2d4g8f6c2c4e7e6b1c3d7d5g1f3c7c5c4d5c5d4d1d4e6d5e2e4b8c6f1b5a7a6b5c6b7c6f3e5c8b7\r
+d2d4g8f6c2c4e7e6b1c3d7d5g1f3c7c5c4d5c5d4d1d4e6d5e2e4b8c6f1b5f6e4e1g1e4f6f1e1f8e7\r
+d2d4g8f6c2c4e7e6b1c3d7d5g1f3c7c6e2e3a7a6c4c5b8d7f1d3d8c7e1g1e6e5d4e5d7e5f3e5c7e5\r
+d2d4g8f6c2c4e7e6b1c3d7d5g1f3f8b4c1g5e8g8e2e3c7c5c4d5e6d5d4c5b8d7a1c1d7c5d1d4b4c3\r
+d2d4g8f6c2c4e7e6b1c3f8b4a2a3b4c3b2c3c7c5e2e3b7b6g1e2b8c6e2g3e8g8f1d3c8a6e3e4f6e8\r
+d2d4g8f6c2c4e7e6b1c3f8b4a2a3b4c3b2c3c7c5e2e3b8c6f1d3e6e5g1e2d7d6e1g1d8e7e3e4f6d7\r
+d2d4g8f6c2c4e7e6b1c3f8b4a2a3b4c3b2c3c7c5e2e3b8c6f1d3e6e5g1e2d7d6e3e4f6h5e1g1g7g5\r
+d2d4g8f6c2c4e7e6b1c3f8b4a2a3b4c3b2c3c7c5e2e3b8c6f1d3e8g8g1e2d7d6e3e4f6e8e1g1b7b6\r
+d2d4g8f6c2c4e7e6b1c3f8b4a2a3b4c3b2c3c7c5e2e3d8a5c1d2f6e4g1f3e4d2d1d2e8g8f1d3d7d6\r
+d2d4g8f6c2c4e7e6b1c3f8b4a2a3b4c3b2c3c7c5f2f3b8c6d4d5c6a5e2e4e6e5f1d3b7b6c1g5c8a6\r
+d2d4g8f6c2c4e7e6b1c3f8b4a2a3b4c3b2c3c7c5g1f3e8g8c1g5d7d6d1c2f8e8e2e4h7h6g5e3d8a5\r
+d2d4g8f6c2c4e7e6b1c3f8b4a2a3b4c3b2c3e8g8f2f3d7d5c4d5e6d5e2e3c8f5g1e2b8d7e2g3f5g6\r
+d2d4g8f6c2c4e7e6b1c3f8b4a2a3b4c3b2c3e8g8f2f3f6h5g1h3f7f5e2e4c7c5e4e5b8c6f3f4g7g6\r
+d2d4g8f6c2c4e7e6b1c3f8b4a2a3b4c3b2c3f6e4d1c2f7f5g1h3d7d6f2f3e4f6e2e4f5e4f3e4e6e5\r
+d2d4g8f6c2c4e7e6b1c3f8b4a2a3b4c3b2c3f6e4d1c2f7f5g1h3e8g8f2f3e4f6c4c5b7b6c5b6c7b6\r
+d2d4g8f6c2c4e7e6b1c3f8b4a2a3b4c3b2c3f6e4e2e3f7f5d1h5g7g6h5h6d7d6f2f3e4f6e3e4e6e5\r
+d2d4g8f6c2c4e7e6b1c3f8b4a2a3b4c3b2c3f6e4g1h3c7c5e2e3d8a5c1d2c5d4c3d4e4d2d1d2a5d2\r
+d2d4g8f6c2c4e7e6b1c3f8b4c1d2b7b6f2f3b8c6a2a3b4e7e2e3e8g8f1d3d7d5c4d5e6d5g1e2f6h5\r
+d2d4g8f6c2c4e7e6b1c3f8b4c1g5c7c5d4d5b4c3b2c3e6e5a1c1d7d6e2e3b8d7f2f3h7h6g5h4g7g5\r
+d2d4g8f6c2c4e7e6b1c3f8b4c1g5h7h6g5h4c7c5d4d5d7d6e2e3e6e5g1e2b8d7a2a3b4a5d1c2e8g8\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1b3c7c5d4c5b4c5g1f3d7d5c4d5e6d5c1g5c8e6g5f6g7f6e1c1b8d7\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1b3c7c5d4c5b8a6a2a3b4c3b3c3a6c5f2f3a7a5e2e4e8g8c1f4d8b6\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1b3c7c5d4c5b8a6g1f3e8g8c1g5b4c5e2e3b7b6f1e2c8b7e1g1c5e7\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1b3c7c5d4c5b8c6g1f3b4c5c1g5h7h6g5f6d8f6e2e3b7b6f1e2c8b7\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1b3d8e7a2a3b4c3b3c3b7b6f2f3d7d5c4d5f6d5c3c2e7h4g2g3h4d4\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2b8c6g1f3d7d5c1g5h7h6g5f6d8f6e2e3e8g8a2a3b4c3c2c3f8e8\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2b8c6g1f3d7d5c4d5e6d5a2a3b4a5c1g5c6e7g5f6g7f6e2e3c7c6\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2b8c6g1f3d7d6c1d2e8g8a2a3b4c3d2c3a7a5e2e3d8e7f1d3e6e5\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2c7c5d4c5b8a6e2e3a6c5c1d2e8g8g1f3b7b6f1e2c8a6e1g1d7d5\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2c7c5d4c5d8c7a2a3b4c5b2b4c5e7c3b5c7c6g1f3d7d6f3d4c6d7\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2c7c5d4c5e8g8a2a3b4c5g1f3b7b6c1f4c8b7a1d1d7d5c4d5e6d5\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2c7c5d4c5e8g8c1f4b4c5e2e3b8c6g1f3d7d5a2a3d8e7f4g5f8d8\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2c7c5d4c5e8g8c1f4b4c5g1f3b8c6e2e3d7d5a1d1d8a5a2a3c5e7\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2c7c5d4c5e8g8c1f4b8a6f4d6f8e8a2a3d8a5a1c1b4c3c2c3a5c3\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2c7c5d4c5e8g8c1g5b8a6a2a3b4c5g1f3b7b6g2g3c8b7f1g2d8c8\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2c7c5d4c5e8g8g1f3b8a6a2a3b4c3c2c3a6c5e2e3a7a5b2b3d7d5\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2c7c5d4c5e8g8g1f3b8a6c1d2a6c5e2e3b7b6f1e2c8b7e1g1c5e4\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2d7d5a2a3b4c3c2c3b8c6e2e3e6e5d4e5f6e4c3d3e4c5d3c2d5c4\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2d7d5c4d5d8d5e2e3c7c5a2a3b4c3b2c3b8c6g1f3e8g8c3c4d5d6\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2d7d5c4d5d8d5e2e3c7c5a2a3b4c3b2c3b8d7f2f3c5d4c3d4d7b6\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2d7d5c4d5d8d5e2e3c7c5a2a3b4c3b2c3e8g8g1f3c5d4c3d4b7b6\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2d7d5c4d5d8d5e2e3c7c5c1d2b4c3b2c3e8g8g1f3b8c6c3c4d5d6\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2d7d5c4d5d8d5e2e3c7c5c1d2b4c3d2c3c5d4c3d4b8c6d4f6g7f6\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2d7d5c4d5d8d5e2e3c7c5c1d2b4c3d2c3c5d4c3d4b8c6d4f6g7f6\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2d7d5c4d5d8d5g1f3d5f5c2d1c7c5e2e3c5d4e3d4e8g8f1d3f5h5\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2d7d5c4d5e6d5a2a3b4c3b2c3e8g8c1g5c7c5e2e3b8d7f1d3d8a5\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2d7d5c4d5e6d5c1d2e8g8e2e3b8c6f1d3f8e8g1e2b4d6a2a3c8g4\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2d7d5c4d5e6d5c1g5h7h6g5f6d8f6a2a3b4c3c2c3c7c6e2e3e8g8\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2d7d5c4d5e6d5c1g5h7h6g5f6d8f6a2a3b4c3c2c3c7c6g1f3e8g8\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2d7d5c4d5e6d5c1g5h7h6g5f6d8f6a2a3b4c3c2c3e8g8e2e3c7c6\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2d7d5c4d5e6d5c1g5h7h6g5h4b8d7e2e3e8g8f1d3c7c5d4c5d7c5\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2d7d5c4d5e6d5c1g5h7h6g5h4c7c5d4c5b8c6e2e3g7g5h4g3d8a5\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2d7d5c4d5e6d5c1g5h7h6g5h4c7c5d4c5g7g5h4g3f6e4e2e3d8a5\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2d7d5c4d5e6d5c1g5h7h6g5h4c7c5d4c5g7g5h4g3f6e4e2e3d8a5\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2d7d5c4d5e6d5g1f3c7c5a2a3b4c3b2c3e8g8c1g5b8d7e2e3d8a5\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2e8g8a2a3b4c3c2c3b7b6c1g5c7c5d4c5b6c5e2e3b8c6g1h3h7h6\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2e8g8a2a3b4c3c2c3b7b6c1g5c7c5d4c5b6c5e2e3d7d6f1d3b8d7\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2e8g8a2a3b4c3c2c3b7b6c1g5c7c5d4c5b6c5e2e3d7d6f1d3b8d7\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2e8g8a2a3b4c3c2c3b7b6c1g5c7c5d4c5b6c5e2e3d7d6f1d3b8d7\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2e8g8a2a3b4c3c2c3b7b6c1g5c8a6e2e3d7d6f1d3b8d7b2b4c7c5\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2e8g8a2a3b4c3c2c3b7b6c1g5c8b7f2f3h7h6g5h4d7d5e2e3b8d7\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2e8g8a2a3b4c3c2c3b7b6c1g5c8b7f2f3h7h6g5h4d7d5e2e3b8d7\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2e8g8a2a3b4c3c2c3b7b6c1g5c8b7g1f3d7d6e2e3b8d7c3c2d8e8\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2e8g8a2a3b4c3c2c3b7b6c1g5h7h6g5h4c8b7e2e3d7d6f2f3b8d7\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2e8g8a2a3b4c3c2c3b7b6g1f3c8b7e2e3d7d6b2b3b8d7c1b2d8e7\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2e8g8a2a3b4c3c2c3b7b6g1f3c8b7e2e3d7d6f1e2b8d7e1g1f6e4\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2e8g8c1g5h7h6g5h4c7c5d4c5b8a6e2e3a6c5g1e2d7d5e1c1c8d7\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2e8g8g1f3c7c5d4c5b8a6a2a3b4c5b2b4c5e7c1b2b7b6e2e3c8b7\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2e8g8g1f3c7c5d4c5b8a6c1d2a6c5e2e3b7b6f1e2c8b7e1g1c5e4\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2e8g8g1f3c7c5d4c5b8a6g2g3a6c5f1g2c5e4c1d2e4d2f3d2d7d5\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3b7b6a2a3b4c3b2c3c8b7f2f3b8c6e3e4d7d6f1d3c6a5g1e2d8d7\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3b7b6f1d3c8b7g1f3e8g8e1g1c7c5c1d2c5d4e3d4d7d5c4d5f6d5\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3b7b6f1d3c8b7g1f3f6e4d1c2f7f5e1g1b4c3b2c3e8g8f3e1d7d6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3b7b6f1d3c8b7g1f3f6e4e1g1b4c3b2c3e4c3d1c2b7f3g2f3d8g5\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3b7b6g1e2c8a6a2a3b4e7e2f4d7d5c4d5a6f1e1f1e6d5g2g4c7c6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3b7b6g1e2c8a6a2a3b4e7e2g3d7d5c4d5a6f1g3f1e6d5f1g3d8d7\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3b7b6g1e2c8a6e2g3e8g8e3e4d7d6c1d2c7c5a2a3b4a5d4d5e6d5\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3b7b6g1e2c8a6e2g3e8g8f1d3c7c5e1g1c5d4e3d4d7d5c4d5a6d3\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3b7b6g1e2c8b7a2a3b4c3e2c3e8g8f1d3c7c5d4d5b6b5e1g1b5c4\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3b7b6g1e2e8g8a2a3b4c3e2c3d7d5c4d5e6d5b2b4c7c5b4c5b6c5\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5a2a3b4c3b2c3b7b6f1d3c8b7f2f3b8c6g1e2e8g8e1g1c6a5\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5a2a3b4c3b2c3b8c6f1d3e8g8g1e2b7b6e3e4f6e8c1e3d7d6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5f1d3b7b6g1f3c8b7e1g1e8g8c1d2d7d6d1c2b8d7a2a3b4c3\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5f1d3b7b6g1f3c8b7e1g1e8g8c3a4c5d4e3d4d8c7a2a3b4e7\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5f1d3b8c6g1e2c5d4e3d4d7d5c4d5f6d5e1g1b4d6c3e4d6e7\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5f1d3b8c6g1e2c5d4e3d4d7d5c4d5f6d5e1g1b4d6c3e4d6e7\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5f1d3b8c6g1e2c5d4e3d4d7d5c4d5f6d5e1g1e8g8d3b1b4e7\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5f1d3b8c6g1e2c5d4e3d4d7d5c4d5f6d5e1g1e8g8d3c2b4d6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5f1d3b8c6g1f3b4c3b2c3d7d6e1g1e6e5d1c2e8g8f3g5h7h6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5f1d3b8c6g1f3b4c3b2c3d7d6e1g1e8g8f3d2e6e5d2e4b7b6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5f1d3b8c6g1f3d7d5e1g1e8g8a2a3b4c3b2c3d5c4d3c4d8c7\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5f1d3b8c6g1f3d7d5e1g1e8g8a2a3b4c3b2c3d5c4d3c4d8c7\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5f1d3b8c6g1f3d7d5e1g1e8g8a2a3b4c3b2c3d5c4d3c4d8c7\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5f1d3b8c6g1f3e8g8e1g1d7d5a2a3b4c3b2c3d5c4d3c4d8c7\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5f1d3c5d4e3d4d7d5c4d5f6d5g1e2e8g8e1g1b8c6c3d5e6d5\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5f1d3d7d5g1f3b8c6e1g1e8g8a2a3c5d4e3d4d5c4d3c4b4e7\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5f1d3d7d5g1f3d5c4d3c4a7a6a2a3b4a5e1g1b7b5c4e2c5d4\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5f1d3d7d5g1f3e8g8e1g1b7b6c4d5e6d5c1d2c8g4a2a3b4c3\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5f1d3d7d5g1f3e8g8e1g1b7b6c4d5e6d5f3e5f8e8c1d2c8a6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5f1d3d7d5g1f3e8g8e1g1b8c6a2a3b4c3b2c3d5c4d3c4d8c7\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5f1d3d7d5g1f3e8g8e1g1b8c6a2a3b4c3b2c3d5c4d3c4d8c7\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5f1d3d7d5g1f3e8g8e1g1b8c6a2a3b4c3b2c3d5c4d3c4d8c7\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5f1d3d7d5g1f3e8g8e1g1b8c6a2a3b4c3b2c3d5c4d3c4d8c7\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5f1d3d7d5g1f3e8g8e1g1b8c6a2a3b4c3b2c3d5c4d3c4d8c7\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5f1d3d7d5g1f3e8g8e1g1c5d4e3d4d5c4d3c4b7b6c1g5c8b7\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5f1d3e8g8a2a3b4c3b2c3b7b6e3e4c8b7c1g5h7h6h2h4d7d6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5f1d3e8g8a2a3b4c3b2c3b7b6g1e2c8b7e1g1d7d6d1c2d6d5\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5f1d3e8g8a2a3b4c3b2c3b8c6g1e2b7b6e1g1c8a6e3e4f6e8\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5f1d3e8g8g1f3b7b6e1g1c8b7a2a3b4c3b2c3b7e4d3e2b8c6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5f1d3e8g8g1f3b7b6e1g1c8b7c1d2c5d4e3d4d7d5c4d5b4c3\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5f1d3e8g8g1f3d7d5e1g1b8c6a2a3b4c3b2c3b7b6c4d5e6d5\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5f1d3e8g8g1f3d7d5e1g1b8c6a2a3b4c3b2c3d5c4d3c4d8c7\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5f1d3e8g8g1f3d7d5e1g1b8c6a2a3b4c3b2c3d5c4d3c4d8c7\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5f1d3e8g8g1f3d7d5e1g1b8c6a2a3b4c3b2c3d5c4d3c4d8c7\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5f1d3e8g8g1f3d7d5e1g1b8d7a2a3d5c4d3c4c5d4e3d4b4e7\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5f1d3e8g8g1f3d7d5e1g1d5c4d3c4b7b6d1e2c8b7f1d1c5d4\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5g1e2c5d4e3d4d7d5c4c5f6e4c1d2e4d2d1d2b7b6a2a3b4c3\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5g1e2c5d4e3d4e8g8a2a3b4e7d4d5e6d5c4d5f8e8d5d6e7f8\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5g1e2c5d4e3d4e8g8a2a3b4e7e2f4d7d5c4d5f6d5c3d5e6d5\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5g1e2d7d5a2a3b4c3e2c3c5d4e3d4d5c4f1c4b8c6c1e3e8g8\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5g1f3d7d5a2a3b4c3b2c3e8g8c4d5e6d5f1d3b8c6e1g1c8g4\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5g1f3d7d5f1e2e8g8e1g1b8c6c4d5e6d5d4c5b4c5a2a3a7a6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5g1f3e8g8f1d3b7b6d4d5e6d5c4d5f6d5d3h7g8h7d1d5b4c3\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5g1f3e8g8f1d3d7d5e1g1b8c6a2a3b4c3b2c3d5c4d3c4d8c7\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5g1f3e8g8f1d3d7d5e1g1d5c4d3c4b8d7c1d2c5d4e3d4d7b6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3d7d5a2a3b4d6g1f3e8g8c4c5d6e7b2b4f6e4c1b2b8d7f1d3f7f5\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3d7d5a2a3b4e7g1f3e8g8b2b4b8d7c1b2c7c6f1d3d5c4d3c4e7d6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3d7d5a2a3b4e7g1f3e8g8f1d3c7c5e1g1b7b6d1e2b8c6d4c5b6c5\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3d7d5c1d2e8g8g1f3b8c6f1d3d5c4d3c4a7a6e1g1b7b5c4d3c8b7\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3d7d5f1d3e8g8g1f3c7c5e1g1b8d7a2a3b4a5d1c2c5d4e3d4d5c4\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3d7d5f1d3e8g8g1f3d5c4d3c4c7c5e1g1c5d4e3d4b8c6a2a3b4c3\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3d7d5g1f3e8g8f1d3c7c5e1g1b8c6a2a3b4c3b2c3d8c7d1c2c6a5\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3d7d5g1f3e8g8f1d3c7c5e1g1d5c4d3c4c8d7a2a3b4c3b2c3d7c6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8a2a3b4c3b2c3d7d6g1e2e6e5e2g3f8e8f2f3c7c5e3e4e5d4\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8a2a3b4c3b2c3f8e8g1e2e6e5e2g3d7d6f1e2b8d7e1g1c7c5\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3b7b6g1e2d7d5e1g1d5c4d3c4c8b7f2f3c7c5a2a3c5d4\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3c7c5a2a3b4c3b2c3b8c6g1e2b7b6e3e4f6e8e1g1c8a6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3c7c5d4d5b7b5d5e6f7e6c4b5c8b7g1f3d7d5e1g1b8d7\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3c7c5g1e2d7d5e1g1d5c4d3c4b8c6a2a3b4c3b2c3d8c7\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3c7c5g1f3b7b6e1g1c8b7c3a4c5d4a2a3b4e7e3d4d8c7\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3c7c5g1f3d7d5e1g1b7b6c4d5e6d5d4c5b6c5c3e2b8c6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3c7c5g1f3d7d5e1g1b8c6a2a3b4a5c4d5e6d5d4c5a5c3\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3c7c5g1f3d7d5e1g1b8c6a2a3b4c3b2c3d5c4d3c4d8c7\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3c7c5g1f3d7d5e1g1b8c6a2a3b4c3b2c3d8c7c4d5e6d5\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3c7c5g1f3d7d5e1g1b8c6a2a3b4c3b2c3d8c7c4d5e6d5\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3c7c5g1f3d7d5e1g1b8c6a2a3d5c4d3c4b4a5d1d3a7a6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3c7c5g1f3d7d5e1g1b8d7a2a3b4a5c4d5e6d5d1e2f8e8\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3c7c5g1f3d7d5e1g1d5c4d3c4b8c6a2a3b4a5c4a2a5b6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3c7c5g1f3d7d5e1g1d5c4d3c4b8c6a2a3b4a5c4a2a7a6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3c7c5g1f3d7d5e1g1d5c4d3c4b8c6a2a3b4a5c4a2a7a6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3c7c5g1f3d7d5e1g1d5c4d3c4b8c6a2a3b4a5c4d3c5d4\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3c7c5g1f3d7d5e1g1d5c4d3c4b8d7c4b3b7b6a2a3c5d4\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3c7c5g1f3d7d5e1g1d5c4d3c4c5d4e3d4b7b6d1e2c8b7\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3c7c5g1f3d7d5e1g1d5c4d3c4d8e7a2a3b4a5d1c2c8d7\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3d7d5a2a3b4c3b2c3d5c4d3c4c7c5g1e2d8c7c4d3b7b6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3d7d5a2a3d5c4d3c4b4d6d1c2b8d7g1f3a7a6c4a2c7c5\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3d7d5a2a3d5c4d3c4b4d6d1c2b8d7g1f3c7c5d4c5d6c5\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3d7d5g1e2d5c4d3c4e6e5e1g1e5d4e3d4b8c6h2h3c8f5\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3d7d5g1f3b7b6e1g1c7c5d1e2b8d7c4d5e6d5a2a3b4a5\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3d7d5g1f3b7b6e1g1c8b7a2a3b4c3b2c3d5c4d3c4c7c5\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3d7d5g1f3b7b6e1g1c8b7a2a3b4d6b2b4d5c4d3c4b8d7\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3d7d5g1f3b7b6e1g1c8b7a2a3b4d6d1e2c7c5d4c5b6c5\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3d7d5g1f3b7b6e1g1c8b7c1d2d5c4d3c4b8d7d1e2c7c5\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3d7d5g1f3b7b6e1g1c8b7c4d5e6d5a2a3b4d6b2b4a7a6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3d7d5g1f3b7b6e1g1c8b7c4d5e6d5a2a3b4d6b2b4a7a6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3d7d5g1f3b7b6e1g1c8b7c4d5e6d5c1d2b8d7d1c2c7c5\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3d7d5g1f3b7b6e1g1c8b7c4d5e6d5f3e5b4d6f2f4c7c5\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3d7d5g1f3b7b6e1g1c8b7d1e2b8d7a2a3b4c3b2c3c7c5\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3d7d5g1f3c7c5e1g1b7b6c4d5e6d5d4c5b6c5c3a4b8d7\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3d7d5g1f3c7c5e1g1b8c6a2a3b4c3b2c3b7b6c4d5e6d5\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3d7d5g1f3c7c5e1g1b8c6a2a3b4c3b2c3b7b6c4d5e6d5\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3d7d5g1f3c7c5e1g1b8c6a2a3b4c3b2c3b7b6c4d5e6d5\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3d7d5g1f3c7c5e1g1b8c6a2a3b4c3b2c3b7b6f3e5c8b7\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3d7d5g1f3c7c5e1g1b8c6a2a3b4c3b2c3d8c7c4d5e6d5\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3d7d5g1f3c7c5e1g1b8c6a2a3b4c3b2c3d8c7c4d5e6d5\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3d7d5g1f3c7c5e1g1b8c6a2a3b4c3b2c3d8c7c4d5e6d5\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3d7d5g1f3c7c5e1g1b8c6a2a3d5c4d3c4b4a5d1d3a7a6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3d7d5g1f3c7c5e1g1b8d7a2a3b4a5d1c2c5d4e3d4d5c4\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3d7d5g1f3c7c5e1g1b8d7c4d5e6d5a2a3b4c3b2c3f8e8\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3d7d5g1f3c7c5e1g1b8d7d1e2a7a6a2a3b4a5a1b1d5c4\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3d7d5g1f3c7c5e1g1b8d7d1e2a7a6a2a3c5d4e3d4d5c4\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3d7d5g1f3c7c5e1g1c5d4e3d4d5c4d3c4b7b6f1e1c8b7\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3d7d5g1f3c7c5e1g1d5c4d3c4b8c6a2a3b4a5d1d3a7a6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3d7d5g1f3c7c5e1g1d5c4d3c4b8d7a2a3c5d4e3d4b4c3\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3d7d5g1f3c7c5e1g1d5c4d3c4b8d7d1e2a7a6a2a3c5d4\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3d7d5g1f3d5c4d3c4c7c5e1g1b8c6a2a3b4a5d1d3a7a6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3d7d6g1e2e6e5e1g1b4c3e2c3f8e8b2b3e5e4d3c2c8g4\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3d7d6g1e2e6e5e1g1b8c6c3d5e5d4e3d4h7h6d5b4c6b4\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8g1e2d7d5a2a3b4e7c4d5e6d5b2b4b7b6e2f4c7c6f1d3e7d6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8g1e2d7d5a2a3b4e7c4d5e6d5b2b4b8d7e2g3f8e8f1d3c7c6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8g1e2d7d5a2a3b4e7c4d5e6d5e2g3c7c5d4c5e7c5b2b4d5d4\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8g1e2d7d5a2a3b4e7c4d5e6d5e2g3c7c5f1d3b8c6e1g1f8e8\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8g1e2d7d5a2a3b4e7c4d5e6d5e2g3c8e6f1d3b8d7e1g1c7c6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8g1e2d7d5a2a3b4e7c4d5e6d5e2g3f8e8b2b4c7c6f1d3b7b5\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8g1e2d7d5a2a3b4e7c4d5e6d5e2g3f8e8f1d3b8d7e1g1a7a6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8g1e2d7d5a2a3b4e7c4d5e6d5g2g3b8d7f1g2d7b6e1g1f8e8\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8g1e2d7d5a2a3b4e7c4d5e6d5g2g3b8d7f1g2d7b6e1g1f8e8\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8g1e2d7d5a2a3b4e7c4d5f6d5d1c2b8d7b2b4c7c6c1d2d5b6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8g1e2d7d5a2a3b4e7c4d5f6d5d1c2b8d7c1d2c7c5c3d5e6d5\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8g1e2d7d5a2a3b4e7c4d5f6d5d1c2b8d7e2g3c7c5f1d3d5f6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8g1e2d7d5a2a3b4e7e2g3c7c5d4c5e7c5b2b4c5e7c1b2d5c4\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8g1e2f8e8a2a3b4f8d4d5d7d6g2g3e6d5c4d5c7c5d5c6b7c6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8g1e2f8e8g2g3d7d5f1g2d5c4e1g1c7c6d1c2b8d7c3e4d7b6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8g1f3b7b6f1e2c8b7e1g1d7d5c4d5e6d5c1d2b4d6a1c1a7a6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8g1f3c7c5f1e2d7d5e1g1c5d4e3d4b8c6c1g5b4e7a1c1b7b6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8g1f3d7d5a2a3b4c3b2c3b7b6c4d5e6d5f1d3c7c5e1g1b8c6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8g1f3d7d5f1e2b7b6e1g1c8b7a2a3b4d6b2b4d5c4e2c4a7a5\r
+d2d4g8f6c2c4e7e6b1c3f8b4f2f3d7d5a2a3b4c3b2c3c7c5c4d5f6d5d4c5d8a5e2e4d5e7c1e3e8g8\r
+d2d4g8f6c2c4e7e6b1c3f8b4f2f3d7d5a2a3b4c3b2c3c7c5c4d5f6d5d4c5d8a5e2e4d5e7c1e3e8g8\r
+d2d4g8f6c2c4e7e6b1c3f8b4f2f3d7d5a2a3b4c3b2c3e8g8c4d5e6d5e2e3f6h5g1e2b7b6g2g3c8a6\r
+d2d4g8f6c2c4e7e6b1c3f8b4f2f3d7d5a2a3b4e7e2e4d5e4f3e4e6e5d4d5e7c5c1g5a7a5g1f3d8e7\r
+d2d4g8f6c2c4e7e6b1c3f8b4g1f3b7b6c1g5h7h6g5h4g7g5h4g3f6e4d1c2c8b7e2e3d7d6f1d3b4c3\r
+d2d4g8f6c2c4e7e6b1c3f8b4g1f3c7c5e2e3b8c6f1d3b4c3b2c3d7d6e3e4e6e5d4d5c6e7f3h4h7h6\r
+d2d4g8f6c2c4e7e6b1c3f8b4g1f3c7c5e2e3d7d5a2a3b4c3b2c3e8g8c1b2b8c6a1c1f8e8f1d3d5c4\r
+d2d4g8f6c2c4e7e6b1c3f8b4g1f3c7c5e2e3d7d5a2a3b4c3b2c3e8g8f1d3b8d7e1g1b7b6c4d5e6d5\r
+d2d4g8f6c2c4e7e6b1c3f8b4g1f3c7c5e2e3d7d5f1d3e8g8e1g1b8c6a2a3b4c3b2c3d5c4d3c4d8c7\r
+d2d4g8f6c2c4e7e6b1c3f8b4g1f3c7c5e2e3e8g8f1e2b7b6e1g1c8b7c3a4c5d4e3d4b4e7a2a3f6e4\r
+d2d4g8f6c2c4e7e6b1c3f8b4g1f3c7c5e2e3e8g8f1e2d7d5e1g1b8c6c4d5c5d4d5c6d4c3d1b3d8e7\r
+d2d4g8f6c2c4e7e6b1c3f8b4g1f3c7c5g2g3b7b6f1g2c8b7e1g1c5d4d1d4b8c6d4d3e8g8f1d1a8c8\r
+d2d4g8f6c2c4e7e6b1c3f8b4g1f3c7c5g2g3b7b6f1g2c8b7e1g1c5d4d1d4b8c6d4d3e8g8f1d1a8c8\r
+d2d4g8f6c2c4e7e6b1c3f8b4g1f3c7c5g2g3b8c6f1g2d7d5c4d5f6d5c1d2c5d4f3d4c6d4c3d5b4d2\r
+d2d4g8f6c2c4e7e6b1c3f8b4g1f3c7c5g2g3b8c6f1g2f6e4c1d2b4c3b2c3e8g8e1g1c6a5d4c5d8c7\r
+d2d4g8f6c2c4e7e6b1c3f8b4g1f3c7c5g2g3b8c6f1g2f6e4c1d2b4c3b2c3e8g8e1g1f7f5d2e3e4c3\r
+d2d4g8f6c2c4e7e6b1c3f8b4g1f3c7c5g2g3c5d4f3d4e8g8f1g2d7d5c4d5f6d5d1b3b8a6e1g1d5c3\r
+d2d4g8f6c2c4e7e6b1c3f8b4g1f3c7c5g2g3c5d4f3d4e8g8f1g2d7d5d1b3b4c3b2c3b8c6c4d5c6a5\r
+d2d4g8f6c2c4e7e6b1c3f8b4g1f3c7c5g2g3c5d4f3d4e8g8f1g2d7d5e1g1d5c4d1a4d8e7d4c2b4c5\r
+d2d4g8f6c2c4e7e6b1c3f8b4g1f3c7c5g2g3d7d5c4d5f6d5c1d2c5d4c3d5b4d2d1d2d8d5d2d4d5d4\r
+d2d4g8f6c2c4e7e6b1c3f8b4g1f3c7c5g2g3f6e4d1d3d8a5d3e4b4c3c1d2c3d2f3d2a5b6d4c5b6b2\r
+d2d4g8f6c2c4e7e6b1c3f8b4g1f3d7d6d1b3a7a5g2g3b8c6f1g2f6e4e1g1b4c3b2c3e8g8f3e1f7f5\r
+d2d4g8f6c2c4e7e6b1c3f8b4g1f3e8g8c1g5c7c5e2e3c5d4e3d4h7h6g5h4d7d5a1c1d5c4f1c4b8c6\r
+d2d4g8f6c2c4e7e6b1c3f8b4g1f3e8g8c1g5d7d6e2e3b8d7d1c2b7b6f1d3b4c3b2c3h7h6g5h4c8b7\r
+d2d4g8f6c2c4e7e6b1c3f8b4g1f3e8g8d1b3c7c5d4c5b8a6c1d2d8e7e2e3a6c5b3c2b7b6f1e2c8b7\r
+d2d4g8f6c2c4e7e6b1c3f8b4g1f3f6e4d1c2d7d5e2e3c7c5f1d3e4f6c4d5e6d5d4c5b4c5e1g1b8c6\r
+d2d4g8f6c2c4e7e6b1c3f8b4g1f3f6e4d1c2f7f5g2g3b8c6f1g2e8g8e1g1b4c3b2c3c6a5c4c5d7d6\r
+d2d4g8f6c2c4e7e6g1f3b7b6a2a3c7c5d4d5c8a6d1c2e6d5c4d5g7g6b1c3f8g7g2g3e8g8f1g2d7d6\r
+d2d4g8f6c2c4e7e6g1f3b7b6a2a3c7c5d4d5c8a6d1c2e6d5c4d5g7g6b1c3f8g7g2g3e8g8f1g2d7d6\r
+d2d4g8f6c2c4e7e6g1f3b7b6a2a3c8a6d1c2a6b7b1c3c7c5d4c5b6c5c1g5h7h6g5h4f8e7e2e3e8g8\r
+d2d4g8f6c2c4e7e6g1f3b7b6a2a3c8a6d1c2a6b7b1c3c7c5e2e3f8e7f1d3c5d4e3d4d8c8e1g1b7f3\r
+d2d4g8f6c2c4e7e6g1f3b7b6a2a3c8a6d1c2d7d5c4d5e6d5b1c3c7c6g2g3f8d6f1g2e8g8e1g1f8e8\r
+d2d4g8f6c2c4e7e6g1f3b7b6a2a3c8a6d1c2d7d5e2e3f8e7b2b4e8g8b1d2c7c5b4b5a6b7c1b2b8d7\r
+d2d4g8f6c2c4e7e6g1f3b7b6a2a3c8a6e2e3c7c5b1c3c5d4f3d4a6b7d4b5d7d6f1e2a7a6e2f3d8d7\r
+d2d4g8f6c2c4e7e6g1f3b7b6a2a3c8a6e2e3d7d5b1d2f8e7b2b4e8g8c1b2c7c5d4c5b6c5b4b5a6b7\r
+d2d4g8f6c2c4e7e6g1f3b7b6a2a3c8b7b1c3d7d5c4d5e6d5g2g3f8d6f1g2e8g8e1g1f8e8c1g5b8d7\r
+d2d4g8f6c2c4e7e6g1f3b7b6a2a3c8b7b1c3d7d5c4d5f6d5c1d2b8d7d1c2c7c5c3d5e6d5d4c5b6c5\r
+d2d4g8f6c2c4e7e6g1f3b7b6a2a3c8b7b1c3d7d5c4d5f6d5c1d2f8e7d1c2e8g8e2e4d5c3d2c3b8d7\r
+d2d4g8f6c2c4e7e6g1f3b7b6a2a3c8b7b1c3d7d5c4d5f6d5d1c2c7c5e2e4d5c3b2c3b8d7c1f4c5d4\r
+d2d4g8f6c2c4e7e6g1f3b7b6a2a3c8b7b1c3d7d5e2e3b8d7c4d5e6d5f1e2f8d6b2b4e8g8e1g1a7a6\r
+d2d4g8f6c2c4e7e6g1f3b7b6a2a3c8b7b1c3f8e7d4d5e6d5c4d5e8g8g2g3f8e8f1g2e7f8e1g1c7c6\r
+d2d4g8f6c2c4e7e6g1f3b7b6a2a3c8b7b1c3g7g6c1f4f8g7e2e3e8g8f1e2d7d6e1g1b8d7h2h3f6e4\r
+d2d4g8f6c2c4e7e6g1f3b7b6a2a3c8b7b1c3g7g6c1g5f8g7e2e3h7h6g5h4d7d6d4d5e8g8f1e2g6g5\r
+d2d4g8f6c2c4e7e6g1f3b7b6a2a3f8e7b1c3d7d5c4d5e6d5c1f4e8g8e2e3c7c5f3e5c8b7f1e2b8c6\r
+d2d4g8f6c2c4e7e6g1f3b7b6a2a3f8e7b1c3d7d5c4d5e6d5g2g3e8g8f1g2c8b7e1g1c7c5c1f4b8c6\r
+d2d4g8f6c2c4e7e6g1f3b7b6b1c3c8b7a2a3b7f3g2f3f8e7f3f4d7d5f4f5e6f5f1g2e8g8c4d5e7d6\r
+d2d4g8f6c2c4e7e6g1f3b7b6b1c3c8b7a2a3d7d5c4d5e6d5g2g3f8d6f1g2e8g8e1g1c7c6f3e5d8e7\r
+d2d4g8f6c2c4e7e6g1f3b7b6b1c3c8b7a2a3d7d5c4d5e6d5g2g3f8e7d1a4c7c6f1g2e8g8e1g1b8d7\r
+d2d4g8f6c2c4e7e6g1f3b7b6b1c3c8b7a2a3d7d5c4d5f6d5d1a4b8d7c3d5e6d5c1f4c7c6g2g3f8e7\r
+d2d4g8f6c2c4e7e6g1f3b7b6b1c3c8b7a2a3d7d5c4d5f6d5d1c2b8d7c3d5e6d5c1g5f7f6g5f4c7c5\r
+d2d4g8f6c2c4e7e6g1f3b7b6b1c3c8b7a2a3d7d5c4d5f6d5d1c2c7c5d4c5f8c5c1g5d8c8a1c1h7h6\r
+d2d4g8f6c2c4e7e6g1f3b7b6b1c3c8b7a2a3d7d5c4d5f6d5d1c2d5c3b2c3c7c5e2e4b8c6c1b2a8c8\r
+d2d4g8f6c2c4e7e6g1f3b7b6b1c3c8b7a2a3d7d5c4d5f6d5d1c2d5c3b2c3f8e7e2e3b8d7f1d3c7c5\r
+d2d4g8f6c2c4e7e6g1f3b7b6b1c3c8b7a2a3d7d5c4d5f6d5d1c2d5c3c2c3h7h6e2e3f8d6f1b5c7c6\r
+d2d4g8f6c2c4e7e6g1f3b7b6b1c3c8b7a2a3d7d5c4d5f6d5e2e3b8d7f1d3c7c5e3e4d5f6d4d5e6d5\r
+d2d4g8f6c2c4e7e6g1f3b7b6b1c3c8b7a2a3d7d5c4d5f6d5e2e3f8e7f1d3d5c3b2c3c7c5e1g1e8g8\r
+d2d4g8f6c2c4e7e6g1f3b7b6b1c3c8b7a2a3d7d5c4d5f6d5e2e3g7g6f1b5c7c6b5d3f8g7e3e4d5c3\r
+d2d4g8f6c2c4e7e6g1f3b7b6b1c3c8b7c1f4f8b4d1b3a7a5e2e3f6e4f1d3e4c3b2c3b4e7e3e4d7d6\r
+d2d4g8f6c2c4e7e6g1f3b7b6b1c3c8b7c1g5f8b4a1c1h7h6g5f6d8f6e2e3e8g8f1e2d7d6e1g1b4c3\r
+d2d4g8f6c2c4e7e6g1f3b7b6b1c3c8b7c1g5f8b4e2e3h7h6g5h4g7g5h4g3f6e4d1c2b4c3b2c3d7d6\r
+d2d4g8f6c2c4e7e6g1f3b7b6b1c3c8b7c1g5h7h6g5h4f8e7d1c2c7c5d4c5b6c5e2e3e8g8f1e2d7d6\r
+d2d4g8f6c2c4e7e6g1f3b7b6b1c3c8b7c1g5h7h6g5h4f8e7d1c2c7c5d4c5b6c5e2e3e8g8f1e2d7d6\r
+d2d4g8f6c2c4e7e6g1f3b7b6b1c3c8b7c1g5h7h6g5h4f8e7e2e3f6e4h4e7d8e7c3e4b7e4f1e2e7b4\r
+d2d4g8f6c2c4e7e6g1f3b7b6b1c3c8b7c1g5h7h6g5h4f8e7e2e3f6e4h4e7d8e7c3e4b7e4f1e2e8g8\r
+d2d4g8f6c2c4e7e6g1f3b7b6b1c3c8b7c1g5h7h6g5h4f8e7e2e3f6e4h4e7d8e7c3e4b7e4f1e2e8g8\r
+d2d4g8f6c2c4e7e6g1f3b7b6b1c3c8b7e2e3d7d5c4d5e6d5f1b5c7c6b5d3f8e7e1g1e8g8b2b3b8d7\r
+d2d4g8f6c2c4e7e6g1f3b7b6b1c3c8b7e2e3f8e7f1d3c7c5e1g1c5d4e3d4d7d5c4d5f6d5d3b5b7c6\r
+d2d4g8f6c2c4e7e6g1f3b7b6b1c3c8b7e2e3f8e7f1d3d7d5e1g1e8g8d1e2b8d7b2b3a7a6c1b2e7d6\r
+d2d4g8f6c2c4e7e6g1f3b7b6b1c3f8b4c1d2c8b7e2e3e8g8f1d3d7d5e1g1c7c5c4d5e6d5d4c5b6c5\r
+d2d4g8f6c2c4e7e6g1f3b7b6b1c3f8b4c1g5c8b7e2e3h7h6g5h4b4c3b2c3d7d6f3d2g7g5h4g3d8e7\r
+d2d4g8f6c2c4e7e6g1f3b7b6b1c3f8b4c1g5c8b7e2e3h7h6g5h4g7g5h4g3f6e4d1c2b4c3b2c3d7d6\r
+d2d4g8f6c2c4e7e6g1f3b7b6b1c3f8b4c1g5c8b7e2e3h7h6g5h4g7g5h4g3f6e4d1c2b4c3b2c3d7d6\r
+d2d4g8f6c2c4e7e6g1f3b7b6b1c3f8b4c1g5c8b7e2e3h7h6g5h4g7g5h4g3f6e4d1c2b4c3b2c3d7d6\r
+d2d4g8f6c2c4e7e6g1f3b7b6b1c3f8b4d1b3d8e7c1g5c8b7e2e3a7a5a2a3b4c3b3c3f6e4g5e7e4c3\r
+d2d4g8f6c2c4e7e6g1f3b7b6b1c3f8b4e2e3f6e4d1c2c8b7f1d3f7f5e1g1b4c3b2c3e8g8f3e1c7c5\r
+d2d4g8f6c2c4e7e6g1f3b7b6c1g5h7h6g5h4c8b7e2e3c7c5b1c3f8e7f1e2c5d4f3d4e8g8e1g1b8c6\r
+d2d4g8f6c2c4e7e6g1f3b7b6e2e3c8b7a2a3d7d5b2b4d5c4f1c4f8e7b1d2e8g8a1b1b8d7e1g1a8b8\r
+d2d4g8f6c2c4e7e6g1f3b7b6e2e3c8b7f1d3d7d5e1g1b8d7b2b3f8e7c1b2e8g8b1c3c7c5d1e2a8c8\r
+d2d4g8f6c2c4e7e6g1f3b7b6e2e3c8b7f1d3f8b4b1d2c7c5d4c5b4c5e1g1b8c6a2a3d8c7b2b3c6e5\r
+d2d4g8f6c2c4e7e6g1f3b7b6e2e3c8b7f1d3f8b4b1d2e8g8a2a3b4d2d1d2c7c5b2b4d7d6c1b2b8d7\r
+d2d4g8f6c2c4e7e6g1f3b7b6e2e3c8b7f1d3f8e7b1c3d7d5d1a4c7c6c4d5e6d5e1g1e8g8a4c2c6c5\r
+d2d4g8f6c2c4e7e6g1f3b7b6e2e3c8b7f1d3f8e7b1c3d7d5e1g1e8g8d1e2c7c5d4c5b6c5f1d1d8b6\r
+d2d4g8f6c2c4e7e6g1f3b7b6e2e3c8b7f1d3f8e7e1g1e8g8b1c3d7d5d1e2b8d7b2b3a7a6c1b2e7d6\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b1d2a6b7f1g2c7c5e2e4c5d4e1g1d7d6f3d4b8d7f1e1e6e5\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b1d2a6b7f1g2f8e7e1g1e8g8d1c2b8a6a2a3c7c5b2b3d7d5\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b1d2a6b7f1g2f8e7e1g1e8g8d1c2d7d5c4d5e6d5f3e5c7c5\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b1d2a6b7f1g2f8e7e2e4f6e4f3e5e7b4d1e2d7d5c4d5d8d5\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b1d2c7c5f1g2b8c6d4c5f8c5e1g1e8g8a2a3a6b7b2b4c5e7\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b1d2c7c6f1g2d7d5e1g1f8e7f3e5e8g8b2b3a6b7c1b2b8a6\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b1d2f8b4d1c2a6b7f1g2b7e4c2b3b4d2c1d2e8g8e1g1d7d6\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b1d2f8b4d1c2a6b7f1g2b7e4c2d1b4d2c1d2e8g8e1g1d7d6\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b2b3a6b7f1g2f8b4c1d2a7a5e1g1e8g8b1c3f6e4c3e4b7e4\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b2b3d7d5f1g2d5c4f3e5f8b4e1f1f6d7e5c4c7c6c1b2b6b5\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b2b3d7d5f1g2d5c4f3e5f8b4e1f1f6d7e5c4c7c6c1b2e8g8\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b2b3f8b4c1d2b4d2d1d2d7d5c4d5e6d5d2e3d8e7e3e7e8e7\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b2b3f8b4c1d2b4e7b1c3d7d5c4d5f6d5c3d5e6d5f1g2b8d7\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b2b3f8b4c1d2b4e7b1c3d7d5c4d5f6d5c3d5e6d5f1g2e8g8\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b2b3f8b4c1d2b4e7b1c3d7d5c4d5f6d5f1g2e8g8c3d5e6d5\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b2b3f8b4c1d2b4e7b1c3e8g8e2e4d7d5c4d5a6f1e1f1e6d5\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b2b3f8b4c1d2b4e7b1c3e8g8e2e4d7d5c4d5a6f1e1f1e6d5\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b2b3f8b4c1d2b4e7b1c3e8g8f1g2c7c6e2e4d7d5d1e2b8d7\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b2b3f8b4c1d2b4e7f1g2a6b7b1c3d7d5c4d5e6d5e1g1e8g8\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b2b3f8b4c1d2b4e7f1g2a6b7b1c3e8g8e1g1b8a6f1e1c7c5\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b2b3f8b4c1d2b4e7f1g2c7c6d2c3d7d5b1d2a6b7f3e5e8g8\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b2b3f8b4c1d2b4e7f1g2c7c6d2c3d7d5b1d2b8d7e1g1e8g8\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b2b3f8b4c1d2b4e7f1g2c7c6d2c3d7d5f3e5a6b7b1d2b8d7\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b2b3f8b4c1d2b4e7f1g2c7c6d2c3d7d5f3e5e8g8e1g1a6b7\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b2b3f8b4c1d2b4e7f1g2c7c6d2c3d7d5f3e5f6d7e5d7b8d7\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b2b3f8b4c1d2b4e7f1g2c7c6d2c3d7d5f3e5f6d7e5d7b8d7\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b2b3f8b4c1d2b4e7f1g2c7c6d2c3d7d5f3e5f6d7e5d7b8d7\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b2b3f8b4c1d2b4e7f1g2c7c6d2c3d7d5f3e5f6d7e5d7b8d7\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b2b3f8b4c1d2b4e7f1g2c7c6d2c3d7d5f3e5f6d7e5d7b8d7\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b2b3f8b4c1d2b4e7f1g2c7c6d2c3d7d5f3e5f6e4e1g1e4c3\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b2b3f8b4c1d2b4e7f1g2c7c6d2c3e8g8b1d2d7d5f3e5a6b7\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b2b3f8b4c1d2b4e7f1g2c7c6e1g1d7d5f3e5f6d7e5d7b8d7\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b2b3f8b4c1d2b4e7f1g2d7d5f3e5a6b7e1g1b8d7b1c3c7c5\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b2b3f8b4c1d2b4e7f1g2d7d5f3e5c7c6d2c3f6e4e1g1e4c3\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b2b3f8b4c1d2b4e7f1g2d7d5f3e5e8g8e1g1a6b7b1c3b8d7\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b2b3f8b4c1d2b4e7f1g2e8g8e1g1d7d5c4d5f6d5b1c3b8d7\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b2b3f8b4c1d2b4e7f1g2e8g8e1g1d7d5f3e5c7c6d2c3f6d7\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b2b3f8b4c1d2b4e7f1g2e8g8e1g1d7d5f3e5c7c6d2c3f6d7\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6d1a4f8e7b1c3e8g8f1g2a6b7a4c2d7d5c4d5e6d5e1g1b8a6\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6d1a4f8e7f1g2e8g8b1c3c7c6f3e5d8e8e1g1d7d5f1e1b6b5\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6d1b3b8c6b1d2f8e7f1g2e8g8e1g1d7d5b3a4a6b7f1d1d8d7\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6d1b3d7d5c4d5e6d5b1c3f8e7f1g2e8g8f3e5a6b7e1g1c7c6\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8b7f1g2f8b4c1d2a7a5e1g1e8g8d2g5b4e7d1c2h7h6g5f6e7f6\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8b7f1g2f8b4c1d2b4d2d1d2d7d6e1g1e8g8b1c3f6e4c3e4b7e4\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8b7f1g2f8b4c1d2b4e7b1c3f6e4e1g1e8g8d4d5e4d2d1d2e7f6\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8b7f1g2f8e7b1c3f6e4c1d2d7d6d4d5e4d2d1d2e6e5h2h4b8d7\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8b7f1g2f8e7b1c3f6e4c1d2e7f6e1g1e8g8d1c2e4d2c2d2d7d6\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8b7f1g2f8e7b1c3f6e4c1d2e8g8d4d5e4c3d2c3e7f6a1c1c7c6\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8b7f1g2f8e7b1c3f6e4c1d2f7f5e1g1e8g8d1c2e4c3d2c3b7e4\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8b7f1g2f8e7e1g1e8g8b1c3f6e4c3e4b7e4d4d5e7f6f3e1e4g2\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8b7f1g2f8e7e1g1e8g8b1c3f6e4c3e4b7e4f3e1e4g2e1g2d7d5\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8b7f1g2f8e7e1g1e8g8b1c3f6e4d1c2e4c3c2c3b7e4b2b3c7c5\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8b7f1g2f8e7e1g1e8g8b1c3f6e4d1c2e4c3c2c3c7c5c1e3e7f6\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8b7f1g2f8e7e1g1e8g8b1c3f6e4d1c2e4c3c2c3c7c5f1d1d7d6\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8b7f1g2f8e7e1g1e8g8b1c3f6e4d1c2e4c3c2c3c7c5f1d1e7f6\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8b7f1g2f8e7e1g1e8g8b1c3f6e4d1c2e4c3c2c3d7d6f1d1b8d7\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8b7f1g2f8e7e1g1e8g8b1c3f6e4d1c2e4c3c2c3f7f5b2b3e7f6\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8b7f1g2f8e7e1g1e8g8b1c3f6e4d1c2e4c3c2c3f7f5b2b3e7f6\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8b7f1g2f8e7e1g1e8g8b1c3f6e4d1c2e4c3c2c3f7f5b2b3e7f6\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8b7f1g2f8e7e1g1e8g8b2b3d7d5f3e5c7c5d4c5b6c5c4d5e6d5\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8b7f1g2f8e7e1g1e8g8d4d5e6d5f3h4c7c6c4d5f6d5h4f5d5c7\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3f8b4c1d2b4d2d1d2c8a6b1a3c7c5f1g2b8c6e1g1e8g8f1d1a8c8\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3f8b4c1d2b4d2d1d2c8a6d2c2c7c5f1g2b8c6d4c5b6c5e1g1e8g8\r
+d2d4g8f6c2c4e7e6g1f3c7c5b1c3c5d4f3d4f8b4d1b3b8a6e2e3f6e4f1e2d8a5e1g1a6c5b3c2b4c3\r
+d2d4g8f6c2c4e7e6g1f3c7c5d4d5d7d6b1c3g7g6e2e4f8g7h2h3e8g8f1d3e6d5c4d5a7a6a2a4f6h5\r
+d2d4g8f6c2c4e7e6g1f3c7c5d4d5e6d5c4d5d7d6b1c3g7g6e2e4f8g7f1e2e8g8e1g1f8e8f3d2b8d7\r
+d2d4g8f6c2c4e7e6g1f3c7c5d4d5e6d5c4d5d7d6b1c3g7g6f3d2b8d7e2e4f8g7f1e2e8g8e1g1a7a6\r
+d2d4g8f6c2c4e7e6g1f3c7c5d4d5e6d5c4d5d7d6b1c3g7g6f3d2b8d7e2e4f8g7f1e2e8g8e1g1f8e8\r
+d2d4g8f6c2c4e7e6g1f3c7c5d4d5e6d5c4d5g7g6b1c3f8g7c1g5e8g8e2e3f8e8f3d2d7d6f1e2a7a6\r
+d2d4g8f6c2c4e7e6g1f3c7c5d4d5e6d5c4d5g7g6b1c3f8g7e2e4e8g8f1e2f8e8f3d2d7d6e1g1b8d7\r
+d2d4g8f6c2c4e7e6g1f3c7c5e2e3d7d5c4d5e6d5b1c3b8c6f1e2a7a6e1g1f8d6d4c5d6c5b2b3e8g8\r
+d2d4g8f6c2c4e7e6g1f3c7c5g2g3c5d4f3d4d8a5b1c3f8b4d1d3f6e4d4b3a5f5d3e3e4c3b2c3b4e7\r
+d2d4g8f6c2c4e7e6g1f3c7c5g2g3c5d4f3d4f8b4c1d2d8b6d2b4b6b4b1c3b4b2d4b5b2b4b5c7e8d8\r
+d2d4g8f6c2c4e7e6g1f3c7c6b1c3d7d5e2e3b8d7f1d3d5c4d3c4b7b5c4d3a7a6e3e4c6c5e4e5c5d4\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3b8d7c1g5h7h6g5h4d5c4e2e4f8e7d1e2d7b6h4g3e8g8e1c1c8d7\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3b8d7d1c2f8e7c4d5e6d5c1f4c7c6h2h3d7f8e2e3f8g6f4h2e8g8\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3c7c5c4d5c5d4d1d4e6d5c1g5f8e7e2e3b8c6d4d2e8g8f1e2c8e6\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3c7c5c4d5f6d5e2e3b8c6f1c4d5c3b2c3f8e7e1g1e8g8e3e4b7b6\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3c7c5c4d5f6d5e2e3b8c6f1d3c5d4e3d4g7g6c1g5d8a5e1g1f8g7\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3c7c5c4d5f6d5e2e3b8c6f1d3d5c3b2c3f8e7d1c2g7g6h2h4h7h5\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3c7c5c4d5f6d5e2e4d5c3b2c3c5d4c3d4b8c6f1c4b7b5c4d3f8b4\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3c7c5c4d5f6d5e2e4d5c3b2c3c5d4c3d4b8c6f1c4b7b5c4e2f8b4\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3c7c5c4d5f6d5g2g3c5d4c3d5d8d5d1d4d5b5e2e4b5b4d4b4f8b4\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3c7c5e2e3b8c6a2a3f6e4d1c2e4c3b2c3f8e7c1b2e8g8f1d3h7h6\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3c7c6c1g5b8d7d1b3f8e7e2e3e8g8f1e2f6e4g5e7d8e7c3e4d5e4\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3c7c6c1g5b8d7e2e3d8a5f3d2f8b4d1c2d5c4g5f6d7f6d2c4b4c3\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3c7c6e2e3b8d7d1c2f8d6b2b3e8g8f1e2e6e5c4d5f6d5c3d5c6d5\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3c7c6e2e3b8d7d1c2f8e7b2b3e8g8f1d3c6c5c4d5e6d5e1g1b7b6\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3c7c6e2e3b8d7f1d3d5c4d3c4b7b5c4b3f8e7e1g1e8g8f1e1c8b7\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3d5c4d1a4c7c6a4c4b7b5c4d3b8d7c1g5c8b7e2e3a7a6f1e2c6c5\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3d5c4e2e4f8b4c1g5c7c5f1c4c5d4f3d4b4c3b2c3d8a5c4b5b8d7\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3d5c4e2e4f8b4c1g5c7c5f1c4c5d4f3d4b4c3b2c3d8a5d4b5c8d7\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3d5c4e2e4f8b4c1g5c7c5f1c4c5d4f3d4b4c3b2c3d8a5d4b5f6e4\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3d5c4e2e4f8b4c1g5c7c5f1c4c5d4f3d4b4c3b2c3d8a5d4b5f6e4\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3f8b4c4d5e6d5d1a4b8c6c1g5h7h6g5f6d8f6e2e3e8g8f1e2c8e6\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3f8b4e2e3e8g8f1d3c7c5e1g1b8c6a2a3b4a5c3e2d5c4d3c4a5b6\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3f8e7c1f4e8g8e2e3b7b6c4d5e6d5f1d3c7c5e1g1c8b7a1c1b8d7\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3f8e7c1f4e8g8e2e3c7c5d4c5b8c6d1c2e7c5a2a3d8a5e1c1c5e7\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3f8e7c1f4e8g8e2e3c7c5d4c5e7c5a1c1b8c6c4d5e6d5f1e2d5d4\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3f8e7c1f4e8g8e2e3c7c5d4c5e7c5a2a3b8c6b2b4c5e7c4d5f6d5\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3f8e7c1f4e8g8e2e3c7c5d4c5e7c5d1c2b8c6a1d1d8a5a2a3c5e7\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3f8e7c1g5e8g8e2e3b8d7a1c1a7a6a2a3c7c6f1d3h7h6g5h4d5c4\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3f8e7c1g5e8g8e2e3b8d7a1c1a7a6c4d5e6d5f1d3c7c6d1c2f8e8\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3f8e7c1g5e8g8e2e3h7h6g5f6e7f6c4d5e6d5d1d2c8e6g2g3c7c5\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3f8e7c1g5e8g8e2e3h7h6g5h4f6e4h4e7d8e7a1c1c7c6f1d3e4c3\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3f8e7c1g5e8g8e2e3h7h6g5h4f6e4h4e7d8e7c4d5e4c3b2c3e6d5\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3f8e7c1g5e8g8e2e3h7h6g5h4f6e4h4e7d8e7d1c2e4c3c2c3d5c4\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3f8e7c1g5h7h6g5f6e7f6d1b3c7c6e1c1d5c4b3c4b7b5c4b3a7a5\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3f8e7c1g5h7h6g5f6e7f6d1b3c7c6e2e3b8d7a1d1e8g8f1d3b7b6\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3f8e7c1g5h7h6g5f6e7f6e2e3e8g8a1c1c7c6f1d3b8d7e1g1d5c4\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3f8e7c1g5h7h6g5h4e8g8a1c1d5c4e2e3c7c5f1c4c5d4f3d4c8d7\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3f8e7c1g5h7h6g5h4e8g8e2e3b7b6a1c1c8b7h4f6e7f6c4d5e6d5\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3f8e7c1g5h7h6g5h4e8g8e2e3b7b6f1e2b8d7e1g1c8b7a1c1c7c5\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3f8e7c1g5h7h6g5h4e8g8e2e3b7b6f1e2c8b7a1c1d5c4e2c4b8d7\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3f8e7c1g5h7h6g5h4e8g8e2e3b7b6f1e2c8b7a1c1d5c4e2c4b8d7\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3f8e7c1g5h7h6g5h4e8g8e2e3b7b6f1e2c8b7h4f6e7f6c4d5e6d5\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3f8e7c1g5h7h6g5h4e8g8e2e3b7b6f1e2c8b7h4f6e7f6c4d5e6d5\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3f8e7c1g5h7h6g5h4e8g8e2e3b7b6f1e2c8b7h4f6e7f6c4d5e6d5\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3f8e7c1g5h7h6g5h4e8g8e2e3b7b6f1e2c8b7h4f6e7f6c4d5e6d5\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3f8e7c1g5h7h6g5h4e8g8e2e3b7b6f1e2c8b7h4f6e7f6c4d5e6d5\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3f8e7c1g5h7h6g5h4e8g8e2e3b7b6f1e2c8b7h4f6e7f6c4d5e6d5\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3f8e7c1g5h7h6g5h4e8g8e2e3b7b6f1e2c8b7h4f6e7f6c4d5e6d5\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3f8e7c4d5e6d5c1f4c7c6d1c2g7g6e2e3c8f5f1d3f5d3c2d3b8d7\r
+d2d4g8f6c2c4e7e6g1f3d7d5c1g5b8d7e2e3f8e7b1c3e8g8d1c2c7c5c4d5c5d4f3d4f6d5g5e7d8e7\r
+d2d4g8f6c2c4e7e6g1f3d7d5g2g3d5c4d1a4b8d7f1g2a7a6a4c4b7b5c4c6a8b8c1g5c8b7c6c2c7c5\r
+d2d4g8f6c2c4e7e6g1f3d7d5g2g3d5c4f1g2b8c6e1g1a8b8a2a4a7a6a4a5b7b5a5b6c7b6c1f4f8d6\r
+d2d4g8f6c2c4e7e6g1f3d7d5g2g3d5c4f1g2c7c5e1g1b8c6d1a4c5d4f3d4d8d4g2c6c8d7f1d1d4d1\r
+d2d4g8f6c2c4e7e6g1f3f8b4b1c3c7c5e2e3e8g8f1e2b7b6e1g1c8b7d1b3c5d4b3b4b8c6b4a3d4c3\r
+d2d4g8f6c2c4e7e6g1f3f8b4b1d2d7d5d1a4b8c6a2a3b4d2c1d2f6e4a4c2a7a5e2e3e8g8f1d3f7f5\r
+d2d4g8f6c2c4e7e6g1f3f8b4b1d2e8g8a2a3b4e7e2e4d7d5e4e5f6d7f1d3c7c5c4d5e6d5e1g1b8c6\r
+d2d4g8f6c2c4e7e6g1f3f8b4c1d2a7a5b1c3e8g8e2e3d7d6d1c2b8d7a2a3b4c3d2c3d8e7f1e2a5a4\r
+d2d4g8f6c2c4e7e6g1f3f8b4c1d2a7a5b1c3e8g8e2e3d7d6d1c2b8d7f1d3e6e5e1g1f8e8e3e4e5d4\r
+d2d4g8f6c2c4e7e6g1f3f8b4c1d2a7a5g2g3d7d5d1c2b8c6a2a3b4e7f1g2d5c4c2c4d8d5c4d3e8g8\r
+d2d4g8f6c2c4e7e6g1f3f8b4c1d2b4d2d1d2e8g8g2g3b7b6f1g2c8b7b1c3f6e4c3e4b7e4e1g1d7d6\r
+d2d4g8f6c2c4e7e6g1f3f8b4c1d2c7c5d2b4c5b4a2a3b4a3a1a3d7d6e2e3e8g8f1e2b7b6e1g1a7a5\r
+d2d4g8f6c2c4e7e6g1f3f8b4c1d2d8e7b1c3b4c3d2c3f6e4d1c2e4c3c2c3d7d6a1c1e8g8c4c5b8d7\r
+d2d4g8f6c2c4e7e6g1f3f8b4c1d2d8e7g2g3b8c6b1c3d7d5c4d5e6d5f1g2e8g8e1g1a7a5d1c2c8g4\r
+d2d4g8f6c2c4e7e6g1f3f8b4c1d2d8e7g2g3b8c6b1c3e8g8f1g2d7d6e1g1b4c3d2c3e6e5d1c2a7a5\r
+d2d4g8f6c2c4e7e6g2g3c7c5d4d5e6d5c4d5b7b5f1g2d7d6a2a3a7a5b1c3d8b6g1f3f8e7e1g1e8g8\r
+d2d4g8f6c2c4e7e6g2g3c7c5d4d5e6d5c4d5b7b5f1g2d7d6a2a3a7a5b1c3d8b6g1f3f8e7e1g1e8g8\r
+d2d4g8f6c2c4e7e6g2g3c7c5d4d5e6d5c4d5b7b5f1g2d7d6b2b4b8a6b4c5a6c5g1f3g7g6e1g1f8g7\r
+d2d4g8f6c2c4e7e6g2g3c7c5d4d5e6d5c4d5d7d6b1c3g7g6g1f3f8g7f1g2e8g8e1g1a7a6a2a4b8d7\r
+d2d4g8f6c2c4e7e6g2g3c7c5d4d5e6d5c4d5f8d6b1c3d6e5d5d6d8b6g1f3e5d6c1g5d6e7f1h3e8g8\r
+d2d4g8f6c2c4e7e6g2g3c7c5g1f3c5d4f3d4d7d5f1g2e6e5d4f3d5d4e1g1b8c6e2e3f8c5e3d4c5d4\r
+d2d4g8f6c2c4e7e6g2g3d7d5f1g2b8c6b1c3f8b4a2a3b4c3b2c3e8g8c1g5d5c4e2e4h7h6g5f6d8f6\r
+d2d4g8f6c2c4e7e6g2g3d7d5f1g2c7c6d1a4b8d7b1d2d5c4a4c4e6e5g1f3d7b6c4d3e5d4d3d4d8d4\r
+d2d4g8f6c2c4e7e6g2g3d7d5f1g2d5c4d1a4b8d7g1f3c7c5b1c3a7a6e1g1f8e7d4c5e7c5a4c4b7b5\r
+d2d4g8f6c2c4e7e6g2g3d7d5f1g2d5c4d1a4c8d7a4c4d7c6g1f3b8d7b1c3d7b6c4d3f8b4e1g1e8g8\r
+d2d4g8f6c2c4e7e6g2g3d7d5f1g2d5c4d1a4c8d7a4c4d7c6g1f3c6d5c4a4d8d7a4d7b8d7e1g1c7c5\r
+d2d4g8f6c2c4e7e6g2g3d7d5f1g2d5c4g1f3b8d7e1g1a8b8a2a4b7b6f3d2e6e5d2c4e5d4d1d4f8c5\r
+d2d4g8f6c2c4e7e6g2g3d7d5f1g2d5c4g1f3c7c5e1g1b8c6d1a4c8d7a4c4b7b5c4d3a8c8d4c5f8c5\r
+d2d4g8f6c2c4e7e6g2g3d7d5f1g2d5c4g1f3c7c5e1g1b8c6d1a4c8d7a4c4c5d4f3d4a8c8b1c3d8a5\r
+d2d4g8f6c2c4e7e6g2g3d7d5f1g2d5c4g1f3c7c5e1g1b8c6d4c5d8d1f1d1f8c5b1d2e8e7d2c4f6g4\r
+d2d4g8f6c2c4e7e6g2g3d7d5f1g2d5c4g1f3c7c5e1g1b8c6f3e5c8d7b1a3c5d4a3c4f8c5d1b3e8g8\r
+d2d4g8f6c2c4e7e6g2g3d7d5f1g2d5c4g1f3c7c5e1g1b8d7b1a3d7b6a3c4b6c4d1a4c8d7a4c4b7b5\r
+d2d4g8f6c2c4e7e6g2g3d7d5f1g2d5c4g1f3c8d7d1c2c7c5e1g1d7c6c2c4b8d7c1g5a8c8g5f6d7f6\r
+d2d4g8f6c2c4e7e6g2g3d7d5f1g2d5c4g1f3c8d7d1c2c7c5f3e5b8c6e5c6d7c6g2c6b7c6d4c5f8c5\r
+d2d4g8f6c2c4e7e6g2g3d7d5f1g2d5c4g1f3f8b4c1d2b4e7d1c2c8d7e1g1d7c6c2c4c6d5c4c2b8c6\r
+d2d4g8f6c2c4e7e6g2g3d7d5f1g2f8e7g1f3e8g8e1g1c7c6b2b3b8d7c1b2b7b6b1d2c8b7a1c1a8c8\r
+d2d4g8f6c2c4e7e6g2g3d7d5f1g2f8e7g1f3e8g8e1g1d5c4d1c2a7a6a2a4c8d7c2c4d7c6c1g5a6a5\r
+d2d4g8f6c2c4e7e6g2g3d7d5f1g2f8e7g1f3e8g8e1g1d5c4d1c2a7a6c2c4b7b5c4c2c8b7c1d2b7e4\r
+d2d4g8f6c2c4e7e6g2g3d7d5f1g2f8e7g1f3e8g8e1g1d5c4d1c2a7a6c2c4b7b5c4c2c8b7c1g5b8d7\r
+d2d4g8f6c2c4e7e6g2g3d7d5g1f3c7c6f1g2b8d7d1c2f8d6b1d2e8g8e1g1f8e8f1e1e6e5c4d5c6d5\r
+d2d4g8f6c2c4e7e6g2g3d7d5g1f3d5c4d1a4b8d7a4c4c7c5f1g2d7b6c4d3c5d4e1g1f8e7f3d4e8g8\r
+d2d4g8f6c2c4e7e6g2g3d7d5g1f3f8e7f1g2e8g8e1g1d5c4d1c2a7a6a2a4c8d7f1d1d7c6b1c3e7b4\r
+d2d4g8f6c2c4e7e6g2g3f8b4b1d2f6e4g1f3f7f5f1g2e8g8e1g1b8c6d4d5e4d2c1d2b4d2d1d2c6e7\r
+d2d4g8f6c2c4e7e6g2g3f8b4c1d2b4e7f1g2d7d5c4d5e6d5b1c3e8g8e2e3c7c6g1e2b8a6e1g1a6c7\r
+d2d4g8f6c2c4e7e6g2g3f8b4c1d2b4e7f1g2d7d5g1f3e8g8e1g1c7c6d1b3b8d7d2g5b7b6f1e1c8b7\r
+d2d4g8f6c2c4e7e6g2g3f8b4c1d2b4e7f1g2d7d5g1f3e8g8e1g1c7c6d1c2b7b6d2f4c8b7b1d2b8d7\r
+d2d4g8f6c2c4e7e6g2g3f8b4c1d2b4e7f1g2d7d5g1f3e8g8e1g1c7c6d1c2b7b6d2g5b8d7b1d2c8b7\r
+d2d4g8f6c2c4e7e6g2g3f8b4c1d2b4e7f1g2d7d5g1f3e8g8e1g1c7c6d1c2b7b6f3e5c8b7c4d5c6d5\r
+d2d4g8f6c2c4e7e6g2g3f8b4c1d2b4e7g1f3d7d5f1g2e8g8e1g1c7c6d1b3b7b6b1c3c8b7a1c1b8d7\r
+d2d4g8f6c2c4g7g6b1c3d7d5c1f4e7e6e2e3f8g7g1f3e8g8d1b3c7c6f1e2f8e8e1g1b8d7f1d1d5c4\r
+d2d4g8f6c2c4g7g6b1c3d7d5c1f4f6h5f4e5f7f6e5g3h5g3h2g3c7c6e2e3f8g7f1d3e8g8h1h7f6f5\r
+d2d4g8f6c2c4g7g6b1c3d7d5c1f4f8g7e2e3c7c5d4c5d8a5a1c1d5c4f1c4e8g8g1f3a5c5c4b3b8c6\r
+d2d4g8f6c2c4g7g6b1c3d7d5c1f4f8g7e2e3c7c5d4c5d8a5a1c1d5c4f1c4e8g8g1f3a5c5c4b3b8c6\r
+d2d4g8f6c2c4g7g6b1c3d7d5c1f4f8g7e2e3c7c5d4c5d8a5a1c1d5c4f1c4e8g8g1f3b8c6e1g1a5c5\r
+d2d4g8f6c2c4g7g6b1c3d7d5c1f4f8g7e2e3c7c5d4c5d8a5a1c1f6e4c4d5e4c3d1d2a5a2b2c3a2a5\r
+d2d4g8f6c2c4g7g6b1c3d7d5c1f4f8g7e2e3c7c5d4c5d8a5a1c1f6e4c4d5e4c3d1d2a5a2b2c3a2d2\r
+d2d4g8f6c2c4g7g6b1c3d7d5c1f4f8g7e2e3c7c6a1c1e8g8g1f3c8g4h2h3g4f3d1f3d8a5f1d3b8d7\r
+d2d4g8f6c2c4g7g6b1c3d7d5c1f4f8g7e2e3e8g8c4d5f6d5c3d5d8d5f4c7b8a6f1a6d5g2d1f3g2f3\r
+d2d4g8f6c2c4g7g6b1c3d7d5c1f4f8g7e2e3e8g8d1b3c7c5c4d5c5d4e3d4e7e6d5e6b8c6e6f7g8h8\r
+d2d4g8f6c2c4g7g6b1c3d7d5c1f4f8g7g1f3e8g8e2e3c7c5d4c5f6e4f4e5g7e5f3e5e4c3b2c3d8a5\r
+d2d4g8f6c2c4g7g6b1c3d7d5c1g5f6e4g5f4c7c6e2e3f8g7f1d3e4c3b2c3d8a5g1e2d5c4d3c4b8d7\r
+d2d4g8f6c2c4g7g6b1c3d7d5c1g5f6e4g5h4e4c3b2c3d5c4e2e3c8e6a1b1b7b6f1e2f8h6g1f3c7c6\r
+d2d4g8f6c2c4g7g6b1c3d7d5c4d5f6d5e2e4d5b6h2h3f8g7g1f3e8g8f1e2a7a5e1g1a5a4a2a3f7f5\r
+d2d4g8f6c2c4g7g6b1c3d7d5c4d5f6d5e2e4d5c3b2c3c7c5f1c4f8g7g1e2c5d4c3d4b8c6c1e3d8a5\r
+d2d4g8f6c2c4g7g6b1c3d7d5c4d5f6d5e2e4d5c3b2c3c7c5f1c4f8g7g1e2c5d4c3d4b8c6c1e3e8g8\r
+d2d4g8f6c2c4g7g6b1c3d7d5c4d5f6d5e2e4d5c3b2c3c7c5f1c4f8g7g1e2e8g8e1g1b8c6c1e3c6a5\r
+d2d4g8f6c2c4g7g6b1c3d7d5c4d5f6d5e2e4d5c3b2c3c7c5f1c4f8g7g1e2e8g8e1g1b8d7c1g5h7h6\r
+d2d4g8f6c2c4g7g6b1c3d7d5c4d5f6d5e2e4d5c3b2c3c7c5f1c4f8g7g1e2e8g8e1g1c5d4c3d4b8c6\r
+d2d4g8f6c2c4g7g6b1c3d7d5c4d5f6d5e2e4d5c3b2c3f8g7c1e3c7c5d1d2c5d4c3d4b8c6a1d1d8a5\r
+d2d4g8f6c2c4g7g6b1c3d7d5c4d5f6d5e2e4d5c3b2c3f8g7c1e3c7c5d1d2d8a5a1b1b7b6f1b5c8d7\r
+d2d4g8f6c2c4g7g6b1c3d7d5c4d5f6d5e2e4d5c3b2c3f8g7c1e3c7c5d1d2d8a5a1b1c5d4c3d4a5d2\r
+d2d4g8f6c2c4g7g6b1c3d7d5c4d5f6d5e2e4d5c3b2c3f8g7c1e3c7c5d1d2d8a5a1c1c5d4c3d4a5d2\r
+d2d4g8f6c2c4g7g6b1c3d7d5c4d5f6d5e2e4d5c3b2c3f8g7c1e3c7c5d1d2e8g8a1c1d8a5g1f3e7e6\r
+d2d4g8f6c2c4g7g6b1c3d7d5c4d5f6d5e2e4d5c3b2c3f8g7c1e3c7c5d1d2e8g8g1f3c8g4f3g5c5d4\r
+d2d4g8f6c2c4g7g6b1c3d7d5c4d5f6d5e2e4d5c3b2c3f8g7c1e3c7c5d1d2e8g8g1f3d8a5a1c1e7e6\r
+d2d4g8f6c2c4g7g6b1c3d7d5c4d5f6d5e2e4d5c3b2c3f8g7f1c4b7b6d1f3e8g8e4e5c8a6c4d5c7c6\r
+d2d4g8f6c2c4g7g6b1c3d7d5c4d5f6d5e2e4d5c3b2c3f8g7f1c4b7b6d1f3e8g8g1e2b8c6h2h4c6a5\r
+d2d4g8f6c2c4g7g6b1c3d7d5c4d5f6d5e2e4d5c3b2c3f8g7f1c4c7c5g1e2b8c6c1e3e8g8e1g1c5d4\r
+d2d4g8f6c2c4g7g6b1c3d7d5c4d5f6d5e2e4d5c3b2c3f8g7f1c4c7c5g1e2b8c6c1e3e8g8e1g1c8g4\r
+d2d4g8f6c2c4g7g6b1c3d7d5c4d5f6d5e2e4d5c3b2c3f8g7f1c4c7c5g1e2b8c6c1e3e8g8e1g1c8g4\r
+d2d4g8f6c2c4g7g6b1c3d7d5c4d5f6d5e2e4d5c3b2c3f8g7f1c4c7c5g1e2b8c6c1e3e8g8e1g1c8g4\r
+d2d4g8f6c2c4g7g6b1c3d7d5c4d5f6d5e2e4d5c3b2c3f8g7f1c4c7c5g1e2b8c6c1e3e8g8e1g1c8g4\r
+d2d4g8f6c2c4g7g6b1c3d7d5c4d5f6d5e2e4d5c3b2c3f8g7f1c4c7c5g1e2b8c6c1e3e8g8e1g1c8g4\r
+d2d4g8f6c2c4g7g6b1c3d7d5c4d5f6d5e2e4d5c3b2c3f8g7f1c4c7c5g1e2b8c6c1e3e8g8e1g1d8c7\r
+d2d4g8f6c2c4g7g6b1c3d7d5c4d5f6d5e2e4d5c3b2c3f8g7f1c4c7c5g1e2e8g8c1e3b8c6a1c1c5d4\r
+d2d4g8f6c2c4g7g6b1c3d7d5c4d5f6d5e2e4d5c3b2c3f8g7f1c4c7c5g1e2e8g8e1g1b8c6c1e3d8c7\r
+d2d4g8f6c2c4g7g6b1c3d7d5c4d5f6d5e2e4d5c3b2c3f8g7f1c4e8g8g1e2b7b6e1g1c8b7f2f3c7c5\r
+d2d4g8f6c2c4g7g6b1c3d7d5c4d5f6d5e2e4d5c3b2c3f8g7f1c4e8g8g1e2c7c5e1g1b8c6c1e3d8c7\r
+d2d4g8f6c2c4g7g6b1c3d7d5c4d5f6d5e2e4d5c3b2c3f8g7f1c4e8g8g1e2c7c5e1g1b8c6c1e3d8c7\r
+d2d4g8f6c2c4g7g6b1c3d7d5c4d5f6d5e2e4d5c3b2c3f8g7f1c4e8g8g1e2c7c5e1g1b8c6c1e3d8c7\r
+d2d4g8f6c2c4g7g6b1c3d7d5c4d5f6d5e2e4d5c3b2c3f8g7f1c4e8g8g1e2c7c5e1g1b8c6c1e3d8c7\r
+d2d4g8f6c2c4g7g6b1c3d7d5c4d5f6d5e2e4d5c3b2c3f8g7g1f3c7c5a1b1e8g8f1e2c5d4c3d4d8a5\r
+d2d4g8f6c2c4g7g6b1c3d7d5c4d5f6d5e2e4d5c3b2c3f8g7g1f3c7c5a1b1e8g8f1e2c5d4c3d4d8a5\r
+d2d4g8f6c2c4g7g6b1c3d7d5c4d5f6d5e2e4d5c3b2c3f8g7g1f3c7c5c1e3d8a5d1d2c8g4a1c1b8c6\r
+d2d4g8f6c2c4g7g6b1c3d7d5c4d5f6d5g1f3f8g7e2e4d5c3b2c3c7c5a1b1e8g8f1e2b8c6d4d5c6e5\r
+d2d4g8f6c2c4g7g6b1c3d7d5c4d5f6d5g2g3f8g7f1g2d5c3b2c3c7c5e2e3e8g8g1e2b8c6e1g1d8a5\r
+d2d4g8f6c2c4g7g6b1c3d7d5d1b3d5c4b3c4c8e6c4b5b8c6g1f3a8b8f3e5e6d7e5d7d8d7d4d5c6d4\r
+d2d4g8f6c2c4g7g6b1c3d7d5d1b3d5c4b3c4f8g7c1f4c7c6a1d1d8a5f4d2b7b5c4b3b5b4c3a4b8a6\r
+d2d4g8f6c2c4g7g6b1c3d7d5d1b3d5c4b3c4f8g7e2e4e8g8f1e2b8c6g1f3f6d7c1e3d7b6c4c5c8g4\r
+d2d4g8f6c2c4g7g6b1c3d7d5d1b3d5c4b3c4f8g7e2e4e8g8g1f3a7a6c1f4b7b5c4c7d8e8f1e2b8c6\r
+d2d4g8f6c2c4g7g6b1c3d7d5g1f3f8g7c1f4c7c5d4c5d8a5a1c1d5c4e2e3a5c5d1a4b8c6f1c4e8g8\r
+d2d4g8f6c2c4g7g6b1c3d7d5g1f3f8g7c1f4e8g8a1c1c7c5d4c5d5c4e2e4d8a5e4e5f8d8f4d2f6g4\r
+d2d4g8f6c2c4g7g6b1c3d7d5g1f3f8g7c1f4e8g8a1c1d5c4e2e4c8g4f1c4f6h5f4e3g4f3g2f3e7e6\r
+d2d4g8f6c2c4g7g6b1c3d7d5g1f3f8g7c1f4e8g8e2e3c7c5d4c5d8a5a1c1d5c4f1c4a5c5c4b3b8c6\r
+d2d4g8f6c2c4g7g6b1c3d7d5g1f3f8g7c1f4e8g8e2e3c7c6d1b3d8a5h2h3b8d7a1c1d5c4f1c4d7b6\r
+d2d4g8f6c2c4g7g6b1c3d7d5g1f3f8g7c1g5f6e4c4d5e4g5f3g5e7e6d1d2e6d5d2e3e8f8e3f4d8f6\r
+d2d4g8f6c2c4g7g6b1c3d7d5g1f3f8g7c1g5f6e4c4d5e4g5f3g5e7e6g5f3e6d5e2e3e8g8f1d3b7b6\r
+d2d4g8f6c2c4g7g6b1c3d7d5g1f3f8g7c4d5f6d5e2e4d5c3b2c3c7c5a1b1e8g8f1e2c5d4c3d4d8a5\r
+d2d4g8f6c2c4g7g6b1c3d7d5g1f3f8g7c4d5f6d5e2e4d5c3b2c3c7c5c1e3c8g4a1c1d8a5d1d2b8d7\r
+d2d4g8f6c2c4g7g6b1c3d7d5g1f3f8g7c4d5f6d5e2e4d5c3b2c3c7c5c1e3c8g4a1c1d8a5d1d2b8d7\r
+d2d4g8f6c2c4g7g6b1c3d7d5g1f3f8g7c4d5f6d5e2e4d5c3b2c3c7c5c1e3d8a5d1d2e8g8a1c1c5d4\r
+d2d4g8f6c2c4g7g6b1c3d7d5g1f3f8g7d1b3c7c6c4d5f6d5e2e4d5b6c1e3c8e6b3c2e6c4f1e2b8a6\r
+d2d4g8f6c2c4g7g6b1c3d7d5g1f3f8g7d1b3d5c4b3c4c7c6e2e4e8g8c4b3b7b5e4e5f6e8a2a4b5a4\r
+d2d4g8f6c2c4g7g6b1c3d7d5g1f3f8g7d1b3d5c4b3c4e8g8e2e4a7a6e4e5b7b5c4b3f6d7c1e3c7c5\r
+d2d4g8f6c2c4g7g6b1c3d7d5g1f3f8g7d1b3d5c4b3c4e8g8e2e4a7a6e4e5b7b5c4b3f6d7c1e3c7c5\r
+d2d4g8f6c2c4g7g6b1c3d7d5g1f3f8g7d1b3d5c4b3c4e8g8e2e4a7a6e4e5b7b5c4b3f6d7e5e6f7e6\r
+d2d4g8f6c2c4g7g6b1c3d7d5g1f3f8g7d1b3d5c4b3c4e8g8e2e4b8a6b2b4c7c6a1b1a6c7h2h3c7b5\r
+d2d4g8f6c2c4g7g6b1c3d7d5g1f3f8g7d1b3d5c4b3c4e8g8e2e4b8a6f1e2c7c5d4d5e7e6e1g1e6d5\r
+d2d4g8f6c2c4g7g6b1c3d7d5g1f3f8g7d1b3d5c4b3c4e8g8e2e4b8a6f1e2c7c5d4d5e7e6e1g1e6d5\r
+d2d4g8f6c2c4g7g6b1c3d7d5g1f3f8g7d1b3d5c4b3c4e8g8e2e4b8a6f1e2c7c5d4d5e7e6e1g1e6d5\r
+d2d4g8f6c2c4g7g6b1c3d7d5g1f3f8g7d1b3d5c4b3c4e8g8e2e4b8a6f1e2c7c5d4d5e7e6e1g1e6d5\r
+d2d4g8f6c2c4g7g6b1c3d7d5g1f3f8g7d1b3d5c4b3c4e8g8e2e4b8c6f1e2c8g4c1e3g4f3e2f3e7e5\r
+d2d4g8f6c2c4g7g6b1c3d7d5g1f3f8g7d1b3d5c4b3c4e8g8e2e4b8c6h2h3e7e5d4e5f6d7e5e6f7e6\r
+d2d4g8f6c2c4g7g6b1c3d7d5g1f3f8g7d1b3d5c4b3c4e8g8e2e4c7c6c4b3e7e5d4e5f6g4f1e2d8b6\r
+d2d4g8f6c2c4g7g6b1c3d7d5g1f3f8g7d1b3d5c4b3c4e8g8e2e4c8g4c1e3f6d7a1d1b8c6f1e2d7b6\r
+d2d4g8f6c2c4g7g6b1c3d7d5g1f3f8g7d1b3d5c4b3c4e8g8e2e4c8g4c1e3f6d7a1d1b8c6f1e2d7b6\r
+d2d4g8f6c2c4g7g6b1c3d7d5g1f3f8g7d1b3d5c4b3c4e8g8e2e4c8g4c1e3f6d7a1d1b8c6f1e2g4f3\r
+d2d4g8f6c2c4g7g6b1c3d7d5g1f3f8g7d1b3d5c4b3c4e8g8e2e4c8g4c1e3f6d7a1d1d7b6c4b3b8c6\r
+d2d4g8f6c2c4g7g6b1c3d7d5g1f3f8g7d1b3d5c4b3c4e8g8e2e4c8g4c1e3f6d7c4b3c7c5d4d5b8a6\r
+d2d4g8f6c2c4g7g6b1c3d7d5g1f3f8g7d1b3d5c4b3c4e8g8e2e4c8g4c1e3f6d7c4b3d7b6a1d1e7e5\r
+d2d4g8f6c2c4g7g6b1c3d7d5g1f3f8g7d1b3d5c4b3c4e8g8e2e4c8g4c1e3f6d7c4b3d7b6a2a4a7a5\r
+d2d4g8f6c2c4g7g6b1c3d7d5g1f3f8g7d1b3d5c4b3c4e8g8e2e4c8g4c1e3f6d7c4b3d7b6a2a4a7a5\r
+d2d4g8f6c2c4g7g6b1c3d7d5g1f3f8g7d1b3d5c4b3c4e8g8e2e4c8g4c1e3f6d7e1c1b8c6h2h3g4f3\r
+d2d4g8f6c2c4g7g6b1c3d7d5g1f3f8g7d1b3d5c4b3c4e8g8e2e4c8g4c1e3f6d7f1e2d7b6c4c5c7c6\r
+d2d4g8f6c2c4g7g6b1c3d7d5g1f3f8g7d1b3d5c4b3c4e8g8e2e4c8g4c1e3f6d7f3d2d7b6c4d3c7c6\r
+d2d4g8f6c2c4g7g6b1c3f8g7c1g5c7c5d4c5b8a6g2g3a6c5f1g2d7d6a1c1e8g8b2b4c5e6g5d2a7a5\r
+d2d4g8f6c2c4g7g6b1c3f8g7c1g5d7d6e2e3c7c5d4d5h7h6g5h4e8g8g1f3c8f5f3d2d8b6d1c1g6g5\r
+d2d4g8f6c2c4g7g6b1c3f8g7c1g5d7d6e2e3c7c5g1f3d8a5d1d2e8g8f1e2h7h6g5h4b8c6h2h3a7a6\r
+d2d4g8f6c2c4g7g6b1c3f8g7c1g5d7d6e2e3e8g8g1f3c7c5f1e2h7h6g5h4c5d4f3d4b8c6e1g1c8d7\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e3d7d6g1f3b8d7f1e2e8g8e1g1e7e5d4e5d6e5d1c2c7c6e3e4d8e7\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6c1g5c7c5d4d5b8a6f1d3a6c7g1e2a7a6a2a4a8b8e1g1e8g8\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f1d3e7e5d4d5a7a5g1e2b8a6f2f3f6d7c1e3g7h6d1d2h6e3\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f1e2e8g8c1g5b8a6h2h4e7e5d4d5c7c6h4h5c6d5c4d5d8b6\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f1e2e8g8c1g5c7c5d4c5d8a5g5d2a5c5g1f3c8g4d2e3c5a5\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f1e2e8g8c1g5c7c5d4d5b7b5c4b5a7a6a2a4h7h6g5d2b8d7\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f1e2e8g8c1g5c7c5d4d5e7e6g1f3e6d5e4d5c8g4e1g1g4f3\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f1e2e8g8c1g5c7c5d4d5h7h6g5f4e7e6d5e6c8e6f4d6f8e8\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f1e2e8g8c1g5c7c5d4d5h7h6g5f4e7e6d5e6c8e6f4d6f8e8\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f1e2e8g8c1g5h7h6g5e3c7c5d4c5d8a5e3d2a5c5g1f3c8g4\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f1e2e8g8c1g5h7h6g5e3c7c5d4c5d8a5e3d2a5c5g1f3c8g4\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f1e2e8g8c1g5h7h6g5e3e7e5d4d5b8a6d1d2a6c5f2f3f6h5\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f1e2e8g8g1f3e7e5d4d5b8d7c1g5h7h6g5h4a7a6e1g1d8e8\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f1e2e8g8g1f3e7e5d4d5b8d7c1g5h7h6g5h4a7a6f3d2d8e8\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f1e2e8g8g1f3e7e5e1g1b8c6c1e3f8e8d4d5c6d4f3d4e5d4\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f1e2e8g8g1f3e7e5e1g1b8c6d4d5c6e7c1d2f6e8a1c1c7c5\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f1e2e8g8g1f3e7e5e1g1b8c6d4d5c6e7c1d2f6e8b2b4f7f5\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f1e2e8g8g1f3e7e5e1g1b8c6d4d5c6e7f3d2a7a5b2b3f6d7\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f1e2e8g8g1f3e7e5e1g1b8c6d4d5c6e7f3e1f6d7c1e3f7f5\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f3b8d7c1e3e7e5g1e2e8g8d4d5f6h5d1d2f7f5e1c1a7a6\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f3c7c5d4c5d6c5d1d8e8d8c1e3f6d7g1e2b7b6e1c1b8a6\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f3e7e5d4d5f6h5c1e3b8a6d1d2d8h4g2g3h5g3d2f2g3f1\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f3e8g8c1e3a7a6f1d3b8c6g1e2a8b8a2a3f6d7d3b1c6a5\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f3e8g8c1e3a7a6f1d3c7c5d4c5d6c5e3c5b8c6g1e2f6d7\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f3e8g8c1e3b8c6g1e2a7a6d1d2a8b8h2h4h7h5e3h6e7e5\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f3e8g8c1e3b8c6g1e2a7a6e2c1e7e5d4d5c6d4c1b3d4b3\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f3e8g8c1e3b8c6g1e2a7a6h2h4h7h5e2c1e7e5d4d5c6d4\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f3e8g8c1e3b8c6g1e2a7a6h2h4h7h5e2c1e7e5d4d5c6e7\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f3e8g8c1e3b8c6g1e2a7a6h2h4h7h5e2c1f6d7c1b3a6a5\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f3e8g8c1e3b8d7d1d2c7c5d4c5d6c5e1c1d8a5c1b1d7e5\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f3e8g8c1e3b8d7d1d2c7c5g1h3d8a5h3f2a7a6d4c5d7c5\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f3e8g8c1e3c7c5d4d5e7e6d1d2e6d5c4d5a7a6a2a4f8e8\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f3e8g8c1e3c7c6f1d3a7a6g1e2b7b5e1g1b8d7a1c1e7e5\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f3e8g8c1e3c7c6f1d3e7e5g1e2e5d4e3d4c6c5d4f2b8c6\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f3e8g8c1e3e7e5d4d5c7c5f1d3f6h5g1e2f7f5e4f5g6f5\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f3e8g8c1e3e7e5d4d5c7c6d1d2c6d5c4d5a7a6g2g4b8d7\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f3e8g8c1e3e7e5d4d5c7c6f1d3c6d5c4d5f6h5g1e2f7f5\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f3e8g8c1e3e7e5d4d5c7c6f1d3c6d5c4d5f6h5g1e2f7f5\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f3e8g8c1e3e7e5d4d5f6h5d1d2d8h4g2g3h4e7e1c1f7f5\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f3e8g8c1e3e7e5d4d5f6h5d1d2f7f5e1c1a7a6f1d3c7c5\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f3e8g8c1e3e7e5d4d5f6h5d1d2f7f5e1c1b8d7f1d3d7c5\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f3e8g8c1e3e7e5d4d5f6h5d1d2f7f5e1c1f5f4e3f2g7f6\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f3e8g8c1e3e7e5d4d5f6h5d1d2f7f5e1c1f5f4e3f2g7f6\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f3e8g8c1e3e7e5d4e5d6e5d1d8f8d8c3d5f6d5c4d5c7c6\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f3e8g8c1e3e7e5d4e5d6e5d1d8f8d8c3d5f6d5c4d5c7c6\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f3e8g8c1e3e7e5g1e2c7c6d4d5c6d5c4d5a7a6d1d2b8d7\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f3e8g8c1g5c7c5d4d5a7a6d1d2f8e8g1e2b8d7e2g3d7f8\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f3e8g8c1g5c7c5d4d5e7e6d1d2e6d5c4d5h7h6g5e3f8e8\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f3e8g8c1g5c7c5d4d5e7e6d1d2e6d5c4d5h7h6g5e3h6h5\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f3e8g8c1g5c7c5d4d5e7e6d1d2h7h6g5e3e6d5c4d5h6h5\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f3e8g8c1g5h7h6g5e3c7c5d4c5d6c5d1d8f8d8e3c5b8c6\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f3e8g8g1e2b8c6c1e3a7a6d1d2a8b8e2c1e7e5c1b3e5d4\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f3e8g8g1e2b8c6c1e3a7a6d1d2c8d7e2c1e7e5c1b3e5d4\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f4c7c5d4c5d8a5f1d3a5c5g1f3e8g8d1e2b8c6c1e3c5h5\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f4c7c5d4d5e8g8g1f3e7e6f1e2e6d5c4d5b7b5e4e5d6e5\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f4e8g8g1f3b8a6f1d3c8g4e1g1f6d7c1e3e7e5f4e5c7c5\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f4e8g8g1f3c7c5d4d5e7e6f1e2e6d5c4d5b7b5e4e5f6d7\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6g1f3e8g8f1e2c7c5e1g1c8g4d4d5b8d7c1g5a7a6a2a4d8c7\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6g1f3e8g8f1e2e7e5c1e3b8a6e1g1c7c6d4e5d6e5d1d8f8d8\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6g1f3e8g8f1e2e7e5c1e3b8a6e1g1f6g4e3g5f7f6g5c1g8h8\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6g1f3e8g8f1e2e7e5c1e3b8c6d4d5c6e7f3d2f6e8c4c5f7f5\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6g1f3e8g8f1e2e7e5c1e3c7c6d1d2f8e8d4d5f6g4e3g5f7f6\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6g1f3e8g8f1e2e7e5c1e3c7c6d4d5f6g4e3g5f7f6g5h4b8a6\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6g1f3e8g8f1e2e7e5c1e3c7c6d4d5f6g4e3g5f7f6g5h4b8a6\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6g1f3e8g8f1e2e7e5c1e3d8e7d4e5d6e5c3d5e7d8e3c5f6e4\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6g1f3e8g8f1e2e7e5c1e3d8e7d4e5d6e5c3d5f6d5c4d5f8d8\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6g1f3e8g8f1e2e7e5c1e3e5d4f3d4f8e8f2f3c7c6d1d2d6d5\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6g1f3e8g8f1e2e7e5c1e3f6g4e3g5f7f6g5c1b8c6e1g1f6f5\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6g1f3e8g8f1e2e7e5c1e3f6g4e3g5f7f6g5c1e5d4f3d4f6f5\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6g1f3e8g8f1e2e7e5c1e3f6g4e3g5f7f6g5h4g6g5h4g3g4h6\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6g1f3e8g8f1e2e7e5d4d5b8d7c1g5h7h6g5h4a7a6f3d2d8e8\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6g1f3e8g8f1e2e7e5d4d5b8d7c1g5h7h6g5h4g6g5h4g3f6h5\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6g1f3e8g8f1e2e7e5d4e5d6e5d1d8f8d8c1g5d8e8c3d5f6d5\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6g1f3e8g8f1e2e7e5e1g1b8a6c1e3c7c6d1c2f6g4e3g5f7f6\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6g1f3e8g8f1e2e7e5e1g1b8c6d4d5c6e7b2b4f6h5f1e1h5f4\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6g1f3e8g8f1e2e7e5e1g1b8c6d4d5c6e7b2b4f6h5f1e1h7h6\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6g1f3e8g8f1e2e7e5e1g1b8c6d4d5c6e7c1d2f6e8a1c1f7f5\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6g1f3e8g8f1e2e7e5e1g1b8c6d4d5c6e7c1d2f6e8a1c1f7f5\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6g1f3e8g8f1e2e7e5e1g1b8c6d4d5c6e7f3e1f6d7c1e3f7f5\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6g1f3e8g8f1e2e7e5e1g1b8c6d4d5c6e7f3e1f6d7e1d3f7f5\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6g1f3e8g8f1e2e7e5e1g1c7c6c1e3b8a6d4d5f6g4e3g5f7f6\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6g1f3e8g8f1e2e7e5e1g1c7c6d4d5c6c5f3e1a7a6c1e3f6e8\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6g1f3e8g8f1e2e7e5e1g1c7c6f1e1e5d4f3d4f8e8e2f1f6g4\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6g1f3e8g8g2g3c8g4f1g2f6d7e1g1b8c6c1e3e7e5d4d5g4f3\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6g2g3e8g8f1g2e7e5g1e2e5d4e2d4b8c6d4c6b7c6e1g1f6d7\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6h2h3e8g8c1e3e7e5d4d5b8d7g2g4d7c5d1c2c7c6g1e2c6d5\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4e8g8f2f4d7d6g1f3b8a6f1e2e7e5d4e5d6e5d1d8f8d8f3e5a6c5\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4e8g8g1f3d7d6f1e2e7e5e1g1b8c6d4d5c6e7f3e1f6d7f2f3f7f5\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4e8g8g1f3d7d6f1e2e7e5e1g1b8d7f1e1c7c6e2f1f8e8d4d5c6c5\r
+d2d4g8f6c2c4g7g6b1c3f8g7g1f3d7d6c1f4b8d7h2h3c7c5e2e3e8g8f1e2b7b6e1g1c8b7d4d5a7a6\r
+d2d4g8f6c2c4g7g6b1c3f8g7g1f3e8g8c1g5c7c5e2e3d7d6f1e2h7h6g5h4c8g4d1b3c5d4f3d4g4e2\r
+d2d4g8f6c2c4g7g6b1c3f8g7g1f3e8g8e2e4d7d6f1e2e7e5e1g1e5d4f3d4f8e8f2f3c7c6g1h1a7a6\r
+d2d4g8f6c2c4g7g6b1c3f8g7g2g3d7d5c4d5f6d5f1g2c8e6c3e4e8g8g1f3b8a6e1g1c7c6a2a3e6f5\r
+d2d4g8f6c2c4g7g6b1c3f8g7g2g3d7d5c4d5f6d5f1g2d5c3b2c3c7c5e2e3b8c6g1e2c8d7e1g1a8c8\r
+d2d4g8f6c2c4g7g6e2e3d7d5c4d5f6d5e3e4d5b6b1c3f8g7c1e3b8c6d4d5c6e5e3d4f7f6f2f4e5f7\r
+d2d4g8f6c2c4g7g6f2f3d7d5c4d5f6d5e2e4d5b6c1e3f8g7b1c3e8g8f3f4f7f5d1b3e7e6e4e5b8c6\r
+d2d4g8f6c2c4g7g6f2f3f8g7e2e4e8g8b1c3c7c6c1e3d7d5e4e5f6d7c4d5c6d5c3d5d8a5d5c3b8c6\r
+d2d4g8f6c2c4g7g6g1f3f8g7g2g3c7c6f1g2d7d5c4d5c6d5b1c3e8g8f3e5e7e6c1g5d8b6d1d2f6d7\r
+d2d4g8f6c2c4g7g6g1f3f8g7g2g3c7c6f1g2d7d5c4d5c6d5b1c3e8g8f3e5e7e6e1g1f6d7e5f3b8c6\r
+d2d4g8f6c2c4g7g6g1f3f8g7g2g3c7c6f1g2d7d5c4d5c6d5b1c3e8g8f3e5e7e6e1g1f6d7f2f4b8c6\r
+d2d4g8f6c2c4g7g6g1f3f8g7g2g3c7c6f1g2d7d5c4d5c6d5b1c3e8g8f3e5e7e6e1g1f6d7f2f4f7f6\r
+d2d4g8f6c2c4g7g6g1f3f8g7g2g3c7c6f1g2d7d5c4d5c6d5f3e5e8g8b1c3e7e6e1g1f6d7f2f4b8c6\r
+d2d4g8f6c2c4g7g6g1f3f8g7g2g3e8g8f1g2c7c6b1c3d7d5c4d5c6d5e1g1f6e4f3e5e4c3b2c3b8c6\r
+d2d4g8f6c2c4g7g6g1f3f8g7g2g3e8g8f1g2c7c6b1c3d7d5c4d5c6d5f3e5e7e6e1g1b8c6e5c6b7c6\r
+d2d4g8f6c2c4g7g6g1f3f8g7g2g3e8g8f1g2c7c6b1c3d7d5c4d5c6d5f3e5e7e6e1g1f6d7e5f3b8c6\r
+d2d4g8f6c2c4g7g6g1f3f8g7g2g3e8g8f1g2c7c6b1c3d7d5c4d5c6d5f3e5e7e6e1g1f6d7e5f3b8c6\r
+d2d4g8f6c2c4g7g6g1f3f8g7g2g3e8g8f1g2c7c6e1g1d7d5b2b3a7a5b1c3f6e4c1b2c8f5a1c1b8d7\r
+d2d4g8f6c2c4g7g6g1f3f8g7g2g3e8g8f1g2c7c6e1g1d7d5c4d5c6d5b1c3f6e4c3e4d5e4f3e5f7f6\r
+d2d4g8f6c2c4g7g6g1f3f8g7g2g3e8g8f1g2c7c6e1g1d7d5c4d5c6d5b1c3f6e4f3e5c8f5c1f4e7e6\r
+d2d4g8f6c2c4g7g6g1f3f8g7g2g3e8g8f1g2d7d5c4d5f6d5e1g1d5b6b1c3b8c6e2e3a7a5d4d5c6b4\r
+d2d4g8f6c2c4g7g6g1f3f8g7g2g3e8g8f1g2d7d5c4d5f6d5e1g1d5b6b1c3b8c6e2e3e7e5d4d5e5e4\r
+d2d4g8f6c2c4g7g6g1f3f8g7g2g3e8g8f1g2d7d6e1g1b8c6b1c3a7a6c1g5h7h6g5d2e7e5d4d5c6d4\r
+d2d4g8f6c2c4g7g6g1f3f8g7g2g3e8g8f1g2d7d6e1g1b8c6b1c3a7a6d4d5c6a5f3d2c7c5d1c2a8b8\r
+d2d4g8f6c2c4g7g6g1f3f8g7g2g3e8g8f1g2d7d6e1g1b8c6b1c3a7a6f1e1a8b8a1b1c6a5b2b3b7b5\r
+d2d4g8f6c2c4g7g6g1f3f8g7g2g3e8g8f1g2d7d6e1g1b8d7b1c3e7e5h2h3c7c6e2e4d8b6c4c5d6c5\r
+d2d4g8f6c2c4g7g6g2g3c7c5d4d5d7d6f1g2f8g7b1c3a7a6a2a4e8g8g1f3e7e5e1g1a6a5e2e4f6e8\r
+d2d4g8f6c2c4g7g6g2g3c7c5g1f3c5d4f3d4d8a5b1c3f6e4d1c2e4f6c1d2a5c5c2d3f8g7d4b3c5h5\r
+d2d4g8f6c2c4g7g6g2g3c7c6b1c3d7d5c4d5c6d5g1h3f8g7h3f4e8g8f1g2e7e6e1g1b8c6e2e3b7b6\r
+d2d4g8f6c2c4g7g6g2g3c7c6d4d5c6d5c4d5d7d6b1c3f8g7f1g2d8a5c1d2e8g8e2e3b8d7g1e2d7e5\r
+d2d4g8f6c2c4g7g6g2g3c7c6d4d5c6d5c4d5d7d6f1g2f8g7b1c3e8g8g1f3b8d7e1g1d7b6a2a4c8g4\r
+d2d4g8f6c2c4g7g6g2g3c7c6d4d5f8g7f1g2d7d6b1c3e8g8g1f3e7e5e1g1c6d5c4d5b8d7f3d2a7a5\r
+d2d4g8f6c2c4g7g6g2g3c7c6f1g2d7d5c4d5c6d5b1c3f8g7g1f3e8g8f3e5c8f5e1g1f6e4c3e4f5e4\r
+d2d4g8f6c2c4g7g6g2g3c7c6f1g2d7d5c4d5c6d5b1c3f8g7g1f3e8g8f3e5e7e6e1g1f6d7f2f4b8c6\r
+d2d4g8f6c2c4g7g6g2g3c7c6f1g2d7d5c4d5c6d5b1c3f8g7g1h3c8h3g2h3b8c6h3g2e7e6e2e3e8g8\r
+d2d4g8f6c2c4g7g6g2g3c7c6f1g2d7d5c4d5c6d5g1f3f8g7b1c3e8g8f3e5e7e6e1g1f6d7f2f4b8c6\r
+d2d4g8f6c2c4g7g6g2g3c7c6f1g2d7d5c4d5c6d5g1f3f8g7b1c3f6e4d1b3e4c3b2c3b8c6f3d2e7e6\r
+d2d4g8f6c2c4g7g6g2g3c7c6f1g2d7d5c4d5c6d5g1f3f8g7f3e5e8g8b1c3e7e6e1g1f6d7f2f4b8c6\r
+d2d4g8f6c2c4g7g6g2g3c7c6f1g2d7d5g1f3f8g7b2b3e8g8e1g1f6e4c1b2a7a5b1c3e4c3b2c3b7b5\r
+d2d4g8f6c2c4g7g6g2g3c7c6f1g2d7d5g1f3f8g7e1g1e8g8b1c3d5c4f3e5c8e6e2e4b8d7f2f4d8b6\r
+d2d4g8f6c2c4g7g6g2g3c7c6f1g2d7d5g1f3f8g7e1g1e8g8c1f4f6e4b1c3c8f5d1b3d8b6c4d5b6b3\r
+d2d4g8f6c2c4g7g6g2g3c7c6g1f3f8g7f1g2d7d5c4d5c6d5b1c3e8g8f3e5e7e6e1g1f6d7f2f4b8c6\r
+d2d4g8f6c2c4g7g6g2g3d7d5c4d5f6d5f1g2f8g7g1f3e8g8e1g1d5b6b1c3a7a5c1f4c7c6d1c1f8e8\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2c7c5d4d5d7d6g1f3c8f5b1c3f6e4c3e4f5e4e1g1e8g8d1b3b8d7\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2d7d5c4d5f6d5e2e4d5b6g1e2c7c5d4d5e7e6e1g1e8g8a2a4b8a6\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2d7d5c4d5f6d5e2e4d5b6g1e2c7c5d4d5e7e6e1g1e8g8e2c3e6d5\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2d7d5c4d5f6d5e2e4d5b6g1e2c8g4f2f3g4c8b1c3b8c6d4d5c6b8\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2d7d5c4d5f6d5e2e4d5b6g1e2e7e5d4d5c7c6b1c3c6d5e4d5e8g8\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2d7d5c4d5f6d5e2e4d5b6g1e2e7e5d4d5e8g8e1g1c7c6b1c3c6d5\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2d7d5c4d5f6d5g1f3e8g8e1g1c7c5d4c5b8a6f3g5d5b4a2a3d8d1\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2d7d5c4d5f6d5g1f3e8g8e1g1c7c5e2e4d5f6e4e5f6d5d4c5d5b4\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2d7d5g1f3e8g8e1g1d5c4b1a3c4c3b2c3c7c5e2e3b8c6d1e2f6d5\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2d7d6b1c3e8g8g1f3b8d7e1g1e7e5b2b3f8e8d1c2f6g4d4e5d7e5\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2e8g8b1c3c7c5d4d5d7d6g1f3b8a6f3d2a6c7d1c2a8b8b2b3e7e6\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2e8g8b1c3c7c5d4d5e7e5c1g5h7h6g5f6d8f6d5d6b8c6e2e3b7b6\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2e8g8b1c3c7c5d4d5e7e5g1f3d7d6e1g1b8d7d1c2d8e7e2e4a7a6\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2e8g8b1c3d7d6e2e3b8d7g1e2a7a6b2b3a8b8a2a4a6a5c1a3c7c6\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2e8g8b1c3d7d6e2e3b8d7g1e2a7a6b2b3a8b8a2a4e7e5c1a3b7b6\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2e8g8b1c3d7d6e2e3b8d7g1e2e7e5b2b3f8e8c1a3a8b8e1g1a7a6\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2e8g8b1c3d7d6e2e3b8d7g1e2e7e5b2b3f8e8c1a3h7h5h2h3a7a6\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2e8g8b1c3d7d6g1f3b8c6e1g1a7a6d4d5c6a5f3d2c7c5d1c2a8b8\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2e8g8b1c3d7d6g1f3b8c6e1g1e7e5d4d5c6e7c4c5f6d7c5d6c7d6\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2e8g8b1c3d7d6g1f3b8c6e1g1e7e5d4d5c6e7e2e4f6e8f3e1f7f5\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2e8g8b1c3d7d6g1f3b8c6e1g1e7e5d4e5c6e5f3e5d6e5d1d8f8d8\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2e8g8b1c3d7d6g1f3b8d7e1g1e7e5b2b3f8e8d1c2c7c6f1d1e5e4\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2e8g8b1c3d7d6g1f3b8d7e1g1e7e5e2e4c7c6c1e3f6g4e3g5d8b6\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2e8g8b1c3d7d6g1f3b8d7e1g1e7e5e2e4c7c6h2h3e5d4f3d4f8e8\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2e8g8b1c3d7d6g1f3b8d7e1g1e7e5e2e4e5d4f3d4d7c5h2h3f8e8\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2e8g8b1c3d7d6g1f3b8d7e1g1e7e5e2e4e5d4f3d4f8e8h2h3d7c5\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2e8g8b1c3d7d6g1f3b8d7e1g1e7e5e2e4f8e8d4d5a7a5f3e1d7c5\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2e8g8b1c3d7d6g1f3b8d7e1g1e7e5e2e4f8e8d4d5a7a6f3e1a8b8\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2e8g8b1c3d7d6g1f3b8d7e1g1e7e5e2e4f8e8h2h3e5d4f3d4d7c5\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2e8g8b1c3d7d6g1f3b8d7e1g1e7e5e2e4f8e8h2h3e5d4f3d4d7c5\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2e8g8b1c3d7d6g1f3b8d7e1g1e7e5e2e4f8e8h2h3e5d4f3d4d7c5\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2e8g8b1c3d7d6g1f3c7c5d4d5b8a6e1g1a6c7e2e4a7a6a2a4a8b8\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2e8g8b1c3d7d6g1f3c7c5d4d5b8a6e1g1a6c7f3d2a8b8a2a4e7e6\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2e8g8b1c3d7d6g1f3c7c5d4d5b8a6f3d2a6c7d1c2a8b8b2b3b7b5\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2e8g8e2e4d7d6g1e2c7c6e1g1e7e5b1c3b8d7f2f3f8e8c1e3d8c7\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2e8g8g1f3d7d6e1g1b8c6b1c3c8g4c1e3f6d7d1d2e7e5d4e5g4f3\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2e8g8g1f3d7d6e1g1b8c6b1c3c8g4h2h3g4f3g2f3f6d7f3g2c6d4\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2e8g8g1f3d7d6e1g1b8c6d4d5c6a5f3d2c7c5b1c3e7e5a2a3b7b6\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2e8g8g1f3d7d6e1g1b8d7b1c3e7e5e2e4c7c6h2h3d8b6d4d5c6d5\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2e8g8g1f3d7d6e1g1b8d7b1c3e7e5e2e4f8e8h2h3e5d4f3d4d7c5\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2e8g8g1f3d7d6e1g1b8d7d1c2e7e5f1d1f8e8b1c3c7c6d4e5d6e5\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2e8g8g1f3d7d6e1g1c7c5d4c5d6c5f3e5d8c7e5d3b8c6b1c3c8f5\r
+d2d4g8f6g1f3b7b6c2c4e7e6g2g3c8a6b2b3a6b7f1g2f8b4c1d2a7a5e1g1e8g8b1c3d7d5d1c2b8a6\r
+d2d4g8f6g1f3b7b6g2g3c8b7f1g2c7c5e1g1c5d4f3d4b7g2g1g2d7d5c2c4e7e6d1a4d8d7d4b5b8c6\r
+d2d4g8f6g1f3b7b6g2g3c8b7f1g2e7e6c2c4f8b4b1c3d7d6e1g1b4c3b2c3b8c6f3d2d6d5c4d5e6d5\r
+d2d4g8f6g1f3b7b6g2g3c8b7f1g2e7e6e1g1c7c5c2c3f8e7b2b3e8g8c1b2d7d5b1d2b8c6c3c4a8c8\r
+d2d4g8f6g1f3c7c5c2c3e7e6g2g3d7d5f1g2b8c6e1g1f8e7d4c5e7c5c1g5e8g8b1d2c5e7g5f6e7f6\r
+d2d4g8f6g1f3c7c5c2c3g7g6c1g5d8b6d1b3f6e4g5f4b8c6d4d5c6d8b1d2e4f6e2e4d7d6f1b5c8d7\r
+d2d4g8f6g1f3c7c5c2c4c5d4f3d4e7e5d4c2d7d5c4d5d8d5d1d5f6d5e2e4d5b4c2b4f8b4c1d2b4d2\r
+d2d4g8f6g1f3c7c5d4c5e7e6a2a3f8c5b2b4c5e7c1b2a7a5b4b5e8g8e2e3d7d6c2c4b8d7f1e2d7c5\r
+d2d4g8f6g1f3c7c5d4d5d7d6b1c3e7e6d5e6c8e6e2e4f8e7f1b5e6d7a2a4e8g8e1g1b8c6h2h3c6b4\r
+d2d4g8f6g1f3c7c5d4d5d7d6b1c3g7g6e2e4f8g7f1b5c8d7a2a4e8g8e1g1b8a6f1e1a6b4h2h3e7e6\r
+d2d4g8f6g1f3c7c5d4d5e7e6b1c3e6d5c3d5f6d5d1d5d7d6e2e4f8e7f1c4e8g8d5h5c8e6c4e6f7e6\r
+d2d4g8f6g1f3c7c5d4d5e7e6b1c3f6d5c3d5e6d5d1d5f8e7e2e4e8g8f1c4d7d6d5h5c8e6c4e6f7e6\r
+d2d4g8f6g1f3c7c5d4d5e7e6c2c4e6d5c4d5d7d6b1c3g7g6e2e4f8g7f1e2e8g8e1g1f8e8f3d2b8d7\r
+d2d4g8f6g1f3d7d5c2c4c7c6b1c3d5c4a2a4c8f5e2e3e7e6f1c4f8b4e1g1b8d7f3h4e8g8f2f3f5g6\r
+d2d4g8f6g1f3d7d5c2c4c7c6c4d5c6d5c1f4b8c6b1c3c8f5e2e3e7e6f1b5f6d7e1g1f8e7a1c1e8g8\r
+d2d4g8f6g1f3d7d5c2c4d5c4b1c3c7c6a2a4c8f5e2e3e7e6f1c4b8d7e1g1f8b4d1e2f5g6e3e4e8g8\r
+d2d4g8f6g1f3d7d5c2c4e7e6b1c3c7c5c4d5f6d5e2e4d5c3b2c3c5d4c3d4b8c6f1c4b7b5c4e2f8b4\r
+d2d4g8f6g1f3d7d5c2c4e7e6b1c3c7c5e2e3b8c6a2a3f6e4d1c2e4c3c2c3c5d4f3d4c6d4c3d4d5c4\r
+d2d4g8f6g1f3d7d5c2c4e7e6b1c3f8e7c1g5b8d7e2e3e8g8a1c1b7b6c4d5e6d5d1a4c7c5a4c6a8b8\r
+d2d4g8f6g1f3d7d5c2c4e7e6b1c3f8e7c1g5b8d7e2e3e8g8a1c1b7b6c4d5e6d5f1b5c8b7e1g1c7c6\r
+d2d4g8f6g1f3d7d5c2c4e7e6b1c3f8e7c1g5e8g8e2e3b8d7d1c2c7c5c4d5f6d5g5e7d8e7c3d5e6d5\r
+d2d4g8f6g1f3d7d5c2c4e7e6b1c3f8e7c1g5h7h6g5f6e7f6e2e3e8g8a1c1c7c6f1d3d5c4d3c4b8d7\r
+d2d4g8f6g1f3d7d5c2c4e7e6b1c3f8e7c1g5h7h6g5h4e8g8e2e3b7b6c4d5f6d5h4e7d8e7a1c1c8b7\r
+d2d4g8f6g1f3d7d5c2c4e7e6c4d5e6d5b1c3c7c6d1c2f8e7e2e4d5e4c3e4b8d7f3e5d7e5d4e5d8a5\r
+d2d4g8f6g1f3d7d5c2c4e7e6g2g3d5c4d1a4b8d7f1g2a7a6a4c4b7b5c4c6a8b8c1f4c8b7c6c7f8b4\r
+d2d4g8f6g1f3d7d5c2c4e7e6g2g3d5c4d1a4b8d7f1g2a7a6a4c4c7c5d4c5f8c5e1g1b7b5c4h4c8b7\r
+d2d4g8f6g1f3d7d5c2c4e7e6g2g3d5c4d1a4b8d7f1g2a7a6b1c3a8b8a4c4b7b5c4d3c8b7e1g1c7c5\r
+d2d4g8f6g1f3d7d5g2g3c7c6f1g2c8f5e1g1h7h6c2c4e7e6b1c3f8e7d1b3d8b6c4c5b6a6b3d1b8d7\r
+d2d4g8f6g1f3d7d6c2c4c8g4d1b3d8c8h2h3g4h5g2g4h5g6f1g2c7c6b1c3e7e6d4d5f8e7c1e3f6d7\r
+d2d4g8f6g1f3d7d6c2c4g7g6b1c3f8g7e2e4e8g8f1e2c7c5e1g1b8c6d4d5c6a5h2h3e7e5a2a3b7b6\r
+d2d4g8f6g1f3d7d6g2g3b8d7f1g2e7e5c2c4f8e7b1c3e8g8e1g1c7c6d1c2d8c7b2b3f8e8c1b2e7f8\r
+d2d4g8f6g1f3d7d6g2g3g7g6f1g2f8g7e1g1e8g8c2c4b8d7b1c3e7e5c1g5h7h6g5d2c7c6d1c1g8h7\r
+d2d4g8f6g1f3e7e6c1g5c7c5e2e3b7b6b1d2c5d4e3d4c8b7f1d3f8e7e1g1e8g8f1e1d7d6a2a4b8c6\r
+d2d4g8f6g1f3e7e6c1g5c7c5e2e3b7b6d4d5e6d5b1c3f8e7c3d5c8b7g5f6e7f6c2c3e8g8f1c4a7a6\r
+d2d4g8f6g1f3e7e6c1g5c7c5e2e3f8e7b1d2c5d4e3d4b7b6c2c3c8b7f1d3d7d6e1g1b8d7f1e1e8g8\r
+d2d4g8f6g1f3e7e6c1g5c7c5e2e3f8e7d4c5e7c5c2c4c5b4b1d2b7b6f1d3b8c6e1g1b4e7a1c1c8b7\r
+d2d4g8f6g1f3e7e6c1g5c7c5e2e3h7h6g5f6d8f6b1d2c5d4e3d4b8c6c2c3d7d5f1d3f8d6d1e2e8g8\r
+d2d4g8f6g1f3e7e6c1g5d7d5b1d2f8e7e2e3b8d7f1d3c7c5c2c3b7b6e1g1c8b7f3e5d7e5d4e5f6d7\r
+d2d4g8f6g1f3e7e6c2c4b7b6b1c3c8b7a2a3d7d5c4d5f6d5e2e3f8e7f1b5c7c6b5d3b8d7e1g1e8g8\r
+d2d4g8f6g1f3e7e6c2c4b7b6b1c3c8b7c1g5h7h6g5h4f8e7e2e3e8g8f1d3c7c5e1g1c5d4e3d4b7f3\r
+d2d4g8f6g1f3e7e6c2c4b7b6b1c3c8b7c1g5h7h6g5h4f8e7e2e3e8g8f1d3c7c5e1g1c5d4e3d4d7d5\r
+d2d4g8f6g1f3e7e6c2c4b7b6b1c3c8b7e2e3f8b4f1d3e8g8e1g1b4c3b2c3c7c5f1e1f6e4d1c2f7f5\r
+d2d4g8f6g1f3e7e6c2c4b7b6b1c3f8b4c1d2c7c5a2a3b4c3d2c3c8b7e2e3e8g8f1d3d7d6e1g1b8d7\r
+d2d4g8f6g1f3e7e6c2c4b7b6e2e3c8b7f1d3d7d5b2b3f8e7e1g1e8g8c1b2c7c5d1e2c5d4e3d4b8c6\r
+d2d4g8f6g1f3e7e6c2c4b7b6g2g3c8a6b2b3f8b4c1d2b4e7f1g2c7c6f3e5d7d5d2c3f6d7e5d7b8d7\r
+d2d4g8f6g1f3e7e6c2c4b7b6g2g3c8a6b2b3f8b4c1d2b4e7f1g2d7d5c4d5e6d5e1g1e8g8b1c3a6b7\r
+d2d4g8f6g1f3e7e6c2c4b7b6g2g3c8a6d1b3b8c6b1d2f8b4d4d5b4d2c1d2c6a5b3a4f6e4d2a5b6a5\r
+d2d4g8f6g1f3e7e6c2c4b7b6g2g3c8b7f1g2f8e7b1c3e8g8e1g1f6e4c1d2d7d5f3e5b8d7c4d5e6d5\r
+d2d4g8f6g1f3e7e6c2c4b7b6g2g3c8b7f1g2f8e7b1c3e8g8e1g1f6e4c1d2f7f5d4d5e7f6d1c2f6c3\r
+d2d4g8f6g1f3e7e6c2c4c7c5e2e3d7d5b1c3b8c6c4d5e6d5f1e2c5d4e3d4f8d6c1g5c8e6e1g1h7h6\r
+d2d4g8f6g1f3e7e6c2c4d7d5b1c3b8d7c1g5f8e7e2e3e8g8a1c1c7c6a2a3f8e8f1d3d5c4d3c4f6d5\r
+d2d4g8f6g1f3e7e6c2c4d7d5b1c3b8d7e2e3a7a6c4c5c7c6b2b4d8c7c1b2e6e5d4e5d7e5f3e5c7e5\r
+d2d4g8f6g1f3e7e6c2c4d7d5b1c3c7c5c4d5f6d5e2e3b8c6f1d3f8e7e1g1e8g8a2a3c5d4e3d4e7f6\r
+d2d4g8f6g1f3e7e6c2c4d7d5b1c3c7c5c4d5f6d5e2e3b8c6f1d3f8e7e1g1e8g8a2a3c5d4e3d4e7f6\r
+d2d4g8f6g1f3e7e6c2c4d7d5b1c3c7c5c4d5f6d5e2e3b8c6f1d3f8e7e1g1e8g8a2a3c5d4e3d4e7f6\r
+d2d4g8f6g1f3e7e6c2c4d7d5b1c3c7c5c4d5f6d5e2e4d5c3b2c3c5d4c3d4f8b4c1d2b4d2d1d2e8g8\r
+d2d4g8f6g1f3e7e6c2c4d7d5b1c3c7c5c4d5f6d5e2e4d5c3b2c3c5d4c3d4f8b4c1d2b4d2d1d2e8g8\r
+d2d4g8f6g1f3e7e6c2c4d7d5b1c3d5c4e2e4f8b4c1g5c7c5f1c4c5d4f3d4b4c3b2c3d8a5c4b5c8d7\r
+d2d4g8f6g1f3e7e6c2c4d7d5b1c3f8e7c1g5e8g8e2e3b8d7f1d3d5c4d3c4c7c5e1g1a7a6a2a4c5d4\r
+d2d4g8f6g1f3e7e6c2c4d7d5c1g5h7h6g5f6d8f6b1c3c7c6e2e3b8d7f1d3f6d8e1g1f8e7d1e2e8g8\r
+d2d4g8f6g1f3e7e6c2c4f8b4b1d2b7b6a2a3b4d2c1d2h7h6g2g3c8b7f1g2e8g8e1g1d7d6b2b4b8d7\r
+d2d4g8f6g1f3e7e6c2c4f8b4b1d2b7b6e2e3c8b7a2a3b4d2d1d2e8g8b2b3f6e4d2c2f7f5f1d3d7d6\r
+d2d4g8f6g1f3e7e6c2c4f8b4b1d2e8g8a2a3b4d2c1d2b7b6d2g5c8b7e2e3d7d6f1d3b8d7e1g1h7h6\r
+d2d4g8f6g1f3e7e6c2c4f8b4c1d2a7a5g2g3d7d5d1c2c7c5f1g2c5d4d2b4a5b4c4d5e8g8f3d4d8b6\r
+d2d4g8f6g1f3e7e6e2e3b7b6f1d3c8b7e1g1d7d5b2b3f8d6c1b2e8g8c2c4c7c5c4d5e6d5b1c3b8d7\r
+d2d4g8f6g1f3e7e6e2e3b7b6f1d3c8b7e1g1d7d5c2c4d5c4d3c4a7a6d1e2b8d7f1d1c7c5a2a4f8d6\r
+d2d4g8f6g1f3e7e6e2e3c7c5f1d3b8c6e1g1f8e7b2b3b7b6a2a3c8b7c1b2a8c8b1d2e8g8d1e2f8e8\r
+d2d4g8f6g1f3e7e6e2e3c7c5f1d3d7d5d4c5f8c5a2a3e8g8b2b4c5e7b1d2a7a5b4b5b8d7c1b2d7c5\r
+d2d4g8f6g1f3e7e6g2g3b7b5f1g2c8b7e1g1c7c5c1g5f8e7c2c3b8a6e2e3a8b8b1d2e8g8a2a3f6e4\r
+d2d4g8f6g1f3e7e6g2g3b7b6f1g2c8b7c2c4f8e7b1c3e8g8d1c2c7c5d4d5e6d5f3g5b8c6c3d5g7g6\r
+d2d4g8f6g1f3e7e6g2g3b7b6f1g2c8b7c2c4f8e7b1c3e8g8d1d3d7d5c4d5f6d5c3d5e6d5e1g1b8d7\r
+d2d4g8f6g1f3e7e6g2g3b7b6f1g2c8b7c2c4f8e7b1c3e8g8d4d5e7b4c1d2c7c6d5c6d7c6d1c2c6c5\r
+d2d4g8f6g1f3e7e6g2g3b7b6f1g2c8b7c2c4f8e7b1c3f6e4c1d2d7d5c4d5e6d5d1a4b7c6a4b3e8g8\r
+d2d4g8f6g1f3e7e6g2g3b7b6f1g2c8b7c2c4f8e7b1c3f6e4c1d2d7d5c4d5e6d5d1a4d8d7a4d7b8d7\r
+d2d4g8f6g1f3e7e6g2g3b7b6f1g2c8b7c2c4f8e7e1g1e8g8b1c3f6e4c3e4b7e4f3e1e4g2e1g2d7d5\r
+d2d4g8f6g1f3e7e6g2g3b7b6f1g2c8b7e1g1f8e7c2c4e8g8b1c3f6e4c1d2f7f5d4d5e7f6a1c1b8a6\r
+d2d4g8f6g1f3e7e6g2g3b7b6f1g2c8b7e1g1f8e7c2c4e8g8b1c3f6e4c3e4b7e4f3e1d7d5c4d5e4g2\r
+d2d4g8f6g1f3e7e6g2g3c7c5f1g2d8c7e1g1c5d4f3d4a7a6d4b3f8e7c1f4d7d6c2c4b8d7b1a3f6h5\r
+d2d4g8f6g1f3g7g6b1c3d7d5c1f4f8g7e2e3c7c6f1e2b8d7f3e5a7a5h2h4h7h5d1d2f6e4c3e4d5e4\r
+d2d4g8f6g1f3g7g6c1f4f8g7b1d2c7c5c2c3c5d4c3d4d7d5f4b8a8b8d1a4c8d7a4a7f6e4e2e3e4d2\r
+d2d4g8f6g1f3g7g6c1f4f8g7b1d2d7d6h2h3e8g8e2e3c7c5f1e2b8c6f4h2b7b6e1g1c8b7c2c3d8d7\r
+d2d4g8f6g1f3g7g6c1f4f8g7b1d2d7d6h2h3e8g8e2e3c7c5f1e2b8c6f4h2c5d4e3d4c8d7e1g1a8c8\r
+d2d4g8f6g1f3g7g6c1f4f8g7e2e3d7d6h2h3e8g8f1e2b7b6e1g1c8b7c2c4f6e4d1c2b8d7b1c3e4c3\r
+d2d4g8f6g1f3g7g6c1g5f8g7b1d2d7d5e2e3e8g8c2c3b8d7f1e2f8e8b2b4c7c6e1g1e7e5d2b3d8b6\r
+d2d4g8f6g1f3g7g6c1g5f8g7c2c3d7d5b1d2e8g8e2e3c7c6f1e2c8g4e1g1b8d7b2b4a7a5b4b5a5a4\r
+d2d4g8f6g1f3g7g6c2c4f8g7b1c3d7d5c1f4e8g8a1c1c7c5d4c5d5c4d1d8f8d8e2e4b8a6e4e5f6g4\r
+d2d4g8f6g1f3g7g6c2c4f8g7b1c3d7d5d1b3d5c4b3c4e8g8e2e4a7a6c4a4b8d7e4e5f6g4h2h3g4h6\r
+d2d4g8f6g1f3g7g6c2c4f8g7b1c3d7d5e2e3e8g8g2g3d5c4f3e5c8e6f1g2d8c8d1e2c7c6e5c4e6h3\r
+d2d4g8f6g1f3g7g6c2c4f8g7b1c3d7d6c1g5h7h6g5h4g6g5h4g3f6h5e2e3e7e6f1d3d8e7a1c1e8g8\r
+d2d4g8f6g1f3g7g6c2c4f8g7b1c3e8g8e2e4d7d6f1e2e7e5c1e3c7c6e1g1e5d4e3d4d8e7f3d2f8e8\r
+d2d4g8f6g1f3g7g6c2c4f8g7b1c3e8g8e2e4d7d6f1e2e7e5e1g1b8c6d4d5c6e7b2b4f6h5f1e1h5f4\r
+d2d4g8f6g1f3g7g6c2c4f8g7b1c3e8g8e2e4d7d6f1e2e7e5e1g1e5d4f3d4b8d7c1g5d7c5f2f3h7h6\r
+d2d4g8f6g1f3g7g6c2c4f8g7b1c3e8g8e2e4d7d6f1e2e7e5e1g1e5d4f3d4f8e8f2f3c7c6g1h1a7a6\r
+d2d4g8f6g1f3g7g6c2c4f8g7g2g3c7c6f1g2d7d5c4d5c6d5b1c3e8g8f3e5e7e6e1g1f6d7e5f3b8c6\r
+d2d4g8f6g1f3g7g6c2c4f8g7g2g3c7c6f1g2d7d5c4d5c6d5e1g1e8g8b1c3f6e4c3e4d5e4f3e5f7f6\r
+d2d4g8f6g1f3g7g6c2c4f8g7g2g3d7d5c4d5f6d5f1g2d5b6e2e4e8g8e1g1c8g4d4d5d8d7b1c3c7c6\r
+d2d4g8f6g1f3g7g6c2c4f8g7g2g3d7d5f1g2d5c4e1g1c7c6b1c3e8g8h2h3b7b5f3e5a7a6e2e4c8b7\r
+d2d4g8f6g1f3g7g6c2c4f8g7g2g3e8g8f1g2d7d5c4d5f6d5e1g1b8c6e2e4d5b6d4d5c6a5d1e1a5c4\r
+d2d4g8f6g1f3g7g6c2c4f8g7g2g3e8g8f1g2d7d5c4d5f6d5e1g1d5b6b1c3b8c6d4d5c6a5c1f4c7c6\r
+d2d4g8f6g1f3g7g6c2c4f8g7g2g3e8g8f1g2d7d5c4d5f6d5e1g1d5b6b1c3b8c6e2e3e7e5d4d5c6a5\r
+d2d4g8f6g1f3g7g6c2c4f8g7g2g3e8g8f1g2d7d6e1g1b8c6b1c3a7a6h2h3e7e5d4d5c6e7e2e4b7b5\r
+d2d4g8f6g1f3g7g6c2c4f8g7g2g3e8g8f1g2d7d6e1g1b8d7b1c3e7e5e2e4a7a6a1b1b7b5c4b5a6b5\r
+d2d4g8f6g1f3g7g6c2c4f8g7g2g3e8g8f1g2d7d6e1g1b8d7b1c3e7e5e2e4a7a6f1e1e5d4f3d4f6g4\r
+d2d4g8f6g1f3g7g6c2c4f8g7g2g3e8g8f1g2d7d6e1g1b8d7d1c2e7e5f1d1f8e8b1c3e5d4f3d4c7c6\r
+d2d4g8f6g1f3g7g6g2g3d7d5f1g2e7e6c2c4f8g7c1g5c7c5e1g1d8b6b1c3c5d4f3d4f6e4c3e4d5e4\r
+d2d4g8f6g1f3g7g6g2g3d7d5f1g2f8g7e1g1c7c6b1d2e8g8c2c4f6e4e2e3e4d2f3d2d5c4d2c4c8e6\r
+d2d4g8f6g1f3g7g6g2g3d7d5f1g2f8g7e1g1e8g8c1f4c7c6b1d2d8b6d1c1c6c5d4c5b6c5d2b3c5b4\r
+d2d4g8f6g1f3g7g6g2g3f8g7c2c4d7d5f1g2d5c4e1g1c7c6b1c3e8g8h2h3b8a6e2e4b7b5d1e2c8b7\r
+d2d4g8f6g1f3g7g6g2g3f8g7f1g2e8g8e1g1c7c6c2c4d7d6b1c3d8b6b2b3e7e5d4e5d6e5d1c2f8e8\r
+d2d4g8f6g1f3g7g6g2g3f8g7f1g2e8g8e1g1d7d5c2c4d5c4b1a3b8c6a3c4c8e6b2b3d8c8f1e1f8d8\r
+d2d4g8f6g1f3g7g6g2g3f8g7f1g2e8g8e1g1d7d6b1d2b8c6c2c3e7e5d4e5d6e5d2b3d8e7c1e3f8d8\r
+d2d4g8f6g1f3g7g6g2g3f8g7f1g2e8g8e1g1d7d6b2b3e7e5d4e5d6e5c1b2e5e4d1d8f8d8f3g5c8f5\r
+d2d4g8f6g1f3g7g6g2g3f8g7f1g2e8g8e1g1d7d6b2b3e7e5d4e5f6g4c1b2b8c6c2c4f8e8b1c3g4e5\r
+d2d4g8f6g1f3g7g6g2g3f8g7f1g2e8g8e1g1d7d6c2c4b8c6b1c3a7a6f1e1c8d7e2e4d7g4c1e3f6d7\r
+d2d4g8f6g1f3g7g6g2g3f8g7f1g2e8g8e1g1d7d6c2c4b8c6b1c3a8b8c1d2c8g4d4d5g4f3e2f3c6e5\r
+d2d4g8f6g1f3g7g6g2g3f8g7f1g2e8g8e1g1d7d6f1e1b8d7e2e4e7e5c2c3f8e8b1d2b7b6d1c2c8b7\r
+e2e3e7e5b1c3d7d5d2d4e5d4d1d4g8f6e3e4b8c6f1b5c8d7b5c6d7c6e4e5f6e4c3e4d5e4g1e2f8e7\r
+e2e3e7e5d2d4e5d4e3d4d7d5b1c3g8f6c1g5f8e7f1d3e8g8g1e2b8c6e1g1f6e8g5e7c6e7d1d2c7c6\r
+e2e4c7c5b1c3b8c6f2f4e7e6g1f3d7d5f1b5c8d7e4d5c6d4b5d7d8d7f3e5d7d6d5e6d6e6e1g1e8c8\r
+e2e4c7c5b1c3b8c6f2f4e7e6g1f3d7d5f1b5g8e7e4d5e6d5f3e5a7a6b5c6e7c6e1g1f8e7d1f3c8e6\r
+e2e4c7c5b1c3b8c6f2f4e7e6g1f3d7d5f1b5g8e7e4d5e7d5f3e5c8d7b5c6d7c6e5c6b7c6e1g1f8e7\r
+e2e4c7c5b1c3b8c6f2f4g7g6g1f3f8g7f1b5c6d4e1g1a7a6b5d3d7d6f3d4c5d4c3e2g8f6g1h1f6d7\r
+e2e4c7c5b1c3b8c6g1e2d7d6d2d4c5d4e2d4e7e6c1e3g8f6d1d2f8e7f2f3a7a6e1c1e8g8g2g4c6d4\r
+e2e4c7c5b1c3b8c6g1e2e7e5c3d5g8e7e2c3e7d5c3d5f8e7g2g3d7d6f1g2h7h5h2h4c8e6d2d3e6d5\r
+e2e4c7c5b1c3b8c6g1e2e7e6g2g3d7d5e4d5e6d5f1g2d5d4c3d5g8f6e2f4f6d5f4d5f8d6e1g1e8g8\r
+e2e4c7c5b1c3b8c6g1f3g7g6f1b5f8g7e1g1d7d6d2d3c8d7a2a4g8f6h2h3e8g8c1e3e7e5f3d2d7e6\r
+e2e4c7c5b1c3b8c6g2g3g7g6f1g2f8g7d2d3b7b6g1e2d7d6e1g1c8b7f2f4f7f5g3g4f5g4f4f5d8d7\r
+e2e4c7c5b1c3b8c6g2g3g7g6f1g2f8g7d2d3b7b6g1h3c8b7e1g1d7d6f2f4h7h6f4f5g7c3b2c3g6g5\r
+e2e4c7c5b1c3b8c6g2g3g7g6f1g2f8g7d2d3d7d6c1e3a8b8d1d2b7b5g1f3b5b4c3d1c6d4f3h4e7e5\r
+e2e4c7c5b1c3b8c6g2g3g7g6f1g2f8g7d2d3d7d6f2f4e7e5g1f3g8e7e1g1e8g8c1e3c6d4d1d2e5f4\r
+e2e4c7c5b1c3b8c6g2g3g7g6f1g2f8g7d2d3d7d6f2f4e7e5g1h3e5f4c1f4g8e7e1g1h7h6a1b1e8g8\r
+e2e4c7c5b1c3b8c6g2g3g7g6f1g2f8g7d2d3d7d6g1e2c8d7c1e3c6d4h2h3d8c8d1d2a8b8g3g4b7b5\r
+e2e4c7c5b1c3b8c6g2g3g7g6f1g2f8g7d2d3d7d6g1e2e7e5c3d5g8e7c2c3e7d5e4d5c6e7e1g1e8g8\r
+e2e4c7c5b1c3b8c6g2g3g7g6f1g2f8g7d2d3d7d6g1h3g8f6e1g1c8g4f2f3g4h3g2h3e8g8c1e3f6e8\r
+e2e4c7c5b1c3b8c6g2g3g7g6f1g2f8g7d2d3e7e6c1e3d7d6f2f4g8e7g1f3c6d4e1g1c8d7d1d2d8a5\r
+e2e4c7c5b1c3b8c6g2g3g7g6f1g2f8g7d2d3e7e6c1e3d8a5d1d2d7d6f2f4g8e7g1f3c6d4e1g1f7f5\r
+e2e4c7c5b1c3b8c6g2g3g7g6f1g2f8g7d2d3e7e6c1e3d8a5g1e2c6d4e1g1g8e7e3d2d7d6e2d4c5d4\r
+e2e4c7c5b1c3b8c6g2g3g7g6f1g2f8g7d2d3e7e6c1e3g8e7e3c5d7d6c5e3a7a6g1e2c8d7d1d2e8g8\r
+e2e4c7c5b1c3b8c6g2g3g7g6f1g2f8g7d2d3g8f6g1e2e8g8e1g1d7d6a1b1a8b8a2a3b7b5b2b4c5b4\r
+e2e4c7c5b1c3d7d6f2f4b8c6g1f3g7g6f1c4f8g7e1g1e7e6d2d3g8e7d1e1c6d4f3d4c5d4c3e2e8g8\r
+e2e4c7c5b1c3d7d6f2f4g7g6d2d4c5d4d1d4g8f6e4e5b8c6f1b5f6d7b5c6b7c6e5e6d7f6e6f7e8f7\r
+e2e4c7c5b1c3d7d6f2f4g7g6g1f3f8g7f1c4b8c6e1g1e7e6f4f5e6f5d2d3g8e7a2a3h7h6d1e1c8e6\r
+e2e4c7c5b1c3d7d6g1e2g8f6g2g3b8c6f1g2g7g6d2d3f8g7h2h3a8b8c1g5e8g8d1d2b7b5e1g1b5b4\r
+e2e4c7c5b1c3d7d6g1f3g8f6g2g3b8c6f1g2g7g6d2d4c5d4f3d4c6d4d1d4f8g7e1g1e8g8d4b4a7a5\r
+e2e4c7c5b1c3d7d6g2g3b8c6f1g2g7g6d2d3f8g7c1e3a8b8d1d2b7b5g1e2c6d4e1g1e7e6c3d1g8e7\r
+e2e4c7c5b1c3d7d6g2g3b8c6f1g2g7g6d2d3f8g7c1e3a8b8d1d2b7b5g1e2c6d4e1g1e7e6c3d1g8e7\r
+e2e4c7c5b1c3d7d6g2g3b8c6f1g2g7g6d2d3f8g7f2f4e7e6g1f3g8e7e1g1e8g8a1b1b7b6c1d2c8b7\r
+e2e4c7c5b1c3d7d6g2g3b8c6f1g2g7g6d2d3f8g7f2f4e7e6g1f3g8e7e1g1e8g8a2a3c8d7a1b1a8c8\r
+e2e4c7c5b1c3d7d6g2g3b8c6f1g2g7g6d2d3f8g7f2f4g8f6g1f3e8g8e1g1a8b8f3h4c6d4f4f5b7b5\r
+e2e4c7c5b1c3d7d6g2g3b8c6f1g2g7g6d2d3f8g7f2f4g8f6g1f3e8g8e1g1a8b8h2h3b7b5a2a3a7a5\r
+e2e4c7c5b1c3d7d6g2g3b8c6f1g2g7g6d2d3f8g7f2f4g8f6g1f3e8g8e1g1a8b8h2h3b7b5a2a3a7a5\r
+e2e4c7c5b1c3d7d6g2g3b8c6f1g2g7g6d2d3f8g7f2f4g8f6g1f3e8g8e1g1a8b8h2h3b7b5a2a3a7a5\r
+e2e4c7c5b1c3d7d6g2g3b8c6f1g2g7g6d2d3f8g7g1h3e7e6e1g1g8e7c1e3e8g8d1d2c6d4g1h1a8b8\r
+e2e4c7c5b1c3d7d6g2g3g7g6f1g2f8g7d2d3b8c6c1e3g8f6h2h3e8g8g1e2c8d7e1g1a7a6g3g4a8b8\r
+e2e4c7c5b1c3d7d6g2g3g7g6f1g2f8g7d2d3b8c6f2f4e7e6g1f3g8e7e1g1e8g8c1d2a8b8a1b1b7b5\r
+e2e4c7c5b1c3d7d6g2g3g7g6f1g2f8g7d2d3b8c6f2f4e7e6g1f3g8e7e1g1e8g8c1d2a8b8a1b1b7b5\r
+e2e4c7c5b1c3d7d6g2g3g7g6f1g2f8g7d2d3b8c6g1h3e7e6e1g1g8e7c1e3e8g8d1d2e6e5f2f4f7f5\r
+e2e4c7c5b1c3e7e6g1e2b8c6d2d4c5d4e2d4d7d6g2g3g8f6f1g2c8d7e1g1f8e7c1e3e8g8d1e2a7a6\r
+e2e4c7c5b1c3e7e6g1e2b8c6d2d4c5d4e2d4d8c7g2g3a7a6f1g2d7d6e1g1c8d7a2a4g8f6d4c6d7c6\r
+e2e4c7c5b1c3e7e6g1e2b8c6g2g3d7d5e4d5e6d5d2d3g8f6f1g2f8e7c1g5d5d4g5f6e7f6c3e4f6e7\r
+e2e4c7c5b1c3e7e6g1f3a7a6d2d4c5d4f3d4d7d6f1d3g8f6e1g1f8e7f2f4b8c6d4c6b7c6d1e2f6d7\r
+e2e4c7c5b1c3e7e6g1f3a7a6d2d4c5d4f3d4d7d6g2g3b7b6f1g2c8b7e1g1f8e7f2f4d8c7d1e2g8f6\r
+e2e4c7c5b1c3e7e6g1f3a7a6d2d4c5d4f3d4d7d6g2g3b8c6f1g2c8d7e1g1g8f6a2a4f8e7d4c6d7c6\r
+e2e4c7c5b1c3e7e6g1f3a7a6g2g3b7b5f1g2c8b7d2d4b5b4c3a4c5d4f3d4g8f6c1g5d8a5g5f6g7f6\r
+e2e4c7c5b1c3e7e6g1f3a7a6g2g3b7b5f1g2c8b7d2d4g8f6c1g5c5d4f3d4h7h6g5f6d8f6e1g1b8c6\r
+e2e4c7c5b1c3e7e6g1f3b8c6g2g3d7d5f1g2d5d4c3e2g7g6d2d3f8g7e1g1g8e7f3h4e6e5f2f4d8d6\r
+e2e4c7c5b1c3e7e6g1f3d7d6d2d4c5d4f3d4g8f6f1e2a7a6e1g1d8c7c1e3b7b5a2a3c8b7f2f3b8d7\r
+e2e4c7c5b1c3e7e6g1f3d7d6d2d4c5d4f3d4g8f6g2g3f8e7f1g2e8g8e1g1a7a6a2a4d8c7h2h3b8c6\r
+e2e4c7c5b1c3e7e6g2g3d7d5e4d5e6d5f1g2g8f6g1e2d5d4c3e4f6e4g2e4b8d7d2d3d7f6e4g2f8d6\r
+e2e4c7c5b1c3g7g6g2g3f8g7d2d3b8c6f1g2a8b8f2f4d7d6g1f3e7e6e1g1g8e7e4e5d6e5f4e5c6e5\r
+e2e4c7c5c2c3d7d5e4d5d8d5d2d4e7e6g1f3b8c6f1e2g8f6e1g1f8e7c1e3c5d4f3d4c6d4e3d4e8g8\r
+e2e4c7c5c2c3d7d5e4d5d8d5d2d4e7e6g1f3g8f6c1e3c5d4c3d4f8e7b1c3d5d6f1d3b8c6a2a3e8g8\r
+e2e4c7c5c2c3d7d5e4d5d8d5d2d4g8f6g1f3b8c6c1e3c5d4c3d4e7e6b1c3d5d6a2a3f8e7f1d3e8g8\r
+e2e4c7c5c2c3d7d5e4d5d8d5d2d4g8f6g1f3c8g4d4c5d5c5b1a3a7a6c1e3c5c7h2h3g4h5d1a4b8d7\r
+e2e4c7c5c2c3d7d5e4d5d8d5d2d4g8f6g1f3c8g4f1e2e7e6e1g1b8c6c1e3c5d4c3d4f8b4a2a3b4a5\r
+e2e4c7c5c2c3d7d5e4d5d8d5d2d4g8f6g1f3c8g4f1e2e7e6h2h3g4h5e1g1b8c6c1e3c5d4c3d4f8b4\r
+e2e4c7c5c2c3d7d6d2d4g8f6f1d3c5d4c3d4g7g6b1c3f8g7h2h3e8g8g1f3e7e5d4e5d6e5e1g1b8c6\r
+e2e4c7c5c2c3e7e6d2d4d7d5e4d5e6d5c1e3c5c4b2b3c4b3a2b3f8d6f1d3b8c6d1f3g8f6h2h3h7h6\r
+e2e4c7c5c2c3g8f6e4e5f6d5d2d4c5d4g1f3b8c6c3d4d7d6f1c4d5b6c4b5d6e5f3e5c8d7e5d7d8d7\r
+e2e4c7c5c2c3g8f6e4e5f6d5d2d4c5d4g1f3e7e6c3d4d7d6a2a3c8d7f1d3d7c6e1g1b8d7b2b4a7a6\r
+e2e4c7c5c2c3g8f6e4e5f6d5g1f3b8c6f1c4d5b6c4b3c5c4b3c2d8c7d1e2g7g5e5e6d7e6f3g5c7e5\r
+e2e4c7c5c2c3g8f6e4e5f6d5g1f3b8c6f1c4d5b6c4b3c5c4b3c2g7g6b1a3d7d6d1e2d6d5h2h3f8g7\r
+e2e4c7c5c2c3g8f6e4e5f6d5g1f3b8c6f1c4d5b6c4e2d7d6e5d6e7e6d2d4f8d6d4c5d6c5d1d8c6d8\r
+e2e4c7c5c2c3g8f6e4e5f6d5g1f3b8c6f1c4d5b6c4e2d7d6e5d6e7e6d2d4f8d6e1g1e8g8e2d3g7g6\r
+e2e4c7c5c2c3g8f6e4e5f6d5g1f3e7e6d2d4c5d4c3d4b7b6a2a3f8e7b1d2e8g8d2e4f7f5e5f6d5f6\r
+e2e4c7c5c2c3g8f6e4e5f6d5g2g3b8c6f1g2d8c7f2f4e7e6b1a3f8e7g1e2e8g8e1g1a7a6d2d3b7b6\r
+e2e4c7c5d2d3b8c6g1f3g7g6g2g3f8g7f1g2d7d6e1g1g8f6b1d2e8g8a2a4c8d7d2c4d8c8f1e1f6g4\r
+e2e4c7c5g1e2d7d6g2g3g7g6f1g2f8g7c2c3g8f6d2d4e8g8e1g1d8c7b1a3b8c6h2h3f8d8c1e3e7e5\r
+e2e4c7c5g1e2d7d6g2g3g7g6f1g2f8g7e1g1b8c6c2c3e7e5d2d3g8e7a2a3e8g8b2b4b7b6f2f4e5f4\r
+e2e4c7c5g1e2g8f6b1c3d7d6g2g3b8c6f1g2g7g6d2d3f8g7c1e3e8g8h2h3f6e8d1d2c6d4c3d1a8b8\r
+e2e4c7c5g1e2g8f6b1c3d7d6g2g3b8c6f1g2g7g6d2d4c5d4e2d4c6d4d1d4f8g7e1g1e8g8d4d3c8e6\r
+e2e4c7c5g1e2g8f6b1c3d7d6g2g3b8c6f1g2g7g6e1g1f8g7d2d3e8g8h2h3a8b8f2f4c8d7c1e3b7b5\r
+e2e4c7c5g1e2g8f6b1c3d7d6g2g3g7g6f1g2b8c6e1g1f8g7d2d4c5d4e2d4c8g4d4e2d8c8f2f3g4h3\r
+e2e4c7c5g1e2g8f6b1c3e7e6g2g3b8c6f1g2f8e7e1g1d7d6d2d3a7a6a2a3d8c7f2f4b7b5g1h1e8g8\r
+e2e4c7c5g1f3a7a6b1c3e7e6d2d4c5d4f3d4b7b5f1d3d8b6d4b3b6c7e1g1c8b7d1e2d7d6a2a4b5b4\r
+e2e4c7c5g1f3a7a6d2d4c5d4f3d4g8f6b1c3e7e5d4f3f8b4f3e5e8g8f1d3d7d5e1g1b4c3b2c3d5e4\r
+e2e4c7c5g1f3b8c6b1c3e7e5f1c4d7d6d2d3f8e7f3d2e7g5d2f1g5c1a1c1g8e7f1e3e8g8a2a3g8h8\r
+e2e4c7c5g1f3b8c6b1c3g7g6d2d4c5d4f3d4f8g7c1e3g8f6f1e2e8g8d1d2d7d5e4d5f6d5c3d5d8d5\r
+e2e4c7c5g1f3b8c6b1c3g7g6g2g3f8g7f1g2g8f6d2d3e8g8f3h4a8b8f2f4d7d6e1g1c8d7f4f5b7b5\r
+e2e4c7c5g1f3b8c6c2c3d7d5e4d5d8d5d2d4g8f6f1e2e7e6e1g1f8e7b1a3e8g8a3b5d5d8d4c5e7c5\r
+e2e4c7c5g1f3b8c6c2c3g8f6e4e5f6d5f1c4d5b6c4b3d7d5e5d6e7e6d2d4c5d4c3d4f8d6e1g1c6e7\r
+e2e4c7c5g1f3b8c6d2d4c5d4c2c3d4d3c3c4d7d6f1d3g8f6e1g1e7e6b1c3f8e7c1f4e6e5f4g5c8g4\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4d8b6d4b3e7e6f1d3g8f6e1g1f8e7c2c4c6e5b1c3d7d6c1e3b6c7\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4d8c7b1c3e7e6c1e3a7a6f1d3g8f6e1g1c6e5h2h3f8c5d1e2d7d6\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4d8c7b1c3e7e6c1e3a7a6f1d3g8f6e1g1h7h5h2h3b7b5d4c6c7c6\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4d8c7b1c3e7e6f1e2a7a6e1g1g8f6c1e3f8e7f2f4d7d6a2a4e8g8\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4d8c7b1c3e7e6f1e2a7a6e1g1g8f6c1e3f8e7g1h1e8g8f2f4d7d6\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4d8c7b1c3e7e6f1e2a7a6f2f4c6d4d1d4b7b5c1e3c8b7e1g1a8c8\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4d8c7b1c3e7e6g2g3a7a6f1g2g8f6e1g1c6d4d1d4f8c5c1f4d7d6\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4e7e5d4b5a7a6b5d6f8d6d1d6d8f6d6d1f6g6b1c3g8e7h2h4h7h5\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4e7e5d4b5d7d6c2c4c8e6b1c3a7a6b5a3a8c8f1d3f8e7e1g1e7g5\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4e7e5d4b5d7d6c2c4f8e7b1c3a7a6b5a3c8e6f1d3e7g5a3c2g5c1\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4e7e6b1c3d7d6c1e3g8f6f1c4a7a6c4b3d8c7f2f4f8e7d1f3e8g8\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4e7e6b1c3d7d6c1e3g8f6f2f4f8e7d1f3e8g8e1c1d8c7d4b5c7b8\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4e7e6b1c3d7d6g2g3c8d7f1g2c6d4d1d4d7c6e1g1g8f6f1d1f8e7\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4e7e6b1c3d8c7c1e3a7a6a2a3g8f6f2f4d7d6f1d3c6d4e3d4e6e5\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4e7e6b1c3d8c7c1e3a7a6f1d3b7b5d4c6c7c6e1g1c8b7a2a3g8f6\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4e7e6b1c3d8c7c1e3a7a6f1d3g8f6e1g1b7b5d1e2c8b7a1d1c6e5\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4e7e6b1c3d8c7c1e3a7a6f1e2c6d4d1d4b7b5e1g1c8b7a1d1g8f6\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4e7e6b1c3d8c7c1e3a7a6f1e2g8f6a2a3f8e7e1g1e8g8f2f4d7d6\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4e7e6b1c3d8c7f1e2g8f6e1g1a7a6c1e3f8b4d4c6b7c6c3a4e8g8\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4e7e6b1c3d8c7g2g3a7a6f1g2g8f6e1g1f8e7b2b3e8g8c1b2c6d4\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4e7e6d4b5d7d6c1f4e6e5f4e3g8f6e3g5c8e6b1c3a7a6g5f6g7f6\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4e7e6d4b5d7d6c1f4e6e5f4e3g8f6e3g5d8a5d1d2f6e4d2a5c6a5\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4e7e6d4b5d7d6c2c4g8f6b5c3f8e7g2g3e8g8f1g2a7a6e1g1a8b8\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g7g6b1c3f8g7c1e3g8f6f1c4c6a5c4e2e8g8e1g1d7d6f2f4c8d7\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g7g6b1c3f8g7c1e3g8f6f1c4d7d6f2f3c6a5c4b3a5b3a2b3e8g8\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g7g6b1c3f8g7c1e3g8f6f1c4d8a5e1g1e8g8c4b3d7d6h2h3c8d7\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g7g6b1c3f8g7c1e3g8f6f1c4e8g8c4b3d8a5f2f3d7d5e4d5c6b4\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g7g6c2c4f8g7c1e3g8f6b1c3e8g8f1e2b7b6e1g1c8b7f2f3f6h5\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g7g6c2c4f8g7c1e3g8f6b1c3f6g4d1g4c6d4g4d1d4e6d1d2d7d6\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g7g6c2c4g8f6b1c3c6d4d1d4d7d6c1e3f8g7f2f3e8g8d4d2c8e6\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g7g6c2c4g8f6b1c3c6d4d1d4d7d6c4c5f8g7f1b5c8d7b5d7d8d7\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g7g6c2c4g8f6b1c3c6d4d1d4d7d6f1e2f8g7c1e3e8g8d4d2c8e6\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6c1e3f6g4f1b5g4e3f2e3c8d7b5c6b7c6e1g1e7e6\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6c1g5e7e6d1d2a7a6e1c1c8d7f2f4b7b5d4f3b5b4\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6c1g5e7e6d1d2a7a6e1c1c8d7f2f4b7b5g5f6g7f6\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6c1g5e7e6d1d2a7a6e1c1c8d7f2f4b7b5g5f6g7f6\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6c1g5e7e6d1d2a7a6e1c1c8d7f2f4f8e7d4f3b7b5\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6c1g5e7e6d1d2a7a6e1c1c8d7f2f4f8e7f1e2e8g8\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6c1g5e7e6d1d2a7a6e1c1c8d7f2f4h7h6g5h4f6e4\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6c1g5e7e6d1d2a7a6e1c1c8d7h2h3b7b5a2a3f8e7\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6c1g5e7e6d1d2a7a6e1c1h7h6g5e3c8d7f2f3b7b5\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6c1g5e7e6d1d2a7a6e1c1h7h6g5e3c8d7f2f4a8c8\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6c1g5e7e6d1d2a7a6e1c1h7h6g5e3d8c7f2f3a8b8\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6c1g5e7e6d1d2a7a6e1c1h7h6g5e3f6g4d4c6b7c6\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6c1g5e7e6d1d2a7a6e1c1h7h6g5e3f6g4d4c6b7c6\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6c1g5e7e6d1d2a7a6e1c1h7h6g5e3f8e7f2f4c6d4\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6c1g5e7e6d1d2a7a6e1c1h7h6g5f4c8d7d4c6d7c6\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6c1g5e7e6d1d2a7a6f1e2c8d7a1d1d8c7e1g1f8e7\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6c1g5e7e6d1d2f8e7e1c1c6d4d2d4e8g8f2f4h7h6\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6c1g5e7e6d1d2f8e7e1c1e8g8d4b3a7a6g5f6g7f6\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6c1g5e7e6d1d2f8e7e1c1e8g8f2f4c6d4d2d4d8a5\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6c1g5e7e6d1d2f8e7e1c1e8g8f2f4c6d4d2d4h7h6\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6c1g5e7e6d1d2f8e7e1c1e8g8f2f4e6e5d4c6b7c6\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6c1g5e7e6d1d2f8e7e1c1e8g8f2f4h7h6g5h4e6e5\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6c1g5e7e6d1d2f8e7e1c1e8g8f2f4h7h6g5h4f6e4\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6c1g5e7e6d1d2h7h6g5f6g7f6e1c1a7a6f1e2h6h5\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6c1g5e7e6d1d2h7h6g5f6g7f6e1c1a7a6f2f4c8d7\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6c1g5e7e6d1d3a7a6a1d1c8d7f1e2f8e7e1g1e8g8\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6c1g5e7e6f1e2f8e7e1g1e8g8d1d3h7h6g5c1g8h8\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6c1g5e7e6f1e2f8e7e1g1e8g8d4b5a7a6g5f6g7f6\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6c1g5e7e6f2f4f8e7d1d2e8g8e1c1c6d4d2d4d8a5\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6c1g5e7e6g2g3f8e7f1g2e8g8e1g1c6d4d1d4h7h6\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6f1c4c8d7c1g5d8a5g5f6g7f6d4b3a5g5e1g1h8g8\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6f1c4c8d7c4b3g7g6f2f3c6a5c1g5f8g7d1d2h7h6\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6f1c4d8b6d4e2e7e6e1g1f8e7c4b3e8g8g1h1c6a5\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6f1c4e7e6c4b3f8e7e1g1e8g8c1e3c6a5f2f4b7b6\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6f1c4e7e6e1g1a7a6c1e3d8c7c4b3c6a5f2f4b7b5\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6f1c4e7e6e1g1a7a6c1e3d8c7c4b3f8e7f2f4c6a5\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6f1e2e7e5d4b3f8e7e1g1e8g8c1e3c8e6e2f3a7a5\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6f1e2e7e5d4b3f8e7e1g1e8g8c1e3c8e6e2f3c6a5\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6f1e2e7e6c1e3a7a6e1g1d8c7d4b3f8e7f2f4e8g8\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6f1e2g7g6c1e3f8g7h2h4e8g8h4h5d6d5h5g6f7g6\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6f1e2g7g6c1e3f8g7h2h4e8g8h4h5d6d5h5g6h7g6\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6f1e2g7g6c1e3f8g7h2h4h7h5f2f3e8g8d1d2d6d5\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6f1e2g7g6e1g1f8g7d4b3e8g8g1h1a7a6f2f4b7b5\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6g2g3c8g4f2f3g4d7c1e3g7g6d1d2f8g7e1c1e8g8\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3e7e5d4b3f8b4f1d3d7d5e4d5f6d5c1d2d5c3b2c3b4d6\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3e7e5d4b5d7d6c1g5a7a6b5a3b7b5g5f6g7f6c3d5f6f5\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3e7e5d4b5d7d6c1g5a7a6b5a3b7b5g5f6g7f6c3d5f6f5\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3e7e5d4b5d7d6c1g5a7a6g5f6g7f6b5a3d6d5c3d5f8a3\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3e7e5d4b5d7d6c3d5f6d5e4d5c6b8c2c4f8e7f1e2a7a6\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3e7e5d4b5d7d6c3d5f6d5e4d5c6e7a2a4e7f5c2c3g7g6\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3e7e5d4b5d7d6c3d5f6d5e4d5c6e7c2c3e7f5a2a4g7g6\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3e7e5d4b5d7d6c3d5f6d5e4d5c6e7c2c4e7f5f1d3f8e7\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3e7e5d4b5h7h6b5d6f8d6d1d6d8e7d6e7e8e7c1e3d7d6\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3e7e6d4b5d7d6c1f4e6e5f4g5a7a6b5a3b7b5c3d5f8e7\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3e7e6d4c6b7c6e4e5f6d5c3e4d8c7f2f4c7a5c1d2a5b6\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3e7e6f1b5d8b6b5c6d7c6e1g1f8e7e4e5f6d5c3e4c6c5\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3g7g6d4c6b7c6e4e5f6g8f1c4f8g7c1f4d8a5e1g1g7e5\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3g7g6d4c6d7c6d1d8e8d8f1c4d8e8a2a4e7e5f2f4c8e6\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3g7g6f1c4d7d6d4c6b7c6e4e5f6g4e5e6f7f5e1g1f8g7\r
+e2e4c7c5g1f3b8c6f1b5g7g6b5c6b7c6e1g1f8g7f1e1f7f6c2c3g8h6d2d4c5d4c3d4e8g8b1c3d7d6\r
+e2e4c7c5g1f3b8c6f1b5g7g6c2c3g8f6e4e5f6d5e1g1f8g7d2d4c5d4c3d4e8g8b1c3d5c7b5a4d7d6\r
+e2e4c7c5g1f3b8c6f1b5g7g6e1g1f8g7b1c3d7d6d2d3c8d7c3d5e7e6d5e3g8e7c2c3e8g8d3d4c6d4\r
+e2e4c7c5g1f3b8c6f1b5g7g6e1g1f8g7f1e1g8f6c2c3a7a6b5c6d7c6h2h3e8g8d2d4c5d4c3d4c6c5\r
+e2e4c7c5g1f3b8c6f1b5g7g6e1g1f8g7f1e1g8f6c2c3e8g8h2h3e7e5b1a3d7d6b5c6b7c6d2d3a7a5\r
+e2e4c7c5g1f3d7d6b1c3b8c6d2d4c5d4f3d4g8f6c1g5e7e6d1d2a7a6e1c1c8d7f2f4f8e7d4f3b7b5\r
+e2e4c7c5g1f3d7d6b1c3e7e6d2d4c5d4f3d4g8f6c1e3f8e7f2f4b8c6d1f3e6e5d4c6b7c6f4e5d6e5\r
+e2e4c7c5g1f3d7d6b1c3g8f6e4e5d6e5f3e5b8d7e5c4e7e6b2b3f8e7c1b2e8g8d1f3a8b8a2a4b7b6\r
+e2e4c7c5g1f3d7d6b1c3g8f6e4e5d6e5f3e5e7e6g2g3b8d7e5c4d7b6d1e2b6c4e2c4c8d7f1g2d8c8\r
+e2e4c7c5g1f3d7d6c2c3g8f6d1c2b8c6d2d4c5d4c3d4d6d5e4e5f6e4b1c3c8f5c2b3e4c3b2c3d8d7\r
+e2e4c7c5g1f3d7d6c2c3g8f6f1e2g7g6e1g1f8g7e2b5b8c6d2d4c5d4c3d4a7a6b5e2d6d5e4e5f6e4\r
+e2e4c7c5g1f3d7d6c2c3g8f6f1e2g7g6e1g1f8g7e2b5b8c6d2d4e8g8d4d5c6a5f1e1e7e6b5f1e6d5\r
+e2e4c7c5g1f3d7d6c2c3g8f6f1e2g7g6e1g1f8g7e2b5c8d7b5d7d8d7f1e1e8g8d2d4b8a6e4e5d6e5\r
+e2e4c7c5g1f3d7d6d2d4c5d4d1d4b8c6f1b5a7a6b5c6b7c6e1g1e7e5d4d3f8e7f1d1g8f6c1g5e8g8\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4b8c6b1c3e7e6f1e2g8f6c1e3f8e7f2f4e8g8e1g1c8d7d4b3a7a5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6a2a4b8c6f1e2e7e5d4b3f8e7e1g1e8g8c1g5c8e6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6a2a4b8c6f1e2g7g6c1e3f8g7e1g1e8g8f2f4c8d7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1e3e7e5d4b3c8e6d1d2b8d7f2f3a8c8g2g4f8e7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1e3e7e5d4f3d8c7a2a4f8e7a4a5b8d7f3d2d7c5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1e3e7e5d4f3d8c7a2a4f8e7a4a5e8g8f1e2c8e6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1e3e7e5d4f3f8e7f1c4c8e6c4e6f7e6f3g5d8d7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1e3e7e6d1d2b7b5f2f3c8b7g2g4b8c6d4c6b7c6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1e3e7e6f1e2f8e7f2f4b8c6d1d2c6d4d2d4e8g8\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1e3e7e6f2f3b7b5g2g4h7h6d1d2b8d7e1c1c8b7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1e3e7e6f2f4b7b5d1f3c8b7f1d3b8d7g2g4d7c5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1e3e7e6g2g4h7h6d1e2b8c6e1c1c8d7f2f3a8c8\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1g5b8c6d1d2e7e6e1c1c8d7f2f4h7h6g5h4g7g5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1g5b8d7f1c4d8a5d1d2h7h6g5f6d7f6e1c1e7e6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1g5e7e6d1d3f8e7f1e2h7h6g5h4b8d7e1c1d8c7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1g5e7e6f2f4b7b5e4e5d6e5f4e5d8c7e5f6c7e5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1g5e7e6f2f4b7b5e4e5d6e5f4e5d8c7f1b5a6b5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1g5e7e6f2f4b8d7d1f3d8c7e1c1b7b5f1d3c8b7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1g5e7e6f2f4b8d7d1f3d8c7e1c1b7b5f1d3c8b7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1g5e7e6f2f4c8d7d1f3b8c6e1c1d8c7d4c6b7c6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1g5e7e6f2f4d8b6d1d2b6b2a1b1b2a3f4f5b8c6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1g5e7e6f2f4d8b6d1d2b6b2a1b1b2a3f4f5b8c6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1g5e7e6f2f4d8b6d1d2b6b2a1b1b2a3f4f5b8c6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1g5e7e6f2f4d8b6d1d2b6b2d4b3b2a3f1d3f8e7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1g5e7e6f2f4d8b6d1d2b6b2d4b3b2a3g5f6g7f6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1g5e7e6f2f4d8b6d1d2b6b2d4b3b2a3g5f6g7f6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1g5e7e6f2f4d8b6d1d2b6b2d4b3b2a3g5f6g7f6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1g5e7e6f2f4d8b6d1d2b6b2d4b3b8c6g5f6g7f6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1g5e7e6f2f4f8e7d1f3b8d7f1c4h7h6g5f6e7f6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1g5e7e6f2f4f8e7d1f3d8c7e1c1b8d7d1e1h7h6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1g5e7e6f2f4f8e7d1f3d8c7e1c1b8d7f1d3b7b5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1g5e7e6f2f4f8e7d1f3d8c7e1c1b8d7f1e2b7b5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1g5e7e6f2f4f8e7d1f3d8c7e1c1b8d7f4f5e6e5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1g5e7e6f2f4f8e7d1f3d8c7e1c1b8d7g2g4b7b5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1g5e7e6f2f4f8e7d1f3d8c7e1c1b8d7g2g4b7b5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1g5e7e6f2f4f8e7d1f3d8c7e1c1b8d7g2g4b7b5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1g5e7e6f2f4f8e7d1f3d8c7e1c1b8d7g2g4b7b5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1g5e7e6f2f4h7h6g5h4d8b6a2a3b8c6h4f2b6c7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1g5e7e6f2f4h7h6g5h4d8b6a2a3b8c6h4f2b6c7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1c4b8d7a2a4g7g6e1g1f8g7c1g5e8g8d1d2d7c5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1c4e7e6a2a3f8e7e1g1e8g8c4a2b7b5f2f4c8b7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1c4e7e6c4b3b7b5e1g1f8e7d1f3d8c7f3g3b8c6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1c4e7e6c4b3b7b5e1g1f8e7d1f3d8c7f3g3e8g8\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1c4e7e6c4b3b7b5e1g1f8e7d1f3d8c7f3g3e8g8\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1c4e7e6c4b3b7b5f2f3f8e7c1e3e8g8d1d2d8c7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1c4e7e6c4b3b7b5f2f4b5b4c3a4f6e4e1g1g7g6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1c4e7e6c4b3b8c6c1e3f8e7f2f4e8g8e1g1c6d4\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1c4e7e6c4b3b8c6f2f4f8e7c1e3e8g8d1f3c6d4\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1c4e7e6c4b3b8d7f2f4d7c5d1f3b7b5f4f5c8d7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1c4e7e6c4b3b8d7f2f4d7c5e4e5d6e5f4e5f6d7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1c4e7e6c4b3b8d7f2f4d7c5f4f5f8e7d1f3e8g8\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1c4e7e6c4b3f8e7f2f4e8g8d1f3d8c7e1g1b7b5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1d3g7g6h2h3f8g7c1e3b8c6e1g1e8g8f1e1c8d7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2d8c7c1g5b8d7e1g1e7e6e2h5c7c4d4e6c4e6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2d8c7e1g1e7e6f2f4b8c6c1e3f8e7d1e1c6d4\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2e7e5d4b3c8e6e1g1b8d7a2a4f8e7f2f4d8c7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2e7e5d4b3c8e6e1g1b8d7a2a4f8e7f2f4d8c7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2e7e5d4b3c8e6e1g1b8d7c1e3f8e7f2f3d7b6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2e7e5d4b3c8e6e1g1b8d7f2f4d8c7a2a4f8e7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2e7e5d4b3c8e6e1g1b8d7f2f4d8c7f4f5e6c4\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2e7e5d4b3c8e6e1g1f8e7f2f4e5f4c1f4e8g8\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2e7e5d4b3c8e6f2f4d8c7f4f5e6c4e2f3a6a5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2e7e5d4b3f8e7c1e3b8d7e1g1e8g8f2f3d8c7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2e7e5d4b3f8e7c1e3c8e6e1g1b8d7f2f4a8c8\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2e7e5d4b3f8e7c1g5b8d7a2a4b7b6c3d5c8b7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2e7e5d4b3f8e7e1g1c8e6f2f4d8c7a2a4b8d7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2e7e5d4b3f8e7e1g1c8e6f2f4d8c7a2a4b8d7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2e7e5d4b3f8e7e1g1c8e6f2f4d8c7a2a4b8d7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2e7e5d4b3f8e7e1g1c8e6f2f4d8c7a2a4b8d7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2e7e5d4b3f8e7e1g1c8e6f2f4d8c7g2g4h7h6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2e7e5d4b3f8e7e1g1e8g8c1e3c8e6f2f4e5f4\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2e7e5d4b3f8e7e1g1e8g8c1e3d8c7a2a4c8e6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2e7e5d4b3f8e7e1g1e8g8c1e3d8c7a2a4c8e6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2e7e5d4b3f8e7e1g1e8g8c1e3f8e8d1d2d8c7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2e7e6e1g1d8c7f2f4f8e7c1e3b8d7e2f3d7b6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2e7e6e1g1f8e7a2a4b8c6c1e3e8g8f2f4d8c7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2e7e6e1g1f8e7a2a4b8c6c1e3e8g8f2f4d8c7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2e7e6e1g1f8e7a2a4b8c6c1e3e8g8f2f4d8c7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2e7e6e1g1f8e7a2a4b8c6c1e3e8g8f2f4d8c7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2e7e6e1g1f8e7a2a4b8c6c1e3e8g8f2f4d8c7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2e7e6e1g1f8e7f2f4e8g8g1h1b8c6c1e3d8c7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2e7e6e1g1f8e7f2f4e8g8g1h1d8c7a2a4b8c6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2e7e6e1g1f8e7f2f4e8g8g1h1d8c7a2a4b8c6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2e7e6e1g1f8e7f2f4e8g8g1h1d8c7a2a4b8c6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2e7e6e1g1f8e7f2f4e8g8g1h1d8c7a2a4b8c6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2e7e6e1g1f8e7f2f4e8g8g1h1d8c7a2a4b8c6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2e7e6e1g1f8e7f2f4e8g8g1h1d8c7d1e1b7b5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2e7e6e1g1f8e7f2f4e8g8g1h1d8c7e2f3b8c6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2e7e6f2f4f8e7e1g1e8g8g1h1d8c7d1e1b7b5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f2f4b8d7f1e2g7g6e1g1f8g7a2a4e8g8g1h1d8c7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f2f4d8c7f1e2e7e5d4b3b7b5e1g1c8b7d1d3b8d7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f2f4d8c7f1e2e7e6e1g1f8e7a2a4b8c6c1e3e8g8\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f2f4d8c7f1e2e7e6e1g1f8e7g1h1e8g8a2a4b8c6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f2f4e7e5d4f3b8d7a2a4d8c7f1d3f8e7e1g1e8g8\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f2f4e7e5d4f3b8d7a2a4d8c7f1d3g7g6e1g1b7b6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f2f4e7e5d4f3b8d7a2a4f8e7f1c4e8g8d1e2d8a5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f2f4e7e6c1e3b7b5d1f3c8b7f1d3b8d7a2a3d7c5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6g2g3e7e5d4e2c8e6f1g2b7b5a2a4b5b4c3d5f6d5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6g2g3e7e5d4e2c8e6f1g2b7b5e1g1b8d7a2a4b5b4\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6g2g3e7e5d4e2c8g4f1g2d8d7h2h3g4e6c3d5e6d5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6g2g3e7e5d4e2f8e7f1g2e8g8a2a4b7b6e1g1c8b7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6g2g3e7e5d4e2f8e7f1g2e8g8a2a4b8c6e1g1c6b4\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6g2g3e7e6f1g2f8e7e1g1e8g8b2b3d8c7c1b2b8c6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3b8c6c1g5d8b6d4b3e7e6d1d2f8e7f2f3e8g8g2g4f8d8\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3b8c6c1g5e7e6d1d2a7a6e1c1c6d4d2d4f8e7f2f3d8c7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3b8c6c1g5e7e6d1d2a7a6e1c1c8d7f2f3d8c7c1b1f8e7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3b8c6c1g5e7e6d1d2a7a6e1c1c8d7f2f4b7b5d4c6d7c6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3b8c6c1g5e7e6d1d2a7a6e1c1c8d7f2f4b7b5d4c6d7c6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3b8c6c1g5e7e6d1d2a7a6e1c1f8e7f2f4c8d7d4f3b7b5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3b8c6c1g5e7e6d1d2a7a6e1c1f8e7g5f6g7f6f1c4c6d4\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3b8c6c1g5e7e6d1d2a7a6e1c1h7h6g5e3c6d4e3d4b7b5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3b8c6c1g5e7e6d1d2a7a6e1c1h7h6g5e3c6d4e3d4b7b5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3b8c6c1g5e7e6d1d2f8e7e1c1e8g8d4b3a7a5a2a4d6d5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3b8c6c1g5e7e6d1d2f8e7e1c1e8g8d4b3a7a5a2a4d6d5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3b8c6c1g5e7e6d1d2f8e7e1c1e8g8d4b3a7a6g5f6g7f6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3b8c6c1g5e7e6d1d2f8e7e1c1e8g8f2f4c6d4d2d4d8a5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3b8c6c1g5e7e6d1d2f8e7e1c1e8g8f2f4c6d4d2d4d8a5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3b8c6c1g5e7e6d1d2f8e7e1c1e8g8f2f4c6d4d2d4d8a5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3b8c6c1g5e7e6d1d2f8e7e1c1e8g8f2f4h7h6g5h4e6e5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3b8c6c1g5e7e6d1d2f8e7e1c1e8g8f2f4h7h6g5h4e6e5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3b8c6f1c4e7e6c4b3a7a6f2f4f8e7c1e3d8c7e1g1b7b5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3b8c6f1c4e7e6c4b3f8e7c1e3e8g8e1g1a7a6f2f4c6d4\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3b8c6f1c4e7e6c4b3f8e7c1e3e8g8e1g1c8d7f2f4d8c8\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3b8c6f1c4e7e6c4b3f8e7c1e3e8g8f2f4c8d7e1g1a7a6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3b8c6f1c4e7e6c4b3f8e7e1g1c6d4d1d4e8g8f2f4b7b6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3b8c6f1c4e7e6c4b3f8e7e1g1e8g8c1e3a7a6f2f4d8c7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3b8c6f1c4e7e6c4b3f8e7e1g1e8g8f2f4c8d7g1h1a8c8\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3b8c6f1c4e7e6c4b3f8e7f2f4e8g8c1e3c6d4e3d4b7b5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3b8c6f1e2g7g6d4b3f8g7e1g1e8g8c1g5a7a6a2a4c8e6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3b8d7f1c4a7a6c1g5d8a5d1d2e7e6e1g1h7h6g5h4g7g5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3c8d7c1g5e7e6d4b5d7b5f1b5b8c6d1f3h7h6g5h4f8e7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3c8d7f1e2e7e6e1g1f8e7f2f4b8c6d4b3e8g8c1e3a8c8\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3e7e6f1e2a7a6e1g1b8d7f2f4b7b5e2f3c8b7a2a3d8c7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3e7e6f1e2f8e7e1g1b8c6f2f4e8g8g1h1c8d7d4b3a7a6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3e7e6f1e2f8e7e1g1e8g8c1e3b8c6f2f4e6e5d4b3e5f4\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3e7e6f1e2f8e7e1g1e8g8f2f4b8c6c1e3a7a6d1e1c6d4\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3e7e6f1e2f8e7e1g1e8g8f2f4b8c6c1e3e6e5d4b3a7a5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3e7e6f2f4a7a6d1f3d8b6d4b3b8c6f1d3f8e7c1e3b6c7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3e7e6f2f4a7a6f1e2f8e7e1g1d8c7d1e1e8g8e1g3b8c6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3e7e6g2g3b8c6f1g2c8d7e1g1f8e7c1e3c6e5a2a4a7a6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3e7e6g2g4a7a6f1g2f6d7e1g1b8c6g1h1f8e7f2f4e8g8\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3e7e6g2g4a7a6g4g5f6d7a2a4b8c6c1e3d7e5f1e2c6d4\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3e7e6g2g4h7h6g4g5h6g5c1g5a7a6f1g2c8d7d1e2f8e7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3e7e6g2g4h7h6h2h3a7a6f1g2g7g5b2b3b8d7c1b2d7e5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3g7g6c1e3f8g7d1d2b8c6f2f3e8g8f1c4c8d7h2h4h7h5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3g7g6c1e3f8g7d1d2b8d7f2f3a7a6e1c1b7b5g2g4c8b7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3g7g6c1e3f8g7f1e2b8c6e1g1e8g8d4b3a7a6f2f3b7b5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3g7g6c1e3f8g7f2f3b8c6d1d2e8g8e1c1c8e6c1b1a8c8\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3g7g6c1e3f8g7f2f3b8c6d1d2e8g8f1c4c8d7h2h4a8c8\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3g7g6c1e3f8g7f2f3e8g8d1d2b8c6f1c4c8d7c4b3a8c8\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3g7g6c1e3f8g7f2f3e8g8d1d2b8c6f1c4c8d7c4b3a8c8\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3g7g6c1e3f8g7f2f3e8g8d1d2b8c6f1c4c8d7e1c1c6e5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3g7g6c1e3f8g7f2f3e8g8d1d2b8c6f1c4c8d7h2h4h7h5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3g7g6c1e3f8g7f2f3e8g8d1d2b8c6g2g4c8e6e1c1c6d4\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3g7g6c1e3f8g7f2f3e8g8d1d2f8e8g2g4b8c6h2h4f6d7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3g7g6f1e2f8g7c1e3e8g8e1g1b8c6d1d2d6d5e4d5f6d5\r
+e2e4c7c5g1f3d7d6d2d4g8f6b1c3c5d4f3d4a7a6c1g5e7e6f2f4d8b6d1d3b6b2a1b1b2a3f4f5b8c6\r
+e2e4c7c5g1f3d7d6d2d4g8f6b1c3c5d4f3d4a7a6f1c4e7e6a2a4f8e7e1g1e8g8c1e3b7b6f2f4d8c7\r
+e2e4c7c5g1f3d7d6d2d4g8f6b1c3c5d4f3d4e7e6f1e2a7a6a2a4b7b6e1g1c8b7e2d3b8d7d1e2f8e7\r
+e2e4c7c5g1f3d7d6f1b5b8c6d2d4c5d4d1d4c8g4d4d3a8c8c2c4g7g6b1c3f8g7e1g1g4f3d3f3g8f6\r
+e2e4c7c5g1f3d7d6f1b5b8c6e1g1c8d7f1e1g8f6c2c3a7a6b5f1d7g4d2d3g7g6b1d2f8g7h2h3g4d7\r
+e2e4c7c5g1f3d7d6f1b5b8c6e1g1c8d7f1e1g8f6c2c3a7a6b5f1d7g4d2d3g7g6b1d2f8g7h2h3g4f3\r
+e2e4c7c5g1f3d7d6f1b5b8c6e1g1c8g4h2h3g4h5c2c3d8b6b1a3a7a6b5a4b6c7d2d4b7b5a3b5a6b5\r
+e2e4c7c5g1f3d7d6f1b5b8d7c2c3g8f6d1e2e7e6d2d4c5d4c3d4f8e7e1g1e8g8c1d2a7a6b5d3e6e5\r
+e2e4c7c5g1f3d7d6f1b5b8d7c2c3g8f6d2d3g7g6e1g1f8g7f1e1a7a6b5a4b7b5a4c2e8g8a2a4c8b7\r
+e2e4c7c5g1f3d7d6f1b5c8d7b5d7b8d7e1g1g8f6d1e2e7e6b2b3f8e7c1b2e8g8c2c4a7a6d2d4c5d4\r
+e2e4c7c5g1f3d7d6f1b5c8d7b5d7b8d7e1g1g8f6d1e2e7e6b2b3f8e7c1b2e8g8d2d4c5d4f3d4d7c5\r
+e2e4c7c5g1f3d7d6f1b5c8d7b5d7b8d7e1g1g8f6d1e2e7e6b2b3g7g6d2d4c5d4f3d4f8g7c1a3d8b6\r
+e2e4c7c5g1f3d7d6f1b5c8d7b5d7d8d7c2c4b8c6b1c3g8f6e1g1g7g6d2d4c5d4f3d4f8g7d4c2e8g8\r
+e2e4c7c5g1f3d7d6f1b5c8d7b5d7d8d7c2c4e7e5b1c3b8c6d2d3g7g6a2a3f8g7a1b1g8e7b2b4b7b6\r
+e2e4c7c5g1f3d7d6f1b5c8d7b5d7d8d7c2c4g8f6b1c3b8c6e1g1g7g6d2d4c5d4f3d4f8g7d4e2e8g8\r
+e2e4c7c5g1f3d7d6f1b5c8d7b5d7d8d7c2c4g8f6b1c3b8c6e1g1g7g6d2d4c5d4f3d4f8g7d4e2e8g8\r
+e2e4c7c5g1f3d7d6f1b5c8d7b5d7d8d7e1g1b8c6c2c3g8f6d2d4f6e4d4d5c6e5f1e1e5f3d1f3e4f6\r
+e2e4c7c5g1f3d7d6f1b5c8d7b5d7d8d7e1g1b8c6c2c4c6e5d2d3g7g6f3e5d6e5c1e3e7e6b1c3f8d6\r
+e2e4c7c5g1f3d7d6f1b5c8d7b5d7d8d7e1g1b8c6f1e1g8f6d2d4c5d4c1g5d6d5g5f6g7f6e4d5d7d5\r
+e2e4c7c5g1f3d7d6f1b5c8d7b5d7d8d7e1g1g8f6f1e1b8c6c2c3e7e6d2d4c5d4c3d4d6d5e4e5f6e4\r
+e2e4c7c5g1f3d7d6f1b5c8d7b5d7d8d7e1g1g8f6f1e1b8c6d2d4c5d4c1g5f6g4f3d4h7h6g5h4g7g5\r
+e2e4c7c5g1f3d7d6f1c4g8f6d2d3e7e6c4b3b8c6c2c3g7g6e1g1f8g7f1e1e8g8d3d4c5d4c3d4e6e5\r
+e2e4c7c5g1f3d7d6g2g3b8c6f1g2g8f6b1c3g7g6e1g1f8g7d2d3e8g8c1g5h7h6g5d2e7e5a2a3c8e6\r
+e2e4c7c5g1f3d7d6g2g3e7e5f1g2g7g6e1g1f8g7c2c3b8c6d2d3g8e7a2a3e8g8b2b4c5b4a3b4b7b5\r
+e2e4c7c5g1f3e7e6b1c3a7a6d2d4c5d4f3d4d8c7f1d3b8c6c1e3g8f6e1g1b7b5d4c6c7c6a2a3f8c5\r
+e2e4c7c5g1f3e7e6b1c3d7d6d2d4c5d4d1d4b8c6f1b5c8d7d4d3a7a6b5c6d7c6c1f4e6e5f4e3g8f6\r
+e2e4c7c5g1f3e7e6b2b3b8c6c1b2d7d6g2g3g8f6d2d3f8e7f1g2e8g8e1g1f6d7f1e1e7f6c2c3b7b6\r
+e2e4c7c5g1f3e7e6c2c3g8f6e4e5f6d5d2d4c5d4c3d4f8e7a2a3b7b6f1d3c8a6e1g1e8g8f1e1a6d3\r
+e2e4c7c5g1f3e7e6c2c3g8f6e4e5f6d5d2d4c5d4d1d4b8c6d4e4f7f5e5f6d5f6e4h4d8c7f1e2b7b6\r
+e2e4c7c5g1f3e7e6d2d3d7d5b1d2b8c6g2g3g7g6f1g2f8g7e1g1g8e7f1e1e8g8c2c3b7b6d2f1c8b7\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4a7a6b1c3b7b5f1d3c8b7e1g1d8c7f1e1f8c5c1e3g8f6d4b5a6b5\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4a7a6b1c3b8c6c1e3g8f6f1d3d7d5e4d5e6d5e1g1f8d6d4c6b7c6\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4a7a6b1c3d8c7a2a3b8c6c1e3g8f6f1e2b7b5f2f4c8b7e2f3d7d6\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4a7a6b1c3d8c7f1d3b8c6c1e3g8f6e1g1b7b5d4b3f8e7f2f4d7d6\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4a7a6b1c3d8c7f2f4b7b5a2a3c8b7d1f3g8f6f1d3f8c5d4b3c5e7\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4a7a6c2c4g8f6b1c3f8b4d1f3d8c7d4c2b4d6f1e2b8c6f3e3b7b6\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4a7a6c2c4g8f6b1c3f8b4f1d3b8c6d4e2d8c7e1g1c6e5f2f4e5c4\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4a7a6c2c4g8f6f1d3b8c6d4c6d7c6e1g1e6e5d1c2f8c5b1d2c8e6\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4a7a6f1d3b8c6d4c6b7c6e1g1d7d5b1d2g8f6b2b3f8b4c1b2a6a5\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4a7a6f1d3b8c6d4c6b7c6e1g1d7d5b1d2g8f6d1e2f8e7b2b3e8g8\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4a7a6f1d3b8c6d4c6b7c6e1g1d7d5b1d2g8f6d1e2f8e7f1e1e8g8\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4a7a6f1d3b8c6d4c6b7c6e1g1d7d5c2c4g8f6c4d5c6d5e4d5e6d5\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4a7a6f1d3b8c6d4c6d7c6e1g1e6e5b1d2d8c7a2a4g8f6d1f3f8c5\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4a7a6f1d3f8c5c1e3d7d6b1c3g8e7e1g1b8d7d1e2b7b5a2a4d8b6\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4a7a6f1d3f8c5d4b3c5a7d1e2b8c6c1e3d7d6b1c3g8e7e1g1e6e5\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4a7a6f1d3f8c5d4b3c5a7e1g1b8c6d1g4g8f6g4g7h8g8g7h6c6e5\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4a7a6f1d3g8f6e1g1d7d6c2c4f8e7b1c3e8g8c1e3b8d7f2f4d7c5\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4a7a6f1d3g8f6e1g1d8c7b1d2f8c5d2b3c5e7f2f4d7d6d1f3e8g8\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4a7a6f1d3g8f6e1g1d8c7d1e2d7d6c2c4g7g6b1c3f8g7f1d1e8g8\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4a7a6f1d3g8f6e1g1d8c7f2f4f8c5c2c3b8c6g1h1d7d6d4b3c5a7\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4b8c6b1c3a7a6d4c6b7c6f1d3d7d5e1g1g8f6f1e1f8e7e4e5f6d7\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4b8c6b1c3a7a6f1e2d7d6c1e3f8e7f2f4g8f6d1d2c6d4d2d4b7b5\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4b8c6b1c3a7a6f1e2d7d6e1g1g8f6c1e3f8e7f2f4e8g8a2a4d8c7\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4b8c6b1c3a7a6g2g3d7d6f1g2c8d7e1g1g8f6b2b3f8e7c3e2a8c8\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4b8c6b1c3a7a6g2g3d7d6f1g2c8d7e1g1g8f6f1e1f8e7d4c6d7c6\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4b8c6b1c3d7d6c1e3g8f6f1e2f8e7f2f4e8g8d1d2a7a6e1c1d6d5\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4b8c6b1c3d7d6c1e3g8f6f2f4f8e7d1e2e6e5d4f3a7a6e1c1d8a5\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4b8c6b1c3d7d6c1e3g8f6f2f4f8e7f1e2e8g8e1g1c8d7d4b3a7a6\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4b8c6b1c3d7d6f1e2g8f6c1e3c8d7f2f4f8e7d4b3a7a6a2a4c6a5\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4b8c6b1c3d7d6f1e2g8f6c1e3c8d7f2f4f8e7d4b5d8b8g2g4a7a6\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4b8c6b1c3d7d6f1e2g8f6c1e3c8d7f2f4f8e7d4b5d8b8g2g4a7a6\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4b8c6b1c3d7d6f1e2g8f6c1e3f8e7e1g1c8d7d4b3a7a6f2f4b7b5\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4b8c6b1c3d7d6f1e2g8f6c1e3f8e7f2f4c8d7e1g1e8g8g1h1a7a6\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4b8c6b1c3d7d6f1e2g8f6c1e3f8e7f2f4e8g8e1g1c8d7d4b3a7a6\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4b8c6b1c3d7d6g2g3g8f6f1g2c8d7e1g1c6d4d1d4d8c7c3d1f8e7\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4b8c6b1c3d7d6g2g4h7h6h2h4a7a6f1g2f8e7c1e3c6d4d1d4e6e5\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4b8c6b1c3d8c7c1e3a7a6f1d3g8f6e1g1c6e5h2h3f8c5d1d2d7d6\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4b8c6b1c3d8c7c1e3a7a6f1d3g8f6e1g1c6e5h2h3f8c5g1h1d7d6\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4b8c6b1c3d8c7c1e3a7a6f1e2g8f6a2a3f8d6d1d2c6d4e3d4d6f4\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4b8c6b1c3d8c7c1e3g8f6f1d3c6d4e3d4f8c5d4c5c7c5d1e2d7d6\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4b8c6b1c3d8c7f1e2a7a6e1g1g8f6c1e3f8b4c3a4b4e7d4c6b7c6\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4b8c6b1c3d8c7f1e2a7a6e1g1g8f6g1h1f8b4c1g5b4c3g5f6g7f6\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4b8c6b1c3d8c7f1e2b7b6c1e3c8b7d1d2c6d4e3d4a7a6a1d1g8f6\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4b8c6b1c3d8c7g2g3d7d6f1g2c6d4d1d4g8f6c1g5f8e7e1c1c8d7\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4b8c6d4b5d7d6c1f4e6e5f4e3g8f6e3g5c8e6b1c3a7a6g5f6g7f6\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4b8c6d4b5d7d6c2c4g8f6b1c3a7a6b5a3d6d5c4d5e6d5e4d5c6b4\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4b8c6d4b5d7d6c2c4g8f6b1c3a7a6b5a3d6d5e4d5e6d5c4d5c6b4\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4b8c6d4b5d7d6c2c4g8f6b1c3a7a6b5a3f8e7f1e2e8g8e1g1b7b6\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4b8c6d4b5d7d6c2c4g8f6b1c3a7a6b5a3f8e7f1e2e8g8e1g1b7b6\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4b8c6d4b5d7d6c2c4g8f6b1c3a7a6b5a3f8e7f1e2e8g8e1g1b7b6\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4b8c6d4b5d7d6c2c4g8f6b1c3a7a6b5a3f8e7f1e2e8g8e1g1b7b6\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4b8c6d4b5d7d6c2c4g8f6b1c3a7a6b5a3f8e7f1e2e8g8e1g1b7b6\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4b8c6d4b5d7d6c2c4g8f6b1c3a7a6b5a3f8e7f1e2e8g8e1g1b7b6\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4b8c6d4b5d7d6c2c4g8f6b5c3f8e7f1e2e8g8e1g1b7b6c1f4c8b7\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4b8c6d4b5g8f6b1c3f8b4a2a3b4c3b5c3d7d5e4d5e6d5f1d3e8g8\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4g8f6b1c3b8c6d4b5d7d6c1f4e6e5f4g5a7a6b5a3b7b5c3d5f8e7\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4g8f6b1c3b8c6d4b5d7d6c1f4e6e5f4g5a7a6b5a3b7b5g5f6g7f6\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4g8f6b1c3b8c6d4b5d7d6c1f4e6e5f4g5a7a6b5a3b7b5g5f6g7f6\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4g8f6b1c3b8c6d4b5f8b4a2a3b4c3b5c3d7d5e4d5e6d5f1d3d5d4\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4g8f6b1c3b8c6d4b5f8b4a2a3b4c3b5c3d7d5e4d5e6d5f1d3e8g8\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4g8f6b1c3b8c6d4b5f8b4a2a3b4c3b5c3d7d5e4d5e6d5f1d3e8g8\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4g8f6b1c3d7d6f1c4f8e7c1e3e8g8f2f4d6d5c4d3d5e4c3e4f6d5\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4g8f6b1c3d7d6f1c4f8e7e1g1a7a6c4b3b7b5f2f4e8g8f4f5b5b4\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4g8f6b1c3d7d6f1e2f8e7e1g1b8c6g1h1a7a6a2a4e8g8f2f4d8c7\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4g8f6b1c3d7d6f1e2f8e7e1g1e8g8f2f4b8c6c1e3c8d7d4b3a7a5\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4g8f6b1c3d7d6f1e2f8e7e1g1e8g8f2f4b8c6c1e3d8c7d4b5c7b8\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4g8f6b1c3d7d6f2f4a7a6d1f3d8b6d4b3b8c6c1e3b6c7f1d3b7b5\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4g8f6b1c3d7d6f2f4a7a6f1e2f8e7e1g1e8g8c1e3b8c6a2a4f8e8\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4g8f6b1c3d7d6f2f4a7a6f1e2f8e7e1g1e8g8c1e3d8c7d1e1f8e8\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4g8f6b1c3d7d6f2f4b8c6c1e3e6e5d4f3f6g4d1d2g4e3d2e3e5f4\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4g8f6b1c3d7d6f2f4f8e7f1d3b8c6d4f3a7a6a2a3b7b5e1g1c8b7\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4g8f6b1c3d7d6g2g3a7a6f1g2d8c7e1g1c8d7g1h1b8c6f2f4a8c8\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4g8f6b1c3d7d6g2g4h7h6g4g5h6g5c1g5b8c6d1d2a7a6e1c1c8d7\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4g8f6b1c3d7d6g2g4h7h6g4g5h6g5c1g5b8c6d1d2a7a6e1c1c8d7\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4g8f6b1c3d7d6g2g4h7h6h1g1f8e7c1e3b8c6d1f3a7a6e1c1d8c7\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4g8f6b1c3d7d6g2g4h7h6h2h4b8c6h1g1h6h5g4h5f6h5c1g5h5f6\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4g8f6b1c3d7d6g2g4h7h6h2h4f8e7h1g1d6d5e4d5f6d5c3d5d8d5\r
+e2e4c7c5g1f3e7e6g2g3b7b6f1g2c8b7d2d3d7d6e1g1g8f6f1e1f8e7b1d2e8g8c2c3b8d7a2a3a8c8\r
+e2e4c7c5g1f3e7e6g2g3b8c6f1g2g8f6d2d3d7d5b1d2f8e7e1g1b7b5a2a4b5a4a1a4e8g8e4d5e6d5\r
+e2e4c7c5g1f3e7e6g2g3b8c6f1g2g8f6d2d3d7d5b1d2f8e7e1g1e8g8f1e1b7b5e4d5e6d5d2f1c8b7\r
+e2e4c7c5g1f3g7g6c2c4f8g7d2d4d7d6b1c3b8c6c1e3c8g4d4c5d6c5d1d8a8d8e3c5g7c3b2c3g8f6\r
+e2e4c7c5g1f3g7g6d2d4c5d4f3d4b8c6b1c3f8g7c1e3g8f6f1c4d8a5e1g1e8g8c4b3d7d6h2h3a5h5\r
+e2e4c7c5g1f3g7g6d2d4c5d4f3d4b8c6b1c3f8g7d4c6b7c6f1c4d8a5d1f3g8f6e1g1e8g8a1b1d7d6\r
+e2e4c7c5g1f3g7g6d2d4c5d4f3d4b8c6b1c3f8g7d4c6b7c6f1c4e7e6e1g1g8e7d1d6c8b7c1g5h7h6\r
+e2e4c7c5g1f3g7g6d2d4f8g7b1c3b8c6c1e3c5d4f3d4g8f6f1c4e8g8c4b3d7d6f2f3c6a5d1d2a5b3\r
+e2e4c7c5g1f3g7g6d2d4f8g7d4d5d7d6b1c3g8f6f1b5b8d7a2a4e8g8e1g1a7a6b5e2a8b8f1e1f6e8\r
+e2e4c7c5g1f3g7g6f1c4b8c6e1g1f8g7c2c3g8h6d2d4c5d4c3d4e8g8b1c3d7d6h2h3g8h8c1f4f7f6\r
+e2e4c7c6b1c3d7d5d1f3g8f6e4e5f6d7f3g3e7e6g1f3a7a6f1e2c6c5e1g1b8c6f1e1c6d4e2d1d4f5\r
+e2e4c7c6b1c3d7d5d2d4d5e4c3e4c8f5e4g3f5g6g1h3e7e6h3f4f8d6c2c3g8f6h2h4d8c7h4h5d6f4\r
+e2e4c7c6b1c3d7d5d2d4d5e4c3e4c8f5e4g3f5g6h2h4h7h6g1e2e7e5f2f4e5d4e2d4f8c5c1e3g8f6\r
+e2e4c7c6b1c3d7d5d2d4d5e4c3e4c8f5e4g3f5g6h2h4h7h6g1f3b8d7f1d3g6d3d1d3d8c7c1d2g8f6\r
+e2e4c7c6b1c3d7d5g1f3c8g4h2h3g4f3d1f3e7e6d2d3b8d7f1e2g7g6e1g1f8g7f3g3d8b6g1h1g8e7\r
+e2e4c7c6b1c3d7d5g1f3c8g4h2h3g4f3d1f3e7e6d2d4d8b6f1d3b6d4e4d5e6d5c1f4b8d7e1c1d4f6\r
+e2e4c7c6b1c3d7d5g1f3c8g4h2h3g4f3d1f3e7e6g2g3g8f6d2d3f8e7f1g2e8g8e1g1b8a6f3e2f6e8\r
+e2e4c7c6b1c3d7d5g1f3c8g4h2h3g4f3d1f3g8f6d2d3e7e6a2a3f8c5g2g4e8g8h3h4b8d7g4g5f6e8\r
+e2e4c7c6b1c3d7d5g1f3c8g4h2h3g4f3d1f3g8f6d2d3e7e6a2a3f8e7g2g4f6d7d3d4d7f8c1e3f8g6\r
+e2e4c7c6b1c3d7d5g1f3c8g4h2h3g4f3d1f3g8f6d2d3e7e6f1e2b8d7f3g3g7g6e1g1f8g7c1f4d8b6\r
+e2e4c7c6b1c3d7d5g1f3c8g4h2h3g4f3d1f3g8f6d2d3e7e6g2g3f8b4c1d2d5d4c3b1b4d2b1d2e6e5\r
+e2e4c7c6b1c3d7d5g1f3c8g4h2h3g4f3d1f3g8f6d2d3e7e6g2g3f8b4c1d2d5d4c3b1b4d2b1d2e6e5\r
+e2e4c7c6b1c3d7d5g1f3c8g4h2h3g4f3d1f3g8f6d2d3e7e6g2g3f8b4c1d2d5d4c3b1d8b6b2b3a7a5\r
+e2e4c7c6b1c3d7d5g1f3c8g4h2h3g4f3d1f3g8f6d2d3e7e6g2g3f8b4c1d2d5d4c3b1d8b6b2b3a7a5\r
+e2e4c7c6b1c3d7d5g1f3c8g4h2h3g4f3d1f3g8f6d2d3e7e6g2g3f8b4c1d2d5d4c3b1d8b6b2b3b8d7\r
+e2e4c7c6b1c3d7d5g1f3c8g4h2h3g4f3d1f3g8f6d2d4e7e6f1d3d5e4c3e4f6e4f3e4b8d7c2c3d7f6\r
+e2e4c7c6b1c3d7d5g1f3c8g4h2h3g4f3g2f3e7e6d2d4b8d7c1f4f8b4h3h4g8f6e4e5f6h5f4g5d8a5\r
+e2e4c7c6b1c3d7d5g1f3c8g4h2h3g4h5e4d5c6d5f1b5b8c6g2g4h5g6f3e5a8c8h3h4f7f6e5g6h7g6\r
+e2e4c7c6b1c3d7d5g1f3d5e4c3e4c8g4h2h3g4f3d1f3b8d7d2d4g8f6f1d3f6e4f3e4e7e6e1g1f8e7\r
+e2e4c7c6b1c3d7d5g1f3d5e4c3e4c8g4h2h3g4f3d1f3e7e6f1c4b8d7f3g3d7f6d2d3f6e4d3e4g8f6\r
+e2e4c7c6b1c3d7d5g1f3d5e4c3e4c8g4h2h3g4f3d1f3e7e6f1c4f8e7e1g1g8f6f1e1b8d7d2d3f6e4\r
+e2e4c7c6b1c3d7d5g1f3d5e4c3e4g8f6e4f6g7f6f1c4f8g7h2h3c8f5e1g1e7e6f1e1e8g8d2d4b8d7\r
+e2e4c7c6b1c3d7d5g1f3g7g6e4d5c6d5f1b5b8c6f3e5c8d7e5d7d8d7d1f3e7e6c3e2f8g7d2d4g8e7\r
+e2e4c7c6b1c3d7d5g1f3g8f6e4e5f6e4c3e2d8b6d2d4c6c5d4c5b6c5e2d4b8c6f1b5a7a6b5c6b7c6\r
+e2e4c7c6c2c4d7d5c4d5c6d5e4d5g8f6b1c3f6d5g1f3d5c3b2c3g7g6h2h4f8g7h4h5b8c6a1b1d8c7\r
+e2e4c7c6c2c4d7d5c4d5c6d5e4d5g8f6b1c3f6d5g1f3e7e6d2d4f8e7f1c4e8g8e1g1b8c6f1e1a7a6\r
+e2e4c7c6c2c4d7d5e4d5c6d5c4d5g8f6b1c3f6d5f1c4d5b6c4b3b8c6g1f3c8f5d2d4e7e6e1g1f8e7\r
+e2e4c7c6c2c4d7d5e4d5c6d5c4d5g8f6b1c3f6d5g1f3b8c6d2d4c8g4d1b3g4f3g2f3e7e6b3b7c6d4\r
+e2e4c7c6c2c4e7e5g1f3d7d6d2d4e5d4f3d4g8f6b1c3g7g6f1e2f8g7e1g1e8g8c1e3f8e8e2f3b8d7\r
+e2e4c7c6c2c4e7e6b1c3d7d5c4d5e6d5e4d5c6d5g1f3g8f6f1b5b8c6e1g1f8e7f3e5c8d7d2d4e8g8\r
+e2e4c7c6d2d3d7d5b1d2e7e5g1f3b8d7d3d4d5e4d2e4e5d4d1d4g8f6c1g5f8e7e1c1e8g8e4d6d8a5\r
+e2e4c7c6d2d3d7d5b1d2e7e5g1f3f8d6d1e2d8e7d3d4e5d4e4d5c6d5f3d4b8c6d2b3g8f6e2e7e8e7\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4b8d7e4g5d7f6g1f3e7e6d1d3f8d6f3e5g8h6c1d2a7a5a2a3d8c7\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4b8d7e4g5g8f6f1d3e7e6g1f3h7h6g5e6d8e7e1g1f7e6d3g6e8d8\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4b8d7e4g5g8f6f1d3h7h6g5e6d8b6e6f8d7f8g1f3c8g4c2c3f8d7\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4b8d7f1c4g8f6e4f6d7f6c2c3d8c7h2h3c8f5g1f3e7e6e1g1f8d6\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4b8d7f1c4g8f6e4g5e7e6d1e2d7b6c4b3h7h6g5f3a7a5c2c3c6c5\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4b8d7f1c4g8f6e4g5e7e6d1e2d7b6c4b3h7h6g5f3a7a5c2c3c6c5\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4b8d7f1c4g8f6e4g5e7e6d1e2d7b6c4b3h7h6g5f3a7a5c2c3c6c5\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4b8d7f1c4g8f6e4g5e7e6d1e2d7b6c4d3h7h6g5f3c6c5d4c5f8c5\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4b8d7g1f3g8f6e4f6d7f6c2c3c8g4f1e2e7e6h2h3g4h5f3e5h5e2\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4b8d7g1f3g8f6e4f6d7f6c2c3c8g4h2h3g4f3d1f3d8d5f1e2e7e6\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4b8d7g1f3g8f6e4f6d7f6c2c3c8g4h2h3g4f3d1f3e7e6f1c4f8e7\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4b8d7g1f3g8f6e4f6d7f6f1c4c8f5e1g1e7e6h2h3f8e7c2c3e8g8\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4b8d7g1f3g8f6e4f6d7f6f3e5c8e6f1e2g7g6e1g1f8g7c2c4e8g8\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4b8d7g1f3g8f6e4g3e7e6f1d3c6c5e1g1c5d4f3d4f8c5d4b3c5e7\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4c8f5e4g3f5g6f1c4e7e6g1e2f8d6h2h4h7h6e2f4d6f4c1f4g8f6\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4c8f5e4g3f5g6f1c4e7e6g1e2g8f6e2f4f8d6e1g1f6d5g3h5e8g8\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4c8f5e4g3f5g6f1c4e7e6g1e2g8f6e2f4f8d6f4g6h7g6c1g5b8d7\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4c8f5e4g3f5g6g1e2b8d7h2h4h7h6e2f4g6h7f1c4e7e5d1e2d8e7\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4c8f5e4g3f5g6g1e2e7e6h2h4h7h6e2f4g6h7f1c4g8f6d1e2f8d6\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4c8f5e4g3f5g6g1e2g8f6h2h4h7h6e2f4g6h7f1c4e7e6e1g1f8d6\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4c8f5e4g3f5g6g1f3b8d7f1d3e7e6e1g1g8f6c2c4f8d6b2b3e8g8\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4c8f5e4g3f5g6g1f3b8d7f1d3e7e6e1g1g8f6c2c4f8d6b2b3e8g8\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4c8f5e4g3f5g6g1f3b8d7f1d3g8f6e1g1e7e6f1e1f8e7c2c4e8g8\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4c8f5e4g3f5g6g1f3b8d7h2h4h7h6h4h5g6h7f1d3h7d3d1d3e7e6\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4c8f5e4g3f5g6g1f3e7e6h2h4h7h6f1d3g6d3d1d3g8f6c1e3f8d6\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4c8f5e4g3f5g6h2h4h7h6g1f3b8d7f1d3g6d3d1d3d8c7c1d2e7e6\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4c8f5e4g3f5g6h2h4h7h6g1f3b8d7h4h5g6h7f1d3h7d3d1d3d8c7\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4c8f5e4g3f5g6h2h4h7h6g1f3b8d7h4h5g6h7f1d3h7d3d1d3d8c7\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4c8f5e4g3f5g6h2h4h7h6g1f3b8d7h4h5g6h7f1d3h7d3d1d3d8c7\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4c8f5e4g3f5g6h2h4h7h6g1f3b8d7h4h5g6h7f1d3h7d3d1d3e7e6\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4c8f5e4g3f5g6h2h4h7h6g1f3b8d7h4h5g6h7f1d3h7d3d1d3e7e6\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4c8f5e4g3f5g6h2h4h7h6g1f3b8d7h4h5g6h7f1d3h7d3d1d3g8f6\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4c8f5e4g3f5g6h2h4h7h6h4h5g6h7g1f3b8d7f1d3h7d3d1d3g8f6\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4e7e6g1f3b8d7f1d3g8f6c2c3c6c5c1g5c5d4f3d4d8b6e4f6g7f6\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4g8f6e4f6e7f6f1c4f8d6d1e2d8e7e2e7e8e7g1e2c8e6c4e6f7e6\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4g8f6e4f6g7f6c2c3c8f5g1e2b8d7e2g3f5g6h2h4h7h6h4h5g6h7\r
+e2e4c7c6d2d4d7d5b1d2d5e4d2e4b8d7e4g5d7f6f1c4e7e6g1e2f8d6e1g1h7h6g5f3d8c7e2g3g8e7\r
+e2e4c7c6d2d4d7d5b1d2d5e4d2e4b8d7e4g5g8f6f1d3e7e6g1f3f8d6d1e2h7h6g5e4f6e4e2e4d7f6\r
+e2e4c7c6d2d4d7d5b1d2d5e4d2e4b8d7e4g5g8f6f1d3e7e6g1f3f8d6d1e2h7h6g5e4f6e4e2e4d7f6\r
+e2e4c7c6d2d4d7d5b1d2d5e4d2e4b8d7e4g5g8f6f1d3e7e6g1f3f8d6d1e2h7h6g5e4f6e4e2e4d7f6\r
+e2e4c7c6d2d4d7d5b1d2d5e4d2e4b8d7e4g5g8f6f1d3e7e6g1f3f8e7d1e2h7h6g5e4f6e4e2e4c6c5\r
+e2e4c7c6d2d4d7d5b1d2d5e4d2e4b8d7e4g5g8f6f1d3g7g6g1f3f8g7e1g1e8g8f1e1h7h6g5e4f6e4\r
+e2e4c7c6d2d4d7d5b1d2d5e4d2e4b8d7f1c4g8f6e4f6d7f6g1f3c8f5d1e2e7e6c1g5f8e7e1c1f5g4\r
+e2e4c7c6d2d4d7d5b1d2d5e4d2e4b8d7f1c4g8f6e4g5e7e6d1e2d7b6c4b3h7h6g5f3a7a5a2a3g7g6\r
+e2e4c7c6d2d4d7d5b1d2d5e4d2e4b8d7f1c4g8f6e4g5e7e6d1e2d7b6c4d3h7h6g5f3c6c5d4c5f8c5\r
+e2e4c7c6d2d4d7d5b1d2d5e4d2e4b8d7f1c4g8f6e4g5e7e6d1e2d7b6c4d3h7h6g5f3c6c5d4c5f8c5\r
+e2e4c7c6d2d4d7d5b1d2d5e4d2e4b8d7f1c4g8f6e4g5e7e6d1e2d7b6c4d3h7h6g5f3c6c5d4c5f8c5\r
+e2e4c7c6d2d4d7d5b1d2d5e4d2e4b8d7f1c4g8f6e4g5e7e6d1e2d7b6c4d3h7h6g5f3c6c5d4c5f8c5\r
+e2e4c7c6d2d4d7d5b1d2d5e4d2e4b8d7f1c4g8f6e4g5e7e6d1e2d7b6c4d3h7h6g5f3c6c5d4c5f8c5\r
+e2e4c7c6d2d4d7d5b1d2d5e4d2e4b8d7g1f3g8f6e4f6d7f6f3e5c8e6f1e2g7g6e1g1f8g7c2c4e8g8\r
+e2e4c7c6d2d4d7d5b1d2d5e4d2e4b8d7g1f3g8f6e4f6d7f6f3e5c8e6f1e2g7g6e1g1f8g7c2c4e8g8\r
+e2e4c7c6d2d4d7d5b1d2d5e4d2e4b8d7g1f3g8f6e4f6d7f6f3e5f6d7c1e3d7e5d4e5c8f5d1d8a8d8\r
+e2e4c7c6d2d4d7d5b1d2d5e4d2e4b8d7g1f3g8f6e4f6d7f6f3e5f6d7e5d3g7g6c1e3f8g7d1d2d7b6\r
+e2e4c7c6d2d4d7d5b1d2d5e4d2e4b8d7g1f3g8f6e4f6d7f6g2g3c8g4f1g2e7e5d4e5d8d1e1d1e8c8\r
+e2e4c7c6d2d4d7d5b1d2d5e4d2e4b8d7g1f3g8f6e4g3e7e6f1d3f8e7e1g1e8g8b2b3c6c5c1b2b7b6\r
+e2e4c7c6d2d4d7d5b1d2d5e4d2e4b8d7g1f3g8f6e4g3e7e6f1d3f8e7e1g1e8g8d1e2c6c5f1d1d8c7\r
+e2e4c7c6d2d4d7d5b1d2d5e4d2e4c8f5e4c5b7b6c5b3e7e6g1f3b8d7g2g3g8f6f1g2a8c8e1g1f8d6\r
+e2e4c7c6d2d4d7d5b1d2d5e4d2e4c8f5e4c5b7b6c5b3e7e6g1f3f8d6g2g3g8e7f1g2h7h6d1e2b8d7\r
+e2e4c7c6d2d4d7d5b1d2d5e4d2e4c8f5e4c5b7b6c5b3g8f6g1f3e7e6g2g3b8d7f1g2d8c7e1g1a8d8\r
+e2e4c7c6d2d4d7d5b1d2d5e4d2e4c8f5e4g3f5g6h2h4h7h6g1f3b8d7h4h5g6h7f1d3h7d3d1d3e7e6\r
+e2e4c7c6d2d4d7d5b1d2d5e4d2e4c8f5e4g3f5g6h2h4h7h6g1f3b8d7h4h5g6h7f1d3h7d3d1d3e7e6\r
+e2e4c7c6d2d4d7d5b1d2d5e4d2e4c8f5e4g3f5g6h2h4h7h6h4h5g6h7g1f3b8d7f1d3h7d3d1d3g8f6\r
+e2e4c7c6d2d4d7d5b1d2d5e4d2e4g8f6e4f6e7f6f1c4b8d7g1e2f8d6e1g1e8g8c1f4d7b6c4d3c8e6\r
+e2e4c7c6d2d4d7d5b1d2d5e4d2e4g8f6e4f6g7f6g1f3c8f5g2g3e7e6f1g2f8g7e1g1e8g8f3h4f5g6\r
+e2e4c7c6d2d4d7d5e4d5c6d5c2c4e7e6b1c3g8f6g1f3f8e7c4d5f6d5f1d3b8c6e1g1e8g8f1e1e7f6\r
+e2e4c7c6d2d4d7d5e4d5c6d5c2c4g8f6b1c3b8c6c4d5f6d5g1f3c8g4d1b3g4f3g2f3e7e6b3b7c6d4\r
+e2e4c7c6d2d4d7d5e4d5c6d5c2c4g8f6b1c3e7e6c1g5f8e7g1f3e8g8f1d3d5c4d3c4a7a6a2a4b8c6\r
+e2e4c7c6d2d4d7d5e4d5c6d5c2c4g8f6b1c3e7e6g1f3f8b4c4d5f6d5c1d2b8c6f1d3b4e7e1g1e8g8\r
+e2e4c7c6d2d4d7d5e4d5c6d5c2c4g8f6b1c3e7e6g1f3f8b4c4d5f6d5c1d2b8c6f1d3b4e7e1g1e8g8\r
+e2e4c7c6d2d4d7d5e4d5c6d5c2c4g8f6b1c3e7e6g1f3f8b4c4d5f6d5d1c2b8c6f1d3b4e7a2a3d5f6\r
+e2e4c7c6d2d4d7d5e4d5c6d5c2c4g8f6b1c3e7e6g1f3f8e7c4d5f6d5f1c4d5c3b2c3e8g8e1g1b8d7\r
+e2e4c7c6d2d4d7d5e4d5c6d5c2c4g8f6b1c3e7e6g1f3f8e7c4d5f6d5f1c4d5f6e1g1e8g8d1e2b8c6\r
+e2e4c7c6d2d4d7d5e4d5c6d5c2c4g8f6b1c3e7e6g1f3f8e7c4d5f6d5f1d3b8c6e1g1e8g8f1e1d5f6\r
+e2e4c7c6d2d4d7d5e4d5c6d5c2c4g8f6b1c3e7e6g1f3f8e7c4d5f6d5f1d3b8c6e1g1e8g8f1e1e7f6\r
+e2e4c7c6d2d4d7d5e4d5c6d5c2c4g8f6b1c3e7e6g1f3f8e7c4d5f6d5f1d3b8c6e1g1e8g8f1e1e7f6\r
+e2e4c7c6d2d4d7d5e4d5c6d5c2c4g8f6b1c3e7e6g1f3f8e7c4d5f6d5f1d3b8c6e1g1e8g8f1e1e7f6\r
+e2e4c7c6d2d4d7d5e4d5c6d5c2c4g8f6b1c3e7e6g1f3f8e7c4d5f6d5f1d3e8g8e1g1b8c6f1e1e7f6\r
+e2e4c7c6d2d4d7d5e4d5c6d5c2c4g8f6b1c3g7g6d1b3f8g7c4d5e8g8g2g3b8a6f1g2d8b6b3b6a7b6\r
+e2e4c7c6d2d4d7d5e4d5c6d5f1d3b8c6c2c3g8f6c1f4c8g4d1b3d8d7b1d2e7e6g1f3g4f3d2f3f8d6\r
+e2e4c7c6d2d4d7d5e4e5c6c5d4c5b8c6c1f4e7e6b1d2f8c5d2b3c5b6d1g4e8f8g1f3f7f5g4g3g8e7\r
+e2e4c7c6d2d4d7d5e4e5c6c5d4c5e7e6b1c3b8c6c1f4g8e7g1f3e7g6f4e3g6e5f3e5c6e5d1h5e5c6\r
+e2e4c7c6d2d4d7d5e4e5c6c5d4c5e7e6c1e3g8h6c2c3h6f5e3d4c8d7g1f3b8c6d1d2f7f6b2b4a7a5\r
+e2e4c7c6d2d4d7d5e4e5c6c5d4c5e7e6c1e3g8h6c2c3h6f5e3d4f5d4c3d4b7b6b2b4a7a5f1b5c8d7\r
+e2e4c7c6d2d4d7d5e4e5c6c5d4c5e7e6d1g4b8c6g1f3d8c7f1b5c8d7b5c6c7c6c1e3g8h6e3h6g7h6\r
+e2e4c7c6d2d4d7d5e4e5c6c5d4c5e7e6d1g4b8d7g1f3g8e7c1g5h7h6g5e7d8e7b1c3e7c5e1c1a7a6\r
+e2e4c7c6d2d4d7d5e4e5c6c5d4c5e7e6g1f3f8c5f1d3b8c6e1g1g8e7c1f4d8b6b1c3a7a6c3a4b6a7\r
+e2e4c7c6d2d4d7d5e4e5c6c5d4c5e7e6g1f3f8c5f1d3b8c6e1g1g8e7c1f4e7g6f4g3e8g8c2c4d5c4\r
+e2e4c7c6d2d4d7d5e4e5c8f5b1c3d8b6g2g4f5d7f1g2e7e6g1e2c6c5e1g1c5d4e2d4b8c6d4b3c6e5\r
+e2e4c7c6d2d4d7d5e4e5c8f5b1c3e7e6g2g4f5g6g1e2c6c5h2h4h7h5e2f4b8c6f4g6f7g6c3e2g8e7\r
+e2e4c7c6d2d4d7d5e4e5c8f5b1c3e7e6g2g4f5g6g1e2c6c5h2h4h7h6c1e3d8b6d1d2b8c6e1c1h6h5\r
+e2e4c7c6d2d4d7d5e4e5c8f5f1d3f5d3d1d3e7e6g1f3d8a5b1d2a5a6c2c4g8e7e1g1b8d7b2b3e7f5\r
+e2e4c7c6d2d4d7d5e4e5c8f5f1e2e7e6g1f3c6c5c2c3b8d7e1g1g8e7d4c5e7c6f3d4f5b1a1b1f8c5\r
+e2e4c7c6d2d4d7d5e4e5c8f5g1f3e7e6a2a3b8d7b1d2h7h6f1e2g8e7d2f1f5g6c2c3c6c5f1g3e7c6\r
+e2e4c7c6d2d4d7d5e4e5c8f5g1f3e7e6a2a3b8d7c2c4d5c4f1c4d7b6c4b3g8e7e1g1e7d5f1e1f8e7\r
+e2e4c7c6d2d4d7d5e4e5c8f5g1f3e7e6c2c3c6c5a2a3c5d4c3d4g8e7c1e3e7c6f1d3f5d3d1d3f8e7\r
+e2e4c7c6d2d4d7d5e4e5c8f5g1f3e7e6c2c3g8e7f3h4f5b1a1b1c6c5a2a3b8c6f1e2e7g6h4g6h7g6\r
+e2e4c7c6d2d4d7d5e4e5c8f5g1f3e7e6f1e2b8d7e1g1g8e7c2c3h7h6b1a3a7a6a3c2f5h7c2e1c6c5\r
+e2e4c7c6d2d4d7d5e4e5c8f5g1f3e7e6f1e2b8d7e1g1g8e7f3h4f5g6b1d2c6c5c2c3c5d4c3d4e7f5\r
+e2e4c7c6d2d4d7d5e4e5c8f5g1f3e7e6f1e2b8d7e1g1h7h6b2b3g8e7c2c4e7g6b1a3g6f4c1f4f8a3\r
+e2e4c7c6d2d4d7d5e4e5c8f5g1f3e7e6f1e2c6c5c1e3c5d4f3d4g8e7c2c4b8c6d1a4d5c4b1a3d8a5\r
+e2e4c7c6d2d4d7d5e4e5c8f5g1f3e7e6f1e2c6c5c1e3c5d4f3d4g8e7e1g1b8c6e2b5a7a6b5c6b7c6\r
+e2e4c7c6d2d4d7d5e4e5c8f5g1f3e7e6f1e2c6c5c1e3c5d4f3d4g8e7e3g5d8a5b1c3f5g6e1g1a7a6\r
+e2e4c7c6d2d4d7d5e4e5c8f5g1f3e7e6f1e2c6c5e1g1b8c6c2c3c5d4c3d4g8e7a2a3f5e4b1d2e7f5\r
+e2e4c7c6d2d4d7d5e4e5c8f5g1f3e7e6f1e2c6c5e1g1b8c6c2c3f5g4b1d2c5d4c3d4g8e7a2a3e7f5\r
+e2e4c7c6d2d4d7d5e4e5c8f5h2h4c6c5d4c5d8c7b1c3b8c6g1f3a8d8c3b5c7c8f3d4f5g4f2f3g4d7\r
+e2e4c7c6d2d4d7d5e4e5c8f5h2h4h7h5g1e2e7e6e2g3g7g6g3f5g6f5c2c4c6c5c4d5d8d5b1c3d5d4\r
+e2e4c7c6d2d4d7d5e4e5c8f5h2h4h7h6g1e2e7e6e2g3g8e7b1c3b8d7c1e3f5h7f1d3h7d3c2d3h6h5\r
+e2e4c7c6d2d4d7d5e4e5c8f5h2h4h7h6g2g4f5d7c2c3c6c5f1g2e7e6g1e2d7b5b1a3b5e2d1e2c5d4\r
+e2e4c7c6d2d4d7d5e4e5c8f5h2h4h7h6g2g4f5d7h4h5c6c5c2c3b8c6f1h3e7e6c1e3d8b6d1b3c5d4\r
+e2e4c7c6d2d4d7d5f2f3e7e6b1c3g8f6c1g5h7h6g5h4d8b6a2a3c6c5g1e2b8c6d4c5f8c5c3a4b6a5\r
+e2e4c7c6d2d4d7d6g1f3g8f6b1c3c8g4h2h3g4h5f1d3e7e6d1e2d6d5c1g5f8e7e4e5f6d7g5e7d8e7\r
+e2e4d7d5e4d5d8d5b1c3d5a5d2d4g8f6g1f3c7c6f3e5c8e6f1d3b8d7f2f4g7g6e1g1f8g7g1h1e6f5\r
+e2e4d7d5e4d5g8f6d2d4f6d5g1f3c8g4f1e2b8c6c2c4d5b6d4d5g4f3g2f3c6e5f3f4e5d7b1c3c7c6\r
+e2e4d7d5e4d5g8f6f1b5c8d7b5c4d7g4f2f3g4c8b1c3b8d7d2d4d7b6c4b3b6d5c3d5f6d5c2c4d5f6\r
+e2e4d7d5e4d5g8f6f1b5c8d7b5c4d7g4f2f3g4f5g2g4f5c8b1c3a7a6a2a4c7c6d5c6b8c6d2d3e7e5\r
+e2e4d7d5e4d5g8f6f1b5c8d7b5c4d7g4f2f3g4f5g2g4f5c8b1c3a7a6g4g5b7b5c4b3f6d7d2d4d7b6\r
+e2e4d7d5e4d5g8f6f1b5c8d7b5c4d7g4f2f3g4f5g2g4f5c8b1c3c7c6d5c6b8c6d2d3e7e5g4g5f6h5\r
+e2e4d7d6d2d4g7g6b1c3f8g7f1e2c7c6f2f4d8b6e4e5g8h6\r
+e2e4d7d6d2d4g7g6b1c3f8g7f2f4g8f6g1f3e8g8f1e2c7c5d4c5d8a5e1g1a5c5g1h1b8c6e2d3c8g4\r
+e2e4d7d6d2d4g7g6b1c3f8g7g1f3g8f6f1e2e8g8e1g1c7c6a2a4a7a5h2h3b8a6c1e3a6b4d1d2d8c7\r
+e2e4d7d6d2d4g7g6b1c3g8f6f2f4f8g7g1f3c7c5d4c5d8a5f1d3a5c5d1e2e8g8c1e3c5a5e1g1c8g4\r
+e2e4d7d6d2d4g7g6f1e2f8g7b1c3c7c6c1e3b7b5a2a3g8f6d1d2e8g8e3h6e7e5h6g7g8g7a1d1d8e7\r
+e2e4d7d6d2d4g7g6g1f3f8g7b1c3c7c6a2a4g8f6f1e2a7a5e1g1e8g8c1e3b8a6f3d2a6b4a1c1d6d5\r
+e2e4d7d6d2d4g7g6g1f3g8f6b1c3f8g7f1e2e8g8e1g1c7c6a2a4a7a5h2h3b8a6c1f4a6c7f1e1c7e6\r
+e2e4d7d6d2d4g8f6b1c3b8d7f2f4e7e5g1f3e5d4d1d4f8e7c1e3d7c5e1c1c5e6d4d2e8g8h2h3b7b6\r
+e2e4d7d6d2d4g8f6b1c3g7g6c1e3c7c6d1d2b8d7h2h3d8c7g2g3b7b5f1g2b5b4c3d1a8b8g1e2f8g7\r
+e2e4d7d6d2d4g8f6b1c3g7g6c1e3f8g7d1d2c7c6f2f3d8a5g2g4b7b5g1e2h7h5g4g5f6d7f1g2b5b4\r
+e2e4d7d6d2d4g8f6b1c3g7g6c1e3f8g7d1d2c7c6f2f3d8a5g2g4h7h5g4g5f6h7f3f4e8g8g1f3e7e5\r
+e2e4d7d6d2d4g8f6b1c3g7g6c1e3f8g7d1d2f6g4e3g5h7h6g5h4g4f6f2f4b7b6e1c1c8b7e4e5d6e5\r
+e2e4d7d6d2d4g8f6b1c3g7g6f2f4f8g7g1f3e8g8f1e2c7c5d4c5d8a5e1g1a5c5g1h1b8c6f3d2a7a5\r
+e2e4d7d6d2d4g8f6b1c3g7g6g1f3f8g7f1c4b8c6d4d5c6b8h2h3c7c6c4b3e8g8e1g1b7b6c1g5c8b7\r
+e2e4d7d6d2d4g8f6b1c3g7g6g1f3f8g7f1e2c7c6a2a4a7a5e1g1e8g8h2h3b8a6f1e1d8c7c1g5h7h6\r
+e2e4d7d6d2d4g8f6b1c3g7g6g1f3f8g7f1e2c7c6e1g1e8g8a2a4b8d7a4a5d8c7h2h3f8d8c1e3d7f8\r
+e2e4d7d6d2d4g8f6b1c3g7g6g1f3f8g7f1e2c8g4e1g1e8g8h2h3g4f3e2f3b8c6c3e2e7e5c2c3f8e8\r
+e2e4d7d6d2d4g8f6b1c3g7g6g1f3f8g7f1e2e8g8e1g1c7c5d4d5b8a6c1f4a6c7a2a4b7b6f1e1c8b7\r
+e2e4d7d6d2d4g8f6b1c3g7g6g1f3f8g7f1e2e8g8e1g1c7c6h2h3b8d7c1f4d8a5d1d2e7e5f4e3f8e8\r
+e2e4d7d6d2d4g8f6b1c3g7g6g1f3f8g7f1e2e8g8e1g1c8g4c1e3b8c6d1d3e7e5d4d5c6b4d3d2a7a5\r
+e2e4d7d6d2d4g8f6b1c3g7g6g1f3f8g7h2h3e8g8c1e3b7b6f1c4e7e6e1g1c8b7d4d5e6d5e4d5a7a6\r
+e2e4d7d6d2d4g8f6b1c3g7g6g1f3f8g7h2h3e8g8c1e3c7c6a2a4b8d7a4a5d8c7f1e2e7e5d4e5d7e5\r
+e2e4d7d6d2d4g8f6b1c3g7g6g1f3f8g7h2h3e8g8c1e3c7c6d1d2b7b5f1d3b8d7e3h6e7e5h6g7g8g7\r
+e2e4d7d6d2d4g8f6b1c3g7g6g2g3f8g7f1g2e8g8g1e2b8d7e1g1c7c5h2h3a7a6c1e3d8c7d1d2c5d4\r
+e2e4e7e5b1c3b8c6f1c4g8f6d2d3c6a5c4b3a5b3a2b3d7d5e4d5f8b4g1f3f6d5c1d2d5c3b2c3b4d6\r
+e2e4e7e5b1c3b8c6f1c4g8f6d2d3c6a5g1e2a5c4d3c4f8e7e1g1d7d6b2b3e8g8e2g3c7c6c1b2d8a5\r
+e2e4e7e5b1c3b8c6f2f4e5f4d2d4d7d5e4d5d8h4e1e2h4e7e2f2e7h4g2g3f4g3f2g2c6d4h2g3h4g4\r
+e2e4e7e5b1c3b8c6f2f4e5f4d2d4d8h4e1e2g8f6g1f3h4g4d4d5c6e5h2h3g4h5c1f4e5f3g2f3d7d6\r
+e2e4e7e5b1c3g8f6f1c4f6e4d1h5e4d6c4b3f8e7g1f3b8c6f3e5c6e5h5e5e8g8c3d5f8e8e1g1e7f8\r
+e2e4e7e5b1c3g8f6f1c4f8c5d2d3d7d6f2f4c8e6c4e6f7e6g1f3e5f4c1f4e8g8c3a4c5b4c2c3b4a5\r
+e2e4e7e5b1c3g8f6f1c4f8c5f2f4d7d6g1f3c7c6d2d3b7b5c4b3d8e7d1e2b8d7h1f1c5b4f4e5d6e5\r
+e2e4e7e5b1c3g8f6f2f4d7d5f4e5f6e4g1f3f8e7d1e2e4c3d2c3c7c5c1f4b8c6e1c1c8e6h2h4h7h6\r
+e2e4e7e5b1c3g8f6g1f3b8c6f1b5c6d4b5a4f8c5f3e5e8g8e5d3c5b6e4e5f6e8c3d5c7c6d5e3d7d6\r
+e2e4e7e5b1c3g8f6g1f3b8c6f1b5f8b4e1g1e8g8d2d3d7d6c1g5b4c3b2c3h7h6g5h4c8d7a1b1a7a6\r
+e2e4e7e5b1c3g8f6g2g3d7d5e4d5f6d5f1g2d5c3b2c3f8d6g1e2e8g8e1g1b8d7d2d3d7f6c3c4c7c6\r
+e2e4e7e5b1c3g8f6g2g3d7d5e4d5f6d5f1g2d5c3b2c3f8d6g1f3e8g8e1g1b8d7f1e1a8b8d2d4e5d4\r
+e2e4e7e5b1c3g8f6g2g3d7d5e4d5f6d5f1g2d5c3b2c3f8d6g1f3e8g8e1g1c7c5d2d3b8c6f3d2d8d7\r
+e2e4e7e5b1c3g8f6g2g3f8b4g1e2c7c6f1g2e8g8e1g1d7d5e4d5c6d5d2d4e5d4d1d4b8c6d4d3b4c3\r
+e2e4e7e5d2d4e5d4d1d4b8c6d4e3g8f6c1d2f8e7b1c3d7d5e4d5f6d5e3g3d5c3d2c3e7f6c3f6d8f6\r
+e2e4e7e5f1c4g8f6b1c3b8c6f2f4f8c5f4e5c6e5c4b3c5g1h1g1f6g4d2d4d8h4e1d2e5c6d1f3g4f6\r
+e2e4e7e5f1c4g8f6d2d3b8c6g1f3f8c5c2c3d7d6e1g1e8g8b1d2a7a6c4b3c8e6f1e1e6b3d2b3c5a7\r
+e2e4e7e5f1c4g8f6d2d3c7c6g1f3f8e7c4b3d7d6b1d2b8a6c2c3e8g8e1g1c8e6b3c2f6d7d3d4a6c7\r
+e2e4e7e5f1c4g8f6d2d3f8c5b1c3c7c6c1g5h7h6g5h4b7b5c4b3d7d6d1e2b8d7c3d1d7f8f2f3f8g6\r
+e2e4e7e5f1c4g8f6d2d4b8c6g1f3d8e7e1g1d7d6b1c3c8g4d4e5c6e5c4e2e8c8c1g5e5f3e2f3g4f3\r
+e2e4e7e5f1c4g8f6d2d4b8c6g1f3f6e4d4e5d8e7d1d5e4c5e1g1h7h6b1c3c6b4d5d1c7c6a2a3b4a6\r
+e2e4e7e5f1c4g8f6d2d4e5d4g1f3f8c5e4e5d7d5e5f6d5c4d1e2c8e6f6g7h8g8c1g5c5e7g5e7e8e7\r
+e2e4e7e5f2f4e5f4g1f3g8e7d2d4d7d5b1c3d5e4c3e4e7g6h2h4d8e7e1f2c8g4h4h5g6h4c1f4b8c6\r
+e2e4e7e5f2f4e5f4g1f3g8f6e4e5f6h5f1e2g7g6d2d4f8g7e1g1d7d6b1c3e8g8f3e1d6e5e2h5g6h5\r
+e2e4e7e5f2f4f8c5g1f3d7d6c2c3c8g4d2d4g4f3g2f3d8h4e1e2c5b6b1a3f7f5a3c4f5e4f4e5d6e5\r
+e2e4e7e5g1f3b8c6b1c3g7g6d2d4e5d4f3d4f8g7c1e3g8f6f1e2e8g8e1g1f8e8d4c6b7c6e2f3c8b7\r
+e2e4e7e5g1f3b8c6b1c3g8f6d2d4e5d4f3d4f8b4d4c6b7c6f1d3d7d5e4d5c6d5e1g1e8g8c1g5c7c6\r
+e2e4e7e5g1f3b8c6b1c3g8f6d2d4e5d4f3d4f8b4d4c6b7c6f1d3d7d5e4d5c6d5e1g1e8g8c1g5c7c6\r
+e2e4e7e5g1f3b8c6b1c3g8f6f1b5c6d4b5a4f8c5e1g1e8g8d2d3c7c6f3d4c5d4c3e2d4b6c1g5h7h6\r
+e2e4e7e5g1f3b8c6b1c3g8f6f1b5d7d6d2d4c8d7e1g1f8e7f1e1e5d4f3d4e8g8b5c6b7c6c1g5h7h6\r
+e2e4e7e5g1f3b8c6b1c3g8f6f1b5d7d6d2d4c8d7e1g1f8e7f1e1e5d4f3d4e8g8d4e2a7a6b5d3f6g4\r
+e2e4e7e5g1f3b8c6b1c3g8f6f1b5d7d6d2d4c8d7e1g1f8e7f1e1e5d4f3d4e8g8d4e2c6e5e2g3d7b5\r
+e2e4e7e5g1f3b8c6b1c3g8f6f1b5f8b4e1g1e8g8c3d5f6d5e4d5e5e4d5c6e4f3d1f3d7c6b5d3b4d6\r
+e2e4e7e5g1f3b8c6b1c3g8f6f1b5f8b4e1g1e8g8d2d3b4c3b2c3d7d6b5c6b7c6c1g5h7h6g5f6d8f6\r
+e2e4e7e5g1f3b8c6b1c3g8f6f1b5f8b4e1g1e8g8d2d3b4c3b2c3d7d6c1g5d8e7f1e1c6d8d3d4d8e6\r
+e2e4e7e5g1f3b8c6b1c3g8f6f1b5f8b4e1g1e8g8d2d3d7d6c1g5b4c3b2c3c6e7b5c4e7g6f3h4g6f4\r
+e2e4e7e5g1f3b8c6b1c3g8f6f1b5f8b4e1g1e8g8d2d3d7d6c1g5b4c3b2c3c6e7b5c4e7g6f3h4g6f4\r
+e2e4e7e5g1f3b8c6b1c3g8f6g2g3d7d5e4d5f6d5f1g2d5c3b2c3f8d6e1g1e8g8a1b1a8b8d2d4h7h6\r
+e2e4e7e5g1f3b8c6b1c3g8f6g2g3f8b4f1g2d7d6d2d3c8g4h2h3g4h5e1g1h7h6c3d5f6d5e4d5c6e7\r
+e2e4e7e5g1f3b8c6c2c3g8f6d2d4f6e4d4d5c6b8f1d3e4f6f3e5d7d6d3b5b8d7e5f3f8e7e1g1e8g8\r
+e2e4e7e5g1f3b8c6d2d4e5d4f3d4d8f6c1e3f8c5c2c3g8e7f1c4c6e5c4e2f6g6e1g1e8g8b1d2d7d5\r
+e2e4e7e5g1f3b8c6d2d4e5d4f3d4d8h4d4b5h4e4c1e3e8d8b1c3e4e5c3d5g8f6b5c7f8d6f2f4e5e4\r
+e2e4e7e5g1f3b8c6d2d4e5d4f3d4f8c5c1e3d8f6c2c3g8e7f1c4e8g8e1g1c5b6c4b3d7d6g1h1c6d4\r
+e2e4e7e5g1f3b8c6d2d4e5d4f3d4f8c5d4b3c5b6b1c3g8f6c1g5d7d6d1d2h7h6g5f4c8e6e1c1f6h5\r
+e2e4e7e5g1f3b8c6d2d4e5d4f3d4f8c5d4c6d8f6d1d2d7c6b1c3c8e6c3a4a8d8f1d3c5d4c2c3b7b5\r
+e2e4e7e5g1f3b8c6d2d4e5d4f3d4f8c5d4c6d8f6d1d2d7c6b1c3c8e6c3a4a8d8f1d3c5d4e1g1a7a6\r
+e2e4e7e5g1f3b8c6d2d4e5d4f3d4f8c5d4c6d8f6d1d2d7c6b1c3c8e6c3a4a8d8f1d3c5d4e1g1f6h4\r
+e2e4e7e5g1f3b8c6d2d4e5d4f3d4f8c5d4c6d8f6d1d2d7c6b1c3c8e6c3a4a8d8f1d3c5d4e1g1g8e7\r
+e2e4e7e5g1f3b8c6d2d4e5d4f3d4f8c5d4c6d8f6d1d2d7c6b1c3c8e6c3a4c5d6d2e3g8h6h2h3e8g8\r
+e2e4e7e5g1f3b8c6d2d4e5d4f3d4f8c5d4c6d8f6d1d2d7c6f1d3c8e6e1g1f6e7d2e2g8f6c1e3c5e3\r
+e2e4e7e5g1f3b8c6d2d4e5d4f3d4f8c5d4f5d8f6b1c3g8e7f5e3e8g8f1d3c6e5d3e2e5g6g2g3d7d6\r
+e2e4e7e5g1f3b8c6d2d4e5d4f3d4g8f6b1c3f8b4d4c6b7c6f1d3d7d5e4d5c6d5e1g1e8g8c1g5c7c6\r
+e2e4e7e5g1f3b8c6d2d4e5d4f3d4g8f6d4c6b7c6e4e5d8e7d1e2f6d5b1d2d5b6c2c4c8b7b2b3e8c8\r
+e2e4e7e5g1f3b8c6d2d4e5d4f3d4g8f6d4c6b7c6e4e5d8e7d1e2f6d5c2c4c8a6b2b3e8c8g2g3d8e8\r
+e2e4e7e5g1f3b8c6d2d4e5d4f3d4g8f6d4c6b7c6e4e5d8e7d1e2f6d5c2c4c8a6b2b3g7g5c1a3d7d6\r
+e2e4e7e5g1f3b8c6d2d4e5d4f3d4g8f6d4c6b7c6e4e5d8e7d1e2f6d5c2c4d5b6b1d2c8b7b2b3e8c8\r
+e2e4e7e5g1f3b8c6d2d4e5d4f3d4g8f6d4c6b7c6e4e5d8e7d1e2f6d5c2c4d5b6b1d2e7e6b2b3a7a5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4b7b5a4b3c6a5e1g1d7d6c2c3a5b3a2b3c8b7d2d3f8e7c3c4e7f6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4b7b5a4b3g8f6e1g1f8e7f1e1d7d6c2c3e8g8h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4d7d6a4c6b7c6d2d4e5d4d1d4g8f6e1g1f8e7e4e5c6c5d4d3d6e5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4d7d6a4c6b7c6d2d4f7f6b1c3g8e7c1e3e7g6d1e2f8e7e1c1c8d7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4d7d6c2c3c8d7d2d4g7g6c1g5f7f6g5e3g8h6e1g1f8g7h2h3h6f7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4d7d6c2c3c8d7d2d4g7g6e1g1f8g7d4d5c6e7a4d7d8d7c3c4h7h6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4d7d6c2c3c8d7d2d4g7g6e1g1f8g7d4d5c6e7a4d7d8d7c3c4h7h6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4d7d6c2c3c8d7d2d4g7g6e1g1f8g7f1e1g8e7d4e5c6e5f3e5g7e5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4d7d6c2c3c8d7d2d4g8e7a4b3h7h6b1a3e7g6a3c4f8e7c4e3e8g8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4d7d6c2c3c8d7d2d4g8e7a4b3h7h6b1d2e7g6d2c4f8e7c4e3e8g8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4d7d6c2c3c8d7d2d4g8e7a4b3h7h6b1d2e7g6d2c4f8e7e1g1e8g8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4d7d6c2c3c8d7d2d4g8e7a4b3h7h6b1d2e7g6d2c4f8e7e1g1e8g8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4d7d6c2c3c8d7d2d4g8e7c1e3h7h6b1d2g7g5d4e5d6e5h2h4g5g4\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4d7d6c2c3c8d7d2d4g8e7h2h4h7h6c1e3e5d4c3d4d6d5e4e5b7b5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4d7d6c2c3f7f5e4f5c8f5d2d4e5e4f3g5d6d5f2f3e4e3f3f4f8d6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4d7d6c2c3f7f5e4f5c8f5e1g1f5d3f1e1f8e7a4c2d3c2d1c2g8f6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4d7d6c2c3g8f6e1g1c8d7d2d4f8e7d4d5c6b8a4c2d7g4c3c4b8d7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4d7d6c2c3g8f6e1g1f8e7d2d4c8d7b1d2e8g8f1e1f8e8a2a3e7f8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4d7d6d2d4c8d7a4b3f8e7d4e5d6e5d1d5d7e6d5d8a8d8b3e6f7e6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4d7d6e1g1c8d7c2c4g8f6b1c3f8e7d2d4c6d4f3d4e5d4a4d7f6d7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4f7f5d2d4e5d4e4e5f8c5e1g1g8e7a4b3d7d5e5d6d8d6f1e1h7h6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6a4c6d7c6b1c3f8d6d2d3c6c5h2h3c8e6c1e3h7h6a2a4c5c4\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6d1e2b7b5a4b3f8e7c2c3d7d5d2d3e8g8c1g5d5e4d3e4f6d7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6d1e2b7b5a4b3f8e7c2c3e8g8e1g1d7d5d2d3d5e4d3e4c8g4\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6d1e2f8e7d2d3b7b5a4b3e8g8e1g1d7d6c2c3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6d1e2f8e7e1g1b7b5a4b3d7d6a2a4c8g4c2c3e8g8h2h3c6a5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6d2d3d7d6c2c3c8d7e1g1g7g6b1d2f8g7f1e1e8g8d2f1b7b5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6d2d3d7d6c2c3f8e7b1d2c8d7e1g1e8g8f1e1f8e8d2f1h7h6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6d2d3d7d6c2c3f8e7b1d2e8g8e1g1b7b5a4c2f6h5a2a4b5b4\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6d2d3f8c5c2c3b7b5a4c2d7d5d1e2e8g8c1g5d5e4d3e4h7h6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6d2d4e5d4e1g1f8e7f1e1e8g8e4e5f6e8c2c3d4c3b1c3d7d6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1b7b5a4b3c8b7d2d3f8c5a2a4e8g8c1g5h7h6g5h4g7g5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1b7b5a4b3c8b7d2d3f8d6c2c3e8g8f1e1c6a5b3c2f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1b7b5a4b3c8b7f1e1f8c5c2c3d7d6d2d4c5b6c1e3e8g8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1b7b5a4b3c8b7f1e1f8c5c2c3d7d6d2d4c5b6c1e3e8g8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1b7b5a4b3f8c5a2a4a8b8c2c3d7d6d2d4c5b6b1a3e8g8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1b7b5a4b3f8c5a2a4c8b7d2d3d7d6b1c3b5b4c3d5c6a5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1b7b5a4b3f8c5a2a4c8b7d2d3e8g8b1c3c6a5f3e5a5b3\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1b7b5a4b3f8c5d2d3d7d6a2a4a8b8a4b5a6b5c1e3e8g8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1b7b5a4b3f8e7d1e2e8g8c2c3d7d6f1d1c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1b7b5a4b3f8e7d2d4d7d6d4e5d6e5d1e2c8g4c2c3e8g8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1b7b5a4b3f8e7d2d4d7d6d4e5d6e5d1e2c8g4c2c3e8g8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1b7b5a4b3f8e7f1e1d7d6a2a4c8d7c2c3e8g8d2d4h7h6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1b7b5a4b3f8e7f1e1e8g8c2c3d7d5e4d5f6d5f3e5c6e5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1d7d6a4c6b7c6d2d4e5d4f3d4c6c5d4f3f8e7b1c3e8g8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1d7d6f1e1b7b5a4b3c6a5d2d4a5b3a2b3f6d7b3b4f8e7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5a2a4a8b8a4b5a6b5d4e5c8e6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5a2a4a8b8a4b5a6b5d4e5c8e6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5a2a4c6d4f3d4e5d4a4b5f8c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5a2a4c6d4f3d4e5d4d1d4c8e6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6b1d2e4c5c2c3d5d4\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6b1d2e4c5c2c3d5d4\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6b1d2e4c5c2c3d5d4\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6b1d2e4c5c2c3d5d4\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6b1d2e4c5c2c3d5d4\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6b1d2e4c5c2c3d5d4\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6b1d2e4c5c2c3d5d4\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6b1d2e4c5c2c3d5d4\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6b1d2e4c5c2c3f8e7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6b1d2e4c5c2c3f8e7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6b1d2e4c5c2c3g7g6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6c1e3f8c5d1e2d8e7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6c1e3f8e7c2c3d8d7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6c1e3f8e7c2c3d8d7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6c1e3f8e7c2c3d8d7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6c1e3f8e7c2c3d8d7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6c1e3f8e7c2c3e4c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6c1e3f8e7c2c3e4c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6c2c3e4c5b3c2e6g4\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6c2c3e4c5b3c2e6g4\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6c2c3f8c5b1d2e8g8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6c2c3f8c5b1d2e8g8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6c2c3f8c5b1d2e8g8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6c2c3f8c5b1d2e8g8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6c2c3f8c5b1d2e8g8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6c2c3f8c5b1d2e8g8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6c2c3f8c5b1d2e8g8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6c2c3f8c5b1d2e8g8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6c2c3f8c5d1d3e8g8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6c2c3f8c5d1d3e8g8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6c2c3f8c5d1d3e8g8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6c2c3f8c5d1d3e8g8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6c2c3f8e7a2a4b5b4\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6c2c3f8e7b1d2e4c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6c2c3f8e7b1d2e8g8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6c2c3f8e7b3c2e4c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6c2c3f8e7c1e3e4c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6c2c3f8e7c1e3e4c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6c2c3f8e7c1e3e8g8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6c2c3f8e7c1e3e8g8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6d1e2e4c5f1d1b5b4\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6d1e2e4c5f1d1c5b3\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6d1e2e4c5f1d1c5b3\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6d1e2f8c5c1e3d8e7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6d1e2f8e7f1d1e4c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6d1e2f8e7f1d1e4c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6d1e2f8e7f1d1e8g8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6d1e2f8e7f1d1e8g8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6d1e2f8e7f1d1e8g8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6d1e2f8e7f1d1e8g8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6d1e2f8e7f1d1e8g8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5f3e5c6e5d4e5c7c6b1d2e4d2\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5f3e5c6e5d4e5c7c6c2c3f8c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4f1e1e4c5b1c3f8e7c3d5e8g8a4c6d7c6d5e7d8e7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8c5c2c3b7b5a4b3d7d6a2a4c8g4d2d3e8g8h2h3g4f3\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7a4c6d7c6d1e2c8g4h2h3g4f3e2f3e8g8d2d3f6d7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7a4c6d7c6d1e2c8g4h2h3g4f3e2f3e8g8d2d3f6d7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7a4c6d7c6d2d3d8d6b1d2c8e6b2b3f6d7c1b2c6c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7a4c6d7c6d2d3f6d7b1c3e8g8c1e3c6c5c3d5e7d6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7a4c6d7c6d2d3f6d7b1d2e8g8d2c4f7f6f3h4d7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7a4c6d7c6d2d3f6d7b2b3e8g8c1b2f7f6b1c3d7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7a4c6d7c6f3e5f6e4d2d4e8g8c1e3f7f6e5d3c8f5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7b1c3b7b5a4b3d7d6c3d5c6a5d5e7d8e7d2d4c8b7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7b1c3d7d6a4c6b7c6d2d4f6d7d4e5d6e5c1e3e7d6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7b1c3d7d6a4c6b7c6d2d4f6d7d4e5d6e5c3a4e8g8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7d1e2b7b5a4b3e8g8c2c3d7d5d2d3d5d4b1d2e7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7d1e2b7b5a4b3e8g8c2c3d7d5d2d3d5d4c3d4c6d4\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7d1e2b7b5a4b3e8g8c2c3d7d5d2d3d5d4c3d4c6d4\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7d1e2b7b5a4b3e8g8c2c3d7d5d2d3f8e8f1d1c8b7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7d1e2b7b5a4b3e8g8c2c3d7d6d2d4c8g4f1d1e5d4\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7d2d3b7b5a4b3d7d6a2a4c8b7b1c3b5b4c3d5c6a5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7d2d3d7d6c2c3e8g8f1e1b7b5a4c2d6d5e4d5d8d5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7d2d3d7d6c2c3e8g8f1e1f6d7a4c2e7f6b1d2d7b6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7d2d4e5d4e4e5f6e4f3d4e8g8d4f5d7d5a4c6b7c6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7d2d4e5d4e4e5f6e4f3d4e8g8d4f5d7d5f5e7c6e7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3c6a5b3c2c7c5d2d4d8c7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3c6a5b3c2c7c5d2d4d8c7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3c6a5b3c2c7c5d2d4d8c7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3c8g4d2d3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8a2a4c8g4d2d3c6a5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8d2d3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8d2d3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8d2d4c8g4c1e3e5d4\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8d2d4c8g4c1e3e5d4\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8d2d4c8g4c1e3e5d4\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8d2d4c8g4d4d5c6a5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6b8d2d4b8d7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6b8d2d4b8d7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6b8d2d4b8d7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6b8d2d4b8d7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6b8d2d4b8d7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6b8d2d4b8d7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6b8d2d4b8d7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6b8d2d4b8d7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6b8d2d4b8d7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6b8d2d4b8d7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6b8d2d4b8d7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6b8d2d4b8d7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6b8d2d4b8d7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6b8d2d4b8d7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6b8d2d4b8d7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6b8d2d4b8d7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6b8d2d4c8b7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6b8d2d4c8b7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c8b7d2d3f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c8b7d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c8b7d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c8b7d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c8b7d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c8b7d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c8b7d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c8b7d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c8b7d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c8b7d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c8b7d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c8b7d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c8b7d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c8b7d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c8b7d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c8b7d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c8b7d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c8b7d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c8b7d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c8b7d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c8b7d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c8b7d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c8b7d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c8b7d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c8b7d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c8b7d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c8b7d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c8b7d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c8e6d2d4e6b3\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c8e6d2d4e6b3\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c8e6d2d4e6b3\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c8e6d2d4e6b3\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c8e6d2d4e6b3\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3d8d7d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3f6d7d2d4d7b6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3f6d7d2d4d7b6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3f6d7d2d4e7f6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3f6d7d2d4e7f6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3f6d7d2d4e7f6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3f6d7d2d4e7f6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3f6d7d2d4e7f6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3f6d7d2d4e7f6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3f6d7d2d4e7f6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3f6d7d2d4e7f6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3f8e8d2d4c8b7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3f8e8d2d4c8b7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3f8e8d2d4c8b7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3f8e8d2d4c8b7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3h7h6d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3h7h6d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3h7h6d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3h7h6d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3h7h6d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3h7h6d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3h7h6d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8a2a4b5b4c2c3d7d6a4a5b4c3\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8a2a4b5b4d2d3d7d6a4a5c8e6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8a2a4b5b4d2d3d7d6a4a5c8e6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8a2a4c8b7d2d3d7d6b1d2f6d7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8a2a4c8b7d2d3d7d6b1d2f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8a2a4c8b7d2d3d7d6c2c3c6b8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8a2a4c8b7d2d3f8e8b1d2e7f8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d5e4d5f6d5f3e5c6e5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d5e4d5f6d5f3e5c6e5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d5e4d5f6d5f3e5c6e5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d5e4d5f6d5f3e5c6e5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d5e4d5f6d5f3e5c6e5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d5e4d5f6d5f3e5c6e5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d5e4d5f6d5f3e5c6e5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d5e4d5f6d5f3e5c6e5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d5e4d5f6d5f3e5c6e5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d5e4d5f6d5f3e5c6e5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d5e4d5f6d5f3e5c6e5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d6d2d3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d6d2d3f6d7b1d2d7b6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d6h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d6h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d6h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d6h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d6h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d6h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d6h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d6h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d6h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d6h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d6h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d6h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d6h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d6h2h3c6b8d2d4b8d7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d6h2h3c8b7d2d4c6b8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d6h2h3c8b7d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d6h2h3c8e6d2d4e6b3\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d6h2h3d8d7d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d6h2h3f6d7d2d4d7b6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d6h2h3f6d7d2d4d7b6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d6h2h3f6d7d2d4d7b6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d6h2h3f6d7d2d4d7b6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d6h2h3f6d7d2d4e7f6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8d2d3d7d6c2c3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8d2d3d7d6c2c3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8d2d3d7d6c2c3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8d2d4d7d6c2c3c8g4c1e3e5d4\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8d2d4d7d6c2c3c8g4d4d5c6a5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8d2d4d7d6c2c3c8g4h2h3g4f3\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8h2h3c8b7d2d3d7d6c2c3c6b8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8h2h3d7d6c2c3c6b8d2d4b8d7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1d7d6a4c6b7c6d2d4e5d4f3d4c8d7c1g5e8g8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1d7d6a4c6b7c6d2d4f6d7d4e5d6e5b1d2f7f6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1d7d6c2c3c8g4d2d4f6d7c1e3f7f5e4f5g4f5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5c6b7c6f3e5d8e7d2d4f7f6e5f3e7e4d1e2e4e2e1e2a6a5c1f4c8a6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5c6d7c6b1c3c8g4h2h3g4f3d1f3g8e7d2d3c6c5f3g3e7g6c1e3f8d6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5c6d7c6b1c3f7f6d2d4e5d4d1d4d8d4f3d4c8d7c1e3e8c8e1c1g8e7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5c6d7c6b1c3f7f6d2d4e5d4d1d4f8d6c1e3g8e7f3d2c6c5d4d3b7b5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5c6d7c6d2d4e5d4d1d4c8g4b1c3d8d4f3d4e8c8c1e3f8b4d4e2g4e2\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5c6d7c6d2d4e5d4d1d4c8g4b1c3d8d4f3d4e8c8d4e2f8c5f2f3g4e6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5c6d7c6d2d4e5d4d1d4d8d4f3d4c6c5d4e2c8d7b1c3e8c8c1f4d7c6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5c6d7c6d2d4e5d4d1d4d8d4f3d4c6c5d4e2c8d7b2b3d7c6f2f3f8e7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5c6d7c6e1g1c8g4h2h3h7h5d2d3d8f6b1d2g8e7d2c4g4f3d1f3f6f3\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5c6d7c6e1g1d8d6b1a3b7b5c2c4g8f6d1e2c8g4f1d1f8e7d2d3d6e6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5c6d7c6e1g1d8d6b1a3c8e6d1e2f7f6f1d1g7g5d2d4g5g4f3e1e8c8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5c6d7c6e1g1d8d6d2d3f7f6c1e3c8g4b1d2e8c8a1b1g8e7b2b4g7g5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5c6d7c6e1g1d8d6d2d4e5d4f3d4c8d7c1e3e8c8b1d2g8h6h2h3d6g6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5c6d7c6e1g1f7f6d2d4c8g4c2c3f8d6d4e5f6e5d1b3g4f3g2f3b7b6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5c6d7c6e1g1f7f6d2d4c8g4d4e5d8d1f1d1f6e5b1d2e8c8d1e1f8d6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5c6d7c6e1g1f7f6d2d4c8g4d4e5d8d1f1d1f6e5d1d3f8d6b1d2g8f6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5c6d7c6e1g1f7f6d2d4e5d4f3d4c6c5d4b3d8d1f1d1c8g4f2f3g4e6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5c6d7c6e1g1f7f6d2d4e5d4f3d4c6c5d4e2d8d1f1d1c8d7b1c3g8e7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5c6d7c6e1g1g8e7f3e5d8d4d1h5g7g6h5g5f8g7e5d3f7f5e4e5c6c5\r
+e2e4e7e5g1f3b8c6f1b5c6d4f3d4e5d4e1g1c7c6b5c4g8f6d2d3d7d5e4d5f6d5f1e1c8e6b1d2f8b4\r
+e2e4e7e5g1f3b8c6f1b5c6d4f3d4e5d4e1g1c7c6b5c4g8f6f1e1d7d6d2d3f8e7b1d2e8g8d2f3c6c5\r
+e2e4e7e5g1f3b8c6f1b5d7d6b1c3a7a6b5c4c8e6c4e6f7e6d2d4e5d4f3d4c6d4d1d4g8e7c1g5e7c6\r
+e2e4e7e5g1f3b8c6f1b5d7d6b1c3c8d7d2d4g8e7c1g5f7f6g5e3e7g6d1d2a7a6b5a4b7b5a4b3c6a5\r
+e2e4e7e5g1f3b8c6f1b5d7d6c2c3c8d7e1g1g8e7d2d4e7g6d4d5c6b8b5d7b8d7b1a3f8e7a3c2d7c5\r
+e2e4e7e5g1f3b8c6f1b5d7d6d2d4c8d7b1c3g8e7b5c4c6d4f3d4e5d4d1d4e7c6d4e3c6e5c4b3c7c6\r
+e2e4e7e5g1f3b8c6f1b5d7d6d2d4c8d7b1c3g8e7b5c4e5d4f3d4c6d4d1d4e7c6d4e3c6e5c4b3d7e6\r
+e2e4e7e5g1f3b8c6f1b5d7d6d2d4c8d7b1c3g8e7b5c4e5d4f3d4c6d4d1d4e7c6d4e3d7e6c3d5f8e7\r
+e2e4e7e5g1f3b8c6f1b5d7d6d2d4c8d7b1c3g8e7c1e3e7g6d1d2f8e7e1c1a7a6b5e2e5d4f3d4c6d4\r
+e2e4e7e5g1f3b8c6f1b5d7d6d2d4c8d7b1c3g8e7c1g5f7f6g5e3e7c8c3e2f8e7c2c3e8g8b5d3c8b6\r
+e2e4e7e5g1f3b8c6f1b5d7d6d2d4c8d7d4e5d6e5e1g1f8d6b1c3g8e7c1g5f7f6g5e3e8g8b5c4g8h8\r
+e2e4e7e5g1f3b8c6f1b5f7f5b1c3f5e4c3e4d7d5f3e5d5e4e5c6d8g5d1e2g8f6f2f4g5f4c6e5c7c6\r
+e2e4e7e5g1f3b8c6f1b5f7f5b1c3f5e4c3e4d7d5f3e5d5e4e5c6d8g5d1e2g8f6f2f4g5h4g2g3h4h3\r
+e2e4e7e5g1f3b8c6f1b5f7f5b1c3f5e4c3e4g8f6d1e2d7d5e4f6g7f6d2d4f8g7d4e5e8g8e5e6f8e8\r
+e2e4e7e5g1f3b8c6f1b5f7f5d2d3f5e4d3e4g8f6e1g1d7d6b1c3f8e7a2a3c8g4h2h3g4f3d1f3e8g8\r
+e2e4e7e5g1f3b8c6f1b5f7f5d2d3f5e4d3e4g8f6e1g1f8c5b1c3d7d6c1e3c5b6c3d5e8g8e3g5c8e6\r
+e2e4e7e5g1f3b8c6f1b5f8b4e1g1g8e7c2c3b4a5b5c6e7c6b2b4a5b6b4b5c6a5f3e5e8g8d2d4d7d5\r
+e2e4e7e5g1f3b8c6f1b5f8c5c2c3f7f5d2d4f5e4d4c5e4f3d1f3g8f6c1g5e8g8e1g1d8e7b5c4g8h8\r
+e2e4e7e5g1f3b8c6f1b5f8c5c2c3g8e7d2d4e5d4c3d4c5b4c1d2b4d2d1d2a7a6b5a4d7d5e4d5d8d5\r
+e2e4e7e5g1f3b8c6f1b5f8c5c2c3g8e7d2d4e5d4c3d4c5b4c1d2b4d2d1d2d7d5e4d5e7d5b5c6b7c6\r
+e2e4e7e5g1f3b8c6f1b5f8c5c2c3g8e7e1g1e7g6d2d4e5d4c3d4c5b6b1c3e8g8a2a4a7a6b5c4h7h6\r
+e2e4e7e5g1f3b8c6f1b5f8c5c2c3g8f6d2d4e5d4e4e5f6e4c3d4c5b4b1d2e8g8e1g1d7d5d1a4b4d2\r
+e2e4e7e5g1f3b8c6f1b5f8c5e1g1c6d4f3d4c5d4c2c3d4b6d2d4c7c6b5c4d7d6d1b3d8c7d4e5d6e5\r
+e2e4e7e5g1f3b8c6f1b5g7g6c2c3a7a6b5a4d7d6d2d4c8d7c1g5f7f6g5e3g8h6e1g1f8g7h2h3h6f7\r
+e2e4e7e5g1f3b8c6f1b5g7g6c2c3a7a6b5a4d7d6d2d4c8d7c1g5f7f6g5e3g8h6h2h3f8g7b1d2d8e7\r
+e2e4e7e5g1f3b8c6f1b5g7g6c2c3a7a6b5a4d7d6d2d4c8d7c1g5f7f6g5e3g8h6h2h3f8g7b1d2h6f7\r
+e2e4e7e5g1f3b8c6f1b5g7g6c2c3a7a6b5c4d7d6d2d4f8g7c1g5d8d7d4e5d6e5d1e2g8f6b1a3e8g8\r
+e2e4e7e5g1f3b8c6f1b5g8f6b1c3f8b4e1g1d7d6c3d5b4c5d2d4e5d4f3d4c5d4d1d4e8g8d5f6d8f6\r
+e2e4e7e5g1f3b8c6f1b5g8f6b1c3f8b4e1g1e8g8d2d3b4c3b2c3d7d6c1g5d8e7f1e1c6d8d3d4d8e6\r
+e2e4e7e5g1f3b8c6f1b5g8f6b1c3f8b4e1g1e8g8d2d3d7d6c1g5c8e6d3d4e5d4f3d4h7h6g5h4c6e5\r
+e2e4e7e5g1f3b8c6f1b5g8f6d1e2a7a6b5a4f8e7e1g1b7b5a4b3e8g8a2a4b5b4d2d3d7d6b1d2c8g4\r
+e2e4e7e5g1f3b8c6f1b5g8f6d1e2f8c5c2c3e8g8e1g1f8e8d2d3h7h6h2h3d7d6c1e3c8d7e3c5d6c5\r
+e2e4e7e5g1f3b8c6f1b5g8f6d2d3d7d6c2c3c8d7b5a4g7g6b1d2f8g7d2c4e8g8c4e3c6e7a4b3c7c6\r
+e2e4e7e5g1f3b8c6f1b5g8f6d2d3d7d6c2c3g7g6b1d2f8g7d2f1e8g8b5a4d6d5d1e2d8d6a4c2b7b6\r
+e2e4e7e5g1f3b8c6f1b5g8f6d2d3d7d6c2c3g7g6b1d2f8g7d2f1e8g8b5a4f6d7f1e3d7c5a4c2c5e6\r
+e2e4e7e5g1f3b8c6f1b5g8f6d2d3d7d6c2c3g7g6b1d2f8g7d2f1e8g8f1e3d6d5d1c2a7a6b5a4d5e4\r
+e2e4e7e5g1f3b8c6f1b5g8f6d2d3d7d6c2c3g7g6d3d4c8d7b1d2f8g7d4e5c6e5f3e5d6e5d1e2e8g8\r
+e2e4e7e5g1f3b8c6f1b5g8f6d2d3d7d6c2c3g7g6d3d4c8d7b1d2f8g7d4e5c6e5f3e5d6e5d1e2e8g8\r
+e2e4e7e5g1f3b8c6f1b5g8f6d2d4e5d4e1g1f8e7e4e5f6e4f3d4e8g8d4f5d7d5b5c6b7c6f5e7d8e7\r
+e2e4e7e5g1f3b8c6f1b5g8f6e1g1d7d6d2d4c8d7b1c3e5d4f3d4f8e7b2b3c6d4d1d4d7b5c3b5f6d7\r
+e2e4e7e5g1f3b8c6f1b5g8f6e1g1d7d6d2d4c8d7b1c3f8e7b5c6d7c6d1d3e5d4f3d4c6d7c1g5e8g8\r
+e2e4e7e5g1f3b8c6f1b5g8f6e1g1d7d6d2d4c8d7b1c3f8e7b5c6d7c6d1d3e5d4f3d4e8g8c1f4f6d7\r
+e2e4e7e5g1f3b8c6f1b5g8f6e1g1d7d6d2d4c8d7b1c3f8e7c1g5e8g8d4e5c6e5b5d7f6d7g5e7e5f3\r
+e2e4e7e5g1f3b8c6f1b5g8f6e1g1d7d6d2d4c8d7b1c3f8e7f1e1e5d4f3d4c6d4d1d4d7b5c3b5e8g8\r
+e2e4e7e5g1f3b8c6f1b5g8f6e1g1d7d6d2d4c8d7b1c3f8e7f1e1e5d4f3d4e8g8b5c6b7c6c1g5f8e8\r
+e2e4e7e5g1f3b8c6f1b5g8f6e1g1d7d6d2d4c8d7b1c3f8e7f1e1e5d4f3d4e8g8b5f1f8e8f2f3e7f8\r
+e2e4e7e5g1f3b8c6f1b5g8f6e1g1d7d6d2d4c8d7b1c3f8e7f1e1e5d4f3d4e8g8d4c6d7c6b5c6b7c6\r
+e2e4e7e5g1f3b8c6f1b5g8f6e1g1d7d6d2d4c8d7f1e1e5d4f3d4f8e7b1c3e8g8b5c6b7c6c1g5f8e8\r
+e2e4e7e5g1f3b8c6f1b5g8f6e1g1d7d6f1e1f8e7d2d4e5d4f3d4c8d7b1c3e8g8b5c6b7c6c1g5f8e8\r
+e2e4e7e5g1f3b8c6f1b5g8f6e1g1f6e4d2d4e4d6b5c6d7c6d4e5d6f5d1d8e8d8b1c3d8e8b2b3c8e6\r
+e2e4e7e5g1f3b8c6f1b5g8f6e1g1f6e4d2d4e4d6b5c6d7c6d4e5d6f5d1d8e8d8b2b3d8e8c1b2a7a5\r
+e2e4e7e5g1f3b8c6f1b5g8f6e1g1f6e4d2d4e4d6b5c6d7c6d4e5d6f5d1d8e8d8f1d1d8e8b1c3c8e6\r
+e2e4e7e5g1f3b8c6f1b5g8f6e1g1f6e4d2d4e4d6b5c6d7c6d4e5d6f5d1d8e8d8f1d1d8e8b1c3f5e7\r
+e2e4e7e5g1f3b8c6f1b5g8f6e1g1f6e4d2d4e4d6b5c6d7c6d4e5d6f5d1d8e8d8f1d1d8e8b1c3h7h6\r
+e2e4e7e5g1f3b8c6f1b5g8f6e1g1f6e4d2d4f8e7d1e2d7d5f3e5c8d7b5c6d7c6f1e1c6d7f2f3e4d6\r
+e2e4e7e5g1f3b8c6f1b5g8f6e1g1f6e4d2d4f8e7d1e2e4d6b5c6b7c6d4e5d6b7b1c3e8g8f1e1b7c5\r
+e2e4e7e5g1f3b8c6f1b5g8f6e1g1f6e4d2d4f8e7d1e2e4d6b5c6b7c6d4e5d6b7b1c3e8g8f1e1b7c5\r
+e2e4e7e5g1f3b8c6f1b5g8f6e1g1f6e4d2d4f8e7d1e2e4d6b5c6b7c6d4e5d6b7f1e1e8g8b1c3b7c5\r
+e2e4e7e5g1f3b8c6f1b5g8f6e1g1f6e4d2d4f8e7d1e2e4d6b5c6b7c6d4e5d6b7f1e1e8g8b1c3b7c5\r
+e2e4e7e5g1f3b8c6f1b5g8f6e1g1f6e4d2d4f8e7f1e1e4d6b5c6d7c6d4e5d6f5d1d8e7d8b1c3c8e6\r
+e2e4e7e5g1f3b8c6f1b5g8f6e1g1f6e4f1e1e4d6f3e5c6e5e1e5f8e7b1c3e8g8b5d3e7f6e5e3g7g6\r
+e2e4e7e5g1f3b8c6f1b5g8f6e1g1f6e4f1e1e4d6f3e5c6e5e1e5f8e7b5f1e8g8d2d4e7f6e5e1f8e8\r
+e2e4e7e5g1f3b8c6f1b5g8f6e1g1f6e4f1e1e4d6f3e5f8e7b5c6d7c6d1e2c8e6d2d3d6f5b1d2e8g8\r
+e2e4e7e5g1f3b8c6f1b5g8f6e1g1f6e4f1e1e4d6f3e5f8e7b5d3e8g8b1c3c6e5e1e5c7c6b2b3d6e8\r
+e2e4e7e5g1f3b8c6f1b5g8f6e1g1f6e4f1e1e4d6f3e5f8e7b5d3e8g8b1c3c6e5e1e5c7c6b2b3f8e8\r
+e2e4e7e5g1f3b8c6f1b5g8f6e1g1f6e4f1e1e4d6f3e5f8e7b5d3e8g8d1h5f7f5b1c3c6e5e1e5g7g6\r
+e2e4e7e5g1f3b8c6f1b5g8f6e1g1f8c5f3e5f6e4d1e2c6e5d2d4c5e7d4e5e4c5e2g4e8g8c1h6c5e6\r
+e2e4e7e5g1f3b8c6f1b5g8f6e1g1f8e7f1e1d7d6b5c6b7c6d2d4e5d4f3d4c8d7b1c3e8g8b2b3f8e8\r
+e2e4e7e5g1f3b8c6f1b5g8f6e1g1f8e7f1e1d7d6b5c6b7c6d2d4e5d4f3d4c8d7b1c3e8g8d1d3f8e8\r
+e2e4e7e5g1f3b8c6f1b5g8f6e1g1f8e7f1e1d7d6c2c3e8g8d2d4c8d7b5a4d8e8a4c2d7g4c1e3e5d4\r
+e2e4e7e5g1f3b8c6f1b5g8f6e1g1f8e7f1e1d7d6d2d4e5d4f3d4c8d7b1c3e8g8d4f3c6e5b5d7e5f3\r
+e2e4e7e5g1f3b8c6f1c4d7d6d2d4e5d4f3d4g8f6d4c6b7c6b1c3f8e7e1g1e8g8c1f4f6d7f4g3a8b8\r
+e2e4e7e5g1f3b8c6f1c4f8c5b1c3g8f6d2d3d7d6c1e3c5e3f2e3c6a5c4b3a5b3a2b3f6g4d1e2f7f6\r
+e2e4e7e5g1f3b8c6f1c4f8c5b2b4c5b4c2c3b4a5e1g1d7d6d2d4c8d7d1b3d8f6d4e5d6e5f1d1h7h6\r
+e2e4e7e5g1f3b8c6f1c4f8c5b2b4c5b4c2c3b4a5e1g1d7d6d2d4c8d7d1b3d8f6d4e5d6e5f1d1h7h6\r
+e2e4e7e5g1f3b8c6f1c4f8c5b2b4c5b4c2c3b4a5e1g1d7d6d2d4c8g4c4b5e5d4c3d4g4d7c1b2c6e7\r
+e2e4e7e5g1f3b8c6f1c4f8c5b2b4c5b4c2c3b4a5e1g1d7d6d2d4c8g4c4b5e5d4c3d4g4d7c1b2g8f6\r
+e2e4e7e5g1f3b8c6f1c4f8c5b2b4c5b4c2c3b4a5e1g1d7d6d2d4c8g4c4b5e5d4c3d4g4d7c1b2g8f6\r
+e2e4e7e5g1f3b8c6f1c4f8c5b2b4c5b4c2c3b4a5e1g1d7d6d2d4c8g4c4b5e5d4c3d4g4d7c1b2g8f6\r
+e2e4e7e5g1f3b8c6f1c4f8c5b2b4c5b4c2c3b4a5e1g1d7d6d2d4c8g4d1a4e5d4c3d4a7a6c4d5a5b6\r
+e2e4e7e5g1f3b8c6f1c4f8c5b2b4c5b4c2c3b4a5e1g1d7d6d2d4c8g4d1a4g4f3g2f3e5d4c3d4a7a6\r
+e2e4e7e5g1f3b8c6f1c4f8c5b2b4c5b4c2c3b4a5e1g1d8f6d2d4g8e7c1g5f6d6d1b3e8g8f1d1a5b6\r
+e2e4e7e5g1f3b8c6f1c4f8c5b2b4c5b4c2c3b4a5e1g1d8f6d2d4g8e7c1g5f6d6d4d5c6d8d1a4a5b6\r
+e2e4e7e5g1f3b8c6f1c4f8c5b2b4c5b4c2c3b4a5e1g1d8f6d2d4g8e7c1g5f6d6d4d5c6d8d1a4b7b6\r
+e2e4e7e5g1f3b8c6f1c4f8c5b2b4c5b4c2c3b4a5e1g1d8f6d2d4g8e7c1g5f6d6d4d5c6d8d1a4b7b6\r
+e2e4e7e5g1f3b8c6f1c4f8c5b2b4c5b4c2c3b4a5e1g1d8f6d2d4g8e7d1a4a5b6c1g5f6d6b1a3e5d4\r
+e2e4e7e5g1f3b8c6f1c4f8c5b2b4c5b4c2c3b4a5e1g1d8f6d2d4g8e7d4d5c6d8c1g5f6d6d1a4f7f6\r
+e2e4e7e5g1f3b8c6f1c4f8c5b2b4c5b4c2c3b4a5e1g1d8f6d2d4g8e7d4d5c6d8d1a4a5b6c1g5f6d6\r
+e2e4e7e5g1f3b8c6f1c4f8c5b2b4c5b4c2c3b4a5e1g1d8f6d2d4g8e7d4d5c6d8d1a4a5b6c1g5f6d6\r
+e2e4e7e5g1f3b8c6f1c4f8c5b2b4c5b4c2c3b4a5e1g1d8f6d2d4g8e7f3g5c6d8f2f4e5d4c3d4a5b6\r
+e2e4e7e5g1f3b8c6f1c4f8c5b2b4c5b4c2c3b4a5e1g1d8f6d2d4g8h6c1g5f6d6d4d5c6d8d1a4a5b6\r
+e2e4e7e5g1f3b8c6f1c4f8c5b2b4c5b4c2c3b4a5e1g1d8f6d2d4h7h6c4b5g8e7c1a3e5d4e4e5f6e6\r
+e2e4e7e5g1f3b8c6f1c4f8c5b2b4c5b4c2c3b4a5e1g1d8f6d2d4h7h6d1a4a5b6c4b5g8e7c1a3e5d4\r
+e2e4e7e5g1f3b8c6f1c4f8c5c2c3g8f6d2d3a7a6e1g1d7d6f1e1c5a7c4b3e8g8b1d2c8e6d2f1e6b3\r
+e2e4e7e5g1f3b8c6f1c4f8c5c2c3g8f6d2d3d7d6b1d2a7a6e1g1e8g8c4b3c5a7h2h3c8e6b3c2d6d5\r
+e2e4e7e5g1f3b8c6f1c4f8c5c2c3g8f6d2d3d7d6c4b3a7a6b1d2e8g8h2h3c5a7d2f1d6d5d1e2f8e8\r
+e2e4e7e5g1f3b8c6f1c4f8c5c2c3g8f6d2d4e5d4c3d4c5b4b1c3f6e4e1g1b4c3b2c3d7d5c1a3d5c4\r
+e2e4e7e5g1f3b8c6f1c4f8c5c2c3g8f6d2d4e5d4c3d4c5b4b1c3f6e4e1g1b4c3b2c3d7d5c1a3d5c4\r
+e2e4e7e5g1f3b8c6f1c4f8c5c2c3g8f6d2d4e5d4e4e5d7d5c4b5f6e4c3d4c5b6b1c3e8g8c1e3f7f5\r
+e2e4e7e5g1f3b8c6f1c4f8c5c2c3g8f6d2d4e5d4e4e5d7d5c4b5f6e4c3d4c5e7b1c3e8g8b5d3f7f5\r
+e2e4e7e5g1f3b8c6f1c4f8c5d2d3d7d6b1c3g8f6c1g5h7h6g5f6d8f6c3d5f6g6d1e2c8g4c2c3c5b6\r
+e2e4e7e5g1f3b8c6f1c4f8c5d2d3g8f6b1c3d7d6c1e3c5b6d1d2c6a5c4b5c7c6b5a4b6e3f2e3b7b5\r
+e2e4e7e5g1f3b8c6f1c4f8c5d2d3g8f6b1c3d7d6c1g5h7h6g5f6d8f6c3d5f6d8c2c3c6e7d5e3e8g8\r
+e2e4e7e5g1f3b8c6f1c4f8c5d2d3g8f6c1e3c5e3f2e3d7d6e1g1c6a5c4b5c7c6b5a4d8b6d1d2f6g4\r
+e2e4e7e5g1f3b8c6f1c4f8c5d2d3g8f6c2c3d7d6b1d2a7a6c4b3c5a7d2c4h7h6e1g1c6e7b3c2e8g8\r
+e2e4e7e5g1f3b8c6f1c4f8c5d2d3g8f6c2c3d7d6b1d2c6e7d2f1c7c6d1e2e8g8h2h3d6d5c4b3e7g6\r
+e2e4e7e5g1f3b8c6f1c4f8c5d2d3g8f6c2c3d7d6c1e3c5e3f2e3d8e7e1g1c6d8b1d2d8e6d3d4f6g4\r
+e2e4e7e5g1f3b8c6f1c4f8c5e1g1g8f6d2d3d7d6c2c3a7a6c4b3c5a7b1d2e8g8h2h3c8e6f1e1e6b3\r
+e2e4e7e5g1f3b8c6f1c4f8e7d2d3g8f6c4b3d7d5b1d2e8g8e1g1d5e4d3e4e7c5c2c3d8e7b3c2a7a5\r
+e2e4e7e5g1f3b8c6f1c4f8e7d2d3g8f6c4b3d7d6c2c3e8g8e1g1c6a5b3c2c7c5f1e1a5c6b1d2f8e8\r
+e2e4e7e5g1f3b8c6f1c4f8e7d2d4d7d6b1c3g8f6h2h3e8g8e1g1c6d4f3d4e5d4d1d4c7c6a2a4f6d7\r
+e2e4e7e5g1f3b8c6f1c4g8f6d2d3f8e7e1g1e8g8c2c3d7d5e4d5f6d5f1e1c8g4b1d2g8h8a2a4f7f6\r
+e2e4e7e5g1f3b8c6f1c4g8f6f3g5d7d5e4d5c6a5c4b5c7c6d5c6b7c6b5e2h7h6g5h3f8c5e1g1e8g8\r
+e2e4e7e5g1f3b8c6f1c4g8f6f3g5d7d5e4d5c6a5c4b5c7c6d5c6b7c6b5e2h7h6g5h3f8c5e1g1e8g8\r
+e2e4e7e5g1f3b8c6f1c4g8f6f3g5d7d5e4d5c6a5c4b5c7c6d5c6b7c6b5f1h7h6g5h3f8c5d1e2e8g8\r
+e2e4e7e5g1f3b8c6f1c4g8f6f3g5d7d5e4d5c6a5c4b5c7c6d5c6b7c6b5f1h7h6g5h3f8c5d2d3d8b6\r
+e2e4e7e5g1f3b8c6f1c4g8f6f3g5d7d5e4d5c6d4d5d6d8d6c4f7e8e7f7b3c8g4f2f3g4h5b1c3a8e8\r
+e2e4e7e5g1f3d7d6d2d4b8d7b1c3c7c6d4e5d6e5f1c4f8e7e1g1g8f6c1e3b7b5c4d3e8g8a2a4b5b4\r
+e2e4e7e5g1f3d7d6d2d4b8d7f1c4c7c6b1c3f8e7e1g1g8f6a2a4e8g8b2b3d8c7c1b2d7b6c4d3c8g4\r
+e2e4e7e5g1f3d7d6d2d4b8d7f1c4c7c6d4e5d6e5e1g1f8e7b1c3g8f6d1e2e8g8f1d1d8c7a2a3d7c5\r
+e2e4e7e5g1f3d7d6d2d4e5d4f3d4g7g6b1c3f8g7c1f4g8f6d1d2e8g8e1c1f8e8f2f3b8c6d4c6b7c6\r
+e2e4e7e5g1f3d7d6d2d4e5d4f3d4g8f6b1c3f8e7f1e2e8g8e1g1f8e8f1e1e7f8e2f1h7h6c1f4b8d7\r
+e2e4e7e5g1f3g8f6b1c3b8c6d2d4e5d4f3d4f8b4d4c6b7c6f1d3d7d5e4d5c6d5e1g1e8g8c1g5c7c6\r
+e2e4e7e5g1f3g8f6b1c3b8c6g2g3f8c5f1g2d7d6d2d3a7a6c1e3c5e3f2e3c8g4e1g1c6e7h2h3g4f3\r
+e2e4e7e5g1f3g8f6b1c3b8c6g2g3f8c5f1g2d7d6d2d3a7a6c1e3c5e3f2e3c8g4h2h3g4f3d1f3c6e7\r
+e2e4e7e5g1f3g8f6b1c3b8c6g2g3f8c5f1g2d7d6d2d3a7a6c1e3c8g4h2h3g4f3d1f3c6d4f3d1h7h5\r
+e2e4e7e5g1f3g8f6d2d4e5d4e4e5f6e4d1d4d7d5e5d6e4d6b1c3b8c6d4f4d6f5f1b5f8d6f4e4d8e7\r
+e2e4e7e5g1f3g8f6d2d4f6e4f1d3d7d5f3e5b8c6e5c6b7c6e1g1f8d6c2c4e8g8c4c5d6e7b1c3f7f5\r
+e2e4e7e5g1f3g8f6d2d4f6e4f1d3d7d5f3e5b8c6e5c6b7c6e1g1f8e7b1c3e4c3b2c3e8g8f1e1f8e8\r
+e2e4e7e5g1f3g8f6d2d4f6e4f1d3d7d5f3e5b8c6e5c6b7c6e1g1f8e7b1d2e4d2c1d2e8g8f1e1f8e8\r
+e2e4e7e5g1f3g8f6d2d4f6e4f1d3d7d5f3e5b8d7e5d7c8d7e1g1d8h4c2c4e8c8c4c5g7g5f2f3e4f6\r
+e2e4e7e5g1f3g8f6d2d4f6e4f1d3d7d5f3e5b8d7e5d7c8d7e1g1f8d6b1c3d8h4g2g3e4c3b2c3h4g4\r
+e2e4e7e5g1f3g8f6d2d4f6e4f1d3d7d5f3e5b8d7e5d7c8d7e1g1f8d6b1c3e4c3b2c3e8g8d1h5f7f5\r
+e2e4e7e5g1f3g8f6d2d4f6e4f1d3d7d5f3e5b8d7e5d7c8d7e1g1f8e7d1f3e8g8c2c3e7d6b1d2f7f5\r
+e2e4e7e5g1f3g8f6d2d4f6e4f1d3d7d5f3e5f8d6e1g1b8c6e5c6b7c6c2c4e8g8c4c5d6e7b1c3f7f5\r
+e2e4e7e5g1f3g8f6d2d4f6e4f1d3d7d5f3e5f8d6e1g1e8g8c2c4d6e5d4e5b8c6c4d5d8d5d1c2c6b4\r
+e2e4e7e5g1f3g8f6d2d4f6e4f1d3d7d5f3e5f8d6e1g1e8g8c2c4d6e5d4e5b8c6c4d5d8d5d1c2c6b4\r
+e2e4e7e5g1f3g8f6d2d4f6e4f1d3d7d5f3e5f8e7b1d2e4d2c1d2b8c6e5c6b7c6e1g1e8g8d1h5g7g6\r
+e2e4e7e5g1f3g8f6f3e5d7d6e5f3f6e4c2c4f8e7d2d4d6d5f1d3b8c6c4d5d8d5e1g1c8g4b1c3e4c3\r
+e2e4e7e5g1f3g8f6f3e5d7d6e5f3f6e4d1e2d8e7d2d3e4f6c1g5e7e2f1e2f8e7b1c3c7c6e1c1b8a6\r
+e2e4e7e5g1f3g8f6f3e5d7d6e5f3f6e4d1e2d8e7d2d3e4f6c1g5e7e2f1e2f8e7b1c3c7c6e1c1b8a6\r
+e2e4e7e5g1f3g8f6f3e5d7d6e5f3f6e4d1e2d8e7d2d3e4f6c1g5e7e2f1e2f8e7b1c3c7c6e1c1b8a6\r
+e2e4e7e5g1f3g8f6f3e5d7d6e5f3f6e4d2d4d6d5f1d3b8c6e1g1c8g4c2c4e4f6b1c3g4f3d1f3c6d4\r
+e2e4e7e5g1f3g8f6f3e5d7d6e5f3f6e4d2d4d6d5f1d3b8c6e1g1c8g4c2c4e4f6b1c3g4f3d1f3c6d4\r
+e2e4e7e5g1f3g8f6f3e5d7d6e5f3f6e4d2d4d6d5f1d3b8c6e1g1c8g4c2c4e4f6c4d5g4f3d1f3d8d5\r
+e2e4e7e5g1f3g8f6f3e5d7d6e5f3f6e4d2d4d6d5f1d3b8c6e1g1c8g4c2c4f8e7c4d5d8d5b1c3e4c3\r
+e2e4e7e5g1f3g8f6f3e5d7d6e5f3f6e4d2d4d6d5f1d3b8c6e1g1c8g4f1e1f8e7c2c4e4f6c4d5g4f3\r
+e2e4e7e5g1f3g8f6f3e5d7d6e5f3f6e4d2d4d6d5f1d3b8c6e1g1f8e7c2c4c6b4d3e2c8e6b1c3e8g8\r
+e2e4e7e5g1f3g8f6f3e5d7d6e5f3f6e4d2d4d6d5f1d3b8c6e1g1f8e7c2c4c6b4d3e2e8g8b1c3c8e6\r
+e2e4e7e5g1f3g8f6f3e5d7d6e5f3f6e4d2d4d6d5f1d3b8c6e1g1f8e7c2c4c6b4d3e2e8g8b1c3c8e6\r
+e2e4e7e5g1f3g8f6f3e5d7d6e5f3f6e4d2d4d6d5f1d3b8c6e1g1f8e7c2c4e4f6b1c3e8g8h2h3d5c4\r
+e2e4e7e5g1f3g8f6f3e5d7d6e5f3f6e4d2d4d6d5f1d3f8d6e1g1e8g8c2c4c7c6c4d5c6d5b1c3e4c3\r
+e2e4e7e5g1f3g8f6f3e5d7d6e5f3f6e4d2d4d6d5f1d3f8d6e1g1e8g8c2c4c7c6d1c2b8a6a2a3c8g4\r
+e2e4e7e5g1f3g8f6f3e5d7d6e5f3f6e4d2d4d6d5f1d3f8d6e1g1e8g8c2c4c7c6d1c2b8a6a2a3f7f5\r
+e2e4e7e5g1f3g8f6f3e5d7d6e5f3f6e4d2d4d6d5f1d3f8e7e1g1b8c6c2c4c6b4c4d5b4d3d1d3d8d5\r
+e2e4e7e5g1f3g8f6f3e5d7d6e5f3f6e4d2d4d6d5f1d3f8e7e1g1b8c6c2c4c6b4c4d5b4d3d1d3d8d5\r
+e2e4e7e5g1f3g8f6f3e5d7d6e5f3f6e4d2d4d6d5f1d3f8e7e1g1b8c6c2c4c6b4d3e2d5c4e2c4e8g8\r
+e2e4e7e5g1f3g8f6f3e5d7d6e5f3f6e4d2d4d6d5f1d3f8e7e1g1b8c6f1e1c8f5d3b5e7f6b1d2e8g8\r
+e2e4e7e5g1f3g8f6f3e5d7d6e5f3f6e4d2d4d6d5f1d3f8e7e1g1b8c6f1e1c8g4c2c3f7f5d1b3e8g8\r
+e2e4e7e5g1f3g8f6f3e5d7d6e5f3f6e4d2d4d6d5f1d3f8e7e1g1b8c6f1e1c8g4c2c4e4f6b1c3d5c4\r
+e2e4e7e5g1f3g8f6f3e5d7d6e5f3f6e4d2d4d6d5f1d3f8e7e1g1b8c6f1e1c8g4c2c4e4f6c4d5g4f3\r
+e2e4e7e5g1f3g8f6f3e5d7d6e5f3f6e4d2d4d6d5f1d3f8e7e1g1c8f5f1e1b8c6b1d2e4d2d1d2f5d3\r
+e2e4e7e5g1f3g8f6f3e5d7d6e5f3f6e4d2d4d6d5f1d3f8e7e1g1c8f5f1e1b8c6b1d2e4d2d1d2f5d3\r
+e2e4e7e5g1f3g8f6f3e5d7d6e5f3f6e4d2d4e4f6f1d3f8e7h2h3e8g8e1g1c7c6f1e1b8d7c1f4f8e8\r
+e2e4e7e5g1f3g8f6f3e5d7d6e5f3f6e4d2d4f8e7f1d3d6d5e1g1e8g8c2c4e4f6h2h3d5c4d3c4b8d7\r
+e2e4e7e6d1e2c7c5f2f4b8c6g1f3g8f6g2g3d7d5e4e5f6d7f1g2c6d4f3d4c5d4e1g1d7b8d2d3b8c6\r
+e2e4e7e6d1e2c7c5f2f4d7d5e4d5d8d5b1c3d5d8g1f3b8c6g2g3g8f6f1g2f8e7e1g1e8g8d2d3c8d7\r
+e2e4e7e6d2d3c7c5b1d2b8c6g2g3g7g6f1g2f8g7g1f3g8e7e1g1e8g8c2c3d7d6a2a4f7f5d1b3d6d5\r
+e2e4e7e6d2d3c7c5g2g3b8c6f1g2g7g6g1f3f8g7e1g1g8e7c2c3e6e5c1e3d7d6h2h3e8g8b1a3b7b6\r
+e2e4e7e6d2d3d7d5b1d2b8c6g1f3g8f6g2g3f8c5f1g2d5e4d3e4e6e5e1g1e8g8c2c3a7a5h2h3b7b6\r
+e2e4e7e6d2d4d7d5b1c3b8c6g1f3g8f6e4d5e6d5f1b5c8g4h2h3g4f3d1f3f8e7c1g5a7a6b5c6b7c6\r
+e2e4e7e6d2d4d7d5b1c3d5e4c3e4b8d7f1d3f8e7g1f3g8f6e4f6d7f6e1g1e8g8f3e5c7c5d4c5d8d5\r
+e2e4e7e6d2d4d7d5b1c3d5e4c3e4b8d7f1d3g8f6e4f6d7f6g1f3c7c5d4c5f8c5e1g1e8g8c1g5c5e7\r
+e2e4e7e6d2d4d7d5b1c3d5e4c3e4b8d7g1f3f8e7f1d3g8f6e1g1e8g8d1e2b7b6c1f4c8b7a1d1d8c8\r
+e2e4e7e6d2d4d7d5b1c3d5e4c3e4b8d7g1f3g8f6e4f6d7f6c1g5f8e7f1d3c7c5d4c5d8a5c2c3a5c5\r
+e2e4e7e6d2d4d7d5b1c3d5e4c3e4b8d7g1f3g8f6e4g3c7c5f1e2c5d4f3d4f8c5d4b3c5e7e1g1e8g8\r
+e2e4e7e6d2d4d7d5b1c3d5e4c3e4b8d7g1f3g8f6f1d3b7b6e4f6d7f6f3e5a7a6e1g1c8b7c2c3f8e7\r
+e2e4e7e6d2d4d7d5b1c3d5e4c3e4g8f6e4f6d8f6g1f3c8d7c1g5f6g6f1d3f7f5h2h4b8c6d1e2h7h6\r
+e2e4e7e6d2d4d7d5b1c3f8b4a2a3b4c3b2c3d5e4d1g4g8f6g4g7h8g8g7h6c7c5g1e2b8c6d4c5g8g6\r
+e2e4e7e6d2d4d7d5b1c3f8b4a2a3b4c3b2c3d5e4d1g4g8f6g4g7h8g8g7h6c7c5g1e2b8d7e2g3g8g6\r
+e2e4e7e6d2d4d7d5b1c3f8b4a2a3b4c3b2c3d5e4d1g4g8f6g4g7h8g8g7h6c7c5g1e2g8g6h6d2b8d7\r
+e2e4e7e6d2d4d7d5b1c3f8b4a2a3b4c3b2c3d5e4d1g4g8f6g4g7h8g8g7h6c7c5g1e2g8g6h6e3b8c6\r
+e2e4e7e6d2d4d7d5b1c3f8b4a2a3b4c3b2c3d5e4d1g4g8f6g4g7h8g8g7h6c7c5g1e2g8g6h6e3b8c6\r
+e2e4e7e6d2d4d7d5b1c3f8b4a2a3b4c3b2c3d5e4d1g4g8f6g4g7h8g8g7h6g8g6h6d2b8c6g1e2b7b6\r
+e2e4e7e6d2d4d7d5b1c3f8b4c1d2c7c5a2a3b4c3d2c3g8f6d4c5f6e4c3g7h8g8g7d4b8c6g1f3f7f6\r
+e2e4e7e6d2d4d7d5b1c3f8b4c1d2d5e4d1g4d8d4e1c1g8f6g4g7h8g8g7h6b4f8h6h4g8g4h4h3d4f2\r
+e2e4e7e6d2d4d7d5b1c3f8b4c1d2d5e4d1g4g8f6g4g7h8g8g7h6b8c6e1c1g8g6h6h4b4c3d2c3d8d5\r
+e2e4e7e6d2d4d7d5b1c3f8b4d1g4g8f6g4g7h8g8g7h6g8g6h6e3f6e4f1d3f7f5g1e2c7c5d3e4f5e4\r
+e2e4e7e6d2d4d7d5b1c3f8b4e4d5e6d5f1d3b8c6g1e2g8e7e1g1c8f5d3f5e7f5d1d3d8d7c3d1e8g8\r
+e2e4e7e6d2d4d7d5b1c3f8b4e4e5b7b6d1g4b4f8g1f3c8a6c3b5d8d7a2a4g8e7f1e2e7f5c1f4h7h5\r
+e2e4e7e6d2d4d7d5b1c3f8b4e4e5c7c5a2a3b4a5b2b4c5d4c3b5a5c7f2f4c8d7g1f3d7b5f1b5b8c6\r
+e2e4e7e6d2d4d7d5b1c3f8b4e4e5c7c5a2a3b4a5b2b4c5d4c3b5a5c7f2f4g8e7g1f3b8c6f1d3c7b8\r
+e2e4e7e6d2d4d7d5b1c3f8b4e4e5c7c5a2a3b4a5b2b4c5d4c3b5a5c7f2f4g8e7g1f3c8d7b5d4b8c6\r
+e2e4e7e6d2d4d7d5b1c3f8b4e4e5c7c5a2a3b4a5b2b4c5d4d1g4g8e7b4a5d4c3g4g7h8g8g7h7b8c6\r
+e2e4e7e6d2d4d7d5b1c3f8b4e4e5c7c5a2a3b4a5b2b4c5d4d1g4g8e7b4a5d4c3g4g7h8g8g7h7b8d7\r
+e2e4e7e6d2d4d7d5b1c3f8b4e4e5c7c5a2a3b4a5c1d2b8c6c3b5c6d4b5d4a5d2d1d2c5d4d2d4g8e7\r
+e2e4e7e6d2d4d7d5b1c3f8b4e4e5c7c5a2a3b4a5c1d2b8c6c3b5c6d4d2a5d8a5b2b4a5b6b5d4c5d4\r
+e2e4e7e6d2d4d7d5b1c3f8b4e4e5c7c5a2a3b4a5c1d2c5d4c3b5b8c6g1f3f7f6b5d4c6d4f3d4a5d2\r
+e2e4e7e6d2d4d7d5b1c3f8b4e4e5c7c5a2a3b4c3b2c3d8a5c1d2a5a4d1g4e8f8g4d1g8e7g1f3b7b6\r
+e2e4e7e6d2d4d7d5b1c3f8b4e4e5c7c5a2a3b4c3b2c3d8a5c1d2a5a4d1g4g7g6g4d1c5d4a1b1d4d3\r
+e2e4e7e6d2d4d7d5b1c3f8b4e4e5c7c5a2a3b4c3b2c3d8c7d1g4f7f5g4g3g8e7g3g7h8g8g7h7c5d4\r
+e2e4e7e6d2d4d7d5b1c3f8b4e4e5c7c5a2a3b4c3b2c3d8c7d1g4f7f5g4g3g8e7g3g7h8g8g7h7c5d4\r
+e2e4e7e6d2d4d7d5b1c3f8b4e4e5c7c5a2a3b4c3b2c3d8c7d1g4f7f5g4g3g8e7g3g7h8g8g7h7c5d4\r
+e2e4e7e6d2d4d7d5b1c3f8b4e4e5c7c5a2a3b4c3b2c3d8c7d1g4f7f6g1f3b8c6g4g3c7f7d4c5g8e7\r
+e2e4e7e6d2d4d7d5b1c3f8b4e4e5c7c5a2a3b4c3b2c3g8e7a3a4b8c6g1f3c8d7f1e2a8c8e1g1e8g8\r
+e2e4e7e6d2d4d7d5b1c3f8b4e4e5c7c5a2a3b4c3b2c3g8e7a3a4b8c6g1f3d8a5d1d2c8d7c1a3c5d4\r
+e2e4e7e6d2d4d7d5b1c3f8b4e4e5c7c5a2a3b4c3b2c3g8e7a3a4b8c6g1f3d8a5d1d2c8d7f1e2a8c8\r
+e2e4e7e6d2d4d7d5b1c3f8b4e4e5c7c5a2a3b4c3b2c3g8e7a3a4c8d7g1f3d8a5c1d2b8c6f1e2f7f6\r
+e2e4e7e6d2d4d7d5b1c3f8b4e4e5c7c5a2a3b4c3b2c3g8e7d1g4c5d4c3d4d8c7e1d1e8g8g1f3f7f6\r
+e2e4e7e6d2d4d7d5b1c3f8b4e4e5c7c5a2a3b4c3b2c3g8e7d1g4c5d4g4g7h8g8g7h7d8c7g1e2b8c6\r
+e2e4e7e6d2d4d7d5b1c3f8b4e4e5c7c5a2a3b4c3b2c3g8e7d1g4d8c7g4g7h8g8g7h7c5d4g1e2b8c6\r
+e2e4e7e6d2d4d7d5b1c3f8b4e4e5c7c5a2a3b4c3b2c3g8e7g1f3b7b6a3a4c8a6f1a6b8a6e1g1a6b8\r
+e2e4e7e6d2d4d7d5b1c3f8b4e4e5c7c5a2a3b4c3b2c3g8e7g1f3b7b6a3a4c8a6f1a6b8a6e1g1a6b8\r
+e2e4e7e6d2d4d7d5b1c3f8b4e4e5c7c5a2a3b4c3b2c3g8e7g1f3b7b6a3a4c8a6f1a6b8a6e1g1a6b8\r
+e2e4e7e6d2d4d7d5b1c3f8b4e4e5c7c5a2a3b4c3b2c3g8e7g1f3b7b6f1b5c8d7b5d3d7a4h2h4h7h6\r
+e2e4e7e6d2d4d7d5b1c3f8b4e4e5c7c5a2a3b4c3b2c3g8e7g1f3c8d7d4c5d7a4a1b1b8d7c1e3d8a5\r
+e2e4e7e6d2d4d7d5b1c3f8b4e4e5c7c5a2a3b4c3b2c3g8e7g1f3c8d7d4c5d8c7f1d3d7a4a1b1b8d7\r
+e2e4e7e6d2d4d7d5b1c3f8b4e4e5c7c5a2a3b4c3b2c3g8e7g1f3c8d7d4c5d8c7f1d3d7a4c1e3b8d7\r
+e2e4e7e6d2d4d7d5b1c3f8b4e4e5c7c5a2a3b4c3b2c3g8e7g1f3c8d7d4c5d8c7f1d3d7a4e1g1b8d7\r
+e2e4e7e6d2d4d7d5b1c3f8b4e4e5c7c5a2a3b4c3b2c3g8e7h2h4d8a5c1d2c5d4c3d4a5a4c2c3a4d1\r
+e2e4e7e6d2d4d7d5b1c3f8b4e4e5g8e7a2a3b4c3b2c3c7c5a3a4b8c6g1f3c8d7f1d3d8c7e1g1c5c4\r
+e2e4e7e6d2d4d7d5b1c3f8b4e4e5g8e7a2a3b4c3b2c3c7c5g1f3b7b6f3g5h7h6d1h5g7g6h5h3d8c7\r
+e2e4e7e6d2d4d7d5b1c3f8b4e4e5g8e7a2a3b4c3b2c3c7c5g1f3d8a5c1d2b8c6f1e2c5d4c3d4a5a4\r
+e2e4e7e6d2d4d7d5b1c3f8b4f1d3d5e4d3e4c7c5g1e2g8f6e4f3c5d4d1d4d8d4e2d4a7a6e1g1b8d7\r
+e2e4e7e6d2d4d7d5b1c3f8b4g1e2d5e4a2a3b4e7c3e4b8c6c1e3g8f6e2c3e8g8e4g3b7b6f1e2c8b7\r
+e2e4e7e6d2d4d7d5b1c3f8b4g1e2d5e4a2a3b4e7c3e4b8c6g2g4b7b6f1g2c8b7c2c3g8f6e2g3e8g8\r
+e2e4e7e6d2d4d7d5b1c3g8f6c1g5d5e4c3e4b8d7e4f6d7f6g1f3c7c5d1d3f8e7g5f6e7f6d3b5c8d7\r
+e2e4e7e6d2d4d7d5b1c3g8f6c1g5d5e4c3e4b8d7e4f6d7f6g1f3c7c5f1c4c5d4e1g1f8e7d1e2h7h6\r
+e2e4e7e6d2d4d7d5b1c3g8f6c1g5d5e4c3e4b8d7e4f6d7f6g1f3c7c5f1c4c5d4e1g1f8e7d1e2h7h6\r
+e2e4e7e6d2d4d7d5b1c3g8f6c1g5d5e4c3e4b8d7e4f6d7f6g1f3h7h6g5h4c7c5f1b5c8d7b5d7d8d7\r
+e2e4e7e6d2d4d7d5b1c3g8f6c1g5d5e4c3e4b8d7e4f6d7f6g1f3h7h6g5h4g7g6f1c4f8g7e1g1e8g8\r
+e2e4e7e6d2d4d7d5b1c3g8f6c1g5d5e4c3e4b8d7g1f3f8e7e4f6e7f6g5f6d8f6d1d2e8g8d2g5f6g5\r
+e2e4e7e6d2d4d7d5b1c3g8f6c1g5d5e4c3e4b8d7g1f3f8e7e4f6e7f6h2h4e8g8d1e2c7c5e2e3d8a5\r
+e2e4e7e6d2d4d7d5b1c3g8f6c1g5d5e4c3e4f8e7g5f6e7f6c2c3b8d7g1f3e8g8f1d3e6e5d1c2e5d4\r
+e2e4e7e6d2d4d7d5b1c3g8f6c1g5d5e4c3e4f8e7g5f6e7f6g1f3b8d7d1d2f6e7e1c1d7f6f1d3e8g8\r
+e2e4e7e6d2d4d7d5b1c3g8f6c1g5d5e4c3e4f8e7g5f6e7f6g1f3b8d7d1e2e8g8e1c1f6e7c1b1b7b6\r
+e2e4e7e6d2d4d7d5b1c3g8f6c1g5d5e4c3e4f8e7g5f6e7f6g1f3b8d7f1c4e8g8d1e2d7b6c4b3c8d7\r
+e2e4e7e6d2d4d7d5b1c3g8f6c1g5d5e4c3e4f8e7g5f6e7f6g1f3b8d7f1c4e8g8d1e2d7b6c4b3c8d7\r
+e2e4e7e6d2d4d7d5b1c3g8f6c1g5d5e4c3e4f8e7g5f6e7f6g1f3b8d7f1d3c7c5d4c5d7c5d3b5e8e7\r
+e2e4e7e6d2d4d7d5b1c3g8f6c1g5d5e4c3e4f8e7g5f6e7f6g1f3c8d7d1d2d7c6e4f6d8f6f3e5e8g8\r
+e2e4e7e6d2d4d7d5b1c3g8f6c1g5d5e4c3e4f8e7g5f6g7f6g1f3b7b6f1c4c8b7d1e2c7c6e1c1d8c7\r
+e2e4e7e6d2d4d7d5b1c3g8f6c1g5d5e4c3e4f8e7g5f6g7f6g1f3b7b6f1c4c8b7d1e2c7c6e1c1d8c7\r
+e2e4e7e6d2d4d7d5b1c3g8f6c1g5d5e4c3e4f8e7g5f6g7f6g1f3b7b6f1c4c8b7d1e2c7c6e1c1d8c7\r
+e2e4e7e6d2d4d7d5b1c3g8f6c1g5d5e4c3e4f8e7g5f6g7f6g1f3b7b6f1d3c8b7d1e2c7c6e1g1b8d7\r
+e2e4e7e6d2d4d7d5b1c3g8f6c1g5d5e4c3e4f8e7g5f6g7f6g1f3f6f5e4c3c7c6g2g3b8d7f1g2d8c7\r
+e2e4e7e6d2d4d7d5b1c3g8f6c1g5d5e4c3e4f8e7g5f6g7f6g2g3f6f5e4c3e7f6g1e2b8c6d4d5e6d5\r
+e2e4e7e6d2d4d7d5b1c3g8f6c1g5f8b4e4d5d8d5g1f3c7c5g5f6g7f6d1d2b4c3d2c3b8d7a1d1h8g8\r
+e2e4e7e6d2d4d7d5b1c3g8f6c1g5f8b4e4d5d8d5g5f6g7f6d1d2b4c3d2c3b8c6g1f3d5e4e1d2c8d7\r
+e2e4e7e6d2d4d7d5b1c3g8f6c1g5f8b4e4d5d8d5g5f6g7f6d1d2b4c3d2c3b8c6g1f3d5e4e1d2c8d7\r
+e2e4e7e6d2d4d7d5b1c3g8f6c1g5f8b4e4d5d8d5g5f6g7f6d1d2b4c3d2c3b8c6g1f3h8g8e1c1d5a2\r
+e2e4e7e6d2d4d7d5b1c3g8f6c1g5f8b4e4e5h7h6g5d2b4c3b2c3f6e4d1g4e8f8g1f3c7c5f1d3e4d2\r
+e2e4e7e6d2d4d7d5b1c3g8f6c1g5f8b4e4e5h7h6g5d2b4c3b2c3f6e4d1g4g7g6f1d3e4d2e1d2c7c5\r
+e2e4e7e6d2d4d7d5b1c3g8f6c1g5f8b4e4e5h7h6g5d2b4c3b2c3f6e4d1g4g7g6g1f3c7c5d4c5b8d7\r
+e2e4e7e6d2d4d7d5b1c3g8f6c1g5f8b4e4e5h7h6g5d2b4c3d2c3f6e4c3a5e8g8f1d3b8c6a5c3e4c3\r
+e2e4e7e6d2d4d7d5b1c3g8f6c1g5f8b4f1d3d5e4d3e4c7c5d4c5b4c3b2c3d8a5g5f6g7f6d1d4e6e5\r
+e2e4e7e6d2d4d7d5b1c3g8f6c1g5f8b4f1d3d5e4d3e4c7c5d4c5d8d1a1d1b8d7g5f6d7f6e4f3b4c5\r
+e2e4e7e6d2d4d7d5b1c3g8f6c1g5f8e7e4e5f6d7h2h4c7c5g5e7d8e7c3b5e8g8b5c7c5d4c7a8f7f6\r
+e2e4e7e6d2d4d7d5b1c3g8f6e4e5f6d7c3e2c7c5c2c3b8c6f2f4b7b5g1f3b5b4f4f5b4c3f5e6f7e6\r
+e2e4e7e6d2d4d7d5b1c3g8f6e4e5f6d7f2f4c7c5d4c5f8c5d1g4e8g8f1d3f7f5g4h3c5g1h1g1d7c5\r
+e2e4e7e6d2d4d7d5b1c3g8f6e4e5f6d7f2f4c7c5g1f3b8c6c1e3a7a6d1d2b7b5h2h4c8b7h4h5b5b4\r
+e2e4e7e6d2d4d7d5b1c3g8f6e4e5f6d7f2f4c7c5g1f3b8c6c1e3c5d4f3d4d7c5d1d2a7a6e1c1d8a5\r
+e2e4e7e6d2d4d7d5b1c3g8f6e4e5f6d7f2f4c7c5g1f3b8c6c1e3c5d4f3d4f8c5d1d2c5d4e3d4c6d4\r
+e2e4e7e6d2d4d7d5b1c3g8f6e4e5f6d7f2f4c7c5g1f3b8c6c1e3c5d4f3d4f8c5d1d2c5d4e3d4c6d4\r
+e2e4e7e6d2d4d7d5b1c3g8f6e4e5f6d7f2f4c7c5g1f3b8c6c1e3c5d4f3d4f8c5d1d2c5d4e3d4c6d4\r
+e2e4e7e6d2d4d7d5b1c3g8f6e4e5f6d7f2f4c7c5g1f3b8c6c1e3d8b6c3a4b6a5c2c3c5d4b2b4c6b4\r
+e2e4e7e6d2d4d7d5b1c3g8f6e4e5f6d7f2f4c7c5g1f3b8c6c1e3d8b6c3a4b6a5c2c3c5d4b2b4c6b4\r
+e2e4e7e6d2d4d7d5b1c3g8f6e4e5f6d7g1f3c7c5d4c5b8c6c1f4f8c5f1d3f7f6e5f6d7f6e1g1e8g8\r
+e2e4e7e6d2d4d7d5b1c3g8f6f1d3c7c5e4d5c5d4d3b5c8d7b5d7d8d7d5e6d7e6c3e2b8c6g1f3f8b4\r
+e2e4e7e6d2d4d7d5b1c3g8f6f1d3c7c5g1f3c5c4d3e2d5e4f3e5f8d6e1g1a7a6e5c4h7h6f2f3e4f3\r
+e2e4e7e6d2d4d7d5b1c3g8f6f1d3c7c5g1f3d5e4c3e4c5d4e4f6g7f6f3d4c8d7c1e3b8c6d3e4d8a5\r
+e2e4e7e6d2d4d7d5b1d2a7a6g1f3c7c5e4d5e6d5f1e2c5d4e1g1f8d6d2b3b8c6b3d4g8e7d4c6b7c6\r
+e2e4e7e6d2d4d7d5b1d2a7a6g1f3c7c5e4d5e6d5f1e2g8f6e1g1f8e7d4c5e7c5d2b3c5a7c1g5b8d7\r
+e2e4e7e6d2d4d7d5b1d2a7a6g1f3c7c5e4d5e6d5f1e2g8f6e1g1f8e7d4c5e7c5d2b3c5a7c1g5b8d7\r
+e2e4e7e6d2d4d7d5b1d2a7a6g1f3c7c5e4d5e6d5f1e2g8f6e1g1f8e7d4c5e7c5d2b3c5a7c1g5e8g8\r
+e2e4e7e6d2d4d7d5b1d2a7a6g1f3c7c5e4d5e6d5f1e2g8f6e1g1f8e7d4c5e7c5d2b3c5d6c1g5e8g8\r
+e2e4e7e6d2d4d7d5b1d2c7c5d4c5f8c5f1d3g8e7g1e2e8g8e1g1b8c6a2a3c6e5d2b3c5b6e2g3e5d3\r
+e2e4e7e6d2d4d7d5b1d2c7c5e4d5d8d5g1f3c5d4f1c4d5d6e1g1g8f6d2b3b8c6b3d4c6d4f3d4f8e7\r
+e2e4e7e6d2d4d7d5b1d2c7c5e4d5d8d5g1f3c5d4f1c4d5d6e1g1g8f6d2b3b8c6f1e1a7a6a2a4f8e7\r
+e2e4e7e6d2d4d7d5b1d2c7c5e4d5d8d5g1f3c5d4f1c4d5d8e1g1a7a6d2b3b8c6b3d4c6d4d1d4d8d4\r
+e2e4e7e6d2d4d7d5b1d2c7c5e4d5d8d5g1f3c5d4f1c4d5d8e1g1b8c6d2b3a7a6b3d4c6d4f3d4d8c7\r
+e2e4e7e6d2d4d7d5b1d2c7c5e4d5e6d5f1b5b8c6d1e2d8e7d4c5e7e2g1e2f8c5d2b3c5b6b3d4c8d7\r
+e2e4e7e6d2d4d7d5b1d2c7c5e4d5e6d5f1b5b8c6d1e2d8e7d4c5e7e2g1e2f8c5d2b3c5b6c1d2g8e7\r
+e2e4e7e6d2d4d7d5b1d2c7c5e4d5e6d5f1b5b8c6g1f3c5d4d1e2d8e7f3d4e7e2d4e2g8f6c2c3f8c5\r
+e2e4e7e6d2d4d7d5b1d2c7c5e4d5e6d5f1b5b8c6g1f3c5d4d1e2d8e7f3d4e7e2e1e2c8d7d2f3c6d4\r
+e2e4e7e6d2d4d7d5b1d2c7c5e4d5e6d5f1b5b8c6g1f3c5d4d1e2d8e7f3d4e7e2e1e2c8d7d2f3g8f6\r
+e2e4e7e6d2d4d7d5b1d2c7c5e4d5e6d5f1b5b8c6g1f3c5d4f3d4c8d7d2f3g8f6e1g1f8e7f1e1e8g8\r
+e2e4e7e6d2d4d7d5b1d2c7c5e4d5e6d5f1b5c8d7b5d7b8d7g1e2f8d6e1g1g8e7d2f3c5c4c1f4d8c7\r
+e2e4e7e6d2d4d7d5b1d2c7c5e4d5e6d5f1b5c8d7b5d7b8d7g1e2f8d6e1g1g8f6d2f3e8g8d4c5d7c5\r
+e2e4e7e6d2d4d7d5b1d2c7c5e4d5e6d5f1b5c8d7d1e2d8e7b5d7b8d7d4c5d7c5d2b3e7e2g1e2c5b3\r
+e2e4e7e6d2d4d7d5b1d2c7c5e4d5e6d5f1b5c8d7d1e2d8e7b5d7b8d7d4c5d7c5d2b3e7e2g1e2c5b3\r
+e2e4e7e6d2d4d7d5b1d2c7c5e4d5e6d5f1b5c8d7d1e2f8e7d4c5g8f6b5d7b8d7d2b3e8g8g1h3f8e8\r
+e2e4e7e6d2d4d7d5b1d2c7c5e4d5e6d5f1b5c8d7d1e2f8e7d4c5g8f6d2b3e8g8c1e3f8e8g1f3e7c5\r
+e2e4e7e6d2d4d7d5b1d2c7c5e4d5e6d5f1b5c8d7d1e2f8e7d4c5g8f6g1f3e8g8d2b3f8e8c1e3e7c5\r
+e2e4e7e6d2d4d7d5b1d2c7c5e4d5e6d5f1b5c8d7d1e2f8e7d4c5g8f6g1f3e8g8e1g1f8e8d2b3e7c5\r
+e2e4e7e6d2d4d7d5b1d2c7c5e4d5e6d5g1f3b8c6f1b5f8d6d4c5d6c5e1g1g8e7d2b3c5d6c2c3c8g4\r
+e2e4e7e6d2d4d7d5b1d2c7c5e4d5e6d5g1f3b8c6f1b5f8d6d4c5d6c5e1g1g8e7d2b3c5d6c2c3c8g4\r
+e2e4e7e6d2d4d7d5b1d2c7c5e4d5e6d5g1f3b8c6f1b5f8d6d4c5d6c5e1g1g8e7d2b3c5d6f1e1e8g8\r
+e2e4e7e6d2d4d7d5b1d2c7c5e4d5e6d5g1f3b8c6f1b5f8d6d4c5d6c5e1g1g8e7d2b3c5d6f1e1e8g8\r
+e2e4e7e6d2d4d7d5b1d2c7c5e4d5e6d5g1f3b8c6f1b5f8d6d4c5d6c5e1g1g8e7d2b3c5d6f1e1e8g8\r
+e2e4e7e6d2d4d7d5b1d2c7c5e4d5e6d5g1f3b8c6f1b5f8d6d4c5d6c5e1g1g8e7d2b3c5d6f1e1e8g8\r
+e2e4e7e6d2d4d7d5b1d2c7c5e4d5e6d5g1f3b8c6f1b5f8d6d4c5d6c5e1g1g8e7f1e1e8g8d2b3c5d6\r
+e2e4e7e6d2d4d7d5b1d2c7c5e4d5e6d5g1f3b8c6f1b5f8d6e1g1c5d4d2b3g8e7b3d4e8g8c2c3c8g4\r
+e2e4e7e6d2d4d7d5b1d2c7c5e4d5e6d5g1f3b8c6f1b5f8d6e1g1c5d4d2b3g8e7b3d4e8g8c2c3c8g4\r
+e2e4e7e6d2d4d7d5b1d2c7c5e4d5e6d5g1f3b8c6f1b5f8d6e1g1c5d4d2b3g8e7b3d4e8g8c2c3c8g4\r
+e2e4e7e6d2d4d7d5b1d2c7c5e4d5e6d5g1f3b8c6f1b5f8d6e1g1c5d4d2b3g8e7b3d4e8g8c2c3c8g4\r
+e2e4e7e6d2d4d7d5b1d2c7c5e4d5e6d5g1f3b8c6f1b5f8d6e1g1g8e7d4c5d6c5d2b3c5d6b3d4e8g8\r
+e2e4e7e6d2d4d7d5b1d2c7c5e4d5e6d5g1f3b8c6f1b5f8d6e1g1g8e7d4c5d6c5d2b3c5d6c1g5e8g8\r
+e2e4e7e6d2d4d7d5b1d2c7c5e4d5e6d5g1f3g8f6f1b5c8d7b5d7b8d7e1g1f8e7d4c5d7c5d2b3c5e4\r
+e2e4e7e6d2d4d7d5b1d2c7c5e4d5e6d5g1f3g8f6f1b5c8d7b5d7b8d7e1g1f8e7d4c5d7c5d2b3c5e4\r
+e2e4e7e6d2d4d7d5b1d2c7c5e4d5e6d5g1f3g8f6f1b5c8d7b5d7b8d7e1g1f8e7d4c5d7c5f3d4e8g8\r
+e2e4e7e6d2d4d7d5b1d2c7c5g1f3b8c6e4d5e6d5f1b5d8e7b5e2c5d4e1g1e7d8d2b3f8d6b3d4g8e7\r
+e2e4e7e6d2d4d7d5b1d2c7c5g1f3b8c6e4d5e6d5f1b5f8d6d4c5d6c5d2b3c5b6e1g1g8e7f1e1e8g8\r
+e2e4e7e6d2d4d7d5b1d2c7c5g1f3b8c6e4d5e6d5f1b5f8d6e1g1g8e7d4c5d6c5d2b3c5b6f1e1e8g8\r
+e2e4e7e6d2d4d7d5b1d2c7c5g1f3c5d4e4d5d8d5f1c4d5d6e1g1b8c6d2b3g8f6b3d4c6d4f3d4a7a6\r
+e2e4e7e6d2d4d7d5b1d2d5e4d2e4b8d7g1f3g8f6e4f6d7f6f1d3f8e7f3e5c7c6c2c3h7h6d1e2e8g8\r
+e2e4e7e6d2d4d7d5b1d2d5e4d2e4f8e7g1f3g8f6f1d3b8d7e1g1e8g8d1e2b7b6e4f6d7f6c2c4c8b7\r
+e2e4e7e6d2d4d7d5b1d2f7f5e4f5e6f5g1f3g8f6c2c4f8d6c4d5e8g8f1e2f6d5e1g1g8h8f1e1c8e6\r
+e2e4e7e6d2d4d7d5b1d2g8f6e4e5f6d7c2c3c7c5f1d3b8c6g1e2c5d4c3d4d8b6d2f3f7f6e5f6d7f6\r
+e2e4e7e6d2d4d7d5b1d2g8f6e4e5f6d7c2c3c7c5f1d3b8c6g1e2c5d4c3d4f7f6e5f6d7f6d2f3f8d6\r
+e2e4e7e6d2d4d7d5b1d2g8f6e4e5f6d7f1d3c7c5c2c3b8c6d2f3c5d4c3d4f8b4c1d2d8e7a2a3b4d2\r
+e2e4e7e6d2d4d7d5b1d2g8f6e4e5f6d7f1d3c7c5c2c3b8c6g1e2c5d4c3d4f7f6e5f6d7f6e1g1f8d6\r
+e2e4e7e6d2d4d7d5b1d2g8f6f1d3c7c5e4e5f6d7c2c3b8c6g1e2c5d4c3d4f7f6e5f6d7f6e1g1f8d6\r
+e2e4e7e6d2d4d7d5b1d2g8f6f1d3c7c5e4e5f6d7c2c3b8c6g1e2c5d4c3d4f7f6e5f6d7f6e1g1f8d6\r
+e2e4e7e6d2d4d7d5b1d2g8f6f1d3c7c5e4e5f6d7c2c3b8c6g1e2d8b6d2f3c5d4c3d4f7f6e5f6d7f6\r
+e2e4e7e6d2d4d7d5e4d5e6d5f1d3f8d6d1e2g8e7g1f3e8g8e1g1c8g4d3h7g8h8h7d3d8c8e2e3f7f6\r
+e2e4e7e6d2d4d7d5e4e5c7c5c2c3b8c6g1f3c8d7f1e2g8e7e1g1e7g6c1e3c5d4c3d4f8e7b1c3e8g8\r
+e2e4e7e6d2d4d7d5e4e5c7c5c2c3b8c6g1f3d8b6a2a3c5c4b1d2c6a5g2g3c8d7h2h4h7h6f1h3e8c8\r
+e2e4e7e6d2d4d7d5e4e5c7c5c2c3b8c6g1f3d8b6d1b3b6b3a2b3c5d4c3d4c8d7f1e2g8e7e1g1e7f5\r
+e2e4e7e6d2d4d7d5e4e5c7c5c2c3b8c6g1f3g8e7b1a3c5d4c3d4e7f5a3c2d8b6f1d3f8b4e1f1b4e7\r
+e2e4e7e6d2d4d7d5e4e5c7c5c2c3b8c6g1f3g8e7f1d3c5d4c3d4e7f5d3f5e6f5b1c3c8e6h2h4h7h6\r
+e2e4e7e6d2d4d7d5e4e5f8b4b1c3b7b6d1g4b4f8c1g5d8d7f1b5b8c6g1f3h7h6g5d2c8b7e1g1a7a6\r
+e2e4g7g6d2d4f8g7b1c3d7d6c1e3a7a6a2a4b8d7g1f3g8f6f1e2e8g8e1g1b7b6h2h3c8b7f3d2e7e6\r
+e2e4g7g6d2d4f8g7c2c4d7d6b1c3b8c6c1e3e7e5d4d5c6e7d1d2f7f5f2f3g8f6f1d3a7a6h2h3f5f4\r
+e2e4g7g6d2d4f8g7g1f3d7d6b1c3a7a6a2a4b7b6f1c4e7e6e1g1b8d7h2h3c8b7c1e3g8e7d1d2h7h6\r
+e2e4g8f6b1c3d7d5e4e5f6e4c3e2e4c5d2d4c5e6f2f4g7g6c1e3e6g7d1d2b7b6h2h3e7e6g1f3c7c5\r
+e2e4g8f6b1c3e7e5g2g3f8c5f1g2e8g8d2d3f8e8g1e2b8c6e1g1c6d4h2h3c7c6g1h2d4e2d1e2d7d5\r
+e2e4g8f6e4e5f6d5d2d4d7d6c2c4d5b6f2f4d6e5f4e5b8c6c1e3c8f5b1c3e7e6g1f3f8e7d4d5e6d5\r
+e2e4g8f6e4e5f6d5d2d4d7d6c2c4d5b6g1f3c8g4f1e2d6e5c4c5e5e4c5b6e4f3e2f3g4f3d1f3a7b6\r
+e2e4g8f6e4e5f6d5d2d4d7d6g1f3b8c6c2c4d5b6e5e6f7e6h2h4e6e5d4d5c6d4f3d4e5d4f1d3d8d7\r
+e2e4g8f6e4e5f6d5d2d4d7d6g1f3b8c6c2c4d5b6f1e2c8g4e5d6c7d6d4d5g4f3e2f3c6e5f3e2g7g6\r
+e2e4g8f6e4e5f6d5d2d4d7d6g1f3c8g4e5d6e7d6f1e2f8e7e1g1e8g8h2h3g4h5c2c4d5b6c1e3b8c6\r
+e2e4g8f6e4e5f6d5d2d4d7d6g1f3c8g4f1e2e7e6c2c4d5b6e5d6c7d6b1c3f8e7e1g1e8g8c1f4a7a6\r
+e2e4g8f6e4e5f6d5d2d4d7d6g1f3c8g4f1e2e7e6e1g1f8e7c2c4d5b6b1c3e8g8c1e3a7a6e5d6c7d6\r
+e2e4g8f6e4e5f6d5d2d4d7d6g1f3c8g4f1e2e7e6e1g1f8e7c2c4d5b6b1c3e8g8c1e3d6d5c4c5g4f3\r
+e2e4g8f6e4e5f6d5d2d4d7d6g1f3c8g4f1e2e7e6e1g1f8e7h2h3g4h5c2c4d5b6b1c3b8d7e5d6c7d6\r
+e2e4g8f6e4e5f6d5d2d4d7d6g1f3c8g4f1e2e7e6e1g1f8e7h2h3g4h5c2c4d5b6b1c3e8g8c1e3d6d5\r
+e2e4g8f6e4e5f6d5d2d4d7d6g1f3d6e5f3e5b8d7f1c4e7e6d1g4h7h5g4e2d7e5d4e5c8d7e1g1d7c6\r
+e2e4g8f6e4e5f6d5d2d4d7d6g1f3d6e5f3e5e7e6d1f3d8f6f3g3h7h6b1c3d5b4f1b5c7c6b5a4b8d7\r
+e2e4g8f6e4e5f6d5d2d4d7d6g1f3d6e5f3e5e7e6d1h5g7g6h5f3d8e7b1c3b8d7f1c4d5c3e5d7e7d7\r
+e2e4g8f6e4e5f6d5d2d4d7d6g1f3d6e5f3e5g7g6f1c4c8e6c4b3f8g7c2c3c7c6e1g1b8d7e5d3e8g8\r
+e2e4g8f6e4e5f6d5d2d4d7d6g1f3d6e5f3e5g7g6f1c4c8e6d1e2f8g7e1g1e8g8c4b3c7c6f1d1b8d7\r
+e2e4g8f6e4e5f6d5d2d4d7d6g1f3d6e5f3e5g7g6g2g3f8g7f1g2e8g8e1g1c7c6f1e1c8f5c2c3b8d7\r
+e2e4g8f6e4e5f6d5d2d4d7d6g1f3g7g6f1c4d5b6c4b3f8g7b1d2e8g8h2h3a7a5a2a4d6e5d4e5b8a6\r
+e2e4g8f6e4e5f6d5d2d4d7d6g1f3g7g6f1e2f8g7e1g1e8g8c2c4d5b6b1c3b8c6e5d6c7d6c1e3c8g4\r
+f2f4c7c5g1f3g7g6e2e4f8g7f1e2b8c6e1g1d7d6d2d3e7e6b1a3g8e7c2c3e8g8c1e3a7a6d3d4c5d4\r
+f2f4d7d5b2b3c8g4g2g3g8f6f1g2c7c6g1f3g4f3g2f3g7g6\r
+f2f4d7d5c2c4d5c4b1a3e7e5f4e5f8a3d1a4b8c6a4a3c6e5\r
+f2f4d7d5e2e3g7g6c2c4g8f6b1c3f8g7g1f3e8g8d1b3d5c4f1c4b8c6f3e5c6e5f4e5f6d7c4f7g8h8\r
+f2f4d7d5e2e3g7g6g1f3f8g7d2d4g8f6f1d3e8g8b1d2c7c5c2c3b7b6d1e2c8b7f3e5d8c7e1g1b8c6\r
+f2f4d7d5g1f3g7g6d2d3g8f6g2g3b7b6f1g2c8b7e1g1f8g7d1e1e8g8h2h3b8c6g3g4d8d6e1f2e7e5\r
+f2f4d7d5g1f3g8f6e2e3g7g6b2b3f8g7c1b2e8g8f1e2c7c5c2c4d5d4e3d4f6h5\r
+f2f4d7d5g1f3g8f6e2e3g7g6b2b3f8g7c1b2e8g8f1e2c7c5e1g1b8c6f3e5d8c7b1c3c6e5c3b5c7b6\r
+f2f4d7d5g1f3g8f6e2e3g7g6b2b3f8g7c1b2e8g8f1e2c7c5e1g1b8c6f3e5d8c7e5c6c7c6e2f3c8e6\r
+f2f4d7d5g1f3g8f6e2e3g7g6b2b4f8g7c1b2e8g8f1e2b7b6e1g1c8b7b1a3b8d7c2c4c7c5b4c5d7c5\r
+f2f4d7d5g2g3g8f6f1g2c7c5g1f3b8c6c2c3g7g6e1g1f8g7d2d3e8g8b1d2d8c7\r
+g1f3c7c5b2b3d7d5c1b2f7f6c2c4d5d4d2d3e7e5e2e3g8e7f1e2e7c6b1d2f8e7e1g1e8g8e3e4a7a6\r
+g1f3c7c5b2b3g8f6c2c4g7g6c1b2f8g7e2e3e8g8f1e2b7b6e1g1c8b7a2a3b8c6d2d3d7d5c4d5d8d5\r
+g1f3c7c5c2c4b8c6b1c3e7e5e2e3g8f6a2a3d7d6f1e2g7g6d2d4e5d4e3d4f8g7c1f4e8g8e1g1c8f5\r
+g1f3c7c5c2c4b8c6b1c3g8f6d2d4c5d4f3d4e7e6a2a3c6d4d1d4b7b6c1f4f8c5d4d2e8g8a1d1c8b7\r
+g1f3c7c5c2c4b8c6b1c3g8f6g2g3g7g6f1g2f8g7e1g1e8g8d2d3a7a6a2a3a8b8a1b1b7b5c4b5a6b5\r
+g1f3c7c5c2c4b8c6d2d4c5d4f3d4g8f6b1c3e7e6d4b5d7d5c1f4e6e5c4d5e5f4d5c6b7c6d1d8e8d8\r
+g1f3c7c5c2c4b8c6d2d4c5d4f3d4g8f6g2g3d8b6d4c2d7d6f1g2g7g6b1c3f8g7e1g1e8g8b2b3c8e6\r
+g1f3c7c5e2e4d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2e7e5d4b3c8e6e1g1f8e7f2f4d8c7e2f3e8g8\r
+g1f3c7c5g2g3d7d5f1g2b8c6e1g1e7e6d2d3f8d6e2e4g8e7f1e1e8g8b1d2d6c7c2c3a7a5a2a4b7b6\r
+g1f3c7c5g2g3d7d6f1g2b8c6e1g1g8f6d2d3g7g6b2b3f8g7c1b2e8g8b1d2d8c7c2c4f8e8d2e4f6e4\r
+g1f3c7c5g2g3g7g6f1g2b8c6e1g1f8g7d2d3d7d6b1c3e7e5e2e4g8e7f3h4e8g8f2f4e5f4g3f4f7f5\r
+g1f3c7c5g2g3g7g6f1g2f8g7e1g1b8c6d2d3g8f6b1c3e8g8a2a3d7d6a1b1b7b6b2b4c8b7c1g5d8d7\r
+g1f3d7d5b2b3c8g4e2e3g8f6c1b2e7e6h2h3g4h5d2d3c7c5g2g4h5g6f3e5b8d7e5g6h7g6f1g2d8b6\r
+g1f3d7d5c2c4c7c6d2d4g8f6b1c3d5c4a2a4c8f5f3e5e7e6f2f3f8b4e5c4e8g8c1g5h7h6g5h4c6c5\r
+g1f3d7d5c2c4c7c6e2e3e7e6d2d4f7f5f1d3g8f6e1g1f8d6b2b3d8e7a2a4e8g8c1a3d6a3b1a3f6e4\r
+g1f3d7d5c2c4c7c6e2e3g8f6b1c3g7g6d2d4f8g7f1e2e8g8e1g1d5c4e2c4c8g4h2h3g4f3d1f3b8d7\r
+g1f3d7d5c2c4c7c6e2e3g8f6b1c3g7g6d2d4f8g7f1e2e8g8e1g1d5c4e2c4c8g4h2h3g4f3d1f3b8d7\r
+g1f3d7d5c2c4c7c6e2e3g8f6b1c3g7g6d2d4f8g7f1e2e8g8e1g1d5c4e2c4c8g4h2h3g4f3d1f3b8d7\r
+g1f3d7d5c2c4c7c6e2e3g8f6b1c3g7g6d2d4f8g7f1e2e8g8e1g1d5c4e2c4c8g4h2h3g4f3d1f3b8d7\r
+g1f3d7d5c2c4c7c6e2e3g8f6d2d4c8f5b1c3e7e6f3h4f5e4d1b3d8c7f2f3e4g6c1d2b8d7a1c1a8c8\r
+g1f3d7d5c2c4d5c4e2e3g8f6f1c4e7e6e1g1c7c5d2d4a7a6d1e2b7b5c4b3c8b7b1c3b8d7f1d1f8d6\r
+g1f3d7d5c2c4d5c4e2e3g8f6f1c4e7e6e1g1c7c5d2d4a7a6d1e2b7b5c4b3c8b7f1d1b8d7b1c3b5b4\r
+g1f3d7d5c2c4d5d4e2e3b8c6e3d4c6d4f3d4d8d4b1c3g8f6d2d3c7c6c1e3d4d7d3d4g7g6f1e2f8g7\r
+g1f3d7d5c2c4d5d4g2g3c7c5e2e3b8c6e3d4c6d4f3d4d8d4b1c3c8g4f1e2g4e2d1e2e7e6d2d3d4d7\r
+g1f3d7d5c2c4e7e6d2d4g8f6b1c3c7c5c4d5f6d5e2e4d5c3b2c3c5d4c3d4f8b4c1d2b4d2d1d2e8g8\r
+g1f3d7d5c2c4e7e6d2d4g8f6b1c3c7c5c4d5f6d5g2g3c5d4c3d5d8d5d1d4d5d4f3d4f8b4c1d2b4d2\r
+g1f3d7d5c2c4e7e6g2g3d5d4f1g2c7c5e1g1b8c6d2d3g8f6e2e3f8e7e3d4c5d4f1e1f6d7b1a3d7c5\r
+g1f3d7d5c2c4e7e6g2g3g8f6f1g2d5c4d1a4b8d7a4c4c7c5e1g1f8e7d2d3e8g8b2b3a7a6c1b2b7b5\r
+g1f3d7d5d2d4c7c5c2c4e7e6c4d5e6d5g2g3b8c6f1g2g8f6e1g1f8e7b1c3e8g8c1g5c8e6d4c5e7c5\r
+g1f3d7d5d2d4c7c5g2g3c5d4f1g2d8a5b1d2b8c6e1g1e7e5d2b3a5c7e2e3d4e3c1e3g8f6e3g5c8e6\r
+g1f3d7d5d2d4c7c6c2c4e7e6b1d2g8f6e2e3b8d7f1d3f8d6e3e4d5e4d2e4f6e4d3e4e8g8e1g1h7h6\r
+g1f3d7d5d2d4c7c6c2c4e7e6b1d2g8f6e2e3c6c5b2b3b8c6c1b2c5d4e3d4f8e7a1c1e8g8f1d3c8d7\r
+g1f3d7d5d2d4c8f5c2c4e7e6e2e3b8c6c4d5e6d5f1b5f8d6b1c3g8e7e1g1e8g8a2a3a7a6b5e2d8d7\r
+g1f3d7d5d2d4c8g4c2c4b8c6e2e3e7e5d1b3g4f3g2f3e5d4c4d5c6e5e3d4e5d7b1c3d8e7c1e3e7b4\r
+g1f3d7d5d2d4c8g4c2c4b8c6e2e3e7e5d1b3g4f3g2f3g8e7b1c3e5d4c3d5a8b8e3e4e7g6c1d2f8d6\r
+g1f3d7d5d2d4c8g4c2c4b8c6e2e3e7e6b1c3f8b4c1d2g8e7f1d3g4f5d3f5e7f5c4d5e6d5d1b3b4c3\r
+g1f3d7d5d2d4c8g4c2c4g4f3g2f3d5c4e2e4e7e5d4e5d8d1e1d1b8c6f3f4a8d8c1d2f8c5h1g1g8e7\r
+g1f3d7d5d2d4c8g4c2c4g4f3g2f3e7e6c4d5d8d5e2e4f8b4b1c3d5a5c1d2b8c6d4d5e6d5a2a3c6d4\r
+g1f3d7d5d2d4c8g4f3e5g4h5d1d3d8c8c2c4f7f6e5f3e7e6b1c3h5g6d3d1c7c6e2e3f8d6c1d2g8e7\r
+g1f3d7d5d2d4e7e6c2c4f8e7b1c3g8f6c1g5b8d7e2e3h7h6g5h4e8g8a1c1c7c6f1d3d5c4d3c4a7a6\r
+g1f3d7d5d2d4e7e6c2c4g8f6b1c3f8e7c1g5b8d7e2e3h7h6g5h4e8g8a1c1c7c6f1d3d5c4d3c4b7b5\r
+g1f3d7d5d2d4e7e6c2c4g8f6b1c3f8e7c1g5e8g8e2e3b7b6a1c1c8b7f1e2b8d7c4d5f6d5c3d5b7d5\r
+g1f3d7d5d2d4e7e6c2c4g8f6c1g5f8e7b1c3e8g8a1c1h7h6g5h4b7b6c4d5f6d5c3d5e6d5h4e7d8e7\r
+g1f3d7d5d2d4e7e6g2g3c7c5f1g2b8c6e1g1g8f6c2c4d5c4f3e5c8d7b1a3c5d4a3c4f8c5d1b3e8g8\r
+g1f3d7d5d2d4e7e6g2g3g8f6f1g2f8e7c2c4e8g8d1c2b8c6e1g1c6b4c2d1d5c4b1a3c7c5a3c4\r
+g1f3d7d5d2d4g8f6c2c4c7c6b1c3d5c4a2a4c8f5e2e3e7e6f1c4f8b4e1g1e8g8d1e2c6c5f1d1b8c6\r
+g1f3d7d5d2d4g8f6c2c4c7c6b1c3d5c4a2a4c8f5f3e5e7e6f2f3c6c5e2e4c5d4e4f5b8c6e5c6b7c6\r
+g1f3d7d5d2d4g8f6c2c4c7c6b1c3e7e6c1g5h7h6g5f6d8f6e2e3b8d7f1d3d5c4d3c4g7g6e1g1f8g7\r
+g1f3d7d5d2d4g8f6c2c4c7c6b1c3e7e6c1g5h7h6g5f6d8f6e2e3b8d7f1d3d5c4d3c4g7g6e1g1f8g7\r
+g1f3d7d5d2d4g8f6c2c4c7c6b1c3e7e6c4d5e6d5d1c2g7g6c1g5f8e7g5f6e7f6e2e3c8f5f1d3f5d3\r
+g1f3d7d5d2d4g8f6c2c4c7c6b1c3e7e6c4d5e6d5d1c2g7g6c1g5f8e7g5f6e7f6e2e3c8f5f1d3f5d3\r
+g1f3d7d5d2d4g8f6c2c4c7c6b1c3e7e6c4d5e6d5d1c2g7g6c1g5f8e7g5f6e7f6e2e3c8f5f1d3f5d3\r
+g1f3d7d5d2d4g8f6c2c4c7c6b1c3e7e6e2e3b8d7d1c2b7b6c1d2c8b7c4d5e6d5f1d3f8e7e1g1e8g8\r
+g1f3d7d5d2d4g8f6c2c4c7c6b1c3e7e6e2e3b8d7f1e2d5c4a2a4f8d6f3d2e8g8d2c4d6c7b2b3f6d5\r
+g1f3d7d5d2d4g8f6c2c4c7c6e2e3g7g6b1c3f8g7f1d3e8g8h2h3c6c5e1g1c5d4e3d4d5c4d3c4b8c6\r
+g1f3d7d5d2d4g8f6c2c4d5c4b1c3a7a6e2e4b7b5e4e5f6d5a2a4d5b4f1e2c8f5e1g1b4c2a1a2c2b4\r
+g1f3d7d5d2d4g8f6c2c4d5c4e2e3e7e6f1c4c7c5e1g1a7a6a2a4b8c6b1c3c5d4e3d4f8e7c1g5e8g8\r
+g1f3d7d5d2d4g8f6c2c4d5c4e2e3e7e6f1c4c7c5e1g1a7a6d1e2b7b5c4b3c8b7f1d1b8d7b1c3d8b8\r
+g1f3d7d5d2d4g8f6c2c4e7e6b1c3b8d7c1g5h7h6g5h4f8e7e2e3e8g8a1c1a7a6b2b3b7b6c4d5e6d5\r
+g1f3d7d5d2d4g8f6c2c4e7e6b1c3b8d7c4d5e6d5c1f4c7c6e2e3f8e7h2h3d7f8f1d3f8g6f4h2e8g8\r
+g1f3d7d5d2d4g8f6c2c4e7e6b1c3c7c6e2e3b8d7d1c2f8d6e3e4e6e5c4d5c6d5e4d5e5d4f3d4e8g8\r
+g1f3d7d5d2d4g8f6c2c4e7e6b1c3c7c6e2e3b8d7f1d3d5c4d3c4b7b5c4e2c8b7a2a3b5b4c3a4b4a3\r
+g1f3d7d5d2d4g8f6c2c4e7e6b1c3d5c4e2e4f8b4c1g5c7c5f1c4c5d4f3d4b4c3b2c3d8a5g5f6a5c3\r
+g1f3d7d5d2d4g8f6c2c4e7e6b1c3f8e7c1g5e8g8e2e3h7h6g5h4b7b6c4d5f6d5h4e7d8e7c3d5e6d5\r
+g1f3d7d5d2d4g8f6c2c4e7e6b1c3f8e7c1g5e8g8e2e3h7h6g5h4b7b6f1e2c8b7h4f6e7f6c4d5e6d5\r
+g1f3d7d5d2d4g8f6c2c4e7e6b1c3f8e7c1g5h7h6g5f6e7f6d1d2b8c6e2e3e8g8a1c1a7a6f1e2d5c4\r
+g1f3d7d5d2d4g8f6c2c4e7e6b1c3f8e7c1g5h7h6g5f6e7f6d1d2d5c4e2e4c7c5d4d5e6d5e4e5f6g5\r
+g1f3d7d5d2d4g8f6c2c4e7e6b1c3f8e7c1g5h7h6g5f6e7f6e2e3e8g8d1c2c7c5d4c5d5c4f1c4d8a5\r
+g1f3d7d5d2d4g8f6c2c4e7e6b1c3f8e7c1g5h7h6g5h4e8g8a1c1d5c4e2e3c7c5f1c4c5d4f3d4c8d7\r
+g1f3d7d5d2d4g8f6c2c4e7e6b1c3f8e7c1g5h7h6g5h4e8g8e2e3b7b6a1c1c8b7f1e2b8d7c4d5e6d5\r
+g1f3d7d5d2d4g8f6c2c4e7e6b1c3f8e7c1g5h7h6g5h4e8g8e2e3b7b6a1c1c8b7f1e2b8d7c4d5e6d5\r
+g1f3d7d5d2d4g8f6c2c4e7e6b1c3f8e7c1g5h7h6g5h4e8g8e2e3b7b6f1e2c8b7e1g1b8d7a1c1c7c5\r
+g1f3d7d5d2d4g8f6c2c4e7e6c1g5f8e7b1c3h7h6g5f6e7f6e2e3e8g8a1c1c7c6f1d3b8d7e1g1d5c4\r
+g1f3d7d5d2d4g8f6c2c4e7e6c1g5f8e7b1c3h7h6g5h4e8g8e2e3b7b6f1e2c8b7h4f6e7f6c4d5e6d5\r
+g1f3d7d5d2d4g8f6c2c4e7e6g2g3c7c5f1g2b8c6e1g1c5d4f3d4f8c5d4c6b7c6b1c3e8g8c1g5h7h6\r
+g1f3d7d5d2d4g8f6c2c4e7e6g2g3f8e7f1g2e8g8e1g1b8d7d1c2c7c6b2b3b7b6f1d1c8b7b1c3d8c8\r
+g1f3d7d5d2d4g8f6e2e3e7e6c2c4f8e7b1c3b8d7c4c5c7c6b2b4e8g8c1b2d8c7f1e2f6e8e1g1f7f5\r
+g1f3d7d5d2d4g8f6e2e3e7e6c2c4f8e7b1c3e8g8f1d3c7c5c4d5c5d4f3d4f6d5c3d5d8d5e1g1b8c6\r
+g1f3d7d5g2g3c7c5f1g2b8c6d2d4e7e6e1g1c5d4f3d4f8c5d4b3c5b6c2c4g8f6c4d5f6d5b1a3e8g8\r
+g1f3d7d5g2g3c7c6f1g2b8d7e1g1g8f6d2d3e7e5e2e4d5e4d3e4f6e4f3e5d7e5d1d8e8d8g2e4f8d6\r
+g1f3d7d5g2g3c7c6f1g2c8g4c2c4g8f6c4d5g4f3g2f3c6d5d2d3b8c6e1g1e7e6b1c3f8e7f3g2e8g8\r
+g1f3d7d5g2g3c7c6f1g2c8g4e1g1b8d7d2d4g4f3g2f3g8f6c1f4d8b6b2b3e7e6e2e3f8e7c2c4h7h6\r
+g1f3d7d5g2g3c7c6f1g2g8f6e1g1c8g4c2c4e7e6c4d5g4f3g2f3c6d5b1c3b8c6d2d3f8e7f3g2e8g8\r
+g1f3d7d5g2g3c8g4b2b3b8d7c1b2e7e6f1g2g8f6e1g1c7c6d2d3f8d6b1d2e8g8h2h3g4h5e2e3h7h6\r
+g1f3d7d5g2g3c8g4f1g2b8d7c2c4c7c6c4d5c6d5b1c3g8f6d1b3d7c5b3b5f6d7d2d4a7a6b5b4c5e4\r
+g1f3d7d5g2g3c8g4f1g2b8d7e1g1c7c6d2d3e7e5h2h3g4h5c2c4d5c4d3c4g8f6c1e3d8c7b1c3f8b4\r
+g1f3d7d5g2g3c8g4f1g2b8d7h2h3g4f3g2f3c7c6d2d3e7e6e2e4d7e5f3g2d5e4g2e4g8f6e4g2f8b4\r
+g1f3d7d5g2g3c8g4f1g2c7c6b2b3b8d7c1b2g8f6e1g1e7e6d2d3f8c5b1d2e8g8e2e4d5e4d3e4e6e5\r
+g1f3d7d5g2g3g7g6d2d4f8g7f1g2g8f6b1c3e8g8e1g1b8d7c1g5c7c6d1c1f6e4c3e4d5e4f3d2h7h6\r
+g1f3d7d5g2g3g7g6f1g2f8g7c2c4d5c4b1a3c8e6d1c2c7c5a3c4b8c6e1g1a8c8d2d3g8h6c4e5c6e5\r
+g1f3d7d5g2g3g7g6f1g2f8g7e1g1e7e5d2d3g8e7b1d2e8g8e2e4b8c6e4d5e7d5c2c3h7h6d2c4f8e8\r
+g1f3d7d5g2g3g8f6f1g2c7c6e1g1c8g4d2d3b8d7b1d2e7e6e2e4f8e7d1e2e8g8h2h3g4h5f1e1d5e4\r
+g1f3d7d5g2g3g8f6f1g2c8f5c2c4e7e6e1g1f8e7b2b3e8g8c1b2h7h6d2d3f5h7b1d2b8c6a2a3a7a5\r
+g1f3d7d6b1c3g8f6d2d4c8g4c1g5b8d7e2e4e7e5f1e2f8e7e1g1e8g8d1d2c7c6a2a4a7a5g5e3f8e8\r
+g1f3d7d6d2d4c8g4e2e3g8f6c2c4b8d7b1c3e7e5f1e2f8e7e3e4c7c6c1e3e8g8e1g1a7a6a2a3f8e8\r
+g1f3d7d6d2d4c8g4e2e4e7e6f1d3g8f6b1d2f8e7h2h3g4h5d2f1d6d5f1g3h5g6d1e2d5e4g3e4e8g8\r
+g1f3d7d6d2d4g8f6g2g3g7g6f1g2f8g7e1g1e8g8c2c4b8c6b1c3a7a6h2h3c8d7e2e4e7e5d4e5d6e5\r
+g1f3e7e6c2c4d7d5d2d4d5c4b1c3a7a6e2e3b7b5a2a4b5b4c3b1g8f6f1c4c8b7e1g1c7c5b1d2c5d4\r
+g1f3e7e6g2g3d7d5f1g2c7c5c2c4d5c4f3e5g8f6e1g1f8e7b1a3e8g8a3c4f6d5d2d4c5d4d1d4f7f6\r
+g1f3e7e6g2g3d7d5f1g2c7c5e1g1b8c6d2d3g7g6e2e4f8g7d1e2g8e7e4e5d8c7f1e1a7a6c2c3c8d7\r
+g1f3f7f5d2d4e7e6c2c4g8f6b1c3f8e7d4d5e6d5c4d5e8g8g2g3d7d6f1g2b8d7e1g1d7e5f3d4e5g6\r
+g1f3f7f5d2d4e7e6c2c4g8f6e2e3f8e7b1c3e8g8f1d3d7d5c1d2c7c6c4c5b8d7f3g5d7b8f2f3d8c7\r
+g1f3f7f5d2d4g8f6c1f4g7g6e2e3f8g7h2h3c7c5c2c3b7b6b1d2e8g8f1d3c8a6d1b3g8h8d3a6b8a6\r
+g1f3f7f5g2g3g8f6f1g2g7g6c2c4f8g7b1c3e8g8e1g1d7d6d2d4b8c6d4d5c6a5d1d3c7c5f3g5a7a6\r
+g1f3g7g6c2c4f8g7d2d4d7d6b1c3b8d7e2e4e7e6f1e2b7b6e1g1c8b7c1e3g8e7d1c2h7h6a1d1e8g8\r
+g1f3g7g6c2c4f8g7d2d4g8f6g2g3e8g8f1g2d7d6b1c3c7c6e1g1c8f5f3h4f5d7e2e4e7e5h4f3f8e8\r
+g1f3g7g6d2d4f8g7c2c4d7d6b1c3b8d7e2e4e7e5f1e2c7c6e1g1d8e7c1e3g8h6h2h3f7f6a1c1e8g8\r
+g1f3g7g6d2d4f8g7c2c4d7d6b1c3c8g4g2g3b8c6d4d5c6a5c1d2c7c5b2b3g8f6f1g2e8g8e1g1a7a6\r
+g1f3g7g6d2d4g8f6g2g3f8g7f1g2d7d5c2c4d5c4b1a3b8c6a3c4c8e6b2b3e8g8c1b2e6d5a1c1a7a5\r
+g1f3g7g6e2e4f8g7d2d4d7d6c2c4c8g4f1e2b8c6c1e3e7e5d4d5g4f3e2f3c6d4e3d4e5d4b1a3g8e7\r
+g1f3g8f6b2b3d7d5c1b2c8g4e2e3b8d7h2h3g4h5d2d3e7e6g2g4h5g6f3h4f8b4c2c3b4d6h4g6h7g6\r
+g1f3g8f6b2b3g7g6c1b2f8g7g2g3e8g8f1g2d7d6d2d4c7c5c2c4c5d4f3d4a7a6b1c3e7e6e1g1d8c7\r
+g1f3g8f6c2c4b7b6b1c3c8b7d2d3c7c5e2e4d7d6g2g3e7e6f1g2f8e7e1g1e8g8b2b3a7a6c1b2f8e8\r
+g1f3g8f6c2c4b7b6d2d3g7g6e2e4d7d6b1c3f8g7d3d4e8g8f1e2c8b7d1c2e7e5d4e5d6e5c1e3f8e8\r
+g1f3g8f6c2c4b7b6d2d4e7e6g2g3c8a6b2b3f8b4c1d2b4e7f1g2e8g8e1g1d7d5c4d5f6d5b1c3b8d7\r
+g1f3g8f6c2c4b7b6e2e3c8b7f1e2e7e6e1g1f8e7b2b3e8g8c1b2c7c5b1c3b8c6a2a3d7d5c4d5f6d5\r
+g1f3g8f6c2c4b7b6g2g3c7c5f1g2c8b7b1c3g7g6d2d3f8g7e2e4b8c6e1g1e8g8f3h4c6d4e4e5b7g2\r
+g1f3g8f6c2c4b7b6g2g3c7c5f1g2c8b7b1c3g7g6d2d3f8g7e2e4e8g8h2h3f6e8c1e3e7e5e1g1d7d6\r
+g1f3g8f6c2c4b7b6g2g3c7c5f1g2c8b7b1c3g7g6e1g1f8g7d2d3e8g8e2e4d7d6a1b1b8c6a2a3f6e8\r
+g1f3g8f6c2c4b7b6g2g3c7c5f1g2c8b7e1g1e7e6b1c3f8e7d2d4c5d4d1d4d7d6b2b3b8d7c3b5d7c5\r
+g1f3g8f6c2c4b7b6g2g3c7c5f1g2c8b7e1g1e7e6b1c3f8e7d2d4c5d4d1d4d7d6c1e3e8g8a1d1b8d7\r
+g1f3g8f6c2c4b7b6g2g3c7c5f1g2c8b7e1g1g7g6b1c3f8g7d2d4c5d4f3d4b7g2g1g2e8g8e2e4d8c7\r
+g1f3g8f6c2c4b7b6g2g3c7c5f1g2c8b7e1g1g7g6b1c3f8g7d2d4c5d4f3d4b7g2g1g2e8g8e2e4d8c7\r
+g1f3g8f6c2c4b7b6g2g3c7c5f1g2c8b7e1g1g7g6b2b3f8g7c1b2e8g8e2e3e7e6d2d4d8e7b1c3b8a6\r
+g1f3g8f6c2c4b7b6g2g3c7c5f1g2c8b7e1g1g7g6d2d4c5d4d1d4f8g7b1c3d7d6f1d1b8d7b2b3a8c8\r
+g1f3g8f6c2c4b7b6g2g3c7c5f1g2c8b7e1g1g7g6d2d4c5d4d1d4f8g7b1c3d7d6f1d1b8d7b2b3a8c8\r
+g1f3g8f6c2c4b7b6g2g3c8b7f1g2c7c5b1c3g7g6e1g1f8g7d2d4c5d4d1d4b8c6d4f4a8c8f1d1d7d6\r
+g1f3g8f6c2c4b7b6g2g3c8b7f1g2c7c5e1g1g7g6b1c3f8g7d2d4c5d4f3d4b7g2g1g2d8c8b2b3c8b7\r
+g1f3g8f6c2c4b7b6g2g3c8b7f1g2e7e6b1c3f8e7d2d4f6e4c1d2e7f6e1g1e8g8a1c1e4d2d1d2d7d6\r
+g1f3g8f6c2c4b7b6g2g3c8b7f1g2e7e6e1g1f8e7b1c3e8g8b2b3d7d5c4d5f6d5c1b2c7c5a1c1e7f6\r
+g1f3g8f6c2c4b7b6g2g3c8b7f1g2e7e6e1g1f8e7b1c3e8g8d2d4f6e4c1d2e7f6d1c2e4d2c2d2d7d6\r
+g1f3g8f6c2c4b7b6g2g3c8b7f1g2e7e6e1g1f8e7b1c3e8g8f1e1d7d5c4d5e6d5d2d4b8a6c1g5c7c6\r
+g1f3g8f6c2c4b7b6g2g3c8b7f1g2e7e6e1g1f8e7d2d4e8g8b1c3f6e4d1c2e4c3c2c3f7f5b2b3e7f6\r
+g1f3g8f6c2c4b7b6g2g3c8b7f1g2e7e6e1g1f8e7d2d4e8g8b1c3f6e4d1c2e4c3c2c3f7f5b2b3e7f6\r
+g1f3g8f6c2c4b7b6g2g3c8b7f1g2e7e6e1g1f8e7d2d4e8g8d4d5e6d5f3d4b7c6c4d5c6d5g2d5f6d5\r
+g1f3g8f6c2c4b7b6g2g3c8b7f1g2e7e6e1g1f8e7d2d4e8g8d4d5e6d5f3d4b8c6c4d5c6d4d1d4c7c5\r
+g1f3g8f6c2c4b7b6g2g3c8b7f1g2g7g6b1c3f8g7d2d4f6e4c3e4b7e4e1g1e8g8d4d5c7c5g2h3e4f3\r
+g1f3g8f6c2c4b7b6g2g3c8b7f1g2g7g6e1g1f8g7d2d4e7e6b1c3f6e4c3e4b7e4c1g5f7f6g5e3e8g8\r
+g1f3g8f6c2c4b7b6g2g3e7e6f1g2c8b7e1g1f8e7d2d4e8g8d4d5e6d5f3h4c7c6c4d5f6d5h4f5e7c5\r
+g1f3g8f6c2c4c7c5b1c3b8c6d2d4c5d4f3d4e7e6a2a3c6d4d1d4b7b6c1f4f8c5d4d2c8b7e2e3e8g8\r
+g1f3g8f6c2c4c7c5b1c3b8c6d2d4c5d4f3d4e7e6a2a3c6d4d1d4b7b6d4f4c8b7e2e4d7d6c1e3f8e7\r
+g1f3g8f6c2c4c7c5b1c3b8c6d2d4c5d4f3d4e7e6a2a3c6d4d1d4b7b6d4f4c8b7e2e4d7d6f1d3f8e7\r
+g1f3g8f6c2c4c7c5b1c3b8c6d2d4c5d4f3d4e7e6a2a3f8e7e2e3d7d5c4d5e6d5f1b5c8d7d4f3a7a6\r
+g1f3g8f6c2c4c7c5b1c3b8c6d2d4c5d4f3d4e7e6d4b5d7d5c1f4e6e5c4d5e5f4d5c6b7c6d1d8e8d8\r
+g1f3g8f6c2c4c7c5b1c3b8c6d2d4c5d4f3d4e7e6g2g3d8b6d4b3d7d5c4d5f6d5f1g2d5c3b2c3f8e7\r
+g1f3g8f6c2c4c7c5b1c3b8c6d2d4c5d4f3d4e7e6g2g3d8b6d4b3d7d5c4d5f6d5f1g2d5c3b2c3f8e7\r
+g1f3g8f6c2c4c7c5b1c3b8c6d2d4c5d4f3d4e7e6g2g3d8b6d4b5c6e5f1g2a7a6d1a4a8b8c1e3f8c5\r
+g1f3g8f6c2c4c7c5b1c3b8c6g2g3d7d5c4d5f6d5f1g2d5c7d2d3e7e5f3d2c8d7e1g1f8e7d2c4f7f6\r
+g1f3g8f6c2c4c7c5b1c3b8c6g2g3d7d5c4d5f6d5f1g2d5c7e1g1e7e5f3e1c8e6e1d3f7f6f2f4c5c4\r
+g1f3g8f6c2c4c7c5b1c3b8c6g2g3g7g6f1g2f8g7e1g1e8g8d2d4c5d4f3d4c6d4d1d4d7d6d4d3a7a6\r
+g1f3g8f6c2c4c7c5b1c3d7d5c4d5f6d5d2d4d5c3b2c3g7g6e2e3f8g7f1d3e8g8e1g1d8c7a2a4b8c6\r
+g1f3g8f6c2c4c7c5b1c3d7d5c4d5f6d5e2e4d5b4f1b5b8c6d2d4c5d4a2a3d4c3d1d8e8d8a3b4c3b2\r
+g1f3g8f6c2c4c7c5b1c3d7d5c4d5f6d5e2e4d5b4f1c4b4d3e1e2d3f4e2f1f4e6b2b4c5b4c3d5g7g6\r
+g1f3g8f6c2c4c7c5b1c3e7e6g2g3b7b6f1g2c8b7e1g1f8e7b2b3e8g8c1b2d7d5c4d5f6d5d2d4b8a6\r
+g1f3g8f6c2c4c7c5b1c3e7e6g2g3b7b6f1g2c8b7e1g1f8e7d2d4c5d4d1d4d7d6c1g5a7a6g5f6e7f6\r
+g1f3g8f6c2c4c7c5b1c3e7e6g2g3b7b6f1g2c8b7e1g1f8e7d2d4c5d4d1d4d7d6f1d1a7a6b2b3b8d7\r
+g1f3g8f6c2c4c7c5d2d4c5d4f3d4e7e6g2g3f8b4b1c3e8g8f1g2d7d5e1g1d5c4c1g5h7h6g5f6d8f6\r
+g1f3g8f6c2c4c7c5g2g3b7b6f1g2c8b7e1g1e7e6b1c3f8e7d2d4c5d4d1d4d7d6c1g5a7a6g5f6e7f6\r
+g1f3g8f6c2c4c7c5g2g3b8c6f1g2d7d5c4d5f6d5d2d4c8f5e1g1d5b4a2a3b4c2f3h4d8d4b1d2c2a1\r
+g1f3g8f6c2c4c7c5g2g3b8c6f1g2e7e5b1c3d7d6e1g1f8e7d2d3e8g8a2a3a7a6f3e1a8b8e1c2c6d4\r
+g1f3g8f6c2c4c7c5g2g3d7d5c4d5f6d5f1g2b8c6d2d4c5d4f3d4d5b4d4c6d8d1e1d1b4c6b1c3c8d7\r
+g1f3g8f6c2c4c7c5g2g3d7d5c4d5f6d5f1g2b8c6d2d4c5d4f3d4d5b4d4c6d8d1e1d1b4c6g2c6b7c6\r
+g1f3g8f6c2c4c7c5g2g3e7e6f1g2d7d5c4d5f6d5e1g1f8e7b1c3e8g8c3d5e6d5d2d4b8c6d4c5e7c5\r
+g1f3g8f6c2c4c7c5g2g3g7g6b2b3f8g7c1b2e8g8f1g2b8c6e1g1d7d6d2d4c5d4f3d4c8d7b1c3d8a5\r
+g1f3g8f6c2c4c7c6b1c3d7d5e2e3a7a6d2d4b7b5b2b3c8g4f1e2e7e6e1g1b8d7h2h3g4h5f3e5h5e2\r
+g1f3g8f6c2c4e7e6b1c3b7b6e2e4c8b7d2d3d7d6g2g3g7g6f1g2f8g7e1g1c7c5f1e1e8g8d3d4c5d4\r
+g1f3g8f6c2c4e7e6b1c3b7b6e2e4c8b7f1d3c7c5e1g1b8c6e4e5f6g4d3e4d8c8d2d4c5d4e4c6c8c6\r
+g1f3g8f6c2c4e7e6b1c3b7b6g2g3c8b7f1g2c7c5e1g1f8e7b2b3d7d6c1b2e8g8e2e3a7a6d2d4c5d4\r
+g1f3g8f6c2c4e7e6b1c3c7c5e2e4b8c6f1e2d7d5e4e5f6e4e1g1f8e7d1c2e4g5f3g5e7g5c4d5e6d5\r
+g1f3g8f6c2c4e7e6b1c3c7c5g2g3b8c6f1g2d7d5c4d5f6d5e1g1f8e7d2d4d5c3b2c3e8g8a1b1d8a5\r
+g1f3g8f6c2c4e7e6b1c3d7d5d2d4c7c5c4d5c5d4d1d4f6d5e2e4d5c3d4c3b8c6f1b5c8d7e1g1d8b6\r
+g1f3g8f6c2c4e7e6b1c3d7d5d2d4c7c5c4d5f6d5e2e3b8c6f1d3f8e7a2a3c5d4e3d4e8g8e1g1d5f6\r
+g1f3g8f6c2c4e7e6b1c3d7d5d2d4c7c5e2e3b8c6c4d5e6d5f1e2c5d4f3d4f8d6e1g1e8g8d4f3c8e6\r
+g1f3g8f6c2c4e7e6b1c3d7d5d2d4c7c5e2e3b8c6c4d5f6d5f1c4f8e7c4d5e6d5d4c5c8e6e1g1e7c5\r
+g1f3g8f6c2c4e7e6b1c3d7d5d2d4c7c6d1b3f8e7g2g3e8g8f1g2d8b6e1g1b6b3a2b3b8a6c1d2f8d8\r
+g1f3g8f6c2c4e7e6b1c3d7d5d2d4c7c6e2e3b8d7f1d3d5c4d3c4b7b5c4d3c8b7e3e4b5b4c3a4c6c5\r
+g1f3g8f6c2c4e7e6b1c3d7d5d2d4c7c6e2e3b8d7f1d3d5c4d3c4b7b5c4d3c8b7e3e4b5b4c3a4c6c5\r
+g1f3g8f6c2c4e7e6b1c3d7d5d2d4d5c4e2e3a7a6a2a4c7c5f1c4b8c6e1g1f8e7d4c5d8d1f1d1e7c5\r
+g1f3g8f6c2c4e7e6b1c3d7d5d2d4f8b4c4d5e6d5c1g5b8d7e2e3c7c5g5f6d7f6f1b5e8e7e1g1c5c4\r
+g1f3g8f6c2c4e7e6b1c3d7d5d2d4f8e7c1f4e8g8e2e3c7c5d4c5e7c5d1c2b8c6a2a3d8a5e1c1c5e7\r
+g1f3g8f6c2c4e7e6b1c3d7d5d2d4f8e7c1g5e8g8e2e3h7h6g5h4b7b6d1b3c8b7h4f6e7f6c4d5e6d5\r
+g1f3g8f6c2c4e7e6b1c3d7d5d2d4f8e7c1g5e8g8e2e3h7h6g5h4b7b6d1b3c8b7h4f6e7f6c4d5e6d5\r
+g1f3g8f6c2c4e7e6b1c3d7d5d2d4f8e7c1g5h7h6g5f6e7f6e2e3e8g8a1c1c7c6f1d3b8d7e1g1d5c4\r
+g1f3g8f6c2c4e7e6b1c3d7d5d2d4f8e7c1g5h7h6g5h4e8g8a1c1d5c4e2e3c7c5f1c4c5d4f3d4c8d7\r
+g1f3g8f6c2c4e7e6b1c3d7d5d2d4f8e7c1g5h7h6g5h4e8g8e2e3b7b6a1c1c8b7f1e2d5c4e2c4b8d7\r
+g1f3g8f6c2c4e7e6b1c3d7d5d2d4f8e7c1g5h7h6g5h4e8g8e2e3b7b6f1d3c8b7h4f6e7f6c4d5e6d5\r
+g1f3g8f6c2c4e7e6b1c3d7d5d2d4f8e7c1g5h7h6g5h4e8g8e2e3f6e4h4e7d8e7a1c1e4c3c1c3d5c4\r
+g1f3g8f6c2c4e7e6b1c3f8b4d1b3c7c5a2a3b4a5g2g3b8c6f1g2e8g8e1g1d7d5d2d3d5d4c3a4b7b6\r
+g1f3g8f6c2c4e7e6b1c3f8b4d1c2c7c5g2g3e8g8f1g2b8c6e1g1d8e7e2e3d7d5c3a4d5c4c2c4a8b8\r
+g1f3g8f6c2c4e7e6b1c3f8b4d1c2e8g8a2a3b4c3c2c3b7b6b2b4d7d6c1b2c8b7g2g3c7c5f1g2b8d7\r
+g1f3g8f6c2c4e7e6b1c3f8b4d1c2e8g8a2a3b4c3c2c3b7b6g2g3c8b7f1g2d7d5c4d5e6d5e1g1f8e8\r
+g1f3g8f6c2c4e7e6b1c3f8b4d1c2e8g8a2a3b4c3c2c3c7c5b2b4b7b6c1b2d7d6g2g3c8b7f1g2b8d7\r
+g1f3g8f6c2c4e7e6b1c3f8b4g2g3e8g8f1g2c7c5e1g1b8c6d2d4c5d4f3d4d8e7d4c2b4c3b2c3f8d8\r
+g1f3g8f6c2c4e7e6b1c3f8b4g2g3e8g8f1g2d7d5d1b3c7c5e1g1b8c6d2d3h7h6e2e3f8e8a2a3d5c4\r
+g1f3g8f6c2c4e7e6b1c3f8b4g2g4d7d5g4g5f6e4d1a4b8c6c3e4d5e4f3e5e4e3f2e3d8g5e5f3g5e7\r
+g1f3g8f6c2c4e7e6d2d4b7b6g2g3c8b7f1g2f8e7b1c3f6e4d1c2e4c3b2c3f7f5f3h4b8c6h4f3c6a5\r
+g1f3g8f6c2c4e7e6d2d4b7b6g2g3c8b7f1g2f8e7e1g1d7d6b1c3b8d7d1c2e8g8e2e4e6e5f1e1f8e8\r
+g1f3g8f6c2c4e7e6d2d4d7d5b1c3c7c5c4d5f6d5g2g3c5d4c3d5d8d5d1d4b8c6d4d5e6d5f1g2c8f5\r
+g1f3g8f6c2c4e7e6d2d4d7d5b1c3c7c6c1g5b8d7e2e3d8a5c4d5f6d5d1d2d7b6c3d5a5d2f3d2e6d5\r
+g1f3g8f6c2c4e7e6d2d4d7d5b1c3c7c6c1g5b8d7e2e3d8a5f3d2f8b4d1c2d5c4g5f6d7f6d2c4b4c3\r
+g1f3g8f6c2c4e7e6d2d4d7d5g2g3d5c4f1g2c7c5e1g1b8c6f3e5c8d7b1a3f6d5e5d7d8d7d4c5f8c5\r
+g1f3g8f6c2c4e7e6g2g3a7a6f1g2b7b5b2b3c7c5e1g1c8b7e2e3f8e7b1c3d8a5c1b2e8g8d1e2b8c6\r
+g1f3g8f6c2c4e7e6g2g3b7b6f1g2c8b7b1c3f8e7e1g1e8g8f1e1f6e4c3e4b7e4d2d3e4b7d3d4b7e4\r
+g1f3g8f6c2c4e7e6g2g3b7b6f1g2c8b7d2d4f8e7e1g1e8g8b1c3f6e4c3e4b7e4f3h4e4g2h4g2d7d6\r
+g1f3g8f6c2c4e7e6g2g3b7b6f1g2c8b7e1g1c7c5b1c3f8e7d2d4c5d4d1d4b8c6d4f4e8g8f1d1d8b8\r
+g1f3g8f6c2c4e7e6g2g3b7b6f1g2c8b7e1g1f8e7d2d4e8g8b1c3f6e4d1c2e4c3c2c3c7c5f1d1d7d6\r
+g1f3g8f6c2c4e7e6g2g3b7b6f1g2c8b7e1g1f8e7d2d4e8g8f1e1d7d5c4d5e6d5b1c3b8d7c1f4f6e4\r
+g1f3g8f6c2c4e7e6g2g3d7d5d2d4d5c4d1a4b8d7a4c4b7b6f1g2c8b7e1g1c7c5f1d1a7a6d4c5f8c5\r
+g1f3g8f6c2c4e7e6g2g3d7d5f1g2c7c5e1g1b8c6d2d4f6e4c4d5e6d5c1e3c5c4b1c3e4c3b2c3d8a5\r
+g1f3g8f6c2c4e7e6g2g3d7d5f1g2c7c6e1g1f8d6b2b3b8d7c1b2e8g8c4d5e6d5d2d3f8e8b1d2d7f8\r
+g1f3g8f6c2c4e7e6g2g3d7d5f1g2d5c4d1a4b8d7a4c4a7a6d2d3b7b5c4c6a8b8c1f4f6d5f4g5f8e7\r
+g1f3g8f6c2c4e7e6g2g3d7d5f1g2d5c4d1a4b8d7a4c4c7c5e1g1b7b6c4c2c8b7b2b3f8e7c1b2e8g8\r
+g1f3g8f6c2c4e7e6g2g3d7d5f1g2d5c4d1c2a7a6f3e5f6d5e5c4b7b5c4e3d5e3d2e3a8a7a2a4c8b7\r
+g1f3g8f6c2c4e7e6g2g3d7d5f1g2f8e7e1g1e8g8d2d4d5c4d1c2a7a6a2a4b8c6c2c4d8d5b1d2f8d8\r
+g1f3g8f6c2c4e7e6g2g3d7d5f1g2f8e7e1g1e8g8d2d4d5c4d1c2a7a6c1g5b7b5g5f6e7f6f3g5f6g5\r
+g1f3g8f6c2c4g7g6b1c3d7d5c4d5f6d5d1a4b8c6f3e5d5b6e5c6b6a4c6d8a4c3d8f7e8f7d2c3e7e5\r
+g1f3g8f6c2c4g7g6b1c3d7d5c4d5f6d5d1a4c8d7a4h4d5c3d2c3b8c6e2e4e7e5c1g5f8e7f1c4h7h6\r
+g1f3g8f6c2c4g7g6b1c3d7d5c4d5f6d5d1a4c8d7a4h4d5c3d2c3b8c6e2e4e7e5c1g5f8e7f1c4h7h6\r
+g1f3g8f6c2c4g7g6b1c3d7d5c4d5f6d5d1a4c8d7a4h4d5c3d2c3b8c6e2e4e7e5h4d8a8d8f1c4f7f6\r
+g1f3g8f6c2c4g7g6b1c3d7d5c4d5f6d5d1a4c8d7a4h4d7c6h4d4f7f6e2e3f8g7f1e2e7e5d4c4d5c3\r
+g1f3g8f6c2c4g7g6b1c3d7d5c4d5f6d5g2g3f8g7f1g2e7e5c3d5d8d5d2d3e8g8e1g1b8c6c1e3d5d6\r
+g1f3g8f6c2c4g7g6b1c3f8g7d2d4d7d6g2g3e8g8f1g2b8c6e1g1a8b8h2h3a7a6a2a4f6d7a4a5e7e5\r
+g1f3g8f6c2c4g7g6b1c3f8g7d2d4d7d6g2g3e8g8f1g2b8d7e1g1c7c6e2e4e7e5h2h3a7a5c1e3e5d4\r
+g1f3g8f6c2c4g7g6b1c3f8g7d2d4e8g8e2e4d7d6f1e2e7e5d4d5f6h5f3g1b8d7e2h5g6h5d1h5d7c5\r
+g1f3g8f6c2c4g7g6b1c3f8g7e2e4c7c5d2d4c5d4f3d4b8c6c1e3f6g4d1g4c6d4g4d1d4e6d1d2d8a5\r
+g1f3g8f6c2c4g7g6b1c3f8g7e2e4d7d6d2d4e8g8c1e3e7e5d4e5d6e5d1d8f8d8c3d5d8d7e1c1b8c6\r
+g1f3g8f6c2c4g7g6b1c3f8g7e2e4d7d6d2d4e8g8f1e2b8d7e1g1e7e5f1e1f8e8e2f1h7h6d4d5f6h7\r
+g1f3g8f6c2c4g7g6b1c3f8g7e2e4d7d6d2d4e8g8f1e2e7e5e1g1b8c6d4d5c6e7c1d2f6h5a1c1f7f5\r
+g1f3g8f6c2c4g7g6b1c3f8g7e2e4d7d6d2d4e8g8f1e2e7e5e1g1b8c6d4d5c6e7f3d2a7a5b2b3c7c5\r
+g1f3g8f6c2c4g7g6b1c3f8g7e2e4d7d6d2d4e8g8f1e2e7e5e1g1b8c6d4d5c6e7f3e1f6d7e1d3f7f5\r
+g1f3g8f6c2c4g7g6b1c3f8g7e2e4d7d6d2d4e8g8f1e2e7e5e1g1b8c6d4d5c6e7f3e1f6d7e1d3f7f5\r
+g1f3g8f6c2c4g7g6b1c3f8g7e2e4d7d6d2d4e8g8f1e2e7e5e1g1b8c6d4d5c6e7f3e1f6d7e1d3f7f5\r
+g1f3g8f6c2c4g7g6b2b3f8g7c1b2c7c5g2g3d7d6f1g2e7e5e1g1b8c6b1c3e8g8d2d3f6h5f3d2c8g4\r
+g1f3g8f6c2c4g7g6d2d4f8g7b1c3d7d6e2e4e8g8f1e2e7e5e1g1b8c6d4d5c6e7b2b4a7a5c1a3a5b4\r
+g1f3g8f6c2c4g7g6d2d4f8g7g2g3e8g8f1g2c7c6b1c3d7d5c4d5c6d5f3e5e7e6e1g1f6d7e5d7c8d7\r
+g1f3g8f6c2c4g7g6g2g3f8g7b1c3e8g8f1g2d7d6e1g1b8c6d2d3h7h6a2a3e7e5a1b1a7a5f3d2c6e7\r
+g1f3g8f6c2c4g7g6g2g3f8g7f1g2e8g8e1g1c7c5d2d4c5d4f3d4d7d5c4d5f6d5b1c3d5c3b2c3d8c7\r
+g1f3g8f6c2c4g7g6g2g3f8g7f1g2e8g8e1g1d7d6b1c3b8c6d2d3a7a6f3d2a8b8a2a3f6e8e2e3c8d7\r
+g1f3g8f6c2c4g7g6g2g3f8g7f1g2e8g8e1g1d7d6b1c3b8c6d2d3f6h5d3d4e7e5d4d5c6e7e2e4c7c5\r
+g1f3g8f6c2c4g7g6g2g3f8g7f1g2e8g8e1g1d7d6d2d4b8d7b1c3e7e5d4e5d6e5h2h3c7c6c1e3d8e7\r
+g1f3g8f6c2c4g7g6g2g3f8g7f1g2e8g8e1g1d7d6d2d4b8d7b1c3e7e5e2e4c7c6f1e1e5d4f3d4f6g4\r
+g1f3g8f6c2c4g7g6g2g3f8g7f1g2e8g8e1g1d7d6d2d4b8d7b1c3e7e5e2e4e5d4f3d4f8e8f1e1c7c6\r
+g1f3g8f6c2c4g7g6g2g3f8g7f1g2e8g8e1g1d7d6d2d4c7c5h2h3b8c6b1c3c8d7d4c5d6c5c1e3d8c8\r
+g1f3g8f6d2d4b7b6c1g5f6e4g5h4c8b7e2e3h7h6b1d2g7g5h4g3e4g3h2g3e7e6c2c3d7d6d1a4c7c6\r
+g1f3g8f6d2d4d7d5c2c4d5c4e2e3g7g6f1c4f8g7e1g1e8g8b2b3c7c6c1b2c8g4b1d2b8d7h2h3g4f5\r
+g1f3g8f6d2d4d7d5c2c4e7e6b1c3c7c6e2e3f8d6f1d3b8d7e1g1e8g8e3e4d5e4c3e4f6e4d3e4h7h6\r
+g1f3g8f6d2d4d7d5c2c4e7e6b1c3f8e7c1g5e8g8e2e3h7h6g5f6e7f6a1c1f6e7a2a3c7c6f1d3b8d7\r
+g1f3g8f6d2d4d7d6c2c4b8d7b1c3c7c6e2e4e7e5f1e2f8e7e1g1e8g8f1e1a7a6e2f1b7b5a2a3c8b7\r
+g1f3g8f6d2d4e7e6c1g5h7h6g5f6d8f6e2e4d7d6b1c3g7g5e4e5f6e7f1b5c8d7e1g1d6d5b5d3b8c6\r
+g1f3g8f6d2d4e7e6c2c4b7b6b1c3f8b4e2e3c7c5f1d3d7d5c4d5e6d5e1g1e8g8a2a3b4c3b2c3c8a6\r
+g1f3g8f6d2d4e7e6e2e3b7b6c2c4c8b7b1c3d7d5c4d5f6d5f1b5c7c6b5d3f8e7e3e4d5c3b2c3e8g8\r
+g1f3g8f6d2d4e7e6e2e3c7c5c2c4d7d5d4c5f8c5b1c3c5b4c1d2d5c4f1c4e8g8e1g1b8c6d1e2d8e7\r
+g1f3g8f6d2d4e7e6e2e3f8b4c2c3b4e7f1e2e8g8e1g1d7d5c3c4b7b6b1c3c8b7c4d5e6d5f3e5f6d7\r
+g1f3g8f6d2d4e7e6g2g3b7b6f1g2c8b7c2c4f8e7b1c3e8g8d1d3d7d5c4d5f6d5c3d5e6d5e1g1b8d7\r
+g1f3g8f6d2d4g7g6g2g3d7d5f1g2f8g7e1g1e8g8c2c4d5c4b1a3b8c6a3c4c8e6c4e5e6d5c1f4e7e6\r
+g1f3g8f6d2d4g7g6g2g3f8g7f1g2e8g8e1g1d7d6b1c3b8a6e2e4c7c5e4e5f6e8e5d6e8d6d4c5a6c5\r
+g1f3g8f6d2d4g7g6g2g3f8g7f1g2e8g8e1g1d7d6f1e1b8c6b1c3e7e5d4e5d6e5h2h3d8e7c1g5f8d8\r
+g1f3g8f6g2g3b7b5a2a4b5b4d2d3c8b7e2e4d7d6f1g2b8d7e1g1e7e6a4a5a8b8b1d2f8e7d2c4e8g8\r
+g1f3g8f6g2g3b7b6c2c4c7c5f1g2c8b7e1g1e7e6b1c3f8e7b2b3d7d5e2e3e8g8c1b2b8d7d1e2f6e4\r
+g1f3g8f6g2g3b7b6f1g2c8b7e1g1c7c5d2d3g7g6e2e4d7d6f3h4b8c6f2f4f8g7b1c3e8g8f4f5c6e5\r
+g1f3g8f6g2g3d7d5c2c4c7c6f1g2d5c4a2a4g7g6b1a3d8d5e1g1b8a6f3e1d5h5a3c4c8h3e1f3h3g2\r
+g1f3g8f6g2g3d7d5f1g2c7c5e1g1g7g6d2d3f8g7b1d2e8g8e2e4b8c6c2c3e7e5f1e1h7h6e4d5f6d5\r
+g1f3g8f6g2g3d7d5f1g2c7c6b2b3c8f5c1b2e7e6e1g1f8e7d2d3h7h6b1d2e8g8d1e1b8d7e2e4f5h7\r
+g1f3g8f6g2g3d7d5f1g2c7c6c2c4d5c4b1a3b7b5d2d3c4d3f3e5a7a6e1g1c8b7d1b3e7e6f1d1d8c7\r
+g1f3g8f6g2g3d7d5f1g2c7c6e1g1c8g4b2b3b8d7c1b2e7e6c2c4f8d6d2d3e8g8b1d2d8e7d1c2e6e5\r
+g1f3g8f6g2g3d7d5f1g2c7c6e1g1c8g4c2c4e7e6c4d5c6d5d1b3g4f3g2f3d8d7b1c3b8c6f3g2f8e7\r
+g1f3g8f6g2g3d7d5f1g2c7c6e1g1c8g4d2d3b8d7b1d2e7e5e2e4f8d6h2h3g4f3d1f3e8g8e4d5f6d5\r
+g1f3g8f6g2g3d7d5f1g2c8f5c2c4c7c6c4d5c6d5d1b3d8c8b1c3e7e6d2d3b8c6c1f4f8e7e1g1e8g8\r
+g1f3g8f6g2g3d7d5f1g2c8f5d2d3e7e6b1d2h7h6e1g1f8c5d1e1e8g8e2e4d5e4d2e4f6e4d3e4f5h7\r
+g1f3g8f6g2g3d7d5f1g2c8f5e1g1b8d7d2d3c7c6b1d2h7h6e2e4d5e4d3e4f6e4f3d4e4d2c1d2f5h7\r
+g1f3g8f6g2g3d7d5f1g2g7g6c2c4c7c6b2b3f8g7c1b2e8g8e1g1c8g4d2d4f6e4f3e5g4e6f2f3e4d6\r
+g1f3g8f6g2g3d7d6f1g2e7e5d2d3g7g6e1g1f8g7e2e4e8g8b1d2b8d7a2a4a7a5d2c4d7c5c1e3c5e6\r
+g1f3g8f6g2g3g7g6b2b3f8g7c1b2d7d5c2c4c8g4f1g2c7c6e1g1e8g8d2d3g4f3g2f3b8d7b1d2e7e6\r
+g1f3g8f6g2g3g7g6b2b3f8g7c1b2e8g8f1g2c7c5c2c4b8c6e1g1d7d6b1c3c8g4h2h3g4d7d2d4d8c8\r
+g1f3g8f6g2g3g7g6b2b4b7b6c1b2c8b7b1a3f8g7f1g2e8g8e1g1d7d6c2c4c7c5a3c2d8c7d2d3b8d7\r
+g1f3g8f6g2g3g7g6c2c4c7c6f1g2f8g7d2d4e8g8b1c3d7d5c4d5c6d5f3e5b7b6c1g5c8b7g5f6g7f6\r
+g1f3g8f6g2g3g7g6c2c4f8g7b1c3e8g8f1g2d7d6d2d4b8c6e1g1a7a6d4d5c6a5f3d2c7c5a1b1a8b8\r
+g1f3g8f6g2g3g7g6c2c4f8g7f1g2e8g8e1g1b8c6b1c3d7d6d2d4a7a6d4d5c6a5f3d2c7c5d1c2e7e5\r
+g1f3g8f6g2g3g7g6f1g2f8g7c2c4c7c6d2d4d7d5c4d5c6d5b1c3e8g8f3e5b8c6e1g1c8f5e5c6b7c6\r
+g1f3g8f6g2g3g7g6f1g2f8g7d2d4e8g8e1g1d7d6b2b3a7a5c2c4a5a4b3b4c7c5b4c5d6c5b1a3c5d4\r
+g1f3g8f6g2g3g7g6f1g2f8g7e1g1e8g8c2c4c7c6b2b3f6e4d2d4d7d5c1b2c8e6b1d2e4d2d1d2b8a6\r
+g1f3g8f6g2g3g7g6f1g2f8g7e1g1e8g8c2c4c7c6d2d4d7d5c4d5c6d5f3e5c8f5b1c3f6e4c1f4b8c6\r
+g1f3g8f6g2g3g7g6f1g2f8g7e1g1e8g8d2d3c7c5e2e4b8c6c2c3d7d5e4e5f6e8d3d4c8g4h2h3g4f3\r
+g1f3g8f6g2g3g7g6f1g2f8g7e1g1e8g8d2d3d7d5b1d2c7c5e2e4d5e4d3e4b8c6c2c3h7h6d1e2c8e6\r
+g1f3g8f6g2g3g7g6f1g2f8g7e1g1e8g8d2d4c7c5c2c3b7b6f3e5d7d5a2a4c8b7a4a5b8d7e5d7f6d7\r
+g2g3c7c5f1g2b8c6e2e4g7g6d2d3f8g7f2f4d7d6g1f3g8f6e1g1e8g8c2c3a8b8d1e2f6e8c1e3e8c7\r
+g2g3d7d5f1g2c7c6c2c4g8f6g1f3g7g6b2b3f8g7c1b2c8g4e1g1e8g8d2d3g4f3g2f3b8d7f3g2f8e8\r
+g2g3d7d5f1g2c7c6d2d3g8f6b1d2c8g4h2h3g4h5g1f3b8d7e1g1e7e6e2e4d5e4d3e4f8c5d1e2e8g8\r
+g2g3d7d5f2f4h7h5f1g2h5h4b1c3c7c6d2d3h4g3h2g3h8h1g2h1d8b6g1f3c8g4c3a4b6a5c2c3b8d7\r
+g2g3d7d5g1f3c7c5f1g2g7g6c2c4d5d4b2b4c5b4d1a4c8d7a4b4b8c6b4b3f8g7d2d3g8f6e1g1e8g8\r
+g2g3d7d5g1f3c7c5f1g2g7g6e1g1f8g7d2d4c5d4f3d4g8f6c2c4e8g8c4d5f6d5b1c3d5c3b2c3b8c6\r
+g2g3d7d5g1f3c7c6f1g2c8f5e1g1e7e6d2d3g8f6b1d2b8d7d1e1h7h6e2e4f5h7e1e2f8e7e4e5f6g8\r
+g2g3d7d5g1f3c7c6f1g2c8f5e1g1g8f6d2d3h7h6c2c4d5c4d3c4d8d1f1d1b8d7c1f4g7g5f4e3f8g7\r
+g2g3d7d5g1f3g8f6f1g2c7c6e1g1c8g4b2b3b8d7c1b2e7e6c2c4f8d6d2d4d8b8b1d2e8g8f1e1b7b5\r
+g2g3d7d5g1f3g8f6f1g2c8f5c2c4c7c6c4d5c6d5d1b3d8b6b3b6a7b6b1c3b8c6d2d3e7e6e1g1f8c5\r
+g2g3e7e5c2c4b8c6f1g2g7g6b1c3f8g7d2d3g8e7a1b1a7a5e2e3e8g8g1e2d7d6e1g1c8e6c3d5e7f5\r
+g2g3e7e5c2c4c7c6g1f3e5e4f3d4d7d5d2d3g8f6f1g2f8c5d4b3c5b4c1d2b4d2d1d2d5c4d3c4d8e7\r
+g2g3e7e5e2e4g8f6f1g2b8c6b1c3f8c5d2d3d7d6c3a4c5b4c2c3b4a5b2b4a5b6g1f3c8e6e1g1d8d7\r
+g2g3g7g6f1g2f8g7c2c4e7e5b1c3f7f5d2d4e5d4c3b5b8c6g1f3g8f6e1g1f6e4b5d4c6d4f3d4e8g8\r
+g2g3g7g6f1g2f8g7d2d4c7c5c2c3d8b6g1f3g8f6e1g1e8g8d4d5d7d6c3c4e7e6b1c3e6d5c4d5b8d7\r
+g2g3g7g6f1g2f8g7d2d4d7d6e2e4g8f6g1e2e8g8e1g1b8d7b1c3c7c6a2a4a7a5b2b3f8e8c1a3d8c7\r
+g2g3g7g6f1g2f8g7d2d4d7d6e2e4g8f6g1e2e8g8e1g1e7e5d4e5d6e5b2b3b8c6c1b2f8e8d1d8e8d8\r
+g2g3g7g6f1g2f8g7e2e4e7e5g1e2b8c6c2c3g8e7d2d4e5d4c3d4d7d5e4e5f7f6f2f4e8g8e1g1c8g4\r
+g2g3g7g6g1f3g8f6f1g2f8g7d2d4c7c5d4d5d7d6c2c4b7b5c4b5d8a5f3d2a5b5e1g1e8g8b1a3b5a6\r
+g2g3g8f6f1g2d7d5g1f3g7g6c2c4f8g7c4d5f6d5e1g1e8g8d2d4b8a6b1c3d5b6b2b3a6b4c1b2a7a5\r
+g2g3g8f6f1g2g7g6e2e4d7d6d2d4f8g7g1e2e8g8e1g1e7e5b1c3c7c6a2a4b8d7a4a5e5d4e2d4d7c5\r
+g2g3g8f6g1f3b7b5f1g2c8b7e1g1e7e6b2b3f8e7c2c4b5c4b3c4c7c5b1c3e8g8a1b1b7c6d2d3d7d6\r
+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$\r
+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
\ No newline at end of file
diff --git a/winboard/install/files/root/Pulsar/kingsBookBlack.txt b/winboard/install/files/root/Pulsar/kingsBookBlack.txt
new file mode 100644 (file)
index 0000000..a926338
--- /dev/null
@@ -0,0 +1,6 @@
+g1f3d7e5d2d4\r
+b1c3e7e5\r
+d2d4d7d5\r
+e2e4d7d5\r
+e2e4e7e5\r
+$
\ No newline at end of file
diff --git a/winboard/install/files/root/Pulsar/kingsBookWhite.txt b/winboard/install/files/root/Pulsar/kingsBookWhite.txt
new file mode 100644 (file)
index 0000000..d6aeb05
--- /dev/null
@@ -0,0 +1,5 @@
+g1f3d7e5\r
+b1c3e7e5\r
+d2d4d7d5\r
+e2e4d7d5\r
+$
\ No newline at end of file
diff --git a/winboard/install/files/root/Pulsar/logo.bmp b/winboard/install/files/root/Pulsar/logo.bmp
new file mode 100644 (file)
index 0000000..8f9cbfd
Binary files /dev/null and b/winboard/install/files/root/Pulsar/logo.bmp differ
diff --git a/winboard/install/files/root/Pulsar/losersBlack.txt b/winboard/install/files/root/Pulsar/losersBlack.txt
new file mode 100644 (file)
index 0000000..23b9e1d
--- /dev/null
@@ -0,0 +1,26 @@
+a2a4a7a5h2h3\r
+a2a3b7b5\r
+a2a3c7c6h2h3a7a6c2c3h7h6\r
+c2c3b7b6a2a3\r
+c2c3c7c5a2a4a7a6\r
+c2c4c7c5b2b4c5b4c3b4f7f5\r
+c2c4c7c5b2b4c5b4c3b4d8c7\r
+c2c4c7c5b2b4c5b4c3b4d8a5\r
+c2c3c7c6a2a4a7a5\r
+c2c3f7f5a2a3g8h6e2e4f5e4\r
+c2c4e7e5b2b4f8b4h2h4b4d2b1d2d8h4h1h4\r
+c2c4c7c5a2a4a7a5\r
+e2e4a7a6f1a6b7a6\r
+e2e4b7b5f1b5f7f6b5d7b8d7\r
+e2e4c7c5d2d4c5d4d1d4a7a6\r
+e2e4d7d6f1a6b7a6d2d4g7g6\r
+e2e4h7h6f2f4f7f5e4f5g7g6\r
+f2f3c7c6c2c4\r
+f2f3f7f5b2b3\r
+f2f3f7f5g2g3\r
+f2f4b7b5g2g4c7c5\r
+f2f4c7c6\r
+g2g3g7g5f2f3\r
+g2g3g7g5h2h4\r
+g2g4f7f5g4f5g7g6f5g6h7g6g1f3h8h2f3h2\r
+$
\ No newline at end of file
diff --git a/winboard/install/files/root/Pulsar/losersWhite.txt b/winboard/install/files/root/Pulsar/losersWhite.txt
new file mode 100644 (file)
index 0000000..f40ecc8
--- /dev/null
@@ -0,0 +1,36 @@
+a2a4a7a5h2h3\r
+a2a4e7e5b2b4f8b4h2h4\r
+a2a4c7c5a4a5\r
+a2a3b7b5\r
+a2a3e7e5c2c3f8a3b2a3\r
+a2a3e7e5h2h4f8a3b2a3d8h4h1h4\r
+a2a3e7e5d2d4e5d4d1d4f8a3b1a3\r
+a2a3c7c6h2h3a7a6c2c3h7h6\r
+2a3e7e5h2h4\r
+b2b4e7e5e2e3f8b4d1e2b4d2c1d2\r
+b2b3e7e5b2b4\r
+b2b3d7d5a2a3b8c6c2c4\r
+c2c3a7a6a2a4a6a5c3c4b7b5c6b5\r
+c2c3b7b6a2a3\r
+c2c3c7c5a2a4a7a6\r
+c2c3c7c6a2a4a7a5\r
+c2c3f7f5a2a3g8h6e2e4f5e4\r
+c2c3d7d5h2h3\r
+c2c3e7e5a2a3f8a3b2a3\r
+c2c3e7e6a2a4\r
+c2c4e7e5b2b4f8b4h2h4b4d2b1d2d8h4h1h4\r
+c2c4c7c5a2a4a7a5\r
+d2d3e7e5c1e3\r
+f2f3c7c6c2c4\r
+f2f3f7f5b2b3\r
+f2f3f7f5g2g3\r
+f2f3e7e5b2b4f8b4g2g3b4d2b1d2\r
+f2f3e7e5e2e4d7d5e4d5d8d5f3f4e5f4a2a3\r
+f2f4b7b5g2g4c7c5\r
+f2f4c7c6\r
+f2f4e7e5f4e5d7d6e5d6f8d6h2h3c8h3\r
+g2g3g7g5f2f3\r
+g2g3g7g5h2h4\r
+h2h4e7e5g2g3\r
+h2h3e7e5f2f4e5f4g2g4f4g3h1h2g3h2h3h4\r
+$
\ No newline at end of file
diff --git a/winboard/install/files/root/Pulsar/openbk.txt b/winboard/install/files/root/Pulsar/openbk.txt
new file mode 100644 (file)
index 0000000..0c193f8
--- /dev/null
@@ -0,0 +1,292 @@
+//reti\r
+1.g1f3 g8f6 g2g3 g7g6 b2b4\r
+1.g1f3 d7d5 g2g3 g8f6 f1g2 c7c6 e1g1 c8g4\r
+1.g1f3 d7d5 g2g3 g7g6 f1g2 f8g7 e1g1 e7e5 d2d3 g8e7\r
+1.g1f3 d7d5 g2g3 c7c5 f1g2 b8c6 e1g1 e7e6 d2d3 g8f6 b1d2 f8e7 e2e4 e8g8 f1e1\r
+//Benoni\r
+1.d2d4 g8f6 c2c4 c7c5 d4d5 e7e6 b1c3 e6d5 c4d5 d7d6 g1f3 g7g6\r
+1.d2d4 g8f6 c2c4 c7c5 d4d5 e7e6 b1c3 e6d5 c4d5 d7d6 g1f3 g7g6 g2g3 f8g7 f1g2 e8g8\r
+1.d2d4 g8f6 c2c4 c7c5 d4d5 e7e6 b1c3 e6d5 c4d5 d7d6 g1f3 g7g6 g2g3 f8g7 f1g2 e8g8 e1g1 b8d7\r
+1.d2d4 g8f6 c2c4 c7c5 d4d5 e7e6 b1c3 e6d5 c4d5 d7d6 g1f3 g7g6 g2g3 f8g7 f1g2 e8g8 e1g1 b8d7 f3d2 a7a6 a2a4 f8e8\r
+1.d2d4 g8f6 c2c4 c7c5 d4d5 e7e6 b1c3 e6d5 c4d5 d7d6 e2e4\r
+1.d2d4 g8f6 c2c4 c7c5 d4d5 e7e6 b1c3 e6d5 c4d5 d7d6 e2e4 g7g6 f2f4\r
+1.d2d4 g8f6 c2c4 c7c5 d4d5 e7e6 b1c3 e6d5 c4d5 d7d6 e2e4 g7g6 f2f4 f8g7 e4e5\r
+1.d2d4 g8f6 c2c4 c7c5 d4d5 e7e6 b1c3 e6d5 c4d5 d7d6 e2e4 g7g6 f2f4 f8g7 f1b5\r
+1.d2d4 g8f6 c2c4 c7c5 d4d5 e7e6 b1c3 e6d5 c4d5 d7d6 e2e4 g7g6 f2f4 f8g7 g1f3 e8g8\r
+1.d2d4 g8f6 c2c4 c7c5 d4d5 e7e6 b1c3 e6d5 c4d5 d7d6 e2e4 g7g6 f2f4 f8g7 g1f3 e8g8 f1e2 f8e8\r
+1.d2d4 g8f6 c2c4 c7c5 d4d5 e7e6 b1c3 e6d5 c4d5 d7d6 e2e4 g7g6 g1f3\r
+1.d2d4 g8f6 c2c4 c7c5 d4d5 e7e6 b1c3 e6d5 c4d5 d7d6 e2e4 g7g6 g1f3 f8g7 c1g5\r
+1.d2d4 g8f6 c2c4 c7c5 d4d5 e7e6 b1c3 e6d5 c4d5 d7d6 e2e4 g7g6 g1f3 f8g7 f1e2 e8g8\r
+1.d2d4 g8f6 c2c4 c7c5 d4d5 e7e6 b1c3 e6d5 c4d5 d7d6 e2e4 g7g6 g1f3 f8g7 f1e2 e8g8 e1g1\r
+1.d2d4 g8f6 c2c4 c7c5 d4d5 e7e6 b1c3 e6d5 c4d5 d7d6 e2e4 g7g6 g1f3 f8g7 f1e2 e8g8 e1g1 a7a6 a2a4\r
+1.d2d4 g8f6 c2c4 c7c5 d4d5 e7e6 b1c3 e6d5 c4d5 d7d6 e2e4 g7g6 g1f3 f8g7 f1e2 e8g8 e1g1 a7a6 a2a4 c8g4\r
+1.d2d4 g8f6 c2c4 c7c5 d4d5 e7e6 b1c3 e6d5 c4d5 d7d6 e2e4 g7g6 g1f3 f8g7 f1e2 e8g8 e1g1 f8e8\r
+1.d2d4 g8f6 c2c4 c7c5 d4d5 e7e6 b1c3 e6d5 c4d5 d7d6 e2e4 g7g6 g1f3 f8g7 f1e2 e8g8 e1g1 f8e8 f3d2\r
+1.d2d4 g8f6 c2c4 c7c5 d4d5 e7e6 b1c3 e6d5 c4d5 d7d6 e2e4 g7g6 g1f3 f8g7 f1e2 e8g8 e1g1 f8e8 f3d2 b8a6\r
+1.d2d4 g8f6 c2c4 c7c5 d4d5 e7e6 b1c3 e6d5 c4d5 d7d6 e2e4 g7g6 g1f3 f8g7 f1e2 e8g8 e1g1 f8e8 f3d2 b8a6 f2f3\r
+//english\r
+1.c2c4 c7c6 g1f3 d7d5 b2b3 g8f6 g2g3 c8g4\r
+1.c2c4 e7e6 g1f3 g8f6 g2g3 a7a6 f1g2 b7b5\r
+1.c2c4 e7e6 g1f3 d7d5 g2g3 g8f6 f1g2 d5c4\r
+1.c2c4 e7e6 g1f3 d7d5 g2g3 g8f6 f1g2 f8e7 e1g1\r
+1.c2c4 e7e6 g1f3 d7d5 g2g3 g8f6 f1g2 f8e7 e1g1 c7c5 c4d5 f6d5 b1c3 b8c6\r
+1.c2c4 g8f6 b1c3 d7d5 c4d5 f6d5 g2g3 g7g6 f1g2 d5c3\r
+1.c2c4 g8f6 b1c3 e7e6 e2e4 d7d5 e4e5\r
+1.c2c4 e7e5 b1c3 d7d6 g2g3 c8e6 f1g2 b8c6\r
+1.c2c4 e7e5 b1c3 g8f6 g1f3 e5e4 f3g5 b7b5\r
+1.c2c4 e7e5 b1c3 b8c6 g2g3 g7g6 f1g2 f8g7 e2e3 d7d6 g1e2 g8h6\r
+1.c2c4 e7e5 b1c3 b8c6 g2g3 g7g6 f1g2 f8g7 d2d3 d7d6\r
+1.c2c4 e7e5 b1c3 b8c6 g1f3 g8f6 d2d4 e5d4 f3d4 f8b4 c1g5 h7h6 g5h4 b4c3 b2c3 c6e5\r
+1.c2c4 e7e5 b1c3 b8c6 g1f3 g8f6 e2e3 f8b4 d1c2 e8g8 c3d5 f8e8 c2f5\r
+1.c2c4 c7c5 g1f3 g8f6 g2g3 b7b6 f1g2 c8b7 e1g1 e7e6 b1c3 f8e7 d2d4 c5d4 d1d4 d7d6 f1d1 a7a6 b2b3 b8d7\r
+1.c2c4 c7c5 b1c3 b8c6 g2g3 g7g6 f1g2 f8g7 g1f3 g8f6 e1g1 e8g8 d2d3\r
+1.c2c4 c7c5 b1c3 b8c6 g2g3 g7g6 f1g2 f8g7 g1f3 g8f6 e1g1 e8g8 d2d4\r
+//sicialian 21\r
+1.e2e4 c7c5 c2c4 d7d6 b1c3 b8c6 g2g3 h7h5\r
+1.e2e4 c7c5 b1c3 e7e6 g2g3 d7d5\r
+1.e2e4 c7c5 b1c3 b8c6 f2f4 g7g6 g1f3 f8g7 f1c4 e7e6 f4f5\r
+1.e2e4 c7c5 b1c3 b8c6 g2g3 g7g6 f1g2 f8g7 d2d3 e7e6 c1e3 c6d4 c3e2\r
+1.e2e4 c7c5 b1c3 b8c6 g2g3 g7g6 f1g2 f8g7 d2d3 d7d6 g1e2 e7e5\r
+1.e2e4 c7c5 b1c3 b8c6 g2g3 g7g6 f1g2 f8g7 d2d3 d7d6 c1e3\r
+1.e2e4 c7c5 g1f3 g8f6 e4e5 f6d5 b1c3 e7e6 c3d5 e6d5 d2d4 b8c6\r
+1.e2e4 c7c5 g1f3 b8c6 f1b5 g7g6 e1g1 f8g7 f1e1 e7e5 b2b4\r
+1.e2e4 c7c5 g1f3 b8c6 d2d4 c5d4 f3d4 e7e5 d4b5 d7d6\r
+1.e2e4 c7c5 g1f3 b8c6 d2d4 c5d4 f3d4 g8f6 b1c3 e7e5 d4b5 d7d6 c1g5 a7a6 b5a3 c8e6\r
+1.e2e4 c7c5 g1f3 b8c6 d2d4 c5d4 f3d4 g7g6 d4c6\r
+1.e2e4 c7c5 g1f3 b8c6 d2d4 c5d4 f3d4 g7g6 b1c3 f8g7 c1e3 g8f6 f1c4\r
+1.e2e4 c7c5 g1f3 b8c6 d2d4 c5d4 f3d4 g7g6 c2c4 g8f6 b1c3 c6d4 d1d4 d7d6\r
+1.e2e4 c7c5 g1f3 e7e6 d2d4 c5d4 f3d4 g8f6 b1c3 f8b4\r
+1.e2e4 c7c5 g1f3 e7e6 d2d4 c5d4 f3d4 a7a6 c2c4 g8f6 b1c3 f8b4 f1d3 b8c6 \r
+1.e2e4 c7c5 g1f3 e7e6 d2d4 c5d4 f3d4 a7a6 f1d3 g8f6 e1g1 d7d6 c2c4 g7g6\r
+1.e2e4 c7c5 g1f3 e7e6 d2d4 c5d4 f3d4 b8c6 d4b5 d7d6 c2c4 g8f6 b1c3 a7a6 b5a3 f8e7 f1e2 e8g8 e1g1 b7b6\r
+1.e2e4 c7c5 g1f3 e7e6 d2d4 c5d4 f3d4 b8c6 b1c3 g8f6 d4b5 f8b4 b5d6\r
+1.e2e4 c7c5 g1f3 d7d6 d2d4 c5d4 f3d4 g8f6 f2f3 e7e5 f1b5\r
+1.e2e4 c7c5 g1f3 d7d6 d2d4 c5d4 f3d4 g8f6 b1c3 b8c6 f1c4 g7g6 d4c6 b7c6 e4e5\r
+1.e2e4 c7c5 g1f3 b8c6 d2d4 c5d4 f3d4 g8f6 b1c3 d7d6 f1e2 e7e5\r
+1.e2e4 c7c5 g1f3 d7d6 d2d4 c5d4 f3d4 g8f6 b1c3 b8c6 c1g5\r
+1.e2e4 c7c5 g1f3 d7d6 d2d4 c5d4 f3d4 g8f6 b1c3 b8c6 c1g5 e7e6 d1d2 f8e7 e1c1 e8g8 f2f4\r
+1.e2e4 c7c5 g1f3 d7d6 d2d4 c5d4 f3d4 g8f6 b1c3 g7g6 f2f4 b8d7\r
+1.e2e4 c7c5 g1f3 d7d6 d2d4 c5d4 f3d4 g8f6 b1c3 g7g6 c1e3 f8g7 f1e2 b8c6 e1g1\r
+1.e2e4 c7c5 g1f3 d7d6 d2d4 c5d4 f3d4 g8f6 b1c3 g7g6 c1e3 f8g7 f2f3 e8g8 d1d2 b8c6 f1c4\r
+1.e2e4 c7c5 g1f3 d7d6 d2d4 c5d4 f3d4 g8f6 b1c3 g7g6 c1e3 f8g7 f2f3 e8g8 d1d2 b8c6 f1c4 c8d7 e1c1\r
+1.e2e4 c7c5 g1f3 d7d6 d2d4 c5d4 f3d4 g8f6 b1c3 e7e6 c1e3 a7a6 d1d2\r
+1.e2e4 c7c5 g1f3 d7d6 d2d4 c5d4 f3d4 g8f6 b1c3 e7e6 f1e2 a7a6 e1g1 d8c7 f2f4 b8c6\r
+1.e2e4 c7c5 g1f3 d7d6 d2d4 c5d4 f3d4 g8f6 b1c3 e7e6 f1c4 b8c6 c4b3 f8e7 c1e3 e8g8 f2f4\r
+1.e2e4 c7c5 g1f3 d7d6 d2d4 c5d4 f3d4 g8f6 b1c3 a7a6 h2h3\r
+1.e2e4 c7c5 g1f3 d7d6 d2d4 c5d4 f3d4 g8f6 b1c3 a7a6 c1g5 e7e6 f2f4 f8e7 d1f3 d8c7 e1c1 b8d7\r
+// more sic\r
+// some duplicate\r
+// B20\r
+1.e2e4 c7c5 c2c4 d7d6 b1c3 b8c6 g2g3 h7h5\r
+1.e2e4 c7c5 b2b4 c5b4 a2a3 d7d5 e4d5 d8d5 c1b2\r
+1.e2e4 c7c5 d2d4 c5d4 c2c3 d4c3 b1c3 b8c6 g1f3 d7d6 f1c4 e7e6 e1g1 a7a6 d1e2 b7b5 c4b3 a8a7\r
+1.e2e4 c7c5 c2c3 g8f6 e4e5 f6d5 g1f3 b8c6 b1a3\r
+// B23\r
+1.e2e4 c7c5 b1c3 b8c6 f2f4 g7g6 g1f3 f8g7 f1c4 e7e6 f4f5\r
+1.e2e4 c7c5 b1c3 b8c6 g2g3 g7g6 f1g2 f8g7 d2d3 e7e6 c1e3 c6d4 c3e2\r
+/B25\r
+1.e2e4 c7c5 b1c3 b8c6 g2g3 g7g6 f1g2 f8g7 d2d3 d7d6 f2f4 e7e5\r
+1.e2e4 c7c5 b1c3 b8c6 g2g3 g7g6 f1g2 f8g7 d2d3 d7d6 c1e3\r
+1.e2e4 c7c5 g1f3 g8f6 e4e5 f6d5 b1c3 e7e6 c3d5 e6d5 d2d4 b8c6\r
+//B31\r
+1.e2e4 c7c5 g1f3 b8c6 f1b5 g7g6 e1g1 f8g7 f1e1 e7e5 b2b4\r
+//B35-37\r
+1.e2e4 c7c5 g1f3 b8c6 d2d4 c5d4 f3d4 g7g6 b1c3 f8g7 c1e3 g8f6 f1c4\r
+1.e2e4 c7c5 g1f3 b8c6 d2d4 c5d4 f3d4 g7g6 c2c4 g8f6 b1c3 c6d4 d1d4 d7d6\r
+1.e2e4 c7c5 g1f3 b8c6 d2d4 c5d4 f3d4 g7g6 c2c4 f8g7 d4c2 d7d6 f1e2 g8h6\r
+//B39-42\r
+1.e2e4 c7c5 g1f3 b8c6 d2d4 c5d4 f3d4 g7g6 c2c4 f8g7 c1e3 g8f6 b1c3 f6g4\r
+1.e2e4 c7c5 g1f3 e7e6 d2d4 c5d4 f3d4 g8f6 b1c3 f8b4 f1d3 e6e5\r
+1.e2e4 c7c5 g1f3 e7e6 d2d4 c5d4 f3d4 a7a6 c2c4 g8f6 b1c3 f8b4 f1d3 b8c6 d3c2\r
+1.e2e4 c7c5 g1f3 e7e6 d2d4 c5d4 f3d4 a7a6 f1d3 g8f6 e1g1 d7d6 c2c4 g7g6\r
+//B44-45\r
+1.e2e4 c7c5 g1f3 e7e6 d2d4 c5d4 f3d4 b8c6 d4b5 d7d6 c2c4 g8f6 b1c3 a7a6 b5a3 f8e7 f1e2 e8g8 e1g1 b7b6\r
+1.e2e4 c7c5 g1f3 e7e6 d2d4 c5d4 f3d4 b8c6 b1c3 g8f6 d4b5 f8b4 b5d6\r
+//B49\r
+1.e2e4 c7c5 g1f3 e7e6 d2d4 c5d4 f3d4 b8c6 b1c3 d8c7 c1e3 a7a6 f1e2\r
+//B52\r
+1.e2e4 c7c5 g1f3 d7d6 f1b5 c8d7 b5d7 d8d7 e1g1 b8c6 c2c3 g8f6 d2d4\r
+//B57-60\r
+1.e2e4 c7c5 g1f3 d7d6 d2d4 c5d4 f3d4 g8f6 b1c3 b8c6 f1c4 g7g6 d4c6 b7c6 e4e5\r
+1.e2e4 c7c5 g1f3 b8c6 d2d4 c5d4 f3d4 g8f6 b1c3 d7d6 f1e2 e7e5 d4c6\r
+1.e2e4 c7c5 g1f3 b8c6 d2d4 c5d4 f3d4 g8f6 b1c3 d7d6 f1e2 e7e5 d4b3\r
+1.e2e4 c7c5 g1f3 d7d6 d2d4 c5d4 f3d4 g8f6 b1c3 b8c6 c1g5 g7g6\r
+//Phildor\r
+//C41\r
+1.e2e4 e7e5 g1f3 d7d6 d2d4 f7f5 d4e5 f5e4 f3g5 d6d5 e5e6 f8c5 b1c3\r
+1.e2e4 e7e5 g1f3 d7d6 f1c4 f7f5 d2d4 e5d4 f3g5 g8h6 g5h7\r
+1.e2e4 e7e5 g1f3 d7d6 d2d4 e5d4 f3d4 g8f6 b1c3 f8e7 f1e2 e8g8 e1g1 c7c5 d4f3 b8c6 c1g5 c8e6 f1e1\r
+1.e2e4 e7e5 g1f3 d7d6 d2d4 g8f6 b1c3 b8d7 f1c4 f8e7 e1g1 e8g8 d1e2 c7c6 a2a4 e5d4\r
+1.e2e4 e7e5 g1f3 d7d6 d2d4 g8f6 b1c3 b8d7 f1c4 f8e7 f3g5 e8g8 c4f7\r
+//Pianno\r
+//Numbers Little Messed Up\r
+//C53\r
+1.e2e4 e7e5 g1f3 b8c6 f1c4 f8c5 c2c3 d8e7 d2d4 c5b6 e1g1 g8f6 a2a4 a7a6 f1e1 d7d6 h2h3\r
+1.e2e4 e7e5 g1f3 b8c6 f1c4 f8c5 c2c3 d8e7 d2d4 c5b6 d4d5 c6b8 d5d6\r
+//C54\r
+1.e2e4 e7e5 g1f3 b8c6 f1c4 f8c5 c2c3 g8f6 d2d4 e5d4 e4e5 f6e4 c4d5 e4f2 e1f2 d4c3 f2g3\r
+1.e2e4 e7e5 g1f3 b8c6 f1c4 f8c5 c2c3 g8f6 d2d4 e5d4 e4e5 d7d5 c4b5 f6e4 c3d4 c5b4\r
+1.e2e4 e7e5 g1f3 b8c6 f1c4 f8c5 c2c3 g8f6 d2d4 e5d4 c3d4 c5b4 b1c3 f6e4 e1g1 e4c3 b2c3 b4c3 d1b3 d7d5\r
+1.e2e4 e7e5 g1f3 b8c6 f1c4 f8c5 c2c3 g8f6 d2d4 e5d4 c3d4 c5b4 b1c3 f6e4 e1g1 b4c3 d4d5 c3f6 f1e1 c6e7 e1e4 d7d6 c1g5 f6g5 f3g5 e8g8 g5h7\r
+//TwoKnights\r
+//C55\r
+1.e2e4 e7e5 g1f3 b8c6 f1c4 g8f6 e1g1 f8c5 d2d4 c5d4 f3d4 c6d4 c1g5 h7h6 g5h4 g7g5 f2f4\r
+1.e2e4 e7e5 g1f3 b8c6 f1c4 g8f6 e1g1 f8c5 d2d4 c5d4 f3d4 c6d4 c1g5 d7d6 f2f4 d8e7 f4e5 d6e5 b1c3\r
+1.e2e4 e7e5 g1f3 b8c6 f1c4 g8f6 d2d4 e5d4 e4e5 d7d5 c4b5 f6e4 f3d4 f8c5 d4c6 c5f2 e1f1 d8h4\r
+1.e2e4 e7e5 g1f3 b8c6 f1c4 g8f6 d2d4 e5d4 e1g1 f8c5 e4e5 d7d5 e5f6 d5c4 f1e1 c8e6 f3g5 d8d5 b1c3 d5f5 g2g4 f5g6 c3e4 c5b6 f2f4 e8c8\r
+1.e2e4 e7e5 g1f3 b8c6 f1c4 g8f6 d2d4 e5d4 e1g1 f8c5 e4e5 d7d5 e5f6 d5c4 f1e1 c8e6 f3g5 d8d5 b1c3 d5f5 c3e4\r
+1.e2e4 e7e5 g1f3 b8c6 f1c4 g8f6 d2d4 e5d4 e1g1 f8c5 e4e5 d7d5 e5f6 d5c4 f1e1 c8e6 f3g5 d8d5 b1c3 d5f5 c3e4 c5f8\r
+//C56\r
+1.e2e4 e7e5 g1f3 b8c6 f1c4 g8f6 d2d4 e5d4 e1g1 f6e4 f1e1 d7d5 c4d5 d8d5 b1c3 d5a5 c3e4 c8e6 c1g5 h7h6 g5h4 g7g5 e4f6 e8e7 b2b4\r
+//C57\r
+1.e2e4 e7e5 g1f3 b8c6 f1c4 g8f6 f3g5 d7d5 e4d5 c6d4 c2c3 b7b5 c4f1 f6d5 g5e4\r
+1.e2e4 e7e5 g1f3 b8c6 f1c4 g8f6 f3g5 d7d5 e4d5 f6d5 g5f7 e8f7 d1f3 f7e6 b1c3 c6b4 f3e4 c7c6 a2a3 b4a6 d2d4 a6c7\r
+//C58\r
+1.e2e4 e7e5 g1f3 b8c6 f1c4 g8f6 f3g5 d7d5 e4d5 c6a5 d2d3 h7h6 g5f3 e5e4 d1e2 a5c4 d3c4 f8c5 f3d2\r
+1.e2e4 e7e5 g1f3 b8c6 f1c4 g8f6 f3g5 d7d5 e4d5 c6a5 c4b5 c7c6 d5c6 b7c6 d1f3 c6b5\r
+//C59\r
+1.e2e4 e7e5 g1f3 b8c6 f1c4 g8f6 f3g5 d7d5 e4d5 c6a5 c4b5 c7c6 d5c6 b7c6 b5e2 h7h6\r
+1.e2e4 e7e5 g1f3 b8c6 f1c4 g8f6 f3g5 d7d5 e4d5 c6a5 c4b5 c7c6 d5c6 b7c6 b5e2 h7h6 g5f3 e5e4 f3e5 f8d6 d2d4 d8c7 c1d2\r
+//queensgambit54\r
+1.d2d4 d7d5 c2c4 e7e5 d4e5 d5d4 e2e3 f8b4 c1d2 d4e3\r
+1.d2d4 d7d5 c2c4 e7e5 d4e5 d5d4 g1f3 b8c6 b1d2 c8g4 h2h3 g4f3 d2f3 f8b4 c1d2 d8e7\r
+1.d2d4 d7d5 c2c4 e7e5 d4e5 d5d4 g1f3 b8c6 g2g3\r
+1.d2d4 d7d5 c2c4 c7c6 g1f3 g8f6 e2e3 c8f5 c4d5 c6d5 d1b3 d8c8 c1d2 e7e6 b1a3\r
+1.d2d4 d7d5 c2c4 c7c6 g1f3 g8f6 c4d5 c6d5\r
+1.d2d4 d7d5 c2c4 c7c6 g1f3 g8f6 c4d5 c6d5 b1c3 b8c6 c1f4 c8f5\r
+1.d2d4 d7d5 c2c4 c7c6 g1f3 g8f6 c4d5 c6d5 b1c3 b8c6 c1f4 c8f5 e2e3 e7e6 d1b3 f8b4\r
+1.d2d4 d7d5 c2c4 c7c6 g1f3 g8f6 b1c3 d8b6\r
+1.d2d4 d7d5 c2c4 c7c6 g1f3 g8f6 b1c3 g7g6\r
+1.d2d4 d7d5 c2c4 c7c6 g1f3 g8f6 b1c3 d5c4 a2a4\r
+1.d2d4 d7d5 c2c4 c7c6 g1f3 g8f6 b1c3 d5c4 a2a4 b8a6 e2e4 c8g4\r
+1.d2d4 d7d5 c2c4 c7c6 g1f3 g8f6 b1c3 d5c4 a2a4 c8f5 f3e5 b8d7 e5c4 d8c7 g2g3 e7e5\r
+1.d2d4 d7d5 c2c4 c7c6 g1f3 g8f6 b1c3 d5c4 a2a4 c8f5 e2e3 b8a6\r
+1.d2d4 d7d5 c2c4 c7c6 g1f3 g8f6 b1c3 d5c4 a2a4 c8f5 e2e3 e7e6 f1c4 f8b4 e1g1\r
+1.d2d4 d7d5 c2c4 d5c4 g1f3 a7a6 e2e3 c8g4 f1c4 e7e6 d4d5\r
+1.d2d4 d7d5 c2c4 d5c4 g1f3 g8f6 b1c3 a7a6 e2e4\r
+1.d2d4 d7d5 c2c4 d5c4 g1f3 g8f6 e2e3 g7g6\r
+1.d2d4 d7d5 c2c4 d5c4 g1f3 g8f6 e2e3 e7e6 f1c4 c7c5 d1e2 a7a6 d4c5 f8c5 e1g1 b8c6 e3e4 b7b5 e4e5\r
+1.d2d4 d7d5 c2c4 d5c4 g1f3 g8f6 e2e3 e7e6 f1c4 c7c5 e1g1 a7a6\r
+1.d2d4 d7d5 c2c4 d5c4 g1f3 g8f6 e2e3 e7e6 f1c4 c7c5 e1g1 a7a6 d1e2 b7b5\r
+1.d2d4 d7d5 c2c4 d5c4 g1f3 g8f6 e2e3 e7e6 f1c4 c7c5 e1g1 a7a6 d1e2 b7b5 c4b3 c8b7\r
+1.d2d4 d7d5 c2c4 e7e6 g1f3 g8f6 e2e3 c7c6 b1d2 f6e4 f1d3 f7f5\r
+1.d2d4 d7d5 c2c4 e7e6 g1f3 g8f6 c1g5 b8d7 e2e3 c7c6 b1d2\r
+1.d2d4 d7d5 c2c4 e7e6 g1f3 g8f6 c1g5 h7h6 g5f6 d8f6 b1c3 c7c6 d1b3\r
+1.d2d4 d7d5 c2c4 e7e6 b1c3 c7c6 g1f3 d5c4 a2a4 f8b4 e2e3 b7b5 c1d2 d8e\r
+1.d2d4 d7d5 c2c4 e7e6 b1c3 c7c6 g1f3 d5c4 a2a4 f8b4 e2e3 b7b5 c1d2 a7a\r
+1.d2d4 d7d5 c2c4 e7e6 b1c3 c7c5 c4d5 e6d5 d4c5 d5d4 c3a4 b7b5\r
+1.d2d4 d7d5 c2c4 e7e6 b1c3 c7c5 c4d5 e6d5 g1f3 b8c6 g2g3 c5c4\r
+1.d2d4 d7d5 c2c4 e7e6 b1c3 c7c5 c4d5 e6d5 g1f3 b8c6 g2g3 g8f6 f1g2 c8g4\r
+1.d2d4 d7d5 c2c4 e7e6 b1c3 c7c5 c4d5 e6d5 g1f3 b8c6 g2g3 g8f6 f1g2 f8e7\r
+1.d2d4 d7d5 c2c4 e7e6 b1c3 g8f6 c4d5 e6d5 c1g5 f8e7 e2e3 e8g8 f1d3 b8d7 d1c2 f8e8 g1e2 d7f8 e1c1\r
+1.d2d4 d7d5 c2c4 e7e6 b1c3 g8f6 c4d5 e6d5 c1g5 c7c6 d1c2\r
+1.d2d4 d7d5 c2c4 e7e6 b1c3 g8f6 g1f3 c7c5 e2e3 b8c6 f1d3 f8d6 e1g1 e8g8\r
+1.d2d4 d7d5 c2c4 e7e6 b1c3 g8f6 g1f3 c7c5 c4d5 f6d5 e2e4 d5c3 b2c3 c5d4 c3d4 f8b4 c1d2 b4d2 d1d2 e8g8 f1b5\r
+1.d2d4 d7d5 c2c4 e7e6 b1c3 g8f6 g1f3 c7c5 c4d5 f6d5 e2e3 b8c6 f1d3\r
+1.d2d4 d7d5 c2c4 e7e6 b1c3 g8f6 g1f3 c7c6 c1g5 h7h6 g5f6 d8f6 d1b3\r
+1.d2d4 d7d5 c2c4 e7e6 b1c3 g8f6 g1f3 c7c6 c1g5 d5c4 e2e4 b7b5 e4e5 h7h6 g5h4 g7g5 e5f6 g5h4 f3e5\r
+1.d2d4 d7d5 c2c4 e7e6 b1c3 g8f6 g1f3 c7c6 e2e3 f6e4 f1d3 f7f5\r
+1.d2d4 d7d5 c2c4 e7e6 b1c3 g8f6 g1f3 c7c6 e2e3 a7a6\r
+1.d2d4 d7d5 c2c4 e7e6 b1c3 g8f6 g1f3 c7c6 e2e3 b8d7 f1d3 f8e7\r
+1.d2d4 d7d5 c2c4 e7e6 b1c3 g8f6 g1f3 c7c6 e2e3 b8d7 f1d3 d5c4 d3c4\r
+1.d2d4 d7d5 c2c4 e7e6 b1c3 g8f6 g1f3 c7c6 e2e3 b8d7 f1d3 d5c4 d3c4 b7b5 c4d3 a7a6\r
+1.d2d4 d7d5 c2c4 e7e6 b1c3 g8f6 g1f3 c7c6 e2e3 b8d7 f1d3 d5c4 d3c4 b7b5 c4d3 a7a6 e3e4 c6c5\r
+1.d2d4 d7d5 c2c4 e7e6 b1c3 g8f6 g1f3 c7c6 e2e3 b8d7 f1d3 d5c4 d3c4 b7b5 c4d3 a7a6 e3e4 c6c5 e4e5 c5d4 c3b5 d7e5\r
+//starting at D50\r
+1.d2d4 d7d5 c2c4 e7e6 b1c3 g8f6 c1g5 c7c5 g1f3 c5d4 f3d4 e6e5 d4b5 a7a6 d1a4\r
+1.d2d4 d7d5 c2c4 e7e6 b1c3 g8f6 c1g5 b8d7 g1f3 c7c6 a1c1 d8a5 g5d2\r
+1.d2d4 d7d5 c2c4 e7e6 b1c3 g8f6 c1g5 b8d7 e2e3 c7c6 a2a3\r
+1.d2d4 d7d5 c2c4 e7e6 b1c3 g8f6 c1g5 b8d7 e2e3 c7c6 g1f3 d8a5 f3d2 f8b4 d1c2 e8g8 g5h4\r
+1.d2d4 d7d5 c2c4 e7e6 b1c3 g8f6 c1g5 b8d7 e2e3 c7c6 g1f3 d8a5 c4d5 f6d5\r
+1.d2d4 d7d5 c2c4 e7e6 b1c3 g8f6 c1g5 f8e7 e2e3 f6e4\r
+1.d2d4 d7d5 c2c4 e7e6 b1c3 g8f6 c1g5 f8e7 e2e3 e8g8 a1c1\r
+1.d2d4 d7d5 c2c4 e7e6 b1c3 g8f6 c1g5 f8e7 e2e3 e8g8 g1f3 b7b6 f1d3 c8b7 c4d5 e6d5 f3e5\r
+1.d2d4 d7d5 c2c4 e7e6 b1c3 g8f6 c1g5 f8e7 e2e3 e8g8 g1f3 h7h6 g5f6 e7f6 a1c1 c7c6 f1d3 b8d7 e1g1 d5c4 d3c4\r
+//through D55\r
+// ruy lopez\r
+1.e2e4 e7e5 g1f3 b8c6 f1b5 c6d4 f3d4 e5d4 e1g1 g8e7\r
+1.e2e4 e7e5 g1f3 b8c6 f1b5 d7d6 d2d4 c8d7 b1c3 g8f6 b5c6\r
+1.e2e4 e7e5 g1f3 b8c6 f1b5 f7f5 b1c3\r
+1.e2e4 e7e5 g1f3 b8c6 f1b5 f8c5 c2c3 g8f6 e1g1 e8g8 d2d4 c5b6\r
+1.e2e4 e7e5 g1f3 b8c6 f1b5 f8c5 e1g1 c6d4 b2b4\r
+1.e2e4 e7e5 g1f3 b8c6 f1b5 g8f6 d2d4 e5d4 e1g1\r
+1.e2e4 e7e5 g1f3 b8c6 f1b5 g8f6 d2d3 d7d6 b5c6\r
+1.e2e4 e7e5 g1f3 b8c6 f1b5 g8f6 e1g1 f8c5\r
+// C66\r
+1.e2e4 e7e5 g1f3 b8c6 f1b5 g8f6 e1g1 d7d6 d2d4 c8d7 b1c3 f8e7\r
+1.e2e4 e7e5 g1f3 b8c6 f1b5 g8f6 e1g1 d7d6 d2d4 f6d7\r
+// C67\r
+1.e2e4 e7e5 g1f3 b8c6 f1b5 g8f6 e1g1 f6e4 d2d4 e4d6 d4e5\r
+1.e2e4 e7e5 g1f3 b8c6 f1b5 g8f6 e1g1 f6e4 d2d4 f8e7 d1e2 e4d6 b5c6 b7c6 d4e5 d6b7 b1c3 e8g8 f1e1 b7c5 f3d4 c5e6 c1e3 e6d4 e3d4 c6c5\r
+1.e2e4 e7e5 g1f3 b8c6 f1b5 g8f6 e1g1 f6e4 d2d4 f8e7 d1e2 d7d5\r
+//C68 69\r
+1.e2e4 e7e5 g1f3 b8c6 f1b5 a7a6 b5c6 d7c6 d2d4 e5d4 d1d4 d8d4 f3d4 c8d7\r
+1.e2e4 e7e5 g1f3 b8c6 f1b5 a7a6 b5c6 d7c6 b1c3\r
+1.e2e4 e7e5 g1f3 b8c6 f1b5 a7a6 b5c6 d7c6 b1c3 f7f6 d2d3\r
+1.e2e4 e7e5 g1f3 b8c6 f1b5 a7a6 b5c6 d7c6 e1g1\r
+1.e2e4 e7e5 g1f3 b8c6 f1b5 a7a6 b5c6 d7c6 e1g1 c8g4 h2h3 h7h5\r
+1.e2e4 e7e5 g1f3 b8c6 f1b5 a7a6 b5c6 d7c6 e1g1 f7f6\r
+1.e2e4 e7e5 g1f3 b8c6 f1b5 a7a6 b5c6 d7c6 e1g1 d8d6\r
+// C71\r
+1.e2e4 e7e5 g1f3 b8c6 f1b5 a7a6 b5a4 d7d6 d2d4 b7b5 a4b3 c6d4 f3d4 e5d4 d1d4 c7c5\r
+1.e2e4 e7e5 g1f3 b8c6 f1b5 a7a6 b5a4 d7d6 b1c3\r
+1.e2e4 e7e5 g1f3 b8c6 f1b5 a7a6 b5a4 d7d6 c2c4\r
+//C72 73\r
+1.e2e4 e7e5 g1f3 b8c6 f1b5 a7a6 b5a4 d7d6 e1g1\r
+1.e2e4 e7e5 g1f3 b8c6 f1b5 a7a6 b5a4 d7d6 a4c6 b7c6 d2d4\r
+1.e2e4 e7e5 g1f3 b8c6 f1b5 a7a6 b5a4 d7d6 a4c6 b7c6 d2d4 f7f6\r
+//C74 75\r
+1.e2e4 e7e5 g1f3 b8c6 f1b5 a7a6 b5a4 d7d6 c2c3 f7f5\r
+1.e2e4 e7e5 g1f3 b8c6 f1b5 a7a6 b5a4 d7d6 c2c3 f7f5 e4f5 c8f5 e1g1\r
+1.e2e4 e7e5 g1f3 b8c6 f1b5 a7a6 b5a4 d7d6 c2c3 c8d7 d2d4 g8e7\r
+//C76-78\r
+1.e2e4 e7e5 g1f3 b8c6 f1b5 a7a6 b5a4 d7d6 c2c3 c8d7 d2d4 g7g6\r
+1.e2e4 e7e5 g1f3 b8c6 f1b5 a7a6 b5a4 g8f6 b1c3\r
+1.e2e4 e7e5 g1f3 b8c6 f1b5 a7a6 b5a4 g8f6 d1e2 b7b5 a4b3 f8e7 d2d4 d7d6 c2c3 c8g4\r
+1.e2e4 e7e5 g1f3 b8c6 f1b5 a7a6 b5a4 g8f6 d2d3 d7d6 c2c4\r
+1.e2e4 e7e5 g1f3 b8c6 f1b5 a7a6 b5a4 g8f6 e1g1 b7b5 a4b3 f8e7 a2a4\r
+1.e2e4 e7e5 g1f3 b8c6 f1b5 a7a6 b5a4 g8f6 e1g1 b7b5 a4b3 d7d6 f3g5 d6d5 e4d5 c6d4 f1e1 f8c5 e1e5 e8f8\r
+1.e2e4 e7e5 g1f3 b8c6 f1b5 a7a6 b5a4 g8f6 e1g1 b7b5 a4b3 c8b7\r
+1.e2e4 e7e5 g1f3 b8c6 f1b5 a7a6 b5a4 g8f6 e1g1 f8c5\r
+//C79 80\r
+1.e2e4 e7e5 g1f3 b8c6 f1b5 a7a6 b5a4 g8f6 e1g1 d7d6 a4c6 b7c6 d2d4 c8g4\r
+1.e2e4 e7e5 g1f3 b8c6 f1b5 a7a6 b5a4 g8f6 e1g1 f6e4 d1e2\r
+1.e2e4 e7e5 g1f3 b8c6 f1b5 a7a6 b5a4 g8f6 e1g1 f6e4 d2d4 e5d4\r
+1.e2e4 e7e5 g1f3 b8c6 f1b5 a7a6 b5a4 g8f6 e1g1 f6e4 d2d4 b7b5 f3e5\r
+1.e2e4 e7e5 g1f3 b8c6 f1b5 a7a6 b5a4 g8f6 e1g1 f6e4 d2d4 b7b5 a4b3 d7d5 a2a4 c6d4 f3d4 e5d4 b1c3\r
+1.e2e4 e7e5 g1f3 b8c6 f1b5 a7a6 b5a4 g8f6 e1g1 f6e4 d2d4 b7b5 a4b3 d7d5 d4e5 c8e6 b1d2 e4c5 c2c3 d5d4 f3g5\r
+//C81 82\r
+1.e2e4 e7e5 g1f3 b8c6 f1b5 a7a6 b5a4 g8f6 e1g1 f6e4 d2d4 b7b5 a4b3 d7d5 d4e5 c8e6 d1e2\r
+1.e2e4 e7e5 g1f3 b8c6 f1b5 a7a6 b5a4 g8f6 e1g1 f6e4 d2d4 b7b5 a4b3 d7d5 d4e5 c8e6 d1e2 f8e7 f1d1 e8g8 c2c4 b5c4 b3c4 d8d7\r
+1.e2e4 e7e5 g1f3 b8c6 f1b5 a7a6 b5a4 g8f6 e1g1 f6e4 d2d4 b7b5 a4b3 d7d5 d4e5 c8e6 c2c3\r
+1.e2e4 e7e5 g1f3 b8c6 f1b5 a7a6 b5a4 g8f6 e1g1 f6e4 d2d4 b7b5 a4b3 d7d5 d4e5 c8e6 c2c3 e4c5\r
+//C83\r
+1.e2e4 e7e5 g1f3 b8c6 f1b5 a7a6 b5a4 g8f6 e1g1 f6e4 d2d4 b7b5 a4b3 d7d5 d4e5 c8e6 c2c3 f8e7\r
+1.e2e4 e7e5 g1f3 b8c6 f1b5 a7a6 b5a4 g8f6 e1g1 f6e4 d2d4 b7b5 a4b3 d7d5 d4e5 c8e6 c2c3 f8e7 f1e1 e8g8 f3d4 d8d7 d4e6 f7e6 e1e4\r
+//C84 C85\r
+1.e2e4 e7e5 g1f3 b8c6 f1b5 a7a6 b5a4 g8f6 e1g1 f8e7 d2d4 e5d4 e4e5 f6e4 c2c3\r
+1.e2e4 e7e5 g1f3 b8c6 f1b5 a7a6 b5a4 g8f6 e1g1 f8e7 a4c6\r
+//C86 C87\r
+1.e2e4 e7e5 g1f3 b8c6 f1b5 a7a6 b5a4 g8f6 e1g1 f8e7 d1e2 b7b5 a4b3 e8g8\r
+1.e2e4 e7e5 g1f3 b8c6 f1b5 a7a6 b5a4 g8f6 e1g1 f8e7 f1e1 d7d6\r
+//C88\r
+1.e2e4 e7e5 g1f3 b8c6 f1b5 a7a6 b5a4 g8f6 e1g1 f8e7 f1e1 b7b5 a4b3 d7d6 c2c3 c6a5 b3c2 c7c5 d2d4 d8c7 h2h3 a5c6 d4d5 c6b8 b1d2 g7g5\r
+1.e2e4 e7e5 g1f3 b8c6 f1b5 a7a6 b5a4 g8f6 e1g1 f8e7 f1e1 b7b5 a4b3 d7d6 d2d4 c6d4 f3d4 e5d4 d1d4 c7c5\r
+//C89 C90\r
+1.e2e4 e7e5 g1f3 b8c6 f1b5 a7a6 b5a4 g8f6 e1g1 f8e7 f1e1 b7b5 a4b3 e8g8 c2c3 d7d5 e4d5 f6d5 f3e5 c6e5 e1e5 c7c6\r
+1.e2e4 e7e5 g1f3 b8c6 f1b5 a7a6 b5a4 g8f6 e1g1 f8e7 f1e1 b7b5 a4b3 e8g8 c2c3 d7d5 e4d5 f6d5 f3e5 c6e5 e1e5 c7c6 b3d5 c6d5 d2d4 e7d6 e5e3\r
+1.e2e4 e7e5 g1f3 b8c6 f1b5 a7a6 b5a4 g8f6 e1g1 f8e7 f1e1 b7b5 a4b3 e8g8 c2c3 d7d5 e4d5 f6d5 f3e5 c6e5 e1e5 c7c6 d2d4 e7d6 e5e1 d8h4 g2g3 h4h3 c1e3 c8g4 d1d3 a8e8 b1d2 e8e6 a2a4 h3h5\r
+1.e2e4 e7e5 g1f3 b8c6 f1b5 a7a6 b5a4 g8f6 e1g1 f8e7 f1e1 b7b5 a4b3 e8g8 c2c3 d7d6 d2d3\r
+//C91 C92 C93 C94 C95\r
+1.e2e4 e7e5 g1f3 b8c6 f1b5 a7a6 b5a4 g8f6 e1g1 f8e7 f1e1 b7b5 a4b3 e8g8 c2c3 d7d6 d2d4 c8g4\r
+1.e2e4 e7e5 g1f3 b8c6 f1b5 a7a6 b5a4 g8f6 e1g1 f8e7 f1e1 b7b5 a4b3 e8g8 c2c3 d7d6 h2h3 a6a5\r
+1.e2e4 e7e5 g1f3 b8c6 f1b5 a7a6 b5a4 g8f6 e1g1 f8e7 f1e1 b7b5 a4b3 e8g8 c2c3 d7d6 h2h3 h7h6\r
+1.e2e4 e7e5 g1f3 b8c6 f1b5 a7a6 b5a4 g8f6 e1g1 f8e7 f1e1 b7b5 a4b3 e8g8 c2c3 d7d6 h2h3 c6b8\r
+1.e2e4 e7e5 g1f3 b8c6 f1b5 a7a6 b5a4 g8f6 e1g1 f8e7 f1e1 b7b5 a4b3 e8g8 c2c3 d7d6 h2h3 c6b8 d2d4 b8d7 b1d2 c8b7 b3c2 c7c5\r
+//C96 C97 C98 C99\r
+1.e2e4 e7e5 g1f3 b8c6 f1b5 a7a6 b5a4 g8f6 e1g1 f8e7 f1e1 b7b5 a4b3 e8g8 c2c3 d7d6 h2h3 c6a5 b3c2 c7c6 d2d4 d8c7\r
+1.e2e4 e7e5 g1f3 b8c6 f1b5 a7a6 b5a4 g8f6 e1g1 f8e7 f1e1 b7b5 a4b3 e8g8 c2c3 d7d6 h2h3 c6a5 b3c2 c7c5 d2d4 d8c7 b1d2 c8d7 d2f1 f8e8 f1e3 g7g6\r
+1.e2e4 e7e5 g1f3 b8c6 f1b5 a7a6 b5a4 g8f6 e1g1 f8e7 f1e1 b7b5 a4b3 e8g8 c2c3 d7d6 h2h3 c6a5 b3c2 c7c5 d2d4 d8c7 b1d2 a5c6 d4c5\r
+1.e2e4 e7e5 g1f3 b8c6 f1b5 a7a6 b5a4 g8f6 e1g1 f8e7 f1e1 b7b5 a4b3 e8g8 c2c3 d7d6 h2h3 c6a5 b3c2 c7c5 d2d4 d8c7 b1d2 c5d4 c3d4\r
+$\r
+\r
diff --git a/winboard/install/files/root/Pulsar/pulsar2009-9a.exe b/winboard/install/files/root/Pulsar/pulsar2009-9a.exe
new file mode 100644 (file)
index 0000000..579bf5d
Binary files /dev/null and b/winboard/install/files/root/Pulsar/pulsar2009-9a.exe differ
diff --git a/winboard/install/files/root/Pulsar/pulsarCrazyBlack.txt b/winboard/install/files/root/Pulsar/pulsarCrazyBlack.txt
new file mode 100644 (file)
index 0000000..df90200
--- /dev/null
@@ -0,0 +1,3560 @@
+b1c3g8f6d2d4d7d6c1g5b8d7e2e4g7g6f2f4h7h6g5h4f6h5g1e2g6g5f4g5e7e6e2g3h5f4\r
+b1c3g8f6d2d4d7d6e2e4g7g6f1c4f8g7f2f4c7c5d4c5d8a5c1d2a5c5d1e2e8g8e1c1c8g4g1f3b8d7\r
+b1c3g8f6e2e4d7d6d2d4g7g6f1c4f8g7g1f3e8g8e4e5d6e5d4e5d8d1c3d1f6g4c1f4b8c6e5e6c8e6\r
+b1c3g8f6g1f3g7g6d2d4d7d6e2e4f8g7f1e2e8g8h2h3c7c5d4c5d8a5e1g1a5c5c1e3c5a5f3d4a7a6\r
+b1c3g8f6g1f3g7g6e2e4d7d6d2d4f8g7f1e2e8g8c1f4b8c6d4d5e7e5f4g5c6e7d1d2f6h5e1c1\r
+b2b3e7e5c1b2b8c6c2c4g8f6b1c3d7d5c4d5f6d5g1f3d5c3b2c3f8d6d2d3e8g8e2e3d8e7f1e2c8d7\r
+b2b3e7e5c1b2b8c6c2c4g8f6e2e3d7d5c4d5f6d5g1f3f8d6d2d3e8g8a2a3d8e7\r
+b2b3e7e5c1b2b8c6c2c4g8f6g1f3e5e4f3d4f8c5\r
+b2b3e7e5c1b2b8c6e2e3d7d5f1b5f8d6b1c3g8f6d2d4e8g8d4e5c6d5\r
+b2b3e7e5c1b2b8c6e2e3d7d5f1b5f8d6f2f4d8h4g2g3h4e7g1f3c8g4\r
+b2b3e7e5c1b2b8c6g1f3e5e4f3d4c6d4b2d4g8f6e2e3d7d5\r
+b2b4e7e5c1b2f7f6b4b5d7d5e2e3c8e6g1f3c7c5c2c4d5d4d2d3g8h6e3e4g7g6g2g3d8c8f1g2e6h3\r
+b2b4e7e5c1b2f7f6e2e4f8b4f1c4g8e7d1h5g7g6h5h4e7c6f2f4d8e7a2a3b4a5g1e2\r
+b2b4e7e5c1b2f7f6e2e4f8b4f1c4g8e7d1h5g7g6h5h4e7c6f2f4d8e7f4f5g6f5h4h5e8d8\r
+b2b4e7e5c1b2f7f6e2e4f8b4f1c4g8e7f2f4d7d5e4d5e5f4d1f3b4d6g1e2e7g6d2d4d8e7b2c1c8f5\r
+b2b4e7e5c1b2f7f6e2e4f8b4f1c4g8e7f2f4d7d5e4d5e5f4d1f3b4d6g1e2e7g6d2d4e8g8b2c1c8f5\r
+b2b4e7e5c1b2f8b4b2e5g8f6c2c4e8g8e2e3d7d5c4d5f6d5g1f3f8e8e5b2c1f5\r
+c2c4b7b6b1c3c7c5g1f3c8b7d2d4c5d4f3d4g8f6f2f3b8c6e2e4e7e6c1e3f8c5d1d2e8g8e1c1d8e7\r
+c2c4b7b6b1c3e7e6g1f3c8b7g2g3f7f5f1g2g8f6e1g1f8b4d1b3b4c3b3c3e8g8b2b4a7a5b4b5d8e7\r
+c2c4b7b6e2e4c8b7b1c3e7e5d2d3b8c6g2g3f8c5f1g2g8e7g1f3e8g8e1g1a7a5c1e3d7d6d3d4e5d4\r
+c2c4b8c6g2g3e7e5f1g2g7g6b1c3f8g7e2e3d7d6g1e2g8e7a1b1a7a5a2a3c8e6c3d5e7f5b2b4a5b4\r
+c2c4c7c5b1c3b8c6g1f3e7e5e2e3g8f6d2d4e5d4e3d4c5d4f3d4f8e7d4c6d7c6f1e2d8d1e2d1c8f5\r
+c2c4c7c5b1c3b8c6g1f3g7g6e2e3g8f6d2d4c5d4e3d4d7d5c4d5f6d5d1b3d5c3f1c4e7e6b2c3f8g7\r
+c2c4c7c5b1c3b8c6g1f3g8f6g2g3g7g6f1g2f8g7e1g1e8g8d2d4c5d4f3d4c6d4d1d4d7d6c1g5c8e6\r
+c2c4c7c5b1c3g8f6e2e4b8c6g1f3e7e6d2d3d7d6f1e2f8e7e1g1e8g8d3d4c5d4f3d4d8c7d4b5c7b8\r
+c2c4c7c5b1c3g8f6g2g3d7d5c4d5f6d5f1g2e7e6c3d5e6d5d1b3b8c6b3d5d8d5g2d5c6b4d5e4f7f5\r
+c2c4c7c5g1f3b8c6b1c3g8f6e2e3e7e6d2d4d7d5a2a3a7a6b2b3c5d4e3d4f8e7c4c5b7b6c5b6f6d7\r
+c2c4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d5c4d5f6d5d4c6b7c6c1d2e7e6g2g3f8e7f1g2e8g8\r
+c2c4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3e7e6c1f4f8b4d4b5e8g8f4c7d8e7c7d6b4d6d1d6e7d8\r
+c2c4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3e7e6d4b5f8b4c1f4e8g8f4c7d8e7c7d6b4d6d1d6e7d8\r
+c2c4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3e7e6d4b5f8b4c1f4e8g8f4d6b4d6b5d6d8b6d1d2f6e8\r
+c2c4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3e7e6d4b5f8b4c1f4e8g8f4d6b4d6b5d6f6e8a2a3b7b6\r
+c2c4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3e7e6d4b5f8b4c1f4e8g8f4d6b4d6b5d6f6e8d1d2e8d6\r
+c2c4c7c5g1f3b8c6g2g3g7g6f1g2f8g7b1c3d7d6e1g1g8h6a2a3e8g8a1b1a8b8b2b4h6f5e2e3c8d7\r
+c2c4c7c5g1f3f7f5d2d4c5d4f3d4g7g6g2g3f8g7f1g2b8c6d4b5g8f6b5c3e8g8e1g1b7b6b2b3c8b7\r
+c2c4c7c5g1f3g7g6d2d4c5d4f3d4b8c6e2e4g8f6b1c3d7d6f1e2c6d4d1d4f8g7c1g5h7h6g5e3e8g8\r
+c2c4c7c5g1f3g7g6d2d4c5d4f3d4b8c6e2e4g8f6b1c3d7d6f2f3c6d4d1d4f8g7c1e3e8g8d4d2d8a5\r
+c2c4c7c5g1f3g7g6d2d4c5d4f3d4f8g7e2e4b8c6c1e3g8f6b1c3f6g4d1g4c6d4g4d1d4e6a1c1e8g8\r
+c2c4c7c5g1f3g7g6d2d4c5d4f3d4f8g7e2e4g8f6b1c3b8c6c1e3f6g4d1g4c6d4g4d1d4e6d1d2d7d6\r
+c2c4c7c5g1f3g7g6e2e4b8c6d2d4c5d4f3d4g8f6b1c3c6d4d1d4d7d6f1e2f8g7e1g1e8g8d4e3c8e6\r
+c2c4c7c5g1f3g8f6b1c3b7b6e2e4b8c6d2d4c5d4f3d4c8b7c1g5d8b8d4c6b7c6f1d3e7e6e1g1f8b4\r
+c2c4c7c5g1f3g8f6b1c3b8c6d2d4c5d4f3d4e7e6d4b5d7d5c1f4e6e5c4d5e5f4d5c6b7c6d1d8e8d8\r
+c2c4c7c5g1f3g8f6b1c3b8c6d2d4c5d4f3d4e7e6d4b5d7d5c1f4e6e5c4d5e5f4d5c6b7c6d1d8e8d8\r
+c2c4c7c5g1f3g8f6b1c3b8c6d2d4c5d4f3d4e7e6d4b5d7d5c1f4e6e5c4d5e5f4d5c6b7c6d1d8e8d8\r
+c2c4c7c5g1f3g8f6b1c3b8c6d2d4c5d4f3d4e7e6d4b5d7d5c4d5f6d5e2e4d5c3d1d8e8d8b5c3f8c5\r
+c2c4c7c5g1f3g8f6b1c3b8c6d2d4c5d4f3d4e7e6e2e3f8e7f1e2e8g8e1g1d7d6b2b3a7a6c1b2c8d7\r
+c2c4c7c5g1f3g8f6b1c3b8c6d2d4c5d4f3d4e7e6g2g3d8b6d4b3c6e5e2e4f8b4d1e2e8g8f2f4e5c6\r
+c2c4c7c5g1f3g8f6b1c3b8c6d2d4c5d4f3d4e7e6g2g3d8b6d4b3c6e5e2e4f8b4d1e2e8g8f2f4e5c6\r
+c2c4c7c5g1f3g8f6b1c3b8c6d2d4c5d4f3d4e7e6g2g3d8b6d4b3f8b4f1g2b6a6b3d2b4c3b2c3e8g8\r
+c2c4c7c5g1f3g8f6b1c3b8c6d2d4c5d4f3d4e7e6g2g3f8c5d4b3c5b4f1g2d7d5c4d5f6d5a2a3b4c3\r
+c2c4c7c5g1f3g8f6b1c3d7d5c4d5f6d5d2d4d5c3b2c3g7g6e2e3f8g7f1d3e8g8e1g1d8c7a1b1b7b6\r
+c2c4c7c5g1f3g8f6b1c3d7d5c4d5f6d5e2e4d5b4f1c4b4d3e1e2d3f4e2f1f4e6b2b4c5b4c3d5g7g6\r
+c2c4c7c5g1f3g8f6b1c3e7e6e2e3b8c6d2d4d7d5c4d5e6d5f1b5f8d6d4c5d6c5e1g1e8g8b2b3c8g4\r
+c2c4c7c5g1f3g8f6b1c3e7e6e2e3b8c6d2d4d7d5c4d5e6d5f1b5f8d6f3e5d8c7e5c6b7c6d4c5d6c5\r
+c2c4c7c5g1f3g8f6b1c3e7e6e2e3d7d5d2d4b8c6c4d5e6d5f1b5f8d6d4c5d6c5e1g1e8g8b2b3c8e6\r
+c2c4c7c5g1f3g8f6b1c3e7e6g2g3b7b6f1g2c8b7e1g1f8e7b2b3e8g8c1b2d7d5c4d5f6d5d1c2b8c6\r
+c2c4c7c5g1f3g8f6b1c3e7e6g2g3b7b6f1g2c8b7e1g1f8e7d2d4c5d4d1d4b8c6d4f4e8g8f1d1d8b8\r
+c2c4c7c5g1f3g8f6b1c3e7e6g2g3b7b6f1g2c8b7e1g1f8e7d2d4c5d4d1d4e8g8f1d1b8c6d4f4e7b4\r
+c2c4c7c5g1f3g8f6b1c3e7e6g2g3b7b6f1g2c8b7e1g1f8e7f1e1d7d5c4d5f6d5e2e4d5b4d2d4c5d4\r
+c2c4c7c5g1f3g8f6b1c3e7e6g2g3b8c6f1g2d7d5c4d5f6d5e1g1f8e7d2d4e8g8c3d5e6d5d4c5e7c5\r
+c2c4c7c5g1f3g8f6b1c3e7e6g2g3b8c6f1g2d7d5c4d5f6d5e1g1f8e7d2d4e8g8e2e4d5b4a2a3c5d4\r
+c2c4c7c5g1f3g8f6b1c3e7e6g2g3b8c6f1g2d7d5c4d5f6d5e1g1f8e7d2d4e8g8e2e4d5c3b2c3c5d4\r
+c2c4c7c5g1f3g8f6b1c3e7e6g2g3d7d5c4d5f6d5f1g2b8c6e1g1f8e7d2d4e8g8c3d5e6d5d4c5e7c5\r
+c2c4c7c5g1f3g8f6b2b3g7g6c1b2f8g7e2e3e8g8f1e2b8c6e1g1b7b6d2d4c5d4f3d4c8b7e2f3d7d5\r
+c2c4c7c5g1f3g8f6d2d4c5d4f3d4e7e6g2g3d7d5f1g2e6e5d4c2d5d4e1g1b8c6b1d2c8g4d2f3a7a5\r
+c2c4c7c5g1f3g8f6d2d4c5d4f3d4g7g6b1c3d7d5c1g5d5c4e2e3d8a5g5f6e7f6f1c4f8b4a1c1a7a6\r
+c2c4c7c5g1f3g8f6g2g3b7b6f1g2c8b7e1g1e7e6b2b3f8e7c1b2e8g8b1c3d7d5e2e3b8d7d1e2d8c7\r
+c2c4c7c5g1f3g8f6g2g3b7b6f1g2c8b7e1g1e7e6b2b3f8e7c1b2e8g8e2e3d7d5d1e2b8c6f1d1a8c8\r
+c2c4c7c5g1f3g8f6g2g3b7b6f1g2c8b7e1g1g7g6d2d4c5d4d1d4f8g7b1c3b8c6d4h4h7h6c3d5e7e6\r
+c2c4c7c5g1f3g8f6g2g3g7g6f1g2f8g7e1g1e8g8d2d4c5d4f3d4b8c6b1c3d7d6d4c2h7h5c1g5c8e6\r
+c2c4c7c5g2g3b8c6f1g2g8f6g1f3e7e6e1g1d7d5c4d5e6d5d2d4f8e7b1c3e8g8c1f4c5d4f3d4d8b6\r
+c2c4c7c5g2g3b8c6g1f3e7e5b1c3g7g6f1g2f8g7e1g1g8e7f3e1d7d6e1c2c8e6d2d3d6d5b2b3e8g8\r
+c2c4c7c5g2g3b8c6g1f3g7g6d2d4c5d4f3d4f8g7d4c2g8f6f1g2e8g8b1c3d7d6e1g1c8d7b2b3d8c8\r
+c2c4c7c5g2g3g7g6f1g2f8g7b1c3b8c6a2a3a7a6a1b1a8b8b2b4c5b4a3b4b7b5c4b5a6b5g1f3d7d5\r
+c2c4c7c5g2g3g7g6f1g2f8g7b1c3b8c6a2a3d7d6e2e3g8f6g1e2e8g8e1g1c8f5e3e4f5g4f2f3g4d7\r
+c2c4c7c5g2g3g7g6f1g2f8g7b1c3b8c6e2e4e7e5g1e2g8e7a2a3d7d6a1b1a7a5e1g1e8g8d2d3a8b8\r
+c2c4c7c5g2g3g7g6f1g2f8g7b1c3g8f6b2b3e8g8c1b2b8c6g1f3e7e5e1g1d7d6d2d3h7h6e2e3c8e6\r
+c2c4c7c6d2d4d7d5b1c3g8f6e2e3a7a6g1f3b7b5b2b3c8g4f1e2e7e6f3e5g4e2d1e2f8e7e1g1e8g8\r
+c2c4c7c6d2d4d7d5b1c3g8f6e2e3a7a6g1f3b7b5b2b3c8g4f1e2e7e6h2h3g4f3e2f3f8e7e1g1e8g8\r
+c2c4c7c6d2d4d7d5b1c3g8f6g1f3e7e6e2e3b8d7d1c2b7b6f1d3c8b7e1g1f8e7b2b3d8c7c1b2a8d8\r
+c2c4c7c6d2d4d7d5b1c3g8f6g1f3e7e6e2e3b8d7d1c2b7b6f1d3c8b7e1g1f8e7b2b3d8c7c1b2h7h6\r
+c2c4c7c6d2d4d7d5c4d5c6d5c1f4b8c6e2e3g8f6b1c3a7a6f1d3c8g4g1e2e7e6e1g1f8d6f2f3\r
+c2c4c7c6d2d4d7d5e2e3e7e6b1c3f7f5g1f3f8d6f1d3g8h6f3e5d8h4g2g3h4f6f2f4d6e5d4e5f6e7\r
+c2c4c7c6d2d4d7d5g1f3g8f6b1c3d5c4a2a4c8f5e2e3e7e6f1c4f8b4e1g1e8g8d1e2b8d7e3e4f5g6\r
+c2c4c7c6d2d4d7d5g1f3g8f6b1c3e7e6c1g5d5c4e2e4b7b5e4e5h7h6g5h4g7g5f3g5h6g5h4g5b8d7\r
+c2c4c7c6e2e4d7d5e4d5c6d5d2d4g8f6b1c3e7e6g1f3f8b4f1d3d5c4d3c4e8g8e1g1b7b6c1g5c8b7\r
+c2c4c7c6g1f3d7d5b2b3c8g4e2e3b8d7c1b2e7e6f1e2g8f6e1g1f8d6d2d3e8g8d1c2d8e7f1d1e6e5\r
+c2c4c7c6g1f3d7d5d2d4g8f6b1c3e7e6e2e3b8d7f1d3d5c4d3c4b7b5c4e2b5b4c3a4c8b7e1g1f8e7\r
+c2c4c7c6g1f3d7d5e2e3g8f6b1c3a7a6h2h3b7b5b2b3b8d7d2d4e7e6f1d3f8b4c1d2b5c4b3c4d5c4\r
+c2c4c7c6g1f3d7d5e2e3g8f6b1c3e7e6b2b3b8d7c1b2e6e5d2d4e5e4f3d2f8e7a2a3e8g8b3b4f8e8\r
+c2c4c7c6g1f3d7d5e2e3g8f6b1c3e7e6b2b3b8d7c1b2f8e7d2d4e8g8f1d3b7b6e1g1c8b7d1e2d8c7\r
+c2c4e7e5a2a3g8f6d2d3c7c6g1f3g7g6b1c3d7d6g2g3f8g7f1g2e8g8e1g1d8e7e2e4h7h6d3d4c8g4\r
+c2c4e7e5b1c3b8c6g1f3f7f5d2d4e5e4f3d2g8f6e2e3g7g6a2a3f8g7b2b4e8g8g2g3d7d6d2b3d8e7\r
+c2c4e7e5b1c3b8c6g1f3g8f6g2g3c6d4f1g2d4f3g2f3f8c5e1g1e8g8e2e3c5b4f3g2b4c3b2c3c7c6\r
+c2c4e7e5b1c3b8c6g2g3g7g6f1g2d7d6a1b1c8f5d2d3d8d7b2b4f8g7b4b5c6d8c3d5c7c6b5c6b7c6\r
+c2c4e7e5b1c3b8c6g2g3g7g6f1g2f8g7e2e3d7d6g1e2f7f5d2d4e5e4b2b4g8f6a1b1c6e7f2f3e4f3\r
+c2c4e7e5b1c3b8c6g2g3g7g6f1g2f8g7e2e3d7d6g1e2g8f6e1g1e8g8d2d3c8e6c3d5d8d7f1e1a8b8\r
+c2c4e7e5b1c3b8c6g2g3g7g6f1g2f8g7e2e3g8e7g1e2e8g8e1g1d7d6a2a3c8e6c3d5d8d7d2d3e7f5\r
+c2c4e7e5b1c3b8c6g2g3g7g6f1g2f8g7e2e4d7d6g1e2g8e7d2d3e8g8e1g1c8e6h2h3d8d7g1h2f7f5\r
+c2c4e7e5b1c3d7d6d2d4e5d4d1d4b8c6d4d2g8f6b2b3a7a5e2e4a5a4a1b1a4b3a2b3g7g6g2g3f8g7\r
+c2c4e7e5b1c3d7d6g1f3c8g4e2e3g8f6f1e2c7c6h2h3g4h5e1g1f8e7d2d3e8g8b2b3b8d7f3h4h5e2\r
+c2c4e7e5b1c3d7d6g1f3c8g4e2e3g8f6f1e2f8e7h2h3g4h5d2d4b8d7e1g1c7c6b2b3e8g8c1b2f8e8\r
+c2c4e7e5b1c3d7d6g1f3c8g4e2e3g8f6h2h3g4f3d1f3c7c6d2d4f8e7d4d5e8g8f1d3b8a6e1g1c6d5\r
+c2c4e7e5b1c3d7d6g1f3f7f5d2d4e5e4f3d2c7c6e2e3g8f6f1e2g7g6e1g1f8h6b2b4e8g8b4b5f8e8\r
+c2c4e7e5b1c3d7d6g1f3f7f5d2d4e5e4f3g5f8e7g5h3c7c5d4c5d6c5d1d8e7d8c3b5d8a5c1d2a5d2\r
+c2c4e7e5b1c3d7d6g1f3g7g6d2d4b8d7g2g3f8g7f1g2g8h6e1g1e8g8e2e4c7c6b2b3f8e8c1b2f7f6\r
+c2c4e7e5b1c3d7d6g2g3b8c6f1g2g7g6d2d3f8g7c1d2g8e7g1f3e8g8e1g1c8d7a1b1d8c8b2b4d7h3\r
+c2c4e7e5b1c3d7d6g2g3c7c5f1g2b8c6a2a3g7g6b2b4f8g7a1b1g8e7e2e3e8g8d2d3a8b8g1e2c8e6\r
+c2c4e7e5b1c3d7d6g2g3c8e6f1g2c7c6d2d3g8f6g1f3h7h6e1g1f8e7b2b3e8g8e2e4c6c5f3h4b8c6\r
+c2c4e7e5b1c3d7d6g2g3f7f5f1g2b8c6d2d3g8f6e2e3f8e7g1e2e8g8e1g1d8e8f2f4e7d8a2a3a8b8\r
+c2c4e7e5b1c3d7d6g2g3g7g6d2d4b8c6d4d5c6e7e2e4f8g7h2h4g8f6f1e2h7h5g1h3c7c5h3g5c8d7\r
+c2c4e7e5b1c3d7d6g2g3g7g6d2d4b8d7f1g2f8g7g1f3g8h6c4c5e8g8c5d6c7d6e2e4e5d4f3d4d7c5\r
+c2c4e7e5b1c3d7d6g2g3g7g6f1g2f8g7d2d3b8c6e2e4g8e7g1e2e8g8e1g1c8e6c3d5d8d7c1e3f7f5\r
+c2c4e7e5b1c3d7d6g2g3g7g6f1g2f8g7g1f3g8h6d2d4b8d7e1g1e8g8e2e4c7c6b2b3f8e8h2h3f7f6\r
+c2c4e7e5b1c3g8f6g1f3b8c6d2d4e5d4f3d4f8b4c1g5h7h6g5h4e8g8e2e3f8e8f1e2c6e5d1b3b4a5\r
+c2c4e7e5b1c3g8f6g1f3b8c6d2d4e5e4f3e5f8b4c1g5h7h6g5h4d8e7e5c6b7c6e2e3e8g8f1e2d7d6\r
+c2c4e7e5b1c3g8f6g1f3b8c6e2e3f8b4c3d5b4e7d1c2d7d6b2b4c8e6d5e7c6e7c1b2e6f5d2d3e8g8\r
+c2c4e7e5b1c3g8f6g1f3b8c6g2g3c6d4f1g2d4f3g2f3f8b4d1b3b4c5d2d3e8g8e1g1c7c6f3g2f8e8\r
+c2c4e7e5b1c3g8f6g1f3b8c6g2g3d7d5c4d5f6d5f1g2d5b6e1g1f8e7a2a3e8g8b2b4f8e8d2d3e7f8\r
+c2c4e7e5b1c3g8f6g1f3b8c6g2g3d7d5c4d5f6d5f1g2d5b6e1g1f8e7d2d3e8g8a2a3c8e6c1e3f7f5\r
+c2c4e7e5b1c3g8f6g1f3b8c6g2g3f8b4f1g2e8g8e1g1b4c3b2c3d7d6d2d3e5e4f3d4e4d3d4c6d3e2\r
+c2c4e7e5b1c3g8f6g1f3b8c6g2g3f8b4f1g2e8g8e1g1e5e4f3e1b4c3d2c3d7d6e1c2f8e8c2e3h7h6\r
+c2c4e7e5b1c3g8f6g1f3b8c6g2g3f8b4f1g2e8g8e1g1e5e4f3e1b4c3d2c3h7h6e1c2f8e8c2e3d7d6\r
+c2c4e7e5b1c3g8f6g1f3b8c6g2g3f8b4f1g2e8g8e1g1e5e4f3g5b4c3b2c3f8e8f2f3e4e3d2d3d7d5\r
+c2c4e7e5b1c3g8f6g1f3b8c6g2g3f8b4f1g2e8g8e1g1f8e8c3d5f6d5c4d5c6d4f3d4e5d4e2e3c7c5\r
+c2c4e7e5b1c3g8f6g1f3b8c6g2g3f8b4f1g2e8g8e1g1f8e8d2d3b4c3b2c3e5e4f3d4h7h6d3e4f6e4\r
+c2c4e7e5b1c3g8f6g1f3b8c6g2g3f8b4f1g2e8g8e1g1f8e8d2d3h7h6c3d5b4f8h2h3d7d6e2e4c6d4\r
+c2c4e7e5b1c3g8f6g1f3b8c6g2g3f8c5f1g2d7d6d2d3a7a6c1g5h7h6g5f6d8f6e1g1f6d8a2a3c6d4\r
+c2c4e7e5b1c3g8f6g1f3b8c6g2g3f8c5f1g2e8g8e1g1d7d6d2d3c8e6a2a3a7a5c1g5h7h6g5h4c6d4\r
+c2c4e7e5b1c3g8f6g1f3b8c6g2g3f8c5f1g2e8g8e1g1d7d6d2d3h7h6a2a3a7a6b2b4c5a7c1b2c8g4\r
+c2c4e7e5b1c3g8f6g2g3c7c6g1f3e5e4f3d4d7d5c4d5c6d5d2d3d8b6d4b3f6g4d3d4c8e6f2f3e4f3\r
+c2c4e7e5b1c3g8f6g2g3d7d5c4d5f6d5f1g2d5b6g1f3b8c6e1g1f8e7a2a3c8e6b2b4e8g8a1b1f7f6\r
+c2c4e7e5b1c3g8f6g2g3d7d5c4d5f6d5f1g2d5b6g1f3b8c6e1g1f8e7a2a3e8g8b2b4c8e6a1b1f7f6\r
+c2c4e7e5b1c3g8f6g2g3f8b4f1g2e8g8d1b3b4c3b3c3f8e8d2d3d7d5c4d5f6d5c3b3d5b6b3c2b8c6\r
+c2c4e7e5b1c3g8f6g2g3f8b4f1g2e8g8e2e4b4c3d2c3d7d6d1e2b8d7g1f3d7c5f3h4a7a6b2b3b7b5\r
+c2c4e7e5b1c3g8f6g2g3f8b4f1g2e8g8g1f3f8e8e1g1e5e4f3d4b8c6d4c2b4c3d2c3c6e5b2b3d7d6\r
+c2c4e7e5b1c3g8f6g2g3f8c5f1g2b8c6e2e3e8g8g1e2f8e8e1g1d7d6d2d4c5b6h2h3c8d7a2a3c6e7\r
+c2c4e7e5g1f3e5e4f3d4b8c6d4c2g8f6b1c3f8c5b2b3e8g8g2g3d7d5c4d5c6b4c2b4c5b4f1g2f8e8\r
+c2c4e7e5g2g3b8c6f1g2g7g6b1c3f8g7e2e3d7d6g1e2g8e7e1g1e8g8d2d3c8g4h2h3g4e6c3d5d8d7\r
+c2c4e7e5g2g3b8c6f1g2g7g6b1c3f8g7e2e3d7d6g1e2g8h6a1b1c8e6d2d3e8g8b2b4d8d7h2h4f7f5\r
+c2c4e7e5g2g3b8c6f1g2g7g6b1c3f8g7e2e3d7d6g1e2h7h5h2h4c8g4d2d3g8f6c3d5f6d5c4d5c6e7\r
+c2c4e7e5g2g3b8c6f1g2g7g6b1c3f8g7e2e3g8f6g1e2e8g8e1g1d7d6d2d4e5d4e3d4f8e8h2h3h7h6\r
+c2c4e7e5g2g3c7c6b2b3d7d5c1b2d5d4g1f3f8d6d2d3c6c5f1g2g8e7e1g1e7c6e2e3e8g8b1d2c8e6\r
+c2c4e7e5g2g3d7d6b1c3f7f5f1g2g8f6e2e3f8e7g1e2c7c6d2d4e8g8e1g1b8a6a1b1a6c7b2b3e5e4\r
+c2c4e7e5g2g3d7d6f1g2g7g6d2d4b8d7b1c3f8g7g1f3g8f6e1g1e8g8d1c2f8e8f1d1c7c6b2b3d8e7\r
+c2c4e7e5g2g3g8f6f1g2b8c6b1c3d7d6e2e3c8g4g1e2d8d7h2h3g4e6c3d5e6d5c4d5c6b4d1b3c7c5\r
+c2c4e7e5g2g3g8f6f1g2b8c6g1f3f8c5e1g1d7d6b1c3e8g8d2d3a7a6a2a3c6d4f3d2c7c6b2b4c5a7\r
+c2c4e7e6b1c3c7c5g1f3g8f6g2g3b7b6f1g2c8b7e1g1f8e7d2d4c5d4d1d4d7d6b2b3e8g8c1b2a7a6\r
+c2c4e7e6b1c3d7d5d2d4c7c6e2e3g8f6g1f3b8d7d1c2b7b6f1d3c8b7e1g1f8e7b2b3d8c7c1b2a8c8\r
+c2c4e7e6b1c3d7d5d2d4f8e7c4d5e6d5c1f4c7c6e2e3c8f5g2g4f5e6h2h3g8f6g1f3e8g8f1d3c6c5\r
+c2c4e7e6b1c3d7d5d2d4f8e7c4d5e6d5c1f4g8f6e2e3c8f5g1e2e8g8a1c1c7c6e2g3f5e6f1d3f8e8\r
+c2c4e7e6b1c3d7d5d2d4f8e7g1f3g8f6c1f4e8g8e2e3c7c5d4c5e7c5a2a3b8c6d1c2c5e7a1d1d8a5\r
+c2c4e7e6b1c3d7d5d2d4f8e7g1f3g8f6c1f4e8g8e2e3c7c5d4c5e7c5d1c2b8c6a1d1d8a5a2a3c5e7\r
+c2c4e7e6b1c3d7d5d2d4f8e7g1f3g8f6c1g5e8g8e2e3b8d7d1c2h7h6g5h4c7c5a1d1c5d4f3d4d7b6\r
+c2c4e7e6b1c3d7d5d2d4f8e7g1f3g8f6c1g5e8g8e2e3b8d7d1c2h7h6g5h4c7c5c4d5c5d4f3d4f6d5\r
+c2c4e7e6b1c3d7d5d2d4f8e7g1f3g8f6c1g5e8g8e2e3h7h6g5h4b7b6a1c1c8b7h4f6e7f6c4d5e6d5\r
+c2c4e7e6b1c3d7d5d2d4f8e7g1f3g8f6c1g5e8g8e2e3h7h6g5h4b7b6c4d5f6d5h4e7d8e7c3d5e6d5\r
+c2c4e7e6b1c3d7d5d2d4f8e7g1f3g8f6c1g5e8g8e2e3h7h6g5h4b7b6c4d5f6d5h4e7d8e7c3d5e6d5\r
+c2c4e7e6b1c3d7d5d2d4f8e7g1f3g8f6c1g5e8g8e2e3h7h6g5h4b7b6c4d5f6d5h4e7d8e7c3d5e6d5\r
+c2c4e7e6b1c3d7d5d2d4f8e7g1f3g8f6c1g5h7h6g5h4b7b6a1c1e8g8c4d5f6d5c3d5e6d5h4e7d8e7\r
+c2c4e7e6b1c3d7d5d2d4f8e7g1f3g8f6c1g5h7h6g5h4e8g8a1c1b7b6c4d5f6d5c3d5e6d5h4e7d8e7\r
+c2c4e7e6b1c3d7d5d2d4f8e7g1f3g8f6c1g5h7h6g5h4e8g8a1c1d5c4e2e3c7c5f1c4c5d4e3d4b8c6\r
+c2c4e7e6b1c3d7d5d2d4f8e7g1f3g8f6c1g5h7h6g5h4e8g8e2e3b7b6a1c1c8b7f1e2b8d7c4d5e6d5\r
+c2c4e7e6b1c3d7d5d2d4f8e7g1f3g8f6c1g5h7h6g5h4e8g8e2e3b7b6a1c1c8b7f1e2d5c4e2c4b8d7\r
+c2c4e7e6b1c3d7d5d2d4f8e7g1f3g8f6c1g5h7h6g5h4e8g8e2e3b7b6a1c1c8b7h4f6e7f6c4d5e6d5\r
+c2c4e7e6b1c3d7d5d2d4f8e7g1f3g8f6c1g5h7h6g5h4e8g8e2e3b7b6f1e2c8b7h4f6e7f6c4d5e6d5\r
+c2c4e7e6b1c3d7d5d2d4f8e7g1f3g8f6d1c2e8g8c1g5c7c5d4c5d5c4e2e4d8a5e4e5f6d5f1c4d5c3\r
+c2c4e7e6b1c3d7d5d2d4g8f6c1g5f8e7e2e3h7h6g5h4e8g8g1f3b7b6c4d5f6d5h4e7d8e7c3d5e6d5\r
+c2c4e7e6b1c3d7d5d2d4g8f6c4d5e6d5c1g5c7c6d1c2f8e7e2e3b8d7f1d3e8g8g1e2f8e8e1g1g7g6\r
+c2c4e7e6b1c3d7d5d2d4g8f6c4d5e6d5c1g5f8e7e2e3e8g8f1d3b8d7g1e2f8e8e1g1d7f8d1c2c7c6\r
+c2c4e7e6b1c3d7d5d2d4g8f6c4d5e6d5c1g5f8e7e2e3e8g8f1d3b8d7g1f3f8e8d1c2c7c6e1g1d7f8\r
+c2c4e7e6b1c3d7d5d2d4g8f6c4d5e6d5c1g5f8e7e2e3e8g8f1d3c7c6d1c2b8d7g1f3f8e8h2h3d7f8\r
+c2c4e7e6b1c3d7d5d2d4g8f6g1f3b8d7c4d5e6d5c1f4c7c6e2e3f8e7h2h3e8g8f1d3f8e8d1c2d7f8\r
+c2c4e7e6b1c3d7d5d2d4g8f6g1f3f8e7c1f4e8g8e2e3b7b6c4d5e6d5f1d3c8b7h2h3c7c5e1g1b8d7\r
+c2c4e7e6b1c3d7d5d2d4g8f6g1f3f8e7c1g5h7h6g5h4e8g8e2e3b7b6a1c1c8b7c4d5f6d5c3d5b7d5\r
+c2c4e7e6b1c3f7f5d2d4g8f6c1g5f8e7g1f3e8g8h2h3d7d6e2e3b7b6f1e2d8e8d1c2h7h6g5h4g7g5\r
+c2c4e7e6b1c3f7f5g1f3g8f6b2b3b7b6g2g3c8b7f1g2f8b4c1b2e8g8e1g1b4c3b2c3d7d6d2d3d8e8\r
+c2c4e7e6b1c3f7f5g2g3g8f6f1g2f8e7d2d4e8g8g1f3d7d5e1g1c7c6b2b3f6e4c1b2b8d7e2e3e7f6\r
+c2c4e7e6b1c3f7f5g2g3g8f6f1g2f8e7e2e3e8g8g1e2c7c6d2d4d7d5b2b3c8d7c1b2d7e8e2f4e8f7\r
+c2c4e7e6b1c3g8f6d2d4f8b4e2e3c7c5g1e2d7d5a2a3b4c3e2c3c5d4e3d4d5c4f1c4b8c6c1e3e8g8\r
+c2c4e7e6b1c3g8f6d2d4f8b4f2f3d7d5a2a3b4c3b2c3c7c6e2e3b7b6c4d5c6d5f1b5b8d7a3a4a7a6\r
+c2c4e7e6b1c3g8f6g1f3d7d5d2d4f8e7c1g5e8g8d1c2b7b6g5f6e7f6e2e4b8c6e1c1d5e4c2e4c8b7\r
+c2c4e7e6d2d4d7d5b1c3c7c5c4d5e6d5g1f3b8c6g2g3g8f6f1g2f8e7e1g1e8g8c1g5c5d4f3d4h7h6\r
+c2c4e7e6d2d4d7d5b1c3c7c5c4d5e6d5g1f3b8c6g2g3g8f6f1g2f8e7e1g1e8g8c1g5c5d4f3d4h7h6\r
+c2c4e7e6d2d4d7d5b1c3c7c5c4d5e6d5g1f3b8c6g2g3g8f6f1g2f8e7e1g1e8g8c1g5c5d4f3d4h7h6\r
+c2c4e7e6d2d4d7d5b1c3f8e7g1f3g8f6c1f4c7c5d4c5b8a6e2e3a6c5c4d5e6d5f1e2e8g8e1g1c8e6\r
+c2c4e7e6d2d4d7d5b1c3f8e7g1f3g8f6c1g5e8g8e2e3h7h6g5f6e7f6d1d2b7b6c4d5e6d5a1d1c8e6\r
+c2c4e7e6d2d4d7d5b1c3f8e7g1f3g8f6c1g5h7h6g5h4e8g8a1c1f6e4h4e7d8e7e2e3c7c6d1c2e4c3\r
+c2c4e7e6d2d4d7d5b1c3g8f6c1g5f8e7e2e3e8g8a1c1b8d7g1f3c7c5c4d5f6d5g5e7d5e7f1e2b7b6\r
+c2c4e7e6d2d4d7d5b1c3g8f6c4d5e6d5c1g5c7c6e2e3c8f5d1f3f5g6g5f6d8f6f3f6g7f6e1d2b8d7\r
+c2c4e7e6d2d4d7d5g1f3c7c5c4d5e6d5g2g3b8c6f1g2g8f6e1g1f8e7b1c3e8g8c1g5c5d4f3d4h7h6\r
+c2c4e7e6d2d4d7d5g1f3c7c5c4d5e6d5g2g3b8c6f1g2g8f6e1g1f8e7b1c3e8g8c1g5c8e6d4c5e7c5\r
+c2c4e7e6d2d4d7d5g1f3f8e7b1c3g8f6c1g5e8g8e2e3h7h6g5f6e7f6d1d2b7b6c4d5e6d5b2b4c8b7\r
+c2c4e7e6d2d4d7d5g1f3g8f6c1g5f8e7e2e3e8g8c4d5e6d5b1c3b8d7f1d3b7b6e1g1c8b7a1c1c7c5\r
+c2c4e7e6d2d4g8f6g1f3d7d5b1c3c7c5c4d5f6d5g2g3b8c6f1g2d5c3b2c3c5d4c3d4f8b4c1d2b4e7\r
+c2c4e7e6g1f3d7d5b2b3f8e7c1b2e7f6b1c3c7c5c4d5e6d5d2d4c5d4f3d4g8e7g2g3e8g8f1g2b8c6\r
+c2c4e7e6g1f3d7d5b2b3g8f6g2g3b7b6f1g2c8b7e1g1b8d7c1b2f8e7e2e3e8g8d2d3d5c4b3c4d7c5\r
+c2c4e7e6g1f3d7d5d2d4g8f6b1c3f8e7c1f4e8g8e2e3c7c5d4c5b8c6c4d5e6d5f1e2e7c5e1g1c8e6\r
+c2c4e7e6g1f3d7d5d2d4g8f6b1c3f8e7c1g5e8g8e2e3h7h6g5h4b7b6c4d5f6d5h4e7d8e7c3d5e6d5\r
+c2c4e7e6g1f3d7d5d2d4g8f6b1c3f8e7c1g5h7h6g5h4e8g8a1c1b7b6c4d5e6d5e2e3c8b7f1e2b8d7\r
+c2c4e7e6g1f3d7d5d2d4g8f6b1c3f8e7c1g5h7h6g5h4e8g8e2e3b8d7a1c1c7c6f1d3d5c4d3c4b7b5\r
+c2c4e7e6g1f3d7d5e2e3g8f6b2b3g7g6c1b2f8g7d2d4e8g8f1d3c7c5e1g1c5d4f3d4e6e5d4b5a7a6\r
+c2c4e7e6g1f3d7d5g2g3d5d4e2e3b8c6e3d4c6d4f1g2g8h6e1g1h6f5d2d3f8e7f3d4f5d4b1d2e8g8\r
+c2c4e7e6g1f3g8f6b1c3b7b6e2e4c8b7d2d3d7d6g2g3g7g6f1g2f8g7e1g1e8g8f3e1f6e8d3d4c7c5\r
+c2c4e7e6g1f3g8f6b1c3c7c5g2g3b8c6f1g2d7d5c4d5f6d5e1g1f8e7d2d4e8g8c3d5e6d5c1e3c5c4\r
+c2c4e7e6g1f3g8f6b1c3d7d5d2d4f8b4c4d5e6d5c1g5h7h6g5f6d8f6d1a4b8c6e2e3e8g8f1e2c8e6\r
+c2c4e7e6g1f3g8f6d2d4d7d5b1c3b8d7c4d5e6d5c1g5f8e7e2e3c7c6d1c2d7f8f1d3f8e6g5h4g7g6\r
+c2c4e7e6g1f3g8f6g2g3b7b6f1g2c8b7e1g1f8e7b2b3e8g8c1b2d7d5c4d5e6d5d1c2f8e8e2e3b8d7\r
+c2c4e7e6g1f3g8f6g2g3d7d5b2b3f8e7f1g2e8g8e1g1b7b6c1b2c8b7e2e3b8d7b1c3f6e4c3e2a7a5\r
+c2c4e7e6g1f3g8f6g2g3d7d5f1g2f8e7e1g1e8g8d2d4b8d7b1d2b7b6c4d5e6d5f3e5c8b7d2f3f6e4\r
+c2c4e7e6g2g3d7d5f1g2d5d4b2b4c7c5b4b5e6e5d2d3f8d6e2e4d8c7g1e2h7h5h2h4g8h6e1g1c8g4\r
+c2c4e7e6g2g3d7d5f1g2g8f6g1f3f8e7d2d4d5c4b1c3e8g8f3e5c7c5d4c5d8d1c3d1b8d7e5c4d7c5\r
+c2c4e7e6g2g3d7d5f1g2g8f6g1f3f8e7e1g1e8g8b2b3b7b6c1b2c8b7e2e3c7c5d1e2b8c6f1d1a8c8\r
+c2c4e7e6g2g3d7d5f1g2g8f6g1f3f8e7e1g1e8g8d2d4b8d7b1d2c7c6b2b3b7b6c1b2c8b7a1c1a7a5\r
+c2c4e7e6g2g3d7d5f1g2g8f6g1f3f8e7e1g1e8g8d2d4b8d7d1c2c7c6b2b3b7b5b1d2b5c4b3c4c8a6\r
+c2c4e7e6g2g3d7d5f1g2g8f6g1f3f8e7e1g1e8g8d2d4b8d7d1c2c7c6c1f4f6e4b1c3g7g5f4c1f7f5\r
+c2c4e7e6g2g3d7d5f1g2g8f6g1f3f8e7e1g1e8g8d2d4c7c6b2b3b7b6c1b2c8b7b1c3b8d7d1c2a8c8\r
+c2c4e7e6g2g3d7d5f1g2g8f6g1f3f8e7e1g1e8g8d2d4d5c4d1c2a7a6c2c4b7b5c4c2c8b7c1d2b7e4\r
+c2c4e7e6g2g3d7d5f1g2g8f6g1f3f8e7e1g1e8g8d2d4d5c4f3e5b8c6g2c6b7c6b1c3c6c5d4c5e7c5\r
+c2c4e7e6g2g3d7d5g1f3g8f6f1g2f8e7d2d4e8g8b1c3d5c4f3e5c7c5d4c5d8d1c3d1e7c5e5c4b8c6\r
+c2c4e7e6g2g3d7d5g1f3g8f6f1g2f8e7d2d4e8g8b1d2b7b6e1g1c8b7b2b3b8d7c1b2c7c5a1c1a8c8\r
+c2c4e7e6g2g3f7f5f1g2g8f6g1f3f8e7e1g1e8g8b2b3a7a5a2a3d7d5c1b2c7c6d2d3c8d7b1d2b8a6\r
+c2c4e7e6g2g3f7f5f1g2g8f6g1f3f8e7e1g1e8g8b2b3d7d5c1b2c8d7d2d3d7e8b1d2b8c6a2a3a7a5\r
+c2c4e7e6g2g3g8f6f1g2d7d5g1f3d5c4d1a4b8d7a4c4a7a6e1g1f8d6d2d4e8g8f1d1d8e7c4c2a8b8\r
+c2c4e7e6g2g3g8f6f1g2d7d5g1f3f8e7e1g1e8g8d2d4b8d7d1c2b7b6c4d5f6d5b1c3c8b7c3d5b7d5\r
+c2c4f7f5g1f3g8f6g2g3g7g6f1g2f8g7d2d4d7d6b1c3e7e6e1g1e8g8d1c2b8c6f1d1d8e7a1b1a7a5\r
+c2c4g7g6b1c3c7c5g2g3f8g7f1g2b8c6a2a3a7a6a1b1a8b8d1a4d7d6b2b4c8f5g2c6b7c6a4c6f5d7\r
+c2c4g7g6b1c3c7c5g2g3f8g7f1g2b8c6e2e3e7e6g1e2g8e7d2d4c5d4e2d4d7d5c4d5c6d4e3d4e7d5\r
+c2c4g7g6b1c3c7c5g2g3f8g7f1g2b8c6g1f3e7e6e1g1g8e7d2d3e8g8c1d2b7b6d1c1c8b7d2h6d7d6\r
+c2c4g7g6b1c3c7c5g2g3f8g7f1g2b8c6g1f3e7e6e1g1g8e7d2d3e8g8c1d2h7h6a2a3d7d5a1b1a7a5\r
+c2c4g7g6b1c3f8g7g1f3d7d6d2d4g8f6e2e4e8g8f1e2e7e5e1g1b8d7f1e1c7c6d4d5c6c5a2a3f6e8\r
+c2c4g7g6b1c3f8g7g2g3d7d6f1g2e7e5d2d3b8c6e2e4f7f5g1e2g8h6h2h4c8e6c3d5h6f7c1e3d8d7\r
+c2c4g7g6b1c3f8g7g2g3e7e5f1g2d7d6e2e3g8f6g1e2c7c6e3e4e8g8d2d3a7a6h2h3b7b5c1g5b8d7\r
+c2c4g7g6d2d4f8g7b1c3d7d6e2e4g8f6f2f3e8g8c1e3e7e5g1e2c7c6d4d5c6d5c4d5a7a6d1d2b8d7\r
+c2c4g7g6d2d4g8f6b1c3d7d5c1f4f8g7a1c1d5c4e2e4c7c5d4c5d8a5f1c4e8g8e4e5f6d7g1f3d7c5\r
+c2c4g7g6d2d4g8f6b1c3d7d5g1f3f8g7d1a4c8d7a4b3d5c4b3c4e8g8e2e4d7g4c1e3f6d7a1d1d7b6\r
+c2c4g7g6d2d4g8f6b1c3d7d5g1f3f8g7e2e3e8g8f1e2d5c4e2c4c7c5d4d5e7e6d5e6d8d1e1d1c8e6\r
+c2c4g7g6d2d4g8f6g1f3f8g7g2g3e8g8f1g2d7d6e1g1b8c6b1c3a7a6b2b3a8b8c1b2b7b5c4b5a6b5\r
+c2c4g7g6d2d4g8f6g2g3c7c5d4d5d7d6f1g2f8g7g1f3a7a6a2a4e7e5d5e6f7e6b1c3b8c6e1g1e8g8\r
+c2c4g7g6e2e4f8g7d2d4d7d6b1c3a7a6c1e3g8f6f2f3c7c6f1d3b7b5d1d2b5c4d3c4d6d5c4b3d5e4\r
+c2c4g7g6g1f3f8g7b1c3d7d6d2d4g8f6c1g5h7h6g5h4g6g5h4g3f6h5e2e3c7c5d4c5h5g3h2g3d6c5\r
+c2c4g7g6g1f3f8g7b1c3e7e5g2g3g8e7f1g2e8g8d2d4e5d4f3d4b8c6d4c6e7c6e1g1d7d6c1d2c8g4\r
+c2c4g7g6g1f3f8g7d2d4g8f6b1c3e8g8e2e4d7d6f1e2e7e5e1g1b8c6d4d5c6e7f3d2c7c5a1b1f6e8\r
+c2c4g7g6g2g3f8g7f1g2c7c5g1f3b8c6e1g1g8h6b1c3e8g8a2a3a8b8b2b4b7b6a1b1c8b7d2d3h6f5\r
+c2c4g7g6g2g3f8g7f1g2e7e5b1c3g8e7e2e4e8g8g1e2b8c6d2d3d7d6e1g1c8e6c3d5f7f5c1e3d8d7\r
+c2c4g8f6b1c3c7c5g1f3b8c6d2d4c5d4f3d4g7g6e2e4f8g7c1e3f6g4d1g4c6d4g4d1d4e6a1c1d7d6\r
+c2c4g8f6b1c3c7c5g1f3b8c6e2e3e7e6d2d4d7d5c4d5e6d5f1e2c5d4f3d4f8d6e1g1e8g8e2f3d6e5\r
+c2c4g8f6b1c3c7c5g1f3d7d5c4d5f6d5e2e3e7e6d2d4b8c6f1d3f8e7e1g1c5d4e3d4e8g8f1e1d8d6\r
+c2c4g8f6b1c3c7c5g1f3d7d5c4d5f6d5g2g3b8c6f1g2d5c7a2a3e7e5b2b4f7f6b4c5f8c5e1g1e8g8\r
+c2c4g8f6b1c3c7c5g1f3d7d5c4d5f6d5g2g3d5c3b2c3g7g6d1a4b8d7h2h4h7h6a1b1f8g7f1g2e8g8\r
+c2c4g8f6b1c3c7c5g1f3e7e6e2e3b8c6d2d4d7d5c4d5e6d5f1e2f8d6d4c5d6c5e1g1e8g8c1d2a7a6\r
+c2c4g8f6b1c3c7c5g1f3g7g6e2e4b8c6d2d4c5d4f3d4f8g7c1e3f6g4d1g4c6d4g4d1d4e6a1c1d7d6\r
+c2c4g8f6b1c3c7c5g2g3e7e6g1f3b7b6f1g2c8b7b2b3f8e7c1b2d7d6e1g1e8g8d2d4c5d4d1d4a7a6\r
+c2c4g8f6b1c3c7c6e2e4d7d5e4d5c6d5d2d4e7e6g1f3f8e7f1d3d5c4d3c4e8g8e1g1b8c6f1e1a7a6\r
+c2c4g8f6b1c3d7d5c4d5f6d5e2e4d5c3b2c3g7g6c1a3b8d7g1f3f8g7f1e2c7c5e1g1e8g8d2d4c5d4\r
+c2c4g8f6b1c3d7d5c4d5f6d5g1f3d5c3b2c3g7g6d2d4f8g7e2e3c7c5f1b5b8d7e1g1e8g8a2a4a7a6\r
+c2c4g8f6b1c3d7d5c4d5f6d5g2g3g7g6f1g2d5c3b2c3f8g7a1b1b8d7c3c4e8g8g1f3a8b8e1g1b7b6\r
+c2c4g8f6b1c3d7d5c4d5f6d5g2g3g7g6f1g2d5c3b2c3f8g7a1b1b8d7g1f3e8g8e1g1e7e5d2d4c7c6\r
+c2c4g8f6b1c3d7d5c4d5f6d5g2g3g7g6f1g2d5c3b2c3f8g7c1a3b8d7g1f3c7c5d1a4e8g8a1b1a7a6\r
+c2c4g8f6b1c3d7d5c4d5f6d5g2g3g7g6f1g2d5c3b2c3f8g7d1b3b8c6g1f3e8g8e1g1c6a5b3c2c7c5\r
+c2c4g8f6b1c3d7d5c4d5f6d5g2g3g7g6f1g2d5c3b2c3f8g7g1f3e8g8e1g1c7c5a1b1b8c6d1a4c6a5\r
+c2c4g8f6b1c3d7d5d2d4c7c6g1f3d5c4a2a4c8f5f3e5e7e6f2f3f8b4e2e4f5e4f3e4f6e4c1d2d8d4\r
+c2c4g8f6b1c3d7d5d2d4g7g6c4d5f6d5e2e4d5c3b2c3f8g7f1b5c7c6b5c4b8d7g1f3h7h6e1g1e8g8\r
+c2c4g8f6b1c3d7d5d2d4g7g6e2e3f8g7g1f3e8g8d1b3c7c6c1d2e7e6a1c1b8d7c4d5e6d5f1d3f8e8\r
+c2c4g8f6b1c3e7e5e2e3b8c6a2a3d7d5c4d5f6d5d1c2d5c3d2c3f8d6e3e4c8e6g1f3f7f6c1e3d8e7\r
+c2c4g8f6b1c3e7e5g1f3b8c6a2a3d7d6d2d4c8g4d4d5c6e7e2e4g7g6f1e2f8g7e1g1f6h5f3e1g4e2\r
+c2c4g8f6b1c3e7e5g1f3b8c6d2d3f8e7e2e3d7d5c4d5f6d5f1e2e8g8e1g1c8e6a2a3a7a5d1c2d8d7\r
+c2c4g8f6b1c3e7e5g1f3b8c6d2d4e5d4f3d4f8b4c1g5h7h6g5h4b4c3b2c3c6e5f2f4e5g6h4f6d8f6\r
+c2c4g8f6b1c3e7e5g1f3b8c6g2g3f8b4c3d5b4c5d2d3h7h6f1g2d7d6e1g1e8g8e2e3a7a5d5c3c5a7\r
+c2c4g8f6b1c3e7e5g1f3b8c6g2g3f8b4c3d5b4c5f1g2d7d6e1g1e8g8e2e3c8g4h2h3g4f3g2f3f6d5\r
+c2c4g8f6b1c3e7e5g1f3b8c6g2g3f8b4c3d5b4c5f1g2d7d6e1g1f6d5c4d5c6d4f3d4c5d4e2e3d4b6\r
+c2c4g8f6b1c3e7e5g1f3b8c6g2g3f8b4c3d5f6d5c4d5c6d4f3d4e5d4d1c2d8e7f1g2b4c5e1g1e8g8\r
+c2c4g8f6b1c3e7e5g1f3b8c6g2g3f8b4f1g2e8g8c3d5f6d5c4d5c6d4f3d4e5d4d1c2d7d6e1g1a7a5\r
+c2c4g8f6b1c3e7e5g1f3b8c6g2g3f8b4f1g2e8g8e1g1e5e4f3e1b4c3d2c3h7h6e1c2b7b6c2e3c8b7\r
+c2c4g8f6b1c3e7e5g1f3b8c6g2g3f8b4f1g2e8g8e1g1e5e4f3e1b4c3d2c3h7h6e1c2f8e8c2e3b7b6\r
+c2c4g8f6b1c3e7e5g1f3b8c6g2g3f8b4f1g2e8g8e1g1e5e4f3g5b4c3b2c3f8e8f2f3e4f3g5f3d8e7\r
+c2c4g8f6b1c3e7e5g1f3b8c6g2g3f8c5f1g2e8g8e1g1f8e8e2e3c5b4c3d5b4f8d2d4d7d6d1b3f6e4\r
+c2c4g8f6b1c3e7e5g2g3c7c6g1f3d7d6f1g2g7g6e1g1f8g7d2d4b8d7e2e4e8g8h2h3f6e8c1g5f7f6\r
+c2c4g8f6b1c3e7e5g2g3c7c6g1f3e5e4f3d4d7d5c4d5d8b6d4b3c6d5f1g2a7a5d2d3a5a4c1e3b6b4\r
+c2c4g8f6b1c3e7e5g2g3f8b4d1b3b8c6c3d5b4c5e2e3e8g8f1g2f6d5c4d5c6e7g1e2d7d6e1g1c7c6\r
+c2c4g8f6b1c3e7e6d2d4d7d5c1g5b8d7e2e3c7c6g1f3d8a5f3d2f8b4d1c2e8g8f1e2e6e5g5f6d7f6\r
+c2c4g8f6b1c3e7e6d2d4d7d5c1g5f8e7e2e3h7h6g5h4b7b6c4d5f6d5h4e7d8e7c3d5e6d5g1e2e8g8\r
+c2c4g8f6b1c3e7e6d2d4d7d5e2e3b8d7g1f3c7c6d1c2f8d6c1d2d5c4f1c4e6e5d4e5d7e5f3e5d6e5\r
+c2c4g8f6b1c3e7e6d2d4f8b4a2a3b4c3b2c3b7b6f2f3c8a6e2e4d7d5c4d5a6f1e1f1e6d5c1g5h7h6\r
+c2c4g8f6b1c3e7e6d2d4f8b4c1d2e8g8g1f3b7b6e2e3c8b7a2a3b4c3d2c3d7d5a1c1b8d7f1e2f6e4\r
+c2c4g8f6b1c3e7e6d2d4f8b4c1d2e8g8g1f3b7b6e2e3c8b7f1d3d7d6e1g1b8d7a2a3b4c3d2c3f6e4\r
+c2c4g8f6b1c3e7e6d2d4f8b4c1d2e8g8g1f3c7c5d4c5b4c5e2e3d7d5a1c1d8e7c4d5e6d5f1e2b8c6\r
+c2c4g8f6b1c3e7e6d2d4f8b4d1c2e8g8a2a3b4c3c2c3b7b6c1g5c8b7e2e3c7c5d4c5b6c5f2f3b8c6\r
+c2c4g8f6b1c3e7e6d2d4f8b4e2e3b7b6g1e2c8a6a2a3b4c3e2c3d7d5b2b3e8g8a3a4c7c5c1a3d5c4\r
+c2c4g8f6b1c3e7e6d2d4f8b4e2e3b7b6g1e2c8a6a2a3b4c3e2c3d7d5b2b3e8g8f1e2d5c4b3c4b8c6\r
+c2c4g8f6b1c3e7e6d2d4f8b4e2e3b7b6g1e2c8a6a2a3b4c3e2c3d7d5b2b3e8g8f1e2d5c4b3c4b8c6\r
+c2c4g8f6b1c3e7e6d2d4f8b4e2e3e8g8f1d3c7c5d4d5b7b5d5e6f7e6c4b5a7a6g1e2d7d5e1g1e6e5\r
+c2c4g8f6b1c3e7e6d2d4f8b4e2e3e8g8f1d3d7d5a2a3d5c4d3c4b4d6g1f3b8c6b2b4e6e5c1b2c8g4\r
+c2c4g8f6b1c3e7e6d2d4f8b4e2e3e8g8f1d3d7d5a2a3d5c4d3c4b4d6g1f3b8c6b2b4e6e5c1b2c8g4\r
+c2c4g8f6b1c3e7e6d2d4f8b4e2e3e8g8f1d3d7d5a2a3d5c4d3c4b4d6g1f3b8c6c3b5e6e5b5d6d8d6\r
+c2c4g8f6b1c3e7e6d2d4f8b4e2e3e8g8g1e2d7d5a2a3b4e7c4d5e6d5g2g3b8d7f1g2d7b6e1g1f8e8\r
+c2c4g8f6b1c3e7e6d2d4f8b4g1f3c7c5e2e3e8g8f1d3d7d5e1g1b8d7c4d5e6d5d1b3d7b6c3e2a7a5\r
+c2c4g8f6b1c3e7e6e2e4c7c5e4e5f6g8d2d4c5d4d1d4b8c6d4e4d7d6g1f3d6e5f3e5g8f6e5c6d8b6\r
+c2c4g8f6b1c3e7e6e2e4c7c5e4e5f6g8g1f3b8c6d2d4c5d4f3d4c6e5d4b5a7a6b5d6f8d6d1d6f7f6\r
+c2c4g8f6b1c3e7e6e2e4c7c5e4e5f6g8g1f3b8c6d2d4c5d4f3d4c6e5d4b5a7a6b5d6f8d6d1d6f7f6\r
+c2c4g8f6b1c3e7e6e2e4c7c5e4e5f6g8g1f3d7d6e5d6f8d6d2d4c5d4d1d4g8f6c3b5d6b4c1d2d8d4\r
+c2c4g8f6b1c3e7e6e2e4d7d5e4e5f6e4g1f3f8e7d1c2e4g5f3g5e7g5c4d5e6d5d2d4g5e7c1e3e8g8\r
+c2c4g8f6b1c3e7e6g1f3b7b6e2e4c8b7d1e2c7c5e4e5f6g8d2d4b7f3e2f3b8c6d4d5c6e5f3g3d7d6\r
+c2c4g8f6b1c3e7e6g1f3b7b6e2e4c8b7d1e2f8b4e4e5f6g8d2d4g8e7c1d2e8g8e1c1d7d5h2h4b4c3\r
+c2c4g8f6b1c3e7e6g1f3b7b6e2e4c8b7d1e2f8b4e4e5f6g8d2d4g8e7e2d3d7d5e5d6c7d6a2a3b4c3\r
+c2c4g8f6b1c3e7e6g1f3b7b6e2e4c8b7d1e2f8b4e4e5f6g8g2g3b8c6f1g2c6d4e2d3b7f3g2f3d4f3\r
+c2c4g8f6b1c3e7e6g1f3b7b6e2e4c8b7d2d3d7d6g2g3f8e7f1g2e8g8e1g1c7c5b2b3b8a6f1e1e6e5\r
+c2c4g8f6b1c3e7e6g1f3b7b6e2e4c8b7f1d3c7c5e1g1b8c6e4e5f6g4d3e4d8c8f1e1d7d6e5d6f8d6\r
+c2c4g8f6b1c3e7e6g1f3b7b6e2e4c8b7f1d3c7c5e1g1b8c6e4e5f6g4d3e4f7f5e5f6g4f6e4c6b7c6\r
+c2c4g8f6b1c3e7e6g1f3b7b6e2e4c8b7f1d3c7c5e4e5f6g4h2h3b7f3d1f3g4e5f3a8e5d3e1e2d3f4\r
+c2c4g8f6b1c3e7e6g1f3b7b6e2e4c8b7f1d3d7d6d3c2c7c5d2d4c5d4f3d4a7a6b2b3f8e7e1g1e8g8\r
+c2c4g8f6b1c3e7e6g1f3b7b6e2e4f8b4d1e2c8b7e4e5f6g8d2d4d7d6c1d2d6e5d4e5b8a6e1c1d8e7\r
+c2c4g8f6b1c3e7e6g1f3b7b6g2g3c8b7f1g2f8e7d2d4e8g8d1c2c7c5d4d5e6d5f3g5g7g6c2d1d7d6\r
+c2c4g8f6b1c3e7e6g1f3b7b6g2g3c8b7f1g2f8e7e1g1e8g8d2d4f6e4d1c2e4c3c2c3f7f5b2b3e7f6\r
+c2c4g8f6b1c3e7e6g1f3c7c5d2d4d7d5c4d5f6d5e2e4d5c3b2c3c5d4c3d4f8b4c1d2b4d2d1d2e8g8\r
+c2c4g8f6b1c3e7e6g1f3c7c5e2e3f8e7b2b3e8g8c1b2b7b6d2d4c5d4e3d4d7d5f1d3b8c6e1g1c8b7\r
+c2c4g8f6b1c3e7e6g1f3c7c5g2g3b7b6f1g2c8b7e1g1f8e7d2d4c5d4d1d4e8g8f1d1b8c6d4f4d8b8\r
+c2c4g8f6b1c3e7e6g1f3c7c5g2g3b7b6f1g2c8b7e1g1f8e7d2d4c5d4d1d4e8g8f1d1b8c6d4f4d8b8\r
+c2c4g8f6b1c3e7e6g1f3c7c5g2g3b8c6f1g2d7d5c4d5e6d5d2d4f8e7e1g1e8g8c1f4c8e6a1c1a8c8\r
+c2c4g8f6b1c3e7e6g1f3d7d5d2d4b8d7c4d5e6d5c1g5f8e7e2e3e8g8f1d3c7c6d1c2f8e8e1g1d7f8\r
+c2c4g8f6b1c3e7e6g1f3d7d5d2d4b8d7c4d5e6d5c1g5f8e7e2e3e8g8f1d3c7c6d1c2f8e8h2h3d7f8\r
+c2c4g8f6b1c3e7e6g1f3d7d5d2d4c7c5c4d5f6d5e2e3f8e7f1d3c5d4e3d4b7b6c3d5d8d5e1g1b8d7\r
+c2c4g8f6b1c3e7e6g1f3d7d5d2d4c7c5c4d5f6d5e2e4d5c3b2c3c5d4c3d4f8b4c1d2b4d2d1d2e8g8\r
+c2c4g8f6b1c3e7e6g1f3d7d5d2d4c7c5c4d5f6d5g2g3c5d4c3d5d8d5d1d4d5b5e2e3b5b4c1d2b8c6\r
+c2c4g8f6b1c3e7e6g1f3d7d5d2d4c7c6c1g5b8d7e2e3d8a5g5f6d7f6f1d3f8b4d1b3e8g8e1g1c6c5\r
+c2c4g8f6b1c3e7e6g1f3d7d5d2d4c7c6e2e3b8d7f1d3d5c4d3c4b7b5c4d3c8b7e1g1b5b4c3e4f6e4\r
+c2c4g8f6b1c3e7e6g1f3d7d5d2d4c7c6e2e3b8d7f1d3d5c4d3c4b7b5c4d3c8b7e1g1b5b4c3e4f8e7\r
+c2c4g8f6b1c3e7e6g1f3d7d5d2d4c7c6e2e3b8d7f1d3d5c4d3c4b7b5c4d3c8b7e1g1b5b4c3e4f8e7\r
+c2c4g8f6b1c3e7e6g1f3d7d5d2d4c7c6e2e3b8d7f1d3d5c4d3c4b7b5c4d3c8b7e1g1b5b4c3e4f8e7\r
+c2c4g8f6b1c3e7e6g1f3d7d5d2d4c7c6e2e3b8d7f1d3d5c4d3c4b7b5c4d3c8b7e3e4b5b4c3a4c6c5\r
+c2c4g8f6b1c3e7e6g1f3d7d5d2d4c7c6e2e3b8d7f1d3d5c4d3c4b7b5c4d3c8b7e3e4b5b4c3a4c6c5\r
+c2c4g8f6b1c3e7e6g1f3d7d5d2d4c7c6e2e3b8d7f1d3d5c4d3c4b7b5c4d3c8b7e3e4b5b4c3a4c6c5\r
+c2c4g8f6b1c3e7e6g1f3d7d5d2d4f8b4c4d5e6d5c1g5h7h6g5f6d8f6d1a4b8c6e2e3e8g8f1e2a7a6\r
+c2c4g8f6b1c3e7e6g1f3d7d5d2d4f8e7c1f4e8g8e2e3c7c5d4c5e7c5d1c2b8c6a1d1d8a5a2a3c5e7\r
+c2c4g8f6b1c3e7e6g1f3d7d5d2d4f8e7c1f4e8g8e2e3c7c5d4c5e7c5d1c2b8c6a1d1d8a5a2a3c5e7\r
+c2c4g8f6b1c3e7e6g1f3d7d5d2d4f8e7c1f4e8g8e2e3c7c5d4c5e7c5d1c2b8c6a1d1d8a5a2a3f8e8\r
+c2c4g8f6b1c3e7e6g1f3d7d5d2d4f8e7c1g5e8g8e2e3b8d7c4d5e6d5d1c2f8e8f1d3c7c6e1c1a7a5\r
+c2c4g8f6b1c3e7e6g1f3d7d5d2d4f8e7c1g5e8g8e2e3h7h6g5h4b7b6a1c1c8b7c4d5e6d5f1d3b8d7\r
+c2c4g8f6b1c3e7e6g1f3d7d5d2d4f8e7c1g5h7h6g5h4e8g8a1c1b7b6h4f6e7f6c4d5e6d5g2g3c7c6\r
+c2c4g8f6b1c3e7e6g1f3d7d5d2d4f8e7c1g5h7h6g5h4e8g8e2e3b7b6a1c1c8b7f1d3d5c4d3c4b8d7\r
+c2c4g8f6b1c3e7e6g1f3d7d5d2d4f8e7c1g5h7h6g5h4e8g8e2e3b7b6a1c1c8b7f1e2d5c4e2c4f6e4\r
+c2c4g8f6b1c3e7e6g1f3d7d5d2d4f8e7g2g3e8g8f1g2d5c4f3e5b8c6g2c6b7c6e5c6d8e8c6e7e8e7\r
+c2c4g8f6b1c3e7e6g1f3d7d5e2e3f8e7d2d4e8g8f1d3d5c4d3c4c7c5e1g1a7a6d4c5d8d1f1d1e7c5\r
+c2c4g8f6b1c3e7e6g1f3f8b4g2g3b7b6f1g2c8b7e1g1e8g8d1b3b4c3b3c3d7d6b2b3d8e7c1b2c7c5\r
+c2c4g8f6b1c3g7g6d2d4d7d6e2e4f8g7f2f3e7e5d4e5d6e5d1d8e8d8c1e3c8e6g1h3e6h3g2h3c7c6\r
+c2c4g8f6b1c3g7g6d2d4f8g7c1g5d7d6e2e3c7c5g1f3h7h6g5h4g6g5h4g3f6h5d4c5h5g3h2g3d6c5\r
+c2c4g8f6b1c3g7g6d2d4f8g7e2e4d7d6f1e2e8g8g1f3e7e5d4d5b8d7c1g5h7h6g5h4a7a6e1g1d8e8\r
+c2c4g8f6b1c3g7g6d2d4f8g7e2e4d7d6f2f3e7e5g1e2c7c6c1e3e8g8d1d2d8a5e1c1b7b5c4b5c6b5\r
+c2c4g8f6b1c3g7g6d2d4f8g7e2e4d7d6f2f3e8g8c1e3e7e5d4d5c7c5g2g4f6e8h2h4f7f5e4f5g6f5\r
+c2c4g8f6b1c3g7g6d2d4f8g7e2e4d7d6g1f3e8g8f1e2e7e5d4d5b8d7d1c2a7a5h2h3c7c6c1e3c6d5\r
+c2c4g8f6b1c3g7g6d2d4f8g7g2g3e8g8f1g2d7d6g1f3b8c6e1g1a7a6h2h3a8b8c1e3b7b5c4b5a6b5\r
+c2c4g8f6b1c3g7g6e2e4d7d6d2d4f8g7f2f4c7c5d4d5e8g8g1f3e7e6f1e2e6d5e4d5f8e8e1g1f6g4\r
+c2c4g8f6b1c3g7g6e2e4d7d6g2g3c7c5f1g2b8c6g1e2f8g7e1g1e8g8d2d3a7a6a1b1a8b8a2a3b7b5\r
+c2c4g8f6b1c3g7g6e2e4f8g7d2d4d7d6g1f3e8g8f1e2e7e5d4e5d6e5d1d8f8d8c1g5d8e8c3d5f6d5\r
+c2c4g8f6b1c3g7g6g1f3f8g7g2g3e8g8f1g2d7d6e1g1b8c6d2d3e7e5a1b1a7a5a2a3f8e8f3d2c6d4\r
+c2c4g8f6b1c3g7g6g2g3f8g7f1g2d7d6g1f3e8g8e1g1c7c5d2d4b8c6d4d5c6a5d1d3a7a6f3d2a8b8\r
+c2c4g8f6b1c3g7g6g2g3f8g7f1g2e8g8d2d4d7d6g1f3b8c6e1g1a7a6a2a3c8g4c1e3e7e5d4e5d6e5\r
+c2c4g8f6b1c3g7g6g2g3f8g7f1g2e8g8d2d4d7d6g1f3b8c6e1g1a7a6d4d5c6a5f3d2c7c5d1c2e7e5\r
+c2c4g8f6b1c3g7g6g2g3f8g7f1g2e8g8d2d4d7d6g1f3b8d7e1g1e7e5e2e4e5d4f3d4d7c5f2f3a7a5\r
+c2c4g8f6b1c3g7g6g2g3f8g7f1g2e8g8d2d4d7d6g1f3c7c6e1g1c8f5f3h4f5e6d4d5c6d5c4d5e6d7\r
+c2c4g8f6b1c3g7g6g2g3f8g7f1g2e8g8d2d4d7d6g1f3c8g4h2h3g4f3g2f3b8c6f3g2f6d7e2e3e7e5\r
+c2c4g8f6b1c3g7g6g2g3f8g7f1g2e8g8e2e4c7c5g1e2b8c6e1g1d7d6a2a3c8d7h2h3f6e8d2d3e8c7\r
+c2c4g8f6b1c3g7g6g2g3f8g7f1g2e8g8f2f4c7c5g1f3d7d5c4d5f6d5e1g1d5c7b2b3b8c6c1b2a8b8\r
+c2c4g8f6b1c3g7g6g2g3f8g7f1g2e8g8g1f3c7c5e1g1b8c6d2d4d7d6d4c5d6c5c1e3f6d7d1c1c6d4\r
+c2c4g8f6b1c3g7g6g2g3f8g7f1g2e8g8g1f3c7c5e1g1b8c6d2d4d7d6d4c5d6c5c1e3f6d7d1c1c6d4\r
+c2c4g8f6b1c3g7g6g2g3f8g7f1g2e8g8g1f3d7d6e1g1b8c6a1b1e7e5b2b4e5e4f3e1c8f5d2d3d6d5\r
+c2c4g8f6d2d4c7c6c1f4d8b6d1d2f6e4d2c2d7d5f2f3e7e5f4e5b6a5b1c3e4c3b2c3d5c4e2e4b7b5\r
+c2c4g8f6d2d4c7c6e2e3d7d5f1d3g7g6g1f3f8g7b1c3e8g8e1g1c8g4h2h3g4f3d1f3e7e6f1d1b8d7\r
+c2c4g8f6d2d4d7d6g1f3g7g6b1c3f8g7g2g3e8g8f1g2b8d7e1g1e7e5e2e4c7c6b2b3e5d4f3d4d7c5\r
+c2c4g8f6d2d4e7e6b1c3f8b4a2a3b4c3b2c3b8c6f2f3b7b6e2e4c8a6e4e5f6g8g1h3c6a5d1a4g8e7\r
+c2c4g8f6d2d4e7e6b1c3f8b4e2e3c7c5f1d3e8g8g1f3d7d5e1g1b7b6c4d5e6d5a2a3b4c3b2c3c8a6\r
+c2c4g8f6d2d4e7e6b1c3f8b4e2e3c7c5g1e2c5d4e3d4d7d5c4c5f6e4c1d2e4d2d1d2a7a5a2a3b4c3\r
+c2c4g8f6d2d4e7e6b1c3f8b4e2e3c7c5g1e2d7d5a2a3b4c3e2c3c5d4e3d4d5c4f1c4b8c6c1e3e8g8\r
+c2c4g8f6d2d4e7e6g1f3b7b6a2a3c8b7b1c3d7d5c4d5f6d5d1c2d5c3b2c3b8d7e2e4c7c5c1f4c5d4\r
+c2c4g8f6d2d4e7e6g1f3b7b6b1c3f8b4e2e3c7c5f1d3d7d5d4c5b6c5e1g1e8g8c3e2c8b7b2b3b8d7\r
+c2c4g8f6d2d4e7e6g1f3b7b6e2e3c8b7b1c3d7d5c4d5e6d5f1b5c7c6b5d3f8e7e1g1e8g8b2b3b8d7\r
+c2c4g8f6d2d4e7e6g1f3b7b6g2g3c8b7f1g2f8e7e1g1e8g8d1c2c7c5d4c5e7c5b1c3b8c6e2e4e6e5\r
+c2c4g8f6d2d4e7e6g1f3c7c5e2e3c5d4e3d4d7d5b1c3f8b4f1d3d5c4d3c4d8c7d1d3e8g8e1g1b7b6\r
+c2c4g8f6d2d4e7e6g1f3d7d5b1c3c7c5e2e3b8c6a2a3f8d6d4c5d6c5b2b4c5d6c1b2e8g8c4d5e6d5\r
+c2c4g8f6d2d4e7e6g1f3d7d5c1g5b8d7b1c3c7c6e2e3d8a5g5f6d7f6f1d3f8b4d1c2d5c4d3c4f6d5\r
+c2c4g8f6d2d4e7e6g2g3d7d5f1g2d5c4d1a4c8d7a4c4d7c6g1f3c6d5c4a4d8d7a4d1b8c6b1c3f8b4\r
+c2c4g8f6d2d4e7e6g2g3d7d5f1g2f8e7g1f3e8g8d1c2c7c5d4c5d8a5c2c3a5c5c4d5f6d5c3c5e7c5\r
+c2c4g8f6d2d4e7e6g2g3d7d5f1g2f8e7g1f3e8g8e1g1d5c4d1c2a7a6a2a4c8d7c2c4d7c6c1f4a6a5\r
+c2c4g8f6d2d4g7g6b1c3d7d5c1f4f8g7e2e3e8g8f4e5e7e6g1f3b8d7e5g3c7c6f1d3b7b6e1g1c8b7\r
+c2c4g8f6d2d4g7g6b1c3f8g7g2g3d7d5f1g2d5c4d1a4f6d7e2e3e8g8a4c4c7c5g1f3c5d4f3d4d7e5\r
+c2c4g8f6d2d4g7g6g2g3c7c6g1f3f8g7b1c3e8g8f1g2d7d5d1b3d5c4b3c4c8e6c4d3b8a6e1g1e6f5\r
+c2c4g8f6g1f3b7b6b1c3c8b7d2d4e7e6e2e3f8b4f1d3f6e4e1g1f7f5c3e2b4d6b2b3e8g8f3e5b8c6\r
+c2c4g8f6g1f3b7b6g2g3c7c5f1g2c8b7e1g1e7e6b1c3f8e7d2d4c5d4d1d4e8g8f1d1b8c6d4f4d8b8\r
+c2c4g8f6g1f3b7b6g2g3c8b7f1g2c7c5e1g1e7e6b1c3f8e7d2d4c5d4f3d4b7g2g1g2d8c8d1d3b8c6\r
+c2c4g8f6g1f3b7b6g2g3c8b7f1g2e7e6d2d4f8e7b1c3f6e4c1d2c7c5e1g1e8g8a1c1e7f6c3e4b7e4\r
+c2c4g8f6g1f3c7c5b1c3e7e6g2g3b7b6f1g2c8b7e1g1f8e7d2d4c5d4d1d4e8g8e2e4d8c8e4e5b8c6\r
+c2c4g8f6g1f3c7c5b1c3e7e6g2g3b7b6f1g2c8b7e1g1f8e7d2d4f6e4c3e4b7e4c1f4e8g8d1d2b8c6\r
+c2c4g8f6g1f3c7c5g2g3b7b6f1g2c8b7e1g1e7e6b2b3f8e7c1b2e8g8e2e3d7d5c4d5f6d5d2d4c5d4\r
+c2c4g8f6g1f3c7c5g2g3b8c6f1g2g7g6e1g1f8g7b1c3e8g8d2d4c5d4f3d4c6d4d1d4d7d6f1d1c8e6\r
+c2c4g8f6g1f3c7c5g2g3d7d5f1g2b8c6c4d5f6d5b1c3d5f6e1g1e7e6b2b3f8e7c1b2e8g8a1c1d8a5\r
+c2c4g8f6g1f3c7c6b1c3d7d5d2d4d5c4a2a4c8f5e2e3e7e6f1c4b8d7e1g1f8b4d1e2f5g6f1d1e8g8\r
+c2c4g8f6g1f3c7c6b1c3d7d5e2e3g7g6d2d4f8g7c4d5f6d5f1c4e8g8e1g1b7b6d1b3d5c3b2c3c8a6\r
+c2c4g8f6g1f3c7c6d2d4d7d5b1c3d5c4a2a4c8f5f3e5e7e6f2f3f8b4e5c4e8g8c1g5h7h6g5h4b8a6\r
+c2c4g8f6g1f3c7c6d2d4d7d5e2e3g7g6b1c3f8g7f1d3e8g8e1g1c8g4h2h3g4f3d1f3e7e6f1d1b8d7\r
+c2c4g8f6g1f3e7e6b1c3d7d5d2d4b8d7c4d5e6d5c1g5f8e7e2e3e8g8f1d3c7c6d1c2f8e8e1g1d7f8\r
+c2c4g8f6g1f3e7e6b1c3d7d5d2d4f8b4c4d5e6d5c1g5h7h6g5f6d8f6d1b3f6d6a2a3b4c3b3c3e8g8\r
+c2c4g8f6g1f3e7e6b1c3f8b4d1c2e8g8e2e3b7b6b2b3c8b7c1b2d7d5f1e2b8d7e1g1a7a6a1d1d8e7\r
+c2c4g8f6g1f3e7e6b1c3f8b4g2g4h7h6h1g1d7d6h2h4e6e5g4g5h6g5h4g5f6g4c3d5b4c5d2d4c5b6\r
+c2c4g8f6g1f3e7e6d2d4b7b6g2g3c8a6b2b3f8b4c1d2b4e7f1g2d7d5f3e5e8g8e1g1c7c6d2c3f6d7\r
+c2c4g8f6g1f3e7e6d2d4b7b6g2g3c8b7f1g2f8e7b1c3f6e4c1d2d7d6d4d5e4d2f3d2e8g8e1g1g8h8\r
+c2c4g8f6g1f3e7e6d2d4f8b4c1d2b4d2d1d2d7d6b1c3d8e7g2g3e8g8f1g2f8d8e1g1b8d7a1d1d7f8\r
+c2c4g8f6g1f3e7e6d2d4f8b4c1d2d8e7g2g3b8c6b1c3b4c3d2c3f6e4a1c1e8g8f1g2d7d6d4d5c6d8\r
+c2c4g8f6g1f3e7e6g2g3b7b6f1g2c8b7e1g1f8e7d2d4e8g8b1c3f6e4d1c2e4c3b2c3b8c6f3e5c6a5\r
+c2c4g8f6g1f3e7e6g2g3d7d5f1g2f8e7e1g1e8g8b2b3a7a5d2d4a5a4b1a3c7c6c1b2b8d7e2e3d8a5\r
+c2c4g8f6g1f3e7e6g2g3d7d5f1g2f8e7e1g1e8g8d2d4c7c6b2b3b8d7c1b2b7b6d1c2c8b7b1c3a8c8\r
+c2c4g8f6g1f3g7g6b1c3d7d5c4d5f6d5e2e4d5c3d2c3d8d1e1d1c8g4f1e2b8d7c1e3e7e5f3d2\r
+c2c4g8f6g1f3g7g6g2g3f8g7f1g2e8g8d2d4d7d6b1c3b8d7e1g1e7e5e2e4c7c6h2h3d8b6d4d5c6d5\r
+c2c4g8f6g1f3g7g6g2g3f8g7f1g2e8g8e1g1d7d5c4d5f6d5d2d4c7c5d4c5b8a6f3g5d5b4b1c3h7h6\r
+c2c4g8f6g2g3c7c5f1g2d7d5c4d5f6d5b1c3d5c7d2d3e7e5c1e3b8c6g2c6b7c6d1a4c8d7a1c1a8b8\r
+c2c4g8f6g2g3c7c6g1f3d7d5b2b3c8f5c1a3g7g6d2d3f8g7b1d2d8b6f1g2f6g4d3d4b8a6e1g1a6b4\r
+c2c4g8f6g2g3c7c6g1f3d7d5b2b3c8f5f1g2e7e6c1b2b8d7e1g1h7h6d2d3f8e7b1d2e8g8a2a3a7a5\r
+c2c4g8f6g2g3c7c6g1f3d7d5b2b3c8f5f1g2e7e6e1g1b8d7c1b2f8e7b1c3e8g8f3h4f5g4h2h3g4h5\r
+c2c4g8f6g2g3c7c6g1f3d7d5b2b3g7g6c1b2f8g7f1g2d8b6d1c1e8g8e1g1b8d7c4d5c6d5b2d4b6d6\r
+c2c4g8f6g2g3e7e6f1g2d7d5d2d4d5c4d1a4b8d7g1f3a7a6a4c4b7b5c4c6a8b8c1f4f6d5f4g5f8e7\r
+c2c4g8f6g2g3e7e6f1g2d7d5g1f3d5c4d1a4b8d7a4c4a7a6e1g1b7b5c4c2c8b7b2b3c7c5c1b2f8e7\r
+c2c4g8f6g2g3e7e6f1g2d7d5g1f3d5c4e1g1a7a6d1c2b7b5f3e5f6d5d2d3c4d3e5d3c8b7f1d1d8c8\r
+c2c4g8f6g2g3e7e6f1g2d7d5g1f3d5d4b2b4c7c5c1b2d8b6d1b3b8c6b4b5c6a5b3c2f8d6e2e3e6e5\r
+c2c4g8f6g2g3e7e6f1g2d7d5g1f3f8e7d2d4e8g8b1d2b7b6e1g1c8b7c4d5e6d5f3e5b8d7d2f3c7c5\r
+c2c4g8f6g2g3g7g6f1g2f8g7b1c3c7c5d2d3b8c6c1d2d7d6d1c1c6d4a1b1a8b8d2h6d4c2e1f1g7h6\r
+c2c4g8f6g2g3g7g6f1g2f8g7d2d4e8g8b1c3c7c6d4d5d7d6g1f3e7e5e1g1c6d5c4d5b8d7a2a4a7a5\r
+c2c4g8f6g2g3g7g6f1g2f8g7e2e4d7d6g1e2e8g8e1g1c7c5b1c3b8c6d2d3c8d7h2h3f6e8g3g4e8c7\r
+c2c4g8f6g2g3g7g6f1g2f8g7g1f3d7d6b1c3e7e5d2d3e8g8c1d2b8d7e1g1f8e8a1b1d7f8b2b4c7c6\r
+d2d3g7g6c2c3g8f6g1f3f8g7g2g3e8g8f1g2c7c5e1g1b8c6\r
+d2d3g7g6c2c3g8f6g2g3f8g7f1g2e8g8g1f3c7c5e1g1b8c6\r
+d2d3g7g6e2e4d7d6g1f3f8g7f1e2g8f6e1g1e8g8b1c3c7c5\r
+d2d3g7g6g1f3g8f6g2g3f8g7f1g2e8g8e1g1c7c5c2c3b8c6\r
+d2d3g7g6g2g3g8f6f1g2f8g7c2c3e8g8g1f3c7c5e1g1b8c6\r
+d2d4b7b5e2e4c8b7f2f3a7a6c1e3e7e6b1d2g8f6c2c3f8e7f1d3d7d6a2a4c7c6g1e2b8d7e1g1e8g8\r
+d2d4c7c5d4d5e7e5e2e4d7d6f2f4e5f4c1f4d8h4g2g3h4e7b1c3g7g5f4e3b8d7g1f3h7h6d1d2g8f6\r
+d2d4c7c6e2e4d7d5e4d5c6d5c2c4g8f6b1c3b8c6c1g5d8a5d1d2c8e6c4c5f6e4c3e4d5e4d2a5c6a5\r
+d2d4d7d5c1f4g8f6e2e3c8f5f1d3f5g6h2h3e7e6g1f3b8d7e1g1f8e7d1e2c7c5c2c3e8g8b1d2a8c8\r
+d2d4d7d5c1g5f7f6g5h4b8c6e2e3g8h6f1d3h6f5g1f3h7h5h4g3c6b4e3e4d5e4d3e4g7g5c2c3b4d5\r
+d2d4d7d5c2c4b8c6c4d5d8d5e2e3e7e5b1c3f8b4c1d2b4c3d2c3e5d4g1e2g8f6e2d4e8g8d4b5d5g5\r
+d2d4d7d5c2c4b8c6c4d5d8d5g1f3g8f6b1c3d5a5e2e3e7e5d4e5c6e5f1b5e5d7d1b3f8b4c1d2e8g8\r
+d2d4d7d5c2c4b8c6g1f3c8g4d1a4g4f3g2f3g8f6b1c3e7e6c1g5d5c4e1c1f8e7a4c4f6d5g5e7c6e7\r
+d2d4d7d5c2c4c7c6b1c3d5c4e2e4e7e5f1c4e5d4g1f3b7b5c3b5c8a6d1b3d8e7e1g1a6b5c4b5g8f6\r
+d2d4d7d5c2c4c7c6b1c3e7e6e2e4d5e4c3e4f8b4c1d2d8d4d2b4d4e4f1e2c6c5b4c3f7f6g1f3e4f4\r
+d2d4d7d5c2c4c7c6b1c3e7e6g1f3g8f6c1g5d5c4e2e4b7b5e4e5h7h6g5h4g7g5f3g5h6g5h4g5b8d7\r
+d2d4d7d5c2c4c7c6b1c3e7e6g1f3g8f6e2e3b8d7d1c2f8d6f1e2e8g8b2b3d8e7e1g1d5c4b3c4e6e5\r
+d2d4d7d5c2c4c7c6b1c3g8f6c1g5b8d7g1f3e7e6c4d5e6d5e2e3f8d6f1d3h7h6g5h4e8g8d1c2f8e8\r
+d2d4d7d5c2c4c7c6b1c3g8f6c4d5c6d5c1f4e7e6e2e3f8e7f1d3b8c6h2h3e8g8g1f3c8d7e1g1d8b6\r
+d2d4d7d5c2c4c7c6b1c3g8f6c4d5c6d5g1f3b8c6c1f4e7e6e2e3f8e7h2h3e7d6f1d3d6f4e3f4e8g8\r
+d2d4d7d5c2c4c7c6b1c3g8f6e2e3a7a6f1d3b7b5b2b3c8g4g1e2b8d7e1g1e7e6f2f3g4h5e2f4f8d6\r
+d2d4d7d5c2c4c7c6b1c3g8f6e2e3c8f5c4d5c6d5d1b3f5c8g1f3b8c6f3e5e7e6f1b5d8c7c1d2f8d6\r
+d2d4d7d5c2c4c7c6b1c3g8f6e2e3e7e6f1d3b8d7f2f4d5c4d3c4b7b5c4d3c8b7g1f3a7a6a2a4b5b4\r
+d2d4d7d5c2c4c7c6b1c3g8f6e2e3e7e6g1f3b8d7d1c2f8d6f1d3e8g8e1g1d5c4d3c4a7a6f1d1b7b5\r
+d2d4d7d5c2c4c7c6b1c3g8f6e2e3e7e6g1f3b8d7f1d3d5c4d3c4b7b5c4d3a7a6e3e4c6c5d4d5c8b7\r
+d2d4d7d5c2c4c7c6b1c3g8f6e2e3e7e6g1f3b8d7f1d3d5c4d3c4b7b5c4d3a7a6e3e4c6c5e4e5c5d4\r
+d2d4d7d5c2c4c7c6b1c3g8f6e2e3e7e6g1f3b8d7f1d3d5c4d3c4b7b5c4d3c8b7a2a3b5b4c3e4f6e4\r
+d2d4d7d5c2c4c7c6b1c3g8f6e2e3e7e6g1f3b8d7f1d3d5c4d3c4b7b5c4d3c8b7e1g1a7a6e3e4c6c5\r
+d2d4d7d5c2c4c7c6b1c3g8f6e2e3e7e6g1f3b8d7f1d3d5c4d3c4b7b5c4e2b5b4c3a4c8b7e1g1f8e7\r
+d2d4d7d5c2c4c7c6b1c3g8f6e2e3e7e6g1f3f8e7f1d3b8d7e1g1e8g8b2b3f8e8c1b2d7f8f3e5f8g6\r
+d2d4d7d5c2c4c7c6b1c3g8f6e2e3g7g6g1f3f8g7f1d3e8g8e1g1c8g4h2h3g4f3d1f3e7e6f1d1b8d7\r
+d2d4d7d5c2c4c7c6b1c3g8f6e2e3g7g6g1f3f8g7f1d3e8g8e1g1c8g4h2h3g4f3d1f3f8e8f1d1d8d6\r
+d2d4d7d5c2c4c7c6b1c3g8f6g1f3d5c4a2a4c6c5e2e4c5d4d1d4d8d4f3d4e7e6d4b5b8a6f1c4f8c5\r
+d2d4d7d5c2c4c7c6b1c3g8f6g1f3d5c4a2a4c8f5e2e3e7e6f1c4f8b4e1g1b8d7d1e2f5g6e3e4e8g8\r
+d2d4d7d5c2c4c7c6b1c3g8f6g1f3d5c4a2a4c8f5e2e3e7e6f1c4f8b4e1g1b8d7d1e2f5g6f1d1d8c7\r
+d2d4d7d5c2c4c7c6b1c3g8f6g1f3d5c4a2a4c8f5e2e3e7e6f1c4f8b4e1g1e8g8d1e2f5g4h2h3g4f3\r
+d2d4d7d5c2c4c7c6b1c3g8f6g1f3e7e6c1g5b8d7e2e3d8a5c4d5f6d5d1d2f8b4a1c1e8g8f1d3h7h6\r
+d2d4d7d5c2c4c7c6b1c3g8f6g1f3e7e6c1g5d5c4a2a4f8b4e2e4c6c5f1c4c5d4f3d4h7h6g5e3f6e4\r
+d2d4d7d5c2c4c7c6b1c3g8f6g1f3e7e6c1g5d5c4e2e4b7b5e4e5h7h6g5h4g7g5f3g5h6g5h4g5b8d7\r
+d2d4d7d5c2c4c7c6b1c3g8f6g1f3e7e6c1g5h7h6g5f6d8f6e2e3b8d7f1d3d5c4d3c4g7g6e1g1f8g7\r
+d2d4d7d5c2c4c7c6b1c3g8f6g1f3e7e6c1g5h7h6g5f6d8f6e2e3b8d7f1d3f6d8e1g1f8e7a2a3e8g8\r
+d2d4d7d5c2c4c7c6b1c3g8f6g1f3e7e6c4d5e6d5c1g5h7h6g5h4f8e7d1c2e8g8e2e3f6e4h4e7d8e7\r
+d2d4d7d5c2c4c7c6b1c3g8f6g1f3e7e6e2e3a7a6f1d3b7b5b2b3b8d7e1g1c8b7c4c5f8e7a2a3a6a5\r
+d2d4d7d5c2c4c7c6b1c3g8f6g1f3e7e6e2e3b8d7f1d3d5c4d3c4b7b5c4d3a7a6e3e4c6c5e4e5c5d4\r
+d2d4d7d5c2c4c7c6b1c3g8f6g1f3e7e6e2e3f8e7f1d3e8g8e1g1b8d7b2b3b7b6c1b2c8b7f3e5d5c4\r
+d2d4d7d5c2c4c7c6b1c3g8f6g1f3g7g6c4d5c6d5c1f4f8g7e2e3e8g8f1e2b8c6h2h3f6e4a1c1c8e6\r
+d2d4d7d5c2c4c7c6c4d5c6d5b1c3g8f6c1f4b8c6g1f3a7a6f3e5e7e6e2e3f8d6f4g3d6e5d4e5f6d7\r
+d2d4d7d5c2c4c7c6c4d5c6d5b1c3g8f6c1f4d8b6d1c2b8c6e2e3c8f5c2d2e7e6f1b5f8b4b5c6b6c6\r
+d2d4d7d5c2c4c7c6c4d5c6d5b1c3g8f6g1f3b8c6c1f4c8f5e2e3e7e6d1b3f8b4f1b5d8a5b5c6b7c6\r
+d2d4d7d5c2c4c7c6c4d5c6d5b1c3g8f6g1f3b8c6c1f4c8f5e2e3e7e6f3e5c6e5f4e5f6d7e5g3a7a6\r
+d2d4d7d5c2c4c7c6e2e3c8f5a2a3e7e6c4c5a7a5d1b3d8c7b1c3b8d7c3a4g8f6g1e2f8e7e2g3f5g6\r
+d2d4d7d5c2c4c7c6e2e3c8f5b1c3e7e6g1f3b8d7a2a3f8d6c4c5d6c7b2b4e6e5f1e2g8f6c1b2e5e4\r
+d2d4d7d5c2c4c7c6e2e3g8f6b1c3e7e6g1f3b8d7f1d3d5c4d3c4b7b5c4d3a7a6e3e4c6c5e4e5c5d4\r
+d2d4d7d5c2c4c7c6e2e3g8f6g1f3c8f5c4d5c6d5b1c3e7e6f3e5f6d7g2g4f5g6e5g6h7g6f1g2b8c6\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3a7a6c1g5d5c4a2a4c8e6e2e4b8d7d4d5c6d5e4d5e6g4f1c4g4f3\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3d5c4a2a4b8a6e2e3c8g4f1c4e7e6h2h3g4h5e1g1a6b4c4e2f8e7\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3d5c4a2a4c8f5e2e3e7e6f1c4b8d7d1e2f6e4e1g1f8b4c4d3b4c3\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3d5c4a2a4c8f5e2e3e7e6f1c4b8d7e1g1f8d6d1e2f6e4c3e4f5e4\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3d5c4a2a4c8f5e2e3e7e6f1c4f8b4e1g1b8d7d1e2e8g8e3e4f5g6\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3d5c4a2a4c8f5e2e3e7e6f1c4f8b4e1g1b8d7d1e2e8g8e3e4f5g6\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3d5c4a2a4c8f5e2e3e7e6f1c4f8b4e1g1b8d7d1e2e8g8e3e4f5g6\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3d5c4a2a4c8f5e2e3e7e6f1c4f8b4e1g1b8d7d1e2f5g6c4d3g6d3\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3d5c4a2a4c8f5e2e3e7e6f1c4f8b4e1g1b8d7d1e2f5g6e3e4e8g8\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3d5c4a2a4c8f5e2e3e7e6f1c4f8b4e1g1b8d7d1e2f6e4c4d3b4c3\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3d5c4a2a4c8f5e2e3e7e6f1c4f8b4e1g1b8d7f3h4e8g8f2f3f5g6\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3d5c4a2a4c8f5e2e3e7e6f1c4f8b4e1g1e8g8c1d2b8d7f1e1h7h6\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3d5c4a2a4c8f5e2e3e7e6f1c4f8b4e1g1e8g8c3e2h7h6e2g3f5h7\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3d5c4a2a4c8f5e2e3e7e6f1c4f8b4e1g1e8g8d1e2b8d7f1d1d8c7\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3d5c4a2a4c8f5e2e3e7e6f1c4f8b4e1g1e8g8d1e2f5g4h2h3g4f3\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3d5c4a2a4c8f5e2e3e7e6f1c4f8b4e1g1e8g8d1e2f5g4h2h3g4f3\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3d5c4a2a4c8f5e2e3e7e6f1c4f8b4e1g1e8g8d1e2f6e4c4d3b4c3\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3d5c4a2a4c8f5f3e5b8a6f2f3f6d7e5c4e7e5e2e4e5d4c3e2f8b4\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3d5c4a2a4c8f5f3e5b8d7e5c4d8c7g2g3e7e5d4e5d7e5c1f4f6d7\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3d5c4a2a4c8f5f3e5b8d7e5c4d8c7g2g3e7e5d4e5d7e5c1f4f6d7\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3d5c4a2a4c8f5f3e5b8d7e5c4d8c7g2g3e7e5d4e5d7e5c1f4f6d7\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3d5c4a2a4c8f5f3e5b8d7e5c4d8c7g2g3e7e5d4e5d7e5c1f4f6d7\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3d5c4a2a4c8f5f3e5e7e6c1g5f8b4e5c4d8d5g5f6d5c4d1d2g7f6\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3d5c4a2a4c8f5f3e5e7e6c1g5f8b4f2f3h7h6g5f6g7f6e5c4c6c5\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3d5c4a2a4c8f5f3e5e7e6c1g5f8e7f2f3h7h6e2e4f5h7g5e3b8d7\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3d5c4a2a4c8f5f3e5e7e6f2f3c6c5d4c5d8d1e1d1f8c5e2e4f5g6\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3d5c4a2a4c8f5f3e5e7e6f2f3f8b4c1g5c6c5d4c5d8d5d1d5e6d5\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3d5c4a2a4c8f5f3h4f5c8e2e3e7e5d4e5d8d1c3d1f8b4c1d2b4d2\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3d5c4a2a4c8g4f3e5g4h5h2h3b8a6g2g4h5g6f1g2a6b4e1g1g6c2\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3d5c4a2a4e7e6e2e4f8b4e4e5f6d5c1d2b4c3b2c3b7b5f3g5f7f6\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3d5c4a2a4e7e6e2e4f8b4e4e5f6e4d1c2d8d5f1e2c6c5e1g1e4c3\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3d5c4e2e3b7b5a2a4b5b4c3b1c8a6f1e2e7e6f3e5f8e7e1g1e8g8\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3e7e6c1g5b8d7e2e3d8a5c4d5f6d5d1d2d7b6f1d3d5c3b2c3b6d5\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3e7e6c1g5b8d7e2e3d8a5c4d5f6d5d1d2d7b6f1d3f8b4a1c1f7f6\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3e7e6c1g5b8d7e2e3d8a5c4d5f6d5d1d2f8b4a1c1h7h6g5h4e8g8\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3e7e6c1g5b8d7e2e3d8a5f3d2f8b4d1c2d5c4g5f6d7f6d2c4a5c7\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3e7e6c1g5b8d7e2e3d8a5f3d2f8b4d1c2e8g8f1e2d5c4g5f6d7f6\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3e7e6c1g5h7h6g5f6d8f6e2e3b8d7f1d3d5c4d3c4g7g6e1g1f8g7\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3e7e6c1g5h7h6g5f6d8f6e2e3f8d6f1d3f6e7e1g1b8d7c4c5d6c7\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3e7e6c1g5h7h6g5h4d5c4e2e4g7g5h4g3b7b5f1e2b5b4c3a4f6e4\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3e7e6d1b3f8e7c1g5d5c4b3c4b7b6e2e4c8a6c4b3a6f1h1f1e8g8\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3e7e6e2e3a7a6c4c5b8d7b2b4a6a5b4b5e6e5d1a4d8c7c1a3e5e4\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3e7e6e2e3b8d7d1c2b7b6f1d3c8b7e1g1f8d6f1d1d8e7b2b3e8g8\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3e7e6e2e3b8d7d1c2b7b6f1d3c8b7e1g1f8e7b2b3d8c7c1b2a8d8\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3e7e6e2e3b8d7d1c2b7b6f1d3c8b7e1g1f8e7b2b3d8c7c1b2a8d8\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3e7e6e2e3b8d7d1c2f8d6f1d3e8g8e1g1d5c4d3c4b7b5c4d3c8b7\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3e7e6e2e3b8d7d1c2f8d6f1e2e8g8e1g1d5c4e2c4d8e7a2a3e6e5\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3e7e6e2e3b8d7d1c2f8d6f1e2e8g8e1g1d5c4e2c4d8e7h2h3a7a6\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3e7e6e2e3b8d7d1c2f8d6f1e2e8g8e1g1d5c4e2c4d8e7h2h3c6c5\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3e7e6e2e3b8d7d1c2f8d6f1e2e8g8e1g1d5c4e2c4d8e7h2h3c6c5\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3e7e6e2e3b8d7d1c2f8d6f1e2e8g8e1g1f8e8f1d1d8e7a2a3b7b6\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3e7e6e2e3b8d7f1d3d5c4d3c4b7b5c4d3b5b4c3e4f6e4d3e4c8b7\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3e7e6e2e3b8d7f1d3d5c4d3c4b7b5c4d3c8b7e1g1a7a6e3e4c6c5\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3e7e6e2e3b8d7f1d3d5c4d3c4b7b5c4d3c8b7e1g1a7a6e3e4c6c5\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3e7e6e2e3b8d7f1d3d5c4d3c4b7b5c4d3c8b7e1g1a7a6e3e4c6c5\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3e7e6e2e3b8d7f1d3f8b4e1g1e8g8a2a3b4c3b2c3d8c7f3d2e6e5\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3e7e6e2e3b8d7f1e2f8d6e1g1e8g8d1c2d5c4e2c4a7a6f1d1d8e7\r
+d2d4d7d5c2c4c7c6g1f3g8f6c4d5c6d5b1c3b8c6c1f4c8f5e2e3e7e6d1b3f8b4f1b5d8a5e1g1e8g8\r
+d2d4d7d5c2c4c7c6g1f3g8f6c4d5c6d5b1c3b8c6c1f4e7e6e2e3f8d6f4d6d8d6f1e2e8g8e1g1c8d7\r
+d2d4d7d5c2c4c7c6g1f3g8f6d1c2d5c4c2c4c8f5g2g3e7e6f1g2b8d7e1g1f8e7e2e3e8g8c4e2c6c5\r
+d2d4d7d5c2c4c7c6g1f3g8f6e2e3c8f5b1c3e7e6f3h4f5g6d1b3d8b6h4g6h7g6c1d2b8d7f1d3f8e7\r
+d2d4d7d5c2c4c7c6g1f3g8f6e2e3c8f5c4d5c6d5b1c3e7e6d1b3d8c8c1d2b8c6a1c1f8e7f1b5e8g8\r
+d2d4d7d5c2c4c7c6g1f3g8f6e2e3c8f5c4d5c6d5b1c3e7e6f3e5f6d7d1b3d8c8c1d2b8c6a1c1f8e7\r
+d2d4d7d5c2c4c7c6g1f3g8f6e2e3c8f5c4d5f6d5f1c4e7e6e1g1b8d7d1e2f5g4h2h3g4h5e3e4d5b6\r
+d2d4d7d5c2c4c7c6g1f3g8f6e2e3c8f5f1d3f5d3d1d3e7e6e1g1b8d7b1d2f8e7b2b3e8g8c1b2a7a5\r
+d2d4d7d5c2c4c7c6g1f3g8f6e2e3e7e6b1c3a7a6c4c5b7b6c5b6b8d7c3a4d7b6c1d2b6a4d1a4d8b6\r
+d2d4d7d5c2c4c7c6g1f3g8f6e2e3e7e6b1c3a7a6c4c5b8d7b2b4a6a5b4b5f6e4c3e4d5e4f3d2f7f5\r
+d2d4d7d5c2c4c7c6g1f3g8f6e2e3e7e6f1d3b8d7b1d2f8e7e1g1e8g8b2b3a7a5a2a3c6c5c4d5e6d5\r
+d2d4d7d5c2c4c7c6g1f3g8f6e2e3e7e6f1d3b8d7b1d2f8e7e1g1e8g8b2b3b7b6c1b2c8b7d1e2a7a5\r
+d2d4d7d5c2c4c7c6g1f3g8f6e2e3e7e6f1d3b8d7b1d2f8e7e1g1e8g8e3e4d5e4d2e4b7b6d1e2c8b7\r
+d2d4d7d5c2c4c7c6g1f3g8f6e2e3e7e6f1d3b8d7e1g1d5c4d3c4f8d6b1d2e8g8c4b3d6c7d2c4b7b6\r
+d2d4d7d5c2c4c7c6g1f3g8f6e2e3e7e6f1d3c6c5e1g1b8c6b1c3f8e7a2a3a7a5d4c5e7c5d1e2e8g8\r
+d2d4d7d5c2c4c7c6g1f3g8f6e2e3g7g6b1c3f8g7f1d3e8g8d1c2b8a6a2a3d5c4d3c4b7b5c4d3b5b4\r
+d2d4d7d5c2c4d5c4e2e3e7e5d4e5d8d1e1d1b8c6f1c4c6e5c4b5c7c6b5e2c8e6b1c3e8c8d1c2g8f6\r
+d2d4d7d5c2c4d5c4e2e3e7e5f1c4e5d4e3d4g8f6g1f3f8e7e1g1e8g8h2h3b8c6b1c3c6a5c4d3c8e6\r
+d2d4d7d5c2c4d5c4e2e4b8c6c1e3g8f6b1c3e7e5d4d5c6a5g1f3a7a6f3e5b7b5f1e2f8b4d1d4e8g8\r
+d2d4d7d5c2c4d5c4e2e4b8c6c1e3g8f6b1c3e7e5d4d5c6e7f1c4e7g6c4b5f6d7d1d2a7a6b5d3f8d6\r
+d2d4d7d5c2c4d5c4e2e4b8c6c1e3g8f6b1c3e7e5d4d5c6e7f1c4e7g6c4b5f6d7g1e2f8d6d1d2a7a6\r
+d2d4d7d5c2c4d5c4e2e4b8c6g1f3c8g4d4d5c6e5c1f4e5g6f4g3e7e5f1c4f8d6c4b5g4d7b5d7d8d7\r
+d2d4d7d5c2c4d5c4e2e4c7c5d4d5g8f6b1c3e7e6f1c4e6d5c3d5f6d5c4d5f8e7d1h5e8g8g1f3b8d7\r
+d2d4d7d5c2c4d5c4e2e4e7e5g1f3e5d4f1c4f8b4b1d2b8c6e1g1d8f6e4e5f6g6f3h4g6g4d2f3c8e6\r
+d2d4d7d5c2c4d5c4e2e4e7e5g1f3f8b4b1c3e5d4f3d4g8e7f1c4b8c6c1e3e8g8a2a3b4c3b2c3c6a5\r
+d2d4d7d5c2c4d5c4e2e4e7e5g1f3f8b4c1d2b4d2d1d2e5d4d2d4g8f6d4d8e8d8b1c3c8e6f3e5b8c6\r
+d2d4d7d5c2c4d5c4e2e4g8f6e4e5f6d5f1c4b8c6b1c3d5b6c4b5c8d7g1f3e7e6e1g1\r
+d2d4d7d5c2c4d5c4e2e4g8f6e4e5f6d5f1c4d5b6c4b3b8c6c1e3c8f5b1c3e7e6g1e2f8e7a2a3e8g8\r
+d2d4d7d5c2c4d5c4e2e4g8f6e4e5f6d5f1c4d5b6c4b3b8c6g1f3c8g4b3f7e8f7f3g5f7e8d1g4d8d4\r
+d2d4d7d5c2c4d5c4e2e4g8f6e4e5f6d5f1c4d5b6c4b3c7c5d4c5d8d1e1d1b6d7e5e6f7e6b3e6b8a6\r
+d2d4d7d5c2c4d5c4e2e4g8f6e4e5f6d5f1c4d5b6c4d3b8c6c1e3c6b4d3e4f7f5e5f6e7f6b1c3f6f5\r
+d2d4d7d5c2c4d5c4e2e4g8f6e4e5f6d5f1c4d5b6c4d3b8c6c1e3c6b4d3e4f7f5e5f6e7f6b1c3f6f5\r
+d2d4d7d5c2c4d5c4g1f3a7a6e2e3c8g4f1c4e7e6b1d2b8d7e1g1g8f6h2h3g4h5b2b3c7c5c4e2c5d4\r
+d2d4d7d5c2c4d5c4g1f3a7a6e2e3c8g4f1c4e7e6d1b3g4f3g2f3b7b5c4e2b8d7a2a4b5b4b1d2g8f6\r
+d2d4d7d5c2c4d5c4g1f3a7a6e2e3c8g4f1c4e7e6d1b3g4f3g2f3b7b5c4e2b8d7a2a4b5b4f3f4g8f6\r
+d2d4d7d5c2c4d5c4g1f3a7a6e2e3c8g4f1c4e7e6h2h3g4h5b1c3g8f6e1g1b8c6a2a3f8d6c4e2e8g8\r
+d2d4d7d5c2c4d5c4g1f3a7a6e2e3g8f6f1c4e7e6d1e2c7c5d4c5f8c5e1g1b7b5c4d3b8c6b1c3c8b7\r
+d2d4d7d5c2c4d5c4g1f3a7a6e2e3g8f6f1c4e7e6e1g1c7c5d1e2b7b5c4b3c8b7a2a4b8d7e3e4c5d4\r
+d2d4d7d5c2c4d5c4g1f3a7a6e2e3g8f6f1c4e7e6e1g1c7c5d1e2b8c6b1c3b7b5c4b3f8e7d4c5e7c5\r
+d2d4d7d5c2c4d5c4g1f3a7a6e2e3g8f6f1c4e7e6e1g1c7c5d4c5d8d1f1d1f8c5a2a3b7b5c4e2c8b7\r
+d2d4d7d5c2c4d5c4g1f3b8d7d1a4c7c6a4c4g8f6g2g3g7g6b1c3f8g7f1g2e8g8e1g1d8a5e2e4a5h5\r
+d2d4d7d5c2c4d5c4g1f3c7c5d4d5e7e6b1c3e6d5d1d5d8d5c3d5f8d6e2e4g8e7f1c4e7d5c4d5b8a6\r
+d2d4d7d5c2c4d5c4g1f3c7c5d4d5e7e6b1c3e6d5d1d5d8d5c3d5f8d6f3d2g8e7d2c4e7d5c4d6e8e7\r
+d2d4d7d5c2c4d5c4g1f3c7c5e2e3c5d4f1c4d8c7d1b3e7e6f3d4a7a6b1c3g8f6c1d2c8d7a1c1b8c6\r
+d2d4d7d5c2c4d5c4g1f3c7c5e2e3g8f6f1c4e7e6d1e2a7a6d4c5f8c5e1g1b8c6e3e4d8c7e4e5f6g4\r
+d2d4d7d5c2c4d5c4g1f3e7e6e2e3a7a6f1c4g8f6b1c3c7c5c4d3b8c6e1g1c5d4e3d4f8e7a2a3e8g8\r
+d2d4d7d5c2c4d5c4g1f3e7e6e2e3c7c5f1c4g8f6e1g1b8c6d1e2c5d4f1d1f8e7e3d4e8g8b1c3c6a5\r
+d2d4d7d5c2c4d5c4g1f3e7e6e2e3g8f6f1c4a7a6e1g1c7c5d4c5d8d1f1d1f8c5b1d2e8g8a2a3b7b5\r
+d2d4d7d5c2c4d5c4g1f3g8f6b1c3a7a6e2e4b7b5e4e5f6d5f3g5e7e6d1f3d8d7c3d5e6d5a2a3b8c6\r
+d2d4d7d5c2c4d5c4g1f3g8f6b1c3c7c5d4d5c8f5d1a4b8d7a4c4e7e6e2e4e6d5e4d5f8d6c1g5e8g8\r
+d2d4d7d5c2c4d5c4g1f3g8f6d1a4b8c6b1c3c8g4f3e5g4d7a4c4e7e6c1g5f8e7g5f6e7f6e5d7d8d7\r
+d2d4d7d5c2c4d5c4g1f3g8f6d1a4b8c6b1c3f6d5e2e4d5b6a4d1c8g4d4d5c6e5c1f4e5g6f4e3e7e6\r
+d2d4d7d5c2c4d5c4g1f3g8f6d1a4c7c6a4c4c8f5b1c3e7e6c4b3d8b6b3b6a7b6f3h4b6b5h4f5e6f5\r
+d2d4d7d5c2c4d5c4g1f3g8f6d1a4c7c6a4c4c8g4b1d2g7g6g2g3f8g7f1g2e8g8e1g1b8a6b2b3c6c5\r
+d2d4d7d5c2c4d5c4g1f3g8f6e2e3c7c5f1c4e7e6e1g1a7a6a2a4b8c6d1e2c5d4f1d1f8e7e3d4e8g8\r
+d2d4d7d5c2c4d5c4g1f3g8f6e2e3c7c5f1c4e7e6e1g1a7a6c4b3b8c6d1e2c5d4f1d1f8e7e3d4c6a5\r
+d2d4d7d5c2c4d5c4g1f3g8f6e2e3c7c5f1c4e7e6e1g1a7a6c4d3c5d4e3d4f8e7b1c3e8g8c1g5b7b5\r
+d2d4d7d5c2c4d5c4g1f3g8f6e2e3c7c5f1c4e7e6e1g1a7a6d1e2b8c6f1d1b7b5c4b3c5c4b3c2c6b4\r
+d2d4d7d5c2c4d5c4g1f3g8f6e2e3c7c5f1c4e7e6e1g1b8c6b1c3f8e7d4c5d8d1f1d1e7c5a2a3e8e7\r
+d2d4d7d5c2c4d5c4g1f3g8f6e2e3c8g4f1c4e7e6b1c3b8d7e1g1f8d6h2h3g4h5e3e4e6e5c4e2e8g8\r
+d2d4d7d5c2c4d5c4g1f3g8f6e2e3e7e6f1c4c7c5e1g1a7a6a2a4b8c6d1e2c5d4f1d1f8e7e3d4e8g8\r
+d2d4d7d5c2c4d5c4g1f3g8f6e2e3e7e6f1c4c7c5e1g1a7a6a2a4b8c6d1e2c5d4f1d1f8e7e3d4e8g8\r
+d2d4d7d5c2c4d5c4g1f3g8f6e2e3e7e6f1c4c7c5e1g1a7a6a2a4b8c6d1e2f8e7d4c5e7c5e3e4f6g4\r
+d2d4d7d5c2c4d5c4g1f3g8f6e2e3e7e6f1c4c7c5e1g1a7a6a2a4b8c6d1e2f8e7d4c5e7c5e3e4f6g4\r
+d2d4d7d5c2c4d5c4g1f3g8f6e2e3e7e6f1c4c7c5e1g1a7a6d1e2b7b5c4b3c8b7b1c3b8d7f1d1f8e7\r
+d2d4d7d5c2c4d5c4g1f3g8f6e2e3e7e6f1c4c7c5e1g1a7a6d1e2b7b5c4b3c8b7f1d1b8d7a2a4f8e7\r
+d2d4d7d5c2c4d5c4g1f3g8f6e2e3e7e6f1c4c7c5e1g1a7a6d1e2b7b5c4b3c8b7f1d1b8d7b1c3f8e7\r
+d2d4d7d5c2c4d5c4g1f3g8f6e2e3e7e6f1c4c7c5e1g1a7a6d1e2b8d7b1c3b7b5c4b3c8b7f1d1b5b4\r
+d2d4d7d5c2c4d5c4g1f3g8f6e2e3e7e6f1c4c7c5e1g1a7a6d1e2c5d4e3d4f8e7b1c3b7b5c4b3c8b7\r
+d2d4d7d5c2c4d5c4g1f3g8f6e2e3e7e6f1c4c7c5e1g1a7a6d4c5d8c7d1e2f8c5e3e4b8c6b1c3f6g4\r
+d2d4d7d5c2c4d5c4g1f3g8f6e2e3e7e6f1c4c7c5e1g1a7a6d4c5d8d1f1d1f8c5b2b3b7b5c4e2c8b7\r
+d2d4d7d5c2c4d5c4g1f3g8f6e2e3e7e6f1c4c7c5e1g1a7a6d4c5d8d1f1d1f8c5b2b3b8d7c1b2b7b5\r
+d2d4d7d5c2c4d5c4g1f3g8f6e2e3e7e6f1c4c7c5e1g1a7a6d4c5d8d1f1d1f8c5b2b3b8d7c1b2b7b6\r
+d2d4d7d5c2c4d5c4g1f3g8f6e2e3e7e6f1c4f8b4b1c3e8g8e1g1b7b6f3e5c8b7d1b3b4c3b2c3b7d5\r
+d2d4d7d5c2c4e7e6b1c3c7c5c4d5e6d5g1f3b8c6c1g5f8e7g5e7g8e7d4c5d8a5e2e3a5c5f1d3c8g4\r
+d2d4d7d5c2c4e7e6b1c3c7c5c4d5e6d5g1f3b8c6c1g5f8e7g5e7g8e7e2e3c8g4d4c5d8a5d1a4a5a4\r
+d2d4d7d5c2c4e7e6b1c3c7c5c4d5e6d5g1f3b8c6g2g3c5c4f1g2f8b4e1g1g8e7a2a3b4a5e2e4e8g8\r
+d2d4d7d5c2c4e7e6b1c3c7c5c4d5e6d5g1f3b8c6g2g3c5c4f1g2f8b4e1g1g8e7e2e4d5e4c3e4e8g8\r
+d2d4d7d5c2c4e7e6b1c3c7c5c4d5e6d5g1f3b8c6g2g3g8f6f1g2c5d4f3d4f8c5d4c6b7c6e1g1e8g8\r
+d2d4d7d5c2c4e7e6b1c3c7c5c4d5e6d5g1f3b8c6g2g3g8f6f1g2f8e7e1g1c8e6d4c5e7c5c1g5d5d4\r
+d2d4d7d5c2c4e7e6b1c3c7c5c4d5e6d5g1f3b8c6g2g3g8f6f1g2f8e7e1g1e8g8c1g5c5c4f3e5c8e6\r
+d2d4d7d5c2c4e7e6b1c3c7c5c4d5e6d5g1f3b8c6g2g3g8f6f1g2f8e7e1g1e8g8c1g5c5d4f3d4h7h6\r
+d2d4d7d5c2c4e7e6b1c3c7c5c4d5e6d5g1f3b8c6g2g3g8f6f1g2f8e7e1g1e8g8c1g5c5d4f3d4h7h6\r
+d2d4d7d5c2c4e7e6b1c3c7c5c4d5e6d5g1f3b8c6g2g3g8f6f1g2f8e7e1g1e8g8c1g5c5d4f3d4h7h6\r
+d2d4d7d5c2c4e7e6b1c3c7c5c4d5e6d5g1f3b8c6g2g3g8f6f1g2f8e7e1g1e8g8c1g5c8e6d4c5e7c5\r
+d2d4d7d5c2c4e7e6b1c3c7c5c4d5e6d5g1f3b8c6g2g3g8f6f1g2f8e7e1g1e8g8d4c5e7c5c1g5d5d4\r
+d2d4d7d5c2c4e7e6b1c3c7c5c4d5e6d5g1f3c5d4d1d4g8f6e2e4b8c6f1b5d5e4b5c6b7c6d4d8e8d8\r
+d2d4d7d5c2c4e7e6b1c3c7c5c4d5e6d5g1f3c8e6e2e4d5e4c3e4b8c6c1e3c5d4f3d4d8a5e4c3e8c8\r
+d2d4d7d5c2c4e7e6b1c3c7c5e2e3g8f6g1f3b8c6a2a3c5d4e3d4f8e7f1d3d5c4d3c4e8g8e1g1a7a6\r
+d2d4d7d5c2c4e7e6b1c3c7c5e2e3g8f6g1f3b8c6c4d5e6d5f1e2f8d6d4c5d6c5e1g1e8g8a2a3a7a5\r
+d2d4d7d5c2c4e7e6b1c3c7c5g1f3b8c6e2e3g8f6a2a3f8d6d4c5d6c5b2b4c5d6c1b2e8g8a1c1a7a5\r
+d2d4d7d5c2c4e7e6b1c3c7c5g1f3g8f6c4d5e6d5c1g5c8e6e2e3b8c6f1e2f8e7d4c5e7c5e1g1e8g8\r
+d2d4d7d5c2c4e7e6b1c3c7c6e2e3f7f5f2f4g8f6g1f3f8e7f1e2e8g8e1g1f6e4d1c2b8d7b2b3e4c3\r
+d2d4d7d5c2c4e7e6b1c3c7c6e2e3f7f5g1f3g8f6f1e2f8d6e1g1f6e4f3e5e8g8f2f3e4c3b2c3b7b6\r
+d2d4d7d5c2c4e7e6b1c3c7c6e2e3g8f6d1c2b8d7g1f3f8d6f1d3e8g8e1g1d5c4d3c4e6e5c3e4f6e4\r
+d2d4d7d5c2c4e7e6b1c3c7c6e2e3g8f6f2f3f8b4g1h3b8d7h3f4e8g8f1e2d5c4e2c4e6e5f4e2e5d4\r
+d2d4d7d5c2c4e7e6b1c3c7c6e2e3g8f6g1f3b8d7d1c2f8d6b2b3e8g8f1e2d5c4b3c4e6e5e1g1f8e8\r
+d2d4d7d5c2c4e7e6b1c3c7c6e2e3g8f6g1f3b8d7d1c2f8d6f1d3e8g8e1g1a7a6b2b3e6e5c4d5c6d5\r
+d2d4d7d5c2c4e7e6b1c3c7c6e2e3g8f6g1f3b8d7d1c2f8d6f1d3e8g8e1g1d5c4d3c4b7b5c4e2c8b7\r
+d2d4d7d5c2c4e7e6b1c3c7c6e2e3g8f6g1f3b8d7f1d3d5c4d3c4b7b5c4d3a7a6e3e4c6c5d4d5c5c4\r
+d2d4d7d5c2c4e7e6b1c3c7c6e2e3g8f6g1f3f8d6f1d3b8d7e1g1e8g8e3e4d5e4c3e4f6e4d3e4h7h6\r
+d2d4d7d5c2c4e7e6b1c3c7c6e2e4d5e4c3e4f8b4c1d2b4d2d1d2g8f6e4f6d8f6g1f3e8g8f1e2c6c5\r
+d2d4d7d5c2c4e7e6b1c3c7c6e2e4d5e4c3e4f8b4c1d2d8d4d2b4d4e4f1e2b8a6b4c3g8e7c3g7h8g8\r
+d2d4d7d5c2c4e7e6b1c3c7c6g1f3g8f6c1g5b8d7c4d5e6d5e2e3f8d6f1d3d7f8f3e5d8b6e1g1d6e5\r
+d2d4d7d5c2c4e7e6b1c3f7f5c1f4g8f6e2e3f8e7d1c2c7c6f1d3e8g8g1f3f6e4f4b8a8b8e1g1e7d6\r
+d2d4d7d5c2c4e7e6b1c3f8b4c4d5e6d5c1f4g8f6a1c1c7c6e2e3e8g8f1d3f8e8g1f3b8d7e1g1d7f8\r
+d2d4d7d5c2c4e7e6b1c3f8e7c4d5e6d5c1f4c7c6d1c2g7g6e1c1g8f6f2f3b8a6e2e4a6b4c2b3c8e6\r
+d2d4d7d5c2c4e7e6b1c3f8e7c4d5e6d5c1f4c7c6d1c2g7g6e2e3c8f5c2d2b8d7f2f3d7b6e3e4f5e6\r
+d2d4d7d5c2c4e7e6b1c3f8e7c4d5e6d5c1f4c7c6e2e3c8f5g1e2b8d7e2g3f5g6f1e2g8f6h2h4h7h5\r
+d2d4d7d5c2c4e7e6b1c3f8e7c4d5e6d5c1f4c7c6e2e3c8f5g2g4f5e6f1d3b8d7h2h3h7h5g4h5d7f6\r
+d2d4d7d5c2c4e7e6b1c3f8e7c4d5e6d5c1f4c7c6e2e3c8f5g2g4f5e6h2h3e7d6g1e2g8e7d1b3e6c8\r
+d2d4d7d5c2c4e7e6b1c3f8e7c4d5e6d5c1f4c7c6e2e3c8f5g2g4f5e6h2h3g8f6f1d3c6c5g1f3b8c6\r
+d2d4d7d5c2c4e7e6b1c3f8e7c4d5e6d5c1f4c7c6e2e3c8f5g2g4f5e6h2h3g8f6g1f3b8d7f1d3d7b6\r
+d2d4d7d5c2c4e7e6b1c3f8e7c4d5e6d5c1f4c7c6e2e3c8f5g2g4f5e6h2h4b8d7h4h5g8h6f1e2d7b6\r
+d2d4d7d5c2c4e7e6b1c3f8e7c4d5e6d5c1f4g8f6d1c2e8g8e2e3c7c5d4c5e7c5g1f3b8c6f1e2d5d4\r
+d2d4d7d5c2c4e7e6b1c3f8e7c4d5e6d5c1f4g8f6e2e3e8g8f1d3c7c5g1f3b8c6e1g1c8g4d4c5e7c5\r
+d2d4d7d5c2c4e7e6b1c3f8e7c4d5e6d5c1f4g8f6e2e3e8g8g1f3c8f5h2h3c7c6g2g4f5g6f3e5f6d7\r
+d2d4d7d5c2c4e7e6b1c3f8e7g1f3g8f6c1f4e8g8e2e3c7c5d4c5e7c5d1c2b8c6a1d1d8a5a2a3c5e7\r
+d2d4d7d5c2c4e7e6b1c3f8e7g1f3g8f6c1g5e8g8e2e3b8d7a1c1a7a6c4c5c7c6f1d3b7b6c5b6c6c5\r
+d2d4d7d5c2c4e7e6b1c3f8e7g1f3g8f6c1g5e8g8e2e3h7h6g5h4b7b6f1e2c8b7h4f6e7f6c4d5e6d5\r
+d2d4d7d5c2c4e7e6b1c3f8e7g1f3g8f6c1g5e8g8e2e3h7h6g5h4b7b6h4f6e7f6c4d5e6d5d1d2c8e6\r
+d2d4d7d5c2c4e7e6b1c3f8e7g1f3g8f6c1g5h7h6g5f6e7f6e2e3e8g8a1c1c7c6f1d3b8d7e1g1d5c4\r
+d2d4d7d5c2c4e7e6b1c3f8e7g1f3g8f6c1g5h7h6g5f6e7f6e2e3e8g8a1c1c7c6f1d3b8d7e1g1d5c4\r
+d2d4d7d5c2c4e7e6b1c3f8e7g1f3g8f6c1g5h7h6g5f6e7f6e2e3e8g8a1c1c7c6f1d3b8d7e1g1d5c4\r
+d2d4d7d5c2c4e7e6b1c3f8e7g1f3g8f6c1g5h7h6g5f6e7f6e2e3e8g8d1c2b8a6a1d1c7c5d4c5d8a5\r
+d2d4d7d5c2c4e7e6b1c3f8e7g1f3g8f6c1g5h7h6g5f6e7f6e2e3e8g8d1d2d5c4f1c4b8d7e1g1c7c5\r
+d2d4d7d5c2c4e7e6b1c3f8e7g1f3g8f6c1g5h7h6g5h4b8d7e2e3e8g8a1c1c7c6f1d3d5c4d3c4b7b5\r
+d2d4d7d5c2c4e7e6b1c3f8e7g1f3g8f6c1g5h7h6g5h4e8g8e2e3b7b6f1e2c8b7h4f6e7f6c4d5e6d5\r
+d2d4d7d5c2c4e7e6b1c3f8e7g1f3g8f6e2e3e8g8a2a3b7b6c4d5e6d5f1d3c7c5f3e5c8b7c3e2b8c6\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1f4c7c5e2e3c5d4e3d4d5c4f1c4b8c6g1f3f8e7e1g1e8g8f1e1c8d7\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5b8d7e2e3c7c6a2a3f8e7g1f3e8g8f1d3d5c4d3c4f6d5g5e7d8e7\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5b8d7e2e3c7c6a2a3f8e7g1f3e8g8f1d3d5c4d3c4f6d5g5e7d8e7\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5b8d7e2e3c7c6d1c2d8a5c4d5f6d5e3e4d5c3g5d2a5a4c2c3a7a5\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5b8d7e2e3c7c6f1d3d8a5g5h4d5c4d3c4b7b5c4b3c8b7g1f3c6c5\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5b8d7e2e3c7c6f1d3d8a5g5h4d5c4d3c4b7b5c4d3c8b7g1e2a7a6\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5b8d7e2e3c7c6g1f3d8a5f3d2f8b4d1c2d5c4g5f6d7f6d2c4a5c7\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5b8d7e2e3c7c6g1f3d8a5f3d2f8b4d1c2d5c4g5f6d7f6d2c4a5c7\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5b8d7e2e3f8e7g1f3e8g8a1c1a7a6a2a3b7b6c4d5e6d5f1d3c8b7\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5b8d7e2e3f8e7g1f3e8g8a1c1a7a6a2a3h7h6g5h4d5c4f1c4b7b5\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5b8d7e2e3f8e7g1f3e8g8a1c1a7a6a2a3h7h6g5h4d5c4f1c4c7c5\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5b8d7e2e3f8e7g1f3e8g8a1c1a7a6a2a3h7h6g5h4d5c4f1c4c7c5\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5b8d7e2e3f8e7g1f3e8g8a1c1a7a6a2a3h7h6g5h4d5c4f1c4c7c5\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5b8d7e2e3f8e7g1f3e8g8a1c1a7a6c4d5e6d5f1d3c7c6d1c2f8e8\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5b8d7e2e3f8e7g1f3e8g8a1c1a7a6c4d5e6d5f1d3c7c6d1c2h7h6\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5b8d7e2e3f8e7g1f3e8g8a1c1a7a6c4d5e6d5f1d3c7c6e1g1f6e8\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5c7c5c4d5e6d5g5f6g7f6e2e3c8e6d1b3d8d7f1b5b8c6e3e4e8c8\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5c7c5e2e3c5d4e3d4f8e7g1f3e8g8f1d3d5c4d3c4b8c6e1g1b7b6\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5c7c6e2e3b8d7c4d5e6d5f1d3f8e7g1f3e8g8d1c2f8e8e1g1d7f8\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5f8e7c4d5f6d5g5e7d8e7e2e4d5c3b2c3c7c5g1f3e8g8f1d3c5d4\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5f8e7e2e3b8d7g1f3e8g8a1c1h7h6g5h4c7c6f1d3d5c4d3c4b7b5\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5f8e7e2e3b8d7g1f3e8g8d1b3c7c6f1e2d5c4b3c4f6d5g5f4d5f4\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5f8e7e2e3e8g8a1c1h7h6g5h4b7b6c4d5f6d5c3d5e6d5h4e7d8e7\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5f8e7e2e3e8g8d1b3d5c4f1c4c7c5d4c5b8d7c5c6b7c6g1f3f6d5\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5f8e7e2e3e8g8d1b3d5c4f1c4c7c5d4c5b8d7g1f3d7c5b3c2a7a6\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5f8e7e2e3e8g8d1b3d5c4f1c4c7c5d4c5d8a5g1f3a5c5e1g1b8c6\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5f8e7e2e3e8g8d1b3d5c4f1c4c7c5d4c5d8a5g1f3a5c5e1g1b8c6\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5f8e7e2e3e8g8d1b3d5c4f1c4c7c5d4c5d8a5g1f3a5c5e1g1b8c6\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5f8e7e2e3e8g8d1b3d5c4f1c4c7c5d4c5f6d7g5e7d8e7g1f3d7c5\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5f8e7e2e3e8g8f1d3b8d7g1f3b7b6c4d5e6d5e1g1c8b7d1e2c7c5\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5f8e7e2e3e8g8g1f3b8d7d1c2c7c5a1d1d8a5f1d3h7h6g5h4c5d4\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5f8e7e2e3e8g8g1f3b8d7d1c2c7c6f1d3d5c4d3c4f6d5g5e7d8e7\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5f8e7e2e3e8g8g1f3h7h6g5h4b7b6c4d5f6d5h4e7d8e7a1c1d5f6\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5f8e7e2e3e8g8g1f3h7h6g5h4b7b6f1e2c8b7h4f6e7f6c4d5e6d5\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5f8e7e2e3e8g8g1f3h7h6g5h4b7b6f1e2c8b7h4f6e7f6c4d5e6d5\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5f8e7e2e3e8g8g1f3h7h6g5h4b7b6f1e2c8b7h4f6e7f6c4d5e6d5\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5f8e7e2e3f6e4g5e7d8e7c4d5e4c3b2c3e6d5d1b3c7c6c3c4e8g8\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5f8e7e2e3f6e4g5e7d8e7f1d3e4c3b2c3b8d7g1f3e6e5d4e5d5c4\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5f8e7e2e3f6e4g5e7d8e7f1d3e4c3b2c3b8d7g1f3e8g8e1g1f8d8\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5f8e7e2e3h7h6g5h4e8g8a1c1b7b6h4f6e7f6c4d5e6d5d1f3c8e6\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5f8e7g1f3b8d7e2e3e8g8c4c5f6e4c3e4d5e4g5e7d8e7f3d2d7f6\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5f8e7g1f3e8g8c4c5b7b6b2b4b6c5d4c5a7a5a2a3d5d4g5f6g7f6\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5f8e7g1f3e8g8e2e3b8d7a1c1c7c6f1d3d5c4d3c4f6d5g5e7d8e7\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5f8e7g1f3e8g8e2e3b8d7c4c5c7c6f1d3h7h6g5h4e6e5d4e5f6e4\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5f8e7g1f3e8g8e2e3d5c4f1c4b8d7e1g1c7c5d1e2h7h6g5h4d7b6\r
+d2d4d7d5c2c4e7e6b1c3g8f6c4d5e6d5c1g5c7c6d1c2b8a6e2e3a6b4c2d2c8f5a1c1a7a5a2a3b4a6\r
+d2d4d7d5c2c4e7e6b1c3g8f6c4d5e6d5c1g5c7c6d1c2f8e7e2e3b8d7f1d3f6h5g5e7d8e7g1e2d7b6\r
+d2d4d7d5c2c4e7e6b1c3g8f6c4d5e6d5c1g5c7c6e2e3c8f5d1f3f5g6g5f6d8f6f3f6g7f6a1d1b8d7\r
+d2d4d7d5c2c4e7e6b1c3g8f6c4d5e6d5c1g5f8e7e2e3b8d7d1c2e8g8f1d3f8e8g1f3d7f8e1g1c7c6\r
+d2d4d7d5c2c4e7e6b1c3g8f6c4d5e6d5c1g5f8e7e2e3e8g8f1d3b8d7g1e2f8e8e1g1d7f8b2b4a7a6\r
+d2d4d7d5c2c4e7e6b1c3g8f6c4d5e6d5c1g5f8e7e2e3h7h6g5h4e8g8f1d3b7b6g1f3c8b7e1g1c7c5\r
+d2d4d7d5c2c4e7e6b1c3g8f6c4d5e6d5c1g5f8e7e2e3h7h6g5h4e8g8f1d3b7b6g1f3c8b7e1g1c7c5\r
+d2d4d7d5c2c4e7e6b1c3g8f6c4d5e6d5c1g5f8e7e2e3h7h6g5h4e8g8f1d3b7b6g1f3c8b7e1g1f6e4\r
+d2d4d7d5c2c4e7e6b1c3g8f6e2e3c7c5g1f3b8c6a2a3d5c4f1c4c5d4e3d4f8e7e1g1e8g8c1e3c8d7\r
+d2d4d7d5c2c4e7e6b1c3g8f6e2e3c7c5g1f3b8c6d4c5f8c5a2a3a7a5f1e2e8g8e1g1d5c4d1c2e6e5\r
+d2d4d7d5c2c4e7e6b1c3g8f6f2f3b8c6e2e3f8e7g1h3e8g8h3f2f8e8f1e2e7b4c1d2e6e5d4e5e8e5\r
+d2d4d7d5c2c4e7e6b1c3g8f6f2f3c7c5d4c5f8c5c4d5f6d5e2e4d5c3d1d8e8d8b2c3b8c6g1h3d8c7\r
+d2d4d7d5c2c4e7e6b1c3g8f6g1f3b8d7c1g5c7c6e2e3d8a5f3d2f8b4d1c2e8g8g5h4c6c5d2b3a5a4\r
+d2d4d7d5c2c4e7e6b1c3g8f6g1f3b8d7c1g5f8e7e2e3e8g8a1c1f8e8f1d3d5c4d3c4c7c5e1g1a7a6\r
+d2d4d7d5c2c4e7e6b1c3g8f6g1f3b8d7e2e3f8e7b2b3e8g8f1d3b7b6e1g1c8b7c1b2a7a6a1c1f6e4\r
+d2d4d7d5c2c4e7e6b1c3g8f6g1f3b8d7e2e3f8e7f1d3e8g8e1g1c7c5d1c2b7b6c4d5e6d5b2b3c8b7\r
+d2d4d7d5c2c4e7e6b1c3g8f6g1f3b8d7e2e3f8e7f1d3e8g8e1g1d5c4d3c4c7c5d1e2a7a6f1d1b7b5\r
+d2d4d7d5c2c4e7e6b1c3g8f6g1f3d5c4e2e3c7c5f1c4c5d4e3d4f8e7e1g1e8g8d1e2b8d7c4b3d7b6\r
+d2d4d7d5c2c4e7e6b1c3g8f6g1f3f8b4a2a3b4c3b2c3d5c4d1a4b8c6c1g5d8d5g5f6g7f6g2g3c8d7\r
+d2d4d7d5c2c4e7e6b1c3g8f6g1f3f8e7c1f4c7c5d4c5b8a6e2e3a6c5c4d5e6d5f1b5c8d7b5d7d8d7\r
+d2d4d7d5c2c4e7e6b1c3g8f6g1f3f8e7c1g5h7h6g5f6e7f6d1b3c7c6e1c1d5c4b3c4b7b5c4b3a7a5\r
+d2d4d7d5c2c4e7e6b1c3g8f6g1f3f8e7c4d5e6d5c1f4c7c6d1c2g7g6e2e3c8f5f1d3f5d3c2d3b8d7\r
+d2d4d7d5c2c4e7e6b1c3g8f6g1f3f8e7e2e3e8g8f1d3c7c5d4c5d5c4d3c4d8d1e1d1b8c6a2a3e7c5\r
+d2d4d7d5c2c4e7e6b1c3g8f6g1f3f8e7e2e3e8g8f1d3c7c5d4c5d5c4d3c4d8d1e1d1b8c6a2a3e7c5\r
+d2d4d7d5c2c4e7e6b1c3g8f6g1f3f8e7e2e3e8g8f1d3c7c5e1g1c5d4e3d4d5c4d3c4b8d7c4b3d7b6\r
+d2d4d7d5c2c4e7e6g1f3b8d7b1c3g8f6c1g5f8e7e2e3e8g8a1c1c7c6d1c2a7a6a2a3h7h6g5h4f8e8\r
+d2d4d7d5c2c4e7e6g1f3c7c5c4d5e6d5g2g3b8c6f1g2g8f6e1g1f8e7b1c3e8g8c1e3c8e6d4c5f6g4\r
+d2d4d7d5c2c4e7e6g1f3c7c5c4d5e6d5g2g3b8c6f1g2g8f6e1g1f8e7c1e3c5c4f3e5e8g8b2b3c4b3\r
+d2d4d7d5c2c4e7e6g1f3c7c5c4d5e6d5g2g3g8f6f1g2f8e7e1g1e8g8b1c3b8c6c1g5c5d4f3d4h7h6\r
+d2d4d7d5c2c4e7e6g1f3c7c5c4d5e6d5g2g3g8f6f1g2f8e7e1g1e8g8b1c3b8c6c1g5c5d4f3d4h7h6\r
+d2d4d7d5c2c4e7e6g1f3c7c5c4d5e6d5g2g3g8f6f1g2f8e7e1g1e8g8b1c3b8c6c1g5c5d4f3d4h7h6\r
+d2d4d7d5c2c4e7e6g1f3c7c6b1c3d5c4a2a4f8b4e2e3b7b5c1d2a7a5a4b5b4c3d2c3c6b5b2b3c8b7\r
+d2d4d7d5c2c4e7e6g1f3c7c6b1d2f7f5g2g3f8d6f1g2b8d7e1g1d8f6c4d5e6d5d2b3g8e7c1f4e8g8\r
+d2d4d7d5c2c4e7e6g1f3c7c6d1c2g8f6e2e3f6e4b1c3f7f5f3e5b8d7e5d3f8d6d3f4d7f6f2f3e4c3\r
+d2d4d7d5c2c4e7e6g1f3c7c6d1c2g8f6g2g3g7g6f1g2f8g7e1g1e8g8f1d1b8d7b1d2f8e8b2b3b7b6\r
+d2d4d7d5c2c4e7e6g1f3c7c6e2e3f7f5f1d3g8f6e1g1f8d6b2b3d8e7c1b2e8g8f3e5b7b6c4d5c6d5\r
+d2d4d7d5c2c4e7e6g1f3c7c6g2g3f7f5f1g2g8f6e1g1f8e7b2b3e8g8c1a3b7b6a3e7d8e7f3e5c8b7\r
+d2d4d7d5c2c4e7e6g1f3g8f6b1c3b8d7c1g5f8e7e2e3e8g8a1c1b7b6c4d5e6d5d1a4c7c5f1a6h7h6\r
+d2d4d7d5c2c4e7e6g1f3g8f6b1c3b8d7c4d5e6d5c1g5f8e7e2e3c7c6d1c2d7f8f1d3f8e6h2h4h7h6\r
+d2d4d7d5c2c4e7e6g1f3g8f6b1c3c7c5c1g5c5d4f3d4d5c4e2e3d8b6g5f6g7f6f1c4c8d7e1g1b8c6\r
+d2d4d7d5c2c4e7e6g1f3g8f6b1c3c7c6e2e3b8d7f1d3f8b4a2a3b4a5d1c2d8e7c1d2d5c4d3c4e6e5\r
+d2d4d7d5c2c4e7e6g1f3g8f6b1c3c7c6e2e3b8d7f1d3f8b4a2a3b4a5d1c2d8e7c1d2d5c4d3c4e6e5\r
+d2d4d7d5c2c4e7e6g1f3g8f6b1c3c7c6e2e3b8d7f1d3f8b4e1g1e8g8c1d2d8e7d1b3d5c4b3c4b4d6\r
+d2d4d7d5c2c4e7e6g1f3g8f6b1c3f8b4c1g5b8d7c4d5e6d5a1c1c7c6e2e3d8a5d1b3f6e4f1d3e4g5\r
+d2d4d7d5c2c4e7e6g1f3g8f6b1c3f8b4c1g5b8d7c4d5e6d5d1c2e8g8a2a3b4c3b2c3c7c5e2e3d8a5\r
+d2d4d7d5c2c4e7e6g1f3g8f6b1c3f8b4c1g5b8d7c4d5e6d5d1c2e8g8a2a3b4e7e2e3c7c5d4c5d7c5\r
+d2d4d7d5c2c4e7e6g1f3g8f6b1c3f8b4c1g5b8d7c4d5e6d5d1c2e8g8a2a3b4e7e2e3c7c5f1e2b7b6\r
+d2d4d7d5c2c4e7e6g1f3g8f6b1c3f8e7c1g5e8g8e2e3h7h6g5h4f6e4h4e7d8e7d1c2e4c3c2c3d5c4\r
+d2d4d7d5c2c4e7e6g1f3g8f6b1c3f8e7c1g5h7h6g5f6e7f6e2e3e8g8a1c1a7a6c4d5e6d5f1d3c7c6\r
+d2d4d7d5c2c4e7e6g1f3g8f6b1c3f8e7c1g5h7h6g5f6e7f6e2e3e8g8d1d2b8c6a1c1a7a6f1e2d5c4\r
+d2d4d7d5c2c4e7e6g1f3g8f6b1c3f8e7c1g5h7h6g5h4e8g8e2e3b7b6a1c1c8b7f1e2d5c4e2c4b8d7\r
+d2d4d7d5c2c4e7e6g1f3g8f6c1g5d5c4d1a4b8d7b1d2c7c5d2c4a7a6g5f6g7f6d4c5f8c5a4d1b7b5\r
+d2d4d7d5c2c4e7e6g1f3g8f6c1g5f8e7b1c3e8g8e2e3h7h6g5f4c7c5d4c5e7c5c4d5f6d5c3d5e6d5\r
+d2d4d7d5c2c4e7e6g1f3g8f6c1g5f8e7b1c3h7h6g5h4e8g8e2e3b7b6d1b3c8b7h4f6e7f6c4d5e6d5\r
+d2d4d7d5c2c4e7e6g1f3g8f6c4d5e6d5b1c3c7c6c1g5h7h6g5h4c8f5d1b3g7g5h4g3d8b6e2e3b8a6\r
+d2d4d7d5c2c4e7e6g1f3g8f6c4d5e6d5c1g5c7c6b1c3h7h6g5h4c8f5d1b3g7g5h4g3d8b6e2e3f6e4\r
+d2d4d7d5c2c4e7e6g1f3g8f6g2g3d5c4f1g2c7c5d1a4c8d7a4c4d7c6d4c5b8d7c1e3c6d5c4a4d5c6\r
+d2d4d7d5c2c4e7e6g1f3g8f6g2g3f8e7f1g2c7c6d1c2e8g8e1g1b7b6b1d2c8b7e2e4d5e4d2e4b8d7\r
+d2d4d7d5c2c4e7e6g1f3g8f6g2g3f8e7f1g2e8g8e1g1d5c4d1c2a7a6c2c4b7b5c4c2c8b7c1d2b7e4\r
+d2d4d7d5c2c4e7e6g2g3g8f6f1g2f8e7g1f3b8d7e1g1e8g8d1c2c7c6f1d1b7b6b2b3c8b7b1c3a8c8\r
+d2d4d7d5c2c4e7e6g2g3g8f6f1g2f8e7g1f3e8g8e1g1d5c4b1d2c7c5d4c5b8c6d1c2e7c5d2c4d8e7\r
+d2d4d7d5c2c4g8f6b1c3e7e6e2e3b8d7g1f3f8b4f1d3d5c4d3c4f6e4d1c2e4c3b2c3b4d6e1g1e8g8\r
+d2d4d7d5c2c4g8f6c4d5f6d5e2e4d5f6b1c3e7e5d4e5d8d1e1d1f6g4c3d5e8d7g1h3c7c6d5c3g4e5\r
+d2d4d7d5e2e3e7e6f1d3c7c5b2b3b8c6g1f3g8f6e1g1c8d7c1b2a8c8c2c3f8d6b1d2e6e5d4e5c6e5\r
+d2d4d7d5e2e3g8f6c2c4e7e6b1c3f8e7g1f3e8g8f1e2d5c4e2c4c7c5e1g1b8c6d4c5e7c5d1d8f8d8\r
+d2d4d7d5g1f3b8c6c1f4c8f5e2e3e7e6f1d3g8e7e1g1f5d3d1d3e7g6f4g3f8d6g3d6c7d6b1d2e8g8\r
+d2d4d7d5g1f3b8c6c2c4c8g4c4d5g4f3g2f3d8d5e2e3e7e5b1c3f8b4c1d2b4c3b2c3d5d6a1b1b7b6\r
+d2d4d7d5g1f3c7c5c2c4c5d4c4d5g8f6d1a4d8d7a4d4d7d5b1c3d5d4f3d4c8d7d4b5e8d8c1e3b8c6\r
+d2d4d7d5g1f3c7c5c2c4d5c4d4d5e7e6b1c3e6d5d1d5d8d5c3d5f8d6f3d2g8e7d2c4e7d5c4d6e8e7\r
+d2d4d7d5g1f3c7c5c2c4d5c4e2e3e7e6f1c4g8f6e1g1a7a6c4b3b8c6d1e2f8e7f1d1c5d4e3d4c6a5\r
+d2d4d7d5g1f3c7c5c2c4e7e6c4d5e6d5b1c3b8c6g2g3g8f6f1g2f8e7e1g1e8g8c1g5c8e6d4c5e7c5\r
+d2d4d7d5g1f3c7c5c2c4e7e6c4d5e6d5g2g3g8f6f1g2f8e7e1g1e8g8b1c3b8c6c1g5c5d4f3d4h7h6\r
+d2d4d7d5g1f3c7c5c2c4e7e6c4d5e6d5g2g3g8f6f1g2f8e7e1g1e8g8b1c3b8c6c1g5c5d4f3d4h7h6\r
+d2d4d7d5g1f3c7c5c2c4e7e6c4d5e6d5g2g3g8f6f1g2f8e7e1g1e8g8b1c3b8c6c1g5c5d4f3d4h7h6\r
+d2d4d7d5g1f3c7c5c2c4e7e6c4d5e6d5g2g3g8f6f1g2f8e7e1g1e8g8b1c3b8c6c1g5c5d4f3d4h7h6\r
+d2d4d7d5g1f3c7c5d4c5e7e6e2e4f8c5e4d5e6d5f1b5b8c6e1g1g8f6b1c3e8g8c1g5c5e7g5f6e7f6\r
+d2d4d7d5g1f3c7c6c1g5h7h6g5h4d8b6b2b3b8d7e2e3e7e5f1e2e5e4f3d2c6c5d4c5d7c5b1c3g7g5\r
+d2d4d7d5g1f3c7c6c2c4d5c4e2e3c8g4f1c4e7e6b1c3b8d7h2h3g4h5a2a3g8f6e3e4f8e7e1g1e8g8\r
+d2d4d7d5g1f3c7c6c2c4e7e6e2e3f7f5f1e2g8f6e1g1f8d6b2b3d8e7c1b2b8d7f3e5e8g8b1d2g7g5\r
+d2d4d7d5g1f3c7c6c2c4e7e6e2e3g8f6f1d3c6c5e1g1d5c4d3c4a7a6f3e5d8c7b1d2b7b5c4e2c5d4\r
+d2d4d7d5g1f3c7c6c2c4g8f6b1c3e7e6e2e3b8d7d1c2f8d6f1d3e8g8e1g1d5c4d3c4a7a6f1d1b7b5\r
+d2d4d7d5g1f3c7c6c2c4g8f6b1c3e7e6e2e3b8d7d1c2f8d6f1d3e8g8e1g1d5c4d3c4a7a6f1d1b7b5\r
+d2d4d7d5g1f3c8f5c2c4e7e6c4d5e6d5d1b3b8c6c1g5f8e7g5e7g8e7e2e3d8d6b1d2e8g8a1c1a7a5\r
+d2d4d7d5g1f3c8f5c2c4e7e6d1b3b8c6c1d2d5c4b3b7g8e7b7b5a8b8b5a4b8b2b1a3d8d7a3c4b2b8\r
+d2d4d7d5g1f3e7e6c2c4a7a6c4c5b7b6c5b6c7c5b1c3b8d7c3a4c5c4c1d2f8d6b2b3c8b7e2e3c4b3\r
+d2d4d7d5g1f3e7e6c2c4c7c5c4d5e6d5b1c3b8c6g2g3g8f6f1g2c8e6e1g1f8e7d4c5e7c5c1g5d5d4\r
+d2d4d7d5g1f3e7e6c2c4d5c4e2e3c7c5f1c4g8f6e1g1a7a6e3e4b7b5c4d3c5d4a2a4b5a4e4e5f6d5\r
+d2d4d7d5g1f3e7e6c2c4f8e7b1c3g8f6c1g5h7h6g5h4e8g8e2e3b7b6f1d3c8b7e1g1b8d7a1c1c7c5\r
+d2d4d7d5g1f3e7e6c2c4g8f6c1g5b8d7e2e3f8e7b1c3e8g8a1c1f8e8d1c2c7c6f1d3d5c4d3c4f6d5\r
+d2d4d7d5g1f3e7e6c2c4g8f6c1g5f8e7e2e3b8d7b1c3e8g8a1c1b7b6c4d5e6d5f1b5c8b7d1a4a7a6\r
+d2d4d7d5g1f3e7e6c2c4g8f6c1g5f8e7e2e3b8d7b1c3e8g8a1c1c7c6d1c2c6c5c1d1d8a5c4d5f6d5\r
+d2d4d7d5g1f3e7e6g2g3c7c5f1g2c5d4e1g1g8f6f3d4e6e5d4f3b8c6c2c4d5d4e2e3f8c5e3d4c5d4\r
+d2d4d7d5g1f3e7e6g2g3c7c5f1g2c5d4e1g1g8f6f3d4e6e5d4f3b8c6c2c4d5d4e2e3f8c5e3d4c5d4\r
+d2d4d7d5g1f3e7e6g2g3c7c5f1g2g8f6e1g1c5d4f3d4e6e5d4f3b8c6c2c4d5d4e2e3d4d3b1c3f8b4\r
+d2d4d7d5g1f3g8f6c1f4e7e6e2e3f8e7f1d3c7c5c2c3b8c6b1d2a7a6h2h3b7b6f3e5c8b7d1e2f6d7\r
+d2d4d7d5g1f3g8f6c2c4c7c6b1c3d5c4a2a4c8f5e2e3e7e6f1c4f8b4e1g1b8d7d1e2e8g8e3e4f5g6\r
+d2d4d7d5g1f3g8f6c2c4c7c6b1c3e7e6c1g5b8d7e2e3d8a5c4d5f6d5d1d2f8b4a1c1e6e5a2a3b4d6\r
+d2d4d7d5g1f3g8f6c2c4c7c6b1c3e7e6c1g5b8d7e2e3d8a5c4d5f6d5d1d2f8b4a1c1e8g8f1d3e6e5\r
+d2d4d7d5g1f3g8f6c2c4c7c6b1c3e7e6c1g5b8d7e2e3d8a5f3d2f8b4d1c2e8g8a2a3d5c4g5f6d7f6\r
+d2d4d7d5g1f3g8f6c2c4c7c6b1c3e7e6c1g5b8d7e2e3d8a5f3d2f8b4d1c2e8g8f1e2e6e5g5f6d7f6\r
+d2d4d7d5g1f3g8f6c2c4c7c6b1c3e7e6c1g5d5c4e2e4b7b5e4e5h7h6g5h4g7g5f3g5h6g5h4g5f8e7\r
+d2d4d7d5g1f3g8f6c2c4c7c6b1c3e7e6c1g5h7h6g5f6d8f6e2e3b8d7f1d3d5c4d3c4f8d6e1g1f6e7\r
+d2d4d7d5g1f3g8f6c2c4c7c6b1c3e7e6d1b3b8d7c1g5d8a5g5d2a5b6e2e3d5c4b3c2f8d6f1c4e6e5\r
+d2d4d7d5g1f3g8f6c2c4c7c6b1c3e7e6e2e3b8d7d1c2f8d6f1d3e8g8e1g1d5c4d3c4a7a6f1d1b7b5\r
+d2d4d7d5g1f3g8f6c2c4c7c6b1c3g7g6c1g5f8g7e2e3e8g8f1d3c8e6d1e2b8d7e1g1h7h6g5h4e6g4\r
+d2d4d7d5g1f3g8f6c2c4c7c6e2e3c8f5b1c3e7e6f1d3f5d3d1d3b8d7e1g1f8d6e3e4d5e4c3e4f6e4\r
+d2d4d7d5g1f3g8f6c2c4c7c6e2e3c8f5d1b3d8c7c4d5c6d5f1b5b8c6c1d2e7e6e1g1f8d6d2b4e8g8\r
+d2d4d7d5g1f3g8f6c2c4c7c6e2e3c8f5f1d3f5d3d1d3e7e6e1g1b8d7b2b3f6e4f3d2d8h4g2g3h4h3\r
+d2d4d7d5g1f3g8f6c2c4d5c4b1c3a7a6a2a4c8f5e2e3e7e6f1c4f8b4e1g1e8g8d1e2f5g4f1d1b8d7\r
+d2d4d7d5g1f3g8f6c2c4d5c4b1c3a7a6d1a4b7b5a4c2b8c6e2e4e7e6c1g5c6d4f3d4d8d4a1d1d4c5\r
+d2d4d7d5g1f3g8f6c2c4d5c4b1c3c7c6a2a4c8f5e2e3e7e6f1c4f8b4e1g1b8d7d1e2f5g6e3e4b4c3\r
+d2d4d7d5g1f3g8f6c2c4d5c4b1c3c7c6a2a4c8f5e2e3e7e6f1c4f8b4e1g1b8d7f3h4e8g8h4f5e6f5\r
+d2d4d7d5g1f3g8f6c2c4d5c4b1c3c7c6a2a4c8f5f3e5e7e6f2f3f8b4e2e4f5e4f3e4f6e4c1d2d8d4\r
+d2d4d7d5g1f3g8f6c2c4d5c4b1c3c7c6a2a4c8g4f3e5g4h5g2g3e7e6f1g2f8b4e5c4f6d5d1b3b8a6\r
+d2d4d7d5g1f3g8f6c2c4d5c4b1c3e7e6e2e4f8b4c1g5c7c5f1c4c5d4f3d4d8a5g5d2a5c5c4b5c8d7\r
+d2d4d7d5g1f3g8f6c2c4d5c4d1a4c7c6a4c4c8f5b1c3e7e6g2g3b8d7f1g2f5c2e2e3f8e7e1g1e8g8\r
+d2d4d7d5g1f3g8f6c2c4d5c4e2e3c8g4f1c4e7e6e1g1b8d7b1c3f8d6e3e4e6e5d4e5d7e5c4e2g4f3\r
+d2d4d7d5g1f3g8f6c2c4d5c4e2e3e7e6f1c4c7c5e1g1a7a6a2a4b8c6d1e2c5d4f1d1f8e7e3d4e8g8\r
+d2d4d7d5g1f3g8f6c2c4d5c4e2e3e7e6f1c4c7c5e1g1a7a6a2a4b8c6d1e2c5d4f1d1f8e7e3d4e8g8\r
+d2d4d7d5g1f3g8f6c2c4d5c4e2e3e7e6f1c4c7c5e1g1a7a6c4b3b8c6b1c3b7b5d1e2c6a5d4c5a5b3\r
+d2d4d7d5g1f3g8f6c2c4e7e6b1c3b8d7c1g5f8e7e2e3e8g8a1c1a7a6a2a3c7c5d4c5d7c5c4d5e6d5\r
+d2d4d7d5g1f3g8f6c2c4e7e6b1c3c7c6c1g5d5c4e2e4b7b5e4e5h7h6g5h4g7g5f3g5f6d5g5f7d8h4\r
+d2d4d7d5g1f3g8f6c2c4e7e6b1c3c7c6e2e3b8d7f1d3d5c4d3c4b7b5c4d3a7a6e3e4c6c5e4e5c5d4\r
+d2d4d7d5g1f3g8f6c2c4e7e6b1c3f8e7c1f4e8g8e2e3c7c5d4c5e7c5f1e2d5c4e2c4a7a6d1e2b7b5\r
+d2d4d7d5g1f3g8f6c2c4e7e6b1c3f8e7c1g5h7h6g5f6e7f6e2e3e8g8d1b3c7c6a1d1b8d7f1d3b7b6\r
+d2d4d7d5g1f3g8f6c2c4e7e6b1c3f8e7c1g5h7h6g5h4e8g8a1c1f6e4h4e7d8e7e2e3c7c6f1d3e4c3\r
+d2d4d7d5g1f3g8f6c2c4e7e6b1c3f8e7d1c2e8g8e2e4d5e4c3e4b8d7f1d3f6e4d3e4d7f6e4d3e7b4\r
+d2d4d7d5g1f3g8f6c2c4e7e6c1g5b8d7e2e3f8e7b1c3e8g8a1c1b7b6c4d5e6d5d1a4c7c5a4c6a8b8\r
+d2d4d7d5g1f3g8f6c2c4e7e6c1g5f8e7e2e3b8d7b1c3e8g8a1c1f8e8d1c2h7h6g5h4c7c5c4d5f6d5\r
+d2d4d7d5g1f3g8f6c2c4e7e6c4d5e6d5b1c3c7c6d1c2g7g6c1g5f8g7e2e3c8f5f1d3f5d3c2d3e8g8\r
+d2d4d7d5g1f3g8f6c2c4e7e6e2e3c7c5f1d3b8c6e1g1d5c4d3c4a7a6b1c3b7b5c4d3c8b7a2a4b5b4\r
+d2d4d7d5g1f3g8f6c2c4e7e6g2g3d5c4f1g2b8c6e1g1a8b8b1c3b7b5e2e4f8e7c1f4e8g8a2a4a7a6\r
+d2d4d7d5g1f3g8f6e2e3c7c5c2c4e7e6f1d3b8c6e1g1a7a6b1c3d5c4d3c4b7b5c4d3c8b7a2a4b5b4\r
+d2d4d7d5g1f3g8f6e2e3c7c5c2c4e7e6f1d3b8c6e1g1d5c4d3c4a7a6a2a4f8e7b1c3e8g8b2b3c5d4\r
+d2d4d7d5g1f3g8f6e2e3c7c6f1d3g7g6b1d2f8g7e3e4d5e4d2e4e8g8e4g3f6d5c2c3c8g4h2h3g4f3\r
+d2d4d7d5g1f3g8f6e2e3c8f5f1d3e7e6d3f5e6f5d1d3d8c8b2b3b8a6e1g1f8e7c2c4e8g8b1c3c7c6\r
+d2d4d7d5g1f3g8f6e2e3e7e6f1d3c7c5e1g1b8c6b2b3f8d6c1b2e8g8b1d2d8e7f3e5f8d8a2a3c8d7\r
+d2d4d7d5g1f3g8f6g2g3c7c6f1g2c8f5e1g1e7e6c2c4b8d7b2b3f8e7b1c3f6e4c1b2d8a5d1c1e8g8\r
+d2d4d7d6c2c4e7e5b1c3e5d4d1d4b8d7g1f3g8f6b2b3f8e7c1b2c7c6e2e3e8g8f1e2d8b6e1g1d7c5\r
+d2d4d7d6c2c4e7e5g1f3e5e4f3g5f7f5b1c3g8f6h2h4b8c6g5h3g7g6e2e3f8h6g2g3c6e7b2b3c8e6\r
+d2d4d7d6e2e4e7e5d4e5d6e5d1d8e8d8g1f3f8d6b1c3c8e6c1e3g8f6e1c1f6g4e3g5f7f6g5h4b8d7\r
+d2d4d7d6e2e4g7g6b1c3c7c6c1e3f8g7d1d2b7b5f1d3b8d7f2f4d7b6b2b3g8f6g1f3a7a6a2a4b5b4\r
+d2d4d7d6e2e4g8f6b1c3g7g6g1f3f8g7f1e2e8g8e1g1b8c6a2a4e7e5d4d5c6e7a4a5h7h6a5a6c7c6\r
+d2d4d7d6e2e4g8f6b1c3g7g6g2g3f8g7f1g2e8g8g1e2b8d7h2h3e7e5e1g1e5d4e2d4f8e8f1e1d7c5\r
+d2d4d7d6e2e4g8f6f2f3d6d5e4e5f6d7f3f4c7c5g1f3b8c6c1e3c5d4f3d4c6d4e3d4d7b8b1c3b8c6\r
+d2d4d7d6g1f3g7g6c2c4f8g7e2e4b8d7b1c3e7e5d4d5a7a5f1e2g8f6e1g1e8g8d1c2d7c5c1g5h7h6\r
+d2d4e7e6c2c4b7b6b1c3c8b7a2a3f7f5d4d5g8f6g1f3f8e7g2g3f6e4f1g2e4c3b2c3b8a6f3d4e8g8\r
+d2d4e7e6c2c4b7b6e2e4c8b7d1c2d8h4b1d2f8b4f1d3f7f5g1f3b4d2e1f1h4h5c1d2g8f6e4f5b7f3\r
+d2d4e7e6c2c4b7b6e2e4c8b7f1d3b8c6g1e2c6b4e1g1b4d3d1d3g8e7b1c3d7d6d4d5d8d7c1e3e7g6\r
+d2d4e7e6c2c4b7b6e2e4c8b7f1d3f7f5e4f5f8b4e1f1g8f6d3e2e8g8c4c5b6c5a2a3b4a5d4c5f6d5\r
+d2d4e7e6c2c4d7d5b1c3f8e7g1f3g8f6c1g5e8g8e2e3b8d7d1c2c7c5c4d5f6d5g5e7d8e7c3d5e6d5\r
+d2d4e7e6c2c4d7d5g1f3d5c4d1a4b8d7b1c3a7a6a4c4b7b5c4d3c8b7e2e4g8f6a2a3c7c5e4e5f6d5\r
+d2d4e7e6c2c4f7f5b1c3f8b4d1c2g8f6e2e3e8g8f1d3d7d6g1e2c7c5a2a3b4c3e2c3b8c6d4c5d6c5\r
+d2d4e7e6c2c4f7f5b1c3g8f6e2e3d7d5f1d3c7c6f2f4f8e7g1f3e8g8e1g1b7b6c1d2c8a6d1e2a6b7\r
+d2d4e7e6c2c4f7f5e2e3g8f6b1c3d7d5g1h3c7c6c1d2f8d6d1c2e8g8e1c1d8e7f2f3d5c4e3e4f5e4\r
+d2d4e7e6c2c4f7f5g1f3g8f6b1c3f8e7d1c2d7d5b2b3e8g8e2e3c7c6f3e5e7b4c1d2b4c3d2c3f6e4\r
+d2d4e7e6c2c4f7f5g2g3f8b4c1d2b4e7f1g2g8f6b1c3e8g8g1f3f6e4e1g1b7b6d1c2c8b7f3e5e4c3\r
+d2d4e7e6c2c4f7f5g2g3f8b4c1d2b4e7f1g2g8f6b1c3e8g8g1f3f6e4e1g1e7f6c3e4f5e4f3e1f6d4\r
+d2d4e7e6c2c4f7f5g2g3g8f6b1c3f8e7f1g2e8g8g1f3d7d5e1g1c7c6d1c2b8d7c4d5c6d5c3b5d7b6\r
+d2d4e7e6c2c4f7f5g2g3g8f6f1g2f8b4c1d2b4e7b1c3e8g8g1f3d7d6e1g1d8e8d1c2e8h5e2e4e6e5\r
+d2d4e7e6c2c4f7f5g2g3g8f6f1g2f8e7b1c3e8g8d4d5e7b4c1d2e6e5e2e3d7d6g1e2a7a6d1c2d8e8\r
+d2d4e7e6c2c4f7f5g2g3g8f6f1g2f8e7b1c3e8g8e2e3d7d5g1e2c7c6b2b3e7d6e1g1d8e7d1c2f6e4\r
+d2d4e7e6c2c4f7f5g2g3g8f6f1g2f8e7b1c3e8g8e2e3d7d5g1e2c7c6b2b3f6e4e1g1b8d7c1b2d7f6\r
+d2d4e7e6c2c4f7f5g2g3g8f6f1g2f8e7b1c3e8g8e2e3d7d6g1e2c7c6e1g1e6e5d4d5d8e8e3e4e8h5\r
+d2d4e7e6c2c4f7f5g2g3g8f6f1g2f8e7g1f3d7d5e1g1e8g8d1c2c8d7b2b3a7a5c1a3c7c6a3e7d8e7\r
+d2d4e7e6c2c4f7f5g2g3g8f6f1g2f8e7g1f3e8g8e1g1d7d6b1c3d8e8f1e1e8g6e2e4f6e4c3e4f5e4\r
+d2d4e7e6c2c4f7f5g2g3g8f6f1g2f8e7g1f3e8g8e1g1f6e4b2b3e7f6c1b2b7b6b1d2c8b7f3e5d7d6\r
+d2d4e7e6c2c4f7f5g2g3g8f6f1g2f8e7g1h3e8g8e1g1d7d6b1c3d8e8e2e4f5e4h3f4c7c6c3e4f6e4\r
+d2d4e7e6c2c4f8b4c1d2b4d2d1d2g8f6b1c3d7d5f2f3b8c6e1c1e8g8e2e3d8e7c4d5f6d5e3e4d5c3\r
+d2d4e7e6c2c4f8b4c1d2b4d2d1d2g8f6b1c3d7d6e2e4e8g8e1c1b8c6d4d5c6e7f2f4e6d5c4d5c7c6\r
+d2d4e7e6c2c4f8b4c1d2d8e7e2e4d7d5e4e5b8c6g1f3b4d2d1d2d5c4b1c3g8h6d4d5c6e5f3e5e6d5\r
+d2d4e7e6c2c4f8b4c1d2d8e7g2g3b8c6g1f3g8f6b1c3b4c3d2c3f6e4a1c1d7d6d4d5e4c3c1c3c6d8\r
+d2d4e7e6c2c4g8f6b1c3d7d5c4d5e6d5c1g5c7c6e2e3f8e7f1d3b8d7g1e2f6h5g5e7d8e7g2g4h5f6\r
+d2d4e7e6c2c4g8f6b1c3f8b4d1c2b8c6g1f3d7d6c1d2e8g8a2a3b4c3d2c3d8e7e2e3e6e5d4d5c6b8\r
+d2d4e7e6c2c4g8f6b1c3f8b4e2e3e8g8g1f3c7c5f1d3d7d5e1g1d5c4d3c4b8d7d1e2b7b6c1d2c5d4\r
+d2d4e7e6c2c4g8f6b1c3f8b4e2e3e8g8g1f3c7c5f1d3d7d5e1g1d5c4d3c4b8d7d1e2b7b6f1d1c5d4\r
+d2d4e7e6c2c4g8f6g1f3b7b6g2g3c8a6b1d2f8b4d1b3d8e7f1g2a6b7e1g1b4d2c1d2e8g8a1d1d7d6\r
+d2d4e7e6c2c4g8f6g1f3b7b6g2g3c8a6b2b3f8b4c1d2b4e7b1c3d7d5c4d5e6d5f1g2e8g8e1g1b8d7\r
+d2d4e7e6c2c4g8f6g1f3b7b6g2g3c8b7f1g2f8e7e1g1e8g8b1c3f6e4d1c2e4c3c2c3b7e4c1f4b8c6\r
+d2d4e7e6c2c4g8f6g1f3d7d5b1c3c7c6e2e3b8d7d1c2f8d6b2b3e8g8f1e2b7b6e1g1c8b7c1b2f8e8\r
+d2d4e7e6c2c4g8f6g1f3d7d5b1c3f8e7c1f4e8g8e2e3c7c5d4c5e7c5a2a3b8c6b2b4c5e7c4d5f6d5\r
+d2d4e7e6c2c4g8f6g2g3f8b4c1d2b4e7f1g2d7d5g1f3e8g8e1g1c7c6d1c2b8d7b2b3b7b6f1d1c8a6\r
+d2d4e7e6e2e4d7d5b1c3f8b4e4e5c7c5a2a3b4c3b2c3d8c7d1g4f7f5g4g3c5d4c3d4g8e7e1d2e8g8\r
+d2d4e7e6e2e4d7d5b1c3f8b4e4e5c7c5a2a3b4c3b2c3d8c7d1g4f7f5g4g3g8e7c1d2e8g8f1d3b7b6\r
+d2d4e7e6e2e4d7d5b1c3f8b4e4e5c7c5a2a3b4c3b2c3d8c7d1g4f7f5g4h5g7g6h5d1b8c6g1f3c8d7\r
+d2d4e7e6e2e4d7d5b1d2c7c5e4d5e6d5g1f3a7a6d4c5f8c5d2b3c5a7c1g5g8f6f3d4e8g8f1e2d8d6\r
+d2d4e7e6e2e4d7d5b1d2c7c5e4d5e6d5g1f3g8f6f1b5c8d7b5d7b8d7e1g1f8e7d4c5d7c5f3d4d8d7\r
+d2d4e7e6e2e4d7d5b1d2d5e4d2e4b8d7g1f3g8f6e4f6d7f6c1g5f8e7f1d3c7c5e1g1c5d4f3d4e8g8\r
+d2d4e7e6e2e4d7d5e4d5e6d5g1f3g8f6c1g5c7c6f1d3c8e6e1g1b8d7f1e1d8b6b1d2f8e7a1b1h7h6\r
+d2d4e7e6e2e4d7d5e4e5c7c5c2c3b8c6g1f3c8d7f1e2g8e7b1a3c5d4c3d4e7f5a3c2c6b4c2e3f5e3\r
+d2d4e7e6g1f3f7f5g2g3g8f6f1g2f8e7e1g1e8g8c2c4d7d6b2b3a7a5c1b2d8e8b1d2b8c6a2a3e7d8\r
+d2d4e7e6g1f3g8f6c1g5c7c5e2e3f8e7f1d3b7b6c2c3c8b7b1d2c5d4c3d4f6d5d2c4e8g8h2h4f7f5\r
+d2d4e7e6g1f3g8f6c2c4b7b6b1c3c8b7c1g5h7h6g5f6d8f6e2e4f8b4f1d3c7c5e1g1c5d4c3b5f6d8\r
+d2d4e7e6g1f3g8f6c2c4b7b6g2g3c8a6b2b3a6b7f1g2f8b4c1d2a7a5e1g1e8g8d1c2c7c5f1d1b4d2\r
+d2d4e7e6g1f3g8f6c2c4b7b6g2g3c8b7f1g2f8e7e1g1e8g8b1c3f6e4d1c2e4c3c2c3b7e4b2b3c7c5\r
+d2d4e7e6g1f3g8f6c2c4b7b6g2g3c8b7f1g2f8e7e1g1e8g8b2b3d7d5c4d5e6d5c1b2b8d7b1c3f8e8\r
+d2d4e7e6g1f3g8f6c2c4b7b6g2g3c8b7f1g2f8e7e1g1e8g8d1c2c7c5b2b3c5d4f3d4b7g2g1g2d7d5\r
+d2d4e7e6g1f3g8f6c2c4d7d5c4d5e6d5b1c3c7c6d1c2c8g4c1g5b8d7e2e3f8d6f1d3d8c7e1c1h7h6\r
+d2d4e7e6g1f3g8f6c2c4f8b4c1d2c7c5d2b4c5b4g2g3b7b6f1g2c8b7e1g1e8g8b1d2d7d6d1b3a7a5\r
+d2d4e7e6g2g3c7c5g1f3c5d4f3d4d7d5f1g2g8f6e1g1e6e5d4b3c8e6c2c4b8c6c4d5f6d5b1d2f8e7\r
+d2d4f7f5b1c3g8f6c1g5d7d5g5f6e7f6e2e3c8e6f1d3b8c6a2a3d8d7g1f3f8d6c3b5d6e7e1g1c6d8\r
+d2d4f7f5c1g5c7c6e2e3g7g6c2c4f8g7b1c3d7d6f1d3d8a5g1e2b8d7e1g1e7e5d4e5d6e5a2a3h7h6\r
+d2d4f7f5c2c4g8f6g2g3e7e6f1g2d7d5g1f3c7c6e1g1f8d6f3e5e8g8c1f4f6g4e5g4d6f4g3f4f5g4\r
+d2d4f7f5c2c4g8f6g2g3e7e6f1g2f8b4c1d2b4e7g1f3e8g8e1g1c7c6d1b3b8a6b1c3d8e8d4d5a6c5\r
+d2d4f7f5e2e4f5e4b1c3g8f6c1g5c7c6f2f3d8a5g5f6e7f6f3e4f8b4d1f3d7d5g1e2e8g8e4d5a5d5\r
+d2d4f7f5e2e4f5e4f2f3e4f3g1f3g8f6f1d3d7d6e1g1c8g4b1c3b8c6c1e3d8d7d4d5c6e5d3b5c7c6\r
+d2d4f7f5g1f3g8f6g2g3g7g6f1g2f8g7e1g1e8g8c2c4c7c6b1c3b8a6b2b3d7d6c1b2c8d7f1e1d8a5\r
+d2d4f7f5g2g3g8f6f1g2e7e6g1f3f8e7c2c4e8g8b1c3d7d6c1f4d8e8a1c1b8c6d4d5c6d8c3b5e8d7\r
+d2d4f7f5g2g3g8f6f1g2e7e6g1f3f8e7e1g1e8g8c2c4c7c6b1c3d7d5c1g5b8d7e2e3d8e8d1c2g8h8\r
+d2d4f7f5g2g3g8f6f1g2g7g6g1f3f8g7b2b3e8g8c1b2d7d5c2c4c7c6e1g1c8e6f3g5e6f7b1c3d8e8\r
+d2d4f7f5g2g3g8f6f1g2g7g6g1f3f8g7e1g1e8g8b2b4f6e4c2c4e7e6c1b2b7b6b1c3c8b7a1c1a7a5\r
+d2d4f7f5g2g3g8f6f1g2g7g6g1f3f8g7e1g1e8g8d4d5c7c6c2c4d7d6f3d4d8c7b1c3e7e5d5e6b8a6\r
+d2d4f7f5g2g3g8f6f1g2g7g6g1h3f8g7e1g1e8g8c2c4b8c6b1c3e7e6d4d5c6e5b2b3e5f7c1a3f8e8\r
+d2d4f7f5g2g3g8f6f1g2g7g6g1h3f8g7h3f4b8c6d4d5c6e5b1c3c7c6e2e4f5e4c3e4f6e4g2e4c6d5\r
+d2d4g7g6c2c4f8g7g1f3c7c5g2g3c5d4f3d4b8c6d4c2b7b6f1g2c8a6b1a3a8c8a1b1g8f6e1g1e8g8\r
+d2d4g7g6e2e4f8g7b1c3d7d6c1e3c7c6d1d2b7b5f2f3b8d7h2h4h7h5g1h3d8a5h3g5g8h6a2a3a8b8\r
+d2d4g7g6e2e4f8g7c2c3c7c6f1d3d7d6f2f4d6d5e4e5h7h5g1f3g8h6c1e3c8f5d3f5h6f5e3f2b8a6\r
+d2d4g7g6e2e4f8g7c2c4d7d6b1c3b8d7g1e2e7e5c1e3g8e7d1d2e8g8e1c1a7a6h2h4e5d4e2d4d7e5\r
+d2d4g7g6e2e4f8g7c2c4d7d6b1c3e7e5d4e5d6e5d1d8e8d8f2f4b8c6g1f3c6d4e1f2e5f4c1f4d4e6\r
+d2d4g7g6e2e4f8g7c2c4d7d6b1c3g8f6f2f3b8d7c1e3e8g8f1d3e7e5g1e2f6h5d4e5d6e5e1g1c7c6\r
+d2d4g7g6e2e4f8g7g1f3d7d6b1c3g8f6f1e2e8g8e1g1b8d7e4e5f6e8c1f4d7b6f1e1c7c6h2h3e8c7\r
+d2d4g7g6e2e4f8g7g1f3d7d6c2c3g8f6f1d3e8g8e1g1b8c6c1g5h7h6g5h4e7e5d4e5d6e5b1a3c8e6\r
+d2d4g7g6e2e4f8g7g1f3d7d6f1e2e7e6c2c3b8d7e1g1g8e7b1d2b7b6a2a4a7a6f1e1c8b7e2d3e8g8\r
+d2d4g7g6g1f3f7f5g2g3f8g7f1g2g8f6e1g1e8g8c2c4d7d6d4d5c7c5b1c3b8a6f3e1a8b8e1c2a6c7\r
+d2d4g8f6b1c3d7d5c1g5c8f5f2f3f5g6e2e4d5e4d1d2e7e6f3e4f8b4d2e3f6g4e3d2g4f6d2e3f6g4\r
+d2d4g8f6b1c3d7d5c1g5c8f5g5f6g7f6e2e3c7c6f1d3f5g6f2f4g6d3d1d3e7e6e3e4d5e4c3e4f6f5\r
+d2d4g8f6b1c3d7d5c1g5h7h6g5f6e7f6e2e3c7c6f1d3f8d6d1f3e8g8g1e2f8e8e1c1b7b5g2g4b5b4\r
+d2d4g8f6b1c3d7d5c1g5h7h6g5f6e7f6e2e4f8b4e4d5d8d5g1f3e8g8f1e2d5a5d1d2b8d7a2a3d7b6\r
+d2d4g8f6b1c3g7g6e2e4d7d6g1f3f8g7f1c4e8g8e1g1c8g4h2h3g4f3d1f3b8c6c1e3e7e5d4e5c6e5\r
+d2d4g8f6c1g5d7d5g5f6e7f6e2e3c8e6b1d2c7c6f1d3f6f5d1f3g7g6g1e2b8d7e1g1f8d6c2c4d7f6\r
+d2d4g8f6c1g5d7d5g5f6e7f6e2e3c8e6g2g3f6f5f1d3c7c6b1d2b8d7g1e2f8d6e1g1e8g8c2c3d7f6\r
+d2d4g8f6c1g5e7e6e2e3h7h6g5h4c7c5c2c3c5d4c3d4g7g5h4g3f6e4b1c3e4g3h2g3d7d5f1d3f8g7\r
+d2d4g8f6c1g5e7e6e2e4h7h6g5f6d8f6b1c3d7d6d1d2g7g5f1c4b8c6g1e2f8g7a1d1c8d7e1g1e8c8\r
+d2d4g8f6c1g5e7e6e2e4h7h6g5f6d8f6g1f3d7d6b1c3g7g6d1d2f6e7e1c1a7a6h2h4f8g7g2g3b7b5\r
+d2d4g8f6c1g5f6e4g5f4c7c5f2f3e4f6d4d5e7e6b1c3f6h5f4e3d7d6d1d2e6e5g2g4h5f6e3f2a7a6\r
+d2d4g8f6c1g5f6e4g5f4d7d5b1d2e4d2d1d2c8f5e2e3e7e6g1f3f8e7c2c4e8g8a1c1c7c6f1e2b8d7\r
+d2d4g8f6c1g5f6e4h2h4c7c5d4c5d8a5b1d2e4g5h4g5g7g6c2c3a5c5g1f3f8g7e2e3a7a6a2a4d7d5\r
+d2d4g8f6c1g5g7g6g5f6e7f6e2e3d7d5c2c4d5c4f1c4f8d6b1c3e8g8g1f3b8d7e1g1d7b6c4b3f8e8\r
+d2d4g8f6c2c4b7b6b1c3c8b7f2f3d7d5c4d5f6d5e2e4d5c3b2c3e7e6f1b5b8d7g1e2f8e7e1g1a7a6\r
+d2d4g8f6c2c4c7c5d4d5b7b5c4b5a7a6b5a6c8a6b1c3d7d6g1f3g7g6g2g3f8g7f1g2b8d7e1g1d7b6\r
+d2d4g8f6c2c4c7c5d4d5b7b5c4b5a7a6b5a6g7g6b1c3c8a6e2e4a6f1e1f1d7d6g2g3f8g7f1g2b8d7\r
+d2d4g8f6c2c4c7c5d4d5b7b5c4b5a7a6b5a6g7g6g2g3f8g7f1g2d7d6g1h3b8a6h3f4d8b6e1g1e8g8\r
+d2d4g8f6c2c4c7c5d4d5b7b5g1f3g7g6c4b5a7a6b5b6d8b6b1c3d7d6f3d2f8g7e2e4e8g8f1e2a6a5\r
+d2d4g8f6c2c4c7c5d4d5b7b5g1f3g7g6d1c2f8g7e2e4d7d6c4b5e8g8b1c3a7a6a2a4a6b5f1b5b8a6\r
+d2d4g8f6c2c4c7c5d4d5d7d6b1c3g7g6e2e4f8g7c1g5h7h6g5h4g6g5h4g3d8a5f1d3f6e4d3e4g7c3\r
+d2d4g8f6c2c4c7c5d4d5d7d6b1c3g7g6e2e4f8g7f1d3e8g8g1f3c8g4h2h3g4f3d1f3b8d7f3d1e7e6\r
+d2d4g8f6c2c4c7c5d4d5d7d6b1c3g7g6g1f3f8g7e2e4e8g8c1f4a7a6a2a4d8a5f4d2e7e6f1e2e6d5\r
+d2d4g8f6c2c4c7c5d4d5e7e5b1c3d7d6e2e4g7g6f1d3b8a6g1e2a6b4d3b1f8g7h2h3c8d7c1e3e8g8\r
+d2d4g8f6c2c4c7c5d4d5e7e5b1c3d7d6e2e4g7g6f1e2f8g7c1g5b8a6g1f3h7h6g5d2c8g4a2a3g4f3\r
+d2d4g8f6c2c4c7c5d4d5e7e5b1c3d7d6e2e4g7g6f2f3b8a6c1e3a6c7d1d2a7a6a2a4b7b6f1d3a8b8\r
+d2d4g8f6c2c4c7c5d4d5e7e5b1c3d7d6e2e4g7g6f2f3f6h5c1e3f8g7d1d2e8g8g2g4h5f4g1e2b8d7\r
+d2d4g8f6c2c4c7c5d4d5e7e5b1c3d7d6e2e4g7g6g1f3f8g7c1g5b8a6f1e2a6c7f3d2c8d7a2a4b7b6\r
+d2d4g8f6c2c4c7c5d4d5e7e5b1c3d7d6g2g3g7g6f1h3b8d7g1f3f8g7e1g1a7a6e2e4e8g8f1e1f6e8\r
+d2d4g8f6c2c4c7c5d4d5e7e6b1c3e6d5c4d5d7d6e2e4g7g6f2f4f8g7f1b5f6d7a2a4d8h4e1f1e8g8\r
+d2d4g8f6c2c4c7c5d4d5e7e6b1c3e6d5c4d5d7d6e2e4g7g6g1f3f8g7f1d3e8g8h2h3a7a6a2a4b8d7\r
+d2d4g8f6c2c4c7c5d4d5e7e6b1c3e6d5c4d5d7d6e2e4g7g6g1f3f8g7f1e2e8g8e1g1f8e8f3d2b8a6\r
+d2d4g8f6c2c4c7c5d4d5e7e6b1c3e6d5c4d5d7d6e2e4g7g6g1f3f8g7h2h3e8g8f1d3b7b5c3b5f8e8\r
+d2d4g8f6c2c4c7c5d4d5e7e6b1c3e6d5c4d5d7d6g1f3g7g6c1g5f8g7f3d2h7h6g5h4g6g5h4g3f6h5\r
+d2d4g8f6c2c4c7c5d4d5e7e6b1c3e6d5c4d5d7d6g1f3g7g6f3d2b8d7g2g3f8g7f1g2e8g8e1g1d8e7\r
+d2d4g8f6c2c4c7c5d4d5e7e6b1c3e6d5c4d5d7d6g1f3g7g6g2g3f8g7f1g2e8g8e1g1a7a6a2a4b8d7\r
+d2d4g8f6c2c4c7c5d4d5g7g6b1c3d7d6e2e4b7b5c4b5f8g7g1f3e8g8f1e2a7a6b5a6c8a6e1g1d8c7\r
+d2d4g8f6c2c4c7c6b1c3d7d5c4d5c6d5g1f3b8c6c1f4c8f5e2e3e7e6f1b5f8b4f3e5d8a5b5c6b7c6\r
+d2d4g8f6c2c4c7c6b1c3d7d6g1f3b8d7g2g3e7e5f1g2f8e7d1c2e8g8e1g1f8e8b2b3e7f8e2e4a7a6\r
+d2d4g8f6c2c4c7c6b1c3e7e6g1f3d7d5c1g5b8d7e2e4d5e4c3e4d8b6e4f6g7f6g5c1e6e5f1d3e5d4\r
+d2d4g8f6c2c4c7c6g1f3d7d5b1c3e7e6c1g5b8d7e2e4d5e4c3e4f8e7e4c3e8g8d1c2b7b6e1c1c8b7\r
+d2d4g8f6c2c4c7c6g1f3d7d5e2e3e7e6f1d3b8d7b1c3d5c4d3c4b7b5c4d3a7a6e1g1c6c5a2a4b5b4\r
+d2d4g8f6c2c4c7c6g1f3d7d5e2e3e7e6f1d3b8d7b1d2f8e7e1g1e8g8b2b3b7b6c1b2c8b7d1e2c6c5\r
+d2d4g8f6c2c4d7d5g1f3e7e6b1c3b8d7e2e3f8e7f1d3d5c4d3c4c7c5e1g1e8g8f1e1a7a6a2a4d8c7\r
+d2d4g8f6c2c4d7d6b1c3b8d7c1g5h7h6g5h4g7g5h4g3f6h5e2e3h5g3h2g3f8g7f1d3d7f6d1d2c7c6\r
+d2d4g8f6c2c4d7d6b1c3b8d7e2e4e7e5d4d5d7c5d1c2a7a5g2g3f8e7f1g2e8g8g1e2f6h5e1g1e7g5\r
+d2d4g8f6c2c4d7d6b1c3b8d7e2e4e7e5g1f3f8e7g2g3e8g8f1g2c7c6e1g1a7a6b2b3f8e8c1b2e7f8\r
+d2d4g8f6c2c4d7d6b1c3b8d7e2e4e7e5g1f3g7g6f1e2f8g7e1g1e8g8c1g5c7c6d1d2d8b6c4c5d6c5\r
+d2d4g8f6c2c4d7d6b1c3b8d7g1f3c7c6g2g3e7e5f1g2f8e7e1g1e8g8d1c2f8e8b2b3e7f8c1b2a7a6\r
+d2d4g8f6c2c4d7d6b1c3b8d7g1f3g7g6e2e4e7e5f1e2f8g7e1g1e8g8f1e1c7c6e2f1f6e8a1b1e8c7\r
+d2d4g8f6c2c4d7d6b1c3e7e5e2e3b8d7f1d3g7g6g1e2f8g7e1g1e8g8f2f4f8e8e2g3c7c6g1h1d7f8\r
+d2d4g8f6c2c4d7d6b1c3e7e5g1f3b8d7c1g5f8e7e2e3c7c6f1e2e8g8e1g1f8e8d1c2d8c7h2h3d7f8\r
+d2d4g8f6c2c4d7d6b1c3e7e5g1f3b8d7c1g5f8e7e2e3e8g8d1c2c7c6f1d3e5d4e3d4f8e8e1g1h7h6\r
+d2d4g8f6c2c4d7d6b1c3e7e5g1f3b8d7c1g5h7h6g5h4g7g5d4e5g5h4e5f6d8f6c3d5f6b2a1b1b2a2\r
+d2d4g8f6c2c4d7d6b1c3e7e5g1f3b8d7e2e4g7g6f1e2f8g7e1g1e8g8f1e1c7c6e2f1f6g4h2h3e5d4\r
+d2d4g8f6c2c4d7d6b1c3e7e5g1f3b8d7g2g3g7g6f1g2f8g7e1g1e8g8e2e4c7c6h2h3f6h5c1e3d8e7\r
+d2d4g8f6c2c4d7d6b1c3e7e5g1f3b8d7g2g3g7g6f1g2f8g7e1g1e8g8e2e4f8e8c1e3f6g4e3g5f7f6\r
+d2d4g8f6c2c4d7d6b1c3e7e5g1f3b8d7g2g3g7g6f1g2f8g7e1g1e8g8e2e4f8e8c1e3f6g4e3g5f7f6\r
+d2d4g8f6c2c4d7d6b1c3e7e5g1f3e5e4f3g5c8f5d1c2h7h6g5e4f6e4c3e4d8h4e4d6f8d6c2f5d6b4\r
+d2d4g8f6c2c4d7d6b1c3g7g6e2e4f8g7f2f3e8g8c1e3a7a6d1d2c7c6f1d3e7e5d4e5d6e5c3a4b7b5\r
+d2d4g8f6c2c4d7d6g1f3b8d7b1c3c7c6e2e4e7e5f1e2f8e7e1g1a7a6d1c2e8g8f1d1d8c7c1g5h7h6\r
+d2d4g8f6c2c4d7d6g1f3b8d7b1c3e7e5e2e4c7c6f1e2f8e7e1g1e8g8d1c2f8e8b2b3e7f8c1b2f6h5\r
+d2d4g8f6c2c4d7d6g1f3b8d7b1c3e7e5e2e4f8e7f1e2e8g8e1g1c7c6d1c2f8e8f1d1e7f8a1b1a7a5\r
+d2d4g8f6c2c4d7d6g1f3b8d7g2g3e7e5f1g2c7c6d4e5d6e5e1g1f8c5b1c3e8g8d1c2d8e7f3h4f8e8\r
+d2d4g8f6c2c4d7d6g1f3g7g6b1c3f8g7e2e4e7e5f1e2e8g8e1g1b8c6c1e3f6g4e3g5f7f6g5c1e5d4\r
+d2d4g8f6c2c4d7d6g1f3g7g6b1c3f8g7e2e4e8g8f1e2b8d7e1g1e7e5f1e1e5d4f3d4d7c5e2f1f8e8\r
+d2d4g8f6c2c4d7d6g1f3g7g6b1c3f8g7g2g3e8g8f1g2b8d7e1g1e7e5d1c2c7c6f1d1f8e8d4e5d6e5\r
+d2d4g8f6c2c4d7d6g1f3g7g6b1c3f8g7g2g3e8g8f1g2b8d7e1g1e7e5e2e4f8e8c1e3f6g4e3g5f7f6\r
+d2d4g8f6c2c4d7d6g1f3g7g6g2g3f8g7f1g2e8g8e1g1b8c6b1c3c8g4h2h3g4f3g2f3f6d7f3g2c6d4\r
+d2d4g8f6c2c4e7e5d4e5f6g4c1f4b8c6g1f3f8b4b1d2d8e7e2e3g4e5f3e5c6e5f1e2e8g8e1g1d7d6\r
+d2d4g8f6c2c4e7e5d4e5f6g4g1f3f8c5e2e3b8c6b1c3g4e5f3e5c6e5f1e2e8g8a2a3a7a5e1g1d7d6\r
+d2d4g8f6c2c4e7e5d4e5f6g4g1f3f8c5e2e3b8c6f1e2g4e5f3e5c6e5e1g1e8g8b1c3d7d6c3a4c5b6\r
+d2d4g8f6c2c4e7e6b1c3c7c5d4d5e6d5c4d5d7d6e2e4g7g6f2f4f8g7f1b5f6d7a2a4e8g8g1f3a7a6\r
+d2d4g8f6c2c4e7e6b1c3d7d5c1g5b8d7e2e3c7c6c4d5e6d5f1d3f8e7d1c2e8g8g1f3h7h6g5h4f8e8\r
+d2d4g8f6c2c4e7e6b1c3d7d5c1g5b8d7e2e3c7c6c4d5e6d5f1d3f8e7g1e2e8g8e2g3f6e8h2h4d7f6\r
+d2d4g8f6c2c4e7e6b1c3d7d5c1g5b8d7e2e3f8e7g1f3e8g8a1c1c7c6d1c2a7a6a2a3f8e8f1d3h7h6\r
+d2d4g8f6c2c4e7e6b1c3d7d5c1g5b8d7e2e3f8e7g1f3e8g8a1c1c7c6d1c2a7a6a2a3h7h6g5h4f8e8\r
+d2d4g8f6c2c4e7e6b1c3d7d5c1g5b8d7e2e3f8e7g1f3e8g8a1c1c7c6f1d3d5c4d3c4f6d5g5e7d8e7\r
+d2d4g8f6c2c4e7e6b1c3d7d5c1g5b8d7e2e3f8e7g1f3e8g8a1c1c7c6f1d3d5c4d3c4f6d5g5e7d8e7\r
+d2d4g8f6c2c4e7e6b1c3d7d5c1g5b8d7e2e3f8e7g1f3e8g8a1c1c7c6f1d3d5c4d3c4f6d5g5e7d8e7\r
+d2d4g8f6c2c4e7e6b1c3d7d5c1g5b8d7e2e3f8e7g1f3e8g8a1c1c7c6f1d3d5c4d3c4f6d5g5e7d8e7\r
+d2d4g8f6c2c4e7e6b1c3d7d5c1g5b8d7e2e3f8e7g1f3e8g8a1c1c7c6f1d3d5c4d3c4f6d5g5e7d8e7\r
+d2d4g8f6c2c4e7e6b1c3d7d5c1g5b8d7e2e3f8e7g1f3e8g8a1c1c7c6f1d3d5c4d3c4f6d5g5e7d8e7\r
+d2d4g8f6c2c4e7e6b1c3d7d5c1g5b8d7e2e3f8e7g1f3e8g8a1c1c7c6f1d3d5c4d3c4f6d5g5e7d8e7\r
+d2d4g8f6c2c4e7e6b1c3d7d5c1g5b8d7e2e3f8e7g1f3e8g8d1c2c7c5c4d5f6d5c3d5e6d5g5e7d8e7\r
+d2d4g8f6c2c4e7e6b1c3d7d5c1g5b8d7g1f3c7c6e2e3d8a5g5f6d7f6f3d2f8b4d1c2e8g8f1d3b4c3\r
+d2d4g8f6c2c4e7e6b1c3d7d5c1g5b8d7g1f3h7h6g5h4f8e7e2e3e8g8a1c1a7a6b2b3b7b6c4d5e6d5\r
+d2d4g8f6c2c4e7e6b1c3d7d5c1g5c7c5e2e3c5d4e3d4f8e7g1f3e8g8a1c1b7b6f1d3b8c6e1g1c6b4\r
+d2d4g8f6c2c4e7e6b1c3d7d5c1g5f8e7e2e3b8d7g1f3e8g8a1c1c7c6f1d3d5c4d3c4f6d5g5e7d8e7\r
+d2d4g8f6c2c4e7e6b1c3d7d5c1g5f8e7e2e3b8d7g1f3e8g8a1c1c7c6f1d3h7h6g5h4d5c4d3c4b7b5\r
+d2d4g8f6c2c4e7e6b1c3d7d5c1g5f8e7e2e3b8d7g1f3e8g8d1c2c7c6a1d1f8e8a2a3d5c4f1c4f6d5\r
+d2d4g8f6c2c4e7e6b1c3d7d5c1g5f8e7e2e3e8g8g1f3b8d7a1c1c7c6a2a3a7a6d1c2f8e8f1d3h7h6\r
+d2d4g8f6c2c4e7e6b1c3d7d5c1g5f8e7e2e3e8g8g1f3b8d7a1c1c7c6d1c2a7a6c4d5f6d5g5e7d8e7\r
+d2d4g8f6c2c4e7e6b1c3d7d5c1g5f8e7e2e3e8g8g1f3b8d7a1c1c7c6f1d3d5c4d3c4f6d5g5e7d8e7\r
+d2d4g8f6c2c4e7e6b1c3d7d5c1g5f8e7e2e3e8g8g1f3h7h6g5h4b7b6f1d3c8b7e1g1b8d7a1c1c7c5\r
+d2d4g8f6c2c4e7e6b1c3d7d5c1g5f8e7e2e3e8g8g1f3h7h6g5h4f6e4h4e7d8e7c4d5e4c3b2c3e6d5\r
+d2d4g8f6c2c4e7e6b1c3d7d5c1g5f8e7g1f3e8g8e2e3h7h6g5h4b7b6f1d3c8b7e1g1b8d7a1c1c7c5\r
+d2d4g8f6c2c4e7e6b1c3d7d5c4d5e6d5c1g5f8e7d1c2e8g8e2e3f8e8f1d3b8d7g1f3d7f8e1g1c7c6\r
+d2d4g8f6c2c4e7e6b1c3d7d5c4d5e6d5c1g5f8e7e2e3c7c6f1d3b8d7d1c2f6h5g5e7d8e7g1e2d7b6\r
+d2d4g8f6c2c4e7e6b1c3d7d5c4d5e6d5c1g5f8e7e2e3e8g8d1c2b8d7g1f3c7c6f1d3f8e8e1g1d7f8\r
+d2d4g8f6c2c4e7e6b1c3d7d5c4d5e6d5c1g5f8e7e2e3e8g8f1d3c7c6d1c2b8d7g1e2f8e8e1g1d7f8\r
+d2d4g8f6c2c4e7e6b1c3d7d5c4d5e6d5c1g5f8e7e2e3e8g8f1d3c7c6d1c2b8d7g1e2f8e8e1g1d7f8\r
+d2d4g8f6c2c4e7e6b1c3d7d5c4d5e6d5c1g5f8e7e2e3h7h6g5h4e8g8f1d3b7b6g1f3c8b7e1g1c7c5\r
+d2d4g8f6c2c4e7e6b1c3d7d5e2e3b8d7g1f3f8e7f1d3c7c5c4d5e6d5d4c5e8g8e1g1d7c5d3c2c8g4\r
+d2d4g8f6c2c4e7e6b1c3d7d5g1f3b8d7c1g5f8b4c4d5e6d5e2e3c7c5f1d3d8a5e1g1c5c4d3f5e8g8\r
+d2d4g8f6c2c4e7e6b1c3d7d5g1f3b8d7c4d5e6d5c1g5f8e7e2e3e8g8d1c2c7c6f1d3f8e8h2h3f6e4\r
+d2d4g8f6c2c4e7e6b1c3d7d5g1f3b8d7e2e3a7a6a2a4f8b4c1d2c7c6f1d3d5c4d3c4d8a5e1g1e8g8\r
+d2d4g8f6c2c4e7e6b1c3d7d5g1f3c7c5c4d5c5d4d1d4e6d5e2e4b8c6f1b5a7a6b5c6b7c6f3e5c8b7\r
+d2d4g8f6c2c4e7e6b1c3d7d5g1f3c7c5c4d5c5d4d1d4e6d5e2e4b8c6f1b5f6e4e1g1e4f6f1e1f8e7\r
+d2d4g8f6c2c4e7e6b1c3d7d5g1f3c7c6e2e3a7a6c4c5b8d7f1d3d8c7e1g1e6e5d4e5d7e5f3e5c7e5\r
+d2d4g8f6c2c4e7e6b1c3d7d5g1f3f8b4c1g5e8g8e2e3c7c5c4d5e6d5d4c5b8d7a1c1d7c5d1d4b4c3\r
+d2d4g8f6c2c4e7e6b1c3f8b4a2a3b4c3b2c3c7c5e2e3b7b6g1e2b8c6e2g3e8g8f1d3c8a6e3e4f6e8\r
+d2d4g8f6c2c4e7e6b1c3f8b4a2a3b4c3b2c3c7c5e2e3b8c6f1d3e6e5g1e2d7d6e1g1d8e7e3e4f6d7\r
+d2d4g8f6c2c4e7e6b1c3f8b4a2a3b4c3b2c3c7c5e2e3b8c6f1d3e6e5g1e2d7d6e3e4f6h5e1g1g7g5\r
+d2d4g8f6c2c4e7e6b1c3f8b4a2a3b4c3b2c3c7c5e2e3b8c6f1d3e8g8g1e2d7d6e3e4f6e8e1g1b7b6\r
+d2d4g8f6c2c4e7e6b1c3f8b4a2a3b4c3b2c3c7c5e2e3d8a5c1d2f6e4g1f3e4d2d1d2e8g8f1d3d7d6\r
+d2d4g8f6c2c4e7e6b1c3f8b4a2a3b4c3b2c3c7c5f2f3b8c6d4d5c6a5e2e4e6e5f1d3b7b6c1g5c8a6\r
+d2d4g8f6c2c4e7e6b1c3f8b4a2a3b4c3b2c3c7c5g1f3e8g8c1g5d7d6d1c2f8e8e2e4h7h6g5e3d8a5\r
+d2d4g8f6c2c4e7e6b1c3f8b4a2a3b4c3b2c3e8g8f2f3d7d5c4d5e6d5e2e3c8f5g1e2b8d7e2g3f5g6\r
+d2d4g8f6c2c4e7e6b1c3f8b4a2a3b4c3b2c3e8g8f2f3f6h5g1h3f7f5e2e4c7c5e4e5b8c6f3f4g7g6\r
+d2d4g8f6c2c4e7e6b1c3f8b4a2a3b4c3b2c3f6e4d1c2f7f5g1h3d7d6f2f3e4f6e2e4f5e4f3e4e6e5\r
+d2d4g8f6c2c4e7e6b1c3f8b4a2a3b4c3b2c3f6e4d1c2f7f5g1h3e8g8f2f3e4f6c4c5b7b6c5b6c7b6\r
+d2d4g8f6c2c4e7e6b1c3f8b4a2a3b4c3b2c3f6e4e2e3f7f5d1h5g7g6h5h6d7d6f2f3e4f6e3e4e6e5\r
+d2d4g8f6c2c4e7e6b1c3f8b4a2a3b4c3b2c3f6e4g1h3c7c5e2e3d8a5c1d2c5d4c3d4e4d2d1d2a5d2\r
+d2d4g8f6c2c4e7e6b1c3f8b4c1d2b7b6f2f3b8c6a2a3b4e7e2e3e8g8f1d3d7d5c4d5e6d5g1e2f6h5\r
+d2d4g8f6c2c4e7e6b1c3f8b4c1g5c7c5d4d5b4c3b2c3e6e5a1c1d7d6e2e3b8d7f2f3h7h6g5h4g7g5\r
+d2d4g8f6c2c4e7e6b1c3f8b4c1g5h7h6g5h4c7c5d4d5d7d6e2e3e6e5g1e2b8d7a2a3b4a5d1c2e8g8\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1b3c7c5d4c5b4c5g1f3d7d5c4d5e6d5c1g5c8e6g5f6g7f6e1c1b8d7\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1b3c7c5d4c5b8a6a2a3b4c3b3c3a6c5f2f3a7a5e2e4e8g8c1f4d8b6\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1b3c7c5d4c5b8a6g1f3e8g8c1g5b4c5e2e3b7b6f1e2c8b7e1g1c5e7\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1b3c7c5d4c5b8c6g1f3b4c5c1g5h7h6g5f6d8f6e2e3b7b6f1e2c8b7\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1b3d8e7a2a3b4c3b3c3b7b6f2f3d7d5c4d5f6d5c3c2e7h4g2g3h4d4\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2b8c6g1f3d7d5c1g5h7h6g5f6d8f6e2e3e8g8a2a3b4c3c2c3f8e8\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2b8c6g1f3d7d5c4d5e6d5a2a3b4a5c1g5c6e7g5f6g7f6e2e3c7c6\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2b8c6g1f3d7d6c1d2e8g8a2a3b4c3d2c3a7a5e2e3d8e7f1d3e6e5\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2c7c5d4c5b8a6e2e3a6c5c1d2e8g8g1f3b7b6f1e2c8a6e1g1d7d5\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2c7c5d4c5d8c7a2a3b4c5b2b4c5e7c3b5c7c6g1f3d7d6f3d4c6d7\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2c7c5d4c5e8g8a2a3b4c5g1f3b7b6c1f4c8b7a1d1d7d5c4d5e6d5\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2c7c5d4c5e8g8c1f4b4c5e2e3b8c6g1f3d7d5a2a3d8e7f4g5f8d8\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2c7c5d4c5e8g8c1f4b4c5g1f3b8c6e2e3d7d5a1d1d8a5a2a3c5e7\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2c7c5d4c5e8g8c1f4b8a6f4d6f8e8a2a3d8a5a1c1b4c3c2c3a5c3\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2c7c5d4c5e8g8c1g5b8a6a2a3b4c5g1f3b7b6g2g3c8b7f1g2d8c8\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2c7c5d4c5e8g8g1f3b8a6a2a3b4c3c2c3a6c5e2e3a7a5b2b3d7d5\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2c7c5d4c5e8g8g1f3b8a6c1d2a6c5e2e3b7b6f1e2c8b7e1g1c5e4\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2d7d5a2a3b4c3c2c3b8c6e2e3e6e5d4e5f6e4c3d3e4c5d3c2d5c4\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2d7d5c4d5d8d5e2e3c7c5a2a3b4c3b2c3b8c6g1f3e8g8c3c4d5d6\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2d7d5c4d5d8d5e2e3c7c5a2a3b4c3b2c3b8d7f2f3c5d4c3d4d7b6\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2d7d5c4d5d8d5e2e3c7c5a2a3b4c3b2c3e8g8g1f3c5d4c3d4b7b6\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2d7d5c4d5d8d5e2e3c7c5c1d2b4c3b2c3e8g8g1f3b8c6c3c4d5d6\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2d7d5c4d5d8d5e2e3c7c5c1d2b4c3d2c3c5d4c3d4b8c6d4f6g7f6\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2d7d5c4d5d8d5e2e3c7c5c1d2b4c3d2c3c5d4c3d4b8c6d4f6g7f6\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2d7d5c4d5d8d5g1f3d5f5c2d1c7c5e2e3c5d4e3d4e8g8f1d3f5h5\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2d7d5c4d5e6d5a2a3b4c3b2c3e8g8c1g5c7c5e2e3b8d7f1d3d8a5\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2d7d5c4d5e6d5c1d2e8g8e2e3b8c6f1d3f8e8g1e2b4d6a2a3c8g4\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2d7d5c4d5e6d5c1g5h7h6g5f6d8f6a2a3b4c3c2c3c7c6e2e3e8g8\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2d7d5c4d5e6d5c1g5h7h6g5f6d8f6a2a3b4c3c2c3c7c6g1f3e8g8\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2d7d5c4d5e6d5c1g5h7h6g5f6d8f6a2a3b4c3c2c3e8g8e2e3c7c6\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2d7d5c4d5e6d5c1g5h7h6g5h4b8d7e2e3e8g8f1d3c7c5d4c5d7c5\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2d7d5c4d5e6d5c1g5h7h6g5h4c7c5d4c5b8c6e2e3g7g5h4g3d8a5\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2d7d5c4d5e6d5c1g5h7h6g5h4c7c5d4c5g7g5h4g3f6e4e2e3d8a5\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2d7d5c4d5e6d5c1g5h7h6g5h4c7c5d4c5g7g5h4g3f6e4e2e3d8a5\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2d7d5c4d5e6d5g1f3c7c5a2a3b4c3b2c3e8g8c1g5b8d7e2e3d8a5\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2e8g8a2a3b4c3c2c3b7b6c1g5c7c5d4c5b6c5e2e3b8c6g1h3h7h6\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2e8g8a2a3b4c3c2c3b7b6c1g5c7c5d4c5b6c5e2e3d7d6f1d3b8d7\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2e8g8a2a3b4c3c2c3b7b6c1g5c7c5d4c5b6c5e2e3d7d6f1d3b8d7\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2e8g8a2a3b4c3c2c3b7b6c1g5c7c5d4c5b6c5e2e3d7d6f1d3b8d7\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2e8g8a2a3b4c3c2c3b7b6c1g5c8a6e2e3d7d6f1d3b8d7b2b4c7c5\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2e8g8a2a3b4c3c2c3b7b6c1g5c8b7f2f3h7h6g5h4d7d5e2e3b8d7\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2e8g8a2a3b4c3c2c3b7b6c1g5c8b7f2f3h7h6g5h4d7d5e2e3b8d7\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2e8g8a2a3b4c3c2c3b7b6c1g5c8b7g1f3d7d6e2e3b8d7c3c2d8e8\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2e8g8a2a3b4c3c2c3b7b6c1g5h7h6g5h4c8b7e2e3d7d6f2f3b8d7\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2e8g8a2a3b4c3c2c3b7b6g1f3c8b7e2e3d7d6b2b3b8d7c1b2d8e7\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2e8g8a2a3b4c3c2c3b7b6g1f3c8b7e2e3d7d6f1e2b8d7e1g1f6e4\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2e8g8c1g5h7h6g5h4c7c5d4c5b8a6e2e3a6c5g1e2d7d5e1c1c8d7\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2e8g8g1f3c7c5d4c5b8a6a2a3b4c5b2b4c5e7c1b2b7b6e2e3c8b7\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2e8g8g1f3c7c5d4c5b8a6c1d2a6c5e2e3b7b6f1e2c8b7e1g1c5e4\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2e8g8g1f3c7c5d4c5b8a6g2g3a6c5f1g2c5e4c1d2e4d2f3d2d7d5\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3b7b6a2a3b4c3b2c3c8b7f2f3b8c6e3e4d7d6f1d3c6a5g1e2d8d7\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3b7b6f1d3c8b7g1f3e8g8e1g1c7c5c1d2c5d4e3d4d7d5c4d5f6d5\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3b7b6f1d3c8b7g1f3f6e4d1c2f7f5e1g1b4c3b2c3e8g8f3e1d7d6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3b7b6f1d3c8b7g1f3f6e4e1g1b4c3b2c3e4c3d1c2b7f3g2f3d8g5\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3b7b6g1e2c8a6a2a3b4e7e2f4d7d5c4d5a6f1e1f1e6d5g2g4c7c6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3b7b6g1e2c8a6a2a3b4e7e2g3d7d5c4d5a6f1g3f1e6d5f1g3d8d7\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3b7b6g1e2c8a6e2g3e8g8e3e4d7d6c1d2c7c5a2a3b4a5d4d5e6d5\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3b7b6g1e2c8a6e2g3e8g8f1d3c7c5e1g1c5d4e3d4d7d5c4d5a6d3\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3b7b6g1e2c8b7a2a3b4c3e2c3e8g8f1d3c7c5d4d5b6b5e1g1b5c4\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3b7b6g1e2e8g8a2a3b4c3e2c3d7d5c4d5e6d5b2b4c7c5b4c5b6c5\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5a2a3b4c3b2c3b7b6f1d3c8b7f2f3b8c6g1e2e8g8e1g1c6a5\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5a2a3b4c3b2c3b8c6f1d3e8g8g1e2b7b6e3e4f6e8c1e3d7d6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5f1d3b7b6g1f3c8b7e1g1e8g8c1d2d7d6d1c2b8d7a2a3b4c3\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5f1d3b7b6g1f3c8b7e1g1e8g8c3a4c5d4e3d4d8c7a2a3b4e7\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5f1d3b8c6g1e2c5d4e3d4d7d5c4d5f6d5e1g1b4d6c3e4d6e7\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5f1d3b8c6g1e2c5d4e3d4d7d5c4d5f6d5e1g1b4d6c3e4d6e7\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5f1d3b8c6g1e2c5d4e3d4d7d5c4d5f6d5e1g1e8g8d3b1b4e7\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5f1d3b8c6g1e2c5d4e3d4d7d5c4d5f6d5e1g1e8g8d3c2b4d6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5f1d3b8c6g1f3b4c3b2c3d7d6e1g1e6e5d1c2e8g8f3g5h7h6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5f1d3b8c6g1f3b4c3b2c3d7d6e1g1e8g8f3d2e6e5d2e4b7b6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5f1d3b8c6g1f3d7d5e1g1e8g8a2a3b4c3b2c3d5c4d3c4d8c7\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5f1d3b8c6g1f3d7d5e1g1e8g8a2a3b4c3b2c3d5c4d3c4d8c7\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5f1d3b8c6g1f3d7d5e1g1e8g8a2a3b4c3b2c3d5c4d3c4d8c7\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5f1d3b8c6g1f3e8g8e1g1d7d5a2a3b4c3b2c3d5c4d3c4d8c7\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5f1d3c5d4e3d4d7d5c4d5f6d5g1e2e8g8e1g1b8c6c3d5e6d5\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5f1d3d7d5g1f3b8c6e1g1e8g8a2a3c5d4e3d4d5c4d3c4b4e7\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5f1d3d7d5g1f3d5c4d3c4a7a6a2a3b4a5e1g1b7b5c4e2c5d4\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5f1d3d7d5g1f3e8g8e1g1b7b6c4d5e6d5c1d2c8g4a2a3b4c3\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5f1d3d7d5g1f3e8g8e1g1b7b6c4d5e6d5f3e5f8e8c1d2c8a6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5f1d3d7d5g1f3e8g8e1g1b8c6a2a3b4c3b2c3d5c4d3c4d8c7\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5f1d3d7d5g1f3e8g8e1g1b8c6a2a3b4c3b2c3d5c4d3c4d8c7\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5f1d3d7d5g1f3e8g8e1g1b8c6a2a3b4c3b2c3d5c4d3c4d8c7\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5f1d3d7d5g1f3e8g8e1g1b8c6a2a3b4c3b2c3d5c4d3c4d8c7\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5f1d3d7d5g1f3e8g8e1g1b8c6a2a3b4c3b2c3d5c4d3c4d8c7\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5f1d3d7d5g1f3e8g8e1g1c5d4e3d4d5c4d3c4b7b6c1g5c8b7\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5f1d3e8g8a2a3b4c3b2c3b7b6e3e4c8b7c1g5h7h6h2h4d7d6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5f1d3e8g8a2a3b4c3b2c3b7b6g1e2c8b7e1g1d7d6d1c2d6d5\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5f1d3e8g8a2a3b4c3b2c3b8c6g1e2b7b6e1g1c8a6e3e4f6e8\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5f1d3e8g8g1f3b7b6e1g1c8b7a2a3b4c3b2c3b7e4d3e2b8c6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5f1d3e8g8g1f3b7b6e1g1c8b7c1d2c5d4e3d4d7d5c4d5b4c3\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5f1d3e8g8g1f3d7d5e1g1b8c6a2a3b4c3b2c3b7b6c4d5e6d5\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5f1d3e8g8g1f3d7d5e1g1b8c6a2a3b4c3b2c3d5c4d3c4d8c7\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5f1d3e8g8g1f3d7d5e1g1b8c6a2a3b4c3b2c3d5c4d3c4d8c7\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5f1d3e8g8g1f3d7d5e1g1b8c6a2a3b4c3b2c3d5c4d3c4d8c7\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5f1d3e8g8g1f3d7d5e1g1b8d7a2a3d5c4d3c4c5d4e3d4b4e7\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5f1d3e8g8g1f3d7d5e1g1d5c4d3c4b7b6d1e2c8b7f1d1c5d4\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5g1e2c5d4e3d4d7d5c4c5f6e4c1d2e4d2d1d2b7b6a2a3b4c3\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5g1e2c5d4e3d4e8g8a2a3b4e7d4d5e6d5c4d5f8e8d5d6e7f8\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5g1e2c5d4e3d4e8g8a2a3b4e7e2f4d7d5c4d5f6d5c3d5e6d5\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5g1e2d7d5a2a3b4c3e2c3c5d4e3d4d5c4f1c4b8c6c1e3e8g8\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5g1f3d7d5a2a3b4c3b2c3e8g8c4d5e6d5f1d3b8c6e1g1c8g4\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5g1f3d7d5f1e2e8g8e1g1b8c6c4d5e6d5d4c5b4c5a2a3a7a6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5g1f3e8g8f1d3b7b6d4d5e6d5c4d5f6d5d3h7g8h7d1d5b4c3\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5g1f3e8g8f1d3d7d5e1g1b8c6a2a3b4c3b2c3d5c4d3c4d8c7\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5g1f3e8g8f1d3d7d5e1g1d5c4d3c4b8d7c1d2c5d4e3d4d7b6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3d7d5a2a3b4d6g1f3e8g8c4c5d6e7b2b4f6e4c1b2b8d7f1d3f7f5\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3d7d5a2a3b4e7g1f3e8g8b2b4b8d7c1b2c7c6f1d3d5c4d3c4e7d6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3d7d5a2a3b4e7g1f3e8g8f1d3c7c5e1g1b7b6d1e2b8c6d4c5b6c5\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3d7d5c1d2e8g8g1f3b8c6f1d3d5c4d3c4a7a6e1g1b7b5c4d3c8b7\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3d7d5f1d3e8g8g1f3c7c5e1g1b8d7a2a3b4a5d1c2c5d4e3d4d5c4\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3d7d5f1d3e8g8g1f3d5c4d3c4c7c5e1g1c5d4e3d4b8c6a2a3b4c3\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3d7d5g1f3e8g8f1d3c7c5e1g1b8c6a2a3b4c3b2c3d8c7d1c2c6a5\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3d7d5g1f3e8g8f1d3c7c5e1g1d5c4d3c4c8d7a2a3b4c3b2c3d7c6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8a2a3b4c3b2c3d7d6g1e2e6e5e2g3f8e8f2f3c7c5e3e4e5d4\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8a2a3b4c3b2c3f8e8g1e2e6e5e2g3d7d6f1e2b8d7e1g1c7c5\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3b7b6g1e2d7d5e1g1d5c4d3c4c8b7f2f3c7c5a2a3c5d4\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3c7c5a2a3b4c3b2c3b8c6g1e2b7b6e3e4f6e8e1g1c8a6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3c7c5d4d5b7b5d5e6f7e6c4b5c8b7g1f3d7d5e1g1b8d7\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3c7c5g1e2d7d5e1g1d5c4d3c4b8c6a2a3b4c3b2c3d8c7\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3c7c5g1f3b7b6e1g1c8b7c3a4c5d4a2a3b4e7e3d4d8c7\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3c7c5g1f3d7d5e1g1b7b6c4d5e6d5d4c5b6c5c3e2b8c6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3c7c5g1f3d7d5e1g1b8c6a2a3b4a5c4d5e6d5d4c5a5c3\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3c7c5g1f3d7d5e1g1b8c6a2a3b4c3b2c3d5c4d3c4d8c7\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3c7c5g1f3d7d5e1g1b8c6a2a3b4c3b2c3d8c7c4d5e6d5\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3c7c5g1f3d7d5e1g1b8c6a2a3b4c3b2c3d8c7c4d5e6d5\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3c7c5g1f3d7d5e1g1b8c6a2a3d5c4d3c4b4a5d1d3a7a6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3c7c5g1f3d7d5e1g1b8d7a2a3b4a5c4d5e6d5d1e2f8e8\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3c7c5g1f3d7d5e1g1d5c4d3c4b8c6a2a3b4a5c4a2a5b6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3c7c5g1f3d7d5e1g1d5c4d3c4b8c6a2a3b4a5c4a2a7a6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3c7c5g1f3d7d5e1g1d5c4d3c4b8c6a2a3b4a5c4a2a7a6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3c7c5g1f3d7d5e1g1d5c4d3c4b8c6a2a3b4a5c4d3c5d4\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3c7c5g1f3d7d5e1g1d5c4d3c4b8d7c4b3b7b6a2a3c5d4\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3c7c5g1f3d7d5e1g1d5c4d3c4c5d4e3d4b7b6d1e2c8b7\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3c7c5g1f3d7d5e1g1d5c4d3c4d8e7a2a3b4a5d1c2c8d7\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3d7d5a2a3b4c3b2c3d5c4d3c4c7c5g1e2d8c7c4d3b7b6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3d7d5a2a3d5c4d3c4b4d6d1c2b8d7g1f3a7a6c4a2c7c5\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3d7d5a2a3d5c4d3c4b4d6d1c2b8d7g1f3c7c5d4c5d6c5\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3d7d5g1e2d5c4d3c4e6e5e1g1e5d4e3d4b8c6h2h3c8f5\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3d7d5g1f3b7b6e1g1c7c5d1e2b8d7c4d5e6d5a2a3b4a5\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3d7d5g1f3b7b6e1g1c8b7a2a3b4c3b2c3d5c4d3c4c7c5\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3d7d5g1f3b7b6e1g1c8b7a2a3b4d6b2b4d5c4d3c4b8d7\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3d7d5g1f3b7b6e1g1c8b7a2a3b4d6d1e2c7c5d4c5b6c5\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3d7d5g1f3b7b6e1g1c8b7c1d2d5c4d3c4b8d7d1e2c7c5\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3d7d5g1f3b7b6e1g1c8b7c4d5e6d5a2a3b4d6b2b4a7a6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3d7d5g1f3b7b6e1g1c8b7c4d5e6d5a2a3b4d6b2b4a7a6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3d7d5g1f3b7b6e1g1c8b7c4d5e6d5c1d2b8d7d1c2c7c5\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3d7d5g1f3b7b6e1g1c8b7c4d5e6d5f3e5b4d6f2f4c7c5\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3d7d5g1f3b7b6e1g1c8b7d1e2b8d7a2a3b4c3b2c3c7c5\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3d7d5g1f3c7c5e1g1b7b6c4d5e6d5d4c5b6c5c3a4b8d7\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3d7d5g1f3c7c5e1g1b8c6a2a3b4c3b2c3b7b6c4d5e6d5\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3d7d5g1f3c7c5e1g1b8c6a2a3b4c3b2c3b7b6c4d5e6d5\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3d7d5g1f3c7c5e1g1b8c6a2a3b4c3b2c3b7b6c4d5e6d5\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3d7d5g1f3c7c5e1g1b8c6a2a3b4c3b2c3b7b6f3e5c8b7\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3d7d5g1f3c7c5e1g1b8c6a2a3b4c3b2c3d8c7c4d5e6d5\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3d7d5g1f3c7c5e1g1b8c6a2a3b4c3b2c3d8c7c4d5e6d5\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3d7d5g1f3c7c5e1g1b8c6a2a3b4c3b2c3d8c7c4d5e6d5\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3d7d5g1f3c7c5e1g1b8c6a2a3d5c4d3c4b4a5d1d3a7a6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3d7d5g1f3c7c5e1g1b8d7a2a3b4a5d1c2c5d4e3d4d5c4\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3d7d5g1f3c7c5e1g1b8d7c4d5e6d5a2a3b4c3b2c3f8e8\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3d7d5g1f3c7c5e1g1b8d7d1e2a7a6a2a3b4a5a1b1d5c4\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3d7d5g1f3c7c5e1g1b8d7d1e2a7a6a2a3c5d4e3d4d5c4\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3d7d5g1f3c7c5e1g1c5d4e3d4d5c4d3c4b7b6f1e1c8b7\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3d7d5g1f3c7c5e1g1d5c4d3c4b8c6a2a3b4a5d1d3a7a6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3d7d5g1f3c7c5e1g1d5c4d3c4b8d7a2a3c5d4e3d4b4c3\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3d7d5g1f3c7c5e1g1d5c4d3c4b8d7d1e2a7a6a2a3c5d4\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3d7d5g1f3d5c4d3c4c7c5e1g1b8c6a2a3b4a5d1d3a7a6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3d7d6g1e2e6e5e1g1b4c3e2c3f8e8b2b3e5e4d3c2c8g4\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3d7d6g1e2e6e5e1g1b8c6c3d5e5d4e3d4h7h6d5b4c6b4\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8g1e2d7d5a2a3b4e7c4d5e6d5b2b4b7b6e2f4c7c6f1d3e7d6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8g1e2d7d5a2a3b4e7c4d5e6d5b2b4b8d7e2g3f8e8f1d3c7c6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8g1e2d7d5a2a3b4e7c4d5e6d5e2g3c7c5d4c5e7c5b2b4d5d4\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8g1e2d7d5a2a3b4e7c4d5e6d5e2g3c7c5f1d3b8c6e1g1f8e8\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8g1e2d7d5a2a3b4e7c4d5e6d5e2g3c8e6f1d3b8d7e1g1c7c6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8g1e2d7d5a2a3b4e7c4d5e6d5e2g3f8e8b2b4c7c6f1d3b7b5\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8g1e2d7d5a2a3b4e7c4d5e6d5e2g3f8e8f1d3b8d7e1g1a7a6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8g1e2d7d5a2a3b4e7c4d5e6d5g2g3b8d7f1g2d7b6e1g1f8e8\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8g1e2d7d5a2a3b4e7c4d5e6d5g2g3b8d7f1g2d7b6e1g1f8e8\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8g1e2d7d5a2a3b4e7c4d5f6d5d1c2b8d7b2b4c7c6c1d2d5b6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8g1e2d7d5a2a3b4e7c4d5f6d5d1c2b8d7c1d2c7c5c3d5e6d5\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8g1e2d7d5a2a3b4e7c4d5f6d5d1c2b8d7e2g3c7c5f1d3d5f6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8g1e2d7d5a2a3b4e7e2g3c7c5d4c5e7c5b2b4c5e7c1b2d5c4\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8g1e2f8e8a2a3b4f8d4d5d7d6g2g3e6d5c4d5c7c5d5c6b7c6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8g1e2f8e8g2g3d7d5f1g2d5c4e1g1c7c6d1c2b8d7c3e4d7b6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8g1f3b7b6f1e2c8b7e1g1d7d5c4d5e6d5c1d2b4d6a1c1a7a6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8g1f3c7c5f1e2d7d5e1g1c5d4e3d4b8c6c1g5b4e7a1c1b7b6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8g1f3d7d5a2a3b4c3b2c3b7b6c4d5e6d5f1d3c7c5e1g1b8c6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8g1f3d7d5f1e2b7b6e1g1c8b7a2a3b4d6b2b4d5c4e2c4a7a5\r
+d2d4g8f6c2c4e7e6b1c3f8b4f2f3d7d5a2a3b4c3b2c3c7c5c4d5f6d5d4c5d8a5e2e4d5e7c1e3e8g8\r
+d2d4g8f6c2c4e7e6b1c3f8b4f2f3d7d5a2a3b4c3b2c3c7c5c4d5f6d5d4c5d8a5e2e4d5e7c1e3e8g8\r
+d2d4g8f6c2c4e7e6b1c3f8b4f2f3d7d5a2a3b4c3b2c3e8g8c4d5e6d5e2e3f6h5g1e2b7b6g2g3c8a6\r
+d2d4g8f6c2c4e7e6b1c3f8b4f2f3d7d5a2a3b4e7e2e4d5e4f3e4e6e5d4d5e7c5c1g5a7a5g1f3d8e7\r
+d2d4g8f6c2c4e7e6b1c3f8b4g1f3b7b6c1g5h7h6g5h4g7g5h4g3f6e4d1c2c8b7e2e3d7d6f1d3b4c3\r
+d2d4g8f6c2c4e7e6b1c3f8b4g1f3c7c5e2e3b8c6f1d3b4c3b2c3d7d6e3e4e6e5d4d5c6e7f3h4h7h6\r
+d2d4g8f6c2c4e7e6b1c3f8b4g1f3c7c5e2e3d7d5a2a3b4c3b2c3e8g8c1b2b8c6a1c1f8e8f1d3d5c4\r
+d2d4g8f6c2c4e7e6b1c3f8b4g1f3c7c5e2e3d7d5a2a3b4c3b2c3e8g8f1d3b8d7e1g1b7b6c4d5e6d5\r
+d2d4g8f6c2c4e7e6b1c3f8b4g1f3c7c5e2e3d7d5f1d3e8g8e1g1b8c6a2a3b4c3b2c3d5c4d3c4d8c7\r
+d2d4g8f6c2c4e7e6b1c3f8b4g1f3c7c5e2e3e8g8f1e2b7b6e1g1c8b7c3a4c5d4e3d4b4e7a2a3f6e4\r
+d2d4g8f6c2c4e7e6b1c3f8b4g1f3c7c5e2e3e8g8f1e2d7d5e1g1b8c6c4d5c5d4d5c6d4c3d1b3d8e7\r
+d2d4g8f6c2c4e7e6b1c3f8b4g1f3c7c5g2g3b7b6f1g2c8b7e1g1c5d4d1d4b8c6d4d3e8g8f1d1a8c8\r
+d2d4g8f6c2c4e7e6b1c3f8b4g1f3c7c5g2g3b7b6f1g2c8b7e1g1c5d4d1d4b8c6d4d3e8g8f1d1a8c8\r
+d2d4g8f6c2c4e7e6b1c3f8b4g1f3c7c5g2g3b8c6f1g2d7d5c4d5f6d5c1d2c5d4f3d4c6d4c3d5b4d2\r
+d2d4g8f6c2c4e7e6b1c3f8b4g1f3c7c5g2g3b8c6f1g2f6e4c1d2b4c3b2c3e8g8e1g1c6a5d4c5d8c7\r
+d2d4g8f6c2c4e7e6b1c3f8b4g1f3c7c5g2g3b8c6f1g2f6e4c1d2b4c3b2c3e8g8e1g1f7f5d2e3e4c3\r
+d2d4g8f6c2c4e7e6b1c3f8b4g1f3c7c5g2g3c5d4f3d4e8g8f1g2d7d5c4d5f6d5d1b3b8a6e1g1d5c3\r
+d2d4g8f6c2c4e7e6b1c3f8b4g1f3c7c5g2g3c5d4f3d4e8g8f1g2d7d5d1b3b4c3b2c3b8c6c4d5c6a5\r
+d2d4g8f6c2c4e7e6b1c3f8b4g1f3c7c5g2g3c5d4f3d4e8g8f1g2d7d5e1g1d5c4d1a4d8e7d4c2b4c5\r
+d2d4g8f6c2c4e7e6b1c3f8b4g1f3c7c5g2g3d7d5c4d5f6d5c1d2c5d4c3d5b4d2d1d2d8d5d2d4d5d4\r
+d2d4g8f6c2c4e7e6b1c3f8b4g1f3c7c5g2g3f6e4d1d3d8a5d3e4b4c3c1d2c3d2f3d2a5b6d4c5b6b2\r
+d2d4g8f6c2c4e7e6b1c3f8b4g1f3d7d6d1b3a7a5g2g3b8c6f1g2f6e4e1g1b4c3b2c3e8g8f3e1f7f5\r
+d2d4g8f6c2c4e7e6b1c3f8b4g1f3e8g8c1g5c7c5e2e3c5d4e3d4h7h6g5h4d7d5a1c1d5c4f1c4b8c6\r
+d2d4g8f6c2c4e7e6b1c3f8b4g1f3e8g8c1g5d7d6e2e3b8d7d1c2b7b6f1d3b4c3b2c3h7h6g5h4c8b7\r
+d2d4g8f6c2c4e7e6b1c3f8b4g1f3e8g8d1b3c7c5d4c5b8a6c1d2d8e7e2e3a6c5b3c2b7b6f1e2c8b7\r
+d2d4g8f6c2c4e7e6b1c3f8b4g1f3f6e4d1c2d7d5e2e3c7c5f1d3e4f6c4d5e6d5d4c5b4c5e1g1b8c6\r
+d2d4g8f6c2c4e7e6b1c3f8b4g1f3f6e4d1c2f7f5g2g3b8c6f1g2e8g8e1g1b4c3b2c3c6a5c4c5d7d6\r
+d2d4g8f6c2c4e7e6g1f3b7b6a2a3c7c5d4d5c8a6d1c2e6d5c4d5g7g6b1c3f8g7g2g3e8g8f1g2d7d6\r
+d2d4g8f6c2c4e7e6g1f3b7b6a2a3c7c5d4d5c8a6d1c2e6d5c4d5g7g6b1c3f8g7g2g3e8g8f1g2d7d6\r
+d2d4g8f6c2c4e7e6g1f3b7b6a2a3c8a6d1c2a6b7b1c3c7c5d4c5b6c5c1g5h7h6g5h4f8e7e2e3e8g8\r
+d2d4g8f6c2c4e7e6g1f3b7b6a2a3c8a6d1c2a6b7b1c3c7c5e2e3f8e7f1d3c5d4e3d4d8c8e1g1b7f3\r
+d2d4g8f6c2c4e7e6g1f3b7b6a2a3c8a6d1c2d7d5c4d5e6d5b1c3c7c6g2g3f8d6f1g2e8g8e1g1f8e8\r
+d2d4g8f6c2c4e7e6g1f3b7b6a2a3c8a6d1c2d7d5e2e3f8e7b2b4e8g8b1d2c7c5b4b5a6b7c1b2b8d7\r
+d2d4g8f6c2c4e7e6g1f3b7b6a2a3c8a6e2e3c7c5b1c3c5d4f3d4a6b7d4b5d7d6f1e2a7a6e2f3d8d7\r
+d2d4g8f6c2c4e7e6g1f3b7b6a2a3c8a6e2e3d7d5b1d2f8e7b2b4e8g8c1b2c7c5d4c5b6c5b4b5a6b7\r
+d2d4g8f6c2c4e7e6g1f3b7b6a2a3c8b7b1c3d7d5c4d5e6d5g2g3f8d6f1g2e8g8e1g1f8e8c1g5b8d7\r
+d2d4g8f6c2c4e7e6g1f3b7b6a2a3c8b7b1c3d7d5c4d5f6d5c1d2b8d7d1c2c7c5c3d5e6d5d4c5b6c5\r
+d2d4g8f6c2c4e7e6g1f3b7b6a2a3c8b7b1c3d7d5c4d5f6d5c1d2f8e7d1c2e8g8e2e4d5c3d2c3b8d7\r
+d2d4g8f6c2c4e7e6g1f3b7b6a2a3c8b7b1c3d7d5c4d5f6d5d1c2c7c5e2e4d5c3b2c3b8d7c1f4c5d4\r
+d2d4g8f6c2c4e7e6g1f3b7b6a2a3c8b7b1c3d7d5e2e3b8d7c4d5e6d5f1e2f8d6b2b4e8g8e1g1a7a6\r
+d2d4g8f6c2c4e7e6g1f3b7b6a2a3c8b7b1c3f8e7d4d5e6d5c4d5e8g8g2g3f8e8f1g2e7f8e1g1c7c6\r
+d2d4g8f6c2c4e7e6g1f3b7b6a2a3c8b7b1c3g7g6c1f4f8g7e2e3e8g8f1e2d7d6e1g1b8d7h2h3f6e4\r
+d2d4g8f6c2c4e7e6g1f3b7b6a2a3c8b7b1c3g7g6c1g5f8g7e2e3h7h6g5h4d7d6d4d5e8g8f1e2g6g5\r
+d2d4g8f6c2c4e7e6g1f3b7b6a2a3f8e7b1c3d7d5c4d5e6d5c1f4e8g8e2e3c7c5f3e5c8b7f1e2b8c6\r
+d2d4g8f6c2c4e7e6g1f3b7b6a2a3f8e7b1c3d7d5c4d5e6d5g2g3e8g8f1g2c8b7e1g1c7c5c1f4b8c6\r
+d2d4g8f6c2c4e7e6g1f3b7b6b1c3c8b7a2a3b7f3g2f3f8e7f3f4d7d5f4f5e6f5f1g2e8g8c4d5e7d6\r
+d2d4g8f6c2c4e7e6g1f3b7b6b1c3c8b7a2a3d7d5c4d5e6d5g2g3f8d6f1g2e8g8e1g1c7c6f3e5d8e7\r
+d2d4g8f6c2c4e7e6g1f3b7b6b1c3c8b7a2a3d7d5c4d5e6d5g2g3f8e7d1a4c7c6f1g2e8g8e1g1b8d7\r
+d2d4g8f6c2c4e7e6g1f3b7b6b1c3c8b7a2a3d7d5c4d5f6d5d1a4b8d7c3d5e6d5c1f4c7c6g2g3f8e7\r
+d2d4g8f6c2c4e7e6g1f3b7b6b1c3c8b7a2a3d7d5c4d5f6d5d1c2b8d7c3d5e6d5c1g5f7f6g5f4c7c5\r
+d2d4g8f6c2c4e7e6g1f3b7b6b1c3c8b7a2a3d7d5c4d5f6d5d1c2c7c5d4c5f8c5c1g5d8c8a1c1h7h6\r
+d2d4g8f6c2c4e7e6g1f3b7b6b1c3c8b7a2a3d7d5c4d5f6d5d1c2d5c3b2c3c7c5e2e4b8c6c1b2a8c8\r
+d2d4g8f6c2c4e7e6g1f3b7b6b1c3c8b7a2a3d7d5c4d5f6d5d1c2d5c3b2c3f8e7e2e3b8d7f1d3c7c5\r
+d2d4g8f6c2c4e7e6g1f3b7b6b1c3c8b7a2a3d7d5c4d5f6d5d1c2d5c3c2c3h7h6e2e3f8d6f1b5c7c6\r
+d2d4g8f6c2c4e7e6g1f3b7b6b1c3c8b7a2a3d7d5c4d5f6d5e2e3b8d7f1d3c7c5e3e4d5f6d4d5e6d5\r
+d2d4g8f6c2c4e7e6g1f3b7b6b1c3c8b7a2a3d7d5c4d5f6d5e2e3f8e7f1d3d5c3b2c3c7c5e1g1e8g8\r
+d2d4g8f6c2c4e7e6g1f3b7b6b1c3c8b7a2a3d7d5c4d5f6d5e2e3g7g6f1b5c7c6b5d3f8g7e3e4d5c3\r
+d2d4g8f6c2c4e7e6g1f3b7b6b1c3c8b7c1f4f8b4d1b3a7a5e2e3f6e4f1d3e4c3b2c3b4e7e3e4d7d6\r
+d2d4g8f6c2c4e7e6g1f3b7b6b1c3c8b7c1g5f8b4a1c1h7h6g5f6d8f6e2e3e8g8f1e2d7d6e1g1b4c3\r
+d2d4g8f6c2c4e7e6g1f3b7b6b1c3c8b7c1g5f8b4e2e3h7h6g5h4g7g5h4g3f6e4d1c2b4c3b2c3d7d6\r
+d2d4g8f6c2c4e7e6g1f3b7b6b1c3c8b7c1g5h7h6g5h4f8e7d1c2c7c5d4c5b6c5e2e3e8g8f1e2d7d6\r
+d2d4g8f6c2c4e7e6g1f3b7b6b1c3c8b7c1g5h7h6g5h4f8e7d1c2c7c5d4c5b6c5e2e3e8g8f1e2d7d6\r
+d2d4g8f6c2c4e7e6g1f3b7b6b1c3c8b7c1g5h7h6g5h4f8e7e2e3f6e4h4e7d8e7c3e4b7e4f1e2e7b4\r
+d2d4g8f6c2c4e7e6g1f3b7b6b1c3c8b7c1g5h7h6g5h4f8e7e2e3f6e4h4e7d8e7c3e4b7e4f1e2e8g8\r
+d2d4g8f6c2c4e7e6g1f3b7b6b1c3c8b7c1g5h7h6g5h4f8e7e2e3f6e4h4e7d8e7c3e4b7e4f1e2e8g8\r
+d2d4g8f6c2c4e7e6g1f3b7b6b1c3c8b7e2e3d7d5c4d5e6d5f1b5c7c6b5d3f8e7e1g1e8g8b2b3b8d7\r
+d2d4g8f6c2c4e7e6g1f3b7b6b1c3c8b7e2e3f8e7f1d3c7c5e1g1c5d4e3d4d7d5c4d5f6d5d3b5b7c6\r
+d2d4g8f6c2c4e7e6g1f3b7b6b1c3c8b7e2e3f8e7f1d3d7d5e1g1e8g8d1e2b8d7b2b3a7a6c1b2e7d6\r
+d2d4g8f6c2c4e7e6g1f3b7b6b1c3f8b4c1d2c8b7e2e3e8g8f1d3d7d5e1g1c7c5c4d5e6d5d4c5b6c5\r
+d2d4g8f6c2c4e7e6g1f3b7b6b1c3f8b4c1g5c8b7e2e3h7h6g5h4b4c3b2c3d7d6f3d2g7g5h4g3d8e7\r
+d2d4g8f6c2c4e7e6g1f3b7b6b1c3f8b4c1g5c8b7e2e3h7h6g5h4g7g5h4g3f6e4d1c2b4c3b2c3d7d6\r
+d2d4g8f6c2c4e7e6g1f3b7b6b1c3f8b4c1g5c8b7e2e3h7h6g5h4g7g5h4g3f6e4d1c2b4c3b2c3d7d6\r
+d2d4g8f6c2c4e7e6g1f3b7b6b1c3f8b4c1g5c8b7e2e3h7h6g5h4g7g5h4g3f6e4d1c2b4c3b2c3d7d6\r
+d2d4g8f6c2c4e7e6g1f3b7b6b1c3f8b4d1b3d8e7c1g5c8b7e2e3a7a5a2a3b4c3b3c3f6e4g5e7e4c3\r
+d2d4g8f6c2c4e7e6g1f3b7b6b1c3f8b4e2e3f6e4d1c2c8b7f1d3f7f5e1g1b4c3b2c3e8g8f3e1c7c5\r
+d2d4g8f6c2c4e7e6g1f3b7b6c1g5h7h6g5h4c8b7e2e3c7c5b1c3f8e7f1e2c5d4f3d4e8g8e1g1b8c6\r
+d2d4g8f6c2c4e7e6g1f3b7b6e2e3c8b7a2a3d7d5b2b4d5c4f1c4f8e7b1d2e8g8a1b1b8d7e1g1a8b8\r
+d2d4g8f6c2c4e7e6g1f3b7b6e2e3c8b7f1d3d7d5e1g1b8d7b2b3f8e7c1b2e8g8b1c3c7c5d1e2a8c8\r
+d2d4g8f6c2c4e7e6g1f3b7b6e2e3c8b7f1d3f8b4b1d2c7c5d4c5b4c5e1g1b8c6a2a3d8c7b2b3c6e5\r
+d2d4g8f6c2c4e7e6g1f3b7b6e2e3c8b7f1d3f8b4b1d2e8g8a2a3b4d2d1d2c7c5b2b4d7d6c1b2b8d7\r
+d2d4g8f6c2c4e7e6g1f3b7b6e2e3c8b7f1d3f8e7b1c3d7d5d1a4c7c6c4d5e6d5e1g1e8g8a4c2c6c5\r
+d2d4g8f6c2c4e7e6g1f3b7b6e2e3c8b7f1d3f8e7b1c3d7d5e1g1e8g8d1e2c7c5d4c5b6c5f1d1d8b6\r
+d2d4g8f6c2c4e7e6g1f3b7b6e2e3c8b7f1d3f8e7e1g1e8g8b1c3d7d5d1e2b8d7b2b3a7a6c1b2e7d6\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b1d2a6b7f1g2c7c5e2e4c5d4e1g1d7d6f3d4b8d7f1e1e6e5\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b1d2a6b7f1g2f8e7e1g1e8g8d1c2b8a6a2a3c7c5b2b3d7d5\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b1d2a6b7f1g2f8e7e1g1e8g8d1c2d7d5c4d5e6d5f3e5c7c5\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b1d2a6b7f1g2f8e7e2e4f6e4f3e5e7b4d1e2d7d5c4d5d8d5\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b1d2c7c5f1g2b8c6d4c5f8c5e1g1e8g8a2a3a6b7b2b4c5e7\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b1d2c7c6f1g2d7d5e1g1f8e7f3e5e8g8b2b3a6b7c1b2b8a6\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b1d2f8b4d1c2a6b7f1g2b7e4c2b3b4d2c1d2e8g8e1g1d7d6\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b1d2f8b4d1c2a6b7f1g2b7e4c2d1b4d2c1d2e8g8e1g1d7d6\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b2b3a6b7f1g2f8b4c1d2a7a5e1g1e8g8b1c3f6e4c3e4b7e4\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b2b3d7d5f1g2d5c4f3e5f8b4e1f1f6d7e5c4c7c6c1b2b6b5\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b2b3d7d5f1g2d5c4f3e5f8b4e1f1f6d7e5c4c7c6c1b2e8g8\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b2b3f8b4c1d2b4d2d1d2d7d5c4d5e6d5d2e3d8e7e3e7e8e7\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b2b3f8b4c1d2b4e7b1c3d7d5c4d5f6d5c3d5e6d5f1g2b8d7\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b2b3f8b4c1d2b4e7b1c3d7d5c4d5f6d5c3d5e6d5f1g2e8g8\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b2b3f8b4c1d2b4e7b1c3d7d5c4d5f6d5f1g2e8g8c3d5e6d5\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b2b3f8b4c1d2b4e7b1c3e8g8e2e4d7d5c4d5a6f1e1f1e6d5\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b2b3f8b4c1d2b4e7b1c3e8g8e2e4d7d5c4d5a6f1e1f1e6d5\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b2b3f8b4c1d2b4e7b1c3e8g8f1g2c7c6e2e4d7d5d1e2b8d7\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b2b3f8b4c1d2b4e7f1g2a6b7b1c3d7d5c4d5e6d5e1g1e8g8\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b2b3f8b4c1d2b4e7f1g2a6b7b1c3e8g8e1g1b8a6f1e1c7c5\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b2b3f8b4c1d2b4e7f1g2c7c6d2c3d7d5b1d2a6b7f3e5e8g8\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b2b3f8b4c1d2b4e7f1g2c7c6d2c3d7d5b1d2b8d7e1g1e8g8\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b2b3f8b4c1d2b4e7f1g2c7c6d2c3d7d5f3e5a6b7b1d2b8d7\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b2b3f8b4c1d2b4e7f1g2c7c6d2c3d7d5f3e5e8g8e1g1a6b7\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b2b3f8b4c1d2b4e7f1g2c7c6d2c3d7d5f3e5f6d7e5d7b8d7\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b2b3f8b4c1d2b4e7f1g2c7c6d2c3d7d5f3e5f6d7e5d7b8d7\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b2b3f8b4c1d2b4e7f1g2c7c6d2c3d7d5f3e5f6d7e5d7b8d7\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b2b3f8b4c1d2b4e7f1g2c7c6d2c3d7d5f3e5f6d7e5d7b8d7\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b2b3f8b4c1d2b4e7f1g2c7c6d2c3d7d5f3e5f6d7e5d7b8d7\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b2b3f8b4c1d2b4e7f1g2c7c6d2c3d7d5f3e5f6e4e1g1e4c3\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b2b3f8b4c1d2b4e7f1g2c7c6d2c3e8g8b1d2d7d5f3e5a6b7\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b2b3f8b4c1d2b4e7f1g2c7c6e1g1d7d5f3e5f6d7e5d7b8d7\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b2b3f8b4c1d2b4e7f1g2d7d5f3e5a6b7e1g1b8d7b1c3c7c5\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b2b3f8b4c1d2b4e7f1g2d7d5f3e5c7c6d2c3f6e4e1g1e4c3\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b2b3f8b4c1d2b4e7f1g2d7d5f3e5e8g8e1g1a6b7b1c3b8d7\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b2b3f8b4c1d2b4e7f1g2e8g8e1g1d7d5c4d5f6d5b1c3b8d7\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b2b3f8b4c1d2b4e7f1g2e8g8e1g1d7d5f3e5c7c6d2c3f6d7\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b2b3f8b4c1d2b4e7f1g2e8g8e1g1d7d5f3e5c7c6d2c3f6d7\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6d1a4f8e7b1c3e8g8f1g2a6b7a4c2d7d5c4d5e6d5e1g1b8a6\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6d1a4f8e7f1g2e8g8b1c3c7c6f3e5d8e8e1g1d7d5f1e1b6b5\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6d1b3b8c6b1d2f8e7f1g2e8g8e1g1d7d5b3a4a6b7f1d1d8d7\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6d1b3d7d5c4d5e6d5b1c3f8e7f1g2e8g8f3e5a6b7e1g1c7c6\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8b7f1g2f8b4c1d2a7a5e1g1e8g8d2g5b4e7d1c2h7h6g5f6e7f6\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8b7f1g2f8b4c1d2b4d2d1d2d7d6e1g1e8g8b1c3f6e4c3e4b7e4\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8b7f1g2f8b4c1d2b4e7b1c3f6e4e1g1e8g8d4d5e4d2d1d2e7f6\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8b7f1g2f8e7b1c3f6e4c1d2d7d6d4d5e4d2d1d2e6e5h2h4b8d7\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8b7f1g2f8e7b1c3f6e4c1d2e7f6e1g1e8g8d1c2e4d2c2d2d7d6\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8b7f1g2f8e7b1c3f6e4c1d2e8g8d4d5e4c3d2c3e7f6a1c1c7c6\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8b7f1g2f8e7b1c3f6e4c1d2f7f5e1g1e8g8d1c2e4c3d2c3b7e4\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8b7f1g2f8e7e1g1e8g8b1c3f6e4c3e4b7e4d4d5e7f6f3e1e4g2\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8b7f1g2f8e7e1g1e8g8b1c3f6e4c3e4b7e4f3e1e4g2e1g2d7d5\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8b7f1g2f8e7e1g1e8g8b1c3f6e4d1c2e4c3c2c3b7e4b2b3c7c5\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8b7f1g2f8e7e1g1e8g8b1c3f6e4d1c2e4c3c2c3c7c5c1e3e7f6\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8b7f1g2f8e7e1g1e8g8b1c3f6e4d1c2e4c3c2c3c7c5f1d1d7d6\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8b7f1g2f8e7e1g1e8g8b1c3f6e4d1c2e4c3c2c3c7c5f1d1e7f6\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8b7f1g2f8e7e1g1e8g8b1c3f6e4d1c2e4c3c2c3d7d6f1d1b8d7\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8b7f1g2f8e7e1g1e8g8b1c3f6e4d1c2e4c3c2c3f7f5b2b3e7f6\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8b7f1g2f8e7e1g1e8g8b1c3f6e4d1c2e4c3c2c3f7f5b2b3e7f6\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8b7f1g2f8e7e1g1e8g8b1c3f6e4d1c2e4c3c2c3f7f5b2b3e7f6\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8b7f1g2f8e7e1g1e8g8b2b3d7d5f3e5c7c5d4c5b6c5c4d5e6d5\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8b7f1g2f8e7e1g1e8g8d4d5e6d5f3h4c7c6c4d5f6d5h4f5d5c7\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3f8b4c1d2b4d2d1d2c8a6b1a3c7c5f1g2b8c6e1g1e8g8f1d1a8c8\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3f8b4c1d2b4d2d1d2c8a6d2c2c7c5f1g2b8c6d4c5b6c5e1g1e8g8\r
+d2d4g8f6c2c4e7e6g1f3c7c5b1c3c5d4f3d4f8b4d1b3b8a6e2e3f6e4f1e2d8a5e1g1a6c5b3c2b4c3\r
+d2d4g8f6c2c4e7e6g1f3c7c5d4d5d7d6b1c3g7g6e2e4f8g7h2h3e8g8f1d3e6d5c4d5a7a6a2a4f6h5\r
+d2d4g8f6c2c4e7e6g1f3c7c5d4d5e6d5c4d5d7d6b1c3g7g6e2e4f8g7f1e2e8g8e1g1f8e8f3d2b8d7\r
+d2d4g8f6c2c4e7e6g1f3c7c5d4d5e6d5c4d5d7d6b1c3g7g6f3d2b8d7e2e4f8g7f1e2e8g8e1g1a7a6\r
+d2d4g8f6c2c4e7e6g1f3c7c5d4d5e6d5c4d5d7d6b1c3g7g6f3d2b8d7e2e4f8g7f1e2e8g8e1g1f8e8\r
+d2d4g8f6c2c4e7e6g1f3c7c5d4d5e6d5c4d5g7g6b1c3f8g7c1g5e8g8e2e3f8e8f3d2d7d6f1e2a7a6\r
+d2d4g8f6c2c4e7e6g1f3c7c5d4d5e6d5c4d5g7g6b1c3f8g7e2e4e8g8f1e2f8e8f3d2d7d6e1g1b8d7\r
+d2d4g8f6c2c4e7e6g1f3c7c5e2e3d7d5c4d5e6d5b1c3b8c6f1e2a7a6e1g1f8d6d4c5d6c5b2b3e8g8\r
+d2d4g8f6c2c4e7e6g1f3c7c5g2g3c5d4f3d4d8a5b1c3f8b4d1d3f6e4d4b3a5f5d3e3e4c3b2c3b4e7\r
+d2d4g8f6c2c4e7e6g1f3c7c5g2g3c5d4f3d4f8b4c1d2d8b6d2b4b6b4b1c3b4b2d4b5b2b4b5c7e8d8\r
+d2d4g8f6c2c4e7e6g1f3c7c6b1c3d7d5e2e3b8d7f1d3d5c4d3c4b7b5c4d3a7a6e3e4c6c5e4e5c5d4\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3b8d7c1g5h7h6g5h4d5c4e2e4f8e7d1e2d7b6h4g3e8g8e1c1c8d7\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3b8d7d1c2f8e7c4d5e6d5c1f4c7c6h2h3d7f8e2e3f8g6f4h2e8g8\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3c7c5c4d5c5d4d1d4e6d5c1g5f8e7e2e3b8c6d4d2e8g8f1e2c8e6\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3c7c5c4d5f6d5e2e3b8c6f1c4d5c3b2c3f8e7e1g1e8g8e3e4b7b6\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3c7c5c4d5f6d5e2e3b8c6f1d3c5d4e3d4g7g6c1g5d8a5e1g1f8g7\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3c7c5c4d5f6d5e2e3b8c6f1d3d5c3b2c3f8e7d1c2g7g6h2h4h7h5\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3c7c5c4d5f6d5e2e4d5c3b2c3c5d4c3d4b8c6f1c4b7b5c4d3f8b4\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3c7c5c4d5f6d5e2e4d5c3b2c3c5d4c3d4b8c6f1c4b7b5c4e2f8b4\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3c7c5c4d5f6d5g2g3c5d4c3d5d8d5d1d4d5b5e2e4b5b4d4b4f8b4\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3c7c5e2e3b8c6a2a3f6e4d1c2e4c3b2c3f8e7c1b2e8g8f1d3h7h6\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3c7c6c1g5b8d7d1b3f8e7e2e3e8g8f1e2f6e4g5e7d8e7c3e4d5e4\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3c7c6c1g5b8d7e2e3d8a5f3d2f8b4d1c2d5c4g5f6d7f6d2c4b4c3\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3c7c6e2e3b8d7d1c2f8d6b2b3e8g8f1e2e6e5c4d5f6d5c3d5c6d5\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3c7c6e2e3b8d7d1c2f8e7b2b3e8g8f1d3c6c5c4d5e6d5e1g1b7b6\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3c7c6e2e3b8d7f1d3d5c4d3c4b7b5c4b3f8e7e1g1e8g8f1e1c8b7\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3d5c4d1a4c7c6a4c4b7b5c4d3b8d7c1g5c8b7e2e3a7a6f1e2c6c5\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3d5c4e2e4f8b4c1g5c7c5f1c4c5d4f3d4b4c3b2c3d8a5c4b5b8d7\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3d5c4e2e4f8b4c1g5c7c5f1c4c5d4f3d4b4c3b2c3d8a5d4b5c8d7\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3d5c4e2e4f8b4c1g5c7c5f1c4c5d4f3d4b4c3b2c3d8a5d4b5f6e4\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3d5c4e2e4f8b4c1g5c7c5f1c4c5d4f3d4b4c3b2c3d8a5d4b5f6e4\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3f8b4c4d5e6d5d1a4b8c6c1g5h7h6g5f6d8f6e2e3e8g8f1e2c8e6\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3f8b4e2e3e8g8f1d3c7c5e1g1b8c6a2a3b4a5c3e2d5c4d3c4a5b6\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3f8e7c1f4e8g8e2e3b7b6c4d5e6d5f1d3c7c5e1g1c8b7a1c1b8d7\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3f8e7c1f4e8g8e2e3c7c5d4c5b8c6d1c2e7c5a2a3d8a5e1c1c5e7\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3f8e7c1f4e8g8e2e3c7c5d4c5e7c5a1c1b8c6c4d5e6d5f1e2d5d4\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3f8e7c1f4e8g8e2e3c7c5d4c5e7c5a2a3b8c6b2b4c5e7c4d5f6d5\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3f8e7c1f4e8g8e2e3c7c5d4c5e7c5d1c2b8c6a1d1d8a5a2a3c5e7\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3f8e7c1g5e8g8e2e3b8d7a1c1a7a6a2a3c7c6f1d3h7h6g5h4d5c4\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3f8e7c1g5e8g8e2e3b8d7a1c1a7a6c4d5e6d5f1d3c7c6d1c2f8e8\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3f8e7c1g5e8g8e2e3h7h6g5f6e7f6c4d5e6d5d1d2c8e6g2g3c7c5\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3f8e7c1g5e8g8e2e3h7h6g5h4f6e4h4e7d8e7a1c1c7c6f1d3e4c3\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3f8e7c1g5e8g8e2e3h7h6g5h4f6e4h4e7d8e7c4d5e4c3b2c3e6d5\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3f8e7c1g5e8g8e2e3h7h6g5h4f6e4h4e7d8e7d1c2e4c3c2c3d5c4\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3f8e7c1g5h7h6g5f6e7f6d1b3c7c6e1c1d5c4b3c4b7b5c4b3a7a5\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3f8e7c1g5h7h6g5f6e7f6d1b3c7c6e2e3b8d7a1d1e8g8f1d3b7b6\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3f8e7c1g5h7h6g5f6e7f6e2e3e8g8a1c1c7c6f1d3b8d7e1g1d5c4\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3f8e7c1g5h7h6g5h4e8g8a1c1d5c4e2e3c7c5f1c4c5d4f3d4c8d7\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3f8e7c1g5h7h6g5h4e8g8e2e3b7b6a1c1c8b7h4f6e7f6c4d5e6d5\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3f8e7c1g5h7h6g5h4e8g8e2e3b7b6f1e2b8d7e1g1c8b7a1c1c7c5\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3f8e7c1g5h7h6g5h4e8g8e2e3b7b6f1e2c8b7a1c1d5c4e2c4b8d7\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3f8e7c1g5h7h6g5h4e8g8e2e3b7b6f1e2c8b7a1c1d5c4e2c4b8d7\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3f8e7c1g5h7h6g5h4e8g8e2e3b7b6f1e2c8b7h4f6e7f6c4d5e6d5\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3f8e7c1g5h7h6g5h4e8g8e2e3b7b6f1e2c8b7h4f6e7f6c4d5e6d5\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3f8e7c1g5h7h6g5h4e8g8e2e3b7b6f1e2c8b7h4f6e7f6c4d5e6d5\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3f8e7c1g5h7h6g5h4e8g8e2e3b7b6f1e2c8b7h4f6e7f6c4d5e6d5\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3f8e7c1g5h7h6g5h4e8g8e2e3b7b6f1e2c8b7h4f6e7f6c4d5e6d5\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3f8e7c1g5h7h6g5h4e8g8e2e3b7b6f1e2c8b7h4f6e7f6c4d5e6d5\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3f8e7c1g5h7h6g5h4e8g8e2e3b7b6f1e2c8b7h4f6e7f6c4d5e6d5\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3f8e7c4d5e6d5c1f4c7c6d1c2g7g6e2e3c8f5f1d3f5d3c2d3b8d7\r
+d2d4g8f6c2c4e7e6g1f3d7d5c1g5b8d7e2e3f8e7b1c3e8g8d1c2c7c5c4d5c5d4f3d4f6d5g5e7d8e7\r
+d2d4g8f6c2c4e7e6g1f3d7d5g2g3d5c4d1a4b8d7f1g2a7a6a4c4b7b5c4c6a8b8c1g5c8b7c6c2c7c5\r
+d2d4g8f6c2c4e7e6g1f3d7d5g2g3d5c4f1g2b8c6e1g1a8b8a2a4a7a6a4a5b7b5a5b6c7b6c1f4f8d6\r
+d2d4g8f6c2c4e7e6g1f3d7d5g2g3d5c4f1g2c7c5e1g1b8c6d1a4c5d4f3d4d8d4g2c6c8d7f1d1d4d1\r
+d2d4g8f6c2c4e7e6g1f3f8b4b1c3c7c5e2e3e8g8f1e2b7b6e1g1c8b7d1b3c5d4b3b4b8c6b4a3d4c3\r
+d2d4g8f6c2c4e7e6g1f3f8b4b1d2d7d5d1a4b8c6a2a3b4d2c1d2f6e4a4c2a7a5e2e3e8g8f1d3f7f5\r
+d2d4g8f6c2c4e7e6g1f3f8b4b1d2e8g8a2a3b4e7e2e4d7d5e4e5f6d7f1d3c7c5c4d5e6d5e1g1b8c6\r
+d2d4g8f6c2c4e7e6g1f3f8b4c1d2a7a5b1c3e8g8e2e3d7d6d1c2b8d7a2a3b4c3d2c3d8e7f1e2a5a4\r
+d2d4g8f6c2c4e7e6g1f3f8b4c1d2a7a5b1c3e8g8e2e3d7d6d1c2b8d7f1d3e6e5e1g1f8e8e3e4e5d4\r
+d2d4g8f6c2c4e7e6g1f3f8b4c1d2a7a5g2g3d7d5d1c2b8c6a2a3b4e7f1g2d5c4c2c4d8d5c4d3e8g8\r
+d2d4g8f6c2c4e7e6g1f3f8b4c1d2b4d2d1d2e8g8g2g3b7b6f1g2c8b7b1c3f6e4c3e4b7e4e1g1d7d6\r
+d2d4g8f6c2c4e7e6g1f3f8b4c1d2c7c5d2b4c5b4a2a3b4a3a1a3d7d6e2e3e8g8f1e2b7b6e1g1a7a5\r
+d2d4g8f6c2c4e7e6g1f3f8b4c1d2d8e7b1c3b4c3d2c3f6e4d1c2e4c3c2c3d7d6a1c1e8g8c4c5b8d7\r
+d2d4g8f6c2c4e7e6g1f3f8b4c1d2d8e7g2g3b8c6b1c3d7d5c4d5e6d5f1g2e8g8e1g1a7a5d1c2c8g4\r
+d2d4g8f6c2c4e7e6g1f3f8b4c1d2d8e7g2g3b8c6b1c3e8g8f1g2d7d6e1g1b4c3d2c3e6e5d1c2a7a5\r
+d2d4g8f6c2c4e7e6g2g3c7c5d4d5e6d5c4d5b7b5f1g2d7d6a2a3a7a5b1c3d8b6g1f3f8e7e1g1e8g8\r
+d2d4g8f6c2c4e7e6g2g3c7c5d4d5e6d5c4d5b7b5f1g2d7d6a2a3a7a5b1c3d8b6g1f3f8e7e1g1e8g8\r
+d2d4g8f6c2c4e7e6g2g3c7c5d4d5e6d5c4d5b7b5f1g2d7d6b2b4b8a6b4c5a6c5g1f3g7g6e1g1f8g7\r
+d2d4g8f6c2c4e7e6g2g3c7c5d4d5e6d5c4d5d7d6b1c3g7g6g1f3f8g7f1g2e8g8e1g1a7a6a2a4b8d7\r
+d2d4g8f6c2c4e7e6g2g3c7c5d4d5e6d5c4d5f8d6b1c3d6e5d5d6d8b6g1f3e5d6c1g5d6e7f1h3e8g8\r
+d2d4g8f6c2c4e7e6g2g3c7c5g1f3c5d4f3d4d7d5f1g2e6e5d4f3d5d4e1g1b8c6e2e3f8c5e3d4c5d4\r
+d2d4g8f6c2c4e7e6g2g3d7d5f1g2b8c6b1c3f8b4a2a3b4c3b2c3e8g8c1g5d5c4e2e4h7h6g5f6d8f6\r
+d2d4g8f6c2c4e7e6g2g3d7d5f1g2c7c6d1a4b8d7b1d2d5c4a4c4e6e5g1f3d7b6c4d3e5d4d3d4d8d4\r
+d2d4g8f6c2c4e7e6g2g3d7d5f1g2d5c4d1a4b8d7g1f3c7c5b1c3a7a6e1g1f8e7d4c5e7c5a4c4b7b5\r
+d2d4g8f6c2c4e7e6g2g3d7d5f1g2d5c4d1a4c8d7a4c4d7c6g1f3b8d7b1c3d7b6c4d3f8b4e1g1e8g8\r
+d2d4g8f6c2c4e7e6g2g3d7d5f1g2d5c4d1a4c8d7a4c4d7c6g1f3c6d5c4a4d8d7a4d7b8d7e1g1c7c5\r
+d2d4g8f6c2c4e7e6g2g3d7d5f1g2d5c4g1f3b8d7e1g1a8b8a2a4b7b6f3d2e6e5d2c4e5d4d1d4f8c5\r
+d2d4g8f6c2c4e7e6g2g3d7d5f1g2d5c4g1f3c7c5e1g1b8c6d1a4c8d7a4c4b7b5c4d3a8c8d4c5f8c5\r
+d2d4g8f6c2c4e7e6g2g3d7d5f1g2d5c4g1f3c7c5e1g1b8c6d1a4c8d7a4c4c5d4f3d4a8c8b1c3d8a5\r
+d2d4g8f6c2c4e7e6g2g3d7d5f1g2d5c4g1f3c7c5e1g1b8c6d4c5d8d1f1d1f8c5b1d2e8e7d2c4f6g4\r
+d2d4g8f6c2c4e7e6g2g3d7d5f1g2d5c4g1f3c7c5e1g1b8c6f3e5c8d7b1a3c5d4a3c4f8c5d1b3e8g8\r
+d2d4g8f6c2c4e7e6g2g3d7d5f1g2d5c4g1f3c7c5e1g1b8d7b1a3d7b6a3c4b6c4d1a4c8d7a4c4b7b5\r
+d2d4g8f6c2c4e7e6g2g3d7d5f1g2d5c4g1f3c8d7d1c2c7c5e1g1d7c6c2c4b8d7c1g5a8c8g5f6d7f6\r
+d2d4g8f6c2c4e7e6g2g3d7d5f1g2d5c4g1f3c8d7d1c2c7c5f3e5b8c6e5c6d7c6g2c6b7c6d4c5f8c5\r
+d2d4g8f6c2c4e7e6g2g3d7d5f1g2d5c4g1f3f8b4c1d2b4e7d1c2c8d7e1g1d7c6c2c4c6d5c4c2b8c6\r
+d2d4g8f6c2c4e7e6g2g3d7d5f1g2f8e7g1f3e8g8e1g1c7c6b2b3b8d7c1b2b7b6b1d2c8b7a1c1a8c8\r
+d2d4g8f6c2c4e7e6g2g3d7d5f1g2f8e7g1f3e8g8e1g1d5c4d1c2a7a6a2a4c8d7c2c4d7c6c1g5a6a5\r
+d2d4g8f6c2c4e7e6g2g3d7d5f1g2f8e7g1f3e8g8e1g1d5c4d1c2a7a6c2c4b7b5c4c2c8b7c1d2b7e4\r
+d2d4g8f6c2c4e7e6g2g3d7d5f1g2f8e7g1f3e8g8e1g1d5c4d1c2a7a6c2c4b7b5c4c2c8b7c1g5b8d7\r
+d2d4g8f6c2c4e7e6g2g3d7d5g1f3c7c6f1g2b8d7d1c2f8d6b1d2e8g8e1g1f8e8f1e1e6e5c4d5c6d5\r
+d2d4g8f6c2c4e7e6g2g3d7d5g1f3d5c4d1a4b8d7a4c4c7c5f1g2d7b6c4d3c5d4e1g1f8e7f3d4e8g8\r
+d2d4g8f6c2c4e7e6g2g3d7d5g1f3f8e7f1g2e8g8e1g1d5c4d1c2a7a6a2a4c8d7f1d1d7c6b1c3e7b4\r
+d2d4g8f6c2c4e7e6g2g3f8b4b1d2f6e4g1f3f7f5f1g2e8g8e1g1b8c6d4d5e4d2c1d2b4d2d1d2c6e7\r
+d2d4g8f6c2c4e7e6g2g3f8b4c1d2b4e7f1g2d7d5c4d5e6d5b1c3e8g8e2e3c7c6g1e2b8a6e1g1a6c7\r
+d2d4g8f6c2c4e7e6g2g3f8b4c1d2b4e7f1g2d7d5g1f3e8g8e1g1c7c6d1b3b8d7d2g5b7b6f1e1c8b7\r
+d2d4g8f6c2c4e7e6g2g3f8b4c1d2b4e7f1g2d7d5g1f3e8g8e1g1c7c6d1c2b7b6d2f4c8b7b1d2b8d7\r
+d2d4g8f6c2c4e7e6g2g3f8b4c1d2b4e7f1g2d7d5g1f3e8g8e1g1c7c6d1c2b7b6d2g5b8d7b1d2c8b7\r
+d2d4g8f6c2c4e7e6g2g3f8b4c1d2b4e7f1g2d7d5g1f3e8g8e1g1c7c6d1c2b7b6f3e5c8b7c4d5c6d5\r
+d2d4g8f6c2c4e7e6g2g3f8b4c1d2b4e7g1f3d7d5f1g2e8g8e1g1c7c6d1b3b7b6b1c3c8b7a1c1b8d7\r
+d2d4g8f6c2c4g7g6b1c3d7d5c1f4e7e6e2e3f8g7g1f3e8g8d1b3c7c6f1e2f8e8e1g1b8d7f1d1d5c4\r
+d2d4g8f6c2c4g7g6b1c3d7d5c1f4f6h5f4e5f7f6e5g3h5g3h2g3c7c6e2e3f8g7f1d3e8g8h1h7f6f5\r
+d2d4g8f6c2c4g7g6b1c3d7d5c1f4f8g7e2e3c7c5d4c5d8a5a1c1d5c4f1c4e8g8g1f3a5c5c4b3b8c6\r
+d2d4g8f6c2c4g7g6b1c3d7d5c1f4f8g7e2e3c7c5d4c5d8a5a1c1d5c4f1c4e8g8g1f3a5c5c4b3b8c6\r
+d2d4g8f6c2c4g7g6b1c3d7d5c1f4f8g7e2e3c7c5d4c5d8a5a1c1d5c4f1c4e8g8g1f3b8c6e1g1a5c5\r
+d2d4g8f6c2c4g7g6b1c3d7d5c1f4f8g7e2e3c7c5d4c5d8a5a1c1f6e4c4d5e4c3d1d2a5a2b2c3a2a5\r
+d2d4g8f6c2c4g7g6b1c3d7d5c1f4f8g7e2e3c7c5d4c5d8a5a1c1f6e4c4d5e4c3d1d2a5a2b2c3a2d2\r
+d2d4g8f6c2c4g7g6b1c3d7d5c1f4f8g7e2e3c7c6a1c1e8g8g1f3c8g4h2h3g4f3d1f3d8a5f1d3b8d7\r
+d2d4g8f6c2c4g7g6b1c3d7d5c1f4f8g7e2e3e8g8c4d5f6d5c3d5d8d5f4c7b8a6f1a6d5g2d1f3g2f3\r
+d2d4g8f6c2c4g7g6b1c3d7d5c1f4f8g7e2e3e8g8d1b3c7c5c4d5c5d4e3d4e7e6d5e6b8c6e6f7g8h8\r
+d2d4g8f6c2c4g7g6b1c3d7d5c1f4f8g7g1f3e8g8e2e3c7c5d4c5f6e4f4e5g7e5f3e5e4c3b2c3d8a5\r
+d2d4g8f6c2c4g7g6b1c3d7d5c1g5f6e4g5f4c7c6e2e3f8g7f1d3e4c3b2c3d8a5g1e2d5c4d3c4b8d7\r
+d2d4g8f6c2c4g7g6b1c3d7d5c1g5f6e4g5h4e4c3b2c3d5c4e2e3c8e6a1b1b7b6f1e2f8h6g1f3c7c6\r
+d2d4g8f6c2c4g7g6b1c3d7d5c4d5f6d5e2e4d5b6h2h3f8g7g1f3e8g8f1e2a7a5e1g1a5a4a2a3f7f5\r
+d2d4g8f6c2c4g7g6b1c3d7d5c4d5f6d5e2e4d5c3b2c3c7c5f1c4f8g7g1e2c5d4c3d4b8c6c1e3d8a5\r
+d2d4g8f6c2c4g7g6b1c3d7d5c4d5f6d5e2e4d5c3b2c3c7c5f1c4f8g7g1e2c5d4c3d4b8c6c1e3e8g8\r
+d2d4g8f6c2c4g7g6b1c3d7d5c4d5f6d5e2e4d5c3b2c3c7c5f1c4f8g7g1e2e8g8e1g1b8c6c1e3c6a5\r
+d2d4g8f6c2c4g7g6b1c3d7d5c4d5f6d5e2e4d5c3b2c3c7c5f1c4f8g7g1e2e8g8e1g1b8d7c1g5h7h6\r
+d2d4g8f6c2c4g7g6b1c3d7d5c4d5f6d5e2e4d5c3b2c3c7c5f1c4f8g7g1e2e8g8e1g1c5d4c3d4b8c6\r
+d2d4g8f6c2c4g7g6b1c3d7d5c4d5f6d5e2e4d5c3b2c3f8g7c1e3c7c5d1d2c5d4c3d4b8c6a1d1d8a5\r
+d2d4g8f6c2c4g7g6b1c3d7d5c4d5f6d5e2e4d5c3b2c3f8g7c1e3c7c5d1d2d8a5a1b1b7b6f1b5c8d7\r
+d2d4g8f6c2c4g7g6b1c3d7d5c4d5f6d5e2e4d5c3b2c3f8g7c1e3c7c5d1d2d8a5a1b1c5d4c3d4a5d2\r
+d2d4g8f6c2c4g7g6b1c3d7d5c4d5f6d5e2e4d5c3b2c3f8g7c1e3c7c5d1d2d8a5a1c1c5d4c3d4a5d2\r
+d2d4g8f6c2c4g7g6b1c3d7d5c4d5f6d5e2e4d5c3b2c3f8g7c1e3c7c5d1d2e8g8a1c1d8a5g1f3e7e6\r
+d2d4g8f6c2c4g7g6b1c3d7d5c4d5f6d5e2e4d5c3b2c3f8g7c1e3c7c5d1d2e8g8g1f3c8g4f3g5c5d4\r
+d2d4g8f6c2c4g7g6b1c3d7d5c4d5f6d5e2e4d5c3b2c3f8g7c1e3c7c5d1d2e8g8g1f3d8a5a1c1e7e6\r
+d2d4g8f6c2c4g7g6b1c3d7d5c4d5f6d5e2e4d5c3b2c3f8g7f1c4b7b6d1f3e8g8e4e5c8a6c4d5c7c6\r
+d2d4g8f6c2c4g7g6b1c3d7d5c4d5f6d5e2e4d5c3b2c3f8g7f1c4b7b6d1f3e8g8g1e2b8c6h2h4c6a5\r
+d2d4g8f6c2c4g7g6b1c3d7d5c4d5f6d5e2e4d5c3b2c3f8g7f1c4c7c5g1e2b8c6c1e3e8g8e1g1c5d4\r
+d2d4g8f6c2c4g7g6b1c3d7d5c4d5f6d5e2e4d5c3b2c3f8g7f1c4c7c5g1e2b8c6c1e3e8g8e1g1c8g4\r
+d2d4g8f6c2c4g7g6b1c3d7d5c4d5f6d5e2e4d5c3b2c3f8g7f1c4c7c5g1e2b8c6c1e3e8g8e1g1c8g4\r
+d2d4g8f6c2c4g7g6b1c3d7d5c4d5f6d5e2e4d5c3b2c3f8g7f1c4c7c5g1e2b8c6c1e3e8g8e1g1c8g4\r
+d2d4g8f6c2c4g7g6b1c3d7d5c4d5f6d5e2e4d5c3b2c3f8g7f1c4c7c5g1e2b8c6c1e3e8g8e1g1c8g4\r
+d2d4g8f6c2c4g7g6b1c3d7d5c4d5f6d5e2e4d5c3b2c3f8g7f1c4c7c5g1e2b8c6c1e3e8g8e1g1c8g4\r
+d2d4g8f6c2c4g7g6b1c3d7d5c4d5f6d5e2e4d5c3b2c3f8g7f1c4c7c5g1e2b8c6c1e3e8g8e1g1d8c7\r
+d2d4g8f6c2c4g7g6b1c3d7d5c4d5f6d5e2e4d5c3b2c3f8g7f1c4c7c5g1e2e8g8c1e3b8c6a1c1c5d4\r
+d2d4g8f6c2c4g7g6b1c3d7d5c4d5f6d5e2e4d5c3b2c3f8g7f1c4c7c5g1e2e8g8e1g1b8c6c1e3d8c7\r
+d2d4g8f6c2c4g7g6b1c3d7d5c4d5f6d5e2e4d5c3b2c3f8g7f1c4e8g8g1e2b7b6e1g1c8b7f2f3c7c5\r
+d2d4g8f6c2c4g7g6b1c3d7d5c4d5f6d5e2e4d5c3b2c3f8g7f1c4e8g8g1e2c7c5e1g1b8c6c1e3d8c7\r
+d2d4g8f6c2c4g7g6b1c3d7d5c4d5f6d5e2e4d5c3b2c3f8g7f1c4e8g8g1e2c7c5e1g1b8c6c1e3d8c7\r
+d2d4g8f6c2c4g7g6b1c3d7d5c4d5f6d5e2e4d5c3b2c3f8g7f1c4e8g8g1e2c7c5e1g1b8c6c1e3d8c7\r
+d2d4g8f6c2c4g7g6b1c3d7d5c4d5f6d5e2e4d5c3b2c3f8g7f1c4e8g8g1e2c7c5e1g1b8c6c1e3d8c7\r
+d2d4g8f6c2c4g7g6b1c3d7d5c4d5f6d5e2e4d5c3b2c3f8g7g1f3c7c5a1b1e8g8f1e2c5d4c3d4d8a5\r
+d2d4g8f6c2c4g7g6b1c3d7d5c4d5f6d5e2e4d5c3b2c3f8g7g1f3c7c5a1b1e8g8f1e2c5d4c3d4d8a5\r
+d2d4g8f6c2c4g7g6b1c3d7d5c4d5f6d5e2e4d5c3b2c3f8g7g1f3c7c5c1e3d8a5d1d2c8g4a1c1b8c6\r
+d2d4g8f6c2c4g7g6b1c3d7d5c4d5f6d5g1f3f8g7e2e4d5c3b2c3c7c5a1b1e8g8f1e2b8c6d4d5c6e5\r
+d2d4g8f6c2c4g7g6b1c3d7d5c4d5f6d5g2g3f8g7f1g2d5c3b2c3c7c5e2e3e8g8g1e2b8c6e1g1d8a5\r
+d2d4g8f6c2c4g7g6b1c3d7d5d1b3d5c4b3c4c8e6c4b5b8c6g1f3a8b8f3e5e6d7e5d7d8d7d4d5c6d4\r
+d2d4g8f6c2c4g7g6b1c3d7d5d1b3d5c4b3c4f8g7c1f4c7c6a1d1d8a5f4d2b7b5c4b3b5b4c3a4b8a6\r
+d2d4g8f6c2c4g7g6b1c3d7d5d1b3d5c4b3c4f8g7e2e4e8g8f1e2b8c6g1f3f6d7c1e3d7b6c4c5c8g4\r
+d2d4g8f6c2c4g7g6b1c3d7d5d1b3d5c4b3c4f8g7e2e4e8g8g1f3a7a6c1f4b7b5c4c7d8e8f1e2b8c6\r
+d2d4g8f6c2c4g7g6b1c3d7d5g1f3f8g7c1f4c7c5d4c5d8a5a1c1d5c4e2e3a5c5d1a4b8c6f1c4e8g8\r
+d2d4g8f6c2c4g7g6b1c3d7d5g1f3f8g7c1f4e8g8a1c1c7c5d4c5d5c4e2e4d8a5e4e5f8d8f4d2f6g4\r
+d2d4g8f6c2c4g7g6b1c3d7d5g1f3f8g7c1f4e8g8a1c1d5c4e2e4c8g4f1c4f6h5f4e3g4f3g2f3e7e6\r
+d2d4g8f6c2c4g7g6b1c3d7d5g1f3f8g7c1f4e8g8e2e3c7c5d4c5d8a5a1c1d5c4f1c4a5c5c4b3b8c6\r
+d2d4g8f6c2c4g7g6b1c3d7d5g1f3f8g7c1f4e8g8e2e3c7c6d1b3d8a5h2h3b8d7a1c1d5c4f1c4d7b6\r
+d2d4g8f6c2c4g7g6b1c3d7d5g1f3f8g7c1g5f6e4c4d5e4g5f3g5e7e6d1d2e6d5d2e3e8f8e3f4d8f6\r
+d2d4g8f6c2c4g7g6b1c3d7d5g1f3f8g7c1g5f6e4c4d5e4g5f3g5e7e6g5f3e6d5e2e3e8g8f1d3b7b6\r
+d2d4g8f6c2c4g7g6b1c3d7d5g1f3f8g7c4d5f6d5e2e4d5c3b2c3c7c5a1b1e8g8f1e2c5d4c3d4d8a5\r
+d2d4g8f6c2c4g7g6b1c3d7d5g1f3f8g7c4d5f6d5e2e4d5c3b2c3c7c5c1e3c8g4a1c1d8a5d1d2b8d7\r
+d2d4g8f6c2c4g7g6b1c3d7d5g1f3f8g7c4d5f6d5e2e4d5c3b2c3c7c5c1e3c8g4a1c1d8a5d1d2b8d7\r
+d2d4g8f6c2c4g7g6b1c3d7d5g1f3f8g7c4d5f6d5e2e4d5c3b2c3c7c5c1e3d8a5d1d2e8g8a1c1c5d4\r
+d2d4g8f6c2c4g7g6b1c3d7d5g1f3f8g7d1b3c7c6c4d5f6d5e2e4d5b6c1e3c8e6b3c2e6c4f1e2b8a6\r
+d2d4g8f6c2c4g7g6b1c3d7d5g1f3f8g7d1b3d5c4b3c4c7c6e2e4e8g8c4b3b7b5e4e5f6e8a2a4b5a4\r
+d2d4g8f6c2c4g7g6b1c3d7d5g1f3f8g7d1b3d5c4b3c4e8g8e2e4a7a6e4e5b7b5c4b3f6d7c1e3c7c5\r
+d2d4g8f6c2c4g7g6b1c3d7d5g1f3f8g7d1b3d5c4b3c4e8g8e2e4a7a6e4e5b7b5c4b3f6d7c1e3c7c5\r
+d2d4g8f6c2c4g7g6b1c3d7d5g1f3f8g7d1b3d5c4b3c4e8g8e2e4a7a6e4e5b7b5c4b3f6d7e5e6f7e6\r
+d2d4g8f6c2c4g7g6b1c3d7d5g1f3f8g7d1b3d5c4b3c4e8g8e2e4b8a6b2b4c7c6a1b1a6c7h2h3c7b5\r
+d2d4g8f6c2c4g7g6b1c3d7d5g1f3f8g7d1b3d5c4b3c4e8g8e2e4b8a6f1e2c7c5d4d5e7e6e1g1e6d5\r
+d2d4g8f6c2c4g7g6b1c3d7d5g1f3f8g7d1b3d5c4b3c4e8g8e2e4b8a6f1e2c7c5d4d5e7e6e1g1e6d5\r
+d2d4g8f6c2c4g7g6b1c3d7d5g1f3f8g7d1b3d5c4b3c4e8g8e2e4b8a6f1e2c7c5d4d5e7e6e1g1e6d5\r
+d2d4g8f6c2c4g7g6b1c3d7d5g1f3f8g7d1b3d5c4b3c4e8g8e2e4b8a6f1e2c7c5d4d5e7e6e1g1e6d5\r
+d2d4g8f6c2c4g7g6b1c3d7d5g1f3f8g7d1b3d5c4b3c4e8g8e2e4b8c6f1e2c8g4c1e3g4f3e2f3e7e5\r
+d2d4g8f6c2c4g7g6b1c3d7d5g1f3f8g7d1b3d5c4b3c4e8g8e2e4b8c6h2h3e7e5d4e5f6d7e5e6f7e6\r
+d2d4g8f6c2c4g7g6b1c3d7d5g1f3f8g7d1b3d5c4b3c4e8g8e2e4c7c6c4b3e7e5d4e5f6g4f1e2d8b6\r
+d2d4g8f6c2c4g7g6b1c3d7d5g1f3f8g7d1b3d5c4b3c4e8g8e2e4c8g4c1e3f6d7a1d1b8c6f1e2d7b6\r
+d2d4g8f6c2c4g7g6b1c3d7d5g1f3f8g7d1b3d5c4b3c4e8g8e2e4c8g4c1e3f6d7a1d1b8c6f1e2d7b6\r
+d2d4g8f6c2c4g7g6b1c3d7d5g1f3f8g7d1b3d5c4b3c4e8g8e2e4c8g4c1e3f6d7a1d1b8c6f1e2g4f3\r
+d2d4g8f6c2c4g7g6b1c3d7d5g1f3f8g7d1b3d5c4b3c4e8g8e2e4c8g4c1e3f6d7a1d1d7b6c4b3b8c6\r
+d2d4g8f6c2c4g7g6b1c3d7d5g1f3f8g7d1b3d5c4b3c4e8g8e2e4c8g4c1e3f6d7c4b3c7c5d4d5b8a6\r
+d2d4g8f6c2c4g7g6b1c3d7d5g1f3f8g7d1b3d5c4b3c4e8g8e2e4c8g4c1e3f6d7c4b3d7b6a1d1e7e5\r
+d2d4g8f6c2c4g7g6b1c3d7d5g1f3f8g7d1b3d5c4b3c4e8g8e2e4c8g4c1e3f6d7c4b3d7b6a2a4a7a5\r
+d2d4g8f6c2c4g7g6b1c3d7d5g1f3f8g7d1b3d5c4b3c4e8g8e2e4c8g4c1e3f6d7c4b3d7b6a2a4a7a5\r
+d2d4g8f6c2c4g7g6b1c3d7d5g1f3f8g7d1b3d5c4b3c4e8g8e2e4c8g4c1e3f6d7e1c1b8c6h2h3g4f3\r
+d2d4g8f6c2c4g7g6b1c3d7d5g1f3f8g7d1b3d5c4b3c4e8g8e2e4c8g4c1e3f6d7f1e2d7b6c4c5c7c6\r
+d2d4g8f6c2c4g7g6b1c3d7d5g1f3f8g7d1b3d5c4b3c4e8g8e2e4c8g4c1e3f6d7f3d2d7b6c4d3c7c6\r
+d2d4g8f6c2c4g7g6b1c3f8g7c1g5c7c5d4c5b8a6g2g3a6c5f1g2d7d6a1c1e8g8b2b4c5e6g5d2a7a5\r
+d2d4g8f6c2c4g7g6b1c3f8g7c1g5d7d6e2e3c7c5d4d5h7h6g5h4e8g8g1f3c8f5f3d2d8b6d1c1g6g5\r
+d2d4g8f6c2c4g7g6b1c3f8g7c1g5d7d6e2e3c7c5g1f3d8a5d1d2e8g8f1e2h7h6g5h4b8c6h2h3a7a6\r
+d2d4g8f6c2c4g7g6b1c3f8g7c1g5d7d6e2e3e8g8g1f3c7c5f1e2h7h6g5h4c5d4f3d4b8c6e1g1c8d7\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e3d7d6g1f3b8d7f1e2e8g8e1g1e7e5d4e5d6e5d1c2c7c6e3e4d8e7\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6c1g5c7c5d4d5b8a6f1d3a6c7g1e2a7a6a2a4a8b8e1g1e8g8\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f1d3e7e5d4d5a7a5g1e2b8a6f2f3f6d7c1e3g7h6d1d2h6e3\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f1e2e8g8c1g5b8a6h2h4e7e5d4d5c7c6h4h5c6d5c4d5d8b6\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f1e2e8g8c1g5c7c5d4c5d8a5g5d2a5c5g1f3c8g4d2e3c5a5\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f1e2e8g8c1g5c7c5d4d5b7b5c4b5a7a6a2a4h7h6g5d2b8d7\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f1e2e8g8c1g5c7c5d4d5e7e6g1f3e6d5e4d5c8g4e1g1g4f3\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f1e2e8g8c1g5c7c5d4d5h7h6g5f4e7e6d5e6c8e6f4d6f8e8\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f1e2e8g8c1g5c7c5d4d5h7h6g5f4e7e6d5e6c8e6f4d6f8e8\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f1e2e8g8c1g5h7h6g5e3c7c5d4c5d8a5e3d2a5c5g1f3c8g4\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f1e2e8g8c1g5h7h6g5e3c7c5d4c5d8a5e3d2a5c5g1f3c8g4\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f1e2e8g8c1g5h7h6g5e3e7e5d4d5b8a6d1d2a6c5f2f3f6h5\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f1e2e8g8g1f3e7e5d4d5b8d7c1g5h7h6g5h4a7a6e1g1d8e8\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f1e2e8g8g1f3e7e5d4d5b8d7c1g5h7h6g5h4a7a6f3d2d8e8\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f1e2e8g8g1f3e7e5e1g1b8c6c1e3f8e8d4d5c6d4f3d4e5d4\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f1e2e8g8g1f3e7e5e1g1b8c6d4d5c6e7c1d2f6e8a1c1c7c5\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f1e2e8g8g1f3e7e5e1g1b8c6d4d5c6e7c1d2f6e8b2b4f7f5\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f1e2e8g8g1f3e7e5e1g1b8c6d4d5c6e7f3d2a7a5b2b3f6d7\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f1e2e8g8g1f3e7e5e1g1b8c6d4d5c6e7f3e1f6d7c1e3f7f5\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f3b8d7c1e3e7e5g1e2e8g8d4d5f6h5d1d2f7f5e1c1a7a6\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f3c7c5d4c5d6c5d1d8e8d8c1e3f6d7g1e2b7b6e1c1b8a6\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f3e7e5d4d5f6h5c1e3b8a6d1d2d8h4g2g3h5g3d2f2g3f1\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f3e8g8c1e3a7a6f1d3b8c6g1e2a8b8a2a3f6d7d3b1c6a5\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f3e8g8c1e3a7a6f1d3c7c5d4c5d6c5e3c5b8c6g1e2f6d7\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f3e8g8c1e3b8c6g1e2a7a6d1d2a8b8h2h4h7h5e3h6e7e5\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f3e8g8c1e3b8c6g1e2a7a6e2c1e7e5d4d5c6d4c1b3d4b3\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f3e8g8c1e3b8c6g1e2a7a6h2h4h7h5e2c1e7e5d4d5c6d4\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f3e8g8c1e3b8c6g1e2a7a6h2h4h7h5e2c1e7e5d4d5c6e7\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f3e8g8c1e3b8c6g1e2a7a6h2h4h7h5e2c1f6d7c1b3a6a5\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f3e8g8c1e3b8d7d1d2c7c5d4c5d6c5e1c1d8a5c1b1d7e5\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f3e8g8c1e3b8d7d1d2c7c5g1h3d8a5h3f2a7a6d4c5d7c5\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f3e8g8c1e3c7c5d4d5e7e6d1d2e6d5c4d5a7a6a2a4f8e8\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f3e8g8c1e3c7c6f1d3a7a6g1e2b7b5e1g1b8d7a1c1e7e5\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f3e8g8c1e3c7c6f1d3e7e5g1e2e5d4e3d4c6c5d4f2b8c6\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f3e8g8c1e3e7e5d4d5c7c5f1d3f6h5g1e2f7f5e4f5g6f5\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f3e8g8c1e3e7e5d4d5c7c6d1d2c6d5c4d5a7a6g2g4b8d7\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f3e8g8c1e3e7e5d4d5c7c6f1d3c6d5c4d5f6h5g1e2f7f5\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f3e8g8c1e3e7e5d4d5c7c6f1d3c6d5c4d5f6h5g1e2f7f5\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f3e8g8c1e3e7e5d4d5f6h5d1d2d8h4g2g3h4e7e1c1f7f5\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f3e8g8c1e3e7e5d4d5f6h5d1d2f7f5e1c1a7a6f1d3c7c5\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f3e8g8c1e3e7e5d4d5f6h5d1d2f7f5e1c1b8d7f1d3d7c5\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f3e8g8c1e3e7e5d4d5f6h5d1d2f7f5e1c1f5f4e3f2g7f6\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f3e8g8c1e3e7e5d4d5f6h5d1d2f7f5e1c1f5f4e3f2g7f6\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f3e8g8c1e3e7e5d4e5d6e5d1d8f8d8c3d5f6d5c4d5c7c6\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f3e8g8c1e3e7e5d4e5d6e5d1d8f8d8c3d5f6d5c4d5c7c6\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f3e8g8c1e3e7e5g1e2c7c6d4d5c6d5c4d5a7a6d1d2b8d7\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f3e8g8c1g5c7c5d4d5a7a6d1d2f8e8g1e2b8d7e2g3d7f8\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f3e8g8c1g5c7c5d4d5e7e6d1d2e6d5c4d5h7h6g5e3f8e8\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f3e8g8c1g5c7c5d4d5e7e6d1d2e6d5c4d5h7h6g5e3h6h5\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f3e8g8c1g5c7c5d4d5e7e6d1d2h7h6g5e3e6d5c4d5h6h5\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f3e8g8c1g5h7h6g5e3c7c5d4c5d6c5d1d8f8d8e3c5b8c6\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f3e8g8g1e2b8c6c1e3a7a6d1d2a8b8e2c1e7e5c1b3e5d4\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f3e8g8g1e2b8c6c1e3a7a6d1d2c8d7e2c1e7e5c1b3e5d4\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f4c7c5d4c5d8a5f1d3a5c5g1f3e8g8d1e2b8c6c1e3c5h5\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f4c7c5d4d5e8g8g1f3e7e6f1e2e6d5c4d5b7b5e4e5d6e5\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f4e8g8g1f3b8a6f1d3c8g4e1g1f6d7c1e3e7e5f4e5c7c5\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f4e8g8g1f3c7c5d4d5e7e6f1e2e6d5c4d5b7b5e4e5f6d7\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6g1f3e8g8f1e2c7c5e1g1c8g4d4d5b8d7c1g5a7a6a2a4d8c7\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6g1f3e8g8f1e2e7e5c1e3b8a6e1g1c7c6d4e5d6e5d1d8f8d8\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6g1f3e8g8f1e2e7e5c1e3b8a6e1g1f6g4e3g5f7f6g5c1g8h8\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6g1f3e8g8f1e2e7e5c1e3b8c6d4d5c6e7f3d2f6e8c4c5f7f5\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6g1f3e8g8f1e2e7e5c1e3c7c6d1d2f8e8d4d5f6g4e3g5f7f6\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6g1f3e8g8f1e2e7e5c1e3c7c6d4d5f6g4e3g5f7f6g5h4b8a6\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6g1f3e8g8f1e2e7e5c1e3c7c6d4d5f6g4e3g5f7f6g5h4b8a6\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6g1f3e8g8f1e2e7e5c1e3d8e7d4e5d6e5c3d5e7d8e3c5f6e4\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6g1f3e8g8f1e2e7e5c1e3d8e7d4e5d6e5c3d5f6d5c4d5f8d8\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6g1f3e8g8f1e2e7e5c1e3e5d4f3d4f8e8f2f3c7c6d1d2d6d5\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6g1f3e8g8f1e2e7e5c1e3f6g4e3g5f7f6g5c1b8c6e1g1f6f5\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6g1f3e8g8f1e2e7e5c1e3f6g4e3g5f7f6g5c1e5d4f3d4f6f5\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6g1f3e8g8f1e2e7e5c1e3f6g4e3g5f7f6g5h4g6g5h4g3g4h6\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6g1f3e8g8f1e2e7e5d4d5b8d7c1g5h7h6g5h4a7a6f3d2d8e8\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6g1f3e8g8f1e2e7e5d4d5b8d7c1g5h7h6g5h4g6g5h4g3f6h5\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6g1f3e8g8f1e2e7e5d4e5d6e5d1d8f8d8c1g5d8e8c3d5f6d5\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6g1f3e8g8f1e2e7e5e1g1b8a6c1e3c7c6d1c2f6g4e3g5f7f6\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6g1f3e8g8f1e2e7e5e1g1b8c6d4d5c6e7b2b4f6h5f1e1h5f4\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6g1f3e8g8f1e2e7e5e1g1b8c6d4d5c6e7b2b4f6h5f1e1h7h6\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6g1f3e8g8f1e2e7e5e1g1b8c6d4d5c6e7c1d2f6e8a1c1f7f5\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6g1f3e8g8f1e2e7e5e1g1b8c6d4d5c6e7c1d2f6e8a1c1f7f5\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6g1f3e8g8f1e2e7e5e1g1b8c6d4d5c6e7f3e1f6d7c1e3f7f5\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6g1f3e8g8f1e2e7e5e1g1b8c6d4d5c6e7f3e1f6d7e1d3f7f5\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6g1f3e8g8f1e2e7e5e1g1c7c6c1e3b8a6d4d5f6g4e3g5f7f6\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6g1f3e8g8f1e2e7e5e1g1c7c6d4d5c6c5f3e1a7a6c1e3f6e8\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6g1f3e8g8f1e2e7e5e1g1c7c6f1e1e5d4f3d4f8e8e2f1f6g4\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6g1f3e8g8g2g3c8g4f1g2f6d7e1g1b8c6c1e3e7e5d4d5g4f3\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6g2g3e8g8f1g2e7e5g1e2e5d4e2d4b8c6d4c6b7c6e1g1f6d7\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6h2h3e8g8c1e3e7e5d4d5b8d7g2g4d7c5d1c2c7c6g1e2c6d5\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4e8g8f2f4d7d6g1f3b8a6f1e2e7e5d4e5d6e5d1d8f8d8f3e5a6c5\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4e8g8g1f3d7d6f1e2e7e5e1g1b8c6d4d5c6e7f3e1f6d7f2f3f7f5\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4e8g8g1f3d7d6f1e2e7e5e1g1b8d7f1e1c7c6e2f1f8e8d4d5c6c5\r
+d2d4g8f6c2c4g7g6b1c3f8g7g1f3d7d6c1f4b8d7h2h3c7c5e2e3e8g8f1e2b7b6e1g1c8b7d4d5a7a6\r
+d2d4g8f6c2c4g7g6b1c3f8g7g1f3e8g8c1g5c7c5e2e3d7d6f1e2h7h6g5h4c8g4d1b3c5d4f3d4g4e2\r
+d2d4g8f6c2c4g7g6b1c3f8g7g1f3e8g8e2e4d7d6f1e2e7e5e1g1e5d4f3d4f8e8f2f3c7c6g1h1a7a6\r
+d2d4g8f6c2c4g7g6b1c3f8g7g2g3d7d5c4d5f6d5f1g2c8e6c3e4e8g8g1f3b8a6e1g1c7c6a2a3e6f5\r
+d2d4g8f6c2c4g7g6b1c3f8g7g2g3d7d5c4d5f6d5f1g2d5c3b2c3c7c5e2e3b8c6g1e2c8d7e1g1a8c8\r
+d2d4g8f6c2c4g7g6e2e3d7d5c4d5f6d5e3e4d5b6b1c3f8g7c1e3b8c6d4d5c6e5e3d4f7f6f2f4e5f7\r
+d2d4g8f6c2c4g7g6f2f3d7d5c4d5f6d5e2e4d5b6c1e3f8g7b1c3e8g8f3f4f7f5d1b3e7e6e4e5b8c6\r
+d2d4g8f6c2c4g7g6f2f3f8g7e2e4e8g8b1c3c7c6c1e3d7d5e4e5f6d7c4d5c6d5c3d5d8a5d5c3b8c6\r
+d2d4g8f6c2c4g7g6g1f3f8g7g2g3c7c6f1g2d7d5c4d5c6d5b1c3e8g8f3e5e7e6c1g5d8b6d1d2f6d7\r
+d2d4g8f6c2c4g7g6g1f3f8g7g2g3c7c6f1g2d7d5c4d5c6d5b1c3e8g8f3e5e7e6e1g1f6d7e5f3b8c6\r
+d2d4g8f6c2c4g7g6g1f3f8g7g2g3c7c6f1g2d7d5c4d5c6d5b1c3e8g8f3e5e7e6e1g1f6d7f2f4b8c6\r
+d2d4g8f6c2c4g7g6g1f3f8g7g2g3c7c6f1g2d7d5c4d5c6d5b1c3e8g8f3e5e7e6e1g1f6d7f2f4f7f6\r
+d2d4g8f6c2c4g7g6g1f3f8g7g2g3c7c6f1g2d7d5c4d5c6d5f3e5e8g8b1c3e7e6e1g1f6d7f2f4b8c6\r
+d2d4g8f6c2c4g7g6g1f3f8g7g2g3e8g8f1g2c7c6b1c3d7d5c4d5c6d5e1g1f6e4f3e5e4c3b2c3b8c6\r
+d2d4g8f6c2c4g7g6g1f3f8g7g2g3e8g8f1g2c7c6b1c3d7d5c4d5c6d5f3e5e7e6e1g1b8c6e5c6b7c6\r
+d2d4g8f6c2c4g7g6g1f3f8g7g2g3e8g8f1g2c7c6b1c3d7d5c4d5c6d5f3e5e7e6e1g1f6d7e5f3b8c6\r
+d2d4g8f6c2c4g7g6g1f3f8g7g2g3e8g8f1g2c7c6b1c3d7d5c4d5c6d5f3e5e7e6e1g1f6d7e5f3b8c6\r
+d2d4g8f6c2c4g7g6g1f3f8g7g2g3e8g8f1g2c7c6e1g1d7d5b2b3a7a5b1c3f6e4c1b2c8f5a1c1b8d7\r
+d2d4g8f6c2c4g7g6g1f3f8g7g2g3e8g8f1g2c7c6e1g1d7d5c4d5c6d5b1c3f6e4c3e4d5e4f3e5f7f6\r
+d2d4g8f6c2c4g7g6g1f3f8g7g2g3e8g8f1g2c7c6e1g1d7d5c4d5c6d5b1c3f6e4f3e5c8f5c1f4e7e6\r
+d2d4g8f6c2c4g7g6g1f3f8g7g2g3e8g8f1g2d7d5c4d5f6d5e1g1d5b6b1c3b8c6e2e3a7a5d4d5c6b4\r
+d2d4g8f6c2c4g7g6g1f3f8g7g2g3e8g8f1g2d7d5c4d5f6d5e1g1d5b6b1c3b8c6e2e3e7e5d4d5e5e4\r
+d2d4g8f6c2c4g7g6g1f3f8g7g2g3e8g8f1g2d7d6e1g1b8c6b1c3a7a6c1g5h7h6g5d2e7e5d4d5c6d4\r
+d2d4g8f6c2c4g7g6g1f3f8g7g2g3e8g8f1g2d7d6e1g1b8c6b1c3a7a6d4d5c6a5f3d2c7c5d1c2a8b8\r
+d2d4g8f6c2c4g7g6g1f3f8g7g2g3e8g8f1g2d7d6e1g1b8c6b1c3a7a6f1e1a8b8a1b1c6a5b2b3b7b5\r
+d2d4g8f6c2c4g7g6g1f3f8g7g2g3e8g8f1g2d7d6e1g1b8d7b1c3e7e5h2h3c7c6e2e4d8b6c4c5d6c5\r
+d2d4g8f6c2c4g7g6g2g3c7c5d4d5d7d6f1g2f8g7b1c3a7a6a2a4e8g8g1f3e7e5e1g1a6a5e2e4f6e8\r
+d2d4g8f6c2c4g7g6g2g3c7c5g1f3c5d4f3d4d8a5b1c3f6e4d1c2e4f6c1d2a5c5c2d3f8g7d4b3c5h5\r
+d2d4g8f6c2c4g7g6g2g3c7c6b1c3d7d5c4d5c6d5g1h3f8g7h3f4e8g8f1g2e7e6e1g1b8c6e2e3b7b6\r
+d2d4g8f6c2c4g7g6g2g3c7c6d4d5c6d5c4d5d7d6b1c3f8g7f1g2d8a5c1d2e8g8e2e3b8d7g1e2d7e5\r
+d2d4g8f6c2c4g7g6g2g3c7c6d4d5c6d5c4d5d7d6f1g2f8g7b1c3e8g8g1f3b8d7e1g1d7b6a2a4c8g4\r
+d2d4g8f6c2c4g7g6g2g3c7c6d4d5f8g7f1g2d7d6b1c3e8g8g1f3e7e5e1g1c6d5c4d5b8d7f3d2a7a5\r
+d2d4g8f6c2c4g7g6g2g3c7c6f1g2d7d5c4d5c6d5b1c3f8g7g1f3e8g8f3e5c8f5e1g1f6e4c3e4f5e4\r
+d2d4g8f6c2c4g7g6g2g3c7c6f1g2d7d5c4d5c6d5b1c3f8g7g1f3e8g8f3e5e7e6e1g1f6d7f2f4b8c6\r
+d2d4g8f6c2c4g7g6g2g3c7c6f1g2d7d5c4d5c6d5b1c3f8g7g1h3c8h3g2h3b8c6h3g2e7e6e2e3e8g8\r
+d2d4g8f6c2c4g7g6g2g3c7c6f1g2d7d5c4d5c6d5g1f3f8g7b1c3e8g8f3e5e7e6e1g1f6d7f2f4b8c6\r
+d2d4g8f6c2c4g7g6g2g3c7c6f1g2d7d5c4d5c6d5g1f3f8g7b1c3f6e4d1b3e4c3b2c3b8c6f3d2e7e6\r
+d2d4g8f6c2c4g7g6g2g3c7c6f1g2d7d5c4d5c6d5g1f3f8g7f3e5e8g8b1c3e7e6e1g1f6d7f2f4b8c6\r
+d2d4g8f6c2c4g7g6g2g3c7c6f1g2d7d5g1f3f8g7b2b3e8g8e1g1f6e4c1b2a7a5b1c3e4c3b2c3b7b5\r
+d2d4g8f6c2c4g7g6g2g3c7c6f1g2d7d5g1f3f8g7e1g1e8g8b1c3d5c4f3e5c8e6e2e4b8d7f2f4d8b6\r
+d2d4g8f6c2c4g7g6g2g3c7c6f1g2d7d5g1f3f8g7e1g1e8g8c1f4f6e4b1c3c8f5d1b3d8b6c4d5b6b3\r
+d2d4g8f6c2c4g7g6g2g3c7c6g1f3f8g7f1g2d7d5c4d5c6d5b1c3e8g8f3e5e7e6e1g1f6d7f2f4b8c6\r
+d2d4g8f6c2c4g7g6g2g3d7d5c4d5f6d5f1g2f8g7g1f3e8g8e1g1d5b6b1c3a7a5c1f4c7c6d1c1f8e8\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2c7c5d4d5d7d6g1f3c8f5b1c3f6e4c3e4f5e4e1g1e8g8d1b3b8d7\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2d7d5c4d5f6d5e2e4d5b6g1e2c7c5d4d5e7e6e1g1e8g8a2a4b8a6\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2d7d5c4d5f6d5e2e4d5b6g1e2c7c5d4d5e7e6e1g1e8g8e2c3e6d5\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2d7d5c4d5f6d5e2e4d5b6g1e2c8g4f2f3g4c8b1c3b8c6d4d5c6b8\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2d7d5c4d5f6d5e2e4d5b6g1e2e7e5d4d5c7c6b1c3c6d5e4d5e8g8\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2d7d5c4d5f6d5e2e4d5b6g1e2e7e5d4d5e8g8e1g1c7c6b1c3c6d5\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2d7d5c4d5f6d5g1f3e8g8e1g1c7c5d4c5b8a6f3g5d5b4a2a3d8d1\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2d7d5c4d5f6d5g1f3e8g8e1g1c7c5e2e4d5f6e4e5f6d5d4c5d5b4\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2d7d5g1f3e8g8e1g1d5c4b1a3c4c3b2c3c7c5e2e3b8c6d1e2f6d5\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2d7d6b1c3e8g8g1f3b8d7e1g1e7e5b2b3f8e8d1c2f6g4d4e5d7e5\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2e8g8b1c3c7c5d4d5d7d6g1f3b8a6f3d2a6c7d1c2a8b8b2b3e7e6\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2e8g8b1c3c7c5d4d5e7e5c1g5h7h6g5f6d8f6d5d6b8c6e2e3b7b6\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2e8g8b1c3c7c5d4d5e7e5g1f3d7d6e1g1b8d7d1c2d8e7e2e4a7a6\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2e8g8b1c3d7d6e2e3b8d7g1e2a7a6b2b3a8b8a2a4a6a5c1a3c7c6\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2e8g8b1c3d7d6e2e3b8d7g1e2a7a6b2b3a8b8a2a4e7e5c1a3b7b6\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2e8g8b1c3d7d6e2e3b8d7g1e2e7e5b2b3f8e8c1a3a8b8e1g1a7a6\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2e8g8b1c3d7d6e2e3b8d7g1e2e7e5b2b3f8e8c1a3h7h5h2h3a7a6\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2e8g8b1c3d7d6g1f3b8c6e1g1a7a6d4d5c6a5f3d2c7c5d1c2a8b8\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2e8g8b1c3d7d6g1f3b8c6e1g1e7e5d4d5c6e7c4c5f6d7c5d6c7d6\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2e8g8b1c3d7d6g1f3b8c6e1g1e7e5d4d5c6e7e2e4f6e8f3e1f7f5\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2e8g8b1c3d7d6g1f3b8c6e1g1e7e5d4e5c6e5f3e5d6e5d1d8f8d8\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2e8g8b1c3d7d6g1f3b8d7e1g1e7e5b2b3f8e8d1c2c7c6f1d1e5e4\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2e8g8b1c3d7d6g1f3b8d7e1g1e7e5e2e4c7c6c1e3f6g4e3g5d8b6\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2e8g8b1c3d7d6g1f3b8d7e1g1e7e5e2e4c7c6h2h3e5d4f3d4f8e8\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2e8g8b1c3d7d6g1f3b8d7e1g1e7e5e2e4e5d4f3d4d7c5h2h3f8e8\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2e8g8b1c3d7d6g1f3b8d7e1g1e7e5e2e4e5d4f3d4f8e8h2h3d7c5\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2e8g8b1c3d7d6g1f3b8d7e1g1e7e5e2e4f8e8d4d5a7a5f3e1d7c5\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2e8g8b1c3d7d6g1f3b8d7e1g1e7e5e2e4f8e8d4d5a7a6f3e1a8b8\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2e8g8b1c3d7d6g1f3b8d7e1g1e7e5e2e4f8e8h2h3e5d4f3d4d7c5\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2e8g8b1c3d7d6g1f3b8d7e1g1e7e5e2e4f8e8h2h3e5d4f3d4d7c5\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2e8g8b1c3d7d6g1f3b8d7e1g1e7e5e2e4f8e8h2h3e5d4f3d4d7c5\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2e8g8b1c3d7d6g1f3c7c5d4d5b8a6e1g1a6c7e2e4a7a6a2a4a8b8\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2e8g8b1c3d7d6g1f3c7c5d4d5b8a6e1g1a6c7f3d2a8b8a2a4e7e6\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2e8g8b1c3d7d6g1f3c7c5d4d5b8a6f3d2a6c7d1c2a8b8b2b3b7b5\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2e8g8e2e4d7d6g1e2c7c6e1g1e7e5b1c3b8d7f2f3f8e8c1e3d8c7\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2e8g8g1f3d7d6e1g1b8c6b1c3c8g4c1e3f6d7d1d2e7e5d4e5g4f3\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2e8g8g1f3d7d6e1g1b8c6b1c3c8g4h2h3g4f3g2f3f6d7f3g2c6d4\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2e8g8g1f3d7d6e1g1b8c6d4d5c6a5f3d2c7c5b1c3e7e5a2a3b7b6\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2e8g8g1f3d7d6e1g1b8d7b1c3e7e5e2e4c7c6h2h3d8b6d4d5c6d5\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2e8g8g1f3d7d6e1g1b8d7b1c3e7e5e2e4f8e8h2h3e5d4f3d4d7c5\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2e8g8g1f3d7d6e1g1b8d7d1c2e7e5f1d1f8e8b1c3c7c6d4e5d6e5\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2e8g8g1f3d7d6e1g1c7c5d4c5d6c5f3e5d8c7e5d3b8c6b1c3c8f5\r
+d2d4g8f6g1f3b7b6c2c4e7e6g2g3c8a6b2b3a6b7f1g2f8b4c1d2a7a5e1g1e8g8b1c3d7d5d1c2b8a6\r
+d2d4g8f6g1f3b7b6g2g3c8b7f1g2c7c5e1g1c5d4f3d4b7g2g1g2d7d5c2c4e7e6d1a4d8d7d4b5b8c6\r
+d2d4g8f6g1f3b7b6g2g3c8b7f1g2e7e6c2c4f8b4b1c3d7d6e1g1b4c3b2c3b8c6f3d2d6d5c4d5e6d5\r
+d2d4g8f6g1f3b7b6g2g3c8b7f1g2e7e6e1g1c7c5c2c3f8e7b2b3e8g8c1b2d7d5b1d2b8c6c3c4a8c8\r
+d2d4g8f6g1f3c7c5c2c3e7e6g2g3d7d5f1g2b8c6e1g1f8e7d4c5e7c5c1g5e8g8b1d2c5e7g5f6e7f6\r
+d2d4g8f6g1f3c7c5c2c3g7g6c1g5d8b6d1b3f6e4g5f4b8c6d4d5c6d8b1d2e4f6e2e4d7d6f1b5c8d7\r
+d2d4g8f6g1f3c7c5c2c4c5d4f3d4e7e5d4c2d7d5c4d5d8d5d1d5f6d5e2e4d5b4c2b4f8b4c1d2b4d2\r
+d2d4g8f6g1f3c7c5d4c5e7e6a2a3f8c5b2b4c5e7c1b2a7a5b4b5e8g8e2e3d7d6c2c4b8d7f1e2d7c5\r
+d2d4g8f6g1f3c7c5d4d5d7d6b1c3e7e6d5e6c8e6e2e4f8e7f1b5e6d7a2a4e8g8e1g1b8c6h2h3c6b4\r
+d2d4g8f6g1f3c7c5d4d5d7d6b1c3g7g6e2e4f8g7f1b5c8d7a2a4e8g8e1g1b8a6f1e1a6b4h2h3e7e6\r
+d2d4g8f6g1f3c7c5d4d5e7e6b1c3e6d5c3d5f6d5d1d5d7d6e2e4f8e7f1c4e8g8d5h5c8e6c4e6f7e6\r
+d2d4g8f6g1f3c7c5d4d5e7e6b1c3f6d5c3d5e6d5d1d5f8e7e2e4e8g8f1c4d7d6d5h5c8e6c4e6f7e6\r
+d2d4g8f6g1f3c7c5d4d5e7e6c2c4e6d5c4d5d7d6b1c3g7g6e2e4f8g7f1e2e8g8e1g1f8e8f3d2b8d7\r
+d2d4g8f6g1f3d7d5c2c4c7c6b1c3d5c4a2a4c8f5e2e3e7e6f1c4f8b4e1g1b8d7f3h4e8g8f2f3f5g6\r
+d2d4g8f6g1f3d7d5c2c4c7c6c4d5c6d5c1f4b8c6b1c3c8f5e2e3e7e6f1b5f6d7e1g1f8e7a1c1e8g8\r
+d2d4g8f6g1f3d7d5c2c4d5c4b1c3c7c6a2a4c8f5e2e3e7e6f1c4b8d7e1g1f8b4d1e2f5g6e3e4e8g8\r
+d2d4g8f6g1f3d7d5c2c4e7e6b1c3c7c5c4d5f6d5e2e4d5c3b2c3c5d4c3d4b8c6f1c4b7b5c4e2f8b4\r
+d2d4g8f6g1f3d7d5c2c4e7e6b1c3c7c5e2e3b8c6a2a3f6e4d1c2e4c3c2c3c5d4f3d4c6d4c3d4d5c4\r
+d2d4g8f6g1f3d7d5c2c4e7e6b1c3f8e7c1g5b8d7e2e3e8g8a1c1b7b6c4d5e6d5d1a4c7c5a4c6a8b8\r
+d2d4g8f6g1f3d7d5c2c4e7e6b1c3f8e7c1g5b8d7e2e3e8g8a1c1b7b6c4d5e6d5f1b5c8b7e1g1c7c6\r
+d2d4g8f6g1f3d7d5c2c4e7e6b1c3f8e7c1g5e8g8e2e3b8d7d1c2c7c5c4d5f6d5g5e7d8e7c3d5e6d5\r
+d2d4g8f6g1f3d7d5c2c4e7e6b1c3f8e7c1g5h7h6g5f6e7f6e2e3e8g8a1c1c7c6f1d3d5c4d3c4b8d7\r
+d2d4g8f6g1f3d7d5c2c4e7e6b1c3f8e7c1g5h7h6g5h4e8g8e2e3b7b6c4d5f6d5h4e7d8e7a1c1c8b7\r
+d2d4g8f6g1f3d7d5c2c4e7e6c4d5e6d5b1c3c7c6d1c2f8e7e2e4d5e4c3e4b8d7f3e5d7e5d4e5d8a5\r
+d2d4g8f6g1f3d7d5c2c4e7e6g2g3d5c4d1a4b8d7f1g2a7a6a4c4b7b5c4c6a8b8c1f4c8b7c6c7f8b4\r
+d2d4g8f6g1f3d7d5c2c4e7e6g2g3d5c4d1a4b8d7f1g2a7a6a4c4c7c5d4c5f8c5e1g1b7b5c4h4c8b7\r
+d2d4g8f6g1f3d7d5c2c4e7e6g2g3d5c4d1a4b8d7f1g2a7a6b1c3a8b8a4c4b7b5c4d3c8b7e1g1c7c5\r
+d2d4g8f6g1f3d7d5g2g3c7c6f1g2c8f5e1g1h7h6c2c4e7e6b1c3f8e7d1b3d8b6c4c5b6a6b3d1b8d7\r
+d2d4g8f6g1f3d7d6c2c4c8g4d1b3d8c8h2h3g4h5g2g4h5g6f1g2c7c6b1c3e7e6d4d5f8e7c1e3f6d7\r
+d2d4g8f6g1f3d7d6c2c4g7g6b1c3f8g7e2e4e8g8f1e2c7c5e1g1b8c6d4d5c6a5h2h3e7e5a2a3b7b6\r
+d2d4g8f6g1f3d7d6g2g3b8d7f1g2e7e5c2c4f8e7b1c3e8g8e1g1c7c6d1c2d8c7b2b3f8e8c1b2e7f8\r
+d2d4g8f6g1f3d7d6g2g3g7g6f1g2f8g7e1g1e8g8c2c4b8d7b1c3e7e5c1g5h7h6g5d2c7c6d1c1g8h7\r
+d2d4g8f6g1f3e7e6c1g5c7c5e2e3b7b6b1d2c5d4e3d4c8b7f1d3f8e7e1g1e8g8f1e1d7d6a2a4b8c6\r
+d2d4g8f6g1f3e7e6c1g5c7c5e2e3b7b6d4d5e6d5b1c3f8e7c3d5c8b7g5f6e7f6c2c3e8g8f1c4a7a6\r
+d2d4g8f6g1f3e7e6c1g5c7c5e2e3f8e7b1d2c5d4e3d4b7b6c2c3c8b7f1d3d7d6e1g1b8d7f1e1e8g8\r
+d2d4g8f6g1f3e7e6c1g5c7c5e2e3f8e7d4c5e7c5c2c4c5b4b1d2b7b6f1d3b8c6e1g1b4e7a1c1c8b7\r
+d2d4g8f6g1f3e7e6c1g5c7c5e2e3h7h6g5f6d8f6b1d2c5d4e3d4b8c6c2c3d7d5f1d3f8d6d1e2e8g8\r
+d2d4g8f6g1f3e7e6c1g5d7d5b1d2f8e7e2e3b8d7f1d3c7c5c2c3b7b6e1g1c8b7f3e5d7e5d4e5f6d7\r
+d2d4g8f6g1f3e7e6c2c4b7b6b1c3c8b7a2a3d7d5c4d5f6d5e2e3f8e7f1b5c7c6b5d3b8d7e1g1e8g8\r
+d2d4g8f6g1f3e7e6c2c4b7b6b1c3c8b7c1g5h7h6g5h4f8e7e2e3e8g8f1d3c7c5e1g1c5d4e3d4b7f3\r
+d2d4g8f6g1f3e7e6c2c4b7b6b1c3c8b7c1g5h7h6g5h4f8e7e2e3e8g8f1d3c7c5e1g1c5d4e3d4d7d5\r
+d2d4g8f6g1f3e7e6c2c4b7b6b1c3c8b7e2e3f8b4f1d3e8g8e1g1b4c3b2c3c7c5f1e1f6e4d1c2f7f5\r
+d2d4g8f6g1f3e7e6c2c4b7b6b1c3f8b4c1d2c7c5a2a3b4c3d2c3c8b7e2e3e8g8f1d3d7d6e1g1b8d7\r
+d2d4g8f6g1f3e7e6c2c4b7b6e2e3c8b7f1d3d7d5b2b3f8e7e1g1e8g8c1b2c7c5d1e2c5d4e3d4b8c6\r
+d2d4g8f6g1f3e7e6c2c4b7b6g2g3c8a6b2b3f8b4c1d2b4e7f1g2c7c6f3e5d7d5d2c3f6d7e5d7b8d7\r
+d2d4g8f6g1f3e7e6c2c4b7b6g2g3c8a6b2b3f8b4c1d2b4e7f1g2d7d5c4d5e6d5e1g1e8g8b1c3a6b7\r
+d2d4g8f6g1f3e7e6c2c4b7b6g2g3c8a6d1b3b8c6b1d2f8b4d4d5b4d2c1d2c6a5b3a4f6e4d2a5b6a5\r
+d2d4g8f6g1f3e7e6c2c4b7b6g2g3c8b7f1g2f8e7b1c3e8g8e1g1f6e4c1d2d7d5f3e5b8d7c4d5e6d5\r
+d2d4g8f6g1f3e7e6c2c4b7b6g2g3c8b7f1g2f8e7b1c3e8g8e1g1f6e4c1d2f7f5d4d5e7f6d1c2f6c3\r
+d2d4g8f6g1f3e7e6c2c4c7c5e2e3d7d5b1c3b8c6c4d5e6d5f1e2c5d4e3d4f8d6c1g5c8e6e1g1h7h6\r
+d2d4g8f6g1f3e7e6c2c4d7d5b1c3b8d7c1g5f8e7e2e3e8g8a1c1c7c6a2a3f8e8f1d3d5c4d3c4f6d5\r
+d2d4g8f6g1f3e7e6c2c4d7d5b1c3b8d7e2e3a7a6c4c5c7c6b2b4d8c7c1b2e6e5d4e5d7e5f3e5c7e5\r
+d2d4g8f6g1f3e7e6c2c4d7d5b1c3c7c5c4d5f6d5e2e3b8c6f1d3f8e7e1g1e8g8a2a3c5d4e3d4e7f6\r
+d2d4g8f6g1f3e7e6c2c4d7d5b1c3c7c5c4d5f6d5e2e3b8c6f1d3f8e7e1g1e8g8a2a3c5d4e3d4e7f6\r
+d2d4g8f6g1f3e7e6c2c4d7d5b1c3c7c5c4d5f6d5e2e3b8c6f1d3f8e7e1g1e8g8a2a3c5d4e3d4e7f6\r
+d2d4g8f6g1f3e7e6c2c4d7d5b1c3c7c5c4d5f6d5e2e4d5c3b2c3c5d4c3d4f8b4c1d2b4d2d1d2e8g8\r
+d2d4g8f6g1f3e7e6c2c4d7d5b1c3c7c5c4d5f6d5e2e4d5c3b2c3c5d4c3d4f8b4c1d2b4d2d1d2e8g8\r
+d2d4g8f6g1f3e7e6c2c4d7d5b1c3d5c4e2e4f8b4c1g5c7c5f1c4c5d4f3d4b4c3b2c3d8a5c4b5c8d7\r
+d2d4g8f6g1f3e7e6c2c4d7d5b1c3f8e7c1g5e8g8e2e3b8d7f1d3d5c4d3c4c7c5e1g1a7a6a2a4c5d4\r
+d2d4g8f6g1f3e7e6c2c4d7d5c1g5h7h6g5f6d8f6b1c3c7c6e2e3b8d7f1d3f6d8e1g1f8e7d1e2e8g8\r
+d2d4g8f6g1f3e7e6c2c4f8b4b1d2b7b6a2a3b4d2c1d2h7h6g2g3c8b7f1g2e8g8e1g1d7d6b2b4b8d7\r
+d2d4g8f6g1f3e7e6c2c4f8b4b1d2b7b6e2e3c8b7a2a3b4d2d1d2e8g8b2b3f6e4d2c2f7f5f1d3d7d6\r
+d2d4g8f6g1f3e7e6c2c4f8b4b1d2e8g8a2a3b4d2c1d2b7b6d2g5c8b7e2e3d7d6f1d3b8d7e1g1h7h6\r
+d2d4g8f6g1f3e7e6c2c4f8b4c1d2a7a5g2g3d7d5d1c2c7c5f1g2c5d4d2b4a5b4c4d5e8g8f3d4d8b6\r
+d2d4g8f6g1f3e7e6e2e3b7b6f1d3c8b7e1g1d7d5b2b3f8d6c1b2e8g8c2c4c7c5c4d5e6d5b1c3b8d7\r
+d2d4g8f6g1f3e7e6e2e3b7b6f1d3c8b7e1g1d7d5c2c4d5c4d3c4a7a6d1e2b8d7f1d1c7c5a2a4f8d6\r
+d2d4g8f6g1f3e7e6e2e3c7c5f1d3b8c6e1g1f8e7b2b3b7b6a2a3c8b7c1b2a8c8b1d2e8g8d1e2f8e8\r
+d2d4g8f6g1f3e7e6e2e3c7c5f1d3d7d5d4c5f8c5a2a3e8g8b2b4c5e7b1d2a7a5b4b5b8d7c1b2d7c5\r
+d2d4g8f6g1f3e7e6g2g3b7b5f1g2c8b7e1g1c7c5c1g5f8e7c2c3b8a6e2e3a8b8b1d2e8g8a2a3f6e4\r
+d2d4g8f6g1f3e7e6g2g3b7b6f1g2c8b7c2c4f8e7b1c3e8g8d1c2c7c5d4d5e6d5f3g5b8c6c3d5g7g6\r
+d2d4g8f6g1f3e7e6g2g3b7b6f1g2c8b7c2c4f8e7b1c3e8g8d1d3d7d5c4d5f6d5c3d5e6d5e1g1b8d7\r
+d2d4g8f6g1f3e7e6g2g3b7b6f1g2c8b7c2c4f8e7b1c3e8g8d4d5e7b4c1d2c7c6d5c6d7c6d1c2c6c5\r
+d2d4g8f6g1f3e7e6g2g3b7b6f1g2c8b7c2c4f8e7b1c3f6e4c1d2d7d5c4d5e6d5d1a4b7c6a4b3e8g8\r
+d2d4g8f6g1f3e7e6g2g3b7b6f1g2c8b7c2c4f8e7b1c3f6e4c1d2d7d5c4d5e6d5d1a4d8d7a4d7b8d7\r
+d2d4g8f6g1f3e7e6g2g3b7b6f1g2c8b7c2c4f8e7e1g1e8g8b1c3f6e4c3e4b7e4f3e1e4g2e1g2d7d5\r
+d2d4g8f6g1f3e7e6g2g3b7b6f1g2c8b7e1g1f8e7c2c4e8g8b1c3f6e4c1d2f7f5d4d5e7f6a1c1b8a6\r
+d2d4g8f6g1f3e7e6g2g3b7b6f1g2c8b7e1g1f8e7c2c4e8g8b1c3f6e4c3e4b7e4f3e1d7d5c4d5e4g2\r
+d2d4g8f6g1f3e7e6g2g3c7c5f1g2d8c7e1g1c5d4f3d4a7a6d4b3f8e7c1f4d7d6c2c4b8d7b1a3f6h5\r
+d2d4g8f6g1f3g7g6b1c3d7d5c1f4f8g7e2e3c7c6f1e2b8d7f3e5a7a5h2h4h7h5d1d2f6e4c3e4d5e4\r
+d2d4g8f6g1f3g7g6c1f4f8g7b1d2c7c5c2c3c5d4c3d4d7d5f4b8a8b8d1a4c8d7a4a7f6e4e2e3e4d2\r
+d2d4g8f6g1f3g7g6c1f4f8g7b1d2d7d6h2h3e8g8e2e3c7c5f1e2b8c6f4h2b7b6e1g1c8b7c2c3d8d7\r
+d2d4g8f6g1f3g7g6c1f4f8g7b1d2d7d6h2h3e8g8e2e3c7c5f1e2b8c6f4h2c5d4e3d4c8d7e1g1a8c8\r
+d2d4g8f6g1f3g7g6c1f4f8g7e2e3d7d6h2h3e8g8f1e2b7b6e1g1c8b7c2c4f6e4d1c2b8d7b1c3e4c3\r
+d2d4g8f6g1f3g7g6c1g5f8g7b1d2d7d5e2e3e8g8c2c3b8d7f1e2f8e8b2b4c7c6e1g1e7e5d2b3d8b6\r
+d2d4g8f6g1f3g7g6c1g5f8g7c2c3d7d5b1d2e8g8e2e3c7c6f1e2c8g4e1g1b8d7b2b4a7a5b4b5a5a4\r
+d2d4g8f6g1f3g7g6c2c4f8g7b1c3d7d5c1f4e8g8a1c1c7c5d4c5d5c4d1d8f8d8e2e4b8a6e4e5f6g4\r
+d2d4g8f6g1f3g7g6c2c4f8g7b1c3d7d5d1b3d5c4b3c4e8g8e2e4a7a6c4a4b8d7e4e5f6g4h2h3g4h6\r
+d2d4g8f6g1f3g7g6c2c4f8g7b1c3d7d5e2e3e8g8g2g3d5c4f3e5c8e6f1g2d8c8d1e2c7c6e5c4e6h3\r
+d2d4g8f6g1f3g7g6c2c4f8g7b1c3d7d6c1g5h7h6g5h4g6g5h4g3f6h5e2e3e7e6f1d3d8e7a1c1e8g8\r
+d2d4g8f6g1f3g7g6c2c4f8g7b1c3e8g8e2e4d7d6f1e2e7e5c1e3c7c6e1g1e5d4e3d4d8e7f3d2f8e8\r
+d2d4g8f6g1f3g7g6c2c4f8g7b1c3e8g8e2e4d7d6f1e2e7e5e1g1b8c6d4d5c6e7b2b4f6h5f1e1h5f4\r
+d2d4g8f6g1f3g7g6c2c4f8g7b1c3e8g8e2e4d7d6f1e2e7e5e1g1e5d4f3d4b8d7c1g5d7c5f2f3h7h6\r
+d2d4g8f6g1f3g7g6c2c4f8g7b1c3e8g8e2e4d7d6f1e2e7e5e1g1e5d4f3d4f8e8f2f3c7c6g1h1a7a6\r
+d2d4g8f6g1f3g7g6c2c4f8g7g2g3c7c6f1g2d7d5c4d5c6d5b1c3e8g8f3e5e7e6e1g1f6d7e5f3b8c6\r
+d2d4g8f6g1f3g7g6c2c4f8g7g2g3c7c6f1g2d7d5c4d5c6d5e1g1e8g8b1c3f6e4c3e4d5e4f3e5f7f6\r
+d2d4g8f6g1f3g7g6c2c4f8g7g2g3d7d5c4d5f6d5f1g2d5b6e2e4e8g8e1g1c8g4d4d5d8d7b1c3c7c6\r
+d2d4g8f6g1f3g7g6c2c4f8g7g2g3d7d5f1g2d5c4e1g1c7c6b1c3e8g8h2h3b7b5f3e5a7a6e2e4c8b7\r
+d2d4g8f6g1f3g7g6c2c4f8g7g2g3e8g8f1g2d7d5c4d5f6d5e1g1b8c6e2e4d5b6d4d5c6a5d1e1a5c4\r
+d2d4g8f6g1f3g7g6c2c4f8g7g2g3e8g8f1g2d7d5c4d5f6d5e1g1d5b6b1c3b8c6d4d5c6a5c1f4c7c6\r
+d2d4g8f6g1f3g7g6c2c4f8g7g2g3e8g8f1g2d7d5c4d5f6d5e1g1d5b6b1c3b8c6e2e3e7e5d4d5c6a5\r
+d2d4g8f6g1f3g7g6c2c4f8g7g2g3e8g8f1g2d7d6e1g1b8c6b1c3a7a6h2h3e7e5d4d5c6e7e2e4b7b5\r
+d2d4g8f6g1f3g7g6c2c4f8g7g2g3e8g8f1g2d7d6e1g1b8d7b1c3e7e5e2e4a7a6a1b1b7b5c4b5a6b5\r
+d2d4g8f6g1f3g7g6c2c4f8g7g2g3e8g8f1g2d7d6e1g1b8d7b1c3e7e5e2e4a7a6f1e1e5d4f3d4f6g4\r
+d2d4g8f6g1f3g7g6c2c4f8g7g2g3e8g8f1g2d7d6e1g1b8d7d1c2e7e5f1d1f8e8b1c3e5d4f3d4c7c6\r
+d2d4g8f6g1f3g7g6g2g3d7d5f1g2e7e6c2c4f8g7c1g5c7c5e1g1d8b6b1c3c5d4f3d4f6e4c3e4d5e4\r
+d2d4g8f6g1f3g7g6g2g3d7d5f1g2f8g7e1g1c7c6b1d2e8g8c2c4f6e4e2e3e4d2f3d2d5c4d2c4c8e6\r
+d2d4g8f6g1f3g7g6g2g3d7d5f1g2f8g7e1g1e8g8c1f4c7c6b1d2d8b6d1c1c6c5d4c5b6c5d2b3c5b4\r
+d2d4g8f6g1f3g7g6g2g3f8g7c2c4d7d5f1g2d5c4e1g1c7c6b1c3e8g8h2h3b8a6e2e4b7b5d1e2c8b7\r
+d2d4g8f6g1f3g7g6g2g3f8g7f1g2e8g8e1g1c7c6c2c4d7d6b1c3d8b6b2b3e7e5d4e5d6e5d1c2f8e8\r
+d2d4g8f6g1f3g7g6g2g3f8g7f1g2e8g8e1g1d7d5c2c4d5c4b1a3b8c6a3c4c8e6b2b3d8c8f1e1f8d8\r
+d2d4g8f6g1f3g7g6g2g3f8g7f1g2e8g8e1g1d7d6b1d2b8c6c2c3e7e5d4e5d6e5d2b3d8e7c1e3f8d8\r
+d2d4g8f6g1f3g7g6g2g3f8g7f1g2e8g8e1g1d7d6b2b3e7e5d4e5d6e5c1b2e5e4d1d8f8d8f3g5c8f5\r
+d2d4g8f6g1f3g7g6g2g3f8g7f1g2e8g8e1g1d7d6b2b3e7e5d4e5f6g4c1b2b8c6c2c4f8e8b1c3g4e5\r
+d2d4g8f6g1f3g7g6g2g3f8g7f1g2e8g8e1g1d7d6c2c4b8c6b1c3a7a6f1e1c8d7e2e4d7g4c1e3f6d7\r
+d2d4g8f6g1f3g7g6g2g3f8g7f1g2e8g8e1g1d7d6c2c4b8c6b1c3a8b8c1d2c8g4d4d5g4f3e2f3c6e5\r
+d2d4g8f6g1f3g7g6g2g3f8g7f1g2e8g8e1g1d7d6f1e1b8d7e2e4e7e5c2c3f8e8b1d2b7b6d1c2c8b7\r
+e2e3e7e5b1c3d7d5d2d4e5d4d1d4g8f6e3e4b8c6f1b5c8d7b5c6d7c6e4e5f6e4c3e4d5e4g1e2f8e7\r
+e2e3e7e5d2d4e5d4e3d4d7d5b1c3g8f6c1g5f8e7f1d3e8g8g1e2b8c6e1g1f6e8g5e7c6e7d1d2c7c6\r
+e2e4c7c5b1c3b8c6f2f4e7e6g1f3d7d5f1b5c8d7e4d5c6d4b5d7d8d7f3e5d7d6d5e6d6e6e1g1e8c8\r
+e2e4c7c5b1c3b8c6f2f4e7e6g1f3d7d5f1b5g8e7e4d5e6d5f3e5a7a6b5c6e7c6e1g1f8e7d1f3c8e6\r
+e2e4c7c5b1c3b8c6f2f4e7e6g1f3d7d5f1b5g8e7e4d5e7d5f3e5c8d7b5c6d7c6e5c6b7c6e1g1f8e7\r
+e2e4c7c5b1c3b8c6f2f4g7g6g1f3f8g7f1b5c6d4e1g1a7a6b5d3d7d6f3d4c5d4c3e2g8f6g1h1f6d7\r
+e2e4c7c5b1c3b8c6g1e2d7d6d2d4c5d4e2d4e7e6c1e3g8f6d1d2f8e7f2f3a7a6e1c1e8g8g2g4c6d4\r
+e2e4c7c5b1c3b8c6g1e2e7e5c3d5g8e7e2c3e7d5c3d5f8e7g2g3d7d6f1g2h7h5h2h4c8e6d2d3e6d5\r
+e2e4c7c5b1c3b8c6g1e2e7e6g2g3d7d5e4d5e6d5f1g2d5d4c3d5g8f6e2f4f6d5f4d5f8d6e1g1e8g8\r
+e2e4c7c5b1c3b8c6g1f3g7g6f1b5f8g7e1g1d7d6d2d3c8d7a2a4g8f6h2h3e8g8c1e3e7e5f3d2d7e6\r
+e2e4c7c5b1c3b8c6g2g3g7g6f1g2f8g7d2d3b7b6g1e2d7d6e1g1c8b7f2f4f7f5g3g4f5g4f4f5d8d7\r
+e2e4c7c5b1c3b8c6g2g3g7g6f1g2f8g7d2d3b7b6g1h3c8b7e1g1d7d6f2f4h7h6f4f5g7c3b2c3g6g5\r
+e2e4c7c5b1c3b8c6g2g3g7g6f1g2f8g7d2d3d7d6c1e3a8b8d1d2b7b5g1f3b5b4c3d1c6d4f3h4e7e5\r
+e2e4c7c5b1c3b8c6g2g3g7g6f1g2f8g7d2d3d7d6f2f4e7e5g1f3g8e7e1g1e8g8c1e3c6d4d1d2e5f4\r
+e2e4c7c5b1c3b8c6g2g3g7g6f1g2f8g7d2d3d7d6f2f4e7e5g1h3e5f4c1f4g8e7e1g1h7h6a1b1e8g8\r
+e2e4c7c5b1c3b8c6g2g3g7g6f1g2f8g7d2d3d7d6g1e2c8d7c1e3c6d4h2h3d8c8d1d2a8b8g3g4b7b5\r
+e2e4c7c5b1c3b8c6g2g3g7g6f1g2f8g7d2d3d7d6g1e2e7e5c3d5g8e7c2c3e7d5e4d5c6e7e1g1e8g8\r
+e2e4c7c5b1c3b8c6g2g3g7g6f1g2f8g7d2d3d7d6g1h3g8f6e1g1c8g4f2f3g4h3g2h3e8g8c1e3f6e8\r
+e2e4c7c5b1c3b8c6g2g3g7g6f1g2f8g7d2d3e7e6c1e3d7d6f2f4g8e7g1f3c6d4e1g1c8d7d1d2d8a5\r
+e2e4c7c5b1c3b8c6g2g3g7g6f1g2f8g7d2d3e7e6c1e3d8a5d1d2d7d6f2f4g8e7g1f3c6d4e1g1f7f5\r
+e2e4c7c5b1c3b8c6g2g3g7g6f1g2f8g7d2d3e7e6c1e3d8a5g1e2c6d4e1g1g8e7e3d2d7d6e2d4c5d4\r
+e2e4c7c5b1c3b8c6g2g3g7g6f1g2f8g7d2d3e7e6c1e3g8e7e3c5d7d6c5e3a7a6g1e2c8d7d1d2e8g8\r
+e2e4c7c5b1c3b8c6g2g3g7g6f1g2f8g7d2d3g8f6g1e2e8g8e1g1d7d6a1b1a8b8a2a3b7b5b2b4c5b4\r
+e2e4c7c5b1c3d7d6f2f4b8c6g1f3g7g6f1c4f8g7e1g1e7e6d2d3g8e7d1e1c6d4f3d4c5d4c3e2e8g8\r
+e2e4c7c5b1c3d7d6f2f4g7g6d2d4c5d4d1d4g8f6e4e5b8c6f1b5f6d7b5c6b7c6e5e6d7f6e6f7e8f7\r
+e2e4c7c5b1c3d7d6f2f4g7g6g1f3f8g7f1c4b8c6e1g1e7e6f4f5e6f5d2d3g8e7a2a3h7h6d1e1c8e6\r
+e2e4c7c5b1c3d7d6g1e2g8f6g2g3b8c6f1g2g7g6d2d3f8g7h2h3a8b8c1g5e8g8d1d2b7b5e1g1b5b4\r
+e2e4c7c5b1c3d7d6g1f3g8f6g2g3b8c6f1g2g7g6d2d4c5d4f3d4c6d4d1d4f8g7e1g1e8g8d4b4a7a5\r
+e2e4c7c5b1c3d7d6g2g3b8c6f1g2g7g6d2d3f8g7c1e3a8b8d1d2b7b5g1e2c6d4e1g1e7e6c3d1g8e7\r
+e2e4c7c5b1c3d7d6g2g3b8c6f1g2g7g6d2d3f8g7c1e3a8b8d1d2b7b5g1e2c6d4e1g1e7e6c3d1g8e7\r
+e2e4c7c5b1c3d7d6g2g3b8c6f1g2g7g6d2d3f8g7f2f4e7e6g1f3g8e7e1g1e8g8a1b1b7b6c1d2c8b7\r
+e2e4c7c5b1c3d7d6g2g3b8c6f1g2g7g6d2d3f8g7f2f4e7e6g1f3g8e7e1g1e8g8a2a3c8d7a1b1a8c8\r
+e2e4c7c5b1c3d7d6g2g3b8c6f1g2g7g6d2d3f8g7f2f4g8f6g1f3e8g8e1g1a8b8f3h4c6d4f4f5b7b5\r
+e2e4c7c5b1c3d7d6g2g3b8c6f1g2g7g6d2d3f8g7f2f4g8f6g1f3e8g8e1g1a8b8h2h3b7b5a2a3a7a5\r
+e2e4c7c5b1c3d7d6g2g3b8c6f1g2g7g6d2d3f8g7f2f4g8f6g1f3e8g8e1g1a8b8h2h3b7b5a2a3a7a5\r
+e2e4c7c5b1c3d7d6g2g3b8c6f1g2g7g6d2d3f8g7f2f4g8f6g1f3e8g8e1g1a8b8h2h3b7b5a2a3a7a5\r
+e2e4c7c5b1c3d7d6g2g3b8c6f1g2g7g6d2d3f8g7g1h3e7e6e1g1g8e7c1e3e8g8d1d2c6d4g1h1a8b8\r
+e2e4c7c5b1c3d7d6g2g3g7g6f1g2f8g7d2d3b8c6c1e3g8f6h2h3e8g8g1e2c8d7e1g1a7a6g3g4a8b8\r
+e2e4c7c5b1c3d7d6g2g3g7g6f1g2f8g7d2d3b8c6f2f4e7e6g1f3g8e7e1g1e8g8c1d2a8b8a1b1b7b5\r
+e2e4c7c5b1c3d7d6g2g3g7g6f1g2f8g7d2d3b8c6f2f4e7e6g1f3g8e7e1g1e8g8c1d2a8b8a1b1b7b5\r
+e2e4c7c5b1c3d7d6g2g3g7g6f1g2f8g7d2d3b8c6g1h3e7e6e1g1g8e7c1e3e8g8d1d2e6e5f2f4f7f5\r
+e2e4c7c5b1c3e7e6g1e2b8c6d2d4c5d4e2d4d7d6g2g3g8f6f1g2c8d7e1g1f8e7c1e3e8g8d1e2a7a6\r
+e2e4c7c5b1c3e7e6g1e2b8c6d2d4c5d4e2d4d8c7g2g3a7a6f1g2d7d6e1g1c8d7a2a4g8f6d4c6d7c6\r
+e2e4c7c5b1c3e7e6g1e2b8c6g2g3d7d5e4d5e6d5d2d3g8f6f1g2f8e7c1g5d5d4g5f6e7f6c3e4f6e7\r
+e2e4c7c5b1c3e7e6g1f3a7a6d2d4c5d4f3d4d7d6f1d3g8f6e1g1f8e7f2f4b8c6d4c6b7c6d1e2f6d7\r
+e2e4c7c5b1c3e7e6g1f3a7a6d2d4c5d4f3d4d7d6g2g3b7b6f1g2c8b7e1g1f8e7f2f4d8c7d1e2g8f6\r
+e2e4c7c5b1c3e7e6g1f3a7a6d2d4c5d4f3d4d7d6g2g3b8c6f1g2c8d7e1g1g8f6a2a4f8e7d4c6d7c6\r
+e2e4c7c5b1c3e7e6g1f3a7a6g2g3b7b5f1g2c8b7d2d4b5b4c3a4c5d4f3d4g8f6c1g5d8a5g5f6g7f6\r
+e2e4c7c5b1c3e7e6g1f3a7a6g2g3b7b5f1g2c8b7d2d4g8f6c1g5c5d4f3d4h7h6g5f6d8f6e1g1b8c6\r
+e2e4c7c5b1c3e7e6g1f3b8c6g2g3d7d5f1g2d5d4c3e2g7g6d2d3f8g7e1g1g8e7f3h4e6e5f2f4d8d6\r
+e2e4c7c5b1c3e7e6g1f3d7d6d2d4c5d4f3d4g8f6f1e2a7a6e1g1d8c7c1e3b7b5a2a3c8b7f2f3b8d7\r
+e2e4c7c5b1c3e7e6g1f3d7d6d2d4c5d4f3d4g8f6g2g3f8e7f1g2e8g8e1g1a7a6a2a4d8c7h2h3b8c6\r
+e2e4c7c5b1c3e7e6g2g3d7d5e4d5e6d5f1g2g8f6g1e2d5d4c3e4f6e4g2e4b8d7d2d3d7f6e4g2f8d6\r
+e2e4c7c5b1c3g7g6g2g3f8g7d2d3b8c6f1g2a8b8f2f4d7d6g1f3e7e6e1g1g8e7e4e5d6e5f4e5c6e5\r
+e2e4c7c5c2c3d7d5e4d5d8d5d2d4e7e6g1f3b8c6f1e2g8f6e1g1f8e7c1e3c5d4f3d4c6d4e3d4e8g8\r
+e2e4c7c5c2c3d7d5e4d5d8d5d2d4e7e6g1f3g8f6c1e3c5d4c3d4f8e7b1c3d5d6f1d3b8c6a2a3e8g8\r
+e2e4c7c5c2c3d7d5e4d5d8d5d2d4g8f6g1f3b8c6c1e3c5d4c3d4e7e6b1c3d5d6a2a3f8e7f1d3e8g8\r
+e2e4c7c5c2c3d7d5e4d5d8d5d2d4g8f6g1f3c8g4d4c5d5c5b1a3a7a6c1e3c5c7h2h3g4h5d1a4b8d7\r
+e2e4c7c5c2c3d7d5e4d5d8d5d2d4g8f6g1f3c8g4f1e2e7e6e1g1b8c6c1e3c5d4c3d4f8b4a2a3b4a5\r
+e2e4c7c5c2c3d7d5e4d5d8d5d2d4g8f6g1f3c8g4f1e2e7e6h2h3g4h5e1g1b8c6c1e3c5d4c3d4f8b4\r
+e2e4c7c5c2c3d7d6d2d4g8f6f1d3c5d4c3d4g7g6b1c3f8g7h2h3e8g8g1f3e7e5d4e5d6e5e1g1b8c6\r
+e2e4c7c5c2c3e7e6d2d4d7d5e4d5e6d5c1e3c5c4b2b3c4b3a2b3f8d6f1d3b8c6d1f3g8f6h2h3h7h6\r
+e2e4c7c5c2c3g8f6e4e5f6d5d2d4c5d4g1f3b8c6c3d4d7d6f1c4d5b6c4b5d6e5f3e5c8d7e5d7d8d7\r
+e2e4c7c5c2c3g8f6e4e5f6d5d2d4c5d4g1f3e7e6c3d4d7d6a2a3c8d7f1d3d7c6e1g1b8d7b2b4a7a6\r
+e2e4c7c5c2c3g8f6e4e5f6d5g1f3b8c6f1c4d5b6c4b3c5c4b3c2d8c7d1e2g7g5e5e6d7e6f3g5c7e5\r
+e2e4c7c5c2c3g8f6e4e5f6d5g1f3b8c6f1c4d5b6c4b3c5c4b3c2g7g6b1a3d7d6d1e2d6d5h2h3f8g7\r
+e2e4c7c5c2c3g8f6e4e5f6d5g1f3b8c6f1c4d5b6c4e2d7d6e5d6e7e6d2d4f8d6d4c5d6c5d1d8c6d8\r
+e2e4c7c5c2c3g8f6e4e5f6d5g1f3b8c6f1c4d5b6c4e2d7d6e5d6e7e6d2d4f8d6e1g1e8g8e2d3g7g6\r
+e2e4c7c5c2c3g8f6e4e5f6d5g1f3e7e6d2d4c5d4c3d4b7b6a2a3f8e7b1d2e8g8d2e4f7f5e5f6d5f6\r
+e2e4c7c5c2c3g8f6e4e5f6d5g2g3b8c6f1g2d8c7f2f4e7e6b1a3f8e7g1e2e8g8e1g1a7a6d2d3b7b6\r
+e2e4c7c5d2d3b8c6g1f3g7g6g2g3f8g7f1g2d7d6e1g1g8f6b1d2e8g8a2a4c8d7d2c4d8c8f1e1f6g4\r
+e2e4c7c5g1e2d7d6g2g3g7g6f1g2f8g7c2c3g8f6d2d4e8g8e1g1d8c7b1a3b8c6h2h3f8d8c1e3e7e5\r
+e2e4c7c5g1e2d7d6g2g3g7g6f1g2f8g7e1g1b8c6c2c3e7e5d2d3g8e7a2a3e8g8b2b4b7b6f2f4e5f4\r
+e2e4c7c5g1e2g8f6b1c3d7d6g2g3b8c6f1g2g7g6d2d3f8g7c1e3e8g8h2h3f6e8d1d2c6d4c3d1a8b8\r
+e2e4c7c5g1e2g8f6b1c3d7d6g2g3b8c6f1g2g7g6d2d4c5d4e2d4c6d4d1d4f8g7e1g1e8g8d4d3c8e6\r
+e2e4c7c5g1e2g8f6b1c3d7d6g2g3b8c6f1g2g7g6e1g1f8g7d2d3e8g8h2h3a8b8f2f4c8d7c1e3b7b5\r
+e2e4c7c5g1e2g8f6b1c3d7d6g2g3g7g6f1g2b8c6e1g1f8g7d2d4c5d4e2d4c8g4d4e2d8c8f2f3g4h3\r
+e2e4c7c5g1e2g8f6b1c3e7e6g2g3b8c6f1g2f8e7e1g1d7d6d2d3a7a6a2a3d8c7f2f4b7b5g1h1e8g8\r
+e2e4c7c5g1f3a7a6b1c3e7e6d2d4c5d4f3d4b7b5f1d3d8b6d4b3b6c7e1g1c8b7d1e2d7d6a2a4b5b4\r
+e2e4c7c5g1f3a7a6d2d4c5d4f3d4g8f6b1c3e7e5d4f3f8b4f3e5e8g8f1d3d7d5e1g1b4c3b2c3d5e4\r
+e2e4c7c5g1f3b8c6b1c3e7e5f1c4d7d6d2d3f8e7f3d2e7g5d2f1g5c1a1c1g8e7f1e3e8g8a2a3g8h8\r
+e2e4c7c5g1f3b8c6b1c3g7g6d2d4c5d4f3d4f8g7c1e3g8f6f1e2e8g8d1d2d7d5e4d5f6d5c3d5d8d5\r
+e2e4c7c5g1f3b8c6b1c3g7g6g2g3f8g7f1g2g8f6d2d3e8g8f3h4a8b8f2f4d7d6e1g1c8d7f4f5b7b5\r
+e2e4c7c5g1f3b8c6c2c3d7d5e4d5d8d5d2d4g8f6f1e2e7e6e1g1f8e7b1a3e8g8a3b5d5d8d4c5e7c5\r
+e2e4c7c5g1f3b8c6c2c3g8f6e4e5f6d5f1c4d5b6c4b3d7d5e5d6e7e6d2d4c5d4c3d4f8d6e1g1c6e7\r
+e2e4c7c5g1f3b8c6d2d4c5d4c2c3d4d3c3c4d7d6f1d3g8f6e1g1e7e6b1c3f8e7c1f4e6e5f4g5c8g4\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4d8b6d4b3e7e6f1d3g8f6e1g1f8e7c2c4c6e5b1c3d7d6c1e3b6c7\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4d8c7b1c3e7e6c1e3a7a6f1d3g8f6e1g1c6e5h2h3f8c5d1e2d7d6\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4d8c7b1c3e7e6c1e3a7a6f1d3g8f6e1g1h7h5h2h3b7b5d4c6c7c6\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4d8c7b1c3e7e6f1e2a7a6e1g1g8f6c1e3f8e7f2f4d7d6a2a4e8g8\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4d8c7b1c3e7e6f1e2a7a6e1g1g8f6c1e3f8e7g1h1e8g8f2f4d7d6\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4d8c7b1c3e7e6f1e2a7a6f2f4c6d4d1d4b7b5c1e3c8b7e1g1a8c8\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4d8c7b1c3e7e6g2g3a7a6f1g2g8f6e1g1c6d4d1d4f8c5c1f4d7d6\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4e7e5d4b5a7a6b5d6f8d6d1d6d8f6d6d1f6g6b1c3g8e7h2h4h7h5\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4e7e5d4b5d7d6c2c4c8e6b1c3a7a6b5a3a8c8f1d3f8e7e1g1e7g5\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4e7e5d4b5d7d6c2c4f8e7b1c3a7a6b5a3c8e6f1d3e7g5a3c2g5c1\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4e7e6b1c3d7d6c1e3g8f6f1c4a7a6c4b3d8c7f2f4f8e7d1f3e8g8\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4e7e6b1c3d7d6c1e3g8f6f2f4f8e7d1f3e8g8e1c1d8c7d4b5c7b8\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4e7e6b1c3d7d6g2g3c8d7f1g2c6d4d1d4d7c6e1g1g8f6f1d1f8e7\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4e7e6b1c3d8c7c1e3a7a6a2a3g8f6f2f4d7d6f1d3c6d4e3d4e6e5\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4e7e6b1c3d8c7c1e3a7a6f1d3b7b5d4c6c7c6e1g1c8b7a2a3g8f6\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4e7e6b1c3d8c7c1e3a7a6f1d3g8f6e1g1b7b5d1e2c8b7a1d1c6e5\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4e7e6b1c3d8c7c1e3a7a6f1e2c6d4d1d4b7b5e1g1c8b7a1d1g8f6\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4e7e6b1c3d8c7c1e3a7a6f1e2g8f6a2a3f8e7e1g1e8g8f2f4d7d6\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4e7e6b1c3d8c7f1e2g8f6e1g1a7a6c1e3f8b4d4c6b7c6c3a4e8g8\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4e7e6b1c3d8c7g2g3a7a6f1g2g8f6e1g1f8e7b2b3e8g8c1b2c6d4\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4e7e6d4b5d7d6c1f4e6e5f4e3g8f6e3g5c8e6b1c3a7a6g5f6g7f6\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4e7e6d4b5d7d6c1f4e6e5f4e3g8f6e3g5d8a5d1d2f6e4d2a5c6a5\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4e7e6d4b5d7d6c2c4g8f6b5c3f8e7g2g3e8g8f1g2a7a6e1g1a8b8\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g7g6b1c3f8g7c1e3g8f6f1c4c6a5c4e2e8g8e1g1d7d6f2f4c8d7\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g7g6b1c3f8g7c1e3g8f6f1c4d7d6f2f3c6a5c4b3a5b3a2b3e8g8\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g7g6b1c3f8g7c1e3g8f6f1c4d8a5e1g1e8g8c4b3d7d6h2h3c8d7\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g7g6b1c3f8g7c1e3g8f6f1c4e8g8c4b3d8a5f2f3d7d5e4d5c6b4\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g7g6c2c4f8g7c1e3g8f6b1c3e8g8f1e2b7b6e1g1c8b7f2f3f6h5\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g7g6c2c4f8g7c1e3g8f6b1c3f6g4d1g4c6d4g4d1d4e6d1d2d7d6\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g7g6c2c4g8f6b1c3c6d4d1d4d7d6c1e3f8g7f2f3e8g8d4d2c8e6\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g7g6c2c4g8f6b1c3c6d4d1d4d7d6c4c5f8g7f1b5c8d7b5d7d8d7\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g7g6c2c4g8f6b1c3c6d4d1d4d7d6f1e2f8g7c1e3e8g8d4d2c8e6\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6c1e3f6g4f1b5g4e3f2e3c8d7b5c6b7c6e1g1e7e6\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6c1g5e7e6d1d2a7a6e1c1c8d7f2f4b7b5d4f3b5b4\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6c1g5e7e6d1d2a7a6e1c1c8d7f2f4b7b5g5f6g7f6\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6c1g5e7e6d1d2a7a6e1c1c8d7f2f4b7b5g5f6g7f6\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6c1g5e7e6d1d2a7a6e1c1c8d7f2f4f8e7d4f3b7b5\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6c1g5e7e6d1d2a7a6e1c1c8d7f2f4f8e7f1e2e8g8\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6c1g5e7e6d1d2a7a6e1c1c8d7f2f4h7h6g5h4f6e4\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6c1g5e7e6d1d2a7a6e1c1c8d7h2h3b7b5a2a3f8e7\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6c1g5e7e6d1d2a7a6e1c1h7h6g5e3c8d7f2f3b7b5\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6c1g5e7e6d1d2a7a6e1c1h7h6g5e3c8d7f2f4a8c8\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6c1g5e7e6d1d2a7a6e1c1h7h6g5e3d8c7f2f3a8b8\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6c1g5e7e6d1d2a7a6e1c1h7h6g5e3f6g4d4c6b7c6\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6c1g5e7e6d1d2a7a6e1c1h7h6g5e3f6g4d4c6b7c6\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6c1g5e7e6d1d2a7a6e1c1h7h6g5e3f8e7f2f4c6d4\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6c1g5e7e6d1d2a7a6e1c1h7h6g5f4c8d7d4c6d7c6\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6c1g5e7e6d1d2a7a6f1e2c8d7a1d1d8c7e1g1f8e7\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6c1g5e7e6d1d2f8e7e1c1c6d4d2d4e8g8f2f4h7h6\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6c1g5e7e6d1d2f8e7e1c1e8g8d4b3a7a6g5f6g7f6\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6c1g5e7e6d1d2f8e7e1c1e8g8f2f4c6d4d2d4d8a5\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6c1g5e7e6d1d2f8e7e1c1e8g8f2f4c6d4d2d4h7h6\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6c1g5e7e6d1d2f8e7e1c1e8g8f2f4e6e5d4c6b7c6\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6c1g5e7e6d1d2f8e7e1c1e8g8f2f4h7h6g5h4e6e5\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6c1g5e7e6d1d2f8e7e1c1e8g8f2f4h7h6g5h4f6e4\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6c1g5e7e6d1d2h7h6g5f6g7f6e1c1a7a6f1e2h6h5\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6c1g5e7e6d1d2h7h6g5f6g7f6e1c1a7a6f2f4c8d7\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6c1g5e7e6d1d3a7a6a1d1c8d7f1e2f8e7e1g1e8g8\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6c1g5e7e6f1e2f8e7e1g1e8g8d1d3h7h6g5c1g8h8\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6c1g5e7e6f1e2f8e7e1g1e8g8d4b5a7a6g5f6g7f6\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6c1g5e7e6f2f4f8e7d1d2e8g8e1c1c6d4d2d4d8a5\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6c1g5e7e6g2g3f8e7f1g2e8g8e1g1c6d4d1d4h7h6\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6f1c4c8d7c1g5d8a5g5f6g7f6d4b3a5g5e1g1h8g8\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6f1c4c8d7c4b3g7g6f2f3c6a5c1g5f8g7d1d2h7h6\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6f1c4d8b6d4e2e7e6e1g1f8e7c4b3e8g8g1h1c6a5\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6f1c4e7e6c4b3f8e7e1g1e8g8c1e3c6a5f2f4b7b6\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6f1c4e7e6e1g1a7a6c1e3d8c7c4b3c6a5f2f4b7b5\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6f1c4e7e6e1g1a7a6c1e3d8c7c4b3f8e7f2f4c6a5\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6f1e2e7e5d4b3f8e7e1g1e8g8c1e3c8e6e2f3a7a5\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6f1e2e7e5d4b3f8e7e1g1e8g8c1e3c8e6e2f3c6a5\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6f1e2e7e6c1e3a7a6e1g1d8c7d4b3f8e7f2f4e8g8\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6f1e2g7g6c1e3f8g7h2h4e8g8h4h5d6d5h5g6f7g6\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6f1e2g7g6c1e3f8g7h2h4e8g8h4h5d6d5h5g6h7g6\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6f1e2g7g6c1e3f8g7h2h4h7h5f2f3e8g8d1d2d6d5\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6f1e2g7g6e1g1f8g7d4b3e8g8g1h1a7a6f2f4b7b5\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6g2g3c8g4f2f3g4d7c1e3g7g6d1d2f8g7e1c1e8g8\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3e7e5d4b3f8b4f1d3d7d5e4d5f6d5c1d2d5c3b2c3b4d6\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3e7e5d4b5d7d6c1g5a7a6b5a3b7b5g5f6g7f6c3d5f6f5\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3e7e5d4b5d7d6c1g5a7a6b5a3b7b5g5f6g7f6c3d5f6f5\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3e7e5d4b5d7d6c1g5a7a6g5f6g7f6b5a3d6d5c3d5f8a3\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3e7e5d4b5d7d6c3d5f6d5e4d5c6b8c2c4f8e7f1e2a7a6\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3e7e5d4b5d7d6c3d5f6d5e4d5c6e7a2a4e7f5c2c3g7g6\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3e7e5d4b5d7d6c3d5f6d5e4d5c6e7c2c3e7f5a2a4g7g6\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3e7e5d4b5d7d6c3d5f6d5e4d5c6e7c2c4e7f5f1d3f8e7\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3e7e5d4b5h7h6b5d6f8d6d1d6d8e7d6e7e8e7c1e3d7d6\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3e7e6d4b5d7d6c1f4e6e5f4g5a7a6b5a3b7b5c3d5f8e7\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3e7e6d4c6b7c6e4e5f6d5c3e4d8c7f2f4c7a5c1d2a5b6\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3e7e6f1b5d8b6b5c6d7c6e1g1f8e7e4e5f6d5c3e4c6c5\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3g7g6d4c6b7c6e4e5f6g8f1c4f8g7c1f4d8a5e1g1g7e5\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3g7g6d4c6d7c6d1d8e8d8f1c4d8e8a2a4e7e5f2f4c8e6\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3g7g6f1c4d7d6d4c6b7c6e4e5f6g4e5e6f7f5e1g1f8g7\r
+e2e4c7c5g1f3b8c6f1b5g7g6b5c6b7c6e1g1f8g7f1e1f7f6c2c3g8h6d2d4c5d4c3d4e8g8b1c3d7d6\r
+e2e4c7c5g1f3b8c6f1b5g7g6c2c3g8f6e4e5f6d5e1g1f8g7d2d4c5d4c3d4e8g8b1c3d5c7b5a4d7d6\r
+e2e4c7c5g1f3b8c6f1b5g7g6e1g1f8g7b1c3d7d6d2d3c8d7c3d5e7e6d5e3g8e7c2c3e8g8d3d4c6d4\r
+e2e4c7c5g1f3b8c6f1b5g7g6e1g1f8g7f1e1g8f6c2c3a7a6b5c6d7c6h2h3e8g8d2d4c5d4c3d4c6c5\r
+e2e4c7c5g1f3b8c6f1b5g7g6e1g1f8g7f1e1g8f6c2c3e8g8h2h3e7e5b1a3d7d6b5c6b7c6d2d3a7a5\r
+e2e4c7c5g1f3d7d6b1c3b8c6d2d4c5d4f3d4g8f6c1g5e7e6d1d2a7a6e1c1c8d7f2f4f8e7d4f3b7b5\r
+e2e4c7c5g1f3d7d6b1c3e7e6d2d4c5d4f3d4g8f6c1e3f8e7f2f4b8c6d1f3e6e5d4c6b7c6f4e5d6e5\r
+e2e4c7c5g1f3d7d6b1c3g8f6e4e5d6e5f3e5b8d7e5c4e7e6b2b3f8e7c1b2e8g8d1f3a8b8a2a4b7b6\r
+e2e4c7c5g1f3d7d6b1c3g8f6e4e5d6e5f3e5e7e6g2g3b8d7e5c4d7b6d1e2b6c4e2c4c8d7f1g2d8c8\r
+e2e4c7c5g1f3d7d6c2c3g8f6d1c2b8c6d2d4c5d4c3d4d6d5e4e5f6e4b1c3c8f5c2b3e4c3b2c3d8d7\r
+e2e4c7c5g1f3d7d6c2c3g8f6f1e2g7g6e1g1f8g7e2b5b8c6d2d4c5d4c3d4a7a6b5e2d6d5e4e5f6e4\r
+e2e4c7c5g1f3d7d6c2c3g8f6f1e2g7g6e1g1f8g7e2b5b8c6d2d4e8g8d4d5c6a5f1e1e7e6b5f1e6d5\r
+e2e4c7c5g1f3d7d6c2c3g8f6f1e2g7g6e1g1f8g7e2b5c8d7b5d7d8d7f1e1e8g8d2d4b8a6e4e5d6e5\r
+e2e4c7c5g1f3d7d6d2d4c5d4d1d4b8c6f1b5a7a6b5c6b7c6e1g1e7e5d4d3f8e7f1d1g8f6c1g5e8g8\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4b8c6b1c3e7e6f1e2g8f6c1e3f8e7f2f4e8g8e1g1c8d7d4b3a7a5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6a2a4b8c6f1e2e7e5d4b3f8e7e1g1e8g8c1g5c8e6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6a2a4b8c6f1e2g7g6c1e3f8g7e1g1e8g8f2f4c8d7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1e3e7e5d4b3c8e6d1d2b8d7f2f3a8c8g2g4f8e7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1e3e7e5d4f3d8c7a2a4f8e7a4a5b8d7f3d2d7c5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1e3e7e5d4f3d8c7a2a4f8e7a4a5e8g8f1e2c8e6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1e3e7e5d4f3f8e7f1c4c8e6c4e6f7e6f3g5d8d7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1e3e7e6d1d2b7b5f2f3c8b7g2g4b8c6d4c6b7c6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1e3e7e6f1e2f8e7f2f4b8c6d1d2c6d4d2d4e8g8\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1e3e7e6f2f3b7b5g2g4h7h6d1d2b8d7e1c1c8b7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1e3e7e6f2f4b7b5d1f3c8b7f1d3b8d7g2g4d7c5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1e3e7e6g2g4h7h6d1e2b8c6e1c1c8d7f2f3a8c8\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1g5b8c6d1d2e7e6e1c1c8d7f2f4h7h6g5h4g7g5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1g5b8d7f1c4d8a5d1d2h7h6g5f6d7f6e1c1e7e6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1g5e7e6d1d3f8e7f1e2h7h6g5h4b8d7e1c1d8c7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1g5e7e6f2f4b7b5e4e5d6e5f4e5d8c7e5f6c7e5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1g5e7e6f2f4b7b5e4e5d6e5f4e5d8c7f1b5a6b5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1g5e7e6f2f4b8d7d1f3d8c7e1c1b7b5f1d3c8b7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1g5e7e6f2f4b8d7d1f3d8c7e1c1b7b5f1d3c8b7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1g5e7e6f2f4c8d7d1f3b8c6e1c1d8c7d4c6b7c6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1g5e7e6f2f4d8b6d1d2b6b2a1b1b2a3f4f5b8c6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1g5e7e6f2f4d8b6d1d2b6b2a1b1b2a3f4f5b8c6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1g5e7e6f2f4d8b6d1d2b6b2a1b1b2a3f4f5b8c6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1g5e7e6f2f4d8b6d1d2b6b2d4b3b2a3f1d3f8e7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1g5e7e6f2f4d8b6d1d2b6b2d4b3b2a3g5f6g7f6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1g5e7e6f2f4d8b6d1d2b6b2d4b3b2a3g5f6g7f6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1g5e7e6f2f4d8b6d1d2b6b2d4b3b2a3g5f6g7f6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1g5e7e6f2f4d8b6d1d2b6b2d4b3b8c6g5f6g7f6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1g5e7e6f2f4f8e7d1f3b8d7f1c4h7h6g5f6e7f6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1g5e7e6f2f4f8e7d1f3d8c7e1c1b8d7d1e1h7h6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1g5e7e6f2f4f8e7d1f3d8c7e1c1b8d7f1d3b7b5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1g5e7e6f2f4f8e7d1f3d8c7e1c1b8d7f1e2b7b5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1g5e7e6f2f4f8e7d1f3d8c7e1c1b8d7f4f5e6e5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1g5e7e6f2f4f8e7d1f3d8c7e1c1b8d7g2g4b7b5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1g5e7e6f2f4f8e7d1f3d8c7e1c1b8d7g2g4b7b5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1g5e7e6f2f4f8e7d1f3d8c7e1c1b8d7g2g4b7b5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1g5e7e6f2f4f8e7d1f3d8c7e1c1b8d7g2g4b7b5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1g5e7e6f2f4h7h6g5h4d8b6a2a3b8c6h4f2b6c7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1g5e7e6f2f4h7h6g5h4d8b6a2a3b8c6h4f2b6c7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1c4b8d7a2a4g7g6e1g1f8g7c1g5e8g8d1d2d7c5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1c4e7e6a2a3f8e7e1g1e8g8c4a2b7b5f2f4c8b7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1c4e7e6c4b3b7b5e1g1f8e7d1f3d8c7f3g3b8c6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1c4e7e6c4b3b7b5e1g1f8e7d1f3d8c7f3g3e8g8\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1c4e7e6c4b3b7b5e1g1f8e7d1f3d8c7f3g3e8g8\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1c4e7e6c4b3b7b5f2f3f8e7c1e3e8g8d1d2d8c7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1c4e7e6c4b3b7b5f2f4b5b4c3a4f6e4e1g1g7g6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1c4e7e6c4b3b8c6c1e3f8e7f2f4e8g8e1g1c6d4\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1c4e7e6c4b3b8c6f2f4f8e7c1e3e8g8d1f3c6d4\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1c4e7e6c4b3b8d7f2f4d7c5d1f3b7b5f4f5c8d7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1c4e7e6c4b3b8d7f2f4d7c5e4e5d6e5f4e5f6d7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1c4e7e6c4b3b8d7f2f4d7c5f4f5f8e7d1f3e8g8\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1c4e7e6c4b3f8e7f2f4e8g8d1f3d8c7e1g1b7b5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1d3g7g6h2h3f8g7c1e3b8c6e1g1e8g8f1e1c8d7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2d8c7c1g5b8d7e1g1e7e6e2h5c7c4d4e6c4e6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2d8c7e1g1e7e6f2f4b8c6c1e3f8e7d1e1c6d4\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2e7e5d4b3c8e6e1g1b8d7a2a4f8e7f2f4d8c7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2e7e5d4b3c8e6e1g1b8d7a2a4f8e7f2f4d8c7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2e7e5d4b3c8e6e1g1b8d7c1e3f8e7f2f3d7b6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2e7e5d4b3c8e6e1g1b8d7f2f4d8c7a2a4f8e7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2e7e5d4b3c8e6e1g1b8d7f2f4d8c7f4f5e6c4\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2e7e5d4b3c8e6e1g1f8e7f2f4e5f4c1f4e8g8\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2e7e5d4b3c8e6f2f4d8c7f4f5e6c4e2f3a6a5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2e7e5d4b3f8e7c1e3b8d7e1g1e8g8f2f3d8c7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2e7e5d4b3f8e7c1e3c8e6e1g1b8d7f2f4a8c8\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2e7e5d4b3f8e7c1g5b8d7a2a4b7b6c3d5c8b7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2e7e5d4b3f8e7e1g1c8e6f2f4d8c7a2a4b8d7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2e7e5d4b3f8e7e1g1c8e6f2f4d8c7a2a4b8d7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2e7e5d4b3f8e7e1g1c8e6f2f4d8c7a2a4b8d7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2e7e5d4b3f8e7e1g1c8e6f2f4d8c7a2a4b8d7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2e7e5d4b3f8e7e1g1c8e6f2f4d8c7g2g4h7h6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2e7e5d4b3f8e7e1g1e8g8c1e3c8e6f2f4e5f4\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2e7e5d4b3f8e7e1g1e8g8c1e3d8c7a2a4c8e6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2e7e5d4b3f8e7e1g1e8g8c1e3d8c7a2a4c8e6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2e7e5d4b3f8e7e1g1e8g8c1e3f8e8d1d2d8c7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2e7e6e1g1d8c7f2f4f8e7c1e3b8d7e2f3d7b6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2e7e6e1g1f8e7a2a4b8c6c1e3e8g8f2f4d8c7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2e7e6e1g1f8e7a2a4b8c6c1e3e8g8f2f4d8c7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2e7e6e1g1f8e7a2a4b8c6c1e3e8g8f2f4d8c7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2e7e6e1g1f8e7a2a4b8c6c1e3e8g8f2f4d8c7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2e7e6e1g1f8e7a2a4b8c6c1e3e8g8f2f4d8c7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2e7e6e1g1f8e7f2f4e8g8g1h1b8c6c1e3d8c7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2e7e6e1g1f8e7f2f4e8g8g1h1d8c7a2a4b8c6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2e7e6e1g1f8e7f2f4e8g8g1h1d8c7a2a4b8c6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2e7e6e1g1f8e7f2f4e8g8g1h1d8c7a2a4b8c6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2e7e6e1g1f8e7f2f4e8g8g1h1d8c7a2a4b8c6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2e7e6e1g1f8e7f2f4e8g8g1h1d8c7a2a4b8c6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2e7e6e1g1f8e7f2f4e8g8g1h1d8c7d1e1b7b5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2e7e6e1g1f8e7f2f4e8g8g1h1d8c7e2f3b8c6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2e7e6f2f4f8e7e1g1e8g8g1h1d8c7d1e1b7b5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f2f4b8d7f1e2g7g6e1g1f8g7a2a4e8g8g1h1d8c7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f2f4d8c7f1e2e7e5d4b3b7b5e1g1c8b7d1d3b8d7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f2f4d8c7f1e2e7e6e1g1f8e7a2a4b8c6c1e3e8g8\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f2f4d8c7f1e2e7e6e1g1f8e7g1h1e8g8a2a4b8c6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f2f4e7e5d4f3b8d7a2a4d8c7f1d3f8e7e1g1e8g8\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f2f4e7e5d4f3b8d7a2a4d8c7f1d3g7g6e1g1b7b6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f2f4e7e5d4f3b8d7a2a4f8e7f1c4e8g8d1e2d8a5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f2f4e7e6c1e3b7b5d1f3c8b7f1d3b8d7a2a3d7c5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6g2g3e7e5d4e2c8e6f1g2b7b5a2a4b5b4c3d5f6d5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6g2g3e7e5d4e2c8e6f1g2b7b5e1g1b8d7a2a4b5b4\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6g2g3e7e5d4e2c8g4f1g2d8d7h2h3g4e6c3d5e6d5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6g2g3e7e5d4e2f8e7f1g2e8g8a2a4b7b6e1g1c8b7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6g2g3e7e5d4e2f8e7f1g2e8g8a2a4b8c6e1g1c6b4\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6g2g3e7e6f1g2f8e7e1g1e8g8b2b3d8c7c1b2b8c6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3b8c6c1g5d8b6d4b3e7e6d1d2f8e7f2f3e8g8g2g4f8d8\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3b8c6c1g5e7e6d1d2a7a6e1c1c6d4d2d4f8e7f2f3d8c7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3b8c6c1g5e7e6d1d2a7a6e1c1c8d7f2f3d8c7c1b1f8e7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3b8c6c1g5e7e6d1d2a7a6e1c1c8d7f2f4b7b5d4c6d7c6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3b8c6c1g5e7e6d1d2a7a6e1c1c8d7f2f4b7b5d4c6d7c6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3b8c6c1g5e7e6d1d2a7a6e1c1f8e7f2f4c8d7d4f3b7b5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3b8c6c1g5e7e6d1d2a7a6e1c1f8e7g5f6g7f6f1c4c6d4\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3b8c6c1g5e7e6d1d2a7a6e1c1h7h6g5e3c6d4e3d4b7b5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3b8c6c1g5e7e6d1d2a7a6e1c1h7h6g5e3c6d4e3d4b7b5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3b8c6c1g5e7e6d1d2f8e7e1c1e8g8d4b3a7a5a2a4d6d5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3b8c6c1g5e7e6d1d2f8e7e1c1e8g8d4b3a7a5a2a4d6d5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3b8c6c1g5e7e6d1d2f8e7e1c1e8g8d4b3a7a6g5f6g7f6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3b8c6c1g5e7e6d1d2f8e7e1c1e8g8f2f4c6d4d2d4d8a5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3b8c6c1g5e7e6d1d2f8e7e1c1e8g8f2f4c6d4d2d4d8a5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3b8c6c1g5e7e6d1d2f8e7e1c1e8g8f2f4c6d4d2d4d8a5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3b8c6c1g5e7e6d1d2f8e7e1c1e8g8f2f4h7h6g5h4e6e5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3b8c6c1g5e7e6d1d2f8e7e1c1e8g8f2f4h7h6g5h4e6e5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3b8c6f1c4e7e6c4b3a7a6f2f4f8e7c1e3d8c7e1g1b7b5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3b8c6f1c4e7e6c4b3f8e7c1e3e8g8e1g1a7a6f2f4c6d4\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3b8c6f1c4e7e6c4b3f8e7c1e3e8g8e1g1c8d7f2f4d8c8\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3b8c6f1c4e7e6c4b3f8e7c1e3e8g8f2f4c8d7e1g1a7a6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3b8c6f1c4e7e6c4b3f8e7e1g1c6d4d1d4e8g8f2f4b7b6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3b8c6f1c4e7e6c4b3f8e7e1g1e8g8c1e3a7a6f2f4d8c7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3b8c6f1c4e7e6c4b3f8e7e1g1e8g8f2f4c8d7g1h1a8c8\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3b8c6f1c4e7e6c4b3f8e7f2f4e8g8c1e3c6d4e3d4b7b5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3b8c6f1e2g7g6d4b3f8g7e1g1e8g8c1g5a7a6a2a4c8e6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3b8d7f1c4a7a6c1g5d8a5d1d2e7e6e1g1h7h6g5h4g7g5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3c8d7c1g5e7e6d4b5d7b5f1b5b8c6d1f3h7h6g5h4f8e7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3c8d7f1e2e7e6e1g1f8e7f2f4b8c6d4b3e8g8c1e3a8c8\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3e7e6f1e2a7a6e1g1b8d7f2f4b7b5e2f3c8b7a2a3d8c7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3e7e6f1e2f8e7e1g1b8c6f2f4e8g8g1h1c8d7d4b3a7a6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3e7e6f1e2f8e7e1g1e8g8c1e3b8c6f2f4e6e5d4b3e5f4\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3e7e6f1e2f8e7e1g1e8g8f2f4b8c6c1e3a7a6d1e1c6d4\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3e7e6f1e2f8e7e1g1e8g8f2f4b8c6c1e3e6e5d4b3a7a5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3e7e6f2f4a7a6d1f3d8b6d4b3b8c6f1d3f8e7c1e3b6c7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3e7e6f2f4a7a6f1e2f8e7e1g1d8c7d1e1e8g8e1g3b8c6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3e7e6g2g3b8c6f1g2c8d7e1g1f8e7c1e3c6e5a2a4a7a6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3e7e6g2g4a7a6f1g2f6d7e1g1b8c6g1h1f8e7f2f4e8g8\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3e7e6g2g4a7a6g4g5f6d7a2a4b8c6c1e3d7e5f1e2c6d4\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3e7e6g2g4h7h6g4g5h6g5c1g5a7a6f1g2c8d7d1e2f8e7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3e7e6g2g4h7h6h2h3a7a6f1g2g7g5b2b3b8d7c1b2d7e5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3g7g6c1e3f8g7d1d2b8c6f2f3e8g8f1c4c8d7h2h4h7h5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3g7g6c1e3f8g7d1d2b8d7f2f3a7a6e1c1b7b5g2g4c8b7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3g7g6c1e3f8g7f1e2b8c6e1g1e8g8d4b3a7a6f2f3b7b5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3g7g6c1e3f8g7f2f3b8c6d1d2e8g8e1c1c8e6c1b1a8c8\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3g7g6c1e3f8g7f2f3b8c6d1d2e8g8f1c4c8d7h2h4a8c8\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3g7g6c1e3f8g7f2f3e8g8d1d2b8c6f1c4c8d7c4b3a8c8\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3g7g6c1e3f8g7f2f3e8g8d1d2b8c6f1c4c8d7c4b3a8c8\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3g7g6c1e3f8g7f2f3e8g8d1d2b8c6f1c4c8d7e1c1c6e5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3g7g6c1e3f8g7f2f3e8g8d1d2b8c6f1c4c8d7h2h4h7h5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3g7g6c1e3f8g7f2f3e8g8d1d2b8c6g2g4c8e6e1c1c6d4\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3g7g6c1e3f8g7f2f3e8g8d1d2f8e8g2g4b8c6h2h4f6d7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3g7g6f1e2f8g7c1e3e8g8e1g1b8c6d1d2d6d5e4d5f6d5\r
+e2e4c7c5g1f3d7d6d2d4g8f6b1c3c5d4f3d4a7a6c1g5e7e6f2f4d8b6d1d3b6b2a1b1b2a3f4f5b8c6\r
+e2e4c7c5g1f3d7d6d2d4g8f6b1c3c5d4f3d4a7a6f1c4e7e6a2a4f8e7e1g1e8g8c1e3b7b6f2f4d8c7\r
+e2e4c7c5g1f3d7d6d2d4g8f6b1c3c5d4f3d4e7e6f1e2a7a6a2a4b7b6e1g1c8b7e2d3b8d7d1e2f8e7\r
+e2e4c7c5g1f3d7d6f1b5b8c6d2d4c5d4d1d4c8g4d4d3a8c8c2c4g7g6b1c3f8g7e1g1g4f3d3f3g8f6\r
+e2e4c7c5g1f3d7d6f1b5b8c6e1g1c8d7f1e1g8f6c2c3a7a6b5f1d7g4d2d3g7g6b1d2f8g7h2h3g4d7\r
+e2e4c7c5g1f3d7d6f1b5b8c6e1g1c8d7f1e1g8f6c2c3a7a6b5f1d7g4d2d3g7g6b1d2f8g7h2h3g4f3\r
+e2e4c7c5g1f3d7d6f1b5b8c6e1g1c8g4h2h3g4h5c2c3d8b6b1a3a7a6b5a4b6c7d2d4b7b5a3b5a6b5\r
+e2e4c7c5g1f3d7d6f1b5b8d7c2c3g8f6d1e2e7e6d2d4c5d4c3d4f8e7e1g1e8g8c1d2a7a6b5d3e6e5\r
+e2e4c7c5g1f3d7d6f1b5b8d7c2c3g8f6d2d3g7g6e1g1f8g7f1e1a7a6b5a4b7b5a4c2e8g8a2a4c8b7\r
+e2e4c7c5g1f3d7d6f1b5c8d7b5d7b8d7e1g1g8f6d1e2e7e6b2b3f8e7c1b2e8g8c2c4a7a6d2d4c5d4\r
+e2e4c7c5g1f3d7d6f1b5c8d7b5d7b8d7e1g1g8f6d1e2e7e6b2b3f8e7c1b2e8g8d2d4c5d4f3d4d7c5\r
+e2e4c7c5g1f3d7d6f1b5c8d7b5d7b8d7e1g1g8f6d1e2e7e6b2b3g7g6d2d4c5d4f3d4f8g7c1a3d8b6\r
+e2e4c7c5g1f3d7d6f1b5c8d7b5d7d8d7c2c4b8c6b1c3g8f6e1g1g7g6d2d4c5d4f3d4f8g7d4c2e8g8\r
+e2e4c7c5g1f3d7d6f1b5c8d7b5d7d8d7c2c4e7e5b1c3b8c6d2d3g7g6a2a3f8g7a1b1g8e7b2b4b7b6\r
+e2e4c7c5g1f3d7d6f1b5c8d7b5d7d8d7c2c4g8f6b1c3b8c6e1g1g7g6d2d4c5d4f3d4f8g7d4e2e8g8\r
+e2e4c7c5g1f3d7d6f1b5c8d7b5d7d8d7c2c4g8f6b1c3b8c6e1g1g7g6d2d4c5d4f3d4f8g7d4e2e8g8\r
+e2e4c7c5g1f3d7d6f1b5c8d7b5d7d8d7e1g1b8c6c2c3g8f6d2d4f6e4d4d5c6e5f1e1e5f3d1f3e4f6\r
+e2e4c7c5g1f3d7d6f1b5c8d7b5d7d8d7e1g1b8c6c2c4c6e5d2d3g7g6f3e5d6e5c1e3e7e6b1c3f8d6\r
+e2e4c7c5g1f3d7d6f1b5c8d7b5d7d8d7e1g1b8c6f1e1g8f6d2d4c5d4c1g5d6d5g5f6g7f6e4d5d7d5\r
+e2e4c7c5g1f3d7d6f1b5c8d7b5d7d8d7e1g1g8f6f1e1b8c6c2c3e7e6d2d4c5d4c3d4d6d5e4e5f6e4\r
+e2e4c7c5g1f3d7d6f1b5c8d7b5d7d8d7e1g1g8f6f1e1b8c6d2d4c5d4c1g5f6g4f3d4h7h6g5h4g7g5\r
+e2e4c7c5g1f3d7d6f1c4g8f6d2d3e7e6c4b3b8c6c2c3g7g6e1g1f8g7f1e1e8g8d3d4c5d4c3d4e6e5\r
+e2e4c7c5g1f3d7d6g2g3b8c6f1g2g8f6b1c3g7g6e1g1f8g7d2d3e8g8c1g5h7h6g5d2e7e5a2a3c8e6\r
+e2e4c7c5g1f3d7d6g2g3e7e5f1g2g7g6e1g1f8g7c2c3b8c6d2d3g8e7a2a3e8g8b2b4c5b4a3b4b7b5\r
+e2e4c7c5g1f3e7e6b1c3a7a6d2d4c5d4f3d4d8c7f1d3b8c6c1e3g8f6e1g1b7b5d4c6c7c6a2a3f8c5\r
+e2e4c7c5g1f3e7e6b1c3d7d6d2d4c5d4d1d4b8c6f1b5c8d7d4d3a7a6b5c6d7c6c1f4e6e5f4e3g8f6\r
+e2e4c7c5g1f3e7e6b2b3b8c6c1b2d7d6g2g3g8f6d2d3f8e7f1g2e8g8e1g1f6d7f1e1e7f6c2c3b7b6\r
+e2e4c7c5g1f3e7e6c2c3g8f6e4e5f6d5d2d4c5d4c3d4f8e7a2a3b7b6f1d3c8a6e1g1e8g8f1e1a6d3\r
+e2e4c7c5g1f3e7e6c2c3g8f6e4e5f6d5d2d4c5d4d1d4b8c6d4e4f7f5e5f6d5f6e4h4d8c7f1e2b7b6\r
+e2e4c7c5g1f3e7e6d2d3d7d5b1d2b8c6g2g3g7g6f1g2f8g7e1g1g8e7f1e1e8g8c2c3b7b6d2f1c8b7\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4a7a6b1c3b7b5f1d3c8b7e1g1d8c7f1e1f8c5c1e3g8f6d4b5a6b5\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4a7a6b1c3b8c6c1e3g8f6f1d3d7d5e4d5e6d5e1g1f8d6d4c6b7c6\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4a7a6b1c3d8c7a2a3b8c6c1e3g8f6f1e2b7b5f2f4c8b7e2f3d7d6\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4a7a6b1c3d8c7f1d3b8c6c1e3g8f6e1g1b7b5d4b3f8e7f2f4d7d6\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4a7a6b1c3d8c7f2f4b7b5a2a3c8b7d1f3g8f6f1d3f8c5d4b3c5e7\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4a7a6c2c4g8f6b1c3f8b4d1f3d8c7d4c2b4d6f1e2b8c6f3e3b7b6\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4a7a6c2c4g8f6b1c3f8b4f1d3b8c6d4e2d8c7e1g1c6e5f2f4e5c4\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4a7a6c2c4g8f6f1d3b8c6d4c6d7c6e1g1e6e5d1c2f8c5b1d2c8e6\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4a7a6f1d3b8c6d4c6b7c6e1g1d7d5b1d2g8f6b2b3f8b4c1b2a6a5\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4a7a6f1d3b8c6d4c6b7c6e1g1d7d5b1d2g8f6d1e2f8e7b2b3e8g8\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4a7a6f1d3b8c6d4c6b7c6e1g1d7d5b1d2g8f6d1e2f8e7f1e1e8g8\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4a7a6f1d3b8c6d4c6b7c6e1g1d7d5c2c4g8f6c4d5c6d5e4d5e6d5\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4a7a6f1d3b8c6d4c6d7c6e1g1e6e5b1d2d8c7a2a4g8f6d1f3f8c5\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4a7a6f1d3f8c5c1e3d7d6b1c3g8e7e1g1b8d7d1e2b7b5a2a4d8b6\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4a7a6f1d3f8c5d4b3c5a7d1e2b8c6c1e3d7d6b1c3g8e7e1g1e6e5\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4a7a6f1d3f8c5d4b3c5a7e1g1b8c6d1g4g8f6g4g7h8g8g7h6c6e5\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4a7a6f1d3g8f6e1g1d7d6c2c4f8e7b1c3e8g8c1e3b8d7f2f4d7c5\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4a7a6f1d3g8f6e1g1d8c7b1d2f8c5d2b3c5e7f2f4d7d6d1f3e8g8\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4a7a6f1d3g8f6e1g1d8c7d1e2d7d6c2c4g7g6b1c3f8g7f1d1e8g8\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4a7a6f1d3g8f6e1g1d8c7f2f4f8c5c2c3b8c6g1h1d7d6d4b3c5a7\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4b8c6b1c3a7a6d4c6b7c6f1d3d7d5e1g1g8f6f1e1f8e7e4e5f6d7\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4b8c6b1c3a7a6f1e2d7d6c1e3f8e7f2f4g8f6d1d2c6d4d2d4b7b5\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4b8c6b1c3a7a6f1e2d7d6e1g1g8f6c1e3f8e7f2f4e8g8a2a4d8c7\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4b8c6b1c3a7a6g2g3d7d6f1g2c8d7e1g1g8f6b2b3f8e7c3e2a8c8\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4b8c6b1c3a7a6g2g3d7d6f1g2c8d7e1g1g8f6f1e1f8e7d4c6d7c6\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4b8c6b1c3d7d6c1e3g8f6f1e2f8e7f2f4e8g8d1d2a7a6e1c1d6d5\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4b8c6b1c3d7d6c1e3g8f6f2f4f8e7d1e2e6e5d4f3a7a6e1c1d8a5\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4b8c6b1c3d7d6c1e3g8f6f2f4f8e7f1e2e8g8e1g1c8d7d4b3a7a6\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4b8c6b1c3d7d6f1e2g8f6c1e3c8d7f2f4f8e7d4b3a7a6a2a4c6a5\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4b8c6b1c3d7d6f1e2g8f6c1e3c8d7f2f4f8e7d4b5d8b8g2g4a7a6\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4b8c6b1c3d7d6f1e2g8f6c1e3c8d7f2f4f8e7d4b5d8b8g2g4a7a6\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4b8c6b1c3d7d6f1e2g8f6c1e3f8e7e1g1c8d7d4b3a7a6f2f4b7b5\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4b8c6b1c3d7d6f1e2g8f6c1e3f8e7f2f4c8d7e1g1e8g8g1h1a7a6\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4b8c6b1c3d7d6f1e2g8f6c1e3f8e7f2f4e8g8e1g1c8d7d4b3a7a6\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4b8c6b1c3d7d6g2g3g8f6f1g2c8d7e1g1c6d4d1d4d8c7c3d1f8e7\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4b8c6b1c3d7d6g2g4h7h6h2h4a7a6f1g2f8e7c1e3c6d4d1d4e6e5\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4b8c6b1c3d8c7c1e3a7a6f1d3g8f6e1g1c6e5h2h3f8c5d1d2d7d6\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4b8c6b1c3d8c7c1e3a7a6f1d3g8f6e1g1c6e5h2h3f8c5g1h1d7d6\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4b8c6b1c3d8c7c1e3a7a6f1e2g8f6a2a3f8d6d1d2c6d4e3d4d6f4\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4b8c6b1c3d8c7c1e3g8f6f1d3c6d4e3d4f8c5d4c5c7c5d1e2d7d6\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4b8c6b1c3d8c7f1e2a7a6e1g1g8f6c1e3f8b4c3a4b4e7d4c6b7c6\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4b8c6b1c3d8c7f1e2a7a6e1g1g8f6g1h1f8b4c1g5b4c3g5f6g7f6\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4b8c6b1c3d8c7f1e2b7b6c1e3c8b7d1d2c6d4e3d4a7a6a1d1g8f6\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4b8c6b1c3d8c7g2g3d7d6f1g2c6d4d1d4g8f6c1g5f8e7e1c1c8d7\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4b8c6d4b5d7d6c1f4e6e5f4e3g8f6e3g5c8e6b1c3a7a6g5f6g7f6\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4b8c6d4b5d7d6c2c4g8f6b1c3a7a6b5a3d6d5c4d5e6d5e4d5c6b4\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4b8c6d4b5d7d6c2c4g8f6b1c3a7a6b5a3d6d5e4d5e6d5c4d5c6b4\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4b8c6d4b5d7d6c2c4g8f6b1c3a7a6b5a3f8e7f1e2e8g8e1g1b7b6\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4b8c6d4b5d7d6c2c4g8f6b1c3a7a6b5a3f8e7f1e2e8g8e1g1b7b6\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4b8c6d4b5d7d6c2c4g8f6b1c3a7a6b5a3f8e7f1e2e8g8e1g1b7b6\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4b8c6d4b5d7d6c2c4g8f6b1c3a7a6b5a3f8e7f1e2e8g8e1g1b7b6\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4b8c6d4b5d7d6c2c4g8f6b1c3a7a6b5a3f8e7f1e2e8g8e1g1b7b6\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4b8c6d4b5d7d6c2c4g8f6b1c3a7a6b5a3f8e7f1e2e8g8e1g1b7b6\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4b8c6d4b5d7d6c2c4g8f6b5c3f8e7f1e2e8g8e1g1b7b6c1f4c8b7\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4b8c6d4b5g8f6b1c3f8b4a2a3b4c3b5c3d7d5e4d5e6d5f1d3e8g8\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4g8f6b1c3b8c6d4b5d7d6c1f4e6e5f4g5a7a6b5a3b7b5c3d5f8e7\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4g8f6b1c3b8c6d4b5d7d6c1f4e6e5f4g5a7a6b5a3b7b5g5f6g7f6\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4g8f6b1c3b8c6d4b5d7d6c1f4e6e5f4g5a7a6b5a3b7b5g5f6g7f6\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4g8f6b1c3b8c6d4b5f8b4a2a3b4c3b5c3d7d5e4d5e6d5f1d3d5d4\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4g8f6b1c3b8c6d4b5f8b4a2a3b4c3b5c3d7d5e4d5e6d5f1d3e8g8\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4g8f6b1c3b8c6d4b5f8b4a2a3b4c3b5c3d7d5e4d5e6d5f1d3e8g8\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4g8f6b1c3d7d6f1c4f8e7c1e3e8g8f2f4d6d5c4d3d5e4c3e4f6d5\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4g8f6b1c3d7d6f1c4f8e7e1g1a7a6c4b3b7b5f2f4e8g8f4f5b5b4\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4g8f6b1c3d7d6f1e2f8e7e1g1b8c6g1h1a7a6a2a4e8g8f2f4d8c7\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4g8f6b1c3d7d6f1e2f8e7e1g1e8g8f2f4b8c6c1e3c8d7d4b3a7a5\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4g8f6b1c3d7d6f1e2f8e7e1g1e8g8f2f4b8c6c1e3d8c7d4b5c7b8\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4g8f6b1c3d7d6f2f4a7a6d1f3d8b6d4b3b8c6c1e3b6c7f1d3b7b5\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4g8f6b1c3d7d6f2f4a7a6f1e2f8e7e1g1e8g8c1e3b8c6a2a4f8e8\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4g8f6b1c3d7d6f2f4a7a6f1e2f8e7e1g1e8g8c1e3d8c7d1e1f8e8\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4g8f6b1c3d7d6f2f4b8c6c1e3e6e5d4f3f6g4d1d2g4e3d2e3e5f4\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4g8f6b1c3d7d6f2f4f8e7f1d3b8c6d4f3a7a6a2a3b7b5e1g1c8b7\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4g8f6b1c3d7d6g2g3a7a6f1g2d8c7e1g1c8d7g1h1b8c6f2f4a8c8\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4g8f6b1c3d7d6g2g4h7h6g4g5h6g5c1g5b8c6d1d2a7a6e1c1c8d7\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4g8f6b1c3d7d6g2g4h7h6g4g5h6g5c1g5b8c6d1d2a7a6e1c1c8d7\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4g8f6b1c3d7d6g2g4h7h6h1g1f8e7c1e3b8c6d1f3a7a6e1c1d8c7\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4g8f6b1c3d7d6g2g4h7h6h2h4b8c6h1g1h6h5g4h5f6h5c1g5h5f6\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4g8f6b1c3d7d6g2g4h7h6h2h4f8e7h1g1d6d5e4d5f6d5c3d5d8d5\r
+e2e4c7c5g1f3e7e6g2g3b7b6f1g2c8b7d2d3d7d6e1g1g8f6f1e1f8e7b1d2e8g8c2c3b8d7a2a3a8c8\r
+e2e4c7c5g1f3e7e6g2g3b8c6f1g2g8f6d2d3d7d5b1d2f8e7e1g1b7b5a2a4b5a4a1a4e8g8e4d5e6d5\r
+e2e4c7c5g1f3e7e6g2g3b8c6f1g2g8f6d2d3d7d5b1d2f8e7e1g1e8g8f1e1b7b5e4d5e6d5d2f1c8b7\r
+e2e4c7c5g1f3g7g6c2c4f8g7d2d4d7d6b1c3b8c6c1e3c8g4d4c5d6c5d1d8a8d8e3c5g7c3b2c3g8f6\r
+e2e4c7c5g1f3g7g6d2d4c5d4f3d4b8c6b1c3f8g7c1e3g8f6f1c4d8a5e1g1e8g8c4b3d7d6h2h3a5h5\r
+e2e4c7c5g1f3g7g6d2d4c5d4f3d4b8c6b1c3f8g7d4c6b7c6f1c4d8a5d1f3g8f6e1g1e8g8a1b1d7d6\r
+e2e4c7c5g1f3g7g6d2d4c5d4f3d4b8c6b1c3f8g7d4c6b7c6f1c4e7e6e1g1g8e7d1d6c8b7c1g5h7h6\r
+e2e4c7c5g1f3g7g6d2d4f8g7b1c3b8c6c1e3c5d4f3d4g8f6f1c4e8g8c4b3d7d6f2f3c6a5d1d2a5b3\r
+e2e4c7c5g1f3g7g6d2d4f8g7d4d5d7d6b1c3g8f6f1b5b8d7a2a4e8g8e1g1a7a6b5e2a8b8f1e1f6e8\r
+e2e4c7c5g1f3g7g6f1c4b8c6e1g1f8g7c2c3g8h6d2d4c5d4c3d4e8g8b1c3d7d6h2h3g8h8c1f4f7f6\r
+e2e4c7c6b1c3d7d5d1f3g8f6e4e5f6d7f3g3e7e6g1f3a7a6f1e2c6c5e1g1b8c6f1e1c6d4e2d1d4f5\r
+e2e4c7c6b1c3d7d5d2d4d5e4c3e4c8f5e4g3f5g6g1h3e7e6h3f4f8d6c2c3g8f6h2h4d8c7h4h5d6f4\r
+e2e4c7c6b1c3d7d5d2d4d5e4c3e4c8f5e4g3f5g6h2h4h7h6g1e2e7e5f2f4e5d4e2d4f8c5c1e3g8f6\r
+e2e4c7c6b1c3d7d5d2d4d5e4c3e4c8f5e4g3f5g6h2h4h7h6g1f3b8d7f1d3g6d3d1d3d8c7c1d2g8f6\r
+e2e4c7c6b1c3d7d5g1f3c8g4h2h3g4f3d1f3e7e6d2d3b8d7f1e2g7g6e1g1f8g7f3g3d8b6g1h1g8e7\r
+e2e4c7c6b1c3d7d5g1f3c8g4h2h3g4f3d1f3e7e6d2d4d8b6f1d3b6d4e4d5e6d5c1f4b8d7e1c1d4f6\r
+e2e4c7c6b1c3d7d5g1f3c8g4h2h3g4f3d1f3e7e6g2g3g8f6d2d3f8e7f1g2e8g8e1g1b8a6f3e2f6e8\r
+e2e4c7c6b1c3d7d5g1f3c8g4h2h3g4f3d1f3g8f6d2d3e7e6a2a3f8c5g2g4e8g8h3h4b8d7g4g5f6e8\r
+e2e4c7c6b1c3d7d5g1f3c8g4h2h3g4f3d1f3g8f6d2d3e7e6a2a3f8e7g2g4f6d7d3d4d7f8c1e3f8g6\r
+e2e4c7c6b1c3d7d5g1f3c8g4h2h3g4f3d1f3g8f6d2d3e7e6f1e2b8d7f3g3g7g6e1g1f8g7c1f4d8b6\r
+e2e4c7c6b1c3d7d5g1f3c8g4h2h3g4f3d1f3g8f6d2d3e7e6g2g3f8b4c1d2d5d4c3b1b4d2b1d2e6e5\r
+e2e4c7c6b1c3d7d5g1f3c8g4h2h3g4f3d1f3g8f6d2d3e7e6g2g3f8b4c1d2d5d4c3b1b4d2b1d2e6e5\r
+e2e4c7c6b1c3d7d5g1f3c8g4h2h3g4f3d1f3g8f6d2d3e7e6g2g3f8b4c1d2d5d4c3b1d8b6b2b3a7a5\r
+e2e4c7c6b1c3d7d5g1f3c8g4h2h3g4f3d1f3g8f6d2d3e7e6g2g3f8b4c1d2d5d4c3b1d8b6b2b3a7a5\r
+e2e4c7c6b1c3d7d5g1f3c8g4h2h3g4f3d1f3g8f6d2d3e7e6g2g3f8b4c1d2d5d4c3b1d8b6b2b3b8d7\r
+e2e4c7c6b1c3d7d5g1f3c8g4h2h3g4f3d1f3g8f6d2d4e7e6f1d3d5e4c3e4f6e4f3e4b8d7c2c3d7f6\r
+e2e4c7c6b1c3d7d5g1f3c8g4h2h3g4f3g2f3e7e6d2d4b8d7c1f4f8b4h3h4g8f6e4e5f6h5f4g5d8a5\r
+e2e4c7c6b1c3d7d5g1f3c8g4h2h3g4h5e4d5c6d5f1b5b8c6g2g4h5g6f3e5a8c8h3h4f7f6e5g6h7g6\r
+e2e4c7c6b1c3d7d5g1f3d5e4c3e4c8g4h2h3g4f3d1f3b8d7d2d4g8f6f1d3f6e4f3e4e7e6e1g1f8e7\r
+e2e4c7c6b1c3d7d5g1f3d5e4c3e4c8g4h2h3g4f3d1f3e7e6f1c4b8d7f3g3d7f6d2d3f6e4d3e4g8f6\r
+e2e4c7c6b1c3d7d5g1f3d5e4c3e4c8g4h2h3g4f3d1f3e7e6f1c4f8e7e1g1g8f6f1e1b8d7d2d3f6e4\r
+e2e4c7c6b1c3d7d5g1f3d5e4c3e4g8f6e4f6g7f6f1c4f8g7h2h3c8f5e1g1e7e6f1e1e8g8d2d4b8d7\r
+e2e4c7c6b1c3d7d5g1f3g7g6e4d5c6d5f1b5b8c6f3e5c8d7e5d7d8d7d1f3e7e6c3e2f8g7d2d4g8e7\r
+e2e4c7c6b1c3d7d5g1f3g8f6e4e5f6e4c3e2d8b6d2d4c6c5d4c5b6c5e2d4b8c6f1b5a7a6b5c6b7c6\r
+e2e4c7c6c2c4d7d5c4d5c6d5e4d5g8f6b1c3f6d5g1f3d5c3b2c3g7g6h2h4f8g7h4h5b8c6a1b1d8c7\r
+e2e4c7c6c2c4d7d5c4d5c6d5e4d5g8f6b1c3f6d5g1f3e7e6d2d4f8e7f1c4e8g8e1g1b8c6f1e1a7a6\r
+e2e4c7c6c2c4d7d5e4d5c6d5c4d5g8f6b1c3f6d5f1c4d5b6c4b3b8c6g1f3c8f5d2d4e7e6e1g1f8e7\r
+e2e4c7c6c2c4d7d5e4d5c6d5c4d5g8f6b1c3f6d5g1f3b8c6d2d4c8g4d1b3g4f3g2f3e7e6b3b7c6d4\r
+e2e4c7c6c2c4e7e5g1f3d7d6d2d4e5d4f3d4g8f6b1c3g7g6f1e2f8g7e1g1e8g8c1e3f8e8e2f3b8d7\r
+e2e4c7c6c2c4e7e6b1c3d7d5c4d5e6d5e4d5c6d5g1f3g8f6f1b5b8c6e1g1f8e7f3e5c8d7d2d4e8g8\r
+e2e4c7c6d2d3d7d5b1d2e7e5g1f3b8d7d3d4d5e4d2e4e5d4d1d4g8f6c1g5f8e7e1c1e8g8e4d6d8a5\r
+e2e4c7c6d2d3d7d5b1d2e7e5g1f3f8d6d1e2d8e7d3d4e5d4e4d5c6d5f3d4b8c6d2b3g8f6e2e7e8e7\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4b8d7e4g5d7f6g1f3e7e6d1d3f8d6f3e5g8h6c1d2a7a5a2a3d8c7\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4b8d7e4g5g8f6f1d3e7e6g1f3h7h6g5e6d8e7e1g1f7e6d3g6e8d8\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4b8d7e4g5g8f6f1d3h7h6g5e6d8b6e6f8d7f8g1f3c8g4c2c3f8d7\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4b8d7f1c4g8f6e4f6d7f6c2c3d8c7h2h3c8f5g1f3e7e6e1g1f8d6\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4b8d7f1c4g8f6e4g5e7e6d1e2d7b6c4b3h7h6g5f3a7a5c2c3c6c5\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4b8d7f1c4g8f6e4g5e7e6d1e2d7b6c4b3h7h6g5f3a7a5c2c3c6c5\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4b8d7f1c4g8f6e4g5e7e6d1e2d7b6c4b3h7h6g5f3a7a5c2c3c6c5\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4b8d7f1c4g8f6e4g5e7e6d1e2d7b6c4d3h7h6g5f3c6c5d4c5f8c5\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4b8d7g1f3g8f6e4f6d7f6c2c3c8g4f1e2e7e6h2h3g4h5f3e5h5e2\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4b8d7g1f3g8f6e4f6d7f6c2c3c8g4h2h3g4f3d1f3d8d5f1e2e7e6\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4b8d7g1f3g8f6e4f6d7f6c2c3c8g4h2h3g4f3d1f3e7e6f1c4f8e7\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4b8d7g1f3g8f6e4f6d7f6f1c4c8f5e1g1e7e6h2h3f8e7c2c3e8g8\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4b8d7g1f3g8f6e4f6d7f6f3e5c8e6f1e2g7g6e1g1f8g7c2c4e8g8\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4b8d7g1f3g8f6e4g3e7e6f1d3c6c5e1g1c5d4f3d4f8c5d4b3c5e7\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4c8f5e4g3f5g6f1c4e7e6g1e2f8d6h2h4h7h6e2f4d6f4c1f4g8f6\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4c8f5e4g3f5g6f1c4e7e6g1e2g8f6e2f4f8d6e1g1f6d5g3h5e8g8\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4c8f5e4g3f5g6f1c4e7e6g1e2g8f6e2f4f8d6f4g6h7g6c1g5b8d7\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4c8f5e4g3f5g6g1e2b8d7h2h4h7h6e2f4g6h7f1c4e7e5d1e2d8e7\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4c8f5e4g3f5g6g1e2e7e6h2h4h7h6e2f4g6h7f1c4g8f6d1e2f8d6\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4c8f5e4g3f5g6g1e2g8f6h2h4h7h6e2f4g6h7f1c4e7e6e1g1f8d6\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4c8f5e4g3f5g6g1f3b8d7f1d3e7e6e1g1g8f6c2c4f8d6b2b3e8g8\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4c8f5e4g3f5g6g1f3b8d7f1d3e7e6e1g1g8f6c2c4f8d6b2b3e8g8\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4c8f5e4g3f5g6g1f3b8d7f1d3g8f6e1g1e7e6f1e1f8e7c2c4e8g8\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4c8f5e4g3f5g6g1f3b8d7h2h4h7h6h4h5g6h7f1d3h7d3d1d3e7e6\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4c8f5e4g3f5g6g1f3e7e6h2h4h7h6f1d3g6d3d1d3g8f6c1e3f8d6\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4c8f5e4g3f5g6h2h4h7h6g1f3b8d7f1d3g6d3d1d3d8c7c1d2e7e6\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4c8f5e4g3f5g6h2h4h7h6g1f3b8d7h4h5g6h7f1d3h7d3d1d3d8c7\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4c8f5e4g3f5g6h2h4h7h6g1f3b8d7h4h5g6h7f1d3h7d3d1d3d8c7\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4c8f5e4g3f5g6h2h4h7h6g1f3b8d7h4h5g6h7f1d3h7d3d1d3d8c7\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4c8f5e4g3f5g6h2h4h7h6g1f3b8d7h4h5g6h7f1d3h7d3d1d3e7e6\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4c8f5e4g3f5g6h2h4h7h6g1f3b8d7h4h5g6h7f1d3h7d3d1d3e7e6\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4c8f5e4g3f5g6h2h4h7h6g1f3b8d7h4h5g6h7f1d3h7d3d1d3g8f6\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4c8f5e4g3f5g6h2h4h7h6h4h5g6h7g1f3b8d7f1d3h7d3d1d3g8f6\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4e7e6g1f3b8d7f1d3g8f6c2c3c6c5c1g5c5d4f3d4d8b6e4f6g7f6\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4g8f6e4f6e7f6f1c4f8d6d1e2d8e7e2e7e8e7g1e2c8e6c4e6f7e6\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4g8f6e4f6g7f6c2c3c8f5g1e2b8d7e2g3f5g6h2h4h7h6h4h5g6h7\r
+e2e4c7c6d2d4d7d5b1d2d5e4d2e4b8d7e4g5d7f6f1c4e7e6g1e2f8d6e1g1h7h6g5f3d8c7e2g3g8e7\r
+e2e4c7c6d2d4d7d5b1d2d5e4d2e4b8d7e4g5g8f6f1d3e7e6g1f3f8d6d1e2h7h6g5e4f6e4e2e4d7f6\r
+e2e4c7c6d2d4d7d5b1d2d5e4d2e4b8d7e4g5g8f6f1d3e7e6g1f3f8d6d1e2h7h6g5e4f6e4e2e4d7f6\r
+e2e4c7c6d2d4d7d5b1d2d5e4d2e4b8d7e4g5g8f6f1d3e7e6g1f3f8d6d1e2h7h6g5e4f6e4e2e4d7f6\r
+e2e4c7c6d2d4d7d5b1d2d5e4d2e4b8d7e4g5g8f6f1d3e7e6g1f3f8e7d1e2h7h6g5e4f6e4e2e4c6c5\r
+e2e4c7c6d2d4d7d5b1d2d5e4d2e4b8d7e4g5g8f6f1d3g7g6g1f3f8g7e1g1e8g8f1e1h7h6g5e4f6e4\r
+e2e4c7c6d2d4d7d5b1d2d5e4d2e4b8d7f1c4g8f6e4f6d7f6g1f3c8f5d1e2e7e6c1g5f8e7e1c1f5g4\r
+e2e4c7c6d2d4d7d5b1d2d5e4d2e4b8d7f1c4g8f6e4g5e7e6d1e2d7b6c4b3h7h6g5f3a7a5a2a3g7g6\r
+e2e4c7c6d2d4d7d5b1d2d5e4d2e4b8d7f1c4g8f6e4g5e7e6d1e2d7b6c4d3h7h6g5f3c6c5d4c5f8c5\r
+e2e4c7c6d2d4d7d5b1d2d5e4d2e4b8d7f1c4g8f6e4g5e7e6d1e2d7b6c4d3h7h6g5f3c6c5d4c5f8c5\r
+e2e4c7c6d2d4d7d5b1d2d5e4d2e4b8d7f1c4g8f6e4g5e7e6d1e2d7b6c4d3h7h6g5f3c6c5d4c5f8c5\r
+e2e4c7c6d2d4d7d5b1d2d5e4d2e4b8d7f1c4g8f6e4g5e7e6d1e2d7b6c4d3h7h6g5f3c6c5d4c5f8c5\r
+e2e4c7c6d2d4d7d5b1d2d5e4d2e4b8d7f1c4g8f6e4g5e7e6d1e2d7b6c4d3h7h6g5f3c6c5d4c5f8c5\r
+e2e4c7c6d2d4d7d5b1d2d5e4d2e4b8d7g1f3g8f6e4f6d7f6f3e5c8e6f1e2g7g6e1g1f8g7c2c4e8g8\r
+e2e4c7c6d2d4d7d5b1d2d5e4d2e4b8d7g1f3g8f6e4f6d7f6f3e5c8e6f1e2g7g6e1g1f8g7c2c4e8g8\r
+e2e4c7c6d2d4d7d5b1d2d5e4d2e4b8d7g1f3g8f6e4f6d7f6f3e5f6d7c1e3d7e5d4e5c8f5d1d8a8d8\r
+e2e4c7c6d2d4d7d5b1d2d5e4d2e4b8d7g1f3g8f6e4f6d7f6f3e5f6d7e5d3g7g6c1e3f8g7d1d2d7b6\r
+e2e4c7c6d2d4d7d5b1d2d5e4d2e4b8d7g1f3g8f6e4f6d7f6g2g3c8g4f1g2e7e5d4e5d8d1e1d1e8c8\r
+e2e4c7c6d2d4d7d5b1d2d5e4d2e4b8d7g1f3g8f6e4g3e7e6f1d3f8e7e1g1e8g8b2b3c6c5c1b2b7b6\r
+e2e4c7c6d2d4d7d5b1d2d5e4d2e4b8d7g1f3g8f6e4g3e7e6f1d3f8e7e1g1e8g8d1e2c6c5f1d1d8c7\r
+e2e4c7c6d2d4d7d5b1d2d5e4d2e4c8f5e4c5b7b6c5b3e7e6g1f3b8d7g2g3g8f6f1g2a8c8e1g1f8d6\r
+e2e4c7c6d2d4d7d5b1d2d5e4d2e4c8f5e4c5b7b6c5b3e7e6g1f3f8d6g2g3g8e7f1g2h7h6d1e2b8d7\r
+e2e4c7c6d2d4d7d5b1d2d5e4d2e4c8f5e4c5b7b6c5b3g8f6g1f3e7e6g2g3b8d7f1g2d8c7e1g1a8d8\r
+e2e4c7c6d2d4d7d5b1d2d5e4d2e4c8f5e4g3f5g6h2h4h7h6g1f3b8d7h4h5g6h7f1d3h7d3d1d3e7e6\r
+e2e4c7c6d2d4d7d5b1d2d5e4d2e4c8f5e4g3f5g6h2h4h7h6g1f3b8d7h4h5g6h7f1d3h7d3d1d3e7e6\r
+e2e4c7c6d2d4d7d5b1d2d5e4d2e4c8f5e4g3f5g6h2h4h7h6h4h5g6h7g1f3b8d7f1d3h7d3d1d3g8f6\r
+e2e4c7c6d2d4d7d5b1d2d5e4d2e4g8f6e4f6e7f6f1c4b8d7g1e2f8d6e1g1e8g8c1f4d7b6c4d3c8e6\r
+e2e4c7c6d2d4d7d5b1d2d5e4d2e4g8f6e4f6g7f6g1f3c8f5g2g3e7e6f1g2f8g7e1g1e8g8f3h4f5g6\r
+e2e4c7c6d2d4d7d5e4d5c6d5c2c4e7e6b1c3g8f6g1f3f8e7c4d5f6d5f1d3b8c6e1g1e8g8f1e1e7f6\r
+e2e4c7c6d2d4d7d5e4d5c6d5c2c4g8f6b1c3b8c6c4d5f6d5g1f3c8g4d1b3g4f3g2f3e7e6b3b7c6d4\r
+e2e4c7c6d2d4d7d5e4d5c6d5c2c4g8f6b1c3e7e6c1g5f8e7g1f3e8g8f1d3d5c4d3c4a7a6a2a4b8c6\r
+e2e4c7c6d2d4d7d5e4d5c6d5c2c4g8f6b1c3e7e6g1f3f8b4c4d5f6d5c1d2b8c6f1d3b4e7e1g1e8g8\r
+e2e4c7c6d2d4d7d5e4d5c6d5c2c4g8f6b1c3e7e6g1f3f8b4c4d5f6d5c1d2b8c6f1d3b4e7e1g1e8g8\r
+e2e4c7c6d2d4d7d5e4d5c6d5c2c4g8f6b1c3e7e6g1f3f8b4c4d5f6d5d1c2b8c6f1d3b4e7a2a3d5f6\r
+e2e4c7c6d2d4d7d5e4d5c6d5c2c4g8f6b1c3e7e6g1f3f8e7c4d5f6d5f1c4d5c3b2c3e8g8e1g1b8d7\r
+e2e4c7c6d2d4d7d5e4d5c6d5c2c4g8f6b1c3e7e6g1f3f8e7c4d5f6d5f1c4d5f6e1g1e8g8d1e2b8c6\r
+e2e4c7c6d2d4d7d5e4d5c6d5c2c4g8f6b1c3e7e6g1f3f8e7c4d5f6d5f1d3b8c6e1g1e8g8f1e1d5f6\r
+e2e4c7c6d2d4d7d5e4d5c6d5c2c4g8f6b1c3e7e6g1f3f8e7c4d5f6d5f1d3b8c6e1g1e8g8f1e1e7f6\r
+e2e4c7c6d2d4d7d5e4d5c6d5c2c4g8f6b1c3e7e6g1f3f8e7c4d5f6d5f1d3b8c6e1g1e8g8f1e1e7f6\r
+e2e4c7c6d2d4d7d5e4d5c6d5c2c4g8f6b1c3e7e6g1f3f8e7c4d5f6d5f1d3b8c6e1g1e8g8f1e1e7f6\r
+e2e4c7c6d2d4d7d5e4d5c6d5c2c4g8f6b1c3e7e6g1f3f8e7c4d5f6d5f1d3e8g8e1g1b8c6f1e1e7f6\r
+e2e4c7c6d2d4d7d5e4d5c6d5c2c4g8f6b1c3g7g6d1b3f8g7c4d5e8g8g2g3b8a6f1g2d8b6b3b6a7b6\r
+e2e4c7c6d2d4d7d5e4d5c6d5f1d3b8c6c2c3g8f6c1f4c8g4d1b3d8d7b1d2e7e6g1f3g4f3d2f3f8d6\r
+e2e4c7c6d2d4d7d5e4e5c6c5d4c5b8c6c1f4e7e6b1d2f8c5d2b3c5b6d1g4e8f8g1f3f7f5g4g3g8e7\r
+e2e4c7c6d2d4d7d5e4e5c6c5d4c5e7e6b1c3b8c6c1f4g8e7g1f3e7g6f4e3g6e5f3e5c6e5d1h5e5c6\r
+e2e4c7c6d2d4d7d5e4e5c6c5d4c5e7e6c1e3g8h6c2c3h6f5e3d4c8d7g1f3b8c6d1d2f7f6b2b4a7a5\r
+e2e4c7c6d2d4d7d5e4e5c6c5d4c5e7e6c1e3g8h6c2c3h6f5e3d4f5d4c3d4b7b6b2b4a7a5f1b5c8d7\r
+e2e4c7c6d2d4d7d5e4e5c6c5d4c5e7e6d1g4b8c6g1f3d8c7f1b5c8d7b5c6c7c6c1e3g8h6e3h6g7h6\r
+e2e4c7c6d2d4d7d5e4e5c6c5d4c5e7e6d1g4b8d7g1f3g8e7c1g5h7h6g5e7d8e7b1c3e7c5e1c1a7a6\r
+e2e4c7c6d2d4d7d5e4e5c6c5d4c5e7e6g1f3f8c5f1d3b8c6e1g1g8e7c1f4d8b6b1c3a7a6c3a4b6a7\r
+e2e4c7c6d2d4d7d5e4e5c6c5d4c5e7e6g1f3f8c5f1d3b8c6e1g1g8e7c1f4e7g6f4g3e8g8c2c4d5c4\r
+e2e4c7c6d2d4d7d5e4e5c8f5b1c3d8b6g2g4f5d7f1g2e7e6g1e2c6c5e1g1c5d4e2d4b8c6d4b3c6e5\r
+e2e4c7c6d2d4d7d5e4e5c8f5b1c3e7e6g2g4f5g6g1e2c6c5h2h4h7h5e2f4b8c6f4g6f7g6c3e2g8e7\r
+e2e4c7c6d2d4d7d5e4e5c8f5b1c3e7e6g2g4f5g6g1e2c6c5h2h4h7h6c1e3d8b6d1d2b8c6e1c1h6h5\r
+e2e4c7c6d2d4d7d5e4e5c8f5f1d3f5d3d1d3e7e6g1f3d8a5b1d2a5a6c2c4g8e7e1g1b8d7b2b3e7f5\r
+e2e4c7c6d2d4d7d5e4e5c8f5f1e2e7e6g1f3c6c5c2c3b8d7e1g1g8e7d4c5e7c6f3d4f5b1a1b1f8c5\r
+e2e4c7c6d2d4d7d5e4e5c8f5g1f3e7e6a2a3b8d7b1d2h7h6f1e2g8e7d2f1f5g6c2c3c6c5f1g3e7c6\r
+e2e4c7c6d2d4d7d5e4e5c8f5g1f3e7e6a2a3b8d7c2c4d5c4f1c4d7b6c4b3g8e7e1g1e7d5f1e1f8e7\r
+e2e4c7c6d2d4d7d5e4e5c8f5g1f3e7e6c2c3c6c5a2a3c5d4c3d4g8e7c1e3e7c6f1d3f5d3d1d3f8e7\r
+e2e4c7c6d2d4d7d5e4e5c8f5g1f3e7e6c2c3g8e7f3h4f5b1a1b1c6c5a2a3b8c6f1e2e7g6h4g6h7g6\r
+e2e4c7c6d2d4d7d5e4e5c8f5g1f3e7e6f1e2b8d7e1g1g8e7c2c3h7h6b1a3a7a6a3c2f5h7c2e1c6c5\r
+e2e4c7c6d2d4d7d5e4e5c8f5g1f3e7e6f1e2b8d7e1g1g8e7f3h4f5g6b1d2c6c5c2c3c5d4c3d4e7f5\r
+e2e4c7c6d2d4d7d5e4e5c8f5g1f3e7e6f1e2b8d7e1g1h7h6b2b3g8e7c2c4e7g6b1a3g6f4c1f4f8a3\r
+e2e4c7c6d2d4d7d5e4e5c8f5g1f3e7e6f1e2c6c5c1e3c5d4f3d4g8e7c2c4b8c6d1a4d5c4b1a3d8a5\r
+e2e4c7c6d2d4d7d5e4e5c8f5g1f3e7e6f1e2c6c5c1e3c5d4f3d4g8e7e1g1b8c6e2b5a7a6b5c6b7c6\r
+e2e4c7c6d2d4d7d5e4e5c8f5g1f3e7e6f1e2c6c5c1e3c5d4f3d4g8e7e3g5d8a5b1c3f5g6e1g1a7a6\r
+e2e4c7c6d2d4d7d5e4e5c8f5g1f3e7e6f1e2c6c5e1g1b8c6c2c3c5d4c3d4g8e7a2a3f5e4b1d2e7f5\r
+e2e4c7c6d2d4d7d5e4e5c8f5g1f3e7e6f1e2c6c5e1g1b8c6c2c3f5g4b1d2c5d4c3d4g8e7a2a3e7f5\r
+e2e4c7c6d2d4d7d5e4e5c8f5h2h4c6c5d4c5d8c7b1c3b8c6g1f3a8d8c3b5c7c8f3d4f5g4f2f3g4d7\r
+e2e4c7c6d2d4d7d5e4e5c8f5h2h4h7h5g1e2e7e6e2g3g7g6g3f5g6f5c2c4c6c5c4d5d8d5b1c3d5d4\r
+e2e4c7c6d2d4d7d5e4e5c8f5h2h4h7h6g1e2e7e6e2g3g8e7b1c3b8d7c1e3f5h7f1d3h7d3c2d3h6h5\r
+e2e4c7c6d2d4d7d5e4e5c8f5h2h4h7h6g2g4f5d7c2c3c6c5f1g2e7e6g1e2d7b5b1a3b5e2d1e2c5d4\r
+e2e4c7c6d2d4d7d5e4e5c8f5h2h4h7h6g2g4f5d7h4h5c6c5c2c3b8c6f1h3e7e6c1e3d8b6d1b3c5d4\r
+e2e4c7c6d2d4d7d5f2f3e7e6b1c3g8f6c1g5h7h6g5h4d8b6a2a3c6c5g1e2b8c6d4c5f8c5c3a4b6a5\r
+e2e4c7c6d2d4d7d6g1f3g8f6b1c3c8g4h2h3g4h5f1d3e7e6d1e2d6d5c1g5f8e7e4e5f6d7g5e7d8e7\r
+e2e4d7d5e4d5d8d5b1c3d5a5d2d4g8f6g1f3c7c6f3e5c8e6f1d3b8d7f2f4g7g6e1g1f8g7g1h1e6f5\r
+e2e4d7d5e4d5g8f6d2d4f6d5g1f3c8g4f1e2b8c6c2c4d5b6d4d5g4f3g2f3c6e5f3f4e5d7b1c3c7c6\r
+e2e4d7d5e4d5g8f6f1b5c8d7b5c4d7g4f2f3g4c8b1c3b8d7d2d4d7b6c4b3b6d5c3d5f6d5c2c4d5f6\r
+e2e4d7d5e4d5g8f6f1b5c8d7b5c4d7g4f2f3g4f5g2g4f5c8b1c3a7a6a2a4c7c6d5c6b8c6d2d3e7e5\r
+e2e4d7d5e4d5g8f6f1b5c8d7b5c4d7g4f2f3g4f5g2g4f5c8b1c3a7a6g4g5b7b5c4b3f6d7d2d4d7b6\r
+e2e4d7d5e4d5g8f6f1b5c8d7b5c4d7g4f2f3g4f5g2g4f5c8b1c3c7c6d5c6b8c6d2d3e7e5g4g5f6h5\r
+e2e4d7d6d2d4g7g6b1c3f8g7f1e2c7c6f2f4d8b6e4e5g8h6\r
+e2e4d7d6d2d4g7g6b1c3f8g7f2f4g8f6g1f3e8g8f1e2c7c5d4c5d8a5e1g1a5c5g1h1b8c6e2d3c8g4\r
+e2e4d7d6d2d4g7g6b1c3f8g7g1f3g8f6f1e2e8g8e1g1c7c6a2a4a7a5h2h3b8a6c1e3a6b4d1d2d8c7\r
+e2e4d7d6d2d4g7g6b1c3g8f6f2f4f8g7g1f3c7c5d4c5d8a5f1d3a5c5d1e2e8g8c1e3c5a5e1g1c8g4\r
+e2e4d7d6d2d4g7g6f1e2f8g7b1c3c7c6c1e3b7b5a2a3g8f6d1d2e8g8e3h6e7e5h6g7g8g7a1d1d8e7\r
+e2e4d7d6d2d4g7g6g1f3f8g7b1c3c7c6a2a4g8f6f1e2a7a5e1g1e8g8c1e3b8a6f3d2a6b4a1c1d6d5\r
+e2e4d7d6d2d4g7g6g1f3g8f6b1c3f8g7f1e2e8g8e1g1c7c6a2a4a7a5h2h3b8a6c1f4a6c7f1e1c7e6\r
+e2e4d7d6d2d4g8f6b1c3b8d7f2f4e7e5g1f3e5d4d1d4f8e7c1e3d7c5e1c1c5e6d4d2e8g8h2h3b7b6\r
+e2e4d7d6d2d4g8f6b1c3g7g6c1e3c7c6d1d2b8d7h2h3d8c7g2g3b7b5f1g2b5b4c3d1a8b8g1e2f8g7\r
+e2e4d7d6d2d4g8f6b1c3g7g6c1e3f8g7d1d2c7c6f2f3d8a5g2g4b7b5g1e2h7h5g4g5f6d7f1g2b5b4\r
+e2e4d7d6d2d4g8f6b1c3g7g6c1e3f8g7d1d2c7c6f2f3d8a5g2g4h7h5g4g5f6h7f3f4e8g8g1f3e7e5\r
+e2e4d7d6d2d4g8f6b1c3g7g6c1e3f8g7d1d2f6g4e3g5h7h6g5h4g4f6f2f4b7b6e1c1c8b7e4e5d6e5\r
+e2e4d7d6d2d4g8f6b1c3g7g6f2f4f8g7g1f3e8g8f1e2c7c5d4c5d8a5e1g1a5c5g1h1b8c6f3d2a7a5\r
+e2e4d7d6d2d4g8f6b1c3g7g6g1f3f8g7f1c4b8c6d4d5c6b8h2h3c7c6c4b3e8g8e1g1b7b6c1g5c8b7\r
+e2e4d7d6d2d4g8f6b1c3g7g6g1f3f8g7f1e2c7c6a2a4a7a5e1g1e8g8h2h3b8a6f1e1d8c7c1g5h7h6\r
+e2e4d7d6d2d4g8f6b1c3g7g6g1f3f8g7f1e2c7c6e1g1e8g8a2a4b8d7a4a5d8c7h2h3f8d8c1e3d7f8\r
+e2e4d7d6d2d4g8f6b1c3g7g6g1f3f8g7f1e2c8g4e1g1e8g8h2h3g4f3e2f3b8c6c3e2e7e5c2c3f8e8\r
+e2e4d7d6d2d4g8f6b1c3g7g6g1f3f8g7f1e2e8g8e1g1c7c5d4d5b8a6c1f4a6c7a2a4b7b6f1e1c8b7\r
+e2e4d7d6d2d4g8f6b1c3g7g6g1f3f8g7f1e2e8g8e1g1c7c6h2h3b8d7c1f4d8a5d1d2e7e5f4e3f8e8\r
+e2e4d7d6d2d4g8f6b1c3g7g6g1f3f8g7f1e2e8g8e1g1c8g4c1e3b8c6d1d3e7e5d4d5c6b4d3d2a7a5\r
+e2e4d7d6d2d4g8f6b1c3g7g6g1f3f8g7h2h3e8g8c1e3b7b6f1c4e7e6e1g1c8b7d4d5e6d5e4d5a7a6\r
+e2e4d7d6d2d4g8f6b1c3g7g6g1f3f8g7h2h3e8g8c1e3c7c6a2a4b8d7a4a5d8c7f1e2e7e5d4e5d7e5\r
+e2e4d7d6d2d4g8f6b1c3g7g6g1f3f8g7h2h3e8g8c1e3c7c6d1d2b7b5f1d3b8d7e3h6e7e5h6g7g8g7\r
+e2e4d7d6d2d4g8f6b1c3g7g6g2g3f8g7f1g2e8g8g1e2b8d7e1g1c7c5h2h3a7a6c1e3d8c7d1d2c5d4\r
+e2e4e7e5b1c3b8c6f1c4g8f6d2d3c6a5c4b3a5b3a2b3d7d5e4d5f8b4g1f3f6d5c1d2d5c3b2c3b4d6\r
+e2e4e7e5b1c3b8c6f1c4g8f6d2d3c6a5g1e2a5c4d3c4f8e7e1g1d7d6b2b3e8g8e2g3c7c6c1b2d8a5\r
+e2e4e7e5b1c3b8c6f2f4e5f4d2d4d7d5e4d5d8h4e1e2h4e7e2f2e7h4g2g3f4g3f2g2c6d4h2g3h4g4\r
+e2e4e7e5b1c3b8c6f2f4e5f4d2d4d8h4e1e2g8f6g1f3h4g4d4d5c6e5h2h3g4h5c1f4e5f3g2f3d7d6\r
+e2e4e7e5b1c3g8f6f1c4f6e4d1h5e4d6c4b3f8e7g1f3b8c6f3e5c6e5h5e5e8g8c3d5f8e8e1g1e7f8\r
+e2e4e7e5b1c3g8f6f1c4f8c5d2d3d7d6f2f4c8e6c4e6f7e6g1f3e5f4c1f4e8g8c3a4c5b4c2c3b4a5\r
+e2e4e7e5b1c3g8f6f1c4f8c5f2f4d7d6g1f3c7c6d2d3b7b5c4b3d8e7d1e2b8d7h1f1c5b4f4e5d6e5\r
+e2e4e7e5b1c3g8f6f2f4d7d5f4e5f6e4g1f3f8e7d1e2e4c3d2c3c7c5c1f4b8c6e1c1c8e6h2h4h7h6\r
+e2e4e7e5b1c3g8f6g1f3b8c6f1b5c6d4b5a4f8c5f3e5e8g8e5d3c5b6e4e5f6e8c3d5c7c6d5e3d7d6\r
+e2e4e7e5b1c3g8f6g1f3b8c6f1b5f8b4e1g1e8g8d2d3d7d6c1g5b4c3b2c3h7h6g5h4c8d7a1b1a7a6\r
+e2e4e7e5b1c3g8f6g2g3d7d5e4d5f6d5f1g2d5c3b2c3f8d6g1e2e8g8e1g1b8d7d2d3d7f6c3c4c7c6\r
+e2e4e7e5b1c3g8f6g2g3d7d5e4d5f6d5f1g2d5c3b2c3f8d6g1f3e8g8e1g1b8d7f1e1a8b8d2d4e5d4\r
+e2e4e7e5b1c3g8f6g2g3d7d5e4d5f6d5f1g2d5c3b2c3f8d6g1f3e8g8e1g1c7c5d2d3b8c6f3d2d8d7\r
+e2e4e7e5b1c3g8f6g2g3f8b4g1e2c7c6f1g2e8g8e1g1d7d5e4d5c6d5d2d4e5d4d1d4b8c6d4d3b4c3\r
+e2e4e7e5d2d4e5d4d1d4b8c6d4e3g8f6c1d2f8e7b1c3d7d5e4d5f6d5e3g3d5c3d2c3e7f6c3f6d8f6\r
+e2e4e7e5f1c4g8f6b1c3b8c6f2f4f8c5f4e5c6e5c4b3c5g1h1g1f6g4d2d4d8h4e1d2e5c6d1f3g4f6\r
+e2e4e7e5f1c4g8f6d2d3b8c6g1f3f8c5c2c3d7d6e1g1e8g8b1d2a7a6c4b3c8e6f1e1e6b3d2b3c5a7\r
+e2e4e7e5f1c4g8f6d2d3c7c6g1f3f8e7c4b3d7d6b1d2b8a6c2c3e8g8e1g1c8e6b3c2f6d7d3d4a6c7\r
+e2e4e7e5f1c4g8f6d2d3f8c5b1c3c7c6c1g5h7h6g5h4b7b5c4b3d7d6d1e2b8d7c3d1d7f8f2f3f8g6\r
+e2e4e7e5f1c4g8f6d2d4b8c6g1f3d8e7e1g1d7d6b1c3c8g4d4e5c6e5c4e2e8c8c1g5e5f3e2f3g4f3\r
+e2e4e7e5f1c4g8f6d2d4b8c6g1f3f6e4d4e5d8e7d1d5e4c5e1g1h7h6b1c3c6b4d5d1c7c6a2a3b4a6\r
+e2e4e7e5f1c4g8f6d2d4e5d4g1f3f8c5e4e5d7d5e5f6d5c4d1e2c8e6f6g7h8g8c1g5c5e7g5e7e8e7\r
+e2e4e7e5f2f4e5f4g1f3g8e7d2d4d7d5b1c3d5e4c3e4e7g6h2h4d8e7e1f2c8g4h4h5g6h4c1f4b8c6\r
+e2e4e7e5f2f4e5f4g1f3g8f6e4e5f6h5f1e2g7g6d2d4f8g7e1g1d7d6b1c3e8g8f3e1d6e5e2h5g6h5\r
+e2e4e7e5f2f4f8c5g1f3d7d6c2c3c8g4d2d4g4f3g2f3d8h4e1e2c5b6b1a3f7f5a3c4f5e4f4e5d6e5\r
+e2e4e7e5g1f3b8c6b1c3g7g6d2d4e5d4f3d4f8g7c1e3g8f6f1e2e8g8e1g1f8e8d4c6b7c6e2f3c8b7\r
+e2e4e7e5g1f3b8c6b1c3g8f6d2d4e5d4f3d4f8b4d4c6b7c6f1d3d7d5e4d5c6d5e1g1e8g8c1g5c7c6\r
+e2e4e7e5g1f3b8c6b1c3g8f6d2d4e5d4f3d4f8b4d4c6b7c6f1d3d7d5e4d5c6d5e1g1e8g8c1g5c7c6\r
+e2e4e7e5g1f3b8c6b1c3g8f6f1b5c6d4b5a4f8c5e1g1e8g8d2d3c7c6f3d4c5d4c3e2d4b6c1g5h7h6\r
+e2e4e7e5g1f3b8c6b1c3g8f6f1b5d7d6d2d4c8d7e1g1f8e7f1e1e5d4f3d4e8g8b5c6b7c6c1g5h7h6\r
+e2e4e7e5g1f3b8c6b1c3g8f6f1b5d7d6d2d4c8d7e1g1f8e7f1e1e5d4f3d4e8g8d4e2a7a6b5d3f6g4\r
+e2e4e7e5g1f3b8c6b1c3g8f6f1b5d7d6d2d4c8d7e1g1f8e7f1e1e5d4f3d4e8g8d4e2c6e5e2g3d7b5\r
+e2e4e7e5g1f3b8c6b1c3g8f6f1b5f8b4e1g1e8g8c3d5f6d5e4d5e5e4d5c6e4f3d1f3d7c6b5d3b4d6\r
+e2e4e7e5g1f3b8c6b1c3g8f6f1b5f8b4e1g1e8g8d2d3b4c3b2c3d7d6b5c6b7c6c1g5h7h6g5f6d8f6\r
+e2e4e7e5g1f3b8c6b1c3g8f6f1b5f8b4e1g1e8g8d2d3b4c3b2c3d7d6c1g5d8e7f1e1c6d8d3d4d8e6\r
+e2e4e7e5g1f3b8c6b1c3g8f6f1b5f8b4e1g1e8g8d2d3d7d6c1g5b4c3b2c3c6e7b5c4e7g6f3h4g6f4\r
+e2e4e7e5g1f3b8c6b1c3g8f6f1b5f8b4e1g1e8g8d2d3d7d6c1g5b4c3b2c3c6e7b5c4e7g6f3h4g6f4\r
+e2e4e7e5g1f3b8c6b1c3g8f6g2g3d7d5e4d5f6d5f1g2d5c3b2c3f8d6e1g1e8g8a1b1a8b8d2d4h7h6\r
+e2e4e7e5g1f3b8c6b1c3g8f6g2g3f8b4f1g2d7d6d2d3c8g4h2h3g4h5e1g1h7h6c3d5f6d5e4d5c6e7\r
+e2e4e7e5g1f3b8c6c2c3g8f6d2d4f6e4d4d5c6b8f1d3e4f6f3e5d7d6d3b5b8d7e5f3f8e7e1g1e8g8\r
+e2e4e7e5g1f3b8c6d2d4e5d4f3d4d8f6c1e3f8c5c2c3g8e7f1c4c6e5c4e2f6g6e1g1e8g8b1d2d7d5\r
+e2e4e7e5g1f3b8c6d2d4e5d4f3d4d8h4d4b5h4e4c1e3e8d8b1c3e4e5c3d5g8f6b5c7f8d6f2f4e5e4\r
+e2e4e7e5g1f3b8c6d2d4e5d4f3d4f8c5c1e3d8f6c2c3g8e7f1c4e8g8e1g1c5b6c4b3d7d6g1h1c6d4\r
+e2e4e7e5g1f3b8c6d2d4e5d4f3d4f8c5d4b3c5b6b1c3g8f6c1g5d7d6d1d2h7h6g5f4c8e6e1c1f6h5\r
+e2e4e7e5g1f3b8c6d2d4e5d4f3d4f8c5d4c6d8f6d1d2d7c6b1c3c8e6c3a4a8d8f1d3c5d4c2c3b7b5\r
+e2e4e7e5g1f3b8c6d2d4e5d4f3d4f8c5d4c6d8f6d1d2d7c6b1c3c8e6c3a4a8d8f1d3c5d4e1g1a7a6\r
+e2e4e7e5g1f3b8c6d2d4e5d4f3d4f8c5d4c6d8f6d1d2d7c6b1c3c8e6c3a4a8d8f1d3c5d4e1g1f6h4\r
+e2e4e7e5g1f3b8c6d2d4e5d4f3d4f8c5d4c6d8f6d1d2d7c6b1c3c8e6c3a4a8d8f1d3c5d4e1g1g8e7\r
+e2e4e7e5g1f3b8c6d2d4e5d4f3d4f8c5d4c6d8f6d1d2d7c6b1c3c8e6c3a4c5d6d2e3g8h6h2h3e8g8\r
+e2e4e7e5g1f3b8c6d2d4e5d4f3d4f8c5d4c6d8f6d1d2d7c6f1d3c8e6e1g1f6e7d2e2g8f6c1e3c5e3\r
+e2e4e7e5g1f3b8c6d2d4e5d4f3d4f8c5d4f5d8f6b1c3g8e7f5e3e8g8f1d3c6e5d3e2e5g6g2g3d7d6\r
+e2e4e7e5g1f3b8c6d2d4e5d4f3d4g8f6b1c3f8b4d4c6b7c6f1d3d7d5e4d5c6d5e1g1e8g8c1g5c7c6\r
+e2e4e7e5g1f3b8c6d2d4e5d4f3d4g8f6d4c6b7c6e4e5d8e7d1e2f6d5b1d2d5b6c2c4c8b7b2b3e8c8\r
+e2e4e7e5g1f3b8c6d2d4e5d4f3d4g8f6d4c6b7c6e4e5d8e7d1e2f6d5c2c4c8a6b2b3e8c8g2g3d8e8\r
+e2e4e7e5g1f3b8c6d2d4e5d4f3d4g8f6d4c6b7c6e4e5d8e7d1e2f6d5c2c4c8a6b2b3g7g5c1a3d7d6\r
+e2e4e7e5g1f3b8c6d2d4e5d4f3d4g8f6d4c6b7c6e4e5d8e7d1e2f6d5c2c4d5b6b1d2c8b7b2b3e8c8\r
+e2e4e7e5g1f3b8c6d2d4e5d4f3d4g8f6d4c6b7c6e4e5d8e7d1e2f6d5c2c4d5b6b1d2e7e6b2b3a7a5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4b7b5a4b3c6a5e1g1d7d6c2c3a5b3a2b3c8b7d2d3f8e7c3c4e7f6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4b7b5a4b3g8f6e1g1f8e7f1e1d7d6c2c3e8g8h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4d7d6a4c6b7c6d2d4e5d4d1d4g8f6e1g1f8e7e4e5c6c5d4d3d6e5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4d7d6a4c6b7c6d2d4f7f6b1c3g8e7c1e3e7g6d1e2f8e7e1c1c8d7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4d7d6c2c3c8d7d2d4g7g6c1g5f7f6g5e3g8h6e1g1f8g7h2h3h6f7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4d7d6c2c3c8d7d2d4g7g6e1g1f8g7d4d5c6e7a4d7d8d7c3c4h7h6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4d7d6c2c3c8d7d2d4g7g6e1g1f8g7d4d5c6e7a4d7d8d7c3c4h7h6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4d7d6c2c3c8d7d2d4g7g6e1g1f8g7f1e1g8e7d4e5c6e5f3e5g7e5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4d7d6c2c3c8d7d2d4g8e7a4b3h7h6b1a3e7g6a3c4f8e7c4e3e8g8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4d7d6c2c3c8d7d2d4g8e7a4b3h7h6b1d2e7g6d2c4f8e7c4e3e8g8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4d7d6c2c3c8d7d2d4g8e7a4b3h7h6b1d2e7g6d2c4f8e7e1g1e8g8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4d7d6c2c3c8d7d2d4g8e7a4b3h7h6b1d2e7g6d2c4f8e7e1g1e8g8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4d7d6c2c3c8d7d2d4g8e7c1e3h7h6b1d2g7g5d4e5d6e5h2h4g5g4\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4d7d6c2c3c8d7d2d4g8e7h2h4h7h6c1e3e5d4c3d4d6d5e4e5b7b5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4d7d6c2c3f7f5e4f5c8f5d2d4e5e4f3g5d6d5f2f3e4e3f3f4f8d6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4d7d6c2c3f7f5e4f5c8f5e1g1f5d3f1e1f8e7a4c2d3c2d1c2g8f6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4d7d6c2c3g8f6e1g1c8d7d2d4f8e7d4d5c6b8a4c2d7g4c3c4b8d7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4d7d6c2c3g8f6e1g1f8e7d2d4c8d7b1d2e8g8f1e1f8e8a2a3e7f8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4d7d6d2d4c8d7a4b3f8e7d4e5d6e5d1d5d7e6d5d8a8d8b3e6f7e6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4d7d6e1g1c8d7c2c4g8f6b1c3f8e7d2d4c6d4f3d4e5d4a4d7f6d7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4f7f5d2d4e5d4e4e5f8c5e1g1g8e7a4b3d7d5e5d6d8d6f1e1h7h6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6a4c6d7c6b1c3f8d6d2d3c6c5h2h3c8e6c1e3h7h6a2a4c5c4\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6d1e2b7b5a4b3f8e7c2c3d7d5d2d3e8g8c1g5d5e4d3e4f6d7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6d1e2b7b5a4b3f8e7c2c3e8g8e1g1d7d5d2d3d5e4d3e4c8g4\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6d1e2f8e7d2d3b7b5a4b3e8g8e1g1d7d6c2c3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6d1e2f8e7e1g1b7b5a4b3d7d6a2a4c8g4c2c3e8g8h2h3c6a5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6d2d3d7d6c2c3c8d7e1g1g7g6b1d2f8g7f1e1e8g8d2f1b7b5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6d2d3d7d6c2c3f8e7b1d2c8d7e1g1e8g8f1e1f8e8d2f1h7h6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6d2d3d7d6c2c3f8e7b1d2e8g8e1g1b7b5a4c2f6h5a2a4b5b4\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6d2d3f8c5c2c3b7b5a4c2d7d5d1e2e8g8c1g5d5e4d3e4h7h6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6d2d4e5d4e1g1f8e7f1e1e8g8e4e5f6e8c2c3d4c3b1c3d7d6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1b7b5a4b3c8b7d2d3f8c5a2a4e8g8c1g5h7h6g5h4g7g5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1b7b5a4b3c8b7d2d3f8d6c2c3e8g8f1e1c6a5b3c2f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1b7b5a4b3c8b7f1e1f8c5c2c3d7d6d2d4c5b6c1e3e8g8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1b7b5a4b3c8b7f1e1f8c5c2c3d7d6d2d4c5b6c1e3e8g8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1b7b5a4b3f8c5a2a4a8b8c2c3d7d6d2d4c5b6b1a3e8g8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1b7b5a4b3f8c5a2a4c8b7d2d3d7d6b1c3b5b4c3d5c6a5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1b7b5a4b3f8c5a2a4c8b7d2d3e8g8b1c3c6a5f3e5a5b3\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1b7b5a4b3f8c5d2d3d7d6a2a4a8b8a4b5a6b5c1e3e8g8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1b7b5a4b3f8e7d1e2e8g8c2c3d7d6f1d1c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1b7b5a4b3f8e7d2d4d7d6d4e5d6e5d1e2c8g4c2c3e8g8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1b7b5a4b3f8e7d2d4d7d6d4e5d6e5d1e2c8g4c2c3e8g8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1b7b5a4b3f8e7f1e1d7d6a2a4c8d7c2c3e8g8d2d4h7h6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1b7b5a4b3f8e7f1e1e8g8c2c3d7d5e4d5f6d5f3e5c6e5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1d7d6a4c6b7c6d2d4e5d4f3d4c6c5d4f3f8e7b1c3e8g8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1d7d6f1e1b7b5a4b3c6a5d2d4a5b3a2b3f6d7b3b4f8e7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5a2a4a8b8a4b5a6b5d4e5c8e6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5a2a4a8b8a4b5a6b5d4e5c8e6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5a2a4c6d4f3d4e5d4a4b5f8c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5a2a4c6d4f3d4e5d4d1d4c8e6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6b1d2e4c5c2c3d5d4\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6b1d2e4c5c2c3d5d4\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6b1d2e4c5c2c3d5d4\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6b1d2e4c5c2c3d5d4\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6b1d2e4c5c2c3d5d4\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6b1d2e4c5c2c3d5d4\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6b1d2e4c5c2c3d5d4\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6b1d2e4c5c2c3d5d4\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6b1d2e4c5c2c3f8e7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6b1d2e4c5c2c3f8e7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6b1d2e4c5c2c3g7g6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6c1e3f8c5d1e2d8e7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6c1e3f8e7c2c3d8d7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6c1e3f8e7c2c3d8d7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6c1e3f8e7c2c3d8d7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6c1e3f8e7c2c3d8d7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6c1e3f8e7c2c3e4c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6c1e3f8e7c2c3e4c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6c2c3e4c5b3c2e6g4\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6c2c3e4c5b3c2e6g4\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6c2c3f8c5b1d2e8g8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6c2c3f8c5b1d2e8g8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6c2c3f8c5b1d2e8g8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6c2c3f8c5b1d2e8g8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6c2c3f8c5b1d2e8g8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6c2c3f8c5b1d2e8g8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6c2c3f8c5b1d2e8g8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6c2c3f8c5b1d2e8g8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6c2c3f8c5d1d3e8g8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6c2c3f8c5d1d3e8g8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6c2c3f8c5d1d3e8g8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6c2c3f8c5d1d3e8g8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6c2c3f8e7a2a4b5b4\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6c2c3f8e7b1d2e4c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6c2c3f8e7b1d2e8g8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6c2c3f8e7b3c2e4c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6c2c3f8e7c1e3e4c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6c2c3f8e7c1e3e4c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6c2c3f8e7c1e3e8g8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6c2c3f8e7c1e3e8g8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6d1e2e4c5f1d1b5b4\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6d1e2e4c5f1d1c5b3\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6d1e2e4c5f1d1c5b3\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6d1e2f8c5c1e3d8e7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6d1e2f8e7f1d1e4c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6d1e2f8e7f1d1e4c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6d1e2f8e7f1d1e8g8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6d1e2f8e7f1d1e8g8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6d1e2f8e7f1d1e8g8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6d1e2f8e7f1d1e8g8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6d1e2f8e7f1d1e8g8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5f3e5c6e5d4e5c7c6b1d2e4d2\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5f3e5c6e5d4e5c7c6c2c3f8c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4f1e1e4c5b1c3f8e7c3d5e8g8a4c6d7c6d5e7d8e7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8c5c2c3b7b5a4b3d7d6a2a4c8g4d2d3e8g8h2h3g4f3\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7a4c6d7c6d1e2c8g4h2h3g4f3e2f3e8g8d2d3f6d7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7a4c6d7c6d1e2c8g4h2h3g4f3e2f3e8g8d2d3f6d7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7a4c6d7c6d2d3d8d6b1d2c8e6b2b3f6d7c1b2c6c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7a4c6d7c6d2d3f6d7b1c3e8g8c1e3c6c5c3d5e7d6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7a4c6d7c6d2d3f6d7b1d2e8g8d2c4f7f6f3h4d7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7a4c6d7c6d2d3f6d7b2b3e8g8c1b2f7f6b1c3d7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7a4c6d7c6f3e5f6e4d2d4e8g8c1e3f7f6e5d3c8f5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7b1c3b7b5a4b3d7d6c3d5c6a5d5e7d8e7d2d4c8b7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7b1c3d7d6a4c6b7c6d2d4f6d7d4e5d6e5c1e3e7d6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7b1c3d7d6a4c6b7c6d2d4f6d7d4e5d6e5c3a4e8g8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7d1e2b7b5a4b3e8g8c2c3d7d5d2d3d5d4b1d2e7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7d1e2b7b5a4b3e8g8c2c3d7d5d2d3d5d4c3d4c6d4\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7d1e2b7b5a4b3e8g8c2c3d7d5d2d3d5d4c3d4c6d4\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7d1e2b7b5a4b3e8g8c2c3d7d5d2d3f8e8f1d1c8b7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7d1e2b7b5a4b3e8g8c2c3d7d6d2d4c8g4f1d1e5d4\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7d2d3b7b5a4b3d7d6a2a4c8b7b1c3b5b4c3d5c6a5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7d2d3d7d6c2c3e8g8f1e1b7b5a4c2d6d5e4d5d8d5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7d2d3d7d6c2c3e8g8f1e1f6d7a4c2e7f6b1d2d7b6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7d2d4e5d4e4e5f6e4f3d4e8g8d4f5d7d5a4c6b7c6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7d2d4e5d4e4e5f6e4f3d4e8g8d4f5d7d5f5e7c6e7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3c6a5b3c2c7c5d2d4d8c7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3c6a5b3c2c7c5d2d4d8c7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3c6a5b3c2c7c5d2d4d8c7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3c8g4d2d3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8a2a4c8g4d2d3c6a5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8d2d3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8d2d3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8d2d4c8g4c1e3e5d4\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8d2d4c8g4c1e3e5d4\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8d2d4c8g4c1e3e5d4\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8d2d4c8g4d4d5c6a5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6b8d2d4b8d7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6b8d2d4b8d7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6b8d2d4b8d7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6b8d2d4b8d7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6b8d2d4b8d7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6b8d2d4b8d7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6b8d2d4b8d7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6b8d2d4b8d7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6b8d2d4b8d7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6b8d2d4b8d7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6b8d2d4b8d7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6b8d2d4b8d7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6b8d2d4b8d7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6b8d2d4b8d7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6b8d2d4b8d7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6b8d2d4b8d7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6b8d2d4c8b7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6b8d2d4c8b7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c8b7d2d3f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c8b7d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c8b7d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c8b7d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c8b7d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c8b7d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c8b7d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c8b7d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c8b7d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c8b7d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c8b7d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c8b7d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c8b7d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c8b7d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c8b7d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c8b7d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c8b7d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c8b7d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c8b7d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c8b7d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c8b7d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c8b7d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c8b7d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c8b7d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c8b7d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c8b7d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c8b7d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c8b7d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c8e6d2d4e6b3\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c8e6d2d4e6b3\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c8e6d2d4e6b3\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c8e6d2d4e6b3\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c8e6d2d4e6b3\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3d8d7d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3f6d7d2d4d7b6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3f6d7d2d4d7b6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3f6d7d2d4e7f6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3f6d7d2d4e7f6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3f6d7d2d4e7f6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3f6d7d2d4e7f6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3f6d7d2d4e7f6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3f6d7d2d4e7f6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3f6d7d2d4e7f6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3f6d7d2d4e7f6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3f8e8d2d4c8b7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3f8e8d2d4c8b7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3f8e8d2d4c8b7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3f8e8d2d4c8b7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3h7h6d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3h7h6d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3h7h6d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3h7h6d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3h7h6d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3h7h6d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3h7h6d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8a2a4b5b4c2c3d7d6a4a5b4c3\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8a2a4b5b4d2d3d7d6a4a5c8e6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8a2a4b5b4d2d3d7d6a4a5c8e6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8a2a4c8b7d2d3d7d6b1d2f6d7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8a2a4c8b7d2d3d7d6b1d2f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8a2a4c8b7d2d3d7d6c2c3c6b8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8a2a4c8b7d2d3f8e8b1d2e7f8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d5e4d5f6d5f3e5c6e5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d5e4d5f6d5f3e5c6e5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d5e4d5f6d5f3e5c6e5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d5e4d5f6d5f3e5c6e5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d5e4d5f6d5f3e5c6e5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d5e4d5f6d5f3e5c6e5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d5e4d5f6d5f3e5c6e5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d5e4d5f6d5f3e5c6e5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d5e4d5f6d5f3e5c6e5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d5e4d5f6d5f3e5c6e5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d5e4d5f6d5f3e5c6e5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d6d2d3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d6d2d3f6d7b1d2d7b6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d6h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d6h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d6h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d6h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d6h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d6h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d6h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d6h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d6h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d6h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d6h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d6h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d6h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d6h2h3c6b8d2d4b8d7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d6h2h3c8b7d2d4c6b8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d6h2h3c8b7d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d6h2h3c8e6d2d4e6b3\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d6h2h3d8d7d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d6h2h3f6d7d2d4d7b6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d6h2h3f6d7d2d4d7b6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d6h2h3f6d7d2d4d7b6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d6h2h3f6d7d2d4d7b6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d6h2h3f6d7d2d4e7f6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8d2d3d7d6c2c3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8d2d3d7d6c2c3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8d2d3d7d6c2c3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8d2d4d7d6c2c3c8g4c1e3e5d4\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8d2d4d7d6c2c3c8g4d4d5c6a5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8d2d4d7d6c2c3c8g4h2h3g4f3\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8h2h3c8b7d2d3d7d6c2c3c6b8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8h2h3d7d6c2c3c6b8d2d4b8d7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1d7d6a4c6b7c6d2d4e5d4f3d4c8d7c1g5e8g8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1d7d6a4c6b7c6d2d4f6d7d4e5d6e5b1d2f7f6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1d7d6c2c3c8g4d2d4f6d7c1e3f7f5e4f5g4f5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5c6b7c6f3e5d8e7d2d4f7f6e5f3e7e4d1e2e4e2e1e2a6a5c1f4c8a6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5c6d7c6b1c3c8g4h2h3g4f3d1f3g8e7d2d3c6c5f3g3e7g6c1e3f8d6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5c6d7c6b1c3f7f6d2d4e5d4d1d4d8d4f3d4c8d7c1e3e8c8e1c1g8e7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5c6d7c6b1c3f7f6d2d4e5d4d1d4f8d6c1e3g8e7f3d2c6c5d4d3b7b5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5c6d7c6d2d4e5d4d1d4c8g4b1c3d8d4f3d4e8c8c1e3f8b4d4e2g4e2\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5c6d7c6d2d4e5d4d1d4c8g4b1c3d8d4f3d4e8c8d4e2f8c5f2f3g4e6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5c6d7c6d2d4e5d4d1d4d8d4f3d4c6c5d4e2c8d7b1c3e8c8c1f4d7c6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5c6d7c6d2d4e5d4d1d4d8d4f3d4c6c5d4e2c8d7b2b3d7c6f2f3f8e7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5c6d7c6e1g1c8g4h2h3h7h5d2d3d8f6b1d2g8e7d2c4g4f3d1f3f6f3\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5c6d7c6e1g1d8d6b1a3b7b5c2c4g8f6d1e2c8g4f1d1f8e7d2d3d6e6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5c6d7c6e1g1d8d6b1a3c8e6d1e2f7f6f1d1g7g5d2d4g5g4f3e1e8c8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5c6d7c6e1g1d8d6d2d3f7f6c1e3c8g4b1d2e8c8a1b1g8e7b2b4g7g5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5c6d7c6e1g1d8d6d2d4e5d4f3d4c8d7c1e3e8c8b1d2g8h6h2h3d6g6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5c6d7c6e1g1f7f6d2d4c8g4c2c3f8d6d4e5f6e5d1b3g4f3g2f3b7b6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5c6d7c6e1g1f7f6d2d4c8g4d4e5d8d1f1d1f6e5b1d2e8c8d1e1f8d6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5c6d7c6e1g1f7f6d2d4c8g4d4e5d8d1f1d1f6e5d1d3f8d6b1d2g8f6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5c6d7c6e1g1f7f6d2d4e5d4f3d4c6c5d4b3d8d1f1d1c8g4f2f3g4e6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5c6d7c6e1g1f7f6d2d4e5d4f3d4c6c5d4e2d8d1f1d1c8d7b1c3g8e7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5c6d7c6e1g1g8e7f3e5d8d4d1h5g7g6h5g5f8g7e5d3f7f5e4e5c6c5\r
+e2e4e7e5g1f3b8c6f1b5c6d4f3d4e5d4e1g1c7c6b5c4g8f6d2d3d7d5e4d5f6d5f1e1c8e6b1d2f8b4\r
+e2e4e7e5g1f3b8c6f1b5c6d4f3d4e5d4e1g1c7c6b5c4g8f6f1e1d7d6d2d3f8e7b1d2e8g8d2f3c6c5\r
+e2e4e7e5g1f3b8c6f1b5d7d6b1c3a7a6b5c4c8e6c4e6f7e6d2d4e5d4f3d4c6d4d1d4g8e7c1g5e7c6\r
+e2e4e7e5g1f3b8c6f1b5d7d6b1c3c8d7d2d4g8e7c1g5f7f6g5e3e7g6d1d2a7a6b5a4b7b5a4b3c6a5\r
+e2e4e7e5g1f3b8c6f1b5d7d6c2c3c8d7e1g1g8e7d2d4e7g6d4d5c6b8b5d7b8d7b1a3f8e7a3c2d7c5\r
+e2e4e7e5g1f3b8c6f1b5d7d6d2d4c8d7b1c3g8e7b5c4c6d4f3d4e5d4d1d4e7c6d4e3c6e5c4b3c7c6\r
+e2e4e7e5g1f3b8c6f1b5d7d6d2d4c8d7b1c3g8e7b5c4e5d4f3d4c6d4d1d4e7c6d4e3c6e5c4b3d7e6\r
+e2e4e7e5g1f3b8c6f1b5d7d6d2d4c8d7b1c3g8e7b5c4e5d4f3d4c6d4d1d4e7c6d4e3d7e6c3d5f8e7\r
+e2e4e7e5g1f3b8c6f1b5d7d6d2d4c8d7b1c3g8e7c1e3e7g6d1d2f8e7e1c1a7a6b5e2e5d4f3d4c6d4\r
+e2e4e7e5g1f3b8c6f1b5d7d6d2d4c8d7b1c3g8e7c1g5f7f6g5e3e7c8c3e2f8e7c2c3e8g8b5d3c8b6\r
+e2e4e7e5g1f3b8c6f1b5d7d6d2d4c8d7d4e5d6e5e1g1f8d6b1c3g8e7c1g5f7f6g5e3e8g8b5c4g8h8\r
+e2e4e7e5g1f3b8c6f1b5f7f5b1c3f5e4c3e4d7d5f3e5d5e4e5c6d8g5d1e2g8f6f2f4g5f4c6e5c7c6\r
+e2e4e7e5g1f3b8c6f1b5f7f5b1c3f5e4c3e4d7d5f3e5d5e4e5c6d8g5d1e2g8f6f2f4g5h4g2g3h4h3\r
+e2e4e7e5g1f3b8c6f1b5f7f5b1c3f5e4c3e4g8f6d1e2d7d5e4f6g7f6d2d4f8g7d4e5e8g8e5e6f8e8\r
+e2e4e7e5g1f3b8c6f1b5f7f5d2d3f5e4d3e4g8f6e1g1d7d6b1c3f8e7a2a3c8g4h2h3g4f3d1f3e8g8\r
+e2e4e7e5g1f3b8c6f1b5f7f5d2d3f5e4d3e4g8f6e1g1f8c5b1c3d7d6c1e3c5b6c3d5e8g8e3g5c8e6\r
+e2e4e7e5g1f3b8c6f1b5f8b4e1g1g8e7c2c3b4a5b5c6e7c6b2b4a5b6b4b5c6a5f3e5e8g8d2d4d7d5\r
+e2e4e7e5g1f3b8c6f1b5f8c5c2c3f7f5d2d4f5e4d4c5e4f3d1f3g8f6c1g5e8g8e1g1d8e7b5c4g8h8\r
+e2e4e7e5g1f3b8c6f1b5f8c5c2c3g8e7d2d4e5d4c3d4c5b4c1d2b4d2d1d2a7a6b5a4d7d5e4d5d8d5\r
+e2e4e7e5g1f3b8c6f1b5f8c5c2c3g8e7d2d4e5d4c3d4c5b4c1d2b4d2d1d2d7d5e4d5e7d5b5c6b7c6\r
+e2e4e7e5g1f3b8c6f1b5f8c5c2c3g8e7e1g1e7g6d2d4e5d4c3d4c5b6b1c3e8g8a2a4a7a6b5c4h7h6\r
+e2e4e7e5g1f3b8c6f1b5f8c5c2c3g8f6d2d4e5d4e4e5f6e4c3d4c5b4b1d2e8g8e1g1d7d5d1a4b4d2\r
+e2e4e7e5g1f3b8c6f1b5f8c5e1g1c6d4f3d4c5d4c2c3d4b6d2d4c7c6b5c4d7d6d1b3d8c7d4e5d6e5\r
+e2e4e7e5g1f3b8c6f1b5g7g6c2c3a7a6b5a4d7d6d2d4c8d7c1g5f7f6g5e3g8h6e1g1f8g7h2h3h6f7\r
+e2e4e7e5g1f3b8c6f1b5g7g6c2c3a7a6b5a4d7d6d2d4c8d7c1g5f7f6g5e3g8h6h2h3f8g7b1d2d8e7\r
+e2e4e7e5g1f3b8c6f1b5g7g6c2c3a7a6b5a4d7d6d2d4c8d7c1g5f7f6g5e3g8h6h2h3f8g7b1d2h6f7\r
+e2e4e7e5g1f3b8c6f1b5g7g6c2c3a7a6b5c4d7d6d2d4f8g7c1g5d8d7d4e5d6e5d1e2g8f6b1a3e8g8\r
+e2e4e7e5g1f3b8c6f1b5g8f6b1c3f8b4e1g1d7d6c3d5b4c5d2d4e5d4f3d4c5d4d1d4e8g8d5f6d8f6\r
+e2e4e7e5g1f3b8c6f1b5g8f6b1c3f8b4e1g1e8g8d2d3b4c3b2c3d7d6c1g5d8e7f1e1c6d8d3d4d8e6\r
+e2e4e7e5g1f3b8c6f1b5g8f6b1c3f8b4e1g1e8g8d2d3d7d6c1g5c8e6d3d4e5d4f3d4h7h6g5h4c6e5\r
+e2e4e7e5g1f3b8c6f1b5g8f6d1e2a7a6b5a4f8e7e1g1b7b5a4b3e8g8a2a4b5b4d2d3d7d6b1d2c8g4\r
+e2e4e7e5g1f3b8c6f1b5g8f6d1e2f8c5c2c3e8g8e1g1f8e8d2d3h7h6h2h3d7d6c1e3c8d7e3c5d6c5\r
+e2e4e7e5g1f3b8c6f1b5g8f6d2d3d7d6c2c3c8d7b5a4g7g6b1d2f8g7d2c4e8g8c4e3c6e7a4b3c7c6\r
+e2e4e7e5g1f3b8c6f1b5g8f6d2d3d7d6c2c3g7g6b1d2f8g7d2f1e8g8b5a4d6d5d1e2d8d6a4c2b7b6\r
+e2e4e7e5g1f3b8c6f1b5g8f6d2d3d7d6c2c3g7g6b1d2f8g7d2f1e8g8b5a4f6d7f1e3d7c5a4c2c5e6\r
+e2e4e7e5g1f3b8c6f1b5g8f6d2d3d7d6c2c3g7g6b1d2f8g7d2f1e8g8f1e3d6d5d1c2a7a6b5a4d5e4\r
+e2e4e7e5g1f3b8c6f1b5g8f6d2d3d7d6c2c3g7g6d3d4c8d7b1d2f8g7d4e5c6e5f3e5d6e5d1e2e8g8\r
+e2e4e7e5g1f3b8c6f1b5g8f6d2d3d7d6c2c3g7g6d3d4c8d7b1d2f8g7d4e5c6e5f3e5d6e5d1e2e8g8\r
+e2e4e7e5g1f3b8c6f1b5g8f6d2d4e5d4e1g1f8e7e4e5f6e4f3d4e8g8d4f5d7d5b5c6b7c6f5e7d8e7\r
+e2e4e7e5g1f3b8c6f1b5g8f6e1g1d7d6d2d4c8d7b1c3e5d4f3d4f8e7b2b3c6d4d1d4d7b5c3b5f6d7\r
+e2e4e7e5g1f3b8c6f1b5g8f6e1g1d7d6d2d4c8d7b1c3f8e7b5c6d7c6d1d3e5d4f3d4c6d7c1g5e8g8\r
+e2e4e7e5g1f3b8c6f1b5g8f6e1g1d7d6d2d4c8d7b1c3f8e7b5c6d7c6d1d3e5d4f3d4e8g8c1f4f6d7\r
+e2e4e7e5g1f3b8c6f1b5g8f6e1g1d7d6d2d4c8d7b1c3f8e7c1g5e8g8d4e5c6e5b5d7f6d7g5e7e5f3\r
+e2e4e7e5g1f3b8c6f1b5g8f6e1g1d7d6d2d4c8d7b1c3f8e7f1e1e5d4f3d4c6d4d1d4d7b5c3b5e8g8\r
+e2e4e7e5g1f3b8c6f1b5g8f6e1g1d7d6d2d4c8d7b1c3f8e7f1e1e5d4f3d4e8g8b5c6b7c6c1g5f8e8\r
+e2e4e7e5g1f3b8c6f1b5g8f6e1g1d7d6d2d4c8d7b1c3f8e7f1e1e5d4f3d4e8g8b5f1f8e8f2f3e7f8\r
+e2e4e7e5g1f3b8c6f1b5g8f6e1g1d7d6d2d4c8d7b1c3f8e7f1e1e5d4f3d4e8g8d4c6d7c6b5c6b7c6\r
+e2e4e7e5g1f3b8c6f1b5g8f6e1g1d7d6d2d4c8d7f1e1e5d4f3d4f8e7b1c3e8g8b5c6b7c6c1g5f8e8\r
+e2e4e7e5g1f3b8c6f1b5g8f6e1g1d7d6f1e1f8e7d2d4e5d4f3d4c8d7b1c3e8g8b5c6b7c6c1g5f8e8\r
+e2e4e7e5g1f3b8c6f1b5g8f6e1g1f6e4d2d4e4d6b5c6d7c6d4e5d6f5d1d8e8d8b1c3d8e8b2b3c8e6\r
+e2e4e7e5g1f3b8c6f1b5g8f6e1g1f6e4d2d4e4d6b5c6d7c6d4e5d6f5d1d8e8d8b2b3d8e8c1b2a7a5\r
+e2e4e7e5g1f3b8c6f1b5g8f6e1g1f6e4d2d4e4d6b5c6d7c6d4e5d6f5d1d8e8d8f1d1d8e8b1c3c8e6\r
+e2e4e7e5g1f3b8c6f1b5g8f6e1g1f6e4d2d4e4d6b5c6d7c6d4e5d6f5d1d8e8d8f1d1d8e8b1c3f5e7\r
+e2e4e7e5g1f3b8c6f1b5g8f6e1g1f6e4d2d4e4d6b5c6d7c6d4e5d6f5d1d8e8d8f1d1d8e8b1c3h7h6\r
+e2e4e7e5g1f3b8c6f1b5g8f6e1g1f6e4d2d4f8e7d1e2d7d5f3e5c8d7b5c6d7c6f1e1c6d7f2f3e4d6\r
+e2e4e7e5g1f3b8c6f1b5g8f6e1g1f6e4d2d4f8e7d1e2e4d6b5c6b7c6d4e5d6b7b1c3e8g8f1e1b7c5\r
+e2e4e7e5g1f3b8c6f1b5g8f6e1g1f6e4d2d4f8e7d1e2e4d6b5c6b7c6d4e5d6b7b1c3e8g8f1e1b7c5\r
+e2e4e7e5g1f3b8c6f1b5g8f6e1g1f6e4d2d4f8e7d1e2e4d6b5c6b7c6d4e5d6b7f1e1e8g8b1c3b7c5\r
+e2e4e7e5g1f3b8c6f1b5g8f6e1g1f6e4d2d4f8e7d1e2e4d6b5c6b7c6d4e5d6b7f1e1e8g8b1c3b7c5\r
+e2e4e7e5g1f3b8c6f1b5g8f6e1g1f6e4d2d4f8e7f1e1e4d6b5c6d7c6d4e5d6f5d1d8e7d8b1c3c8e6\r
+e2e4e7e5g1f3b8c6f1b5g8f6e1g1f6e4f1e1e4d6f3e5c6e5e1e5f8e7b1c3e8g8b5d3e7f6e5e3g7g6\r
+e2e4e7e5g1f3b8c6f1b5g8f6e1g1f6e4f1e1e4d6f3e5c6e5e1e5f8e7b5f1e8g8d2d4e7f6e5e1f8e8\r
+e2e4e7e5g1f3b8c6f1b5g8f6e1g1f6e4f1e1e4d6f3e5f8e7b5c6d7c6d1e2c8e6d2d3d6f5b1d2e8g8\r
+e2e4e7e5g1f3b8c6f1b5g8f6e1g1f6e4f1e1e4d6f3e5f8e7b5d3e8g8b1c3c6e5e1e5c7c6b2b3d6e8\r
+e2e4e7e5g1f3b8c6f1b5g8f6e1g1f6e4f1e1e4d6f3e5f8e7b5d3e8g8b1c3c6e5e1e5c7c6b2b3f8e8\r
+e2e4e7e5g1f3b8c6f1b5g8f6e1g1f6e4f1e1e4d6f3e5f8e7b5d3e8g8d1h5f7f5b1c3c6e5e1e5g7g6\r
+e2e4e7e5g1f3b8c6f1b5g8f6e1g1f8c5f3e5f6e4d1e2c6e5d2d4c5e7d4e5e4c5e2g4e8g8c1h6c5e6\r
+e2e4e7e5g1f3b8c6f1b5g8f6e1g1f8e7f1e1d7d6b5c6b7c6d2d4e5d4f3d4c8d7b1c3e8g8b2b3f8e8\r
+e2e4e7e5g1f3b8c6f1b5g8f6e1g1f8e7f1e1d7d6b5c6b7c6d2d4e5d4f3d4c8d7b1c3e8g8d1d3f8e8\r
+e2e4e7e5g1f3b8c6f1b5g8f6e1g1f8e7f1e1d7d6c2c3e8g8d2d4c8d7b5a4d8e8a4c2d7g4c1e3e5d4\r
+e2e4e7e5g1f3b8c6f1b5g8f6e1g1f8e7f1e1d7d6d2d4e5d4f3d4c8d7b1c3e8g8d4f3c6e5b5d7e5f3\r
+e2e4e7e5g1f3b8c6f1c4d7d6d2d4e5d4f3d4g8f6d4c6b7c6b1c3f8e7e1g1e8g8c1f4f6d7f4g3a8b8\r
+e2e4e7e5g1f3b8c6f1c4f8c5b1c3g8f6d2d3d7d6c1e3c5e3f2e3c6a5c4b3a5b3a2b3f6g4d1e2f7f6\r
+e2e4e7e5g1f3b8c6f1c4f8c5b2b4c5b4c2c3b4a5e1g1d7d6d2d4c8d7d1b3d8f6d4e5d6e5f1d1h7h6\r
+e2e4e7e5g1f3b8c6f1c4f8c5b2b4c5b4c2c3b4a5e1g1d7d6d2d4c8d7d1b3d8f6d4e5d6e5f1d1h7h6\r
+e2e4e7e5g1f3b8c6f1c4f8c5b2b4c5b4c2c3b4a5e1g1d7d6d2d4c8g4c4b5e5d4c3d4g4d7c1b2c6e7\r
+e2e4e7e5g1f3b8c6f1c4f8c5b2b4c5b4c2c3b4a5e1g1d7d6d2d4c8g4c4b5e5d4c3d4g4d7c1b2g8f6\r
+e2e4e7e5g1f3b8c6f1c4f8c5b2b4c5b4c2c3b4a5e1g1d7d6d2d4c8g4c4b5e5d4c3d4g4d7c1b2g8f6\r
+e2e4e7e5g1f3b8c6f1c4f8c5b2b4c5b4c2c3b4a5e1g1d7d6d2d4c8g4c4b5e5d4c3d4g4d7c1b2g8f6\r
+e2e4e7e5g1f3b8c6f1c4f8c5b2b4c5b4c2c3b4a5e1g1d7d6d2d4c8g4d1a4e5d4c3d4a7a6c4d5a5b6\r
+e2e4e7e5g1f3b8c6f1c4f8c5b2b4c5b4c2c3b4a5e1g1d7d6d2d4c8g4d1a4g4f3g2f3e5d4c3d4a7a6\r
+e2e4e7e5g1f3b8c6f1c4f8c5b2b4c5b4c2c3b4a5e1g1d8f6d2d4g8e7c1g5f6d6d1b3e8g8f1d1a5b6\r
+e2e4e7e5g1f3b8c6f1c4f8c5b2b4c5b4c2c3b4a5e1g1d8f6d2d4g8e7c1g5f6d6d4d5c6d8d1a4a5b6\r
+e2e4e7e5g1f3b8c6f1c4f8c5b2b4c5b4c2c3b4a5e1g1d8f6d2d4g8e7c1g5f6d6d4d5c6d8d1a4b7b6\r
+e2e4e7e5g1f3b8c6f1c4f8c5b2b4c5b4c2c3b4a5e1g1d8f6d2d4g8e7c1g5f6d6d4d5c6d8d1a4b7b6\r
+e2e4e7e5g1f3b8c6f1c4f8c5b2b4c5b4c2c3b4a5e1g1d8f6d2d4g8e7d1a4a5b6c1g5f6d6b1a3e5d4\r
+e2e4e7e5g1f3b8c6f1c4f8c5b2b4c5b4c2c3b4a5e1g1d8f6d2d4g8e7d4d5c6d8c1g5f6d6d1a4f7f6\r
+e2e4e7e5g1f3b8c6f1c4f8c5b2b4c5b4c2c3b4a5e1g1d8f6d2d4g8e7d4d5c6d8d1a4a5b6c1g5f6d6\r
+e2e4e7e5g1f3b8c6f1c4f8c5b2b4c5b4c2c3b4a5e1g1d8f6d2d4g8e7d4d5c6d8d1a4a5b6c1g5f6d6\r
+e2e4e7e5g1f3b8c6f1c4f8c5b2b4c5b4c2c3b4a5e1g1d8f6d2d4g8e7f3g5c6d8f2f4e5d4c3d4a5b6\r
+e2e4e7e5g1f3b8c6f1c4f8c5b2b4c5b4c2c3b4a5e1g1d8f6d2d4g8h6c1g5f6d6d4d5c6d8d1a4a5b6\r
+e2e4e7e5g1f3b8c6f1c4f8c5b2b4c5b4c2c3b4a5e1g1d8f6d2d4h7h6c4b5g8e7c1a3e5d4e4e5f6e6\r
+e2e4e7e5g1f3b8c6f1c4f8c5b2b4c5b4c2c3b4a5e1g1d8f6d2d4h7h6d1a4a5b6c4b5g8e7c1a3e5d4\r
+e2e4e7e5g1f3b8c6f1c4f8c5c2c3g8f6d2d3a7a6e1g1d7d6f1e1c5a7c4b3e8g8b1d2c8e6d2f1e6b3\r
+e2e4e7e5g1f3b8c6f1c4f8c5c2c3g8f6d2d3d7d6b1d2a7a6e1g1e8g8c4b3c5a7h2h3c8e6b3c2d6d5\r
+e2e4e7e5g1f3b8c6f1c4f8c5c2c3g8f6d2d3d7d6c4b3a7a6b1d2e8g8h2h3c5a7d2f1d6d5d1e2f8e8\r
+e2e4e7e5g1f3b8c6f1c4f8c5c2c3g8f6d2d4e5d4c3d4c5b4b1c3f6e4e1g1b4c3b2c3d7d5c1a3d5c4\r
+e2e4e7e5g1f3b8c6f1c4f8c5c2c3g8f6d2d4e5d4c3d4c5b4b1c3f6e4e1g1b4c3b2c3d7d5c1a3d5c4\r
+e2e4e7e5g1f3b8c6f1c4f8c5c2c3g8f6d2d4e5d4e4e5d7d5c4b5f6e4c3d4c5b6b1c3e8g8c1e3f7f5\r
+e2e4e7e5g1f3b8c6f1c4f8c5c2c3g8f6d2d4e5d4e4e5d7d5c4b5f6e4c3d4c5e7b1c3e8g8b5d3f7f5\r
+e2e4e7e5g1f3b8c6f1c4f8c5d2d3d7d6b1c3g8f6c1g5h7h6g5f6d8f6c3d5f6g6d1e2c8g4c2c3c5b6\r
+e2e4e7e5g1f3b8c6f1c4f8c5d2d3g8f6b1c3d7d6c1e3c5b6d1d2c6a5c4b5c7c6b5a4b6e3f2e3b7b5\r
+e2e4e7e5g1f3b8c6f1c4f8c5d2d3g8f6b1c3d7d6c1g5h7h6g5f6d8f6c3d5f6d8c2c3c6e7d5e3e8g8\r
+e2e4e7e5g1f3b8c6f1c4f8c5d2d3g8f6c1e3c5e3f2e3d7d6e1g1c6a5c4b5c7c6b5a4d8b6d1d2f6g4\r
+e2e4e7e5g1f3b8c6f1c4f8c5d2d3g8f6c2c3d7d6b1d2a7a6c4b3c5a7d2c4h7h6e1g1c6e7b3c2e8g8\r
+e2e4e7e5g1f3b8c6f1c4f8c5d2d3g8f6c2c3d7d6b1d2c6e7d2f1c7c6d1e2e8g8h2h3d6d5c4b3e7g6\r
+e2e4e7e5g1f3b8c6f1c4f8c5d2d3g8f6c2c3d7d6c1e3c5e3f2e3d8e7e1g1c6d8b1d2d8e6d3d4f6g4\r
+e2e4e7e5g1f3b8c6f1c4f8c5e1g1g8f6d2d3d7d6c2c3a7a6c4b3c5a7b1d2e8g8h2h3c8e6f1e1e6b3\r
+e2e4e7e5g1f3b8c6f1c4f8e7d2d3g8f6c4b3d7d5b1d2e8g8e1g1d5e4d3e4e7c5c2c3d8e7b3c2a7a5\r
+e2e4e7e5g1f3b8c6f1c4f8e7d2d3g8f6c4b3d7d6c2c3e8g8e1g1c6a5b3c2c7c5f1e1a5c6b1d2f8e8\r
+e2e4e7e5g1f3b8c6f1c4f8e7d2d4d7d6b1c3g8f6h2h3e8g8e1g1c6d4f3d4e5d4d1d4c7c6a2a4f6d7\r
+e2e4e7e5g1f3b8c6f1c4g8f6d2d3f8e7e1g1e8g8c2c3d7d5e4d5f6d5f1e1c8g4b1d2g8h8a2a4f7f6\r
+e2e4e7e5g1f3b8c6f1c4g8f6f3g5d7d5e4d5c6a5c4b5c7c6d5c6b7c6b5e2h7h6g5h3f8c5e1g1e8g8\r
+e2e4e7e5g1f3b8c6f1c4g8f6f3g5d7d5e4d5c6a5c4b5c7c6d5c6b7c6b5e2h7h6g5h3f8c5e1g1e8g8\r
+e2e4e7e5g1f3b8c6f1c4g8f6f3g5d7d5e4d5c6a5c4b5c7c6d5c6b7c6b5f1h7h6g5h3f8c5d1e2e8g8\r
+e2e4e7e5g1f3b8c6f1c4g8f6f3g5d7d5e4d5c6a5c4b5c7c6d5c6b7c6b5f1h7h6g5h3f8c5d2d3d8b6\r
+e2e4e7e5g1f3b8c6f1c4g8f6f3g5d7d5e4d5c6d4d5d6d8d6c4f7e8e7f7b3c8g4f2f3g4h5b1c3a8e8\r
+e2e4e7e5g1f3d7d6d2d4b8d7b1c3c7c6d4e5d6e5f1c4f8e7e1g1g8f6c1e3b7b5c4d3e8g8a2a4b5b4\r
+e2e4e7e5g1f3d7d6d2d4b8d7f1c4c7c6b1c3f8e7e1g1g8f6a2a4e8g8b2b3d8c7c1b2d7b6c4d3c8g4\r
+e2e4e7e5g1f3d7d6d2d4b8d7f1c4c7c6d4e5d6e5e1g1f8e7b1c3g8f6d1e2e8g8f1d1d8c7a2a3d7c5\r
+e2e4e7e5g1f3d7d6d2d4e5d4f3d4g7g6b1c3f8g7c1f4g8f6d1d2e8g8e1c1f8e8f2f3b8c6d4c6b7c6\r
+e2e4e7e5g1f3d7d6d2d4e5d4f3d4g8f6b1c3f8e7f1e2e8g8e1g1f8e8f1e1e7f8e2f1h7h6c1f4b8d7\r
+e2e4e7e5g1f3g8f6b1c3b8c6d2d4e5d4f3d4f8b4d4c6b7c6f1d3d7d5e4d5c6d5e1g1e8g8c1g5c7c6\r
+e2e4e7e5g1f3g8f6b1c3b8c6g2g3f8c5f1g2d7d6d2d3a7a6c1e3c5e3f2e3c8g4e1g1c6e7h2h3g4f3\r
+e2e4e7e5g1f3g8f6b1c3b8c6g2g3f8c5f1g2d7d6d2d3a7a6c1e3c5e3f2e3c8g4h2h3g4f3d1f3c6e7\r
+e2e4e7e5g1f3g8f6b1c3b8c6g2g3f8c5f1g2d7d6d2d3a7a6c1e3c8g4h2h3g4f3d1f3c6d4f3d1h7h5\r
+e2e4e7e5g1f3g8f6d2d4e5d4e4e5f6e4d1d4d7d5e5d6e4d6b1c3b8c6d4f4d6f5f1b5f8d6f4e4d8e7\r
+e2e4e7e5g1f3g8f6d2d4f6e4f1d3d7d5f3e5b8c6e5c6b7c6e1g1f8d6c2c4e8g8c4c5d6e7b1c3f7f5\r
+e2e4e7e5g1f3g8f6d2d4f6e4f1d3d7d5f3e5b8c6e5c6b7c6e1g1f8e7b1c3e4c3b2c3e8g8f1e1f8e8\r
+e2e4e7e5g1f3g8f6d2d4f6e4f1d3d7d5f3e5b8c6e5c6b7c6e1g1f8e7b1d2e4d2c1d2e8g8f1e1f8e8\r
+e2e4e7e5g1f3g8f6d2d4f6e4f1d3d7d5f3e5b8d7e5d7c8d7e1g1d8h4c2c4e8c8c4c5g7g5f2f3e4f6\r
+e2e4e7e5g1f3g8f6d2d4f6e4f1d3d7d5f3e5b8d7e5d7c8d7e1g1f8d6b1c3d8h4g2g3e4c3b2c3h4g4\r
+e2e4e7e5g1f3g8f6d2d4f6e4f1d3d7d5f3e5b8d7e5d7c8d7e1g1f8d6b1c3e4c3b2c3e8g8d1h5f7f5\r
+e2e4e7e5g1f3g8f6d2d4f6e4f1d3d7d5f3e5b8d7e5d7c8d7e1g1f8e7d1f3e8g8c2c3e7d6b1d2f7f5\r
+e2e4e7e5g1f3g8f6d2d4f6e4f1d3d7d5f3e5f8d6e1g1b8c6e5c6b7c6c2c4e8g8c4c5d6e7b1c3f7f5\r
+e2e4e7e5g1f3g8f6d2d4f6e4f1d3d7d5f3e5f8d6e1g1e8g8c2c4d6e5d4e5b8c6c4d5d8d5d1c2c6b4\r
+e2e4e7e5g1f3g8f6d2d4f6e4f1d3d7d5f3e5f8d6e1g1e8g8c2c4d6e5d4e5b8c6c4d5d8d5d1c2c6b4\r
+e2e4e7e5g1f3g8f6d2d4f6e4f1d3d7d5f3e5f8e7b1d2e4d2c1d2b8c6e5c6b7c6e1g1e8g8d1h5g7g6\r
+e2e4e7e5g1f3g8f6f3e5d7d6e5f3f6e4c2c4f8e7d2d4d6d5f1d3b8c6c4d5d8d5e1g1c8g4b1c3e4c3\r
+e2e4e7e5g1f3g8f6f3e5d7d6e5f3f6e4d1e2d8e7d2d3e4f6c1g5e7e2f1e2f8e7b1c3c7c6e1c1b8a6\r
+e2e4e7e5g1f3g8f6f3e5d7d6e5f3f6e4d1e2d8e7d2d3e4f6c1g5e7e2f1e2f8e7b1c3c7c6e1c1b8a6\r
+e2e4e7e5g1f3g8f6f3e5d7d6e5f3f6e4d1e2d8e7d2d3e4f6c1g5e7e2f1e2f8e7b1c3c7c6e1c1b8a6\r
+e2e4e7e5g1f3g8f6f3e5d7d6e5f3f6e4d2d4d6d5f1d3b8c6e1g1c8g4c2c4e4f6b1c3g4f3d1f3c6d4\r
+e2e4e7e5g1f3g8f6f3e5d7d6e5f3f6e4d2d4d6d5f1d3b8c6e1g1c8g4c2c4e4f6b1c3g4f3d1f3c6d4\r
+e2e4e7e5g1f3g8f6f3e5d7d6e5f3f6e4d2d4d6d5f1d3b8c6e1g1c8g4c2c4e4f6c4d5g4f3d1f3d8d5\r
+e2e4e7e5g1f3g8f6f3e5d7d6e5f3f6e4d2d4d6d5f1d3b8c6e1g1c8g4c2c4f8e7c4d5d8d5b1c3e4c3\r
+e2e4e7e5g1f3g8f6f3e5d7d6e5f3f6e4d2d4d6d5f1d3b8c6e1g1c8g4f1e1f8e7c2c4e4f6c4d5g4f3\r
+e2e4e7e5g1f3g8f6f3e5d7d6e5f3f6e4d2d4d6d5f1d3b8c6e1g1f8e7c2c4c6b4d3e2c8e6b1c3e8g8\r
+e2e4e7e5g1f3g8f6f3e5d7d6e5f3f6e4d2d4d6d5f1d3b8c6e1g1f8e7c2c4c6b4d3e2e8g8b1c3c8e6\r
+e2e4e7e5g1f3g8f6f3e5d7d6e5f3f6e4d2d4d6d5f1d3b8c6e1g1f8e7c2c4c6b4d3e2e8g8b1c3c8e6\r
+e2e4e7e5g1f3g8f6f3e5d7d6e5f3f6e4d2d4d6d5f1d3b8c6e1g1f8e7c2c4e4f6b1c3e8g8h2h3d5c4\r
+e2e4e7e5g1f3g8f6f3e5d7d6e5f3f6e4d2d4d6d5f1d3f8d6e1g1e8g8c2c4c7c6c4d5c6d5b1c3e4c3\r
+e2e4e7e5g1f3g8f6f3e5d7d6e5f3f6e4d2d4d6d5f1d3f8d6e1g1e8g8c2c4c7c6d1c2b8a6a2a3c8g4\r
+e2e4e7e5g1f3g8f6f3e5d7d6e5f3f6e4d2d4d6d5f1d3f8d6e1g1e8g8c2c4c7c6d1c2b8a6a2a3f7f5\r
+e2e4e7e5g1f3g8f6f3e5d7d6e5f3f6e4d2d4d6d5f1d3f8e7e1g1b8c6c2c4c6b4c4d5b4d3d1d3d8d5\r
+e2e4e7e5g1f3g8f6f3e5d7d6e5f3f6e4d2d4d6d5f1d3f8e7e1g1b8c6c2c4c6b4c4d5b4d3d1d3d8d5\r
+e2e4e7e5g1f3g8f6f3e5d7d6e5f3f6e4d2d4d6d5f1d3f8e7e1g1b8c6c2c4c6b4d3e2d5c4e2c4e8g8\r
+e2e4e7e5g1f3g8f6f3e5d7d6e5f3f6e4d2d4d6d5f1d3f8e7e1g1b8c6f1e1c8f5d3b5e7f6b1d2e8g8\r
+e2e4e7e5g1f3g8f6f3e5d7d6e5f3f6e4d2d4d6d5f1d3f8e7e1g1b8c6f1e1c8g4c2c3f7f5d1b3e8g8\r
+e2e4e7e5g1f3g8f6f3e5d7d6e5f3f6e4d2d4d6d5f1d3f8e7e1g1b8c6f1e1c8g4c2c4e4f6b1c3d5c4\r
+e2e4e7e5g1f3g8f6f3e5d7d6e5f3f6e4d2d4d6d5f1d3f8e7e1g1b8c6f1e1c8g4c2c4e4f6c4d5g4f3\r
+e2e4e7e5g1f3g8f6f3e5d7d6e5f3f6e4d2d4d6d5f1d3f8e7e1g1c8f5f1e1b8c6b1d2e4d2d1d2f5d3\r
+e2e4e7e5g1f3g8f6f3e5d7d6e5f3f6e4d2d4d6d5f1d3f8e7e1g1c8f5f1e1b8c6b1d2e4d2d1d2f5d3\r
+e2e4e7e5g1f3g8f6f3e5d7d6e5f3f6e4d2d4e4f6f1d3f8e7h2h3e8g8e1g1c7c6f1e1b8d7c1f4f8e8\r
+e2e4e7e5g1f3g8f6f3e5d7d6e5f3f6e4d2d4f8e7f1d3d6d5e1g1e8g8c2c4e4f6h2h3d5c4d3c4b8d7\r
+e2e4e7e6d1e2c7c5f2f4b8c6g1f3g8f6g2g3d7d5e4e5f6d7f1g2c6d4f3d4c5d4e1g1d7b8d2d3b8c6\r
+e2e4e7e6d1e2c7c5f2f4d7d5e4d5d8d5b1c3d5d8g1f3b8c6g2g3g8f6f1g2f8e7e1g1e8g8d2d3c8d7\r
+e2e4e7e6d2d3c7c5b1d2b8c6g2g3g7g6f1g2f8g7g1f3g8e7e1g1e8g8c2c3d7d6a2a4f7f5d1b3d6d5\r
+e2e4e7e6d2d3c7c5g2g3b8c6f1g2g7g6g1f3f8g7e1g1g8e7c2c3e6e5c1e3d7d6h2h3e8g8b1a3b7b6\r
+e2e4e7e6d2d3d7d5b1d2b8c6g1f3g8f6g2g3f8c5f1g2d5e4d3e4e6e5e1g1e8g8c2c3a7a5h2h3b7b6\r
+e2e4e7e6d2d4d7d5b1c3b8c6g1f3g8f6e4d5e6d5f1b5c8g4h2h3g4f3d1f3f8e7c1g5a7a6b5c6b7c6\r
+e2e4e7e6d2d4d7d5b1c3d5e4c3e4b8d7f1d3f8e7g1f3g8f6e4f6d7f6e1g1e8g8f3e5c7c5d4c5d8d5\r
+e2e4e7e6d2d4d7d5b1c3d5e4c3e4b8d7f1d3g8f6e4f6d7f6g1f3c7c5d4c5f8c5e1g1e8g8c1g5c5e7\r
+e2e4e7e6d2d4d7d5b1c3d5e4c3e4b8d7g1f3f8e7f1d3g8f6e1g1e8g8d1e2b7b6c1f4c8b7a1d1d8c8\r
+e2e4e7e6d2d4d7d5b1c3d5e4c3e4b8d7g1f3g8f6e4f6d7f6c1g5f8e7f1d3c7c5d4c5d8a5c2c3a5c5\r
+e2e4e7e6d2d4d7d5b1c3d5e4c3e4b8d7g1f3g8f6e4g3c7c5f1e2c5d4f3d4f8c5d4b3c5e7e1g1e8g8\r
+e2e4e7e6d2d4d7d5b1c3d5e4c3e4b8d7g1f3g8f6f1d3b7b6e4f6d7f6f3e5a7a6e1g1c8b7c2c3f8e7\r
+e2e4e7e6d2d4d7d5b1c3d5e4c3e4g8f6e4f6d8f6g1f3c8d7c1g5f6g6f1d3f7f5h2h4b8c6d1e2h7h6\r
+e2e4e7e6d2d4d7d5b1c3f8b4a2a3b4c3b2c3d5e4d1g4g8f6g4g7h8g8g7h6c7c5g1e2b8c6d4c5g8g6\r
+e2e4e7e6d2d4d7d5b1c3f8b4a2a3b4c3b2c3d5e4d1g4g8f6g4g7h8g8g7h6c7c5g1e2b8d7e2g3g8g6\r
+e2e4e7e6d2d4d7d5b1c3f8b4a2a3b4c3b2c3d5e4d1g4g8f6g4g7h8g8g7h6c7c5g1e2g8g6h6d2b8d7\r
+e2e4e7e6d2d4d7d5b1c3f8b4a2a3b4c3b2c3d5e4d1g4g8f6g4g7h8g8g7h6c7c5g1e2g8g6h6e3b8c6\r
+e2e4e7e6d2d4d7d5b1c3f8b4a2a3b4c3b2c3d5e4d1g4g8f6g4g7h8g8g7h6c7c5g1e2g8g6h6e3b8c6\r
+e2e4e7e6d2d4d7d5b1c3f8b4a2a3b4c3b2c3d5e4d1g4g8f6g4g7h8g8g7h6g8g6h6d2b8c6g1e2b7b6\r
+e2e4e7e6d2d4d7d5b1c3f8b4c1d2c7c5a2a3b4c3d2c3g8f6d4c5f6e4c3g7h8g8g7d4b8c6g1f3f7f6\r
+e2e4e7e6d2d4d7d5b1c3f8b4c1d2d5e4d1g4d8d4e1c1g8f6g4g7h8g8g7h6b4f8h6h4g8g4h4h3d4f2\r
+e2e4e7e6d2d4d7d5b1c3f8b4c1d2d5e4d1g4g8f6g4g7h8g8g7h6b8c6e1c1g8g6h6h4b4c3d2c3d8d5\r
+e2e4e7e6d2d4d7d5b1c3f8b4d1g4g8f6g4g7h8g8g7h6g8g6h6e3f6e4f1d3f7f5g1e2c7c5d3e4f5e4\r
+e2e4e7e6d2d4d7d5b1c3f8b4e4d5e6d5f1d3b8c6g1e2g8e7e1g1c8f5d3f5e7f5d1d3d8d7c3d1e8g8\r
+e2e4e7e6d2d4d7d5b1c3f8b4e4e5b7b6d1g4b4f8g1f3c8a6c3b5d8d7a2a4g8e7f1e2e7f5c1f4h7h5\r
+e2e4e7e6d2d4d7d5b1c3f8b4e4e5c7c5a2a3b4a5b2b4c5d4c3b5a5c7f2f4c8d7g1f3d7b5f1b5b8c6\r
+e2e4e7e6d2d4d7d5b1c3f8b4e4e5c7c5a2a3b4a5b2b4c5d4c3b5a5c7f2f4g8e7g1f3b8c6f1d3c7b8\r
+e2e4e7e6d2d4d7d5b1c3f8b4e4e5c7c5a2a3b4a5b2b4c5d4c3b5a5c7f2f4g8e7g1f3c8d7b5d4b8c6\r
+e2e4e7e6d2d4d7d5b1c3f8b4e4e5c7c5a2a3b4a5b2b4c5d4d1g4g8e7b4a5d4c3g4g7h8g8g7h7b8c6\r
+e2e4e7e6d2d4d7d5b1c3f8b4e4e5c7c5a2a3b4a5b2b4c5d4d1g4g8e7b4a5d4c3g4g7h8g8g7h7b8d7\r
+e2e4e7e6d2d4d7d5b1c3f8b4e4e5c7c5a2a3b4a5c1d2b8c6c3b5c6d4b5d4a5d2d1d2c5d4d2d4g8e7\r
+e2e4e7e6d2d4d7d5b1c3f8b4e4e5c7c5a2a3b4a5c1d2b8c6c3b5c6d4d2a5d8a5b2b4a5b6b5d4c5d4\r
+e2e4e7e6d2d4d7d5b1c3f8b4e4e5c7c5a2a3b4a5c1d2c5d4c3b5b8c6g1f3f7f6b5d4c6d4f3d4a5d2\r
+e2e4e7e6d2d4d7d5b1c3f8b4e4e5c7c5a2a3b4c3b2c3d8a5c1d2a5a4d1g4e8f8g4d1g8e7g1f3b7b6\r
+e2e4e7e6d2d4d7d5b1c3f8b4e4e5c7c5a2a3b4c3b2c3d8a5c1d2a5a4d1g4g7g6g4d1c5d4a1b1d4d3\r
+e2e4e7e6d2d4d7d5b1c3f8b4e4e5c7c5a2a3b4c3b2c3d8c7d1g4f7f5g4g3g8e7g3g7h8g8g7h7c5d4\r
+e2e4e7e6d2d4d7d5b1c3f8b4e4e5c7c5a2a3b4c3b2c3d8c7d1g4f7f5g4g3g8e7g3g7h8g8g7h7c5d4\r
+e2e4e7e6d2d4d7d5b1c3f8b4e4e5c7c5a2a3b4c3b2c3d8c7d1g4f7f5g4g3g8e7g3g7h8g8g7h7c5d4\r
+e2e4e7e6d2d4d7d5b1c3f8b4e4e5c7c5a2a3b4c3b2c3d8c7d1g4f7f6g1f3b8c6g4g3c7f7d4c5g8e7\r
+e2e4e7e6d2d4d7d5b1c3f8b4e4e5c7c5a2a3b4c3b2c3g8e7a3a4b8c6g1f3c8d7f1e2a8c8e1g1e8g8\r
+e2e4e7e6d2d4d7d5b1c3f8b4e4e5c7c5a2a3b4c3b2c3g8e7a3a4b8c6g1f3d8a5d1d2c8d7c1a3c5d4\r
+e2e4e7e6d2d4d7d5b1c3f8b4e4e5c7c5a2a3b4c3b2c3g8e7a3a4b8c6g1f3d8a5d1d2c8d7f1e2a8c8\r
+e2e4e7e6d2d4d7d5b1c3f8b4e4e5c7c5a2a3b4c3b2c3g8e7a3a4c8d7g1f3d8a5c1d2b8c6f1e2f7f6\r
+e2e4e7e6d2d4d7d5b1c3f8b4e4e5c7c5a2a3b4c3b2c3g8e7d1g4c5d4c3d4d8c7e1d1e8g8g1f3f7f6\r
+e2e4e7e6d2d4d7d5b1c3f8b4e4e5c7c5a2a3b4c3b2c3g8e7d1g4c5d4g4g7h8g8g7h7d8c7g1e2b8c6\r
+e2e4e7e6d2d4d7d5b1c3f8b4e4e5c7c5a2a3b4c3b2c3g8e7d1g4d8c7g4g7h8g8g7h7c5d4g1e2b8c6\r
+e2e4e7e6d2d4d7d5b1c3f8b4e4e5c7c5a2a3b4c3b2c3g8e7g1f3b7b6a3a4c8a6f1a6b8a6e1g1a6b8\r
+e2e4e7e6d2d4d7d5b1c3f8b4e4e5c7c5a2a3b4c3b2c3g8e7g1f3b7b6a3a4c8a6f1a6b8a6e1g1a6b8\r
+e2e4e7e6d2d4d7d5b1c3f8b4e4e5c7c5a2a3b4c3b2c3g8e7g1f3b7b6a3a4c8a6f1a6b8a6e1g1a6b8\r
+e2e4e7e6d2d4d7d5b1c3f8b4e4e5c7c5a2a3b4c3b2c3g8e7g1f3b7b6f1b5c8d7b5d3d7a4h2h4h7h6\r
+e2e4e7e6d2d4d7d5b1c3f8b4e4e5c7c5a2a3b4c3b2c3g8e7g1f3c8d7d4c5d7a4a1b1b8d7c1e3d8a5\r
+e2e4e7e6d2d4d7d5b1c3f8b4e4e5c7c5a2a3b4c3b2c3g8e7g1f3c8d7d4c5d8c7f1d3d7a4a1b1b8d7\r
+e2e4e7e6d2d4d7d5b1c3f8b4e4e5c7c5a2a3b4c3b2c3g8e7g1f3c8d7d4c5d8c7f1d3d7a4c1e3b8d7\r
+e2e4e7e6d2d4d7d5b1c3f8b4e4e5c7c5a2a3b4c3b2c3g8e7g1f3c8d7d4c5d8c7f1d3d7a4e1g1b8d7\r
+e2e4e7e6d2d4d7d5b1c3f8b4e4e5c7c5a2a3b4c3b2c3g8e7h2h4d8a5c1d2c5d4c3d4a5a4c2c3a4d1\r
+e2e4e7e6d2d4d7d5b1c3f8b4e4e5g8e7a2a3b4c3b2c3c7c5a3a4b8c6g1f3c8d7f1d3d8c7e1g1c5c4\r
+e2e4e7e6d2d4d7d5b1c3f8b4e4e5g8e7a2a3b4c3b2c3c7c5g1f3b7b6f3g5h7h6d1h5g7g6h5h3d8c7\r
+e2e4e7e6d2d4d7d5b1c3f8b4e4e5g8e7a2a3b4c3b2c3c7c5g1f3d8a5c1d2b8c6f1e2c5d4c3d4a5a4\r
+e2e4e7e6d2d4d7d5b1c3f8b4f1d3d5e4d3e4c7c5g1e2g8f6e4f3c5d4d1d4d8d4e2d4a7a6e1g1b8d7\r
+e2e4e7e6d2d4d7d5b1c3f8b4g1e2d5e4a2a3b4e7c3e4b8c6c1e3g8f6e2c3e8g8e4g3b7b6f1e2c8b7\r
+e2e4e7e6d2d4d7d5b1c3f8b4g1e2d5e4a2a3b4e7c3e4b8c6g2g4b7b6f1g2c8b7c2c3g8f6e2g3e8g8\r
+e2e4e7e6d2d4d7d5b1c3g8f6c1g5d5e4c3e4b8d7e4f6d7f6g1f3c7c5d1d3f8e7g5f6e7f6d3b5c8d7\r
+e2e4e7e6d2d4d7d5b1c3g8f6c1g5d5e4c3e4b8d7e4f6d7f6g1f3c7c5f1c4c5d4e1g1f8e7d1e2h7h6\r
+e2e4e7e6d2d4d7d5b1c3g8f6c1g5d5e4c3e4b8d7e4f6d7f6g1f3c7c5f1c4c5d4e1g1f8e7d1e2h7h6\r
+e2e4e7e6d2d4d7d5b1c3g8f6c1g5d5e4c3e4b8d7e4f6d7f6g1f3h7h6g5h4c7c5f1b5c8d7b5d7d8d7\r
+e2e4e7e6d2d4d7d5b1c3g8f6c1g5d5e4c3e4b8d7e4f6d7f6g1f3h7h6g5h4g7g6f1c4f8g7e1g1e8g8\r
+e2e4e7e6d2d4d7d5b1c3g8f6c1g5d5e4c3e4b8d7g1f3f8e7e4f6e7f6g5f6d8f6d1d2e8g8d2g5f6g5\r
+e2e4e7e6d2d4d7d5b1c3g8f6c1g5d5e4c3e4b8d7g1f3f8e7e4f6e7f6h2h4e8g8d1e2c7c5e2e3d8a5\r
+e2e4e7e6d2d4d7d5b1c3g8f6c1g5d5e4c3e4f8e7g5f6e7f6c2c3b8d7g1f3e8g8f1d3e6e5d1c2e5d4\r
+e2e4e7e6d2d4d7d5b1c3g8f6c1g5d5e4c3e4f8e7g5f6e7f6g1f3b8d7d1d2f6e7e1c1d7f6f1d3e8g8\r
+e2e4e7e6d2d4d7d5b1c3g8f6c1g5d5e4c3e4f8e7g5f6e7f6g1f3b8d7d1e2e8g8e1c1f6e7c1b1b7b6\r
+e2e4e7e6d2d4d7d5b1c3g8f6c1g5d5e4c3e4f8e7g5f6e7f6g1f3b8d7f1c4e8g8d1e2d7b6c4b3c8d7\r
+e2e4e7e6d2d4d7d5b1c3g8f6c1g5d5e4c3e4f8e7g5f6e7f6g1f3b8d7f1c4e8g8d1e2d7b6c4b3c8d7\r
+e2e4e7e6d2d4d7d5b1c3g8f6c1g5d5e4c3e4f8e7g5f6e7f6g1f3b8d7f1d3c7c5d4c5d7c5d3b5e8e7\r
+e2e4e7e6d2d4d7d5b1c3g8f6c1g5d5e4c3e4f8e7g5f6e7f6g1f3c8d7d1d2d7c6e4f6d8f6f3e5e8g8\r
+e2e4e7e6d2d4d7d5b1c3g8f6c1g5d5e4c3e4f8e7g5f6g7f6g1f3b7b6f1c4c8b7d1e2c7c6e1c1d8c7\r
+e2e4e7e6d2d4d7d5b1c3g8f6c1g5d5e4c3e4f8e7g5f6g7f6g1f3b7b6f1c4c8b7d1e2c7c6e1c1d8c7\r
+e2e4e7e6d2d4d7d5b1c3g8f6c1g5d5e4c3e4f8e7g5f6g7f6g1f3b7b6f1c4c8b7d1e2c7c6e1c1d8c7\r
+e2e4e7e6d2d4d7d5b1c3g8f6c1g5d5e4c3e4f8e7g5f6g7f6g1f3b7b6f1d3c8b7d1e2c7c6e1g1b8d7\r
+e2e4e7e6d2d4d7d5b1c3g8f6c1g5d5e4c3e4f8e7g5f6g7f6g1f3f6f5e4c3c7c6g2g3b8d7f1g2d8c7\r
+e2e4e7e6d2d4d7d5b1c3g8f6c1g5d5e4c3e4f8e7g5f6g7f6g2g3f6f5e4c3e7f6g1e2b8c6d4d5e6d5\r
+e2e4e7e6d2d4d7d5b1c3g8f6c1g5f8b4e4d5d8d5g1f3c7c5g5f6g7f6d1d2b4c3d2c3b8d7a1d1h8g8\r
+e2e4e7e6d2d4d7d5b1c3g8f6c1g5f8b4e4d5d8d5g5f6g7f6d1d2b4c3d2c3b8c6g1f3d5e4e1d2c8d7\r
+e2e4e7e6d2d4d7d5b1c3g8f6c1g5f8b4e4d5d8d5g5f6g7f6d1d2b4c3d2c3b8c6g1f3d5e4e1d2c8d7\r
+e2e4e7e6d2d4d7d5b1c3g8f6c1g5f8b4e4d5d8d5g5f6g7f6d1d2b4c3d2c3b8c6g1f3h8g8e1c1d5a2\r
+e2e4e7e6d2d4d7d5b1c3g8f6c1g5f8b4e4e5h7h6g5d2b4c3b2c3f6e4d1g4e8f8g1f3c7c5f1d3e4d2\r
+e2e4e7e6d2d4d7d5b1c3g8f6c1g5f8b4e4e5h7h6g5d2b4c3b2c3f6e4d1g4g7g6f1d3e4d2e1d2c7c5\r
+e2e4e7e6d2d4d7d5b1c3g8f6c1g5f8b4e4e5h7h6g5d2b4c3b2c3f6e4d1g4g7g6g1f3c7c5d4c5b8d7\r
+e2e4e7e6d2d4d7d5b1c3g8f6c1g5f8b4e4e5h7h6g5d2b4c3d2c3f6e4c3a5e8g8f1d3b8c6a5c3e4c3\r
+e2e4e7e6d2d4d7d5b1c3g8f6c1g5f8b4f1d3d5e4d3e4c7c5d4c5b4c3b2c3d8a5g5f6g7f6d1d4e6e5\r
+e2e4e7e6d2d4d7d5b1c3g8f6c1g5f8b4f1d3d5e4d3e4c7c5d4c5d8d1a1d1b8d7g5f6d7f6e4f3b4c5\r
+e2e4e7e6d2d4d7d5b1c3g8f6c1g5f8e7e4e5f6d7h2h4c7c5g5e7d8e7c3b5e8g8b5c7c5d4c7a8f7f6\r
+e2e4e7e6d2d4d7d5b1c3g8f6e4e5f6d7c3e2c7c5c2c3b8c6f2f4b7b5g1f3b5b4f4f5b4c3f5e6f7e6\r
+e2e4e7e6d2d4d7d5b1c3g8f6e4e5f6d7f2f4c7c5d4c5f8c5d1g4e8g8f1d3f7f5g4h3c5g1h1g1d7c5\r
+e2e4e7e6d2d4d7d5b1c3g8f6e4e5f6d7f2f4c7c5g1f3b8c6c1e3a7a6d1d2b7b5h2h4c8b7h4h5b5b4\r
+e2e4e7e6d2d4d7d5b1c3g8f6e4e5f6d7f2f4c7c5g1f3b8c6c1e3c5d4f3d4d7c5d1d2a7a6e1c1d8a5\r
+e2e4e7e6d2d4d7d5b1c3g8f6e4e5f6d7f2f4c7c5g1f3b8c6c1e3c5d4f3d4f8c5d1d2c5d4e3d4c6d4\r
+e2e4e7e6d2d4d7d5b1c3g8f6e4e5f6d7f2f4c7c5g1f3b8c6c1e3c5d4f3d4f8c5d1d2c5d4e3d4c6d4\r
+e2e4e7e6d2d4d7d5b1c3g8f6e4e5f6d7f2f4c7c5g1f3b8c6c1e3c5d4f3d4f8c5d1d2c5d4e3d4c6d4\r
+e2e4e7e6d2d4d7d5b1c3g8f6e4e5f6d7f2f4c7c5g1f3b8c6c1e3d8b6c3a4b6a5c2c3c5d4b2b4c6b4\r
+e2e4e7e6d2d4d7d5b1c3g8f6e4e5f6d7f2f4c7c5g1f3b8c6c1e3d8b6c3a4b6a5c2c3c5d4b2b4c6b4\r
+e2e4e7e6d2d4d7d5b1c3g8f6e4e5f6d7g1f3c7c5d4c5b8c6c1f4f8c5f1d3f7f6e5f6d7f6e1g1e8g8\r
+e2e4e7e6d2d4d7d5b1c3g8f6f1d3c7c5e4d5c5d4d3b5c8d7b5d7d8d7d5e6d7e6c3e2b8c6g1f3f8b4\r
+e2e4e7e6d2d4d7d5b1c3g8f6f1d3c7c5g1f3c5c4d3e2d5e4f3e5f8d6e1g1a7a6e5c4h7h6f2f3e4f3\r
+e2e4e7e6d2d4d7d5b1c3g8f6f1d3c7c5g1f3d5e4c3e4c5d4e4f6g7f6f3d4c8d7c1e3b8c6d3e4d8a5\r
+e2e4e7e6d2d4d7d5b1d2a7a6g1f3c7c5e4d5e6d5f1e2c5d4e1g1f8d6d2b3b8c6b3d4g8e7d4c6b7c6\r
+e2e4e7e6d2d4d7d5b1d2a7a6g1f3c7c5e4d5e6d5f1e2g8f6e1g1f8e7d4c5e7c5d2b3c5a7c1g5b8d7\r
+e2e4e7e6d2d4d7d5b1d2a7a6g1f3c7c5e4d5e6d5f1e2g8f6e1g1f8e7d4c5e7c5d2b3c5a7c1g5b8d7\r
+e2e4e7e6d2d4d7d5b1d2a7a6g1f3c7c5e4d5e6d5f1e2g8f6e1g1f8e7d4c5e7c5d2b3c5a7c1g5e8g8\r
+e2e4e7e6d2d4d7d5b1d2a7a6g1f3c7c5e4d5e6d5f1e2g8f6e1g1f8e7d4c5e7c5d2b3c5d6c1g5e8g8\r
+e2e4e7e6d2d4d7d5b1d2c7c5d4c5f8c5f1d3g8e7g1e2e8g8e1g1b8c6a2a3c6e5d2b3c5b6e2g3e5d3\r
+e2e4e7e6d2d4d7d5b1d2c7c5e4d5d8d5g1f3c5d4f1c4d5d6e1g1g8f6d2b3b8c6b3d4c6d4f3d4f8e7\r
+e2e4e7e6d2d4d7d5b1d2c7c5e4d5d8d5g1f3c5d4f1c4d5d6e1g1g8f6d2b3b8c6f1e1a7a6a2a4f8e7\r
+e2e4e7e6d2d4d7d5b1d2c7c5e4d5d8d5g1f3c5d4f1c4d5d8e1g1a7a6d2b3b8c6b3d4c6d4d1d4d8d4\r
+e2e4e7e6d2d4d7d5b1d2c7c5e4d5d8d5g1f3c5d4f1c4d5d8e1g1b8c6d2b3a7a6b3d4c6d4f3d4d8c7\r
+e2e4e7e6d2d4d7d5b1d2c7c5e4d5e6d5f1b5b8c6d1e2d8e7d4c5e7e2g1e2f8c5d2b3c5b6b3d4c8d7\r
+e2e4e7e6d2d4d7d5b1d2c7c5e4d5e6d5f1b5b8c6d1e2d8e7d4c5e7e2g1e2f8c5d2b3c5b6c1d2g8e7\r
+e2e4e7e6d2d4d7d5b1d2c7c5e4d5e6d5f1b5b8c6g1f3c5d4d1e2d8e7f3d4e7e2d4e2g8f6c2c3f8c5\r
+e2e4e7e6d2d4d7d5b1d2c7c5e4d5e6d5f1b5b8c6g1f3c5d4d1e2d8e7f3d4e7e2e1e2c8d7d2f3c6d4\r
+e2e4e7e6d2d4d7d5b1d2c7c5e4d5e6d5f1b5b8c6g1f3c5d4d1e2d8e7f3d4e7e2e1e2c8d7d2f3g8f6\r
+e2e4e7e6d2d4d7d5b1d2c7c5e4d5e6d5f1b5b8c6g1f3c5d4f3d4c8d7d2f3g8f6e1g1f8e7f1e1e8g8\r
+e2e4e7e6d2d4d7d5b1d2c7c5e4d5e6d5f1b5c8d7b5d7b8d7g1e2f8d6e1g1g8e7d2f3c5c4c1f4d8c7\r
+e2e4e7e6d2d4d7d5b1d2c7c5e4d5e6d5f1b5c8d7b5d7b8d7g1e2f8d6e1g1g8f6d2f3e8g8d4c5d7c5\r
+e2e4e7e6d2d4d7d5b1d2c7c5e4d5e6d5f1b5c8d7d1e2d8e7b5d7b8d7d4c5d7c5d2b3e7e2g1e2c5b3\r
+e2e4e7e6d2d4d7d5b1d2c7c5e4d5e6d5f1b5c8d7d1e2d8e7b5d7b8d7d4c5d7c5d2b3e7e2g1e2c5b3\r
+e2e4e7e6d2d4d7d5b1d2c7c5e4d5e6d5f1b5c8d7d1e2f8e7d4c5g8f6b5d7b8d7d2b3e8g8g1h3f8e8\r
+e2e4e7e6d2d4d7d5b1d2c7c5e4d5e6d5f1b5c8d7d1e2f8e7d4c5g8f6d2b3e8g8c1e3f8e8g1f3e7c5\r
+e2e4e7e6d2d4d7d5b1d2c7c5e4d5e6d5f1b5c8d7d1e2f8e7d4c5g8f6g1f3e8g8d2b3f8e8c1e3e7c5\r
+e2e4e7e6d2d4d7d5b1d2c7c5e4d5e6d5f1b5c8d7d1e2f8e7d4c5g8f6g1f3e8g8e1g1f8e8d2b3e7c5\r
+e2e4e7e6d2d4d7d5b1d2c7c5e4d5e6d5g1f3b8c6f1b5f8d6d4c5d6c5e1g1g8e7d2b3c5d6c2c3c8g4\r
+e2e4e7e6d2d4d7d5b1d2c7c5e4d5e6d5g1f3b8c6f1b5f8d6d4c5d6c5e1g1g8e7d2b3c5d6c2c3c8g4\r
+e2e4e7e6d2d4d7d5b1d2c7c5e4d5e6d5g1f3b8c6f1b5f8d6d4c5d6c5e1g1g8e7d2b3c5d6f1e1e8g8\r
+e2e4e7e6d2d4d7d5b1d2c7c5e4d5e6d5g1f3b8c6f1b5f8d6d4c5d6c5e1g1g8e7d2b3c5d6f1e1e8g8\r
+e2e4e7e6d2d4d7d5b1d2c7c5e4d5e6d5g1f3b8c6f1b5f8d6d4c5d6c5e1g1g8e7d2b3c5d6f1e1e8g8\r
+e2e4e7e6d2d4d7d5b1d2c7c5e4d5e6d5g1f3b8c6f1b5f8d6d4c5d6c5e1g1g8e7d2b3c5d6f1e1e8g8\r
+e2e4e7e6d2d4d7d5b1d2c7c5e4d5e6d5g1f3b8c6f1b5f8d6d4c5d6c5e1g1g8e7f1e1e8g8d2b3c5d6\r
+e2e4e7e6d2d4d7d5b1d2c7c5e4d5e6d5g1f3b8c6f1b5f8d6e1g1c5d4d2b3g8e7b3d4e8g8c2c3c8g4\r
+e2e4e7e6d2d4d7d5b1d2c7c5e4d5e6d5g1f3b8c6f1b5f8d6e1g1c5d4d2b3g8e7b3d4e8g8c2c3c8g4\r
+e2e4e7e6d2d4d7d5b1d2c7c5e4d5e6d5g1f3b8c6f1b5f8d6e1g1c5d4d2b3g8e7b3d4e8g8c2c3c8g4\r
+e2e4e7e6d2d4d7d5b1d2c7c5e4d5e6d5g1f3b8c6f1b5f8d6e1g1c5d4d2b3g8e7b3d4e8g8c2c3c8g4\r
+e2e4e7e6d2d4d7d5b1d2c7c5e4d5e6d5g1f3b8c6f1b5f8d6e1g1g8e7d4c5d6c5d2b3c5d6b3d4e8g8\r
+e2e4e7e6d2d4d7d5b1d2c7c5e4d5e6d5g1f3b8c6f1b5f8d6e1g1g8e7d4c5d6c5d2b3c5d6c1g5e8g8\r
+e2e4e7e6d2d4d7d5b1d2c7c5e4d5e6d5g1f3g8f6f1b5c8d7b5d7b8d7e1g1f8e7d4c5d7c5d2b3c5e4\r
+e2e4e7e6d2d4d7d5b1d2c7c5e4d5e6d5g1f3g8f6f1b5c8d7b5d7b8d7e1g1f8e7d4c5d7c5d2b3c5e4\r
+e2e4e7e6d2d4d7d5b1d2c7c5e4d5e6d5g1f3g8f6f1b5c8d7b5d7b8d7e1g1f8e7d4c5d7c5f3d4e8g8\r
+e2e4e7e6d2d4d7d5b1d2c7c5g1f3b8c6e4d5e6d5f1b5d8e7b5e2c5d4e1g1e7d8d2b3f8d6b3d4g8e7\r
+e2e4e7e6d2d4d7d5b1d2c7c5g1f3b8c6e4d5e6d5f1b5f8d6d4c5d6c5d2b3c5b6e1g1g8e7f1e1e8g8\r
+e2e4e7e6d2d4d7d5b1d2c7c5g1f3b8c6e4d5e6d5f1b5f8d6e1g1g8e7d4c5d6c5d2b3c5b6f1e1e8g8\r
+e2e4e7e6d2d4d7d5b1d2c7c5g1f3c5d4e4d5d8d5f1c4d5d6e1g1b8c6d2b3g8f6b3d4c6d4f3d4a7a6\r
+e2e4e7e6d2d4d7d5b1d2d5e4d2e4b8d7g1f3g8f6e4f6d7f6f1d3f8e7f3e5c7c6c2c3h7h6d1e2e8g8\r
+e2e4e7e6d2d4d7d5b1d2d5e4d2e4f8e7g1f3g8f6f1d3b8d7e1g1e8g8d1e2b7b6e4f6d7f6c2c4c8b7\r
+e2e4e7e6d2d4d7d5b1d2f7f5e4f5e6f5g1f3g8f6c2c4f8d6c4d5e8g8f1e2f6d5e1g1g8h8f1e1c8e6\r
+e2e4e7e6d2d4d7d5b1d2g8f6e4e5f6d7c2c3c7c5f1d3b8c6g1e2c5d4c3d4d8b6d2f3f7f6e5f6d7f6\r
+e2e4e7e6d2d4d7d5b1d2g8f6e4e5f6d7c2c3c7c5f1d3b8c6g1e2c5d4c3d4f7f6e5f6d7f6d2f3f8d6\r
+e2e4e7e6d2d4d7d5b1d2g8f6e4e5f6d7f1d3c7c5c2c3b8c6d2f3c5d4c3d4f8b4c1d2d8e7a2a3b4d2\r
+e2e4e7e6d2d4d7d5b1d2g8f6e4e5f6d7f1d3c7c5c2c3b8c6g1e2c5d4c3d4f7f6e5f6d7f6e1g1f8d6\r
+e2e4e7e6d2d4d7d5b1d2g8f6f1d3c7c5e4e5f6d7c2c3b8c6g1e2c5d4c3d4f7f6e5f6d7f6e1g1f8d6\r
+e2e4e7e6d2d4d7d5b1d2g8f6f1d3c7c5e4e5f6d7c2c3b8c6g1e2c5d4c3d4f7f6e5f6d7f6e1g1f8d6\r
+e2e4e7e6d2d4d7d5b1d2g8f6f1d3c7c5e4e5f6d7c2c3b8c6g1e2d8b6d2f3c5d4c3d4f7f6e5f6d7f6\r
+e2e4e7e6d2d4d7d5e4d5e6d5f1d3f8d6d1e2g8e7g1f3e8g8e1g1c8g4d3h7g8h8h7d3d8c8e2e3f7f6\r
+e2e4e7e6d2d4d7d5e4e5c7c5c2c3b8c6g1f3c8d7f1e2g8e7e1g1e7g6c1e3c5d4c3d4f8e7b1c3e8g8\r
+e2e4e7e6d2d4d7d5e4e5c7c5c2c3b8c6g1f3d8b6a2a3c5c4b1d2c6a5g2g3c8d7h2h4h7h6f1h3e8c8\r
+e2e4e7e6d2d4d7d5e4e5c7c5c2c3b8c6g1f3d8b6d1b3b6b3a2b3c5d4c3d4c8d7f1e2g8e7e1g1e7f5\r
+e2e4e7e6d2d4d7d5e4e5c7c5c2c3b8c6g1f3g8e7b1a3c5d4c3d4e7f5a3c2d8b6f1d3f8b4e1f1b4e7\r
+e2e4e7e6d2d4d7d5e4e5c7c5c2c3b8c6g1f3g8e7f1d3c5d4c3d4e7f5d3f5e6f5b1c3c8e6h2h4h7h6\r
+e2e4e7e6d2d4d7d5e4e5f8b4b1c3b7b6d1g4b4f8c1g5d8d7f1b5b8c6g1f3h7h6g5d2c8b7e1g1a7a6\r
+e2e4g7g6d2d4f8g7b1c3d7d6c1e3a7a6a2a4b8d7g1f3g8f6f1e2e8g8e1g1b7b6h2h3c8b7f3d2e7e6\r
+e2e4g7g6d2d4f8g7c2c4d7d6b1c3b8c6c1e3e7e5d4d5c6e7d1d2f7f5f2f3g8f6f1d3a7a6h2h3f5f4\r
+e2e4g7g6d2d4f8g7g1f3d7d6b1c3a7a6a2a4b7b6f1c4e7e6e1g1b8d7h2h3c8b7c1e3g8e7d1d2h7h6\r
+e2e4g8f6b1c3d7d5e4e5f6e4c3e2e4c5d2d4c5e6f2f4g7g6c1e3e6g7d1d2b7b6h2h3e7e6g1f3c7c5\r
+e2e4g8f6b1c3e7e5g2g3f8c5f1g2e8g8d2d3f8e8g1e2b8c6e1g1c6d4h2h3c7c6g1h2d4e2d1e2d7d5\r
+e2e4g8f6e4e5f6d5d2d4d7d6c2c4d5b6f2f4d6e5f4e5b8c6c1e3c8f5b1c3e7e6g1f3f8e7d4d5e6d5\r
+e2e4g8f6e4e5f6d5d2d4d7d6c2c4d5b6g1f3c8g4f1e2d6e5c4c5e5e4c5b6e4f3e2f3g4f3d1f3a7b6\r
+e2e4g8f6e4e5f6d5d2d4d7d6g1f3b8c6c2c4d5b6e5e6f7e6h2h4e6e5d4d5c6d4f3d4e5d4f1d3d8d7\r
+e2e4g8f6e4e5f6d5d2d4d7d6g1f3b8c6c2c4d5b6f1e2c8g4e5d6c7d6d4d5g4f3e2f3c6e5f3e2g7g6\r
+e2e4g8f6e4e5f6d5d2d4d7d6g1f3c8g4e5d6e7d6f1e2f8e7e1g1e8g8h2h3g4h5c2c4d5b6c1e3b8c6\r
+e2e4g8f6e4e5f6d5d2d4d7d6g1f3c8g4f1e2e7e6c2c4d5b6e5d6c7d6b1c3f8e7e1g1e8g8c1f4a7a6\r
+e2e4g8f6e4e5f6d5d2d4d7d6g1f3c8g4f1e2e7e6e1g1f8e7c2c4d5b6b1c3e8g8c1e3a7a6e5d6c7d6\r
+e2e4g8f6e4e5f6d5d2d4d7d6g1f3c8g4f1e2e7e6e1g1f8e7c2c4d5b6b1c3e8g8c1e3d6d5c4c5g4f3\r
+e2e4g8f6e4e5f6d5d2d4d7d6g1f3c8g4f1e2e7e6e1g1f8e7h2h3g4h5c2c4d5b6b1c3b8d7e5d6c7d6\r
+e2e4g8f6e4e5f6d5d2d4d7d6g1f3c8g4f1e2e7e6e1g1f8e7h2h3g4h5c2c4d5b6b1c3e8g8c1e3d6d5\r
+e2e4g8f6e4e5f6d5d2d4d7d6g1f3d6e5f3e5b8d7f1c4e7e6d1g4h7h5g4e2d7e5d4e5c8d7e1g1d7c6\r
+e2e4g8f6e4e5f6d5d2d4d7d6g1f3d6e5f3e5e7e6d1f3d8f6f3g3h7h6b1c3d5b4f1b5c7c6b5a4b8d7\r
+e2e4g8f6e4e5f6d5d2d4d7d6g1f3d6e5f3e5e7e6d1h5g7g6h5f3d8e7b1c3b8d7f1c4d5c3e5d7e7d7\r
+e2e4g8f6e4e5f6d5d2d4d7d6g1f3d6e5f3e5g7g6f1c4c8e6c4b3f8g7c2c3c7c6e1g1b8d7e5d3e8g8\r
+e2e4g8f6e4e5f6d5d2d4d7d6g1f3d6e5f3e5g7g6f1c4c8e6d1e2f8g7e1g1e8g8c4b3c7c6f1d1b8d7\r
+e2e4g8f6e4e5f6d5d2d4d7d6g1f3d6e5f3e5g7g6g2g3f8g7f1g2e8g8e1g1c7c6f1e1c8f5c2c3b8d7\r
+e2e4g8f6e4e5f6d5d2d4d7d6g1f3g7g6f1c4d5b6c4b3f8g7b1d2e8g8h2h3a7a5a2a4d6e5d4e5b8a6\r
+e2e4g8f6e4e5f6d5d2d4d7d6g1f3g7g6f1e2f8g7e1g1e8g8c2c4d5b6b1c3b8c6e5d6c7d6c1e3c8g4\r
+f2f4c7c5g1f3g7g6e2e4f8g7f1e2b8c6e1g1d7d6d2d3e7e6b1a3g8e7c2c3e8g8c1e3a7a6d3d4c5d4\r
+f2f4d7d5b2b3c8g4g2g3g8f6f1g2c7c6g1f3g4f3g2f3g7g6\r
+f2f4d7d5c2c4d5c4b1a3e7e5f4e5f8a3d1a4b8c6a4a3c6e5\r
+f2f4d7d5e2e3g7g6c2c4g8f6b1c3f8g7g1f3e8g8d1b3d5c4f1c4b8c6f3e5c6e5f4e5f6d7c4f7g8h8\r
+f2f4d7d5e2e3g7g6g1f3f8g7d2d4g8f6f1d3e8g8b1d2c7c5c2c3b7b6d1e2c8b7f3e5d8c7e1g1b8c6\r
+f2f4d7d5g1f3g7g6d2d3g8f6g2g3b7b6f1g2c8b7e1g1f8g7d1e1e8g8h2h3b8c6g3g4d8d6e1f2e7e5\r
+f2f4d7d5g1f3g8f6e2e3g7g6b2b3f8g7c1b2e8g8f1e2c7c5c2c4d5d4e3d4f6h5\r
+f2f4d7d5g1f3g8f6e2e3g7g6b2b3f8g7c1b2e8g8f1e2c7c5e1g1b8c6f3e5d8c7b1c3c6e5c3b5c7b6\r
+f2f4d7d5g1f3g8f6e2e3g7g6b2b3f8g7c1b2e8g8f1e2c7c5e1g1b8c6f3e5d8c7e5c6c7c6e2f3c8e6\r
+f2f4d7d5g1f3g8f6e2e3g7g6b2b4f8g7c1b2e8g8f1e2b7b6e1g1c8b7b1a3b8d7c2c4c7c5b4c5d7c5\r
+f2f4d7d5g2g3g8f6f1g2c7c5g1f3b8c6c2c3g7g6e1g1f8g7d2d3e8g8b1d2d8c7\r
+g1f3c7c5b2b3d7d5c1b2f7f6c2c4d5d4d2d3e7e5e2e3g8e7f1e2e7c6b1d2f8e7e1g1e8g8e3e4a7a6\r
+g1f3c7c5b2b3g8f6c2c4g7g6c1b2f8g7e2e3e8g8f1e2b7b6e1g1c8b7a2a3b8c6d2d3d7d5c4d5d8d5\r
+g1f3c7c5c2c4b8c6b1c3e7e5e2e3g8f6a2a3d7d6f1e2g7g6d2d4e5d4e3d4f8g7c1f4e8g8e1g1c8f5\r
+g1f3c7c5c2c4b8c6b1c3g8f6d2d4c5d4f3d4e7e6a2a3c6d4d1d4b7b6c1f4f8c5d4d2e8g8a1d1c8b7\r
+g1f3c7c5c2c4b8c6b1c3g8f6g2g3g7g6f1g2f8g7e1g1e8g8d2d3a7a6a2a3a8b8a1b1b7b5c4b5a6b5\r
+g1f3c7c5c2c4b8c6d2d4c5d4f3d4g8f6b1c3e7e6d4b5d7d5c1f4e6e5c4d5e5f4d5c6b7c6d1d8e8d8\r
+g1f3c7c5c2c4b8c6d2d4c5d4f3d4g8f6g2g3d8b6d4c2d7d6f1g2g7g6b1c3f8g7e1g1e8g8b2b3c8e6\r
+g1f3c7c5e2e4d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2e7e5d4b3c8e6e1g1f8e7f2f4d8c7e2f3e8g8\r
+g1f3c7c5g2g3d7d5f1g2b8c6e1g1e7e6d2d3f8d6e2e4g8e7f1e1e8g8b1d2d6c7c2c3a7a5a2a4b7b6\r
+g1f3c7c5g2g3d7d6f1g2b8c6e1g1g8f6d2d3g7g6b2b3f8g7c1b2e8g8b1d2d8c7c2c4f8e8d2e4f6e4\r
+g1f3c7c5g2g3g7g6f1g2b8c6e1g1f8g7d2d3d7d6b1c3e7e5e2e4g8e7f3h4e8g8f2f4e5f4g3f4f7f5\r
+g1f3c7c5g2g3g7g6f1g2f8g7e1g1b8c6d2d3g8f6b1c3e8g8a2a3d7d6a1b1b7b6b2b4c8b7c1g5d8d7\r
+g1f3d7d5b2b3c8g4e2e3g8f6c1b2e7e6h2h3g4h5d2d3c7c5g2g4h5g6f3e5b8d7e5g6h7g6f1g2d8b6\r
+g1f3d7d5c2c4c7c6d2d4g8f6b1c3d5c4a2a4c8f5f3e5e7e6f2f3f8b4e5c4e8g8c1g5h7h6g5h4c6c5\r
+g1f3d7d5c2c4c7c6e2e3e7e6d2d4f7f5f1d3g8f6e1g1f8d6b2b3d8e7a2a4e8g8c1a3d6a3b1a3f6e4\r
+g1f3d7d5c2c4c7c6e2e3g8f6b1c3g7g6d2d4f8g7f1e2e8g8e1g1d5c4e2c4c8g4h2h3g4f3d1f3b8d7\r
+g1f3d7d5c2c4c7c6e2e3g8f6b1c3g7g6d2d4f8g7f1e2e8g8e1g1d5c4e2c4c8g4h2h3g4f3d1f3b8d7\r
+g1f3d7d5c2c4c7c6e2e3g8f6b1c3g7g6d2d4f8g7f1e2e8g8e1g1d5c4e2c4c8g4h2h3g4f3d1f3b8d7\r
+g1f3d7d5c2c4c7c6e2e3g8f6b1c3g7g6d2d4f8g7f1e2e8g8e1g1d5c4e2c4c8g4h2h3g4f3d1f3b8d7\r
+g1f3d7d5c2c4c7c6e2e3g8f6d2d4c8f5b1c3e7e6f3h4f5e4d1b3d8c7f2f3e4g6c1d2b8d7a1c1a8c8\r
+g1f3d7d5c2c4d5c4e2e3g8f6f1c4e7e6e1g1c7c5d2d4a7a6d1e2b7b5c4b3c8b7b1c3b8d7f1d1f8d6\r
+g1f3d7d5c2c4d5c4e2e3g8f6f1c4e7e6e1g1c7c5d2d4a7a6d1e2b7b5c4b3c8b7f1d1b8d7b1c3b5b4\r
+g1f3d7d5c2c4d5d4e2e3b8c6e3d4c6d4f3d4d8d4b1c3g8f6d2d3c7c6c1e3d4d7d3d4g7g6f1e2f8g7\r
+g1f3d7d5c2c4d5d4g2g3c7c5e2e3b8c6e3d4c6d4f3d4d8d4b1c3c8g4f1e2g4e2d1e2e7e6d2d3d4d7\r
+g1f3d7d5c2c4e7e6d2d4g8f6b1c3c7c5c4d5f6d5e2e4d5c3b2c3c5d4c3d4f8b4c1d2b4d2d1d2e8g8\r
+g1f3d7d5c2c4e7e6d2d4g8f6b1c3c7c5c4d5f6d5g2g3c5d4c3d5d8d5d1d4d5d4f3d4f8b4c1d2b4d2\r
+g1f3d7d5c2c4e7e6g2g3d5d4f1g2c7c5e1g1b8c6d2d3g8f6e2e3f8e7e3d4c5d4f1e1f6d7b1a3d7c5\r
+g1f3d7d5c2c4e7e6g2g3g8f6f1g2d5c4d1a4b8d7a4c4c7c5e1g1f8e7d2d3e8g8b2b3a7a6c1b2b7b5\r
+g1f3d7d5d2d4c7c5c2c4e7e6c4d5e6d5g2g3b8c6f1g2g8f6e1g1f8e7b1c3e8g8c1g5c8e6d4c5e7c5\r
+g1f3d7d5d2d4c7c5g2g3c5d4f1g2d8a5b1d2b8c6e1g1e7e5d2b3a5c7e2e3d4e3c1e3g8f6e3g5c8e6\r
+g1f3d7d5d2d4c7c6c2c4e7e6b1d2g8f6e2e3b8d7f1d3f8d6e3e4d5e4d2e4f6e4d3e4e8g8e1g1h7h6\r
+g1f3d7d5d2d4c7c6c2c4e7e6b1d2g8f6e2e3c6c5b2b3b8c6c1b2c5d4e3d4f8e7a1c1e8g8f1d3c8d7\r
+g1f3d7d5d2d4c8f5c2c4e7e6e2e3b8c6c4d5e6d5f1b5f8d6b1c3g8e7e1g1e8g8a2a3a7a6b5e2d8d7\r
+g1f3d7d5d2d4c8g4c2c4b8c6e2e3e7e5d1b3g4f3g2f3e5d4c4d5c6e5e3d4e5d7b1c3d8e7c1e3e7b4\r
+g1f3d7d5d2d4c8g4c2c4b8c6e2e3e7e5d1b3g4f3g2f3g8e7b1c3e5d4c3d5a8b8e3e4e7g6c1d2f8d6\r
+g1f3d7d5d2d4c8g4c2c4b8c6e2e3e7e6b1c3f8b4c1d2g8e7f1d3g4f5d3f5e7f5c4d5e6d5d1b3b4c3\r
+g1f3d7d5d2d4c8g4c2c4g4f3g2f3d5c4e2e4e7e5d4e5d8d1e1d1b8c6f3f4a8d8c1d2f8c5h1g1g8e7\r
+g1f3d7d5d2d4c8g4c2c4g4f3g2f3e7e6c4d5d8d5e2e4f8b4b1c3d5a5c1d2b8c6d4d5e6d5a2a3c6d4\r
+g1f3d7d5d2d4c8g4f3e5g4h5d1d3d8c8c2c4f7f6e5f3e7e6b1c3h5g6d3d1c7c6e2e3f8d6c1d2g8e7\r
+g1f3d7d5d2d4e7e6c2c4f8e7b1c3g8f6c1g5b8d7e2e3h7h6g5h4e8g8a1c1c7c6f1d3d5c4d3c4a7a6\r
+g1f3d7d5d2d4e7e6c2c4g8f6b1c3f8e7c1g5b8d7e2e3h7h6g5h4e8g8a1c1c7c6f1d3d5c4d3c4b7b5\r
+g1f3d7d5d2d4e7e6c2c4g8f6b1c3f8e7c1g5e8g8e2e3b7b6a1c1c8b7f1e2b8d7c4d5f6d5c3d5b7d5\r
+g1f3d7d5d2d4e7e6c2c4g8f6c1g5f8e7b1c3e8g8a1c1h7h6g5h4b7b6c4d5f6d5c3d5e6d5h4e7d8e7\r
+g1f3d7d5d2d4e7e6g2g3c7c5f1g2b8c6e1g1g8f6c2c4d5c4f3e5c8d7b1a3c5d4a3c4f8c5d1b3e8g8\r
+g1f3d7d5d2d4e7e6g2g3g8f6f1g2f8e7c2c4e8g8d1c2b8c6e1g1c6b4c2d1d5c4b1a3c7c5a3c4\r
+g1f3d7d5d2d4g8f6c2c4c7c6b1c3d5c4a2a4c8f5e2e3e7e6f1c4f8b4e1g1e8g8d1e2c6c5f1d1b8c6\r
+g1f3d7d5d2d4g8f6c2c4c7c6b1c3d5c4a2a4c8f5f3e5e7e6f2f3c6c5e2e4c5d4e4f5b8c6e5c6b7c6\r
+g1f3d7d5d2d4g8f6c2c4c7c6b1c3e7e6c1g5h7h6g5f6d8f6e2e3b8d7f1d3d5c4d3c4g7g6e1g1f8g7\r
+g1f3d7d5d2d4g8f6c2c4c7c6b1c3e7e6c1g5h7h6g5f6d8f6e2e3b8d7f1d3d5c4d3c4g7g6e1g1f8g7\r
+g1f3d7d5d2d4g8f6c2c4c7c6b1c3e7e6c4d5e6d5d1c2g7g6c1g5f8e7g5f6e7f6e2e3c8f5f1d3f5d3\r
+g1f3d7d5d2d4g8f6c2c4c7c6b1c3e7e6c4d5e6d5d1c2g7g6c1g5f8e7g5f6e7f6e2e3c8f5f1d3f5d3\r
+g1f3d7d5d2d4g8f6c2c4c7c6b1c3e7e6c4d5e6d5d1c2g7g6c1g5f8e7g5f6e7f6e2e3c8f5f1d3f5d3\r
+g1f3d7d5d2d4g8f6c2c4c7c6b1c3e7e6e2e3b8d7d1c2b7b6c1d2c8b7c4d5e6d5f1d3f8e7e1g1e8g8\r
+g1f3d7d5d2d4g8f6c2c4c7c6b1c3e7e6e2e3b8d7f1e2d5c4a2a4f8d6f3d2e8g8d2c4d6c7b2b3f6d5\r
+g1f3d7d5d2d4g8f6c2c4c7c6e2e3g7g6b1c3f8g7f1d3e8g8h2h3c6c5e1g1c5d4e3d4d5c4d3c4b8c6\r
+g1f3d7d5d2d4g8f6c2c4d5c4b1c3a7a6e2e4b7b5e4e5f6d5a2a4d5b4f1e2c8f5e1g1b4c2a1a2c2b4\r
+g1f3d7d5d2d4g8f6c2c4d5c4e2e3e7e6f1c4c7c5e1g1a7a6a2a4b8c6b1c3c5d4e3d4f8e7c1g5e8g8\r
+g1f3d7d5d2d4g8f6c2c4d5c4e2e3e7e6f1c4c7c5e1g1a7a6d1e2b7b5c4b3c8b7f1d1b8d7b1c3d8b8\r
+g1f3d7d5d2d4g8f6c2c4e7e6b1c3b8d7c1g5h7h6g5h4f8e7e2e3e8g8a1c1a7a6b2b3b7b6c4d5e6d5\r
+g1f3d7d5d2d4g8f6c2c4e7e6b1c3b8d7c4d5e6d5c1f4c7c6e2e3f8e7h2h3d7f8f1d3f8g6f4h2e8g8\r
+g1f3d7d5d2d4g8f6c2c4e7e6b1c3c7c6e2e3b8d7d1c2f8d6e3e4e6e5c4d5c6d5e4d5e5d4f3d4e8g8\r
+g1f3d7d5d2d4g8f6c2c4e7e6b1c3c7c6e2e3b8d7f1d3d5c4d3c4b7b5c4e2c8b7a2a3b5b4c3a4b4a3\r
+g1f3d7d5d2d4g8f6c2c4e7e6b1c3d5c4e2e4f8b4c1g5c7c5f1c4c5d4f3d4b4c3b2c3d8a5g5f6a5c3\r
+g1f3d7d5d2d4g8f6c2c4e7e6b1c3f8e7c1g5e8g8e2e3h7h6g5h4b7b6c4d5f6d5h4e7d8e7c3d5e6d5\r
+g1f3d7d5d2d4g8f6c2c4e7e6b1c3f8e7c1g5e8g8e2e3h7h6g5h4b7b6f1e2c8b7h4f6e7f6c4d5e6d5\r
+g1f3d7d5d2d4g8f6c2c4e7e6b1c3f8e7c1g5h7h6g5f6e7f6d1d2b8c6e2e3e8g8a1c1a7a6f1e2d5c4\r
+g1f3d7d5d2d4g8f6c2c4e7e6b1c3f8e7c1g5h7h6g5f6e7f6d1d2d5c4e2e4c7c5d4d5e6d5e4e5f6g5\r
+g1f3d7d5d2d4g8f6c2c4e7e6b1c3f8e7c1g5h7h6g5f6e7f6e2e3e8g8d1c2c7c5d4c5d5c4f1c4d8a5\r
+g1f3d7d5d2d4g8f6c2c4e7e6b1c3f8e7c1g5h7h6g5h4e8g8a1c1d5c4e2e3c7c5f1c4c5d4f3d4c8d7\r
+g1f3d7d5d2d4g8f6c2c4e7e6b1c3f8e7c1g5h7h6g5h4e8g8e2e3b7b6a1c1c8b7f1e2b8d7c4d5e6d5\r
+g1f3d7d5d2d4g8f6c2c4e7e6b1c3f8e7c1g5h7h6g5h4e8g8e2e3b7b6a1c1c8b7f1e2b8d7c4d5e6d5\r
+g1f3d7d5d2d4g8f6c2c4e7e6b1c3f8e7c1g5h7h6g5h4e8g8e2e3b7b6f1e2c8b7e1g1b8d7a1c1c7c5\r
+g1f3d7d5d2d4g8f6c2c4e7e6c1g5f8e7b1c3h7h6g5f6e7f6e2e3e8g8a1c1c7c6f1d3b8d7e1g1d5c4\r
+g1f3d7d5d2d4g8f6c2c4e7e6c1g5f8e7b1c3h7h6g5h4e8g8e2e3b7b6f1e2c8b7h4f6e7f6c4d5e6d5\r
+g1f3d7d5d2d4g8f6c2c4e7e6g2g3c7c5f1g2b8c6e1g1c5d4f3d4f8c5d4c6b7c6b1c3e8g8c1g5h7h6\r
+g1f3d7d5d2d4g8f6c2c4e7e6g2g3f8e7f1g2e8g8e1g1b8d7d1c2c7c6b2b3b7b6f1d1c8b7b1c3d8c8\r
+g1f3d7d5d2d4g8f6e2e3e7e6c2c4f8e7b1c3b8d7c4c5c7c6b2b4e8g8c1b2d8c7f1e2f6e8e1g1f7f5\r
+g1f3d7d5d2d4g8f6e2e3e7e6c2c4f8e7b1c3e8g8f1d3c7c5c4d5c5d4f3d4f6d5c3d5d8d5e1g1b8c6\r
+g1f3d7d5g2g3c7c5f1g2b8c6d2d4e7e6e1g1c5d4f3d4f8c5d4b3c5b6c2c4g8f6c4d5f6d5b1a3e8g8\r
+g1f3d7d5g2g3c7c6f1g2b8d7e1g1g8f6d2d3e7e5e2e4d5e4d3e4f6e4f3e5d7e5d1d8e8d8g2e4f8d6\r
+g1f3d7d5g2g3c7c6f1g2c8g4c2c4g8f6c4d5g4f3g2f3c6d5d2d3b8c6e1g1e7e6b1c3f8e7f3g2e8g8\r
+g1f3d7d5g2g3c7c6f1g2c8g4e1g1b8d7d2d4g4f3g2f3g8f6c1f4d8b6b2b3e7e6e2e3f8e7c2c4h7h6\r
+g1f3d7d5g2g3c7c6f1g2g8f6e1g1c8g4c2c4e7e6c4d5g4f3g2f3c6d5b1c3b8c6d2d3f8e7f3g2e8g8\r
+g1f3d7d5g2g3c8g4b2b3b8d7c1b2e7e6f1g2g8f6e1g1c7c6d2d3f8d6b1d2e8g8h2h3g4h5e2e3h7h6\r
+g1f3d7d5g2g3c8g4f1g2b8d7c2c4c7c6c4d5c6d5b1c3g8f6d1b3d7c5b3b5f6d7d2d4a7a6b5b4c5e4\r
+g1f3d7d5g2g3c8g4f1g2b8d7e1g1c7c6d2d3e7e5h2h3g4h5c2c4d5c4d3c4g8f6c1e3d8c7b1c3f8b4\r
+g1f3d7d5g2g3c8g4f1g2b8d7h2h3g4f3g2f3c7c6d2d3e7e6e2e4d7e5f3g2d5e4g2e4g8f6e4g2f8b4\r
+g1f3d7d5g2g3c8g4f1g2c7c6b2b3b8d7c1b2g8f6e1g1e7e6d2d3f8c5b1d2e8g8e2e4d5e4d3e4e6e5\r
+g1f3d7d5g2g3g7g6d2d4f8g7f1g2g8f6b1c3e8g8e1g1b8d7c1g5c7c6d1c1f6e4c3e4d5e4f3d2h7h6\r
+g1f3d7d5g2g3g7g6f1g2f8g7c2c4d5c4b1a3c8e6d1c2c7c5a3c4b8c6e1g1a8c8d2d3g8h6c4e5c6e5\r
+g1f3d7d5g2g3g7g6f1g2f8g7e1g1e7e5d2d3g8e7b1d2e8g8e2e4b8c6e4d5e7d5c2c3h7h6d2c4f8e8\r
+g1f3d7d5g2g3g8f6f1g2c7c6e1g1c8g4d2d3b8d7b1d2e7e6e2e4f8e7d1e2e8g8h2h3g4h5f1e1d5e4\r
+g1f3d7d5g2g3g8f6f1g2c8f5c2c4e7e6e1g1f8e7b2b3e8g8c1b2h7h6d2d3f5h7b1d2b8c6a2a3a7a5\r
+g1f3d7d6b1c3g8f6d2d4c8g4c1g5b8d7e2e4e7e5f1e2f8e7e1g1e8g8d1d2c7c6a2a4a7a5g5e3f8e8\r
+g1f3d7d6d2d4c8g4e2e3g8f6c2c4b8d7b1c3e7e5f1e2f8e7e3e4c7c6c1e3e8g8e1g1a7a6a2a3f8e8\r
+g1f3d7d6d2d4c8g4e2e4e7e6f1d3g8f6b1d2f8e7h2h3g4h5d2f1d6d5f1g3h5g6d1e2d5e4g3e4e8g8\r
+g1f3d7d6d2d4g8f6g2g3g7g6f1g2f8g7e1g1e8g8c2c4b8c6b1c3a7a6h2h3c8d7e2e4e7e5d4e5d6e5\r
+g1f3e7e6c2c4d7d5d2d4d5c4b1c3a7a6e2e3b7b5a2a4b5b4c3b1g8f6f1c4c8b7e1g1c7c5b1d2c5d4\r
+g1f3e7e6g2g3d7d5f1g2c7c5c2c4d5c4f3e5g8f6e1g1f8e7b1a3e8g8a3c4f6d5d2d4c5d4d1d4f7f6\r
+g1f3e7e6g2g3d7d5f1g2c7c5e1g1b8c6d2d3g7g6e2e4f8g7d1e2g8e7e4e5d8c7f1e1a7a6c2c3c8d7\r
+g1f3f7f5d2d4e7e6c2c4g8f6b1c3f8e7d4d5e6d5c4d5e8g8g2g3d7d6f1g2b8d7e1g1d7e5f3d4e5g6\r
+g1f3f7f5d2d4e7e6c2c4g8f6e2e3f8e7b1c3e8g8f1d3d7d5c1d2c7c6c4c5b8d7f3g5d7b8f2f3d8c7\r
+g1f3f7f5d2d4g8f6c1f4g7g6e2e3f8g7h2h3c7c5c2c3b7b6b1d2e8g8f1d3c8a6d1b3g8h8d3a6b8a6\r
+g1f3f7f5g2g3g8f6f1g2g7g6c2c4f8g7b1c3e8g8e1g1d7d6d2d4b8c6d4d5c6a5d1d3c7c5f3g5a7a6\r
+g1f3g7g6c2c4f8g7d2d4d7d6b1c3b8d7e2e4e7e6f1e2b7b6e1g1c8b7c1e3g8e7d1c2h7h6a1d1e8g8\r
+g1f3g7g6c2c4f8g7d2d4g8f6g2g3e8g8f1g2d7d6b1c3c7c6e1g1c8f5f3h4f5d7e2e4e7e5h4f3f8e8\r
+g1f3g7g6d2d4f8g7c2c4d7d6b1c3b8d7e2e4e7e5f1e2c7c6e1g1d8e7c1e3g8h6h2h3f7f6a1c1e8g8\r
+g1f3g7g6d2d4f8g7c2c4d7d6b1c3c8g4g2g3b8c6d4d5c6a5c1d2c7c5b2b3g8f6f1g2e8g8e1g1a7a6\r
+g1f3g7g6d2d4g8f6g2g3f8g7f1g2d7d5c2c4d5c4b1a3b8c6a3c4c8e6b2b3e8g8c1b2e6d5a1c1a7a5\r
+g1f3g7g6e2e4f8g7d2d4d7d6c2c4c8g4f1e2b8c6c1e3e7e5d4d5g4f3e2f3c6d4e3d4e5d4b1a3g8e7\r
+g1f3g8f6b2b3d7d5c1b2c8g4e2e3b8d7h2h3g4h5d2d3e7e6g2g4h5g6f3h4f8b4c2c3b4d6h4g6h7g6\r
+g1f3g8f6b2b3g7g6c1b2f8g7g2g3e8g8f1g2d7d6d2d4c7c5c2c4c5d4f3d4a7a6b1c3e7e6e1g1d8c7\r
+g1f3g8f6c2c4b7b6b1c3c8b7d2d3c7c5e2e4d7d6g2g3e7e6f1g2f8e7e1g1e8g8b2b3a7a6c1b2f8e8\r
+g1f3g8f6c2c4b7b6d2d3g7g6e2e4d7d6b1c3f8g7d3d4e8g8f1e2c8b7d1c2e7e5d4e5d6e5c1e3f8e8\r
+g1f3g8f6c2c4b7b6d2d4e7e6g2g3c8a6b2b3f8b4c1d2b4e7f1g2e8g8e1g1d7d5c4d5f6d5b1c3b8d7\r
+g1f3g8f6c2c4b7b6e2e3c8b7f1e2e7e6e1g1f8e7b2b3e8g8c1b2c7c5b1c3b8c6a2a3d7d5c4d5f6d5\r
+g1f3g8f6c2c4b7b6g2g3c7c5f1g2c8b7b1c3g7g6d2d3f8g7e2e4b8c6e1g1e8g8f3h4c6d4e4e5b7g2\r
+g1f3g8f6c2c4b7b6g2g3c7c5f1g2c8b7b1c3g7g6d2d3f8g7e2e4e8g8h2h3f6e8c1e3e7e5e1g1d7d6\r
+g1f3g8f6c2c4b7b6g2g3c7c5f1g2c8b7b1c3g7g6e1g1f8g7d2d3e8g8e2e4d7d6a1b1b8c6a2a3f6e8\r
+g1f3g8f6c2c4b7b6g2g3c7c5f1g2c8b7e1g1e7e6b1c3f8e7d2d4c5d4d1d4d7d6b2b3b8d7c3b5d7c5\r
+g1f3g8f6c2c4b7b6g2g3c7c5f1g2c8b7e1g1e7e6b1c3f8e7d2d4c5d4d1d4d7d6c1e3e8g8a1d1b8d7\r
+g1f3g8f6c2c4b7b6g2g3c7c5f1g2c8b7e1g1g7g6b1c3f8g7d2d4c5d4f3d4b7g2g1g2e8g8e2e4d8c7\r
+g1f3g8f6c2c4b7b6g2g3c7c5f1g2c8b7e1g1g7g6b1c3f8g7d2d4c5d4f3d4b7g2g1g2e8g8e2e4d8c7\r
+g1f3g8f6c2c4b7b6g2g3c7c5f1g2c8b7e1g1g7g6b2b3f8g7c1b2e8g8e2e3e7e6d2d4d8e7b1c3b8a6\r
+g1f3g8f6c2c4b7b6g2g3c7c5f1g2c8b7e1g1g7g6d2d4c5d4d1d4f8g7b1c3d7d6f1d1b8d7b2b3a8c8\r
+g1f3g8f6c2c4b7b6g2g3c7c5f1g2c8b7e1g1g7g6d2d4c5d4d1d4f8g7b1c3d7d6f1d1b8d7b2b3a8c8\r
+g1f3g8f6c2c4b7b6g2g3c8b7f1g2c7c5b1c3g7g6e1g1f8g7d2d4c5d4d1d4b8c6d4f4a8c8f1d1d7d6\r
+g1f3g8f6c2c4b7b6g2g3c8b7f1g2c7c5e1g1g7g6b1c3f8g7d2d4c5d4f3d4b7g2g1g2d8c8b2b3c8b7\r
+g1f3g8f6c2c4b7b6g2g3c8b7f1g2e7e6b1c3f8e7d2d4f6e4c1d2e7f6e1g1e8g8a1c1e4d2d1d2d7d6\r
+g1f3g8f6c2c4b7b6g2g3c8b7f1g2e7e6e1g1f8e7b1c3e8g8b2b3d7d5c4d5f6d5c1b2c7c5a1c1e7f6\r
+g1f3g8f6c2c4b7b6g2g3c8b7f1g2e7e6e1g1f8e7b1c3e8g8d2d4f6e4c1d2e7f6d1c2e4d2c2d2d7d6\r
+g1f3g8f6c2c4b7b6g2g3c8b7f1g2e7e6e1g1f8e7b1c3e8g8f1e1d7d5c4d5e6d5d2d4b8a6c1g5c7c6\r
+g1f3g8f6c2c4b7b6g2g3c8b7f1g2e7e6e1g1f8e7d2d4e8g8b1c3f6e4d1c2e4c3c2c3f7f5b2b3e7f6\r
+g1f3g8f6c2c4b7b6g2g3c8b7f1g2e7e6e1g1f8e7d2d4e8g8b1c3f6e4d1c2e4c3c2c3f7f5b2b3e7f6\r
+g1f3g8f6c2c4b7b6g2g3c8b7f1g2e7e6e1g1f8e7d2d4e8g8d4d5e6d5f3d4b7c6c4d5c6d5g2d5f6d5\r
+g1f3g8f6c2c4b7b6g2g3c8b7f1g2e7e6e1g1f8e7d2d4e8g8d4d5e6d5f3d4b8c6c4d5c6d4d1d4c7c5\r
+g1f3g8f6c2c4b7b6g2g3c8b7f1g2g7g6b1c3f8g7d2d4f6e4c3e4b7e4e1g1e8g8d4d5c7c5g2h3e4f3\r
+g1f3g8f6c2c4b7b6g2g3c8b7f1g2g7g6e1g1f8g7d2d4e7e6b1c3f6e4c3e4b7e4c1g5f7f6g5e3e8g8\r
+g1f3g8f6c2c4b7b6g2g3e7e6f1g2c8b7e1g1f8e7d2d4e8g8d4d5e6d5f3h4c7c6c4d5f6d5h4f5e7c5\r
+g1f3g8f6c2c4c7c5b1c3b8c6d2d4c5d4f3d4e7e6a2a3c6d4d1d4b7b6c1f4f8c5d4d2c8b7e2e3e8g8\r
+g1f3g8f6c2c4c7c5b1c3b8c6d2d4c5d4f3d4e7e6a2a3c6d4d1d4b7b6d4f4c8b7e2e4d7d6c1e3f8e7\r
+g1f3g8f6c2c4c7c5b1c3b8c6d2d4c5d4f3d4e7e6a2a3c6d4d1d4b7b6d4f4c8b7e2e4d7d6f1d3f8e7\r
+g1f3g8f6c2c4c7c5b1c3b8c6d2d4c5d4f3d4e7e6a2a3f8e7e2e3d7d5c4d5e6d5f1b5c8d7d4f3a7a6\r
+g1f3g8f6c2c4c7c5b1c3b8c6d2d4c5d4f3d4e7e6d4b5d7d5c1f4e6e5c4d5e5f4d5c6b7c6d1d8e8d8\r
+g1f3g8f6c2c4c7c5b1c3b8c6d2d4c5d4f3d4e7e6g2g3d8b6d4b3d7d5c4d5f6d5f1g2d5c3b2c3f8e7\r
+g1f3g8f6c2c4c7c5b1c3b8c6d2d4c5d4f3d4e7e6g2g3d8b6d4b3d7d5c4d5f6d5f1g2d5c3b2c3f8e7\r
+g1f3g8f6c2c4c7c5b1c3b8c6d2d4c5d4f3d4e7e6g2g3d8b6d4b5c6e5f1g2a7a6d1a4a8b8c1e3f8c5\r
+g1f3g8f6c2c4c7c5b1c3b8c6g2g3d7d5c4d5f6d5f1g2d5c7d2d3e7e5f3d2c8d7e1g1f8e7d2c4f7f6\r
+g1f3g8f6c2c4c7c5b1c3b8c6g2g3d7d5c4d5f6d5f1g2d5c7e1g1e7e5f3e1c8e6e1d3f7f6f2f4c5c4\r
+g1f3g8f6c2c4c7c5b1c3b8c6g2g3g7g6f1g2f8g7e1g1e8g8d2d4c5d4f3d4c6d4d1d4d7d6d4d3a7a6\r
+g1f3g8f6c2c4c7c5b1c3d7d5c4d5f6d5d2d4d5c3b2c3g7g6e2e3f8g7f1d3e8g8e1g1d8c7a2a4b8c6\r
+g1f3g8f6c2c4c7c5b1c3d7d5c4d5f6d5e2e4d5b4f1b5b8c6d2d4c5d4a2a3d4c3d1d8e8d8a3b4c3b2\r
+g1f3g8f6c2c4c7c5b1c3d7d5c4d5f6d5e2e4d5b4f1c4b4d3e1e2d3f4e2f1f4e6b2b4c5b4c3d5g7g6\r
+g1f3g8f6c2c4c7c5b1c3e7e6g2g3b7b6f1g2c8b7e1g1f8e7b2b3e8g8c1b2d7d5c4d5f6d5d2d4b8a6\r
+g1f3g8f6c2c4c7c5b1c3e7e6g2g3b7b6f1g2c8b7e1g1f8e7d2d4c5d4d1d4d7d6c1g5a7a6g5f6e7f6\r
+g1f3g8f6c2c4c7c5b1c3e7e6g2g3b7b6f1g2c8b7e1g1f8e7d2d4c5d4d1d4d7d6f1d1a7a6b2b3b8d7\r
+g1f3g8f6c2c4c7c5d2d4c5d4f3d4e7e6g2g3f8b4b1c3e8g8f1g2d7d5e1g1d5c4c1g5h7h6g5f6d8f6\r
+g1f3g8f6c2c4c7c5g2g3b7b6f1g2c8b7e1g1e7e6b1c3f8e7d2d4c5d4d1d4d7d6c1g5a7a6g5f6e7f6\r
+g1f3g8f6c2c4c7c5g2g3b8c6f1g2d7d5c4d5f6d5d2d4c8f5e1g1d5b4a2a3b4c2f3h4d8d4b1d2c2a1\r
+g1f3g8f6c2c4c7c5g2g3b8c6f1g2e7e5b1c3d7d6e1g1f8e7d2d3e8g8a2a3a7a6f3e1a8b8e1c2c6d4\r
+g1f3g8f6c2c4c7c5g2g3d7d5c4d5f6d5f1g2b8c6d2d4c5d4f3d4d5b4d4c6d8d1e1d1b4c6b1c3c8d7\r
+g1f3g8f6c2c4c7c5g2g3d7d5c4d5f6d5f1g2b8c6d2d4c5d4f3d4d5b4d4c6d8d1e1d1b4c6g2c6b7c6\r
+g1f3g8f6c2c4c7c5g2g3e7e6f1g2d7d5c4d5f6d5e1g1f8e7b1c3e8g8c3d5e6d5d2d4b8c6d4c5e7c5\r
+g1f3g8f6c2c4c7c5g2g3g7g6b2b3f8g7c1b2e8g8f1g2b8c6e1g1d7d6d2d4c5d4f3d4c8d7b1c3d8a5\r
+g1f3g8f6c2c4c7c6b1c3d7d5e2e3a7a6d2d4b7b5b2b3c8g4f1e2e7e6e1g1b8d7h2h3g4h5f3e5h5e2\r
+g1f3g8f6c2c4e7e6b1c3b7b6e2e4c8b7d2d3d7d6g2g3g7g6f1g2f8g7e1g1c7c5f1e1e8g8d3d4c5d4\r
+g1f3g8f6c2c4e7e6b1c3b7b6e2e4c8b7f1d3c7c5e1g1b8c6e4e5f6g4d3e4d8c8d2d4c5d4e4c6c8c6\r
+g1f3g8f6c2c4e7e6b1c3b7b6g2g3c8b7f1g2c7c5e1g1f8e7b2b3d7d6c1b2e8g8e2e3a7a6d2d4c5d4\r
+g1f3g8f6c2c4e7e6b1c3c7c5e2e4b8c6f1e2d7d5e4e5f6e4e1g1f8e7d1c2e4g5f3g5e7g5c4d5e6d5\r
+g1f3g8f6c2c4e7e6b1c3c7c5g2g3b8c6f1g2d7d5c4d5f6d5e1g1f8e7d2d4d5c3b2c3e8g8a1b1d8a5\r
+g1f3g8f6c2c4e7e6b1c3d7d5d2d4c7c5c4d5c5d4d1d4f6d5e2e4d5c3d4c3b8c6f1b5c8d7e1g1d8b6\r
+g1f3g8f6c2c4e7e6b1c3d7d5d2d4c7c5c4d5f6d5e2e3b8c6f1d3f8e7a2a3c5d4e3d4e8g8e1g1d5f6\r
+g1f3g8f6c2c4e7e6b1c3d7d5d2d4c7c5e2e3b8c6c4d5e6d5f1e2c5d4f3d4f8d6e1g1e8g8d4f3c8e6\r
+g1f3g8f6c2c4e7e6b1c3d7d5d2d4c7c5e2e3b8c6c4d5f6d5f1c4f8e7c4d5e6d5d4c5c8e6e1g1e7c5\r
+g1f3g8f6c2c4e7e6b1c3d7d5d2d4c7c6d1b3f8e7g2g3e8g8f1g2d8b6e1g1b6b3a2b3b8a6c1d2f8d8\r
+g1f3g8f6c2c4e7e6b1c3d7d5d2d4c7c6e2e3b8d7f1d3d5c4d3c4b7b5c4d3c8b7e3e4b5b4c3a4c6c5\r
+g1f3g8f6c2c4e7e6b1c3d7d5d2d4c7c6e2e3b8d7f1d3d5c4d3c4b7b5c4d3c8b7e3e4b5b4c3a4c6c5\r
+g1f3g8f6c2c4e7e6b1c3d7d5d2d4d5c4e2e3a7a6a2a4c7c5f1c4b8c6e1g1f8e7d4c5d8d1f1d1e7c5\r
+g1f3g8f6c2c4e7e6b1c3d7d5d2d4f8b4c4d5e6d5c1g5b8d7e2e3c7c5g5f6d7f6f1b5e8e7e1g1c5c4\r
+g1f3g8f6c2c4e7e6b1c3d7d5d2d4f8e7c1f4e8g8e2e3c7c5d4c5e7c5d1c2b8c6a2a3d8a5e1c1c5e7\r
+g1f3g8f6c2c4e7e6b1c3d7d5d2d4f8e7c1g5e8g8e2e3h7h6g5h4b7b6d1b3c8b7h4f6e7f6c4d5e6d5\r
+g1f3g8f6c2c4e7e6b1c3d7d5d2d4f8e7c1g5e8g8e2e3h7h6g5h4b7b6d1b3c8b7h4f6e7f6c4d5e6d5\r
+g1f3g8f6c2c4e7e6b1c3d7d5d2d4f8e7c1g5h7h6g5f6e7f6e2e3e8g8a1c1c7c6f1d3b8d7e1g1d5c4\r
+g1f3g8f6c2c4e7e6b1c3d7d5d2d4f8e7c1g5h7h6g5h4e8g8a1c1d5c4e2e3c7c5f1c4c5d4f3d4c8d7\r
+g1f3g8f6c2c4e7e6b1c3d7d5d2d4f8e7c1g5h7h6g5h4e8g8e2e3b7b6a1c1c8b7f1e2d5c4e2c4b8d7\r
+g1f3g8f6c2c4e7e6b1c3d7d5d2d4f8e7c1g5h7h6g5h4e8g8e2e3b7b6f1d3c8b7h4f6e7f6c4d5e6d5\r
+g1f3g8f6c2c4e7e6b1c3d7d5d2d4f8e7c1g5h7h6g5h4e8g8e2e3f6e4h4e7d8e7a1c1e4c3c1c3d5c4\r
+g1f3g8f6c2c4e7e6b1c3f8b4d1b3c7c5a2a3b4a5g2g3b8c6f1g2e8g8e1g1d7d5d2d3d5d4c3a4b7b6\r
+g1f3g8f6c2c4e7e6b1c3f8b4d1c2c7c5g2g3e8g8f1g2b8c6e1g1d8e7e2e3d7d5c3a4d5c4c2c4a8b8\r
+g1f3g8f6c2c4e7e6b1c3f8b4d1c2e8g8a2a3b4c3c2c3b7b6b2b4d7d6c1b2c8b7g2g3c7c5f1g2b8d7\r
+g1f3g8f6c2c4e7e6b1c3f8b4d1c2e8g8a2a3b4c3c2c3b7b6g2g3c8b7f1g2d7d5c4d5e6d5e1g1f8e8\r
+g1f3g8f6c2c4e7e6b1c3f8b4d1c2e8g8a2a3b4c3c2c3c7c5b2b4b7b6c1b2d7d6g2g3c8b7f1g2b8d7\r
+g1f3g8f6c2c4e7e6b1c3f8b4g2g3e8g8f1g2c7c5e1g1b8c6d2d4c5d4f3d4d8e7d4c2b4c3b2c3f8d8\r
+g1f3g8f6c2c4e7e6b1c3f8b4g2g3e8g8f1g2d7d5d1b3c7c5e1g1b8c6d2d3h7h6e2e3f8e8a2a3d5c4\r
+g1f3g8f6c2c4e7e6b1c3f8b4g2g4d7d5g4g5f6e4d1a4b8c6c3e4d5e4f3e5e4e3f2e3d8g5e5f3g5e7\r
+g1f3g8f6c2c4e7e6d2d4b7b6g2g3c8b7f1g2f8e7b1c3f6e4d1c2e4c3b2c3f7f5f3h4b8c6h4f3c6a5\r
+g1f3g8f6c2c4e7e6d2d4b7b6g2g3c8b7f1g2f8e7e1g1d7d6b1c3b8d7d1c2e8g8e2e4e6e5f1e1f8e8\r
+g1f3g8f6c2c4e7e6d2d4d7d5b1c3c7c5c4d5f6d5g2g3c5d4c3d5d8d5d1d4b8c6d4d5e6d5f1g2c8f5\r
+g1f3g8f6c2c4e7e6d2d4d7d5b1c3c7c6c1g5b8d7e2e3d8a5c4d5f6d5d1d2d7b6c3d5a5d2f3d2e6d5\r
+g1f3g8f6c2c4e7e6d2d4d7d5b1c3c7c6c1g5b8d7e2e3d8a5f3d2f8b4d1c2d5c4g5f6d7f6d2c4b4c3\r
+g1f3g8f6c2c4e7e6d2d4d7d5g2g3d5c4f1g2c7c5e1g1b8c6f3e5c8d7b1a3f6d5e5d7d8d7d4c5f8c5\r
+g1f3g8f6c2c4e7e6g2g3a7a6f1g2b7b5b2b3c7c5e1g1c8b7e2e3f8e7b1c3d8a5c1b2e8g8d1e2b8c6\r
+g1f3g8f6c2c4e7e6g2g3b7b6f1g2c8b7b1c3f8e7e1g1e8g8f1e1f6e4c3e4b7e4d2d3e4b7d3d4b7e4\r
+g1f3g8f6c2c4e7e6g2g3b7b6f1g2c8b7d2d4f8e7e1g1e8g8b1c3f6e4c3e4b7e4f3h4e4g2h4g2d7d6\r
+g1f3g8f6c2c4e7e6g2g3b7b6f1g2c8b7e1g1c7c5b1c3f8e7d2d4c5d4d1d4b8c6d4f4e8g8f1d1d8b8\r
+g1f3g8f6c2c4e7e6g2g3b7b6f1g2c8b7e1g1f8e7d2d4e8g8b1c3f6e4d1c2e4c3c2c3c7c5f1d1d7d6\r
+g1f3g8f6c2c4e7e6g2g3b7b6f1g2c8b7e1g1f8e7d2d4e8g8f1e1d7d5c4d5e6d5b1c3b8d7c1f4f6e4\r
+g1f3g8f6c2c4e7e6g2g3d7d5d2d4d5c4d1a4b8d7a4c4b7b6f1g2c8b7e1g1c7c5f1d1a7a6d4c5f8c5\r
+g1f3g8f6c2c4e7e6g2g3d7d5f1g2c7c5e1g1b8c6d2d4f6e4c4d5e6d5c1e3c5c4b1c3e4c3b2c3d8a5\r
+g1f3g8f6c2c4e7e6g2g3d7d5f1g2c7c6e1g1f8d6b2b3b8d7c1b2e8g8c4d5e6d5d2d3f8e8b1d2d7f8\r
+g1f3g8f6c2c4e7e6g2g3d7d5f1g2d5c4d1a4b8d7a4c4a7a6d2d3b7b5c4c6a8b8c1f4f6d5f4g5f8e7\r
+g1f3g8f6c2c4e7e6g2g3d7d5f1g2d5c4d1a4b8d7a4c4c7c5e1g1b7b6c4c2c8b7b2b3f8e7c1b2e8g8\r
+g1f3g8f6c2c4e7e6g2g3d7d5f1g2d5c4d1c2a7a6f3e5f6d5e5c4b7b5c4e3d5e3d2e3a8a7a2a4c8b7\r
+g1f3g8f6c2c4e7e6g2g3d7d5f1g2f8e7e1g1e8g8d2d4d5c4d1c2a7a6a2a4b8c6c2c4d8d5b1d2f8d8\r
+g1f3g8f6c2c4e7e6g2g3d7d5f1g2f8e7e1g1e8g8d2d4d5c4d1c2a7a6c1g5b7b5g5f6e7f6f3g5f6g5\r
+g1f3g8f6c2c4g7g6b1c3d7d5c4d5f6d5d1a4b8c6f3e5d5b6e5c6b6a4c6d8a4c3d8f7e8f7d2c3e7e5\r
+g1f3g8f6c2c4g7g6b1c3d7d5c4d5f6d5d1a4c8d7a4h4d5c3d2c3b8c6e2e4e7e5c1g5f8e7f1c4h7h6\r
+g1f3g8f6c2c4g7g6b1c3d7d5c4d5f6d5d1a4c8d7a4h4d5c3d2c3b8c6e2e4e7e5c1g5f8e7f1c4h7h6\r
+g1f3g8f6c2c4g7g6b1c3d7d5c4d5f6d5d1a4c8d7a4h4d5c3d2c3b8c6e2e4e7e5h4d8a8d8f1c4f7f6\r
+g1f3g8f6c2c4g7g6b1c3d7d5c4d5f6d5d1a4c8d7a4h4d7c6h4d4f7f6e2e3f8g7f1e2e7e5d4c4d5c3\r
+g1f3g8f6c2c4g7g6b1c3d7d5c4d5f6d5g2g3f8g7f1g2e7e5c3d5d8d5d2d3e8g8e1g1b8c6c1e3d5d6\r
+g1f3g8f6c2c4g7g6b1c3f8g7d2d4d7d6g2g3e8g8f1g2b8c6e1g1a8b8h2h3a7a6a2a4f6d7a4a5e7e5\r
+g1f3g8f6c2c4g7g6b1c3f8g7d2d4d7d6g2g3e8g8f1g2b8d7e1g1c7c6e2e4e7e5h2h3a7a5c1e3e5d4\r
+g1f3g8f6c2c4g7g6b1c3f8g7d2d4e8g8e2e4d7d6f1e2e7e5d4d5f6h5f3g1b8d7e2h5g6h5d1h5d7c5\r
+g1f3g8f6c2c4g7g6b1c3f8g7e2e4c7c5d2d4c5d4f3d4b8c6c1e3f6g4d1g4c6d4g4d1d4e6d1d2d8a5\r
+g1f3g8f6c2c4g7g6b1c3f8g7e2e4d7d6d2d4e8g8c1e3e7e5d4e5d6e5d1d8f8d8c3d5d8d7e1c1b8c6\r
+g1f3g8f6c2c4g7g6b1c3f8g7e2e4d7d6d2d4e8g8f1e2b8d7e1g1e7e5f1e1f8e8e2f1h7h6d4d5f6h7\r
+g1f3g8f6c2c4g7g6b1c3f8g7e2e4d7d6d2d4e8g8f1e2e7e5e1g1b8c6d4d5c6e7c1d2f6h5a1c1f7f5\r
+g1f3g8f6c2c4g7g6b1c3f8g7e2e4d7d6d2d4e8g8f1e2e7e5e1g1b8c6d4d5c6e7f3d2a7a5b2b3c7c5\r
+g1f3g8f6c2c4g7g6b1c3f8g7e2e4d7d6d2d4e8g8f1e2e7e5e1g1b8c6d4d5c6e7f3e1f6d7e1d3f7f5\r
+g1f3g8f6c2c4g7g6b1c3f8g7e2e4d7d6d2d4e8g8f1e2e7e5e1g1b8c6d4d5c6e7f3e1f6d7e1d3f7f5\r
+g1f3g8f6c2c4g7g6b1c3f8g7e2e4d7d6d2d4e8g8f1e2e7e5e1g1b8c6d4d5c6e7f3e1f6d7e1d3f7f5\r
+g1f3g8f6c2c4g7g6b2b3f8g7c1b2c7c5g2g3d7d6f1g2e7e5e1g1b8c6b1c3e8g8d2d3f6h5f3d2c8g4\r
+g1f3g8f6c2c4g7g6d2d4f8g7b1c3d7d6e2e4e8g8f1e2e7e5e1g1b8c6d4d5c6e7b2b4a7a5c1a3a5b4\r
+g1f3g8f6c2c4g7g6d2d4f8g7g2g3e8g8f1g2c7c6b1c3d7d5c4d5c6d5f3e5e7e6e1g1f6d7e5d7c8d7\r
+g1f3g8f6c2c4g7g6g2g3f8g7b1c3e8g8f1g2d7d6e1g1b8c6d2d3h7h6a2a3e7e5a1b1a7a5f3d2c6e7\r
+g1f3g8f6c2c4g7g6g2g3f8g7f1g2e8g8e1g1c7c5d2d4c5d4f3d4d7d5c4d5f6d5b1c3d5c3b2c3d8c7\r
+g1f3g8f6c2c4g7g6g2g3f8g7f1g2e8g8e1g1d7d6b1c3b8c6d2d3a7a6f3d2a8b8a2a3f6e8e2e3c8d7\r
+g1f3g8f6c2c4g7g6g2g3f8g7f1g2e8g8e1g1d7d6b1c3b8c6d2d3f6h5d3d4e7e5d4d5c6e7e2e4c7c5\r
+g1f3g8f6c2c4g7g6g2g3f8g7f1g2e8g8e1g1d7d6d2d4b8d7b1c3e7e5d4e5d6e5h2h3c7c6c1e3d8e7\r
+g1f3g8f6c2c4g7g6g2g3f8g7f1g2e8g8e1g1d7d6d2d4b8d7b1c3e7e5e2e4c7c6f1e1e5d4f3d4f6g4\r
+g1f3g8f6c2c4g7g6g2g3f8g7f1g2e8g8e1g1d7d6d2d4b8d7b1c3e7e5e2e4e5d4f3d4f8e8f1e1c7c6\r
+g1f3g8f6c2c4g7g6g2g3f8g7f1g2e8g8e1g1d7d6d2d4c7c5h2h3b8c6b1c3c8d7d4c5d6c5c1e3d8c8\r
+g1f3g8f6d2d4b7b6c1g5f6e4g5h4c8b7e2e3h7h6b1d2g7g5h4g3e4g3h2g3e7e6c2c3d7d6d1a4c7c6\r
+g1f3g8f6d2d4d7d5c2c4d5c4e2e3g7g6f1c4f8g7e1g1e8g8b2b3c7c6c1b2c8g4b1d2b8d7h2h3g4f5\r
+g1f3g8f6d2d4d7d5c2c4e7e6b1c3c7c6e2e3f8d6f1d3b8d7e1g1e8g8e3e4d5e4c3e4f6e4d3e4h7h6\r
+g1f3g8f6d2d4d7d5c2c4e7e6b1c3f8e7c1g5e8g8e2e3h7h6g5f6e7f6a1c1f6e7a2a3c7c6f1d3b8d7\r
+g1f3g8f6d2d4d7d6c2c4b8d7b1c3c7c6e2e4e7e5f1e2f8e7e1g1e8g8f1e1a7a6e2f1b7b5a2a3c8b7\r
+g1f3g8f6d2d4e7e6c1g5h7h6g5f6d8f6e2e4d7d6b1c3g7g5e4e5f6e7f1b5c8d7e1g1d6d5b5d3b8c6\r
+g1f3g8f6d2d4e7e6c2c4b7b6b1c3f8b4e2e3c7c5f1d3d7d5c4d5e6d5e1g1e8g8a2a3b4c3b2c3c8a6\r
+g1f3g8f6d2d4e7e6e2e3b7b6c2c4c8b7b1c3d7d5c4d5f6d5f1b5c7c6b5d3f8e7e3e4d5c3b2c3e8g8\r
+g1f3g8f6d2d4e7e6e2e3c7c5c2c4d7d5d4c5f8c5b1c3c5b4c1d2d5c4f1c4e8g8e1g1b8c6d1e2d8e7\r
+g1f3g8f6d2d4e7e6e2e3f8b4c2c3b4e7f1e2e8g8e1g1d7d5c3c4b7b6b1c3c8b7c4d5e6d5f3e5f6d7\r
+g1f3g8f6d2d4e7e6g2g3b7b6f1g2c8b7c2c4f8e7b1c3e8g8d1d3d7d5c4d5f6d5c3d5e6d5e1g1b8d7\r
+g1f3g8f6d2d4g7g6g2g3d7d5f1g2f8g7e1g1e8g8c2c4d5c4b1a3b8c6a3c4c8e6c4e5e6d5c1f4e7e6\r
+g1f3g8f6d2d4g7g6g2g3f8g7f1g2e8g8e1g1d7d6b1c3b8a6e2e4c7c5e4e5f6e8e5d6e8d6d4c5a6c5\r
+g1f3g8f6d2d4g7g6g2g3f8g7f1g2e8g8e1g1d7d6f1e1b8c6b1c3e7e5d4e5d6e5h2h3d8e7c1g5f8d8\r
+g1f3g8f6g2g3b7b5a2a4b5b4d2d3c8b7e2e4d7d6f1g2b8d7e1g1e7e6a4a5a8b8b1d2f8e7d2c4e8g8\r
+g1f3g8f6g2g3b7b6c2c4c7c5f1g2c8b7e1g1e7e6b1c3f8e7b2b3d7d5e2e3e8g8c1b2b8d7d1e2f6e4\r
+g1f3g8f6g2g3b7b6f1g2c8b7e1g1c7c5d2d3g7g6e2e4d7d6f3h4b8c6f2f4f8g7b1c3e8g8f4f5c6e5\r
+g1f3g8f6g2g3d7d5c2c4c7c6f1g2d5c4a2a4g7g6b1a3d8d5e1g1b8a6f3e1d5h5a3c4c8h3e1f3h3g2\r
+g1f3g8f6g2g3d7d5f1g2c7c5e1g1g7g6d2d3f8g7b1d2e8g8e2e4b8c6c2c3e7e5f1e1h7h6e4d5f6d5\r
+g1f3g8f6g2g3d7d5f1g2c7c6b2b3c8f5c1b2e7e6e1g1f8e7d2d3h7h6b1d2e8g8d1e1b8d7e2e4f5h7\r
+g1f3g8f6g2g3d7d5f1g2c7c6c2c4d5c4b1a3b7b5d2d3c4d3f3e5a7a6e1g1c8b7d1b3e7e6f1d1d8c7\r
+g1f3g8f6g2g3d7d5f1g2c7c6e1g1c8g4b2b3b8d7c1b2e7e6c2c4f8d6d2d3e8g8b1d2d8e7d1c2e6e5\r
+g1f3g8f6g2g3d7d5f1g2c7c6e1g1c8g4c2c4e7e6c4d5c6d5d1b3g4f3g2f3d8d7b1c3b8c6f3g2f8e7\r
+g1f3g8f6g2g3d7d5f1g2c7c6e1g1c8g4d2d3b8d7b1d2e7e5e2e4f8d6h2h3g4f3d1f3e8g8e4d5f6d5\r
+g1f3g8f6g2g3d7d5f1g2c8f5c2c4c7c6c4d5c6d5d1b3d8c8b1c3e7e6d2d3b8c6c1f4f8e7e1g1e8g8\r
+g1f3g8f6g2g3d7d5f1g2c8f5d2d3e7e6b1d2h7h6e1g1f8c5d1e1e8g8e2e4d5e4d2e4f6e4d3e4f5h7\r
+g1f3g8f6g2g3d7d5f1g2c8f5e1g1b8d7d2d3c7c6b1d2h7h6e2e4d5e4d3e4f6e4f3d4e4d2c1d2f5h7\r
+g1f3g8f6g2g3d7d5f1g2g7g6c2c4c7c6b2b3f8g7c1b2e8g8e1g1c8g4d2d4f6e4f3e5g4e6f2f3e4d6\r
+g1f3g8f6g2g3d7d6f1g2e7e5d2d3g7g6e1g1f8g7e2e4e8g8b1d2b8d7a2a4a7a5d2c4d7c5c1e3c5e6\r
+g1f3g8f6g2g3g7g6b2b3f8g7c1b2d7d5c2c4c8g4f1g2c7c6e1g1e8g8d2d3g4f3g2f3b8d7b1d2e7e6\r
+g1f3g8f6g2g3g7g6b2b3f8g7c1b2e8g8f1g2c7c5c2c4b8c6e1g1d7d6b1c3c8g4h2h3g4d7d2d4d8c8\r
+g1f3g8f6g2g3g7g6b2b4b7b6c1b2c8b7b1a3f8g7f1g2e8g8e1g1d7d6c2c4c7c5a3c2d8c7d2d3b8d7\r
+g1f3g8f6g2g3g7g6c2c4c7c6f1g2f8g7d2d4e8g8b1c3d7d5c4d5c6d5f3e5b7b6c1g5c8b7g5f6g7f6\r
+g1f3g8f6g2g3g7g6c2c4f8g7b1c3e8g8f1g2d7d6d2d4b8c6e1g1a7a6d4d5c6a5f3d2c7c5a1b1a8b8\r
+g1f3g8f6g2g3g7g6c2c4f8g7f1g2e8g8e1g1b8c6b1c3d7d6d2d4a7a6d4d5c6a5f3d2c7c5d1c2e7e5\r
+g1f3g8f6g2g3g7g6f1g2f8g7c2c4c7c6d2d4d7d5c4d5c6d5b1c3e8g8f3e5b8c6e1g1c8f5e5c6b7c6\r
+g1f3g8f6g2g3g7g6f1g2f8g7d2d4e8g8e1g1d7d6b2b3a7a5c2c4a5a4b3b4c7c5b4c5d6c5b1a3c5d4\r
+g1f3g8f6g2g3g7g6f1g2f8g7e1g1e8g8c2c4c7c6b2b3f6e4d2d4d7d5c1b2c8e6b1d2e4d2d1d2b8a6\r
+g1f3g8f6g2g3g7g6f1g2f8g7e1g1e8g8c2c4c7c6d2d4d7d5c4d5c6d5f3e5c8f5b1c3f6e4c1f4b8c6\r
+g1f3g8f6g2g3g7g6f1g2f8g7e1g1e8g8d2d3c7c5e2e4b8c6c2c3d7d5e4e5f6e8d3d4c8g4h2h3g4f3\r
+g1f3g8f6g2g3g7g6f1g2f8g7e1g1e8g8d2d3d7d5b1d2c7c5e2e4d5e4d3e4b8c6c2c3h7h6d1e2c8e6\r
+g1f3g8f6g2g3g7g6f1g2f8g7e1g1e8g8d2d4c7c5c2c3b7b6f3e5d7d5a2a4c8b7a4a5b8d7e5d7f6d7\r
+g2g3c7c5f1g2b8c6e2e4g7g6d2d3f8g7f2f4d7d6g1f3g8f6e1g1e8g8c2c3a8b8d1e2f6e8c1e3e8c7\r
+g2g3d7d5f1g2c7c6c2c4g8f6g1f3g7g6b2b3f8g7c1b2c8g4e1g1e8g8d2d3g4f3g2f3b8d7f3g2f8e8\r
+g2g3d7d5f1g2c7c6d2d3g8f6b1d2c8g4h2h3g4h5g1f3b8d7e1g1e7e6e2e4d5e4d3e4f8c5d1e2e8g8\r
+g2g3d7d5f2f4h7h5f1g2h5h4b1c3c7c6d2d3h4g3h2g3h8h1g2h1d8b6g1f3c8g4c3a4b6a5c2c3b8d7\r
+g2g3d7d5g1f3c7c5f1g2g7g6c2c4d5d4b2b4c5b4d1a4c8d7a4b4b8c6b4b3f8g7d2d3g8f6e1g1e8g8\r
+g2g3d7d5g1f3c7c5f1g2g7g6e1g1f8g7d2d4c5d4f3d4g8f6c2c4e8g8c4d5f6d5b1c3d5c3b2c3b8c6\r
+g2g3d7d5g1f3c7c6f1g2c8f5e1g1e7e6d2d3g8f6b1d2b8d7d1e1h7h6e2e4f5h7e1e2f8e7e4e5f6g8\r
+g2g3d7d5g1f3c7c6f1g2c8f5e1g1g8f6d2d3h7h6c2c4d5c4d3c4d8d1f1d1b8d7c1f4g7g5f4e3f8g7\r
+g2g3d7d5g1f3g8f6f1g2c7c6e1g1c8g4b2b3b8d7c1b2e7e6c2c4f8d6d2d4d8b8b1d2e8g8f1e1b7b5\r
+g2g3d7d5g1f3g8f6f1g2c8f5c2c4c7c6c4d5c6d5d1b3d8b6b3b6a7b6b1c3b8c6d2d3e7e6e1g1f8c5\r
+g2g3e7e5c2c4b8c6f1g2g7g6b1c3f8g7d2d3g8e7a1b1a7a5e2e3e8g8g1e2d7d6e1g1c8e6c3d5e7f5\r
+g2g3e7e5c2c4c7c6g1f3e5e4f3d4d7d5d2d3g8f6f1g2f8c5d4b3c5b4c1d2b4d2d1d2d5c4d3c4d8e7\r
+g2g3e7e5e2e4g8f6f1g2b8c6b1c3f8c5d2d3d7d6c3a4c5b4c2c3b4a5b2b4a5b6g1f3c8e6e1g1d8d7\r
+g2g3g7g6f1g2f8g7c2c4e7e5b1c3f7f5d2d4e5d4c3b5b8c6g1f3g8f6e1g1f6e4b5d4c6d4f3d4e8g8\r
+g2g3g7g6f1g2f8g7d2d4c7c5c2c3d8b6g1f3g8f6e1g1e8g8d4d5d7d6c3c4e7e6b1c3e6d5c4d5b8d7\r
+g2g3g7g6f1g2f8g7d2d4d7d6e2e4g8f6g1e2e8g8e1g1b8d7b1c3c7c6a2a4a7a5b2b3f8e8c1a3d8c7\r
+g2g3g7g6f1g2f8g7d2d4d7d6e2e4g8f6g1e2e8g8e1g1e7e5d4e5d6e5b2b3b8c6c1b2f8e8d1d8e8d8\r
+g2g3g7g6f1g2f8g7e2e4e7e5g1e2b8c6c2c3g8e7d2d4e5d4c3d4d7d5e4e5f7f6f2f4e8g8e1g1c8g4\r
+g2g3g7g6g1f3g8f6f1g2f8g7d2d4c7c5d4d5d7d6c2c4b7b5c4b5d8a5f3d2a5b5e1g1e8g8b1a3b5a6\r
+g2g3g8f6f1g2d7d5g1f3g7g6c2c4f8g7c4d5f6d5e1g1e8g8d2d4b8a6b1c3d5b6b2b3a6b4c1b2a7a5\r
+g2g3g8f6f1g2g7g6e2e4d7d6d2d4f8g7g1e2e8g8e1g1e7e5b1c3c7c6a2a4b8d7a4a5e5d4e2d4d7c5\r
+g2g3g8f6g1f3b7b5f1g2c8b7e1g1e7e6b2b3f8e7c2c4b5c4b3c4c7c5b1c3e8g8a1b1b7c6d2d3d7d6\r
+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$\r
+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
\ No newline at end of file
diff --git a/winboard/install/files/root/Pulsar/pulsarCrazyWhite.txt b/winboard/install/files/root/Pulsar/pulsarCrazyWhite.txt
new file mode 100644 (file)
index 0000000..df90200
--- /dev/null
@@ -0,0 +1,3560 @@
+b1c3g8f6d2d4d7d6c1g5b8d7e2e4g7g6f2f4h7h6g5h4f6h5g1e2g6g5f4g5e7e6e2g3h5f4\r
+b1c3g8f6d2d4d7d6e2e4g7g6f1c4f8g7f2f4c7c5d4c5d8a5c1d2a5c5d1e2e8g8e1c1c8g4g1f3b8d7\r
+b1c3g8f6e2e4d7d6d2d4g7g6f1c4f8g7g1f3e8g8e4e5d6e5d4e5d8d1c3d1f6g4c1f4b8c6e5e6c8e6\r
+b1c3g8f6g1f3g7g6d2d4d7d6e2e4f8g7f1e2e8g8h2h3c7c5d4c5d8a5e1g1a5c5c1e3c5a5f3d4a7a6\r
+b1c3g8f6g1f3g7g6e2e4d7d6d2d4f8g7f1e2e8g8c1f4b8c6d4d5e7e5f4g5c6e7d1d2f6h5e1c1\r
+b2b3e7e5c1b2b8c6c2c4g8f6b1c3d7d5c4d5f6d5g1f3d5c3b2c3f8d6d2d3e8g8e2e3d8e7f1e2c8d7\r
+b2b3e7e5c1b2b8c6c2c4g8f6e2e3d7d5c4d5f6d5g1f3f8d6d2d3e8g8a2a3d8e7\r
+b2b3e7e5c1b2b8c6c2c4g8f6g1f3e5e4f3d4f8c5\r
+b2b3e7e5c1b2b8c6e2e3d7d5f1b5f8d6b1c3g8f6d2d4e8g8d4e5c6d5\r
+b2b3e7e5c1b2b8c6e2e3d7d5f1b5f8d6f2f4d8h4g2g3h4e7g1f3c8g4\r
+b2b3e7e5c1b2b8c6g1f3e5e4f3d4c6d4b2d4g8f6e2e3d7d5\r
+b2b4e7e5c1b2f7f6b4b5d7d5e2e3c8e6g1f3c7c5c2c4d5d4d2d3g8h6e3e4g7g6g2g3d8c8f1g2e6h3\r
+b2b4e7e5c1b2f7f6e2e4f8b4f1c4g8e7d1h5g7g6h5h4e7c6f2f4d8e7a2a3b4a5g1e2\r
+b2b4e7e5c1b2f7f6e2e4f8b4f1c4g8e7d1h5g7g6h5h4e7c6f2f4d8e7f4f5g6f5h4h5e8d8\r
+b2b4e7e5c1b2f7f6e2e4f8b4f1c4g8e7f2f4d7d5e4d5e5f4d1f3b4d6g1e2e7g6d2d4d8e7b2c1c8f5\r
+b2b4e7e5c1b2f7f6e2e4f8b4f1c4g8e7f2f4d7d5e4d5e5f4d1f3b4d6g1e2e7g6d2d4e8g8b2c1c8f5\r
+b2b4e7e5c1b2f8b4b2e5g8f6c2c4e8g8e2e3d7d5c4d5f6d5g1f3f8e8e5b2c1f5\r
+c2c4b7b6b1c3c7c5g1f3c8b7d2d4c5d4f3d4g8f6f2f3b8c6e2e4e7e6c1e3f8c5d1d2e8g8e1c1d8e7\r
+c2c4b7b6b1c3e7e6g1f3c8b7g2g3f7f5f1g2g8f6e1g1f8b4d1b3b4c3b3c3e8g8b2b4a7a5b4b5d8e7\r
+c2c4b7b6e2e4c8b7b1c3e7e5d2d3b8c6g2g3f8c5f1g2g8e7g1f3e8g8e1g1a7a5c1e3d7d6d3d4e5d4\r
+c2c4b8c6g2g3e7e5f1g2g7g6b1c3f8g7e2e3d7d6g1e2g8e7a1b1a7a5a2a3c8e6c3d5e7f5b2b4a5b4\r
+c2c4c7c5b1c3b8c6g1f3e7e5e2e3g8f6d2d4e5d4e3d4c5d4f3d4f8e7d4c6d7c6f1e2d8d1e2d1c8f5\r
+c2c4c7c5b1c3b8c6g1f3g7g6e2e3g8f6d2d4c5d4e3d4d7d5c4d5f6d5d1b3d5c3f1c4e7e6b2c3f8g7\r
+c2c4c7c5b1c3b8c6g1f3g8f6g2g3g7g6f1g2f8g7e1g1e8g8d2d4c5d4f3d4c6d4d1d4d7d6c1g5c8e6\r
+c2c4c7c5b1c3g8f6e2e4b8c6g1f3e7e6d2d3d7d6f1e2f8e7e1g1e8g8d3d4c5d4f3d4d8c7d4b5c7b8\r
+c2c4c7c5b1c3g8f6g2g3d7d5c4d5f6d5f1g2e7e6c3d5e6d5d1b3b8c6b3d5d8d5g2d5c6b4d5e4f7f5\r
+c2c4c7c5g1f3b8c6b1c3g8f6e2e3e7e6d2d4d7d5a2a3a7a6b2b3c5d4e3d4f8e7c4c5b7b6c5b6f6d7\r
+c2c4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d5c4d5f6d5d4c6b7c6c1d2e7e6g2g3f8e7f1g2e8g8\r
+c2c4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3e7e6c1f4f8b4d4b5e8g8f4c7d8e7c7d6b4d6d1d6e7d8\r
+c2c4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3e7e6d4b5f8b4c1f4e8g8f4c7d8e7c7d6b4d6d1d6e7d8\r
+c2c4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3e7e6d4b5f8b4c1f4e8g8f4d6b4d6b5d6d8b6d1d2f6e8\r
+c2c4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3e7e6d4b5f8b4c1f4e8g8f4d6b4d6b5d6f6e8a2a3b7b6\r
+c2c4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3e7e6d4b5f8b4c1f4e8g8f4d6b4d6b5d6f6e8d1d2e8d6\r
+c2c4c7c5g1f3b8c6g2g3g7g6f1g2f8g7b1c3d7d6e1g1g8h6a2a3e8g8a1b1a8b8b2b4h6f5e2e3c8d7\r
+c2c4c7c5g1f3f7f5d2d4c5d4f3d4g7g6g2g3f8g7f1g2b8c6d4b5g8f6b5c3e8g8e1g1b7b6b2b3c8b7\r
+c2c4c7c5g1f3g7g6d2d4c5d4f3d4b8c6e2e4g8f6b1c3d7d6f1e2c6d4d1d4f8g7c1g5h7h6g5e3e8g8\r
+c2c4c7c5g1f3g7g6d2d4c5d4f3d4b8c6e2e4g8f6b1c3d7d6f2f3c6d4d1d4f8g7c1e3e8g8d4d2d8a5\r
+c2c4c7c5g1f3g7g6d2d4c5d4f3d4f8g7e2e4b8c6c1e3g8f6b1c3f6g4d1g4c6d4g4d1d4e6a1c1e8g8\r
+c2c4c7c5g1f3g7g6d2d4c5d4f3d4f8g7e2e4g8f6b1c3b8c6c1e3f6g4d1g4c6d4g4d1d4e6d1d2d7d6\r
+c2c4c7c5g1f3g7g6e2e4b8c6d2d4c5d4f3d4g8f6b1c3c6d4d1d4d7d6f1e2f8g7e1g1e8g8d4e3c8e6\r
+c2c4c7c5g1f3g8f6b1c3b7b6e2e4b8c6d2d4c5d4f3d4c8b7c1g5d8b8d4c6b7c6f1d3e7e6e1g1f8b4\r
+c2c4c7c5g1f3g8f6b1c3b8c6d2d4c5d4f3d4e7e6d4b5d7d5c1f4e6e5c4d5e5f4d5c6b7c6d1d8e8d8\r
+c2c4c7c5g1f3g8f6b1c3b8c6d2d4c5d4f3d4e7e6d4b5d7d5c1f4e6e5c4d5e5f4d5c6b7c6d1d8e8d8\r
+c2c4c7c5g1f3g8f6b1c3b8c6d2d4c5d4f3d4e7e6d4b5d7d5c1f4e6e5c4d5e5f4d5c6b7c6d1d8e8d8\r
+c2c4c7c5g1f3g8f6b1c3b8c6d2d4c5d4f3d4e7e6d4b5d7d5c4d5f6d5e2e4d5c3d1d8e8d8b5c3f8c5\r
+c2c4c7c5g1f3g8f6b1c3b8c6d2d4c5d4f3d4e7e6e2e3f8e7f1e2e8g8e1g1d7d6b2b3a7a6c1b2c8d7\r
+c2c4c7c5g1f3g8f6b1c3b8c6d2d4c5d4f3d4e7e6g2g3d8b6d4b3c6e5e2e4f8b4d1e2e8g8f2f4e5c6\r
+c2c4c7c5g1f3g8f6b1c3b8c6d2d4c5d4f3d4e7e6g2g3d8b6d4b3c6e5e2e4f8b4d1e2e8g8f2f4e5c6\r
+c2c4c7c5g1f3g8f6b1c3b8c6d2d4c5d4f3d4e7e6g2g3d8b6d4b3f8b4f1g2b6a6b3d2b4c3b2c3e8g8\r
+c2c4c7c5g1f3g8f6b1c3b8c6d2d4c5d4f3d4e7e6g2g3f8c5d4b3c5b4f1g2d7d5c4d5f6d5a2a3b4c3\r
+c2c4c7c5g1f3g8f6b1c3d7d5c4d5f6d5d2d4d5c3b2c3g7g6e2e3f8g7f1d3e8g8e1g1d8c7a1b1b7b6\r
+c2c4c7c5g1f3g8f6b1c3d7d5c4d5f6d5e2e4d5b4f1c4b4d3e1e2d3f4e2f1f4e6b2b4c5b4c3d5g7g6\r
+c2c4c7c5g1f3g8f6b1c3e7e6e2e3b8c6d2d4d7d5c4d5e6d5f1b5f8d6d4c5d6c5e1g1e8g8b2b3c8g4\r
+c2c4c7c5g1f3g8f6b1c3e7e6e2e3b8c6d2d4d7d5c4d5e6d5f1b5f8d6f3e5d8c7e5c6b7c6d4c5d6c5\r
+c2c4c7c5g1f3g8f6b1c3e7e6e2e3d7d5d2d4b8c6c4d5e6d5f1b5f8d6d4c5d6c5e1g1e8g8b2b3c8e6\r
+c2c4c7c5g1f3g8f6b1c3e7e6g2g3b7b6f1g2c8b7e1g1f8e7b2b3e8g8c1b2d7d5c4d5f6d5d1c2b8c6\r
+c2c4c7c5g1f3g8f6b1c3e7e6g2g3b7b6f1g2c8b7e1g1f8e7d2d4c5d4d1d4b8c6d4f4e8g8f1d1d8b8\r
+c2c4c7c5g1f3g8f6b1c3e7e6g2g3b7b6f1g2c8b7e1g1f8e7d2d4c5d4d1d4e8g8f1d1b8c6d4f4e7b4\r
+c2c4c7c5g1f3g8f6b1c3e7e6g2g3b7b6f1g2c8b7e1g1f8e7f1e1d7d5c4d5f6d5e2e4d5b4d2d4c5d4\r
+c2c4c7c5g1f3g8f6b1c3e7e6g2g3b8c6f1g2d7d5c4d5f6d5e1g1f8e7d2d4e8g8c3d5e6d5d4c5e7c5\r
+c2c4c7c5g1f3g8f6b1c3e7e6g2g3b8c6f1g2d7d5c4d5f6d5e1g1f8e7d2d4e8g8e2e4d5b4a2a3c5d4\r
+c2c4c7c5g1f3g8f6b1c3e7e6g2g3b8c6f1g2d7d5c4d5f6d5e1g1f8e7d2d4e8g8e2e4d5c3b2c3c5d4\r
+c2c4c7c5g1f3g8f6b1c3e7e6g2g3d7d5c4d5f6d5f1g2b8c6e1g1f8e7d2d4e8g8c3d5e6d5d4c5e7c5\r
+c2c4c7c5g1f3g8f6b2b3g7g6c1b2f8g7e2e3e8g8f1e2b8c6e1g1b7b6d2d4c5d4f3d4c8b7e2f3d7d5\r
+c2c4c7c5g1f3g8f6d2d4c5d4f3d4e7e6g2g3d7d5f1g2e6e5d4c2d5d4e1g1b8c6b1d2c8g4d2f3a7a5\r
+c2c4c7c5g1f3g8f6d2d4c5d4f3d4g7g6b1c3d7d5c1g5d5c4e2e3d8a5g5f6e7f6f1c4f8b4a1c1a7a6\r
+c2c4c7c5g1f3g8f6g2g3b7b6f1g2c8b7e1g1e7e6b2b3f8e7c1b2e8g8b1c3d7d5e2e3b8d7d1e2d8c7\r
+c2c4c7c5g1f3g8f6g2g3b7b6f1g2c8b7e1g1e7e6b2b3f8e7c1b2e8g8e2e3d7d5d1e2b8c6f1d1a8c8\r
+c2c4c7c5g1f3g8f6g2g3b7b6f1g2c8b7e1g1g7g6d2d4c5d4d1d4f8g7b1c3b8c6d4h4h7h6c3d5e7e6\r
+c2c4c7c5g1f3g8f6g2g3g7g6f1g2f8g7e1g1e8g8d2d4c5d4f3d4b8c6b1c3d7d6d4c2h7h5c1g5c8e6\r
+c2c4c7c5g2g3b8c6f1g2g8f6g1f3e7e6e1g1d7d5c4d5e6d5d2d4f8e7b1c3e8g8c1f4c5d4f3d4d8b6\r
+c2c4c7c5g2g3b8c6g1f3e7e5b1c3g7g6f1g2f8g7e1g1g8e7f3e1d7d6e1c2c8e6d2d3d6d5b2b3e8g8\r
+c2c4c7c5g2g3b8c6g1f3g7g6d2d4c5d4f3d4f8g7d4c2g8f6f1g2e8g8b1c3d7d6e1g1c8d7b2b3d8c8\r
+c2c4c7c5g2g3g7g6f1g2f8g7b1c3b8c6a2a3a7a6a1b1a8b8b2b4c5b4a3b4b7b5c4b5a6b5g1f3d7d5\r
+c2c4c7c5g2g3g7g6f1g2f8g7b1c3b8c6a2a3d7d6e2e3g8f6g1e2e8g8e1g1c8f5e3e4f5g4f2f3g4d7\r
+c2c4c7c5g2g3g7g6f1g2f8g7b1c3b8c6e2e4e7e5g1e2g8e7a2a3d7d6a1b1a7a5e1g1e8g8d2d3a8b8\r
+c2c4c7c5g2g3g7g6f1g2f8g7b1c3g8f6b2b3e8g8c1b2b8c6g1f3e7e5e1g1d7d6d2d3h7h6e2e3c8e6\r
+c2c4c7c6d2d4d7d5b1c3g8f6e2e3a7a6g1f3b7b5b2b3c8g4f1e2e7e6f3e5g4e2d1e2f8e7e1g1e8g8\r
+c2c4c7c6d2d4d7d5b1c3g8f6e2e3a7a6g1f3b7b5b2b3c8g4f1e2e7e6h2h3g4f3e2f3f8e7e1g1e8g8\r
+c2c4c7c6d2d4d7d5b1c3g8f6g1f3e7e6e2e3b8d7d1c2b7b6f1d3c8b7e1g1f8e7b2b3d8c7c1b2a8d8\r
+c2c4c7c6d2d4d7d5b1c3g8f6g1f3e7e6e2e3b8d7d1c2b7b6f1d3c8b7e1g1f8e7b2b3d8c7c1b2h7h6\r
+c2c4c7c6d2d4d7d5c4d5c6d5c1f4b8c6e2e3g8f6b1c3a7a6f1d3c8g4g1e2e7e6e1g1f8d6f2f3\r
+c2c4c7c6d2d4d7d5e2e3e7e6b1c3f7f5g1f3f8d6f1d3g8h6f3e5d8h4g2g3h4f6f2f4d6e5d4e5f6e7\r
+c2c4c7c6d2d4d7d5g1f3g8f6b1c3d5c4a2a4c8f5e2e3e7e6f1c4f8b4e1g1e8g8d1e2b8d7e3e4f5g6\r
+c2c4c7c6d2d4d7d5g1f3g8f6b1c3e7e6c1g5d5c4e2e4b7b5e4e5h7h6g5h4g7g5f3g5h6g5h4g5b8d7\r
+c2c4c7c6e2e4d7d5e4d5c6d5d2d4g8f6b1c3e7e6g1f3f8b4f1d3d5c4d3c4e8g8e1g1b7b6c1g5c8b7\r
+c2c4c7c6g1f3d7d5b2b3c8g4e2e3b8d7c1b2e7e6f1e2g8f6e1g1f8d6d2d3e8g8d1c2d8e7f1d1e6e5\r
+c2c4c7c6g1f3d7d5d2d4g8f6b1c3e7e6e2e3b8d7f1d3d5c4d3c4b7b5c4e2b5b4c3a4c8b7e1g1f8e7\r
+c2c4c7c6g1f3d7d5e2e3g8f6b1c3a7a6h2h3b7b5b2b3b8d7d2d4e7e6f1d3f8b4c1d2b5c4b3c4d5c4\r
+c2c4c7c6g1f3d7d5e2e3g8f6b1c3e7e6b2b3b8d7c1b2e6e5d2d4e5e4f3d2f8e7a2a3e8g8b3b4f8e8\r
+c2c4c7c6g1f3d7d5e2e3g8f6b1c3e7e6b2b3b8d7c1b2f8e7d2d4e8g8f1d3b7b6e1g1c8b7d1e2d8c7\r
+c2c4e7e5a2a3g8f6d2d3c7c6g1f3g7g6b1c3d7d6g2g3f8g7f1g2e8g8e1g1d8e7e2e4h7h6d3d4c8g4\r
+c2c4e7e5b1c3b8c6g1f3f7f5d2d4e5e4f3d2g8f6e2e3g7g6a2a3f8g7b2b4e8g8g2g3d7d6d2b3d8e7\r
+c2c4e7e5b1c3b8c6g1f3g8f6g2g3c6d4f1g2d4f3g2f3f8c5e1g1e8g8e2e3c5b4f3g2b4c3b2c3c7c6\r
+c2c4e7e5b1c3b8c6g2g3g7g6f1g2d7d6a1b1c8f5d2d3d8d7b2b4f8g7b4b5c6d8c3d5c7c6b5c6b7c6\r
+c2c4e7e5b1c3b8c6g2g3g7g6f1g2f8g7e2e3d7d6g1e2f7f5d2d4e5e4b2b4g8f6a1b1c6e7f2f3e4f3\r
+c2c4e7e5b1c3b8c6g2g3g7g6f1g2f8g7e2e3d7d6g1e2g8f6e1g1e8g8d2d3c8e6c3d5d8d7f1e1a8b8\r
+c2c4e7e5b1c3b8c6g2g3g7g6f1g2f8g7e2e3g8e7g1e2e8g8e1g1d7d6a2a3c8e6c3d5d8d7d2d3e7f5\r
+c2c4e7e5b1c3b8c6g2g3g7g6f1g2f8g7e2e4d7d6g1e2g8e7d2d3e8g8e1g1c8e6h2h3d8d7g1h2f7f5\r
+c2c4e7e5b1c3d7d6d2d4e5d4d1d4b8c6d4d2g8f6b2b3a7a5e2e4a5a4a1b1a4b3a2b3g7g6g2g3f8g7\r
+c2c4e7e5b1c3d7d6g1f3c8g4e2e3g8f6f1e2c7c6h2h3g4h5e1g1f8e7d2d3e8g8b2b3b8d7f3h4h5e2\r
+c2c4e7e5b1c3d7d6g1f3c8g4e2e3g8f6f1e2f8e7h2h3g4h5d2d4b8d7e1g1c7c6b2b3e8g8c1b2f8e8\r
+c2c4e7e5b1c3d7d6g1f3c8g4e2e3g8f6h2h3g4f3d1f3c7c6d2d4f8e7d4d5e8g8f1d3b8a6e1g1c6d5\r
+c2c4e7e5b1c3d7d6g1f3f7f5d2d4e5e4f3d2c7c6e2e3g8f6f1e2g7g6e1g1f8h6b2b4e8g8b4b5f8e8\r
+c2c4e7e5b1c3d7d6g1f3f7f5d2d4e5e4f3g5f8e7g5h3c7c5d4c5d6c5d1d8e7d8c3b5d8a5c1d2a5d2\r
+c2c4e7e5b1c3d7d6g1f3g7g6d2d4b8d7g2g3f8g7f1g2g8h6e1g1e8g8e2e4c7c6b2b3f8e8c1b2f7f6\r
+c2c4e7e5b1c3d7d6g2g3b8c6f1g2g7g6d2d3f8g7c1d2g8e7g1f3e8g8e1g1c8d7a1b1d8c8b2b4d7h3\r
+c2c4e7e5b1c3d7d6g2g3c7c5f1g2b8c6a2a3g7g6b2b4f8g7a1b1g8e7e2e3e8g8d2d3a8b8g1e2c8e6\r
+c2c4e7e5b1c3d7d6g2g3c8e6f1g2c7c6d2d3g8f6g1f3h7h6e1g1f8e7b2b3e8g8e2e4c6c5f3h4b8c6\r
+c2c4e7e5b1c3d7d6g2g3f7f5f1g2b8c6d2d3g8f6e2e3f8e7g1e2e8g8e1g1d8e8f2f4e7d8a2a3a8b8\r
+c2c4e7e5b1c3d7d6g2g3g7g6d2d4b8c6d4d5c6e7e2e4f8g7h2h4g8f6f1e2h7h5g1h3c7c5h3g5c8d7\r
+c2c4e7e5b1c3d7d6g2g3g7g6d2d4b8d7f1g2f8g7g1f3g8h6c4c5e8g8c5d6c7d6e2e4e5d4f3d4d7c5\r
+c2c4e7e5b1c3d7d6g2g3g7g6f1g2f8g7d2d3b8c6e2e4g8e7g1e2e8g8e1g1c8e6c3d5d8d7c1e3f7f5\r
+c2c4e7e5b1c3d7d6g2g3g7g6f1g2f8g7g1f3g8h6d2d4b8d7e1g1e8g8e2e4c7c6b2b3f8e8h2h3f7f6\r
+c2c4e7e5b1c3g8f6g1f3b8c6d2d4e5d4f3d4f8b4c1g5h7h6g5h4e8g8e2e3f8e8f1e2c6e5d1b3b4a5\r
+c2c4e7e5b1c3g8f6g1f3b8c6d2d4e5e4f3e5f8b4c1g5h7h6g5h4d8e7e5c6b7c6e2e3e8g8f1e2d7d6\r
+c2c4e7e5b1c3g8f6g1f3b8c6e2e3f8b4c3d5b4e7d1c2d7d6b2b4c8e6d5e7c6e7c1b2e6f5d2d3e8g8\r
+c2c4e7e5b1c3g8f6g1f3b8c6g2g3c6d4f1g2d4f3g2f3f8b4d1b3b4c5d2d3e8g8e1g1c7c6f3g2f8e8\r
+c2c4e7e5b1c3g8f6g1f3b8c6g2g3d7d5c4d5f6d5f1g2d5b6e1g1f8e7a2a3e8g8b2b4f8e8d2d3e7f8\r
+c2c4e7e5b1c3g8f6g1f3b8c6g2g3d7d5c4d5f6d5f1g2d5b6e1g1f8e7d2d3e8g8a2a3c8e6c1e3f7f5\r
+c2c4e7e5b1c3g8f6g1f3b8c6g2g3f8b4f1g2e8g8e1g1b4c3b2c3d7d6d2d3e5e4f3d4e4d3d4c6d3e2\r
+c2c4e7e5b1c3g8f6g1f3b8c6g2g3f8b4f1g2e8g8e1g1e5e4f3e1b4c3d2c3d7d6e1c2f8e8c2e3h7h6\r
+c2c4e7e5b1c3g8f6g1f3b8c6g2g3f8b4f1g2e8g8e1g1e5e4f3e1b4c3d2c3h7h6e1c2f8e8c2e3d7d6\r
+c2c4e7e5b1c3g8f6g1f3b8c6g2g3f8b4f1g2e8g8e1g1e5e4f3g5b4c3b2c3f8e8f2f3e4e3d2d3d7d5\r
+c2c4e7e5b1c3g8f6g1f3b8c6g2g3f8b4f1g2e8g8e1g1f8e8c3d5f6d5c4d5c6d4f3d4e5d4e2e3c7c5\r
+c2c4e7e5b1c3g8f6g1f3b8c6g2g3f8b4f1g2e8g8e1g1f8e8d2d3b4c3b2c3e5e4f3d4h7h6d3e4f6e4\r
+c2c4e7e5b1c3g8f6g1f3b8c6g2g3f8b4f1g2e8g8e1g1f8e8d2d3h7h6c3d5b4f8h2h3d7d6e2e4c6d4\r
+c2c4e7e5b1c3g8f6g1f3b8c6g2g3f8c5f1g2d7d6d2d3a7a6c1g5h7h6g5f6d8f6e1g1f6d8a2a3c6d4\r
+c2c4e7e5b1c3g8f6g1f3b8c6g2g3f8c5f1g2e8g8e1g1d7d6d2d3c8e6a2a3a7a5c1g5h7h6g5h4c6d4\r
+c2c4e7e5b1c3g8f6g1f3b8c6g2g3f8c5f1g2e8g8e1g1d7d6d2d3h7h6a2a3a7a6b2b4c5a7c1b2c8g4\r
+c2c4e7e5b1c3g8f6g2g3c7c6g1f3e5e4f3d4d7d5c4d5c6d5d2d3d8b6d4b3f6g4d3d4c8e6f2f3e4f3\r
+c2c4e7e5b1c3g8f6g2g3d7d5c4d5f6d5f1g2d5b6g1f3b8c6e1g1f8e7a2a3c8e6b2b4e8g8a1b1f7f6\r
+c2c4e7e5b1c3g8f6g2g3d7d5c4d5f6d5f1g2d5b6g1f3b8c6e1g1f8e7a2a3e8g8b2b4c8e6a1b1f7f6\r
+c2c4e7e5b1c3g8f6g2g3f8b4f1g2e8g8d1b3b4c3b3c3f8e8d2d3d7d5c4d5f6d5c3b3d5b6b3c2b8c6\r
+c2c4e7e5b1c3g8f6g2g3f8b4f1g2e8g8e2e4b4c3d2c3d7d6d1e2b8d7g1f3d7c5f3h4a7a6b2b3b7b5\r
+c2c4e7e5b1c3g8f6g2g3f8b4f1g2e8g8g1f3f8e8e1g1e5e4f3d4b8c6d4c2b4c3d2c3c6e5b2b3d7d6\r
+c2c4e7e5b1c3g8f6g2g3f8c5f1g2b8c6e2e3e8g8g1e2f8e8e1g1d7d6d2d4c5b6h2h3c8d7a2a3c6e7\r
+c2c4e7e5g1f3e5e4f3d4b8c6d4c2g8f6b1c3f8c5b2b3e8g8g2g3d7d5c4d5c6b4c2b4c5b4f1g2f8e8\r
+c2c4e7e5g2g3b8c6f1g2g7g6b1c3f8g7e2e3d7d6g1e2g8e7e1g1e8g8d2d3c8g4h2h3g4e6c3d5d8d7\r
+c2c4e7e5g2g3b8c6f1g2g7g6b1c3f8g7e2e3d7d6g1e2g8h6a1b1c8e6d2d3e8g8b2b4d8d7h2h4f7f5\r
+c2c4e7e5g2g3b8c6f1g2g7g6b1c3f8g7e2e3d7d6g1e2h7h5h2h4c8g4d2d3g8f6c3d5f6d5c4d5c6e7\r
+c2c4e7e5g2g3b8c6f1g2g7g6b1c3f8g7e2e3g8f6g1e2e8g8e1g1d7d6d2d4e5d4e3d4f8e8h2h3h7h6\r
+c2c4e7e5g2g3c7c6b2b3d7d5c1b2d5d4g1f3f8d6d2d3c6c5f1g2g8e7e1g1e7c6e2e3e8g8b1d2c8e6\r
+c2c4e7e5g2g3d7d6b1c3f7f5f1g2g8f6e2e3f8e7g1e2c7c6d2d4e8g8e1g1b8a6a1b1a6c7b2b3e5e4\r
+c2c4e7e5g2g3d7d6f1g2g7g6d2d4b8d7b1c3f8g7g1f3g8f6e1g1e8g8d1c2f8e8f1d1c7c6b2b3d8e7\r
+c2c4e7e5g2g3g8f6f1g2b8c6b1c3d7d6e2e3c8g4g1e2d8d7h2h3g4e6c3d5e6d5c4d5c6b4d1b3c7c5\r
+c2c4e7e5g2g3g8f6f1g2b8c6g1f3f8c5e1g1d7d6b1c3e8g8d2d3a7a6a2a3c6d4f3d2c7c6b2b4c5a7\r
+c2c4e7e6b1c3c7c5g1f3g8f6g2g3b7b6f1g2c8b7e1g1f8e7d2d4c5d4d1d4d7d6b2b3e8g8c1b2a7a6\r
+c2c4e7e6b1c3d7d5d2d4c7c6e2e3g8f6g1f3b8d7d1c2b7b6f1d3c8b7e1g1f8e7b2b3d8c7c1b2a8c8\r
+c2c4e7e6b1c3d7d5d2d4f8e7c4d5e6d5c1f4c7c6e2e3c8f5g2g4f5e6h2h3g8f6g1f3e8g8f1d3c6c5\r
+c2c4e7e6b1c3d7d5d2d4f8e7c4d5e6d5c1f4g8f6e2e3c8f5g1e2e8g8a1c1c7c6e2g3f5e6f1d3f8e8\r
+c2c4e7e6b1c3d7d5d2d4f8e7g1f3g8f6c1f4e8g8e2e3c7c5d4c5e7c5a2a3b8c6d1c2c5e7a1d1d8a5\r
+c2c4e7e6b1c3d7d5d2d4f8e7g1f3g8f6c1f4e8g8e2e3c7c5d4c5e7c5d1c2b8c6a1d1d8a5a2a3c5e7\r
+c2c4e7e6b1c3d7d5d2d4f8e7g1f3g8f6c1g5e8g8e2e3b8d7d1c2h7h6g5h4c7c5a1d1c5d4f3d4d7b6\r
+c2c4e7e6b1c3d7d5d2d4f8e7g1f3g8f6c1g5e8g8e2e3b8d7d1c2h7h6g5h4c7c5c4d5c5d4f3d4f6d5\r
+c2c4e7e6b1c3d7d5d2d4f8e7g1f3g8f6c1g5e8g8e2e3h7h6g5h4b7b6a1c1c8b7h4f6e7f6c4d5e6d5\r
+c2c4e7e6b1c3d7d5d2d4f8e7g1f3g8f6c1g5e8g8e2e3h7h6g5h4b7b6c4d5f6d5h4e7d8e7c3d5e6d5\r
+c2c4e7e6b1c3d7d5d2d4f8e7g1f3g8f6c1g5e8g8e2e3h7h6g5h4b7b6c4d5f6d5h4e7d8e7c3d5e6d5\r
+c2c4e7e6b1c3d7d5d2d4f8e7g1f3g8f6c1g5e8g8e2e3h7h6g5h4b7b6c4d5f6d5h4e7d8e7c3d5e6d5\r
+c2c4e7e6b1c3d7d5d2d4f8e7g1f3g8f6c1g5h7h6g5h4b7b6a1c1e8g8c4d5f6d5c3d5e6d5h4e7d8e7\r
+c2c4e7e6b1c3d7d5d2d4f8e7g1f3g8f6c1g5h7h6g5h4e8g8a1c1b7b6c4d5f6d5c3d5e6d5h4e7d8e7\r
+c2c4e7e6b1c3d7d5d2d4f8e7g1f3g8f6c1g5h7h6g5h4e8g8a1c1d5c4e2e3c7c5f1c4c5d4e3d4b8c6\r
+c2c4e7e6b1c3d7d5d2d4f8e7g1f3g8f6c1g5h7h6g5h4e8g8e2e3b7b6a1c1c8b7f1e2b8d7c4d5e6d5\r
+c2c4e7e6b1c3d7d5d2d4f8e7g1f3g8f6c1g5h7h6g5h4e8g8e2e3b7b6a1c1c8b7f1e2d5c4e2c4b8d7\r
+c2c4e7e6b1c3d7d5d2d4f8e7g1f3g8f6c1g5h7h6g5h4e8g8e2e3b7b6a1c1c8b7h4f6e7f6c4d5e6d5\r
+c2c4e7e6b1c3d7d5d2d4f8e7g1f3g8f6c1g5h7h6g5h4e8g8e2e3b7b6f1e2c8b7h4f6e7f6c4d5e6d5\r
+c2c4e7e6b1c3d7d5d2d4f8e7g1f3g8f6d1c2e8g8c1g5c7c5d4c5d5c4e2e4d8a5e4e5f6d5f1c4d5c3\r
+c2c4e7e6b1c3d7d5d2d4g8f6c1g5f8e7e2e3h7h6g5h4e8g8g1f3b7b6c4d5f6d5h4e7d8e7c3d5e6d5\r
+c2c4e7e6b1c3d7d5d2d4g8f6c4d5e6d5c1g5c7c6d1c2f8e7e2e3b8d7f1d3e8g8g1e2f8e8e1g1g7g6\r
+c2c4e7e6b1c3d7d5d2d4g8f6c4d5e6d5c1g5f8e7e2e3e8g8f1d3b8d7g1e2f8e8e1g1d7f8d1c2c7c6\r
+c2c4e7e6b1c3d7d5d2d4g8f6c4d5e6d5c1g5f8e7e2e3e8g8f1d3b8d7g1f3f8e8d1c2c7c6e1g1d7f8\r
+c2c4e7e6b1c3d7d5d2d4g8f6c4d5e6d5c1g5f8e7e2e3e8g8f1d3c7c6d1c2b8d7g1f3f8e8h2h3d7f8\r
+c2c4e7e6b1c3d7d5d2d4g8f6g1f3b8d7c4d5e6d5c1f4c7c6e2e3f8e7h2h3e8g8f1d3f8e8d1c2d7f8\r
+c2c4e7e6b1c3d7d5d2d4g8f6g1f3f8e7c1f4e8g8e2e3b7b6c4d5e6d5f1d3c8b7h2h3c7c5e1g1b8d7\r
+c2c4e7e6b1c3d7d5d2d4g8f6g1f3f8e7c1g5h7h6g5h4e8g8e2e3b7b6a1c1c8b7c4d5f6d5c3d5b7d5\r
+c2c4e7e6b1c3f7f5d2d4g8f6c1g5f8e7g1f3e8g8h2h3d7d6e2e3b7b6f1e2d8e8d1c2h7h6g5h4g7g5\r
+c2c4e7e6b1c3f7f5g1f3g8f6b2b3b7b6g2g3c8b7f1g2f8b4c1b2e8g8e1g1b4c3b2c3d7d6d2d3d8e8\r
+c2c4e7e6b1c3f7f5g2g3g8f6f1g2f8e7d2d4e8g8g1f3d7d5e1g1c7c6b2b3f6e4c1b2b8d7e2e3e7f6\r
+c2c4e7e6b1c3f7f5g2g3g8f6f1g2f8e7e2e3e8g8g1e2c7c6d2d4d7d5b2b3c8d7c1b2d7e8e2f4e8f7\r
+c2c4e7e6b1c3g8f6d2d4f8b4e2e3c7c5g1e2d7d5a2a3b4c3e2c3c5d4e3d4d5c4f1c4b8c6c1e3e8g8\r
+c2c4e7e6b1c3g8f6d2d4f8b4f2f3d7d5a2a3b4c3b2c3c7c6e2e3b7b6c4d5c6d5f1b5b8d7a3a4a7a6\r
+c2c4e7e6b1c3g8f6g1f3d7d5d2d4f8e7c1g5e8g8d1c2b7b6g5f6e7f6e2e4b8c6e1c1d5e4c2e4c8b7\r
+c2c4e7e6d2d4d7d5b1c3c7c5c4d5e6d5g1f3b8c6g2g3g8f6f1g2f8e7e1g1e8g8c1g5c5d4f3d4h7h6\r
+c2c4e7e6d2d4d7d5b1c3c7c5c4d5e6d5g1f3b8c6g2g3g8f6f1g2f8e7e1g1e8g8c1g5c5d4f3d4h7h6\r
+c2c4e7e6d2d4d7d5b1c3c7c5c4d5e6d5g1f3b8c6g2g3g8f6f1g2f8e7e1g1e8g8c1g5c5d4f3d4h7h6\r
+c2c4e7e6d2d4d7d5b1c3f8e7g1f3g8f6c1f4c7c5d4c5b8a6e2e3a6c5c4d5e6d5f1e2e8g8e1g1c8e6\r
+c2c4e7e6d2d4d7d5b1c3f8e7g1f3g8f6c1g5e8g8e2e3h7h6g5f6e7f6d1d2b7b6c4d5e6d5a1d1c8e6\r
+c2c4e7e6d2d4d7d5b1c3f8e7g1f3g8f6c1g5h7h6g5h4e8g8a1c1f6e4h4e7d8e7e2e3c7c6d1c2e4c3\r
+c2c4e7e6d2d4d7d5b1c3g8f6c1g5f8e7e2e3e8g8a1c1b8d7g1f3c7c5c4d5f6d5g5e7d5e7f1e2b7b6\r
+c2c4e7e6d2d4d7d5b1c3g8f6c4d5e6d5c1g5c7c6e2e3c8f5d1f3f5g6g5f6d8f6f3f6g7f6e1d2b8d7\r
+c2c4e7e6d2d4d7d5g1f3c7c5c4d5e6d5g2g3b8c6f1g2g8f6e1g1f8e7b1c3e8g8c1g5c5d4f3d4h7h6\r
+c2c4e7e6d2d4d7d5g1f3c7c5c4d5e6d5g2g3b8c6f1g2g8f6e1g1f8e7b1c3e8g8c1g5c8e6d4c5e7c5\r
+c2c4e7e6d2d4d7d5g1f3f8e7b1c3g8f6c1g5e8g8e2e3h7h6g5f6e7f6d1d2b7b6c4d5e6d5b2b4c8b7\r
+c2c4e7e6d2d4d7d5g1f3g8f6c1g5f8e7e2e3e8g8c4d5e6d5b1c3b8d7f1d3b7b6e1g1c8b7a1c1c7c5\r
+c2c4e7e6d2d4g8f6g1f3d7d5b1c3c7c5c4d5f6d5g2g3b8c6f1g2d5c3b2c3c5d4c3d4f8b4c1d2b4e7\r
+c2c4e7e6g1f3d7d5b2b3f8e7c1b2e7f6b1c3c7c5c4d5e6d5d2d4c5d4f3d4g8e7g2g3e8g8f1g2b8c6\r
+c2c4e7e6g1f3d7d5b2b3g8f6g2g3b7b6f1g2c8b7e1g1b8d7c1b2f8e7e2e3e8g8d2d3d5c4b3c4d7c5\r
+c2c4e7e6g1f3d7d5d2d4g8f6b1c3f8e7c1f4e8g8e2e3c7c5d4c5b8c6c4d5e6d5f1e2e7c5e1g1c8e6\r
+c2c4e7e6g1f3d7d5d2d4g8f6b1c3f8e7c1g5e8g8e2e3h7h6g5h4b7b6c4d5f6d5h4e7d8e7c3d5e6d5\r
+c2c4e7e6g1f3d7d5d2d4g8f6b1c3f8e7c1g5h7h6g5h4e8g8a1c1b7b6c4d5e6d5e2e3c8b7f1e2b8d7\r
+c2c4e7e6g1f3d7d5d2d4g8f6b1c3f8e7c1g5h7h6g5h4e8g8e2e3b8d7a1c1c7c6f1d3d5c4d3c4b7b5\r
+c2c4e7e6g1f3d7d5e2e3g8f6b2b3g7g6c1b2f8g7d2d4e8g8f1d3c7c5e1g1c5d4f3d4e6e5d4b5a7a6\r
+c2c4e7e6g1f3d7d5g2g3d5d4e2e3b8c6e3d4c6d4f1g2g8h6e1g1h6f5d2d3f8e7f3d4f5d4b1d2e8g8\r
+c2c4e7e6g1f3g8f6b1c3b7b6e2e4c8b7d2d3d7d6g2g3g7g6f1g2f8g7e1g1e8g8f3e1f6e8d3d4c7c5\r
+c2c4e7e6g1f3g8f6b1c3c7c5g2g3b8c6f1g2d7d5c4d5f6d5e1g1f8e7d2d4e8g8c3d5e6d5c1e3c5c4\r
+c2c4e7e6g1f3g8f6b1c3d7d5d2d4f8b4c4d5e6d5c1g5h7h6g5f6d8f6d1a4b8c6e2e3e8g8f1e2c8e6\r
+c2c4e7e6g1f3g8f6d2d4d7d5b1c3b8d7c4d5e6d5c1g5f8e7e2e3c7c6d1c2d7f8f1d3f8e6g5h4g7g6\r
+c2c4e7e6g1f3g8f6g2g3b7b6f1g2c8b7e1g1f8e7b2b3e8g8c1b2d7d5c4d5e6d5d1c2f8e8e2e3b8d7\r
+c2c4e7e6g1f3g8f6g2g3d7d5b2b3f8e7f1g2e8g8e1g1b7b6c1b2c8b7e2e3b8d7b1c3f6e4c3e2a7a5\r
+c2c4e7e6g1f3g8f6g2g3d7d5f1g2f8e7e1g1e8g8d2d4b8d7b1d2b7b6c4d5e6d5f3e5c8b7d2f3f6e4\r
+c2c4e7e6g2g3d7d5f1g2d5d4b2b4c7c5b4b5e6e5d2d3f8d6e2e4d8c7g1e2h7h5h2h4g8h6e1g1c8g4\r
+c2c4e7e6g2g3d7d5f1g2g8f6g1f3f8e7d2d4d5c4b1c3e8g8f3e5c7c5d4c5d8d1c3d1b8d7e5c4d7c5\r
+c2c4e7e6g2g3d7d5f1g2g8f6g1f3f8e7e1g1e8g8b2b3b7b6c1b2c8b7e2e3c7c5d1e2b8c6f1d1a8c8\r
+c2c4e7e6g2g3d7d5f1g2g8f6g1f3f8e7e1g1e8g8d2d4b8d7b1d2c7c6b2b3b7b6c1b2c8b7a1c1a7a5\r
+c2c4e7e6g2g3d7d5f1g2g8f6g1f3f8e7e1g1e8g8d2d4b8d7d1c2c7c6b2b3b7b5b1d2b5c4b3c4c8a6\r
+c2c4e7e6g2g3d7d5f1g2g8f6g1f3f8e7e1g1e8g8d2d4b8d7d1c2c7c6c1f4f6e4b1c3g7g5f4c1f7f5\r
+c2c4e7e6g2g3d7d5f1g2g8f6g1f3f8e7e1g1e8g8d2d4c7c6b2b3b7b6c1b2c8b7b1c3b8d7d1c2a8c8\r
+c2c4e7e6g2g3d7d5f1g2g8f6g1f3f8e7e1g1e8g8d2d4d5c4d1c2a7a6c2c4b7b5c4c2c8b7c1d2b7e4\r
+c2c4e7e6g2g3d7d5f1g2g8f6g1f3f8e7e1g1e8g8d2d4d5c4f3e5b8c6g2c6b7c6b1c3c6c5d4c5e7c5\r
+c2c4e7e6g2g3d7d5g1f3g8f6f1g2f8e7d2d4e8g8b1c3d5c4f3e5c7c5d4c5d8d1c3d1e7c5e5c4b8c6\r
+c2c4e7e6g2g3d7d5g1f3g8f6f1g2f8e7d2d4e8g8b1d2b7b6e1g1c8b7b2b3b8d7c1b2c7c5a1c1a8c8\r
+c2c4e7e6g2g3f7f5f1g2g8f6g1f3f8e7e1g1e8g8b2b3a7a5a2a3d7d5c1b2c7c6d2d3c8d7b1d2b8a6\r
+c2c4e7e6g2g3f7f5f1g2g8f6g1f3f8e7e1g1e8g8b2b3d7d5c1b2c8d7d2d3d7e8b1d2b8c6a2a3a7a5\r
+c2c4e7e6g2g3g8f6f1g2d7d5g1f3d5c4d1a4b8d7a4c4a7a6e1g1f8d6d2d4e8g8f1d1d8e7c4c2a8b8\r
+c2c4e7e6g2g3g8f6f1g2d7d5g1f3f8e7e1g1e8g8d2d4b8d7d1c2b7b6c4d5f6d5b1c3c8b7c3d5b7d5\r
+c2c4f7f5g1f3g8f6g2g3g7g6f1g2f8g7d2d4d7d6b1c3e7e6e1g1e8g8d1c2b8c6f1d1d8e7a1b1a7a5\r
+c2c4g7g6b1c3c7c5g2g3f8g7f1g2b8c6a2a3a7a6a1b1a8b8d1a4d7d6b2b4c8f5g2c6b7c6a4c6f5d7\r
+c2c4g7g6b1c3c7c5g2g3f8g7f1g2b8c6e2e3e7e6g1e2g8e7d2d4c5d4e2d4d7d5c4d5c6d4e3d4e7d5\r
+c2c4g7g6b1c3c7c5g2g3f8g7f1g2b8c6g1f3e7e6e1g1g8e7d2d3e8g8c1d2b7b6d1c1c8b7d2h6d7d6\r
+c2c4g7g6b1c3c7c5g2g3f8g7f1g2b8c6g1f3e7e6e1g1g8e7d2d3e8g8c1d2h7h6a2a3d7d5a1b1a7a5\r
+c2c4g7g6b1c3f8g7g1f3d7d6d2d4g8f6e2e4e8g8f1e2e7e5e1g1b8d7f1e1c7c6d4d5c6c5a2a3f6e8\r
+c2c4g7g6b1c3f8g7g2g3d7d6f1g2e7e5d2d3b8c6e2e4f7f5g1e2g8h6h2h4c8e6c3d5h6f7c1e3d8d7\r
+c2c4g7g6b1c3f8g7g2g3e7e5f1g2d7d6e2e3g8f6g1e2c7c6e3e4e8g8d2d3a7a6h2h3b7b5c1g5b8d7\r
+c2c4g7g6d2d4f8g7b1c3d7d6e2e4g8f6f2f3e8g8c1e3e7e5g1e2c7c6d4d5c6d5c4d5a7a6d1d2b8d7\r
+c2c4g7g6d2d4g8f6b1c3d7d5c1f4f8g7a1c1d5c4e2e4c7c5d4c5d8a5f1c4e8g8e4e5f6d7g1f3d7c5\r
+c2c4g7g6d2d4g8f6b1c3d7d5g1f3f8g7d1a4c8d7a4b3d5c4b3c4e8g8e2e4d7g4c1e3f6d7a1d1d7b6\r
+c2c4g7g6d2d4g8f6b1c3d7d5g1f3f8g7e2e3e8g8f1e2d5c4e2c4c7c5d4d5e7e6d5e6d8d1e1d1c8e6\r
+c2c4g7g6d2d4g8f6g1f3f8g7g2g3e8g8f1g2d7d6e1g1b8c6b1c3a7a6b2b3a8b8c1b2b7b5c4b5a6b5\r
+c2c4g7g6d2d4g8f6g2g3c7c5d4d5d7d6f1g2f8g7g1f3a7a6a2a4e7e5d5e6f7e6b1c3b8c6e1g1e8g8\r
+c2c4g7g6e2e4f8g7d2d4d7d6b1c3a7a6c1e3g8f6f2f3c7c6f1d3b7b5d1d2b5c4d3c4d6d5c4b3d5e4\r
+c2c4g7g6g1f3f8g7b1c3d7d6d2d4g8f6c1g5h7h6g5h4g6g5h4g3f6h5e2e3c7c5d4c5h5g3h2g3d6c5\r
+c2c4g7g6g1f3f8g7b1c3e7e5g2g3g8e7f1g2e8g8d2d4e5d4f3d4b8c6d4c6e7c6e1g1d7d6c1d2c8g4\r
+c2c4g7g6g1f3f8g7d2d4g8f6b1c3e8g8e2e4d7d6f1e2e7e5e1g1b8c6d4d5c6e7f3d2c7c5a1b1f6e8\r
+c2c4g7g6g2g3f8g7f1g2c7c5g1f3b8c6e1g1g8h6b1c3e8g8a2a3a8b8b2b4b7b6a1b1c8b7d2d3h6f5\r
+c2c4g7g6g2g3f8g7f1g2e7e5b1c3g8e7e2e4e8g8g1e2b8c6d2d3d7d6e1g1c8e6c3d5f7f5c1e3d8d7\r
+c2c4g8f6b1c3c7c5g1f3b8c6d2d4c5d4f3d4g7g6e2e4f8g7c1e3f6g4d1g4c6d4g4d1d4e6a1c1d7d6\r
+c2c4g8f6b1c3c7c5g1f3b8c6e2e3e7e6d2d4d7d5c4d5e6d5f1e2c5d4f3d4f8d6e1g1e8g8e2f3d6e5\r
+c2c4g8f6b1c3c7c5g1f3d7d5c4d5f6d5e2e3e7e6d2d4b8c6f1d3f8e7e1g1c5d4e3d4e8g8f1e1d8d6\r
+c2c4g8f6b1c3c7c5g1f3d7d5c4d5f6d5g2g3b8c6f1g2d5c7a2a3e7e5b2b4f7f6b4c5f8c5e1g1e8g8\r
+c2c4g8f6b1c3c7c5g1f3d7d5c4d5f6d5g2g3d5c3b2c3g7g6d1a4b8d7h2h4h7h6a1b1f8g7f1g2e8g8\r
+c2c4g8f6b1c3c7c5g1f3e7e6e2e3b8c6d2d4d7d5c4d5e6d5f1e2f8d6d4c5d6c5e1g1e8g8c1d2a7a6\r
+c2c4g8f6b1c3c7c5g1f3g7g6e2e4b8c6d2d4c5d4f3d4f8g7c1e3f6g4d1g4c6d4g4d1d4e6a1c1d7d6\r
+c2c4g8f6b1c3c7c5g2g3e7e6g1f3b7b6f1g2c8b7b2b3f8e7c1b2d7d6e1g1e8g8d2d4c5d4d1d4a7a6\r
+c2c4g8f6b1c3c7c6e2e4d7d5e4d5c6d5d2d4e7e6g1f3f8e7f1d3d5c4d3c4e8g8e1g1b8c6f1e1a7a6\r
+c2c4g8f6b1c3d7d5c4d5f6d5e2e4d5c3b2c3g7g6c1a3b8d7g1f3f8g7f1e2c7c5e1g1e8g8d2d4c5d4\r
+c2c4g8f6b1c3d7d5c4d5f6d5g1f3d5c3b2c3g7g6d2d4f8g7e2e3c7c5f1b5b8d7e1g1e8g8a2a4a7a6\r
+c2c4g8f6b1c3d7d5c4d5f6d5g2g3g7g6f1g2d5c3b2c3f8g7a1b1b8d7c3c4e8g8g1f3a8b8e1g1b7b6\r
+c2c4g8f6b1c3d7d5c4d5f6d5g2g3g7g6f1g2d5c3b2c3f8g7a1b1b8d7g1f3e8g8e1g1e7e5d2d4c7c6\r
+c2c4g8f6b1c3d7d5c4d5f6d5g2g3g7g6f1g2d5c3b2c3f8g7c1a3b8d7g1f3c7c5d1a4e8g8a1b1a7a6\r
+c2c4g8f6b1c3d7d5c4d5f6d5g2g3g7g6f1g2d5c3b2c3f8g7d1b3b8c6g1f3e8g8e1g1c6a5b3c2c7c5\r
+c2c4g8f6b1c3d7d5c4d5f6d5g2g3g7g6f1g2d5c3b2c3f8g7g1f3e8g8e1g1c7c5a1b1b8c6d1a4c6a5\r
+c2c4g8f6b1c3d7d5d2d4c7c6g1f3d5c4a2a4c8f5f3e5e7e6f2f3f8b4e2e4f5e4f3e4f6e4c1d2d8d4\r
+c2c4g8f6b1c3d7d5d2d4g7g6c4d5f6d5e2e4d5c3b2c3f8g7f1b5c7c6b5c4b8d7g1f3h7h6e1g1e8g8\r
+c2c4g8f6b1c3d7d5d2d4g7g6e2e3f8g7g1f3e8g8d1b3c7c6c1d2e7e6a1c1b8d7c4d5e6d5f1d3f8e8\r
+c2c4g8f6b1c3e7e5e2e3b8c6a2a3d7d5c4d5f6d5d1c2d5c3d2c3f8d6e3e4c8e6g1f3f7f6c1e3d8e7\r
+c2c4g8f6b1c3e7e5g1f3b8c6a2a3d7d6d2d4c8g4d4d5c6e7e2e4g7g6f1e2f8g7e1g1f6h5f3e1g4e2\r
+c2c4g8f6b1c3e7e5g1f3b8c6d2d3f8e7e2e3d7d5c4d5f6d5f1e2e8g8e1g1c8e6a2a3a7a5d1c2d8d7\r
+c2c4g8f6b1c3e7e5g1f3b8c6d2d4e5d4f3d4f8b4c1g5h7h6g5h4b4c3b2c3c6e5f2f4e5g6h4f6d8f6\r
+c2c4g8f6b1c3e7e5g1f3b8c6g2g3f8b4c3d5b4c5d2d3h7h6f1g2d7d6e1g1e8g8e2e3a7a5d5c3c5a7\r
+c2c4g8f6b1c3e7e5g1f3b8c6g2g3f8b4c3d5b4c5f1g2d7d6e1g1e8g8e2e3c8g4h2h3g4f3g2f3f6d5\r
+c2c4g8f6b1c3e7e5g1f3b8c6g2g3f8b4c3d5b4c5f1g2d7d6e1g1f6d5c4d5c6d4f3d4c5d4e2e3d4b6\r
+c2c4g8f6b1c3e7e5g1f3b8c6g2g3f8b4c3d5f6d5c4d5c6d4f3d4e5d4d1c2d8e7f1g2b4c5e1g1e8g8\r
+c2c4g8f6b1c3e7e5g1f3b8c6g2g3f8b4f1g2e8g8c3d5f6d5c4d5c6d4f3d4e5d4d1c2d7d6e1g1a7a5\r
+c2c4g8f6b1c3e7e5g1f3b8c6g2g3f8b4f1g2e8g8e1g1e5e4f3e1b4c3d2c3h7h6e1c2b7b6c2e3c8b7\r
+c2c4g8f6b1c3e7e5g1f3b8c6g2g3f8b4f1g2e8g8e1g1e5e4f3e1b4c3d2c3h7h6e1c2f8e8c2e3b7b6\r
+c2c4g8f6b1c3e7e5g1f3b8c6g2g3f8b4f1g2e8g8e1g1e5e4f3g5b4c3b2c3f8e8f2f3e4f3g5f3d8e7\r
+c2c4g8f6b1c3e7e5g1f3b8c6g2g3f8c5f1g2e8g8e1g1f8e8e2e3c5b4c3d5b4f8d2d4d7d6d1b3f6e4\r
+c2c4g8f6b1c3e7e5g2g3c7c6g1f3d7d6f1g2g7g6e1g1f8g7d2d4b8d7e2e4e8g8h2h3f6e8c1g5f7f6\r
+c2c4g8f6b1c3e7e5g2g3c7c6g1f3e5e4f3d4d7d5c4d5d8b6d4b3c6d5f1g2a7a5d2d3a5a4c1e3b6b4\r
+c2c4g8f6b1c3e7e5g2g3f8b4d1b3b8c6c3d5b4c5e2e3e8g8f1g2f6d5c4d5c6e7g1e2d7d6e1g1c7c6\r
+c2c4g8f6b1c3e7e6d2d4d7d5c1g5b8d7e2e3c7c6g1f3d8a5f3d2f8b4d1c2e8g8f1e2e6e5g5f6d7f6\r
+c2c4g8f6b1c3e7e6d2d4d7d5c1g5f8e7e2e3h7h6g5h4b7b6c4d5f6d5h4e7d8e7c3d5e6d5g1e2e8g8\r
+c2c4g8f6b1c3e7e6d2d4d7d5e2e3b8d7g1f3c7c6d1c2f8d6c1d2d5c4f1c4e6e5d4e5d7e5f3e5d6e5\r
+c2c4g8f6b1c3e7e6d2d4f8b4a2a3b4c3b2c3b7b6f2f3c8a6e2e4d7d5c4d5a6f1e1f1e6d5c1g5h7h6\r
+c2c4g8f6b1c3e7e6d2d4f8b4c1d2e8g8g1f3b7b6e2e3c8b7a2a3b4c3d2c3d7d5a1c1b8d7f1e2f6e4\r
+c2c4g8f6b1c3e7e6d2d4f8b4c1d2e8g8g1f3b7b6e2e3c8b7f1d3d7d6e1g1b8d7a2a3b4c3d2c3f6e4\r
+c2c4g8f6b1c3e7e6d2d4f8b4c1d2e8g8g1f3c7c5d4c5b4c5e2e3d7d5a1c1d8e7c4d5e6d5f1e2b8c6\r
+c2c4g8f6b1c3e7e6d2d4f8b4d1c2e8g8a2a3b4c3c2c3b7b6c1g5c8b7e2e3c7c5d4c5b6c5f2f3b8c6\r
+c2c4g8f6b1c3e7e6d2d4f8b4e2e3b7b6g1e2c8a6a2a3b4c3e2c3d7d5b2b3e8g8a3a4c7c5c1a3d5c4\r
+c2c4g8f6b1c3e7e6d2d4f8b4e2e3b7b6g1e2c8a6a2a3b4c3e2c3d7d5b2b3e8g8f1e2d5c4b3c4b8c6\r
+c2c4g8f6b1c3e7e6d2d4f8b4e2e3b7b6g1e2c8a6a2a3b4c3e2c3d7d5b2b3e8g8f1e2d5c4b3c4b8c6\r
+c2c4g8f6b1c3e7e6d2d4f8b4e2e3e8g8f1d3c7c5d4d5b7b5d5e6f7e6c4b5a7a6g1e2d7d5e1g1e6e5\r
+c2c4g8f6b1c3e7e6d2d4f8b4e2e3e8g8f1d3d7d5a2a3d5c4d3c4b4d6g1f3b8c6b2b4e6e5c1b2c8g4\r
+c2c4g8f6b1c3e7e6d2d4f8b4e2e3e8g8f1d3d7d5a2a3d5c4d3c4b4d6g1f3b8c6b2b4e6e5c1b2c8g4\r
+c2c4g8f6b1c3e7e6d2d4f8b4e2e3e8g8f1d3d7d5a2a3d5c4d3c4b4d6g1f3b8c6c3b5e6e5b5d6d8d6\r
+c2c4g8f6b1c3e7e6d2d4f8b4e2e3e8g8g1e2d7d5a2a3b4e7c4d5e6d5g2g3b8d7f1g2d7b6e1g1f8e8\r
+c2c4g8f6b1c3e7e6d2d4f8b4g1f3c7c5e2e3e8g8f1d3d7d5e1g1b8d7c4d5e6d5d1b3d7b6c3e2a7a5\r
+c2c4g8f6b1c3e7e6e2e4c7c5e4e5f6g8d2d4c5d4d1d4b8c6d4e4d7d6g1f3d6e5f3e5g8f6e5c6d8b6\r
+c2c4g8f6b1c3e7e6e2e4c7c5e4e5f6g8g1f3b8c6d2d4c5d4f3d4c6e5d4b5a7a6b5d6f8d6d1d6f7f6\r
+c2c4g8f6b1c3e7e6e2e4c7c5e4e5f6g8g1f3b8c6d2d4c5d4f3d4c6e5d4b5a7a6b5d6f8d6d1d6f7f6\r
+c2c4g8f6b1c3e7e6e2e4c7c5e4e5f6g8g1f3d7d6e5d6f8d6d2d4c5d4d1d4g8f6c3b5d6b4c1d2d8d4\r
+c2c4g8f6b1c3e7e6e2e4d7d5e4e5f6e4g1f3f8e7d1c2e4g5f3g5e7g5c4d5e6d5d2d4g5e7c1e3e8g8\r
+c2c4g8f6b1c3e7e6g1f3b7b6e2e4c8b7d1e2c7c5e4e5f6g8d2d4b7f3e2f3b8c6d4d5c6e5f3g3d7d6\r
+c2c4g8f6b1c3e7e6g1f3b7b6e2e4c8b7d1e2f8b4e4e5f6g8d2d4g8e7c1d2e8g8e1c1d7d5h2h4b4c3\r
+c2c4g8f6b1c3e7e6g1f3b7b6e2e4c8b7d1e2f8b4e4e5f6g8d2d4g8e7e2d3d7d5e5d6c7d6a2a3b4c3\r
+c2c4g8f6b1c3e7e6g1f3b7b6e2e4c8b7d1e2f8b4e4e5f6g8g2g3b8c6f1g2c6d4e2d3b7f3g2f3d4f3\r
+c2c4g8f6b1c3e7e6g1f3b7b6e2e4c8b7d2d3d7d6g2g3f8e7f1g2e8g8e1g1c7c5b2b3b8a6f1e1e6e5\r
+c2c4g8f6b1c3e7e6g1f3b7b6e2e4c8b7f1d3c7c5e1g1b8c6e4e5f6g4d3e4d8c8f1e1d7d6e5d6f8d6\r
+c2c4g8f6b1c3e7e6g1f3b7b6e2e4c8b7f1d3c7c5e1g1b8c6e4e5f6g4d3e4f7f5e5f6g4f6e4c6b7c6\r
+c2c4g8f6b1c3e7e6g1f3b7b6e2e4c8b7f1d3c7c5e4e5f6g4h2h3b7f3d1f3g4e5f3a8e5d3e1e2d3f4\r
+c2c4g8f6b1c3e7e6g1f3b7b6e2e4c8b7f1d3d7d6d3c2c7c5d2d4c5d4f3d4a7a6b2b3f8e7e1g1e8g8\r
+c2c4g8f6b1c3e7e6g1f3b7b6e2e4f8b4d1e2c8b7e4e5f6g8d2d4d7d6c1d2d6e5d4e5b8a6e1c1d8e7\r
+c2c4g8f6b1c3e7e6g1f3b7b6g2g3c8b7f1g2f8e7d2d4e8g8d1c2c7c5d4d5e6d5f3g5g7g6c2d1d7d6\r
+c2c4g8f6b1c3e7e6g1f3b7b6g2g3c8b7f1g2f8e7e1g1e8g8d2d4f6e4d1c2e4c3c2c3f7f5b2b3e7f6\r
+c2c4g8f6b1c3e7e6g1f3c7c5d2d4d7d5c4d5f6d5e2e4d5c3b2c3c5d4c3d4f8b4c1d2b4d2d1d2e8g8\r
+c2c4g8f6b1c3e7e6g1f3c7c5e2e3f8e7b2b3e8g8c1b2b7b6d2d4c5d4e3d4d7d5f1d3b8c6e1g1c8b7\r
+c2c4g8f6b1c3e7e6g1f3c7c5g2g3b7b6f1g2c8b7e1g1f8e7d2d4c5d4d1d4e8g8f1d1b8c6d4f4d8b8\r
+c2c4g8f6b1c3e7e6g1f3c7c5g2g3b7b6f1g2c8b7e1g1f8e7d2d4c5d4d1d4e8g8f1d1b8c6d4f4d8b8\r
+c2c4g8f6b1c3e7e6g1f3c7c5g2g3b8c6f1g2d7d5c4d5e6d5d2d4f8e7e1g1e8g8c1f4c8e6a1c1a8c8\r
+c2c4g8f6b1c3e7e6g1f3d7d5d2d4b8d7c4d5e6d5c1g5f8e7e2e3e8g8f1d3c7c6d1c2f8e8e1g1d7f8\r
+c2c4g8f6b1c3e7e6g1f3d7d5d2d4b8d7c4d5e6d5c1g5f8e7e2e3e8g8f1d3c7c6d1c2f8e8h2h3d7f8\r
+c2c4g8f6b1c3e7e6g1f3d7d5d2d4c7c5c4d5f6d5e2e3f8e7f1d3c5d4e3d4b7b6c3d5d8d5e1g1b8d7\r
+c2c4g8f6b1c3e7e6g1f3d7d5d2d4c7c5c4d5f6d5e2e4d5c3b2c3c5d4c3d4f8b4c1d2b4d2d1d2e8g8\r
+c2c4g8f6b1c3e7e6g1f3d7d5d2d4c7c5c4d5f6d5g2g3c5d4c3d5d8d5d1d4d5b5e2e3b5b4c1d2b8c6\r
+c2c4g8f6b1c3e7e6g1f3d7d5d2d4c7c6c1g5b8d7e2e3d8a5g5f6d7f6f1d3f8b4d1b3e8g8e1g1c6c5\r
+c2c4g8f6b1c3e7e6g1f3d7d5d2d4c7c6e2e3b8d7f1d3d5c4d3c4b7b5c4d3c8b7e1g1b5b4c3e4f6e4\r
+c2c4g8f6b1c3e7e6g1f3d7d5d2d4c7c6e2e3b8d7f1d3d5c4d3c4b7b5c4d3c8b7e1g1b5b4c3e4f8e7\r
+c2c4g8f6b1c3e7e6g1f3d7d5d2d4c7c6e2e3b8d7f1d3d5c4d3c4b7b5c4d3c8b7e1g1b5b4c3e4f8e7\r
+c2c4g8f6b1c3e7e6g1f3d7d5d2d4c7c6e2e3b8d7f1d3d5c4d3c4b7b5c4d3c8b7e1g1b5b4c3e4f8e7\r
+c2c4g8f6b1c3e7e6g1f3d7d5d2d4c7c6e2e3b8d7f1d3d5c4d3c4b7b5c4d3c8b7e3e4b5b4c3a4c6c5\r
+c2c4g8f6b1c3e7e6g1f3d7d5d2d4c7c6e2e3b8d7f1d3d5c4d3c4b7b5c4d3c8b7e3e4b5b4c3a4c6c5\r
+c2c4g8f6b1c3e7e6g1f3d7d5d2d4c7c6e2e3b8d7f1d3d5c4d3c4b7b5c4d3c8b7e3e4b5b4c3a4c6c5\r
+c2c4g8f6b1c3e7e6g1f3d7d5d2d4f8b4c4d5e6d5c1g5h7h6g5f6d8f6d1a4b8c6e2e3e8g8f1e2a7a6\r
+c2c4g8f6b1c3e7e6g1f3d7d5d2d4f8e7c1f4e8g8e2e3c7c5d4c5e7c5d1c2b8c6a1d1d8a5a2a3c5e7\r
+c2c4g8f6b1c3e7e6g1f3d7d5d2d4f8e7c1f4e8g8e2e3c7c5d4c5e7c5d1c2b8c6a1d1d8a5a2a3c5e7\r
+c2c4g8f6b1c3e7e6g1f3d7d5d2d4f8e7c1f4e8g8e2e3c7c5d4c5e7c5d1c2b8c6a1d1d8a5a2a3f8e8\r
+c2c4g8f6b1c3e7e6g1f3d7d5d2d4f8e7c1g5e8g8e2e3b8d7c4d5e6d5d1c2f8e8f1d3c7c6e1c1a7a5\r
+c2c4g8f6b1c3e7e6g1f3d7d5d2d4f8e7c1g5e8g8e2e3h7h6g5h4b7b6a1c1c8b7c4d5e6d5f1d3b8d7\r
+c2c4g8f6b1c3e7e6g1f3d7d5d2d4f8e7c1g5h7h6g5h4e8g8a1c1b7b6h4f6e7f6c4d5e6d5g2g3c7c6\r
+c2c4g8f6b1c3e7e6g1f3d7d5d2d4f8e7c1g5h7h6g5h4e8g8e2e3b7b6a1c1c8b7f1d3d5c4d3c4b8d7\r
+c2c4g8f6b1c3e7e6g1f3d7d5d2d4f8e7c1g5h7h6g5h4e8g8e2e3b7b6a1c1c8b7f1e2d5c4e2c4f6e4\r
+c2c4g8f6b1c3e7e6g1f3d7d5d2d4f8e7g2g3e8g8f1g2d5c4f3e5b8c6g2c6b7c6e5c6d8e8c6e7e8e7\r
+c2c4g8f6b1c3e7e6g1f3d7d5e2e3f8e7d2d4e8g8f1d3d5c4d3c4c7c5e1g1a7a6d4c5d8d1f1d1e7c5\r
+c2c4g8f6b1c3e7e6g1f3f8b4g2g3b7b6f1g2c8b7e1g1e8g8d1b3b4c3b3c3d7d6b2b3d8e7c1b2c7c5\r
+c2c4g8f6b1c3g7g6d2d4d7d6e2e4f8g7f2f3e7e5d4e5d6e5d1d8e8d8c1e3c8e6g1h3e6h3g2h3c7c6\r
+c2c4g8f6b1c3g7g6d2d4f8g7c1g5d7d6e2e3c7c5g1f3h7h6g5h4g6g5h4g3f6h5d4c5h5g3h2g3d6c5\r
+c2c4g8f6b1c3g7g6d2d4f8g7e2e4d7d6f1e2e8g8g1f3e7e5d4d5b8d7c1g5h7h6g5h4a7a6e1g1d8e8\r
+c2c4g8f6b1c3g7g6d2d4f8g7e2e4d7d6f2f3e7e5g1e2c7c6c1e3e8g8d1d2d8a5e1c1b7b5c4b5c6b5\r
+c2c4g8f6b1c3g7g6d2d4f8g7e2e4d7d6f2f3e8g8c1e3e7e5d4d5c7c5g2g4f6e8h2h4f7f5e4f5g6f5\r
+c2c4g8f6b1c3g7g6d2d4f8g7e2e4d7d6g1f3e8g8f1e2e7e5d4d5b8d7d1c2a7a5h2h3c7c6c1e3c6d5\r
+c2c4g8f6b1c3g7g6d2d4f8g7g2g3e8g8f1g2d7d6g1f3b8c6e1g1a7a6h2h3a8b8c1e3b7b5c4b5a6b5\r
+c2c4g8f6b1c3g7g6e2e4d7d6d2d4f8g7f2f4c7c5d4d5e8g8g1f3e7e6f1e2e6d5e4d5f8e8e1g1f6g4\r
+c2c4g8f6b1c3g7g6e2e4d7d6g2g3c7c5f1g2b8c6g1e2f8g7e1g1e8g8d2d3a7a6a1b1a8b8a2a3b7b5\r
+c2c4g8f6b1c3g7g6e2e4f8g7d2d4d7d6g1f3e8g8f1e2e7e5d4e5d6e5d1d8f8d8c1g5d8e8c3d5f6d5\r
+c2c4g8f6b1c3g7g6g1f3f8g7g2g3e8g8f1g2d7d6e1g1b8c6d2d3e7e5a1b1a7a5a2a3f8e8f3d2c6d4\r
+c2c4g8f6b1c3g7g6g2g3f8g7f1g2d7d6g1f3e8g8e1g1c7c5d2d4b8c6d4d5c6a5d1d3a7a6f3d2a8b8\r
+c2c4g8f6b1c3g7g6g2g3f8g7f1g2e8g8d2d4d7d6g1f3b8c6e1g1a7a6a2a3c8g4c1e3e7e5d4e5d6e5\r
+c2c4g8f6b1c3g7g6g2g3f8g7f1g2e8g8d2d4d7d6g1f3b8c6e1g1a7a6d4d5c6a5f3d2c7c5d1c2e7e5\r
+c2c4g8f6b1c3g7g6g2g3f8g7f1g2e8g8d2d4d7d6g1f3b8d7e1g1e7e5e2e4e5d4f3d4d7c5f2f3a7a5\r
+c2c4g8f6b1c3g7g6g2g3f8g7f1g2e8g8d2d4d7d6g1f3c7c6e1g1c8f5f3h4f5e6d4d5c6d5c4d5e6d7\r
+c2c4g8f6b1c3g7g6g2g3f8g7f1g2e8g8d2d4d7d6g1f3c8g4h2h3g4f3g2f3b8c6f3g2f6d7e2e3e7e5\r
+c2c4g8f6b1c3g7g6g2g3f8g7f1g2e8g8e2e4c7c5g1e2b8c6e1g1d7d6a2a3c8d7h2h3f6e8d2d3e8c7\r
+c2c4g8f6b1c3g7g6g2g3f8g7f1g2e8g8f2f4c7c5g1f3d7d5c4d5f6d5e1g1d5c7b2b3b8c6c1b2a8b8\r
+c2c4g8f6b1c3g7g6g2g3f8g7f1g2e8g8g1f3c7c5e1g1b8c6d2d4d7d6d4c5d6c5c1e3f6d7d1c1c6d4\r
+c2c4g8f6b1c3g7g6g2g3f8g7f1g2e8g8g1f3c7c5e1g1b8c6d2d4d7d6d4c5d6c5c1e3f6d7d1c1c6d4\r
+c2c4g8f6b1c3g7g6g2g3f8g7f1g2e8g8g1f3d7d6e1g1b8c6a1b1e7e5b2b4e5e4f3e1c8f5d2d3d6d5\r
+c2c4g8f6d2d4c7c6c1f4d8b6d1d2f6e4d2c2d7d5f2f3e7e5f4e5b6a5b1c3e4c3b2c3d5c4e2e4b7b5\r
+c2c4g8f6d2d4c7c6e2e3d7d5f1d3g7g6g1f3f8g7b1c3e8g8e1g1c8g4h2h3g4f3d1f3e7e6f1d1b8d7\r
+c2c4g8f6d2d4d7d6g1f3g7g6b1c3f8g7g2g3e8g8f1g2b8d7e1g1e7e5e2e4c7c6b2b3e5d4f3d4d7c5\r
+c2c4g8f6d2d4e7e6b1c3f8b4a2a3b4c3b2c3b8c6f2f3b7b6e2e4c8a6e4e5f6g8g1h3c6a5d1a4g8e7\r
+c2c4g8f6d2d4e7e6b1c3f8b4e2e3c7c5f1d3e8g8g1f3d7d5e1g1b7b6c4d5e6d5a2a3b4c3b2c3c8a6\r
+c2c4g8f6d2d4e7e6b1c3f8b4e2e3c7c5g1e2c5d4e3d4d7d5c4c5f6e4c1d2e4d2d1d2a7a5a2a3b4c3\r
+c2c4g8f6d2d4e7e6b1c3f8b4e2e3c7c5g1e2d7d5a2a3b4c3e2c3c5d4e3d4d5c4f1c4b8c6c1e3e8g8\r
+c2c4g8f6d2d4e7e6g1f3b7b6a2a3c8b7b1c3d7d5c4d5f6d5d1c2d5c3b2c3b8d7e2e4c7c5c1f4c5d4\r
+c2c4g8f6d2d4e7e6g1f3b7b6b1c3f8b4e2e3c7c5f1d3d7d5d4c5b6c5e1g1e8g8c3e2c8b7b2b3b8d7\r
+c2c4g8f6d2d4e7e6g1f3b7b6e2e3c8b7b1c3d7d5c4d5e6d5f1b5c7c6b5d3f8e7e1g1e8g8b2b3b8d7\r
+c2c4g8f6d2d4e7e6g1f3b7b6g2g3c8b7f1g2f8e7e1g1e8g8d1c2c7c5d4c5e7c5b1c3b8c6e2e4e6e5\r
+c2c4g8f6d2d4e7e6g1f3c7c5e2e3c5d4e3d4d7d5b1c3f8b4f1d3d5c4d3c4d8c7d1d3e8g8e1g1b7b6\r
+c2c4g8f6d2d4e7e6g1f3d7d5b1c3c7c5e2e3b8c6a2a3f8d6d4c5d6c5b2b4c5d6c1b2e8g8c4d5e6d5\r
+c2c4g8f6d2d4e7e6g1f3d7d5c1g5b8d7b1c3c7c6e2e3d8a5g5f6d7f6f1d3f8b4d1c2d5c4d3c4f6d5\r
+c2c4g8f6d2d4e7e6g2g3d7d5f1g2d5c4d1a4c8d7a4c4d7c6g1f3c6d5c4a4d8d7a4d1b8c6b1c3f8b4\r
+c2c4g8f6d2d4e7e6g2g3d7d5f1g2f8e7g1f3e8g8d1c2c7c5d4c5d8a5c2c3a5c5c4d5f6d5c3c5e7c5\r
+c2c4g8f6d2d4e7e6g2g3d7d5f1g2f8e7g1f3e8g8e1g1d5c4d1c2a7a6a2a4c8d7c2c4d7c6c1f4a6a5\r
+c2c4g8f6d2d4g7g6b1c3d7d5c1f4f8g7e2e3e8g8f4e5e7e6g1f3b8d7e5g3c7c6f1d3b7b6e1g1c8b7\r
+c2c4g8f6d2d4g7g6b1c3f8g7g2g3d7d5f1g2d5c4d1a4f6d7e2e3e8g8a4c4c7c5g1f3c5d4f3d4d7e5\r
+c2c4g8f6d2d4g7g6g2g3c7c6g1f3f8g7b1c3e8g8f1g2d7d5d1b3d5c4b3c4c8e6c4d3b8a6e1g1e6f5\r
+c2c4g8f6g1f3b7b6b1c3c8b7d2d4e7e6e2e3f8b4f1d3f6e4e1g1f7f5c3e2b4d6b2b3e8g8f3e5b8c6\r
+c2c4g8f6g1f3b7b6g2g3c7c5f1g2c8b7e1g1e7e6b1c3f8e7d2d4c5d4d1d4e8g8f1d1b8c6d4f4d8b8\r
+c2c4g8f6g1f3b7b6g2g3c8b7f1g2c7c5e1g1e7e6b1c3f8e7d2d4c5d4f3d4b7g2g1g2d8c8d1d3b8c6\r
+c2c4g8f6g1f3b7b6g2g3c8b7f1g2e7e6d2d4f8e7b1c3f6e4c1d2c7c5e1g1e8g8a1c1e7f6c3e4b7e4\r
+c2c4g8f6g1f3c7c5b1c3e7e6g2g3b7b6f1g2c8b7e1g1f8e7d2d4c5d4d1d4e8g8e2e4d8c8e4e5b8c6\r
+c2c4g8f6g1f3c7c5b1c3e7e6g2g3b7b6f1g2c8b7e1g1f8e7d2d4f6e4c3e4b7e4c1f4e8g8d1d2b8c6\r
+c2c4g8f6g1f3c7c5g2g3b7b6f1g2c8b7e1g1e7e6b2b3f8e7c1b2e8g8e2e3d7d5c4d5f6d5d2d4c5d4\r
+c2c4g8f6g1f3c7c5g2g3b8c6f1g2g7g6e1g1f8g7b1c3e8g8d2d4c5d4f3d4c6d4d1d4d7d6f1d1c8e6\r
+c2c4g8f6g1f3c7c5g2g3d7d5f1g2b8c6c4d5f6d5b1c3d5f6e1g1e7e6b2b3f8e7c1b2e8g8a1c1d8a5\r
+c2c4g8f6g1f3c7c6b1c3d7d5d2d4d5c4a2a4c8f5e2e3e7e6f1c4b8d7e1g1f8b4d1e2f5g6f1d1e8g8\r
+c2c4g8f6g1f3c7c6b1c3d7d5e2e3g7g6d2d4f8g7c4d5f6d5f1c4e8g8e1g1b7b6d1b3d5c3b2c3c8a6\r
+c2c4g8f6g1f3c7c6d2d4d7d5b1c3d5c4a2a4c8f5f3e5e7e6f2f3f8b4e5c4e8g8c1g5h7h6g5h4b8a6\r
+c2c4g8f6g1f3c7c6d2d4d7d5e2e3g7g6b1c3f8g7f1d3e8g8e1g1c8g4h2h3g4f3d1f3e7e6f1d1b8d7\r
+c2c4g8f6g1f3e7e6b1c3d7d5d2d4b8d7c4d5e6d5c1g5f8e7e2e3e8g8f1d3c7c6d1c2f8e8e1g1d7f8\r
+c2c4g8f6g1f3e7e6b1c3d7d5d2d4f8b4c4d5e6d5c1g5h7h6g5f6d8f6d1b3f6d6a2a3b4c3b3c3e8g8\r
+c2c4g8f6g1f3e7e6b1c3f8b4d1c2e8g8e2e3b7b6b2b3c8b7c1b2d7d5f1e2b8d7e1g1a7a6a1d1d8e7\r
+c2c4g8f6g1f3e7e6b1c3f8b4g2g4h7h6h1g1d7d6h2h4e6e5g4g5h6g5h4g5f6g4c3d5b4c5d2d4c5b6\r
+c2c4g8f6g1f3e7e6d2d4b7b6g2g3c8a6b2b3f8b4c1d2b4e7f1g2d7d5f3e5e8g8e1g1c7c6d2c3f6d7\r
+c2c4g8f6g1f3e7e6d2d4b7b6g2g3c8b7f1g2f8e7b1c3f6e4c1d2d7d6d4d5e4d2f3d2e8g8e1g1g8h8\r
+c2c4g8f6g1f3e7e6d2d4f8b4c1d2b4d2d1d2d7d6b1c3d8e7g2g3e8g8f1g2f8d8e1g1b8d7a1d1d7f8\r
+c2c4g8f6g1f3e7e6d2d4f8b4c1d2d8e7g2g3b8c6b1c3b4c3d2c3f6e4a1c1e8g8f1g2d7d6d4d5c6d8\r
+c2c4g8f6g1f3e7e6g2g3b7b6f1g2c8b7e1g1f8e7d2d4e8g8b1c3f6e4d1c2e4c3b2c3b8c6f3e5c6a5\r
+c2c4g8f6g1f3e7e6g2g3d7d5f1g2f8e7e1g1e8g8b2b3a7a5d2d4a5a4b1a3c7c6c1b2b8d7e2e3d8a5\r
+c2c4g8f6g1f3e7e6g2g3d7d5f1g2f8e7e1g1e8g8d2d4c7c6b2b3b8d7c1b2b7b6d1c2c8b7b1c3a8c8\r
+c2c4g8f6g1f3g7g6b1c3d7d5c4d5f6d5e2e4d5c3d2c3d8d1e1d1c8g4f1e2b8d7c1e3e7e5f3d2\r
+c2c4g8f6g1f3g7g6g2g3f8g7f1g2e8g8d2d4d7d6b1c3b8d7e1g1e7e5e2e4c7c6h2h3d8b6d4d5c6d5\r
+c2c4g8f6g1f3g7g6g2g3f8g7f1g2e8g8e1g1d7d5c4d5f6d5d2d4c7c5d4c5b8a6f3g5d5b4b1c3h7h6\r
+c2c4g8f6g2g3c7c5f1g2d7d5c4d5f6d5b1c3d5c7d2d3e7e5c1e3b8c6g2c6b7c6d1a4c8d7a1c1a8b8\r
+c2c4g8f6g2g3c7c6g1f3d7d5b2b3c8f5c1a3g7g6d2d3f8g7b1d2d8b6f1g2f6g4d3d4b8a6e1g1a6b4\r
+c2c4g8f6g2g3c7c6g1f3d7d5b2b3c8f5f1g2e7e6c1b2b8d7e1g1h7h6d2d3f8e7b1d2e8g8a2a3a7a5\r
+c2c4g8f6g2g3c7c6g1f3d7d5b2b3c8f5f1g2e7e6e1g1b8d7c1b2f8e7b1c3e8g8f3h4f5g4h2h3g4h5\r
+c2c4g8f6g2g3c7c6g1f3d7d5b2b3g7g6c1b2f8g7f1g2d8b6d1c1e8g8e1g1b8d7c4d5c6d5b2d4b6d6\r
+c2c4g8f6g2g3e7e6f1g2d7d5d2d4d5c4d1a4b8d7g1f3a7a6a4c4b7b5c4c6a8b8c1f4f6d5f4g5f8e7\r
+c2c4g8f6g2g3e7e6f1g2d7d5g1f3d5c4d1a4b8d7a4c4a7a6e1g1b7b5c4c2c8b7b2b3c7c5c1b2f8e7\r
+c2c4g8f6g2g3e7e6f1g2d7d5g1f3d5c4e1g1a7a6d1c2b7b5f3e5f6d5d2d3c4d3e5d3c8b7f1d1d8c8\r
+c2c4g8f6g2g3e7e6f1g2d7d5g1f3d5d4b2b4c7c5c1b2d8b6d1b3b8c6b4b5c6a5b3c2f8d6e2e3e6e5\r
+c2c4g8f6g2g3e7e6f1g2d7d5g1f3f8e7d2d4e8g8b1d2b7b6e1g1c8b7c4d5e6d5f3e5b8d7d2f3c7c5\r
+c2c4g8f6g2g3g7g6f1g2f8g7b1c3c7c5d2d3b8c6c1d2d7d6d1c1c6d4a1b1a8b8d2h6d4c2e1f1g7h6\r
+c2c4g8f6g2g3g7g6f1g2f8g7d2d4e8g8b1c3c7c6d4d5d7d6g1f3e7e5e1g1c6d5c4d5b8d7a2a4a7a5\r
+c2c4g8f6g2g3g7g6f1g2f8g7e2e4d7d6g1e2e8g8e1g1c7c5b1c3b8c6d2d3c8d7h2h3f6e8g3g4e8c7\r
+c2c4g8f6g2g3g7g6f1g2f8g7g1f3d7d6b1c3e7e5d2d3e8g8c1d2b8d7e1g1f8e8a1b1d7f8b2b4c7c6\r
+d2d3g7g6c2c3g8f6g1f3f8g7g2g3e8g8f1g2c7c5e1g1b8c6\r
+d2d3g7g6c2c3g8f6g2g3f8g7f1g2e8g8g1f3c7c5e1g1b8c6\r
+d2d3g7g6e2e4d7d6g1f3f8g7f1e2g8f6e1g1e8g8b1c3c7c5\r
+d2d3g7g6g1f3g8f6g2g3f8g7f1g2e8g8e1g1c7c5c2c3b8c6\r
+d2d3g7g6g2g3g8f6f1g2f8g7c2c3e8g8g1f3c7c5e1g1b8c6\r
+d2d4b7b5e2e4c8b7f2f3a7a6c1e3e7e6b1d2g8f6c2c3f8e7f1d3d7d6a2a4c7c6g1e2b8d7e1g1e8g8\r
+d2d4c7c5d4d5e7e5e2e4d7d6f2f4e5f4c1f4d8h4g2g3h4e7b1c3g7g5f4e3b8d7g1f3h7h6d1d2g8f6\r
+d2d4c7c6e2e4d7d5e4d5c6d5c2c4g8f6b1c3b8c6c1g5d8a5d1d2c8e6c4c5f6e4c3e4d5e4d2a5c6a5\r
+d2d4d7d5c1f4g8f6e2e3c8f5f1d3f5g6h2h3e7e6g1f3b8d7e1g1f8e7d1e2c7c5c2c3e8g8b1d2a8c8\r
+d2d4d7d5c1g5f7f6g5h4b8c6e2e3g8h6f1d3h6f5g1f3h7h5h4g3c6b4e3e4d5e4d3e4g7g5c2c3b4d5\r
+d2d4d7d5c2c4b8c6c4d5d8d5e2e3e7e5b1c3f8b4c1d2b4c3d2c3e5d4g1e2g8f6e2d4e8g8d4b5d5g5\r
+d2d4d7d5c2c4b8c6c4d5d8d5g1f3g8f6b1c3d5a5e2e3e7e5d4e5c6e5f1b5e5d7d1b3f8b4c1d2e8g8\r
+d2d4d7d5c2c4b8c6g1f3c8g4d1a4g4f3g2f3g8f6b1c3e7e6c1g5d5c4e1c1f8e7a4c4f6d5g5e7c6e7\r
+d2d4d7d5c2c4c7c6b1c3d5c4e2e4e7e5f1c4e5d4g1f3b7b5c3b5c8a6d1b3d8e7e1g1a6b5c4b5g8f6\r
+d2d4d7d5c2c4c7c6b1c3e7e6e2e4d5e4c3e4f8b4c1d2d8d4d2b4d4e4f1e2c6c5b4c3f7f6g1f3e4f4\r
+d2d4d7d5c2c4c7c6b1c3e7e6g1f3g8f6c1g5d5c4e2e4b7b5e4e5h7h6g5h4g7g5f3g5h6g5h4g5b8d7\r
+d2d4d7d5c2c4c7c6b1c3e7e6g1f3g8f6e2e3b8d7d1c2f8d6f1e2e8g8b2b3d8e7e1g1d5c4b3c4e6e5\r
+d2d4d7d5c2c4c7c6b1c3g8f6c1g5b8d7g1f3e7e6c4d5e6d5e2e3f8d6f1d3h7h6g5h4e8g8d1c2f8e8\r
+d2d4d7d5c2c4c7c6b1c3g8f6c4d5c6d5c1f4e7e6e2e3f8e7f1d3b8c6h2h3e8g8g1f3c8d7e1g1d8b6\r
+d2d4d7d5c2c4c7c6b1c3g8f6c4d5c6d5g1f3b8c6c1f4e7e6e2e3f8e7h2h3e7d6f1d3d6f4e3f4e8g8\r
+d2d4d7d5c2c4c7c6b1c3g8f6e2e3a7a6f1d3b7b5b2b3c8g4g1e2b8d7e1g1e7e6f2f3g4h5e2f4f8d6\r
+d2d4d7d5c2c4c7c6b1c3g8f6e2e3c8f5c4d5c6d5d1b3f5c8g1f3b8c6f3e5e7e6f1b5d8c7c1d2f8d6\r
+d2d4d7d5c2c4c7c6b1c3g8f6e2e3e7e6f1d3b8d7f2f4d5c4d3c4b7b5c4d3c8b7g1f3a7a6a2a4b5b4\r
+d2d4d7d5c2c4c7c6b1c3g8f6e2e3e7e6g1f3b8d7d1c2f8d6f1d3e8g8e1g1d5c4d3c4a7a6f1d1b7b5\r
+d2d4d7d5c2c4c7c6b1c3g8f6e2e3e7e6g1f3b8d7f1d3d5c4d3c4b7b5c4d3a7a6e3e4c6c5d4d5c8b7\r
+d2d4d7d5c2c4c7c6b1c3g8f6e2e3e7e6g1f3b8d7f1d3d5c4d3c4b7b5c4d3a7a6e3e4c6c5e4e5c5d4\r
+d2d4d7d5c2c4c7c6b1c3g8f6e2e3e7e6g1f3b8d7f1d3d5c4d3c4b7b5c4d3c8b7a2a3b5b4c3e4f6e4\r
+d2d4d7d5c2c4c7c6b1c3g8f6e2e3e7e6g1f3b8d7f1d3d5c4d3c4b7b5c4d3c8b7e1g1a7a6e3e4c6c5\r
+d2d4d7d5c2c4c7c6b1c3g8f6e2e3e7e6g1f3b8d7f1d3d5c4d3c4b7b5c4e2b5b4c3a4c8b7e1g1f8e7\r
+d2d4d7d5c2c4c7c6b1c3g8f6e2e3e7e6g1f3f8e7f1d3b8d7e1g1e8g8b2b3f8e8c1b2d7f8f3e5f8g6\r
+d2d4d7d5c2c4c7c6b1c3g8f6e2e3g7g6g1f3f8g7f1d3e8g8e1g1c8g4h2h3g4f3d1f3e7e6f1d1b8d7\r
+d2d4d7d5c2c4c7c6b1c3g8f6e2e3g7g6g1f3f8g7f1d3e8g8e1g1c8g4h2h3g4f3d1f3f8e8f1d1d8d6\r
+d2d4d7d5c2c4c7c6b1c3g8f6g1f3d5c4a2a4c6c5e2e4c5d4d1d4d8d4f3d4e7e6d4b5b8a6f1c4f8c5\r
+d2d4d7d5c2c4c7c6b1c3g8f6g1f3d5c4a2a4c8f5e2e3e7e6f1c4f8b4e1g1b8d7d1e2f5g6e3e4e8g8\r
+d2d4d7d5c2c4c7c6b1c3g8f6g1f3d5c4a2a4c8f5e2e3e7e6f1c4f8b4e1g1b8d7d1e2f5g6f1d1d8c7\r
+d2d4d7d5c2c4c7c6b1c3g8f6g1f3d5c4a2a4c8f5e2e3e7e6f1c4f8b4e1g1e8g8d1e2f5g4h2h3g4f3\r
+d2d4d7d5c2c4c7c6b1c3g8f6g1f3e7e6c1g5b8d7e2e3d8a5c4d5f6d5d1d2f8b4a1c1e8g8f1d3h7h6\r
+d2d4d7d5c2c4c7c6b1c3g8f6g1f3e7e6c1g5d5c4a2a4f8b4e2e4c6c5f1c4c5d4f3d4h7h6g5e3f6e4\r
+d2d4d7d5c2c4c7c6b1c3g8f6g1f3e7e6c1g5d5c4e2e4b7b5e4e5h7h6g5h4g7g5f3g5h6g5h4g5b8d7\r
+d2d4d7d5c2c4c7c6b1c3g8f6g1f3e7e6c1g5h7h6g5f6d8f6e2e3b8d7f1d3d5c4d3c4g7g6e1g1f8g7\r
+d2d4d7d5c2c4c7c6b1c3g8f6g1f3e7e6c1g5h7h6g5f6d8f6e2e3b8d7f1d3f6d8e1g1f8e7a2a3e8g8\r
+d2d4d7d5c2c4c7c6b1c3g8f6g1f3e7e6c4d5e6d5c1g5h7h6g5h4f8e7d1c2e8g8e2e3f6e4h4e7d8e7\r
+d2d4d7d5c2c4c7c6b1c3g8f6g1f3e7e6e2e3a7a6f1d3b7b5b2b3b8d7e1g1c8b7c4c5f8e7a2a3a6a5\r
+d2d4d7d5c2c4c7c6b1c3g8f6g1f3e7e6e2e3b8d7f1d3d5c4d3c4b7b5c4d3a7a6e3e4c6c5e4e5c5d4\r
+d2d4d7d5c2c4c7c6b1c3g8f6g1f3e7e6e2e3f8e7f1d3e8g8e1g1b8d7b2b3b7b6c1b2c8b7f3e5d5c4\r
+d2d4d7d5c2c4c7c6b1c3g8f6g1f3g7g6c4d5c6d5c1f4f8g7e2e3e8g8f1e2b8c6h2h3f6e4a1c1c8e6\r
+d2d4d7d5c2c4c7c6c4d5c6d5b1c3g8f6c1f4b8c6g1f3a7a6f3e5e7e6e2e3f8d6f4g3d6e5d4e5f6d7\r
+d2d4d7d5c2c4c7c6c4d5c6d5b1c3g8f6c1f4d8b6d1c2b8c6e2e3c8f5c2d2e7e6f1b5f8b4b5c6b6c6\r
+d2d4d7d5c2c4c7c6c4d5c6d5b1c3g8f6g1f3b8c6c1f4c8f5e2e3e7e6d1b3f8b4f1b5d8a5b5c6b7c6\r
+d2d4d7d5c2c4c7c6c4d5c6d5b1c3g8f6g1f3b8c6c1f4c8f5e2e3e7e6f3e5c6e5f4e5f6d7e5g3a7a6\r
+d2d4d7d5c2c4c7c6e2e3c8f5a2a3e7e6c4c5a7a5d1b3d8c7b1c3b8d7c3a4g8f6g1e2f8e7e2g3f5g6\r
+d2d4d7d5c2c4c7c6e2e3c8f5b1c3e7e6g1f3b8d7a2a3f8d6c4c5d6c7b2b4e6e5f1e2g8f6c1b2e5e4\r
+d2d4d7d5c2c4c7c6e2e3g8f6b1c3e7e6g1f3b8d7f1d3d5c4d3c4b7b5c4d3a7a6e3e4c6c5e4e5c5d4\r
+d2d4d7d5c2c4c7c6e2e3g8f6g1f3c8f5c4d5c6d5b1c3e7e6f3e5f6d7g2g4f5g6e5g6h7g6f1g2b8c6\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3a7a6c1g5d5c4a2a4c8e6e2e4b8d7d4d5c6d5e4d5e6g4f1c4g4f3\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3d5c4a2a4b8a6e2e3c8g4f1c4e7e6h2h3g4h5e1g1a6b4c4e2f8e7\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3d5c4a2a4c8f5e2e3e7e6f1c4b8d7d1e2f6e4e1g1f8b4c4d3b4c3\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3d5c4a2a4c8f5e2e3e7e6f1c4b8d7e1g1f8d6d1e2f6e4c3e4f5e4\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3d5c4a2a4c8f5e2e3e7e6f1c4f8b4e1g1b8d7d1e2e8g8e3e4f5g6\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3d5c4a2a4c8f5e2e3e7e6f1c4f8b4e1g1b8d7d1e2e8g8e3e4f5g6\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3d5c4a2a4c8f5e2e3e7e6f1c4f8b4e1g1b8d7d1e2e8g8e3e4f5g6\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3d5c4a2a4c8f5e2e3e7e6f1c4f8b4e1g1b8d7d1e2f5g6c4d3g6d3\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3d5c4a2a4c8f5e2e3e7e6f1c4f8b4e1g1b8d7d1e2f5g6e3e4e8g8\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3d5c4a2a4c8f5e2e3e7e6f1c4f8b4e1g1b8d7d1e2f6e4c4d3b4c3\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3d5c4a2a4c8f5e2e3e7e6f1c4f8b4e1g1b8d7f3h4e8g8f2f3f5g6\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3d5c4a2a4c8f5e2e3e7e6f1c4f8b4e1g1e8g8c1d2b8d7f1e1h7h6\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3d5c4a2a4c8f5e2e3e7e6f1c4f8b4e1g1e8g8c3e2h7h6e2g3f5h7\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3d5c4a2a4c8f5e2e3e7e6f1c4f8b4e1g1e8g8d1e2b8d7f1d1d8c7\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3d5c4a2a4c8f5e2e3e7e6f1c4f8b4e1g1e8g8d1e2f5g4h2h3g4f3\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3d5c4a2a4c8f5e2e3e7e6f1c4f8b4e1g1e8g8d1e2f5g4h2h3g4f3\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3d5c4a2a4c8f5e2e3e7e6f1c4f8b4e1g1e8g8d1e2f6e4c4d3b4c3\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3d5c4a2a4c8f5f3e5b8a6f2f3f6d7e5c4e7e5e2e4e5d4c3e2f8b4\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3d5c4a2a4c8f5f3e5b8d7e5c4d8c7g2g3e7e5d4e5d7e5c1f4f6d7\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3d5c4a2a4c8f5f3e5b8d7e5c4d8c7g2g3e7e5d4e5d7e5c1f4f6d7\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3d5c4a2a4c8f5f3e5b8d7e5c4d8c7g2g3e7e5d4e5d7e5c1f4f6d7\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3d5c4a2a4c8f5f3e5b8d7e5c4d8c7g2g3e7e5d4e5d7e5c1f4f6d7\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3d5c4a2a4c8f5f3e5e7e6c1g5f8b4e5c4d8d5g5f6d5c4d1d2g7f6\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3d5c4a2a4c8f5f3e5e7e6c1g5f8b4f2f3h7h6g5f6g7f6e5c4c6c5\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3d5c4a2a4c8f5f3e5e7e6c1g5f8e7f2f3h7h6e2e4f5h7g5e3b8d7\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3d5c4a2a4c8f5f3e5e7e6f2f3c6c5d4c5d8d1e1d1f8c5e2e4f5g6\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3d5c4a2a4c8f5f3e5e7e6f2f3f8b4c1g5c6c5d4c5d8d5d1d5e6d5\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3d5c4a2a4c8f5f3h4f5c8e2e3e7e5d4e5d8d1c3d1f8b4c1d2b4d2\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3d5c4a2a4c8g4f3e5g4h5h2h3b8a6g2g4h5g6f1g2a6b4e1g1g6c2\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3d5c4a2a4e7e6e2e4f8b4e4e5f6d5c1d2b4c3b2c3b7b5f3g5f7f6\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3d5c4a2a4e7e6e2e4f8b4e4e5f6e4d1c2d8d5f1e2c6c5e1g1e4c3\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3d5c4e2e3b7b5a2a4b5b4c3b1c8a6f1e2e7e6f3e5f8e7e1g1e8g8\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3e7e6c1g5b8d7e2e3d8a5c4d5f6d5d1d2d7b6f1d3d5c3b2c3b6d5\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3e7e6c1g5b8d7e2e3d8a5c4d5f6d5d1d2d7b6f1d3f8b4a1c1f7f6\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3e7e6c1g5b8d7e2e3d8a5c4d5f6d5d1d2f8b4a1c1h7h6g5h4e8g8\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3e7e6c1g5b8d7e2e3d8a5f3d2f8b4d1c2d5c4g5f6d7f6d2c4a5c7\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3e7e6c1g5b8d7e2e3d8a5f3d2f8b4d1c2e8g8f1e2d5c4g5f6d7f6\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3e7e6c1g5h7h6g5f6d8f6e2e3b8d7f1d3d5c4d3c4g7g6e1g1f8g7\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3e7e6c1g5h7h6g5f6d8f6e2e3f8d6f1d3f6e7e1g1b8d7c4c5d6c7\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3e7e6c1g5h7h6g5h4d5c4e2e4g7g5h4g3b7b5f1e2b5b4c3a4f6e4\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3e7e6d1b3f8e7c1g5d5c4b3c4b7b6e2e4c8a6c4b3a6f1h1f1e8g8\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3e7e6e2e3a7a6c4c5b8d7b2b4a6a5b4b5e6e5d1a4d8c7c1a3e5e4\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3e7e6e2e3b8d7d1c2b7b6f1d3c8b7e1g1f8d6f1d1d8e7b2b3e8g8\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3e7e6e2e3b8d7d1c2b7b6f1d3c8b7e1g1f8e7b2b3d8c7c1b2a8d8\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3e7e6e2e3b8d7d1c2b7b6f1d3c8b7e1g1f8e7b2b3d8c7c1b2a8d8\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3e7e6e2e3b8d7d1c2f8d6f1d3e8g8e1g1d5c4d3c4b7b5c4d3c8b7\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3e7e6e2e3b8d7d1c2f8d6f1e2e8g8e1g1d5c4e2c4d8e7a2a3e6e5\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3e7e6e2e3b8d7d1c2f8d6f1e2e8g8e1g1d5c4e2c4d8e7h2h3a7a6\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3e7e6e2e3b8d7d1c2f8d6f1e2e8g8e1g1d5c4e2c4d8e7h2h3c6c5\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3e7e6e2e3b8d7d1c2f8d6f1e2e8g8e1g1d5c4e2c4d8e7h2h3c6c5\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3e7e6e2e3b8d7d1c2f8d6f1e2e8g8e1g1f8e8f1d1d8e7a2a3b7b6\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3e7e6e2e3b8d7f1d3d5c4d3c4b7b5c4d3b5b4c3e4f6e4d3e4c8b7\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3e7e6e2e3b8d7f1d3d5c4d3c4b7b5c4d3c8b7e1g1a7a6e3e4c6c5\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3e7e6e2e3b8d7f1d3d5c4d3c4b7b5c4d3c8b7e1g1a7a6e3e4c6c5\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3e7e6e2e3b8d7f1d3d5c4d3c4b7b5c4d3c8b7e1g1a7a6e3e4c6c5\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3e7e6e2e3b8d7f1d3f8b4e1g1e8g8a2a3b4c3b2c3d8c7f3d2e6e5\r
+d2d4d7d5c2c4c7c6g1f3g8f6b1c3e7e6e2e3b8d7f1e2f8d6e1g1e8g8d1c2d5c4e2c4a7a6f1d1d8e7\r
+d2d4d7d5c2c4c7c6g1f3g8f6c4d5c6d5b1c3b8c6c1f4c8f5e2e3e7e6d1b3f8b4f1b5d8a5e1g1e8g8\r
+d2d4d7d5c2c4c7c6g1f3g8f6c4d5c6d5b1c3b8c6c1f4e7e6e2e3f8d6f4d6d8d6f1e2e8g8e1g1c8d7\r
+d2d4d7d5c2c4c7c6g1f3g8f6d1c2d5c4c2c4c8f5g2g3e7e6f1g2b8d7e1g1f8e7e2e3e8g8c4e2c6c5\r
+d2d4d7d5c2c4c7c6g1f3g8f6e2e3c8f5b1c3e7e6f3h4f5g6d1b3d8b6h4g6h7g6c1d2b8d7f1d3f8e7\r
+d2d4d7d5c2c4c7c6g1f3g8f6e2e3c8f5c4d5c6d5b1c3e7e6d1b3d8c8c1d2b8c6a1c1f8e7f1b5e8g8\r
+d2d4d7d5c2c4c7c6g1f3g8f6e2e3c8f5c4d5c6d5b1c3e7e6f3e5f6d7d1b3d8c8c1d2b8c6a1c1f8e7\r
+d2d4d7d5c2c4c7c6g1f3g8f6e2e3c8f5c4d5f6d5f1c4e7e6e1g1b8d7d1e2f5g4h2h3g4h5e3e4d5b6\r
+d2d4d7d5c2c4c7c6g1f3g8f6e2e3c8f5f1d3f5d3d1d3e7e6e1g1b8d7b1d2f8e7b2b3e8g8c1b2a7a5\r
+d2d4d7d5c2c4c7c6g1f3g8f6e2e3e7e6b1c3a7a6c4c5b7b6c5b6b8d7c3a4d7b6c1d2b6a4d1a4d8b6\r
+d2d4d7d5c2c4c7c6g1f3g8f6e2e3e7e6b1c3a7a6c4c5b8d7b2b4a6a5b4b5f6e4c3e4d5e4f3d2f7f5\r
+d2d4d7d5c2c4c7c6g1f3g8f6e2e3e7e6f1d3b8d7b1d2f8e7e1g1e8g8b2b3a7a5a2a3c6c5c4d5e6d5\r
+d2d4d7d5c2c4c7c6g1f3g8f6e2e3e7e6f1d3b8d7b1d2f8e7e1g1e8g8b2b3b7b6c1b2c8b7d1e2a7a5\r
+d2d4d7d5c2c4c7c6g1f3g8f6e2e3e7e6f1d3b8d7b1d2f8e7e1g1e8g8e3e4d5e4d2e4b7b6d1e2c8b7\r
+d2d4d7d5c2c4c7c6g1f3g8f6e2e3e7e6f1d3b8d7e1g1d5c4d3c4f8d6b1d2e8g8c4b3d6c7d2c4b7b6\r
+d2d4d7d5c2c4c7c6g1f3g8f6e2e3e7e6f1d3c6c5e1g1b8c6b1c3f8e7a2a3a7a5d4c5e7c5d1e2e8g8\r
+d2d4d7d5c2c4c7c6g1f3g8f6e2e3g7g6b1c3f8g7f1d3e8g8d1c2b8a6a2a3d5c4d3c4b7b5c4d3b5b4\r
+d2d4d7d5c2c4d5c4e2e3e7e5d4e5d8d1e1d1b8c6f1c4c6e5c4b5c7c6b5e2c8e6b1c3e8c8d1c2g8f6\r
+d2d4d7d5c2c4d5c4e2e3e7e5f1c4e5d4e3d4g8f6g1f3f8e7e1g1e8g8h2h3b8c6b1c3c6a5c4d3c8e6\r
+d2d4d7d5c2c4d5c4e2e4b8c6c1e3g8f6b1c3e7e5d4d5c6a5g1f3a7a6f3e5b7b5f1e2f8b4d1d4e8g8\r
+d2d4d7d5c2c4d5c4e2e4b8c6c1e3g8f6b1c3e7e5d4d5c6e7f1c4e7g6c4b5f6d7d1d2a7a6b5d3f8d6\r
+d2d4d7d5c2c4d5c4e2e4b8c6c1e3g8f6b1c3e7e5d4d5c6e7f1c4e7g6c4b5f6d7g1e2f8d6d1d2a7a6\r
+d2d4d7d5c2c4d5c4e2e4b8c6g1f3c8g4d4d5c6e5c1f4e5g6f4g3e7e5f1c4f8d6c4b5g4d7b5d7d8d7\r
+d2d4d7d5c2c4d5c4e2e4c7c5d4d5g8f6b1c3e7e6f1c4e6d5c3d5f6d5c4d5f8e7d1h5e8g8g1f3b8d7\r
+d2d4d7d5c2c4d5c4e2e4e7e5g1f3e5d4f1c4f8b4b1d2b8c6e1g1d8f6e4e5f6g6f3h4g6g4d2f3c8e6\r
+d2d4d7d5c2c4d5c4e2e4e7e5g1f3f8b4b1c3e5d4f3d4g8e7f1c4b8c6c1e3e8g8a2a3b4c3b2c3c6a5\r
+d2d4d7d5c2c4d5c4e2e4e7e5g1f3f8b4c1d2b4d2d1d2e5d4d2d4g8f6d4d8e8d8b1c3c8e6f3e5b8c6\r
+d2d4d7d5c2c4d5c4e2e4g8f6e4e5f6d5f1c4b8c6b1c3d5b6c4b5c8d7g1f3e7e6e1g1\r
+d2d4d7d5c2c4d5c4e2e4g8f6e4e5f6d5f1c4d5b6c4b3b8c6c1e3c8f5b1c3e7e6g1e2f8e7a2a3e8g8\r
+d2d4d7d5c2c4d5c4e2e4g8f6e4e5f6d5f1c4d5b6c4b3b8c6g1f3c8g4b3f7e8f7f3g5f7e8d1g4d8d4\r
+d2d4d7d5c2c4d5c4e2e4g8f6e4e5f6d5f1c4d5b6c4b3c7c5d4c5d8d1e1d1b6d7e5e6f7e6b3e6b8a6\r
+d2d4d7d5c2c4d5c4e2e4g8f6e4e5f6d5f1c4d5b6c4d3b8c6c1e3c6b4d3e4f7f5e5f6e7f6b1c3f6f5\r
+d2d4d7d5c2c4d5c4e2e4g8f6e4e5f6d5f1c4d5b6c4d3b8c6c1e3c6b4d3e4f7f5e5f6e7f6b1c3f6f5\r
+d2d4d7d5c2c4d5c4g1f3a7a6e2e3c8g4f1c4e7e6b1d2b8d7e1g1g8f6h2h3g4h5b2b3c7c5c4e2c5d4\r
+d2d4d7d5c2c4d5c4g1f3a7a6e2e3c8g4f1c4e7e6d1b3g4f3g2f3b7b5c4e2b8d7a2a4b5b4b1d2g8f6\r
+d2d4d7d5c2c4d5c4g1f3a7a6e2e3c8g4f1c4e7e6d1b3g4f3g2f3b7b5c4e2b8d7a2a4b5b4f3f4g8f6\r
+d2d4d7d5c2c4d5c4g1f3a7a6e2e3c8g4f1c4e7e6h2h3g4h5b1c3g8f6e1g1b8c6a2a3f8d6c4e2e8g8\r
+d2d4d7d5c2c4d5c4g1f3a7a6e2e3g8f6f1c4e7e6d1e2c7c5d4c5f8c5e1g1b7b5c4d3b8c6b1c3c8b7\r
+d2d4d7d5c2c4d5c4g1f3a7a6e2e3g8f6f1c4e7e6e1g1c7c5d1e2b7b5c4b3c8b7a2a4b8d7e3e4c5d4\r
+d2d4d7d5c2c4d5c4g1f3a7a6e2e3g8f6f1c4e7e6e1g1c7c5d1e2b8c6b1c3b7b5c4b3f8e7d4c5e7c5\r
+d2d4d7d5c2c4d5c4g1f3a7a6e2e3g8f6f1c4e7e6e1g1c7c5d4c5d8d1f1d1f8c5a2a3b7b5c4e2c8b7\r
+d2d4d7d5c2c4d5c4g1f3b8d7d1a4c7c6a4c4g8f6g2g3g7g6b1c3f8g7f1g2e8g8e1g1d8a5e2e4a5h5\r
+d2d4d7d5c2c4d5c4g1f3c7c5d4d5e7e6b1c3e6d5d1d5d8d5c3d5f8d6e2e4g8e7f1c4e7d5c4d5b8a6\r
+d2d4d7d5c2c4d5c4g1f3c7c5d4d5e7e6b1c3e6d5d1d5d8d5c3d5f8d6f3d2g8e7d2c4e7d5c4d6e8e7\r
+d2d4d7d5c2c4d5c4g1f3c7c5e2e3c5d4f1c4d8c7d1b3e7e6f3d4a7a6b1c3g8f6c1d2c8d7a1c1b8c6\r
+d2d4d7d5c2c4d5c4g1f3c7c5e2e3g8f6f1c4e7e6d1e2a7a6d4c5f8c5e1g1b8c6e3e4d8c7e4e5f6g4\r
+d2d4d7d5c2c4d5c4g1f3e7e6e2e3a7a6f1c4g8f6b1c3c7c5c4d3b8c6e1g1c5d4e3d4f8e7a2a3e8g8\r
+d2d4d7d5c2c4d5c4g1f3e7e6e2e3c7c5f1c4g8f6e1g1b8c6d1e2c5d4f1d1f8e7e3d4e8g8b1c3c6a5\r
+d2d4d7d5c2c4d5c4g1f3e7e6e2e3g8f6f1c4a7a6e1g1c7c5d4c5d8d1f1d1f8c5b1d2e8g8a2a3b7b5\r
+d2d4d7d5c2c4d5c4g1f3g8f6b1c3a7a6e2e4b7b5e4e5f6d5f3g5e7e6d1f3d8d7c3d5e6d5a2a3b8c6\r
+d2d4d7d5c2c4d5c4g1f3g8f6b1c3c7c5d4d5c8f5d1a4b8d7a4c4e7e6e2e4e6d5e4d5f8d6c1g5e8g8\r
+d2d4d7d5c2c4d5c4g1f3g8f6d1a4b8c6b1c3c8g4f3e5g4d7a4c4e7e6c1g5f8e7g5f6e7f6e5d7d8d7\r
+d2d4d7d5c2c4d5c4g1f3g8f6d1a4b8c6b1c3f6d5e2e4d5b6a4d1c8g4d4d5c6e5c1f4e5g6f4e3e7e6\r
+d2d4d7d5c2c4d5c4g1f3g8f6d1a4c7c6a4c4c8f5b1c3e7e6c4b3d8b6b3b6a7b6f3h4b6b5h4f5e6f5\r
+d2d4d7d5c2c4d5c4g1f3g8f6d1a4c7c6a4c4c8g4b1d2g7g6g2g3f8g7f1g2e8g8e1g1b8a6b2b3c6c5\r
+d2d4d7d5c2c4d5c4g1f3g8f6e2e3c7c5f1c4e7e6e1g1a7a6a2a4b8c6d1e2c5d4f1d1f8e7e3d4e8g8\r
+d2d4d7d5c2c4d5c4g1f3g8f6e2e3c7c5f1c4e7e6e1g1a7a6c4b3b8c6d1e2c5d4f1d1f8e7e3d4c6a5\r
+d2d4d7d5c2c4d5c4g1f3g8f6e2e3c7c5f1c4e7e6e1g1a7a6c4d3c5d4e3d4f8e7b1c3e8g8c1g5b7b5\r
+d2d4d7d5c2c4d5c4g1f3g8f6e2e3c7c5f1c4e7e6e1g1a7a6d1e2b8c6f1d1b7b5c4b3c5c4b3c2c6b4\r
+d2d4d7d5c2c4d5c4g1f3g8f6e2e3c7c5f1c4e7e6e1g1b8c6b1c3f8e7d4c5d8d1f1d1e7c5a2a3e8e7\r
+d2d4d7d5c2c4d5c4g1f3g8f6e2e3c8g4f1c4e7e6b1c3b8d7e1g1f8d6h2h3g4h5e3e4e6e5c4e2e8g8\r
+d2d4d7d5c2c4d5c4g1f3g8f6e2e3e7e6f1c4c7c5e1g1a7a6a2a4b8c6d1e2c5d4f1d1f8e7e3d4e8g8\r
+d2d4d7d5c2c4d5c4g1f3g8f6e2e3e7e6f1c4c7c5e1g1a7a6a2a4b8c6d1e2c5d4f1d1f8e7e3d4e8g8\r
+d2d4d7d5c2c4d5c4g1f3g8f6e2e3e7e6f1c4c7c5e1g1a7a6a2a4b8c6d1e2f8e7d4c5e7c5e3e4f6g4\r
+d2d4d7d5c2c4d5c4g1f3g8f6e2e3e7e6f1c4c7c5e1g1a7a6a2a4b8c6d1e2f8e7d4c5e7c5e3e4f6g4\r
+d2d4d7d5c2c4d5c4g1f3g8f6e2e3e7e6f1c4c7c5e1g1a7a6d1e2b7b5c4b3c8b7b1c3b8d7f1d1f8e7\r
+d2d4d7d5c2c4d5c4g1f3g8f6e2e3e7e6f1c4c7c5e1g1a7a6d1e2b7b5c4b3c8b7f1d1b8d7a2a4f8e7\r
+d2d4d7d5c2c4d5c4g1f3g8f6e2e3e7e6f1c4c7c5e1g1a7a6d1e2b7b5c4b3c8b7f1d1b8d7b1c3f8e7\r
+d2d4d7d5c2c4d5c4g1f3g8f6e2e3e7e6f1c4c7c5e1g1a7a6d1e2b8d7b1c3b7b5c4b3c8b7f1d1b5b4\r
+d2d4d7d5c2c4d5c4g1f3g8f6e2e3e7e6f1c4c7c5e1g1a7a6d1e2c5d4e3d4f8e7b1c3b7b5c4b3c8b7\r
+d2d4d7d5c2c4d5c4g1f3g8f6e2e3e7e6f1c4c7c5e1g1a7a6d4c5d8c7d1e2f8c5e3e4b8c6b1c3f6g4\r
+d2d4d7d5c2c4d5c4g1f3g8f6e2e3e7e6f1c4c7c5e1g1a7a6d4c5d8d1f1d1f8c5b2b3b7b5c4e2c8b7\r
+d2d4d7d5c2c4d5c4g1f3g8f6e2e3e7e6f1c4c7c5e1g1a7a6d4c5d8d1f1d1f8c5b2b3b8d7c1b2b7b5\r
+d2d4d7d5c2c4d5c4g1f3g8f6e2e3e7e6f1c4c7c5e1g1a7a6d4c5d8d1f1d1f8c5b2b3b8d7c1b2b7b6\r
+d2d4d7d5c2c4d5c4g1f3g8f6e2e3e7e6f1c4f8b4b1c3e8g8e1g1b7b6f3e5c8b7d1b3b4c3b2c3b7d5\r
+d2d4d7d5c2c4e7e6b1c3c7c5c4d5e6d5g1f3b8c6c1g5f8e7g5e7g8e7d4c5d8a5e2e3a5c5f1d3c8g4\r
+d2d4d7d5c2c4e7e6b1c3c7c5c4d5e6d5g1f3b8c6c1g5f8e7g5e7g8e7e2e3c8g4d4c5d8a5d1a4a5a4\r
+d2d4d7d5c2c4e7e6b1c3c7c5c4d5e6d5g1f3b8c6g2g3c5c4f1g2f8b4e1g1g8e7a2a3b4a5e2e4e8g8\r
+d2d4d7d5c2c4e7e6b1c3c7c5c4d5e6d5g1f3b8c6g2g3c5c4f1g2f8b4e1g1g8e7e2e4d5e4c3e4e8g8\r
+d2d4d7d5c2c4e7e6b1c3c7c5c4d5e6d5g1f3b8c6g2g3g8f6f1g2c5d4f3d4f8c5d4c6b7c6e1g1e8g8\r
+d2d4d7d5c2c4e7e6b1c3c7c5c4d5e6d5g1f3b8c6g2g3g8f6f1g2f8e7e1g1c8e6d4c5e7c5c1g5d5d4\r
+d2d4d7d5c2c4e7e6b1c3c7c5c4d5e6d5g1f3b8c6g2g3g8f6f1g2f8e7e1g1e8g8c1g5c5c4f3e5c8e6\r
+d2d4d7d5c2c4e7e6b1c3c7c5c4d5e6d5g1f3b8c6g2g3g8f6f1g2f8e7e1g1e8g8c1g5c5d4f3d4h7h6\r
+d2d4d7d5c2c4e7e6b1c3c7c5c4d5e6d5g1f3b8c6g2g3g8f6f1g2f8e7e1g1e8g8c1g5c5d4f3d4h7h6\r
+d2d4d7d5c2c4e7e6b1c3c7c5c4d5e6d5g1f3b8c6g2g3g8f6f1g2f8e7e1g1e8g8c1g5c5d4f3d4h7h6\r
+d2d4d7d5c2c4e7e6b1c3c7c5c4d5e6d5g1f3b8c6g2g3g8f6f1g2f8e7e1g1e8g8c1g5c8e6d4c5e7c5\r
+d2d4d7d5c2c4e7e6b1c3c7c5c4d5e6d5g1f3b8c6g2g3g8f6f1g2f8e7e1g1e8g8d4c5e7c5c1g5d5d4\r
+d2d4d7d5c2c4e7e6b1c3c7c5c4d5e6d5g1f3c5d4d1d4g8f6e2e4b8c6f1b5d5e4b5c6b7c6d4d8e8d8\r
+d2d4d7d5c2c4e7e6b1c3c7c5c4d5e6d5g1f3c8e6e2e4d5e4c3e4b8c6c1e3c5d4f3d4d8a5e4c3e8c8\r
+d2d4d7d5c2c4e7e6b1c3c7c5e2e3g8f6g1f3b8c6a2a3c5d4e3d4f8e7f1d3d5c4d3c4e8g8e1g1a7a6\r
+d2d4d7d5c2c4e7e6b1c3c7c5e2e3g8f6g1f3b8c6c4d5e6d5f1e2f8d6d4c5d6c5e1g1e8g8a2a3a7a5\r
+d2d4d7d5c2c4e7e6b1c3c7c5g1f3b8c6e2e3g8f6a2a3f8d6d4c5d6c5b2b4c5d6c1b2e8g8a1c1a7a5\r
+d2d4d7d5c2c4e7e6b1c3c7c5g1f3g8f6c4d5e6d5c1g5c8e6e2e3b8c6f1e2f8e7d4c5e7c5e1g1e8g8\r
+d2d4d7d5c2c4e7e6b1c3c7c6e2e3f7f5f2f4g8f6g1f3f8e7f1e2e8g8e1g1f6e4d1c2b8d7b2b3e4c3\r
+d2d4d7d5c2c4e7e6b1c3c7c6e2e3f7f5g1f3g8f6f1e2f8d6e1g1f6e4f3e5e8g8f2f3e4c3b2c3b7b6\r
+d2d4d7d5c2c4e7e6b1c3c7c6e2e3g8f6d1c2b8d7g1f3f8d6f1d3e8g8e1g1d5c4d3c4e6e5c3e4f6e4\r
+d2d4d7d5c2c4e7e6b1c3c7c6e2e3g8f6f2f3f8b4g1h3b8d7h3f4e8g8f1e2d5c4e2c4e6e5f4e2e5d4\r
+d2d4d7d5c2c4e7e6b1c3c7c6e2e3g8f6g1f3b8d7d1c2f8d6b2b3e8g8f1e2d5c4b3c4e6e5e1g1f8e8\r
+d2d4d7d5c2c4e7e6b1c3c7c6e2e3g8f6g1f3b8d7d1c2f8d6f1d3e8g8e1g1a7a6b2b3e6e5c4d5c6d5\r
+d2d4d7d5c2c4e7e6b1c3c7c6e2e3g8f6g1f3b8d7d1c2f8d6f1d3e8g8e1g1d5c4d3c4b7b5c4e2c8b7\r
+d2d4d7d5c2c4e7e6b1c3c7c6e2e3g8f6g1f3b8d7f1d3d5c4d3c4b7b5c4d3a7a6e3e4c6c5d4d5c5c4\r
+d2d4d7d5c2c4e7e6b1c3c7c6e2e3g8f6g1f3f8d6f1d3b8d7e1g1e8g8e3e4d5e4c3e4f6e4d3e4h7h6\r
+d2d4d7d5c2c4e7e6b1c3c7c6e2e4d5e4c3e4f8b4c1d2b4d2d1d2g8f6e4f6d8f6g1f3e8g8f1e2c6c5\r
+d2d4d7d5c2c4e7e6b1c3c7c6e2e4d5e4c3e4f8b4c1d2d8d4d2b4d4e4f1e2b8a6b4c3g8e7c3g7h8g8\r
+d2d4d7d5c2c4e7e6b1c3c7c6g1f3g8f6c1g5b8d7c4d5e6d5e2e3f8d6f1d3d7f8f3e5d8b6e1g1d6e5\r
+d2d4d7d5c2c4e7e6b1c3f7f5c1f4g8f6e2e3f8e7d1c2c7c6f1d3e8g8g1f3f6e4f4b8a8b8e1g1e7d6\r
+d2d4d7d5c2c4e7e6b1c3f8b4c4d5e6d5c1f4g8f6a1c1c7c6e2e3e8g8f1d3f8e8g1f3b8d7e1g1d7f8\r
+d2d4d7d5c2c4e7e6b1c3f8e7c4d5e6d5c1f4c7c6d1c2g7g6e1c1g8f6f2f3b8a6e2e4a6b4c2b3c8e6\r
+d2d4d7d5c2c4e7e6b1c3f8e7c4d5e6d5c1f4c7c6d1c2g7g6e2e3c8f5c2d2b8d7f2f3d7b6e3e4f5e6\r
+d2d4d7d5c2c4e7e6b1c3f8e7c4d5e6d5c1f4c7c6e2e3c8f5g1e2b8d7e2g3f5g6f1e2g8f6h2h4h7h5\r
+d2d4d7d5c2c4e7e6b1c3f8e7c4d5e6d5c1f4c7c6e2e3c8f5g2g4f5e6f1d3b8d7h2h3h7h5g4h5d7f6\r
+d2d4d7d5c2c4e7e6b1c3f8e7c4d5e6d5c1f4c7c6e2e3c8f5g2g4f5e6h2h3e7d6g1e2g8e7d1b3e6c8\r
+d2d4d7d5c2c4e7e6b1c3f8e7c4d5e6d5c1f4c7c6e2e3c8f5g2g4f5e6h2h3g8f6f1d3c6c5g1f3b8c6\r
+d2d4d7d5c2c4e7e6b1c3f8e7c4d5e6d5c1f4c7c6e2e3c8f5g2g4f5e6h2h3g8f6g1f3b8d7f1d3d7b6\r
+d2d4d7d5c2c4e7e6b1c3f8e7c4d5e6d5c1f4c7c6e2e3c8f5g2g4f5e6h2h4b8d7h4h5g8h6f1e2d7b6\r
+d2d4d7d5c2c4e7e6b1c3f8e7c4d5e6d5c1f4g8f6d1c2e8g8e2e3c7c5d4c5e7c5g1f3b8c6f1e2d5d4\r
+d2d4d7d5c2c4e7e6b1c3f8e7c4d5e6d5c1f4g8f6e2e3e8g8f1d3c7c5g1f3b8c6e1g1c8g4d4c5e7c5\r
+d2d4d7d5c2c4e7e6b1c3f8e7c4d5e6d5c1f4g8f6e2e3e8g8g1f3c8f5h2h3c7c6g2g4f5g6f3e5f6d7\r
+d2d4d7d5c2c4e7e6b1c3f8e7g1f3g8f6c1f4e8g8e2e3c7c5d4c5e7c5d1c2b8c6a1d1d8a5a2a3c5e7\r
+d2d4d7d5c2c4e7e6b1c3f8e7g1f3g8f6c1g5e8g8e2e3b8d7a1c1a7a6c4c5c7c6f1d3b7b6c5b6c6c5\r
+d2d4d7d5c2c4e7e6b1c3f8e7g1f3g8f6c1g5e8g8e2e3h7h6g5h4b7b6f1e2c8b7h4f6e7f6c4d5e6d5\r
+d2d4d7d5c2c4e7e6b1c3f8e7g1f3g8f6c1g5e8g8e2e3h7h6g5h4b7b6h4f6e7f6c4d5e6d5d1d2c8e6\r
+d2d4d7d5c2c4e7e6b1c3f8e7g1f3g8f6c1g5h7h6g5f6e7f6e2e3e8g8a1c1c7c6f1d3b8d7e1g1d5c4\r
+d2d4d7d5c2c4e7e6b1c3f8e7g1f3g8f6c1g5h7h6g5f6e7f6e2e3e8g8a1c1c7c6f1d3b8d7e1g1d5c4\r
+d2d4d7d5c2c4e7e6b1c3f8e7g1f3g8f6c1g5h7h6g5f6e7f6e2e3e8g8a1c1c7c6f1d3b8d7e1g1d5c4\r
+d2d4d7d5c2c4e7e6b1c3f8e7g1f3g8f6c1g5h7h6g5f6e7f6e2e3e8g8d1c2b8a6a1d1c7c5d4c5d8a5\r
+d2d4d7d5c2c4e7e6b1c3f8e7g1f3g8f6c1g5h7h6g5f6e7f6e2e3e8g8d1d2d5c4f1c4b8d7e1g1c7c5\r
+d2d4d7d5c2c4e7e6b1c3f8e7g1f3g8f6c1g5h7h6g5h4b8d7e2e3e8g8a1c1c7c6f1d3d5c4d3c4b7b5\r
+d2d4d7d5c2c4e7e6b1c3f8e7g1f3g8f6c1g5h7h6g5h4e8g8e2e3b7b6f1e2c8b7h4f6e7f6c4d5e6d5\r
+d2d4d7d5c2c4e7e6b1c3f8e7g1f3g8f6e2e3e8g8a2a3b7b6c4d5e6d5f1d3c7c5f3e5c8b7c3e2b8c6\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1f4c7c5e2e3c5d4e3d4d5c4f1c4b8c6g1f3f8e7e1g1e8g8f1e1c8d7\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5b8d7e2e3c7c6a2a3f8e7g1f3e8g8f1d3d5c4d3c4f6d5g5e7d8e7\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5b8d7e2e3c7c6a2a3f8e7g1f3e8g8f1d3d5c4d3c4f6d5g5e7d8e7\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5b8d7e2e3c7c6d1c2d8a5c4d5f6d5e3e4d5c3g5d2a5a4c2c3a7a5\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5b8d7e2e3c7c6f1d3d8a5g5h4d5c4d3c4b7b5c4b3c8b7g1f3c6c5\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5b8d7e2e3c7c6f1d3d8a5g5h4d5c4d3c4b7b5c4d3c8b7g1e2a7a6\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5b8d7e2e3c7c6g1f3d8a5f3d2f8b4d1c2d5c4g5f6d7f6d2c4a5c7\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5b8d7e2e3c7c6g1f3d8a5f3d2f8b4d1c2d5c4g5f6d7f6d2c4a5c7\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5b8d7e2e3f8e7g1f3e8g8a1c1a7a6a2a3b7b6c4d5e6d5f1d3c8b7\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5b8d7e2e3f8e7g1f3e8g8a1c1a7a6a2a3h7h6g5h4d5c4f1c4b7b5\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5b8d7e2e3f8e7g1f3e8g8a1c1a7a6a2a3h7h6g5h4d5c4f1c4c7c5\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5b8d7e2e3f8e7g1f3e8g8a1c1a7a6a2a3h7h6g5h4d5c4f1c4c7c5\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5b8d7e2e3f8e7g1f3e8g8a1c1a7a6a2a3h7h6g5h4d5c4f1c4c7c5\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5b8d7e2e3f8e7g1f3e8g8a1c1a7a6c4d5e6d5f1d3c7c6d1c2f8e8\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5b8d7e2e3f8e7g1f3e8g8a1c1a7a6c4d5e6d5f1d3c7c6d1c2h7h6\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5b8d7e2e3f8e7g1f3e8g8a1c1a7a6c4d5e6d5f1d3c7c6e1g1f6e8\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5c7c5c4d5e6d5g5f6g7f6e2e3c8e6d1b3d8d7f1b5b8c6e3e4e8c8\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5c7c5e2e3c5d4e3d4f8e7g1f3e8g8f1d3d5c4d3c4b8c6e1g1b7b6\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5c7c6e2e3b8d7c4d5e6d5f1d3f8e7g1f3e8g8d1c2f8e8e1g1d7f8\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5f8e7c4d5f6d5g5e7d8e7e2e4d5c3b2c3c7c5g1f3e8g8f1d3c5d4\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5f8e7e2e3b8d7g1f3e8g8a1c1h7h6g5h4c7c6f1d3d5c4d3c4b7b5\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5f8e7e2e3b8d7g1f3e8g8d1b3c7c6f1e2d5c4b3c4f6d5g5f4d5f4\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5f8e7e2e3e8g8a1c1h7h6g5h4b7b6c4d5f6d5c3d5e6d5h4e7d8e7\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5f8e7e2e3e8g8d1b3d5c4f1c4c7c5d4c5b8d7c5c6b7c6g1f3f6d5\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5f8e7e2e3e8g8d1b3d5c4f1c4c7c5d4c5b8d7g1f3d7c5b3c2a7a6\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5f8e7e2e3e8g8d1b3d5c4f1c4c7c5d4c5d8a5g1f3a5c5e1g1b8c6\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5f8e7e2e3e8g8d1b3d5c4f1c4c7c5d4c5d8a5g1f3a5c5e1g1b8c6\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5f8e7e2e3e8g8d1b3d5c4f1c4c7c5d4c5d8a5g1f3a5c5e1g1b8c6\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5f8e7e2e3e8g8d1b3d5c4f1c4c7c5d4c5f6d7g5e7d8e7g1f3d7c5\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5f8e7e2e3e8g8f1d3b8d7g1f3b7b6c4d5e6d5e1g1c8b7d1e2c7c5\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5f8e7e2e3e8g8g1f3b8d7d1c2c7c5a1d1d8a5f1d3h7h6g5h4c5d4\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5f8e7e2e3e8g8g1f3b8d7d1c2c7c6f1d3d5c4d3c4f6d5g5e7d8e7\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5f8e7e2e3e8g8g1f3h7h6g5h4b7b6c4d5f6d5h4e7d8e7a1c1d5f6\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5f8e7e2e3e8g8g1f3h7h6g5h4b7b6f1e2c8b7h4f6e7f6c4d5e6d5\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5f8e7e2e3e8g8g1f3h7h6g5h4b7b6f1e2c8b7h4f6e7f6c4d5e6d5\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5f8e7e2e3e8g8g1f3h7h6g5h4b7b6f1e2c8b7h4f6e7f6c4d5e6d5\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5f8e7e2e3f6e4g5e7d8e7c4d5e4c3b2c3e6d5d1b3c7c6c3c4e8g8\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5f8e7e2e3f6e4g5e7d8e7f1d3e4c3b2c3b8d7g1f3e6e5d4e5d5c4\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5f8e7e2e3f6e4g5e7d8e7f1d3e4c3b2c3b8d7g1f3e8g8e1g1f8d8\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5f8e7e2e3h7h6g5h4e8g8a1c1b7b6h4f6e7f6c4d5e6d5d1f3c8e6\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5f8e7g1f3b8d7e2e3e8g8c4c5f6e4c3e4d5e4g5e7d8e7f3d2d7f6\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5f8e7g1f3e8g8c4c5b7b6b2b4b6c5d4c5a7a5a2a3d5d4g5f6g7f6\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5f8e7g1f3e8g8e2e3b8d7a1c1c7c6f1d3d5c4d3c4f6d5g5e7d8e7\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5f8e7g1f3e8g8e2e3b8d7c4c5c7c6f1d3h7h6g5h4e6e5d4e5f6e4\r
+d2d4d7d5c2c4e7e6b1c3g8f6c1g5f8e7g1f3e8g8e2e3d5c4f1c4b8d7e1g1c7c5d1e2h7h6g5h4d7b6\r
+d2d4d7d5c2c4e7e6b1c3g8f6c4d5e6d5c1g5c7c6d1c2b8a6e2e3a6b4c2d2c8f5a1c1a7a5a2a3b4a6\r
+d2d4d7d5c2c4e7e6b1c3g8f6c4d5e6d5c1g5c7c6d1c2f8e7e2e3b8d7f1d3f6h5g5e7d8e7g1e2d7b6\r
+d2d4d7d5c2c4e7e6b1c3g8f6c4d5e6d5c1g5c7c6e2e3c8f5d1f3f5g6g5f6d8f6f3f6g7f6a1d1b8d7\r
+d2d4d7d5c2c4e7e6b1c3g8f6c4d5e6d5c1g5f8e7e2e3b8d7d1c2e8g8f1d3f8e8g1f3d7f8e1g1c7c6\r
+d2d4d7d5c2c4e7e6b1c3g8f6c4d5e6d5c1g5f8e7e2e3e8g8f1d3b8d7g1e2f8e8e1g1d7f8b2b4a7a6\r
+d2d4d7d5c2c4e7e6b1c3g8f6c4d5e6d5c1g5f8e7e2e3h7h6g5h4e8g8f1d3b7b6g1f3c8b7e1g1c7c5\r
+d2d4d7d5c2c4e7e6b1c3g8f6c4d5e6d5c1g5f8e7e2e3h7h6g5h4e8g8f1d3b7b6g1f3c8b7e1g1c7c5\r
+d2d4d7d5c2c4e7e6b1c3g8f6c4d5e6d5c1g5f8e7e2e3h7h6g5h4e8g8f1d3b7b6g1f3c8b7e1g1f6e4\r
+d2d4d7d5c2c4e7e6b1c3g8f6e2e3c7c5g1f3b8c6a2a3d5c4f1c4c5d4e3d4f8e7e1g1e8g8c1e3c8d7\r
+d2d4d7d5c2c4e7e6b1c3g8f6e2e3c7c5g1f3b8c6d4c5f8c5a2a3a7a5f1e2e8g8e1g1d5c4d1c2e6e5\r
+d2d4d7d5c2c4e7e6b1c3g8f6f2f3b8c6e2e3f8e7g1h3e8g8h3f2f8e8f1e2e7b4c1d2e6e5d4e5e8e5\r
+d2d4d7d5c2c4e7e6b1c3g8f6f2f3c7c5d4c5f8c5c4d5f6d5e2e4d5c3d1d8e8d8b2c3b8c6g1h3d8c7\r
+d2d4d7d5c2c4e7e6b1c3g8f6g1f3b8d7c1g5c7c6e2e3d8a5f3d2f8b4d1c2e8g8g5h4c6c5d2b3a5a4\r
+d2d4d7d5c2c4e7e6b1c3g8f6g1f3b8d7c1g5f8e7e2e3e8g8a1c1f8e8f1d3d5c4d3c4c7c5e1g1a7a6\r
+d2d4d7d5c2c4e7e6b1c3g8f6g1f3b8d7e2e3f8e7b2b3e8g8f1d3b7b6e1g1c8b7c1b2a7a6a1c1f6e4\r
+d2d4d7d5c2c4e7e6b1c3g8f6g1f3b8d7e2e3f8e7f1d3e8g8e1g1c7c5d1c2b7b6c4d5e6d5b2b3c8b7\r
+d2d4d7d5c2c4e7e6b1c3g8f6g1f3b8d7e2e3f8e7f1d3e8g8e1g1d5c4d3c4c7c5d1e2a7a6f1d1b7b5\r
+d2d4d7d5c2c4e7e6b1c3g8f6g1f3d5c4e2e3c7c5f1c4c5d4e3d4f8e7e1g1e8g8d1e2b8d7c4b3d7b6\r
+d2d4d7d5c2c4e7e6b1c3g8f6g1f3f8b4a2a3b4c3b2c3d5c4d1a4b8c6c1g5d8d5g5f6g7f6g2g3c8d7\r
+d2d4d7d5c2c4e7e6b1c3g8f6g1f3f8e7c1f4c7c5d4c5b8a6e2e3a6c5c4d5e6d5f1b5c8d7b5d7d8d7\r
+d2d4d7d5c2c4e7e6b1c3g8f6g1f3f8e7c1g5h7h6g5f6e7f6d1b3c7c6e1c1d5c4b3c4b7b5c4b3a7a5\r
+d2d4d7d5c2c4e7e6b1c3g8f6g1f3f8e7c4d5e6d5c1f4c7c6d1c2g7g6e2e3c8f5f1d3f5d3c2d3b8d7\r
+d2d4d7d5c2c4e7e6b1c3g8f6g1f3f8e7e2e3e8g8f1d3c7c5d4c5d5c4d3c4d8d1e1d1b8c6a2a3e7c5\r
+d2d4d7d5c2c4e7e6b1c3g8f6g1f3f8e7e2e3e8g8f1d3c7c5d4c5d5c4d3c4d8d1e1d1b8c6a2a3e7c5\r
+d2d4d7d5c2c4e7e6b1c3g8f6g1f3f8e7e2e3e8g8f1d3c7c5e1g1c5d4e3d4d5c4d3c4b8d7c4b3d7b6\r
+d2d4d7d5c2c4e7e6g1f3b8d7b1c3g8f6c1g5f8e7e2e3e8g8a1c1c7c6d1c2a7a6a2a3h7h6g5h4f8e8\r
+d2d4d7d5c2c4e7e6g1f3c7c5c4d5e6d5g2g3b8c6f1g2g8f6e1g1f8e7b1c3e8g8c1e3c8e6d4c5f6g4\r
+d2d4d7d5c2c4e7e6g1f3c7c5c4d5e6d5g2g3b8c6f1g2g8f6e1g1f8e7c1e3c5c4f3e5e8g8b2b3c4b3\r
+d2d4d7d5c2c4e7e6g1f3c7c5c4d5e6d5g2g3g8f6f1g2f8e7e1g1e8g8b1c3b8c6c1g5c5d4f3d4h7h6\r
+d2d4d7d5c2c4e7e6g1f3c7c5c4d5e6d5g2g3g8f6f1g2f8e7e1g1e8g8b1c3b8c6c1g5c5d4f3d4h7h6\r
+d2d4d7d5c2c4e7e6g1f3c7c5c4d5e6d5g2g3g8f6f1g2f8e7e1g1e8g8b1c3b8c6c1g5c5d4f3d4h7h6\r
+d2d4d7d5c2c4e7e6g1f3c7c6b1c3d5c4a2a4f8b4e2e3b7b5c1d2a7a5a4b5b4c3d2c3c6b5b2b3c8b7\r
+d2d4d7d5c2c4e7e6g1f3c7c6b1d2f7f5g2g3f8d6f1g2b8d7e1g1d8f6c4d5e6d5d2b3g8e7c1f4e8g8\r
+d2d4d7d5c2c4e7e6g1f3c7c6d1c2g8f6e2e3f6e4b1c3f7f5f3e5b8d7e5d3f8d6d3f4d7f6f2f3e4c3\r
+d2d4d7d5c2c4e7e6g1f3c7c6d1c2g8f6g2g3g7g6f1g2f8g7e1g1e8g8f1d1b8d7b1d2f8e8b2b3b7b6\r
+d2d4d7d5c2c4e7e6g1f3c7c6e2e3f7f5f1d3g8f6e1g1f8d6b2b3d8e7c1b2e8g8f3e5b7b6c4d5c6d5\r
+d2d4d7d5c2c4e7e6g1f3c7c6g2g3f7f5f1g2g8f6e1g1f8e7b2b3e8g8c1a3b7b6a3e7d8e7f3e5c8b7\r
+d2d4d7d5c2c4e7e6g1f3g8f6b1c3b8d7c1g5f8e7e2e3e8g8a1c1b7b6c4d5e6d5d1a4c7c5f1a6h7h6\r
+d2d4d7d5c2c4e7e6g1f3g8f6b1c3b8d7c4d5e6d5c1g5f8e7e2e3c7c6d1c2d7f8f1d3f8e6h2h4h7h6\r
+d2d4d7d5c2c4e7e6g1f3g8f6b1c3c7c5c1g5c5d4f3d4d5c4e2e3d8b6g5f6g7f6f1c4c8d7e1g1b8c6\r
+d2d4d7d5c2c4e7e6g1f3g8f6b1c3c7c6e2e3b8d7f1d3f8b4a2a3b4a5d1c2d8e7c1d2d5c4d3c4e6e5\r
+d2d4d7d5c2c4e7e6g1f3g8f6b1c3c7c6e2e3b8d7f1d3f8b4a2a3b4a5d1c2d8e7c1d2d5c4d3c4e6e5\r
+d2d4d7d5c2c4e7e6g1f3g8f6b1c3c7c6e2e3b8d7f1d3f8b4e1g1e8g8c1d2d8e7d1b3d5c4b3c4b4d6\r
+d2d4d7d5c2c4e7e6g1f3g8f6b1c3f8b4c1g5b8d7c4d5e6d5a1c1c7c6e2e3d8a5d1b3f6e4f1d3e4g5\r
+d2d4d7d5c2c4e7e6g1f3g8f6b1c3f8b4c1g5b8d7c4d5e6d5d1c2e8g8a2a3b4c3b2c3c7c5e2e3d8a5\r
+d2d4d7d5c2c4e7e6g1f3g8f6b1c3f8b4c1g5b8d7c4d5e6d5d1c2e8g8a2a3b4e7e2e3c7c5d4c5d7c5\r
+d2d4d7d5c2c4e7e6g1f3g8f6b1c3f8b4c1g5b8d7c4d5e6d5d1c2e8g8a2a3b4e7e2e3c7c5f1e2b7b6\r
+d2d4d7d5c2c4e7e6g1f3g8f6b1c3f8e7c1g5e8g8e2e3h7h6g5h4f6e4h4e7d8e7d1c2e4c3c2c3d5c4\r
+d2d4d7d5c2c4e7e6g1f3g8f6b1c3f8e7c1g5h7h6g5f6e7f6e2e3e8g8a1c1a7a6c4d5e6d5f1d3c7c6\r
+d2d4d7d5c2c4e7e6g1f3g8f6b1c3f8e7c1g5h7h6g5f6e7f6e2e3e8g8d1d2b8c6a1c1a7a6f1e2d5c4\r
+d2d4d7d5c2c4e7e6g1f3g8f6b1c3f8e7c1g5h7h6g5h4e8g8e2e3b7b6a1c1c8b7f1e2d5c4e2c4b8d7\r
+d2d4d7d5c2c4e7e6g1f3g8f6c1g5d5c4d1a4b8d7b1d2c7c5d2c4a7a6g5f6g7f6d4c5f8c5a4d1b7b5\r
+d2d4d7d5c2c4e7e6g1f3g8f6c1g5f8e7b1c3e8g8e2e3h7h6g5f4c7c5d4c5e7c5c4d5f6d5c3d5e6d5\r
+d2d4d7d5c2c4e7e6g1f3g8f6c1g5f8e7b1c3h7h6g5h4e8g8e2e3b7b6d1b3c8b7h4f6e7f6c4d5e6d5\r
+d2d4d7d5c2c4e7e6g1f3g8f6c4d5e6d5b1c3c7c6c1g5h7h6g5h4c8f5d1b3g7g5h4g3d8b6e2e3b8a6\r
+d2d4d7d5c2c4e7e6g1f3g8f6c4d5e6d5c1g5c7c6b1c3h7h6g5h4c8f5d1b3g7g5h4g3d8b6e2e3f6e4\r
+d2d4d7d5c2c4e7e6g1f3g8f6g2g3d5c4f1g2c7c5d1a4c8d7a4c4d7c6d4c5b8d7c1e3c6d5c4a4d5c6\r
+d2d4d7d5c2c4e7e6g1f3g8f6g2g3f8e7f1g2c7c6d1c2e8g8e1g1b7b6b1d2c8b7e2e4d5e4d2e4b8d7\r
+d2d4d7d5c2c4e7e6g1f3g8f6g2g3f8e7f1g2e8g8e1g1d5c4d1c2a7a6c2c4b7b5c4c2c8b7c1d2b7e4\r
+d2d4d7d5c2c4e7e6g2g3g8f6f1g2f8e7g1f3b8d7e1g1e8g8d1c2c7c6f1d1b7b6b2b3c8b7b1c3a8c8\r
+d2d4d7d5c2c4e7e6g2g3g8f6f1g2f8e7g1f3e8g8e1g1d5c4b1d2c7c5d4c5b8c6d1c2e7c5d2c4d8e7\r
+d2d4d7d5c2c4g8f6b1c3e7e6e2e3b8d7g1f3f8b4f1d3d5c4d3c4f6e4d1c2e4c3b2c3b4d6e1g1e8g8\r
+d2d4d7d5c2c4g8f6c4d5f6d5e2e4d5f6b1c3e7e5d4e5d8d1e1d1f6g4c3d5e8d7g1h3c7c6d5c3g4e5\r
+d2d4d7d5e2e3e7e6f1d3c7c5b2b3b8c6g1f3g8f6e1g1c8d7c1b2a8c8c2c3f8d6b1d2e6e5d4e5c6e5\r
+d2d4d7d5e2e3g8f6c2c4e7e6b1c3f8e7g1f3e8g8f1e2d5c4e2c4c7c5e1g1b8c6d4c5e7c5d1d8f8d8\r
+d2d4d7d5g1f3b8c6c1f4c8f5e2e3e7e6f1d3g8e7e1g1f5d3d1d3e7g6f4g3f8d6g3d6c7d6b1d2e8g8\r
+d2d4d7d5g1f3b8c6c2c4c8g4c4d5g4f3g2f3d8d5e2e3e7e5b1c3f8b4c1d2b4c3b2c3d5d6a1b1b7b6\r
+d2d4d7d5g1f3c7c5c2c4c5d4c4d5g8f6d1a4d8d7a4d4d7d5b1c3d5d4f3d4c8d7d4b5e8d8c1e3b8c6\r
+d2d4d7d5g1f3c7c5c2c4d5c4d4d5e7e6b1c3e6d5d1d5d8d5c3d5f8d6f3d2g8e7d2c4e7d5c4d6e8e7\r
+d2d4d7d5g1f3c7c5c2c4d5c4e2e3e7e6f1c4g8f6e1g1a7a6c4b3b8c6d1e2f8e7f1d1c5d4e3d4c6a5\r
+d2d4d7d5g1f3c7c5c2c4e7e6c4d5e6d5b1c3b8c6g2g3g8f6f1g2f8e7e1g1e8g8c1g5c8e6d4c5e7c5\r
+d2d4d7d5g1f3c7c5c2c4e7e6c4d5e6d5g2g3g8f6f1g2f8e7e1g1e8g8b1c3b8c6c1g5c5d4f3d4h7h6\r
+d2d4d7d5g1f3c7c5c2c4e7e6c4d5e6d5g2g3g8f6f1g2f8e7e1g1e8g8b1c3b8c6c1g5c5d4f3d4h7h6\r
+d2d4d7d5g1f3c7c5c2c4e7e6c4d5e6d5g2g3g8f6f1g2f8e7e1g1e8g8b1c3b8c6c1g5c5d4f3d4h7h6\r
+d2d4d7d5g1f3c7c5c2c4e7e6c4d5e6d5g2g3g8f6f1g2f8e7e1g1e8g8b1c3b8c6c1g5c5d4f3d4h7h6\r
+d2d4d7d5g1f3c7c5d4c5e7e6e2e4f8c5e4d5e6d5f1b5b8c6e1g1g8f6b1c3e8g8c1g5c5e7g5f6e7f6\r
+d2d4d7d5g1f3c7c6c1g5h7h6g5h4d8b6b2b3b8d7e2e3e7e5f1e2e5e4f3d2c6c5d4c5d7c5b1c3g7g5\r
+d2d4d7d5g1f3c7c6c2c4d5c4e2e3c8g4f1c4e7e6b1c3b8d7h2h3g4h5a2a3g8f6e3e4f8e7e1g1e8g8\r
+d2d4d7d5g1f3c7c6c2c4e7e6e2e3f7f5f1e2g8f6e1g1f8d6b2b3d8e7c1b2b8d7f3e5e8g8b1d2g7g5\r
+d2d4d7d5g1f3c7c6c2c4e7e6e2e3g8f6f1d3c6c5e1g1d5c4d3c4a7a6f3e5d8c7b1d2b7b5c4e2c5d4\r
+d2d4d7d5g1f3c7c6c2c4g8f6b1c3e7e6e2e3b8d7d1c2f8d6f1d3e8g8e1g1d5c4d3c4a7a6f1d1b7b5\r
+d2d4d7d5g1f3c7c6c2c4g8f6b1c3e7e6e2e3b8d7d1c2f8d6f1d3e8g8e1g1d5c4d3c4a7a6f1d1b7b5\r
+d2d4d7d5g1f3c8f5c2c4e7e6c4d5e6d5d1b3b8c6c1g5f8e7g5e7g8e7e2e3d8d6b1d2e8g8a1c1a7a5\r
+d2d4d7d5g1f3c8f5c2c4e7e6d1b3b8c6c1d2d5c4b3b7g8e7b7b5a8b8b5a4b8b2b1a3d8d7a3c4b2b8\r
+d2d4d7d5g1f3e7e6c2c4a7a6c4c5b7b6c5b6c7c5b1c3b8d7c3a4c5c4c1d2f8d6b2b3c8b7e2e3c4b3\r
+d2d4d7d5g1f3e7e6c2c4c7c5c4d5e6d5b1c3b8c6g2g3g8f6f1g2c8e6e1g1f8e7d4c5e7c5c1g5d5d4\r
+d2d4d7d5g1f3e7e6c2c4d5c4e2e3c7c5f1c4g8f6e1g1a7a6e3e4b7b5c4d3c5d4a2a4b5a4e4e5f6d5\r
+d2d4d7d5g1f3e7e6c2c4f8e7b1c3g8f6c1g5h7h6g5h4e8g8e2e3b7b6f1d3c8b7e1g1b8d7a1c1c7c5\r
+d2d4d7d5g1f3e7e6c2c4g8f6c1g5b8d7e2e3f8e7b1c3e8g8a1c1f8e8d1c2c7c6f1d3d5c4d3c4f6d5\r
+d2d4d7d5g1f3e7e6c2c4g8f6c1g5f8e7e2e3b8d7b1c3e8g8a1c1b7b6c4d5e6d5f1b5c8b7d1a4a7a6\r
+d2d4d7d5g1f3e7e6c2c4g8f6c1g5f8e7e2e3b8d7b1c3e8g8a1c1c7c6d1c2c6c5c1d1d8a5c4d5f6d5\r
+d2d4d7d5g1f3e7e6g2g3c7c5f1g2c5d4e1g1g8f6f3d4e6e5d4f3b8c6c2c4d5d4e2e3f8c5e3d4c5d4\r
+d2d4d7d5g1f3e7e6g2g3c7c5f1g2c5d4e1g1g8f6f3d4e6e5d4f3b8c6c2c4d5d4e2e3f8c5e3d4c5d4\r
+d2d4d7d5g1f3e7e6g2g3c7c5f1g2g8f6e1g1c5d4f3d4e6e5d4f3b8c6c2c4d5d4e2e3d4d3b1c3f8b4\r
+d2d4d7d5g1f3g8f6c1f4e7e6e2e3f8e7f1d3c7c5c2c3b8c6b1d2a7a6h2h3b7b6f3e5c8b7d1e2f6d7\r
+d2d4d7d5g1f3g8f6c2c4c7c6b1c3d5c4a2a4c8f5e2e3e7e6f1c4f8b4e1g1b8d7d1e2e8g8e3e4f5g6\r
+d2d4d7d5g1f3g8f6c2c4c7c6b1c3e7e6c1g5b8d7e2e3d8a5c4d5f6d5d1d2f8b4a1c1e6e5a2a3b4d6\r
+d2d4d7d5g1f3g8f6c2c4c7c6b1c3e7e6c1g5b8d7e2e3d8a5c4d5f6d5d1d2f8b4a1c1e8g8f1d3e6e5\r
+d2d4d7d5g1f3g8f6c2c4c7c6b1c3e7e6c1g5b8d7e2e3d8a5f3d2f8b4d1c2e8g8a2a3d5c4g5f6d7f6\r
+d2d4d7d5g1f3g8f6c2c4c7c6b1c3e7e6c1g5b8d7e2e3d8a5f3d2f8b4d1c2e8g8f1e2e6e5g5f6d7f6\r
+d2d4d7d5g1f3g8f6c2c4c7c6b1c3e7e6c1g5d5c4e2e4b7b5e4e5h7h6g5h4g7g5f3g5h6g5h4g5f8e7\r
+d2d4d7d5g1f3g8f6c2c4c7c6b1c3e7e6c1g5h7h6g5f6d8f6e2e3b8d7f1d3d5c4d3c4f8d6e1g1f6e7\r
+d2d4d7d5g1f3g8f6c2c4c7c6b1c3e7e6d1b3b8d7c1g5d8a5g5d2a5b6e2e3d5c4b3c2f8d6f1c4e6e5\r
+d2d4d7d5g1f3g8f6c2c4c7c6b1c3e7e6e2e3b8d7d1c2f8d6f1d3e8g8e1g1d5c4d3c4a7a6f1d1b7b5\r
+d2d4d7d5g1f3g8f6c2c4c7c6b1c3g7g6c1g5f8g7e2e3e8g8f1d3c8e6d1e2b8d7e1g1h7h6g5h4e6g4\r
+d2d4d7d5g1f3g8f6c2c4c7c6e2e3c8f5b1c3e7e6f1d3f5d3d1d3b8d7e1g1f8d6e3e4d5e4c3e4f6e4\r
+d2d4d7d5g1f3g8f6c2c4c7c6e2e3c8f5d1b3d8c7c4d5c6d5f1b5b8c6c1d2e7e6e1g1f8d6d2b4e8g8\r
+d2d4d7d5g1f3g8f6c2c4c7c6e2e3c8f5f1d3f5d3d1d3e7e6e1g1b8d7b2b3f6e4f3d2d8h4g2g3h4h3\r
+d2d4d7d5g1f3g8f6c2c4d5c4b1c3a7a6a2a4c8f5e2e3e7e6f1c4f8b4e1g1e8g8d1e2f5g4f1d1b8d7\r
+d2d4d7d5g1f3g8f6c2c4d5c4b1c3a7a6d1a4b7b5a4c2b8c6e2e4e7e6c1g5c6d4f3d4d8d4a1d1d4c5\r
+d2d4d7d5g1f3g8f6c2c4d5c4b1c3c7c6a2a4c8f5e2e3e7e6f1c4f8b4e1g1b8d7d1e2f5g6e3e4b4c3\r
+d2d4d7d5g1f3g8f6c2c4d5c4b1c3c7c6a2a4c8f5e2e3e7e6f1c4f8b4e1g1b8d7f3h4e8g8h4f5e6f5\r
+d2d4d7d5g1f3g8f6c2c4d5c4b1c3c7c6a2a4c8f5f3e5e7e6f2f3f8b4e2e4f5e4f3e4f6e4c1d2d8d4\r
+d2d4d7d5g1f3g8f6c2c4d5c4b1c3c7c6a2a4c8g4f3e5g4h5g2g3e7e6f1g2f8b4e5c4f6d5d1b3b8a6\r
+d2d4d7d5g1f3g8f6c2c4d5c4b1c3e7e6e2e4f8b4c1g5c7c5f1c4c5d4f3d4d8a5g5d2a5c5c4b5c8d7\r
+d2d4d7d5g1f3g8f6c2c4d5c4d1a4c7c6a4c4c8f5b1c3e7e6g2g3b8d7f1g2f5c2e2e3f8e7e1g1e8g8\r
+d2d4d7d5g1f3g8f6c2c4d5c4e2e3c8g4f1c4e7e6e1g1b8d7b1c3f8d6e3e4e6e5d4e5d7e5c4e2g4f3\r
+d2d4d7d5g1f3g8f6c2c4d5c4e2e3e7e6f1c4c7c5e1g1a7a6a2a4b8c6d1e2c5d4f1d1f8e7e3d4e8g8\r
+d2d4d7d5g1f3g8f6c2c4d5c4e2e3e7e6f1c4c7c5e1g1a7a6a2a4b8c6d1e2c5d4f1d1f8e7e3d4e8g8\r
+d2d4d7d5g1f3g8f6c2c4d5c4e2e3e7e6f1c4c7c5e1g1a7a6c4b3b8c6b1c3b7b5d1e2c6a5d4c5a5b3\r
+d2d4d7d5g1f3g8f6c2c4e7e6b1c3b8d7c1g5f8e7e2e3e8g8a1c1a7a6a2a3c7c5d4c5d7c5c4d5e6d5\r
+d2d4d7d5g1f3g8f6c2c4e7e6b1c3c7c6c1g5d5c4e2e4b7b5e4e5h7h6g5h4g7g5f3g5f6d5g5f7d8h4\r
+d2d4d7d5g1f3g8f6c2c4e7e6b1c3c7c6e2e3b8d7f1d3d5c4d3c4b7b5c4d3a7a6e3e4c6c5e4e5c5d4\r
+d2d4d7d5g1f3g8f6c2c4e7e6b1c3f8e7c1f4e8g8e2e3c7c5d4c5e7c5f1e2d5c4e2c4a7a6d1e2b7b5\r
+d2d4d7d5g1f3g8f6c2c4e7e6b1c3f8e7c1g5h7h6g5f6e7f6e2e3e8g8d1b3c7c6a1d1b8d7f1d3b7b6\r
+d2d4d7d5g1f3g8f6c2c4e7e6b1c3f8e7c1g5h7h6g5h4e8g8a1c1f6e4h4e7d8e7e2e3c7c6f1d3e4c3\r
+d2d4d7d5g1f3g8f6c2c4e7e6b1c3f8e7d1c2e8g8e2e4d5e4c3e4b8d7f1d3f6e4d3e4d7f6e4d3e7b4\r
+d2d4d7d5g1f3g8f6c2c4e7e6c1g5b8d7e2e3f8e7b1c3e8g8a1c1b7b6c4d5e6d5d1a4c7c5a4c6a8b8\r
+d2d4d7d5g1f3g8f6c2c4e7e6c1g5f8e7e2e3b8d7b1c3e8g8a1c1f8e8d1c2h7h6g5h4c7c5c4d5f6d5\r
+d2d4d7d5g1f3g8f6c2c4e7e6c4d5e6d5b1c3c7c6d1c2g7g6c1g5f8g7e2e3c8f5f1d3f5d3c2d3e8g8\r
+d2d4d7d5g1f3g8f6c2c4e7e6e2e3c7c5f1d3b8c6e1g1d5c4d3c4a7a6b1c3b7b5c4d3c8b7a2a4b5b4\r
+d2d4d7d5g1f3g8f6c2c4e7e6g2g3d5c4f1g2b8c6e1g1a8b8b1c3b7b5e2e4f8e7c1f4e8g8a2a4a7a6\r
+d2d4d7d5g1f3g8f6e2e3c7c5c2c4e7e6f1d3b8c6e1g1a7a6b1c3d5c4d3c4b7b5c4d3c8b7a2a4b5b4\r
+d2d4d7d5g1f3g8f6e2e3c7c5c2c4e7e6f1d3b8c6e1g1d5c4d3c4a7a6a2a4f8e7b1c3e8g8b2b3c5d4\r
+d2d4d7d5g1f3g8f6e2e3c7c6f1d3g7g6b1d2f8g7e3e4d5e4d2e4e8g8e4g3f6d5c2c3c8g4h2h3g4f3\r
+d2d4d7d5g1f3g8f6e2e3c8f5f1d3e7e6d3f5e6f5d1d3d8c8b2b3b8a6e1g1f8e7c2c4e8g8b1c3c7c6\r
+d2d4d7d5g1f3g8f6e2e3e7e6f1d3c7c5e1g1b8c6b2b3f8d6c1b2e8g8b1d2d8e7f3e5f8d8a2a3c8d7\r
+d2d4d7d5g1f3g8f6g2g3c7c6f1g2c8f5e1g1e7e6c2c4b8d7b2b3f8e7b1c3f6e4c1b2d8a5d1c1e8g8\r
+d2d4d7d6c2c4e7e5b1c3e5d4d1d4b8d7g1f3g8f6b2b3f8e7c1b2c7c6e2e3e8g8f1e2d8b6e1g1d7c5\r
+d2d4d7d6c2c4e7e5g1f3e5e4f3g5f7f5b1c3g8f6h2h4b8c6g5h3g7g6e2e3f8h6g2g3c6e7b2b3c8e6\r
+d2d4d7d6e2e4e7e5d4e5d6e5d1d8e8d8g1f3f8d6b1c3c8e6c1e3g8f6e1c1f6g4e3g5f7f6g5h4b8d7\r
+d2d4d7d6e2e4g7g6b1c3c7c6c1e3f8g7d1d2b7b5f1d3b8d7f2f4d7b6b2b3g8f6g1f3a7a6a2a4b5b4\r
+d2d4d7d6e2e4g8f6b1c3g7g6g1f3f8g7f1e2e8g8e1g1b8c6a2a4e7e5d4d5c6e7a4a5h7h6a5a6c7c6\r
+d2d4d7d6e2e4g8f6b1c3g7g6g2g3f8g7f1g2e8g8g1e2b8d7h2h3e7e5e1g1e5d4e2d4f8e8f1e1d7c5\r
+d2d4d7d6e2e4g8f6f2f3d6d5e4e5f6d7f3f4c7c5g1f3b8c6c1e3c5d4f3d4c6d4e3d4d7b8b1c3b8c6\r
+d2d4d7d6g1f3g7g6c2c4f8g7e2e4b8d7b1c3e7e5d4d5a7a5f1e2g8f6e1g1e8g8d1c2d7c5c1g5h7h6\r
+d2d4e7e6c2c4b7b6b1c3c8b7a2a3f7f5d4d5g8f6g1f3f8e7g2g3f6e4f1g2e4c3b2c3b8a6f3d4e8g8\r
+d2d4e7e6c2c4b7b6e2e4c8b7d1c2d8h4b1d2f8b4f1d3f7f5g1f3b4d2e1f1h4h5c1d2g8f6e4f5b7f3\r
+d2d4e7e6c2c4b7b6e2e4c8b7f1d3b8c6g1e2c6b4e1g1b4d3d1d3g8e7b1c3d7d6d4d5d8d7c1e3e7g6\r
+d2d4e7e6c2c4b7b6e2e4c8b7f1d3f7f5e4f5f8b4e1f1g8f6d3e2e8g8c4c5b6c5a2a3b4a5d4c5f6d5\r
+d2d4e7e6c2c4d7d5b1c3f8e7g1f3g8f6c1g5e8g8e2e3b8d7d1c2c7c5c4d5f6d5g5e7d8e7c3d5e6d5\r
+d2d4e7e6c2c4d7d5g1f3d5c4d1a4b8d7b1c3a7a6a4c4b7b5c4d3c8b7e2e4g8f6a2a3c7c5e4e5f6d5\r
+d2d4e7e6c2c4f7f5b1c3f8b4d1c2g8f6e2e3e8g8f1d3d7d6g1e2c7c5a2a3b4c3e2c3b8c6d4c5d6c5\r
+d2d4e7e6c2c4f7f5b1c3g8f6e2e3d7d5f1d3c7c6f2f4f8e7g1f3e8g8e1g1b7b6c1d2c8a6d1e2a6b7\r
+d2d4e7e6c2c4f7f5e2e3g8f6b1c3d7d5g1h3c7c6c1d2f8d6d1c2e8g8e1c1d8e7f2f3d5c4e3e4f5e4\r
+d2d4e7e6c2c4f7f5g1f3g8f6b1c3f8e7d1c2d7d5b2b3e8g8e2e3c7c6f3e5e7b4c1d2b4c3d2c3f6e4\r
+d2d4e7e6c2c4f7f5g2g3f8b4c1d2b4e7f1g2g8f6b1c3e8g8g1f3f6e4e1g1b7b6d1c2c8b7f3e5e4c3\r
+d2d4e7e6c2c4f7f5g2g3f8b4c1d2b4e7f1g2g8f6b1c3e8g8g1f3f6e4e1g1e7f6c3e4f5e4f3e1f6d4\r
+d2d4e7e6c2c4f7f5g2g3g8f6b1c3f8e7f1g2e8g8g1f3d7d5e1g1c7c6d1c2b8d7c4d5c6d5c3b5d7b6\r
+d2d4e7e6c2c4f7f5g2g3g8f6f1g2f8b4c1d2b4e7b1c3e8g8g1f3d7d6e1g1d8e8d1c2e8h5e2e4e6e5\r
+d2d4e7e6c2c4f7f5g2g3g8f6f1g2f8e7b1c3e8g8d4d5e7b4c1d2e6e5e2e3d7d6g1e2a7a6d1c2d8e8\r
+d2d4e7e6c2c4f7f5g2g3g8f6f1g2f8e7b1c3e8g8e2e3d7d5g1e2c7c6b2b3e7d6e1g1d8e7d1c2f6e4\r
+d2d4e7e6c2c4f7f5g2g3g8f6f1g2f8e7b1c3e8g8e2e3d7d5g1e2c7c6b2b3f6e4e1g1b8d7c1b2d7f6\r
+d2d4e7e6c2c4f7f5g2g3g8f6f1g2f8e7b1c3e8g8e2e3d7d6g1e2c7c6e1g1e6e5d4d5d8e8e3e4e8h5\r
+d2d4e7e6c2c4f7f5g2g3g8f6f1g2f8e7g1f3d7d5e1g1e8g8d1c2c8d7b2b3a7a5c1a3c7c6a3e7d8e7\r
+d2d4e7e6c2c4f7f5g2g3g8f6f1g2f8e7g1f3e8g8e1g1d7d6b1c3d8e8f1e1e8g6e2e4f6e4c3e4f5e4\r
+d2d4e7e6c2c4f7f5g2g3g8f6f1g2f8e7g1f3e8g8e1g1f6e4b2b3e7f6c1b2b7b6b1d2c8b7f3e5d7d6\r
+d2d4e7e6c2c4f7f5g2g3g8f6f1g2f8e7g1h3e8g8e1g1d7d6b1c3d8e8e2e4f5e4h3f4c7c6c3e4f6e4\r
+d2d4e7e6c2c4f8b4c1d2b4d2d1d2g8f6b1c3d7d5f2f3b8c6e1c1e8g8e2e3d8e7c4d5f6d5e3e4d5c3\r
+d2d4e7e6c2c4f8b4c1d2b4d2d1d2g8f6b1c3d7d6e2e4e8g8e1c1b8c6d4d5c6e7f2f4e6d5c4d5c7c6\r
+d2d4e7e6c2c4f8b4c1d2d8e7e2e4d7d5e4e5b8c6g1f3b4d2d1d2d5c4b1c3g8h6d4d5c6e5f3e5e6d5\r
+d2d4e7e6c2c4f8b4c1d2d8e7g2g3b8c6g1f3g8f6b1c3b4c3d2c3f6e4a1c1d7d6d4d5e4c3c1c3c6d8\r
+d2d4e7e6c2c4g8f6b1c3d7d5c4d5e6d5c1g5c7c6e2e3f8e7f1d3b8d7g1e2f6h5g5e7d8e7g2g4h5f6\r
+d2d4e7e6c2c4g8f6b1c3f8b4d1c2b8c6g1f3d7d6c1d2e8g8a2a3b4c3d2c3d8e7e2e3e6e5d4d5c6b8\r
+d2d4e7e6c2c4g8f6b1c3f8b4e2e3e8g8g1f3c7c5f1d3d7d5e1g1d5c4d3c4b8d7d1e2b7b6c1d2c5d4\r
+d2d4e7e6c2c4g8f6b1c3f8b4e2e3e8g8g1f3c7c5f1d3d7d5e1g1d5c4d3c4b8d7d1e2b7b6f1d1c5d4\r
+d2d4e7e6c2c4g8f6g1f3b7b6g2g3c8a6b1d2f8b4d1b3d8e7f1g2a6b7e1g1b4d2c1d2e8g8a1d1d7d6\r
+d2d4e7e6c2c4g8f6g1f3b7b6g2g3c8a6b2b3f8b4c1d2b4e7b1c3d7d5c4d5e6d5f1g2e8g8e1g1b8d7\r
+d2d4e7e6c2c4g8f6g1f3b7b6g2g3c8b7f1g2f8e7e1g1e8g8b1c3f6e4d1c2e4c3c2c3b7e4c1f4b8c6\r
+d2d4e7e6c2c4g8f6g1f3d7d5b1c3c7c6e2e3b8d7d1c2f8d6b2b3e8g8f1e2b7b6e1g1c8b7c1b2f8e8\r
+d2d4e7e6c2c4g8f6g1f3d7d5b1c3f8e7c1f4e8g8e2e3c7c5d4c5e7c5a2a3b8c6b2b4c5e7c4d5f6d5\r
+d2d4e7e6c2c4g8f6g2g3f8b4c1d2b4e7f1g2d7d5g1f3e8g8e1g1c7c6d1c2b8d7b2b3b7b6f1d1c8a6\r
+d2d4e7e6e2e4d7d5b1c3f8b4e4e5c7c5a2a3b4c3b2c3d8c7d1g4f7f5g4g3c5d4c3d4g8e7e1d2e8g8\r
+d2d4e7e6e2e4d7d5b1c3f8b4e4e5c7c5a2a3b4c3b2c3d8c7d1g4f7f5g4g3g8e7c1d2e8g8f1d3b7b6\r
+d2d4e7e6e2e4d7d5b1c3f8b4e4e5c7c5a2a3b4c3b2c3d8c7d1g4f7f5g4h5g7g6h5d1b8c6g1f3c8d7\r
+d2d4e7e6e2e4d7d5b1d2c7c5e4d5e6d5g1f3a7a6d4c5f8c5d2b3c5a7c1g5g8f6f3d4e8g8f1e2d8d6\r
+d2d4e7e6e2e4d7d5b1d2c7c5e4d5e6d5g1f3g8f6f1b5c8d7b5d7b8d7e1g1f8e7d4c5d7c5f3d4d8d7\r
+d2d4e7e6e2e4d7d5b1d2d5e4d2e4b8d7g1f3g8f6e4f6d7f6c1g5f8e7f1d3c7c5e1g1c5d4f3d4e8g8\r
+d2d4e7e6e2e4d7d5e4d5e6d5g1f3g8f6c1g5c7c6f1d3c8e6e1g1b8d7f1e1d8b6b1d2f8e7a1b1h7h6\r
+d2d4e7e6e2e4d7d5e4e5c7c5c2c3b8c6g1f3c8d7f1e2g8e7b1a3c5d4c3d4e7f5a3c2c6b4c2e3f5e3\r
+d2d4e7e6g1f3f7f5g2g3g8f6f1g2f8e7e1g1e8g8c2c4d7d6b2b3a7a5c1b2d8e8b1d2b8c6a2a3e7d8\r
+d2d4e7e6g1f3g8f6c1g5c7c5e2e3f8e7f1d3b7b6c2c3c8b7b1d2c5d4c3d4f6d5d2c4e8g8h2h4f7f5\r
+d2d4e7e6g1f3g8f6c2c4b7b6b1c3c8b7c1g5h7h6g5f6d8f6e2e4f8b4f1d3c7c5e1g1c5d4c3b5f6d8\r
+d2d4e7e6g1f3g8f6c2c4b7b6g2g3c8a6b2b3a6b7f1g2f8b4c1d2a7a5e1g1e8g8d1c2c7c5f1d1b4d2\r
+d2d4e7e6g1f3g8f6c2c4b7b6g2g3c8b7f1g2f8e7e1g1e8g8b1c3f6e4d1c2e4c3c2c3b7e4b2b3c7c5\r
+d2d4e7e6g1f3g8f6c2c4b7b6g2g3c8b7f1g2f8e7e1g1e8g8b2b3d7d5c4d5e6d5c1b2b8d7b1c3f8e8\r
+d2d4e7e6g1f3g8f6c2c4b7b6g2g3c8b7f1g2f8e7e1g1e8g8d1c2c7c5b2b3c5d4f3d4b7g2g1g2d7d5\r
+d2d4e7e6g1f3g8f6c2c4d7d5c4d5e6d5b1c3c7c6d1c2c8g4c1g5b8d7e2e3f8d6f1d3d8c7e1c1h7h6\r
+d2d4e7e6g1f3g8f6c2c4f8b4c1d2c7c5d2b4c5b4g2g3b7b6f1g2c8b7e1g1e8g8b1d2d7d6d1b3a7a5\r
+d2d4e7e6g2g3c7c5g1f3c5d4f3d4d7d5f1g2g8f6e1g1e6e5d4b3c8e6c2c4b8c6c4d5f6d5b1d2f8e7\r
+d2d4f7f5b1c3g8f6c1g5d7d5g5f6e7f6e2e3c8e6f1d3b8c6a2a3d8d7g1f3f8d6c3b5d6e7e1g1c6d8\r
+d2d4f7f5c1g5c7c6e2e3g7g6c2c4f8g7b1c3d7d6f1d3d8a5g1e2b8d7e1g1e7e5d4e5d6e5a2a3h7h6\r
+d2d4f7f5c2c4g8f6g2g3e7e6f1g2d7d5g1f3c7c6e1g1f8d6f3e5e8g8c1f4f6g4e5g4d6f4g3f4f5g4\r
+d2d4f7f5c2c4g8f6g2g3e7e6f1g2f8b4c1d2b4e7g1f3e8g8e1g1c7c6d1b3b8a6b1c3d8e8d4d5a6c5\r
+d2d4f7f5e2e4f5e4b1c3g8f6c1g5c7c6f2f3d8a5g5f6e7f6f3e4f8b4d1f3d7d5g1e2e8g8e4d5a5d5\r
+d2d4f7f5e2e4f5e4f2f3e4f3g1f3g8f6f1d3d7d6e1g1c8g4b1c3b8c6c1e3d8d7d4d5c6e5d3b5c7c6\r
+d2d4f7f5g1f3g8f6g2g3g7g6f1g2f8g7e1g1e8g8c2c4c7c6b1c3b8a6b2b3d7d6c1b2c8d7f1e1d8a5\r
+d2d4f7f5g2g3g8f6f1g2e7e6g1f3f8e7c2c4e8g8b1c3d7d6c1f4d8e8a1c1b8c6d4d5c6d8c3b5e8d7\r
+d2d4f7f5g2g3g8f6f1g2e7e6g1f3f8e7e1g1e8g8c2c4c7c6b1c3d7d5c1g5b8d7e2e3d8e8d1c2g8h8\r
+d2d4f7f5g2g3g8f6f1g2g7g6g1f3f8g7b2b3e8g8c1b2d7d5c2c4c7c6e1g1c8e6f3g5e6f7b1c3d8e8\r
+d2d4f7f5g2g3g8f6f1g2g7g6g1f3f8g7e1g1e8g8b2b4f6e4c2c4e7e6c1b2b7b6b1c3c8b7a1c1a7a5\r
+d2d4f7f5g2g3g8f6f1g2g7g6g1f3f8g7e1g1e8g8d4d5c7c6c2c4d7d6f3d4d8c7b1c3e7e5d5e6b8a6\r
+d2d4f7f5g2g3g8f6f1g2g7g6g1h3f8g7e1g1e8g8c2c4b8c6b1c3e7e6d4d5c6e5b2b3e5f7c1a3f8e8\r
+d2d4f7f5g2g3g8f6f1g2g7g6g1h3f8g7h3f4b8c6d4d5c6e5b1c3c7c6e2e4f5e4c3e4f6e4g2e4c6d5\r
+d2d4g7g6c2c4f8g7g1f3c7c5g2g3c5d4f3d4b8c6d4c2b7b6f1g2c8a6b1a3a8c8a1b1g8f6e1g1e8g8\r
+d2d4g7g6e2e4f8g7b1c3d7d6c1e3c7c6d1d2b7b5f2f3b8d7h2h4h7h5g1h3d8a5h3g5g8h6a2a3a8b8\r
+d2d4g7g6e2e4f8g7c2c3c7c6f1d3d7d6f2f4d6d5e4e5h7h5g1f3g8h6c1e3c8f5d3f5h6f5e3f2b8a6\r
+d2d4g7g6e2e4f8g7c2c4d7d6b1c3b8d7g1e2e7e5c1e3g8e7d1d2e8g8e1c1a7a6h2h4e5d4e2d4d7e5\r
+d2d4g7g6e2e4f8g7c2c4d7d6b1c3e7e5d4e5d6e5d1d8e8d8f2f4b8c6g1f3c6d4e1f2e5f4c1f4d4e6\r
+d2d4g7g6e2e4f8g7c2c4d7d6b1c3g8f6f2f3b8d7c1e3e8g8f1d3e7e5g1e2f6h5d4e5d6e5e1g1c7c6\r
+d2d4g7g6e2e4f8g7g1f3d7d6b1c3g8f6f1e2e8g8e1g1b8d7e4e5f6e8c1f4d7b6f1e1c7c6h2h3e8c7\r
+d2d4g7g6e2e4f8g7g1f3d7d6c2c3g8f6f1d3e8g8e1g1b8c6c1g5h7h6g5h4e7e5d4e5d6e5b1a3c8e6\r
+d2d4g7g6e2e4f8g7g1f3d7d6f1e2e7e6c2c3b8d7e1g1g8e7b1d2b7b6a2a4a7a6f1e1c8b7e2d3e8g8\r
+d2d4g7g6g1f3f7f5g2g3f8g7f1g2g8f6e1g1e8g8c2c4d7d6d4d5c7c5b1c3b8a6f3e1a8b8e1c2a6c7\r
+d2d4g8f6b1c3d7d5c1g5c8f5f2f3f5g6e2e4d5e4d1d2e7e6f3e4f8b4d2e3f6g4e3d2g4f6d2e3f6g4\r
+d2d4g8f6b1c3d7d5c1g5c8f5g5f6g7f6e2e3c7c6f1d3f5g6f2f4g6d3d1d3e7e6e3e4d5e4c3e4f6f5\r
+d2d4g8f6b1c3d7d5c1g5h7h6g5f6e7f6e2e3c7c6f1d3f8d6d1f3e8g8g1e2f8e8e1c1b7b5g2g4b5b4\r
+d2d4g8f6b1c3d7d5c1g5h7h6g5f6e7f6e2e4f8b4e4d5d8d5g1f3e8g8f1e2d5a5d1d2b8d7a2a3d7b6\r
+d2d4g8f6b1c3g7g6e2e4d7d6g1f3f8g7f1c4e8g8e1g1c8g4h2h3g4f3d1f3b8c6c1e3e7e5d4e5c6e5\r
+d2d4g8f6c1g5d7d5g5f6e7f6e2e3c8e6b1d2c7c6f1d3f6f5d1f3g7g6g1e2b8d7e1g1f8d6c2c4d7f6\r
+d2d4g8f6c1g5d7d5g5f6e7f6e2e3c8e6g2g3f6f5f1d3c7c6b1d2b8d7g1e2f8d6e1g1e8g8c2c3d7f6\r
+d2d4g8f6c1g5e7e6e2e3h7h6g5h4c7c5c2c3c5d4c3d4g7g5h4g3f6e4b1c3e4g3h2g3d7d5f1d3f8g7\r
+d2d4g8f6c1g5e7e6e2e4h7h6g5f6d8f6b1c3d7d6d1d2g7g5f1c4b8c6g1e2f8g7a1d1c8d7e1g1e8c8\r
+d2d4g8f6c1g5e7e6e2e4h7h6g5f6d8f6g1f3d7d6b1c3g7g6d1d2f6e7e1c1a7a6h2h4f8g7g2g3b7b5\r
+d2d4g8f6c1g5f6e4g5f4c7c5f2f3e4f6d4d5e7e6b1c3f6h5f4e3d7d6d1d2e6e5g2g4h5f6e3f2a7a6\r
+d2d4g8f6c1g5f6e4g5f4d7d5b1d2e4d2d1d2c8f5e2e3e7e6g1f3f8e7c2c4e8g8a1c1c7c6f1e2b8d7\r
+d2d4g8f6c1g5f6e4h2h4c7c5d4c5d8a5b1d2e4g5h4g5g7g6c2c3a5c5g1f3f8g7e2e3a7a6a2a4d7d5\r
+d2d4g8f6c1g5g7g6g5f6e7f6e2e3d7d5c2c4d5c4f1c4f8d6b1c3e8g8g1f3b8d7e1g1d7b6c4b3f8e8\r
+d2d4g8f6c2c4b7b6b1c3c8b7f2f3d7d5c4d5f6d5e2e4d5c3b2c3e7e6f1b5b8d7g1e2f8e7e1g1a7a6\r
+d2d4g8f6c2c4c7c5d4d5b7b5c4b5a7a6b5a6c8a6b1c3d7d6g1f3g7g6g2g3f8g7f1g2b8d7e1g1d7b6\r
+d2d4g8f6c2c4c7c5d4d5b7b5c4b5a7a6b5a6g7g6b1c3c8a6e2e4a6f1e1f1d7d6g2g3f8g7f1g2b8d7\r
+d2d4g8f6c2c4c7c5d4d5b7b5c4b5a7a6b5a6g7g6g2g3f8g7f1g2d7d6g1h3b8a6h3f4d8b6e1g1e8g8\r
+d2d4g8f6c2c4c7c5d4d5b7b5g1f3g7g6c4b5a7a6b5b6d8b6b1c3d7d6f3d2f8g7e2e4e8g8f1e2a6a5\r
+d2d4g8f6c2c4c7c5d4d5b7b5g1f3g7g6d1c2f8g7e2e4d7d6c4b5e8g8b1c3a7a6a2a4a6b5f1b5b8a6\r
+d2d4g8f6c2c4c7c5d4d5d7d6b1c3g7g6e2e4f8g7c1g5h7h6g5h4g6g5h4g3d8a5f1d3f6e4d3e4g7c3\r
+d2d4g8f6c2c4c7c5d4d5d7d6b1c3g7g6e2e4f8g7f1d3e8g8g1f3c8g4h2h3g4f3d1f3b8d7f3d1e7e6\r
+d2d4g8f6c2c4c7c5d4d5d7d6b1c3g7g6g1f3f8g7e2e4e8g8c1f4a7a6a2a4d8a5f4d2e7e6f1e2e6d5\r
+d2d4g8f6c2c4c7c5d4d5e7e5b1c3d7d6e2e4g7g6f1d3b8a6g1e2a6b4d3b1f8g7h2h3c8d7c1e3e8g8\r
+d2d4g8f6c2c4c7c5d4d5e7e5b1c3d7d6e2e4g7g6f1e2f8g7c1g5b8a6g1f3h7h6g5d2c8g4a2a3g4f3\r
+d2d4g8f6c2c4c7c5d4d5e7e5b1c3d7d6e2e4g7g6f2f3b8a6c1e3a6c7d1d2a7a6a2a4b7b6f1d3a8b8\r
+d2d4g8f6c2c4c7c5d4d5e7e5b1c3d7d6e2e4g7g6f2f3f6h5c1e3f8g7d1d2e8g8g2g4h5f4g1e2b8d7\r
+d2d4g8f6c2c4c7c5d4d5e7e5b1c3d7d6e2e4g7g6g1f3f8g7c1g5b8a6f1e2a6c7f3d2c8d7a2a4b7b6\r
+d2d4g8f6c2c4c7c5d4d5e7e5b1c3d7d6g2g3g7g6f1h3b8d7g1f3f8g7e1g1a7a6e2e4e8g8f1e1f6e8\r
+d2d4g8f6c2c4c7c5d4d5e7e6b1c3e6d5c4d5d7d6e2e4g7g6f2f4f8g7f1b5f6d7a2a4d8h4e1f1e8g8\r
+d2d4g8f6c2c4c7c5d4d5e7e6b1c3e6d5c4d5d7d6e2e4g7g6g1f3f8g7f1d3e8g8h2h3a7a6a2a4b8d7\r
+d2d4g8f6c2c4c7c5d4d5e7e6b1c3e6d5c4d5d7d6e2e4g7g6g1f3f8g7f1e2e8g8e1g1f8e8f3d2b8a6\r
+d2d4g8f6c2c4c7c5d4d5e7e6b1c3e6d5c4d5d7d6e2e4g7g6g1f3f8g7h2h3e8g8f1d3b7b5c3b5f8e8\r
+d2d4g8f6c2c4c7c5d4d5e7e6b1c3e6d5c4d5d7d6g1f3g7g6c1g5f8g7f3d2h7h6g5h4g6g5h4g3f6h5\r
+d2d4g8f6c2c4c7c5d4d5e7e6b1c3e6d5c4d5d7d6g1f3g7g6f3d2b8d7g2g3f8g7f1g2e8g8e1g1d8e7\r
+d2d4g8f6c2c4c7c5d4d5e7e6b1c3e6d5c4d5d7d6g1f3g7g6g2g3f8g7f1g2e8g8e1g1a7a6a2a4b8d7\r
+d2d4g8f6c2c4c7c5d4d5g7g6b1c3d7d6e2e4b7b5c4b5f8g7g1f3e8g8f1e2a7a6b5a6c8a6e1g1d8c7\r
+d2d4g8f6c2c4c7c6b1c3d7d5c4d5c6d5g1f3b8c6c1f4c8f5e2e3e7e6f1b5f8b4f3e5d8a5b5c6b7c6\r
+d2d4g8f6c2c4c7c6b1c3d7d6g1f3b8d7g2g3e7e5f1g2f8e7d1c2e8g8e1g1f8e8b2b3e7f8e2e4a7a6\r
+d2d4g8f6c2c4c7c6b1c3e7e6g1f3d7d5c1g5b8d7e2e4d5e4c3e4d8b6e4f6g7f6g5c1e6e5f1d3e5d4\r
+d2d4g8f6c2c4c7c6g1f3d7d5b1c3e7e6c1g5b8d7e2e4d5e4c3e4f8e7e4c3e8g8d1c2b7b6e1c1c8b7\r
+d2d4g8f6c2c4c7c6g1f3d7d5e2e3e7e6f1d3b8d7b1c3d5c4d3c4b7b5c4d3a7a6e1g1c6c5a2a4b5b4\r
+d2d4g8f6c2c4c7c6g1f3d7d5e2e3e7e6f1d3b8d7b1d2f8e7e1g1e8g8b2b3b7b6c1b2c8b7d1e2c6c5\r
+d2d4g8f6c2c4d7d5g1f3e7e6b1c3b8d7e2e3f8e7f1d3d5c4d3c4c7c5e1g1e8g8f1e1a7a6a2a4d8c7\r
+d2d4g8f6c2c4d7d6b1c3b8d7c1g5h7h6g5h4g7g5h4g3f6h5e2e3h5g3h2g3f8g7f1d3d7f6d1d2c7c6\r
+d2d4g8f6c2c4d7d6b1c3b8d7e2e4e7e5d4d5d7c5d1c2a7a5g2g3f8e7f1g2e8g8g1e2f6h5e1g1e7g5\r
+d2d4g8f6c2c4d7d6b1c3b8d7e2e4e7e5g1f3f8e7g2g3e8g8f1g2c7c6e1g1a7a6b2b3f8e8c1b2e7f8\r
+d2d4g8f6c2c4d7d6b1c3b8d7e2e4e7e5g1f3g7g6f1e2f8g7e1g1e8g8c1g5c7c6d1d2d8b6c4c5d6c5\r
+d2d4g8f6c2c4d7d6b1c3b8d7g1f3c7c6g2g3e7e5f1g2f8e7e1g1e8g8d1c2f8e8b2b3e7f8c1b2a7a6\r
+d2d4g8f6c2c4d7d6b1c3b8d7g1f3g7g6e2e4e7e5f1e2f8g7e1g1e8g8f1e1c7c6e2f1f6e8a1b1e8c7\r
+d2d4g8f6c2c4d7d6b1c3e7e5e2e3b8d7f1d3g7g6g1e2f8g7e1g1e8g8f2f4f8e8e2g3c7c6g1h1d7f8\r
+d2d4g8f6c2c4d7d6b1c3e7e5g1f3b8d7c1g5f8e7e2e3c7c6f1e2e8g8e1g1f8e8d1c2d8c7h2h3d7f8\r
+d2d4g8f6c2c4d7d6b1c3e7e5g1f3b8d7c1g5f8e7e2e3e8g8d1c2c7c6f1d3e5d4e3d4f8e8e1g1h7h6\r
+d2d4g8f6c2c4d7d6b1c3e7e5g1f3b8d7c1g5h7h6g5h4g7g5d4e5g5h4e5f6d8f6c3d5f6b2a1b1b2a2\r
+d2d4g8f6c2c4d7d6b1c3e7e5g1f3b8d7e2e4g7g6f1e2f8g7e1g1e8g8f1e1c7c6e2f1f6g4h2h3e5d4\r
+d2d4g8f6c2c4d7d6b1c3e7e5g1f3b8d7g2g3g7g6f1g2f8g7e1g1e8g8e2e4c7c6h2h3f6h5c1e3d8e7\r
+d2d4g8f6c2c4d7d6b1c3e7e5g1f3b8d7g2g3g7g6f1g2f8g7e1g1e8g8e2e4f8e8c1e3f6g4e3g5f7f6\r
+d2d4g8f6c2c4d7d6b1c3e7e5g1f3b8d7g2g3g7g6f1g2f8g7e1g1e8g8e2e4f8e8c1e3f6g4e3g5f7f6\r
+d2d4g8f6c2c4d7d6b1c3e7e5g1f3e5e4f3g5c8f5d1c2h7h6g5e4f6e4c3e4d8h4e4d6f8d6c2f5d6b4\r
+d2d4g8f6c2c4d7d6b1c3g7g6e2e4f8g7f2f3e8g8c1e3a7a6d1d2c7c6f1d3e7e5d4e5d6e5c3a4b7b5\r
+d2d4g8f6c2c4d7d6g1f3b8d7b1c3c7c6e2e4e7e5f1e2f8e7e1g1a7a6d1c2e8g8f1d1d8c7c1g5h7h6\r
+d2d4g8f6c2c4d7d6g1f3b8d7b1c3e7e5e2e4c7c6f1e2f8e7e1g1e8g8d1c2f8e8b2b3e7f8c1b2f6h5\r
+d2d4g8f6c2c4d7d6g1f3b8d7b1c3e7e5e2e4f8e7f1e2e8g8e1g1c7c6d1c2f8e8f1d1e7f8a1b1a7a5\r
+d2d4g8f6c2c4d7d6g1f3b8d7g2g3e7e5f1g2c7c6d4e5d6e5e1g1f8c5b1c3e8g8d1c2d8e7f3h4f8e8\r
+d2d4g8f6c2c4d7d6g1f3g7g6b1c3f8g7e2e4e7e5f1e2e8g8e1g1b8c6c1e3f6g4e3g5f7f6g5c1e5d4\r
+d2d4g8f6c2c4d7d6g1f3g7g6b1c3f8g7e2e4e8g8f1e2b8d7e1g1e7e5f1e1e5d4f3d4d7c5e2f1f8e8\r
+d2d4g8f6c2c4d7d6g1f3g7g6b1c3f8g7g2g3e8g8f1g2b8d7e1g1e7e5d1c2c7c6f1d1f8e8d4e5d6e5\r
+d2d4g8f6c2c4d7d6g1f3g7g6b1c3f8g7g2g3e8g8f1g2b8d7e1g1e7e5e2e4f8e8c1e3f6g4e3g5f7f6\r
+d2d4g8f6c2c4d7d6g1f3g7g6g2g3f8g7f1g2e8g8e1g1b8c6b1c3c8g4h2h3g4f3g2f3f6d7f3g2c6d4\r
+d2d4g8f6c2c4e7e5d4e5f6g4c1f4b8c6g1f3f8b4b1d2d8e7e2e3g4e5f3e5c6e5f1e2e8g8e1g1d7d6\r
+d2d4g8f6c2c4e7e5d4e5f6g4g1f3f8c5e2e3b8c6b1c3g4e5f3e5c6e5f1e2e8g8a2a3a7a5e1g1d7d6\r
+d2d4g8f6c2c4e7e5d4e5f6g4g1f3f8c5e2e3b8c6f1e2g4e5f3e5c6e5e1g1e8g8b1c3d7d6c3a4c5b6\r
+d2d4g8f6c2c4e7e6b1c3c7c5d4d5e6d5c4d5d7d6e2e4g7g6f2f4f8g7f1b5f6d7a2a4e8g8g1f3a7a6\r
+d2d4g8f6c2c4e7e6b1c3d7d5c1g5b8d7e2e3c7c6c4d5e6d5f1d3f8e7d1c2e8g8g1f3h7h6g5h4f8e8\r
+d2d4g8f6c2c4e7e6b1c3d7d5c1g5b8d7e2e3c7c6c4d5e6d5f1d3f8e7g1e2e8g8e2g3f6e8h2h4d7f6\r
+d2d4g8f6c2c4e7e6b1c3d7d5c1g5b8d7e2e3f8e7g1f3e8g8a1c1c7c6d1c2a7a6a2a3f8e8f1d3h7h6\r
+d2d4g8f6c2c4e7e6b1c3d7d5c1g5b8d7e2e3f8e7g1f3e8g8a1c1c7c6d1c2a7a6a2a3h7h6g5h4f8e8\r
+d2d4g8f6c2c4e7e6b1c3d7d5c1g5b8d7e2e3f8e7g1f3e8g8a1c1c7c6f1d3d5c4d3c4f6d5g5e7d8e7\r
+d2d4g8f6c2c4e7e6b1c3d7d5c1g5b8d7e2e3f8e7g1f3e8g8a1c1c7c6f1d3d5c4d3c4f6d5g5e7d8e7\r
+d2d4g8f6c2c4e7e6b1c3d7d5c1g5b8d7e2e3f8e7g1f3e8g8a1c1c7c6f1d3d5c4d3c4f6d5g5e7d8e7\r
+d2d4g8f6c2c4e7e6b1c3d7d5c1g5b8d7e2e3f8e7g1f3e8g8a1c1c7c6f1d3d5c4d3c4f6d5g5e7d8e7\r
+d2d4g8f6c2c4e7e6b1c3d7d5c1g5b8d7e2e3f8e7g1f3e8g8a1c1c7c6f1d3d5c4d3c4f6d5g5e7d8e7\r
+d2d4g8f6c2c4e7e6b1c3d7d5c1g5b8d7e2e3f8e7g1f3e8g8a1c1c7c6f1d3d5c4d3c4f6d5g5e7d8e7\r
+d2d4g8f6c2c4e7e6b1c3d7d5c1g5b8d7e2e3f8e7g1f3e8g8a1c1c7c6f1d3d5c4d3c4f6d5g5e7d8e7\r
+d2d4g8f6c2c4e7e6b1c3d7d5c1g5b8d7e2e3f8e7g1f3e8g8d1c2c7c5c4d5f6d5c3d5e6d5g5e7d8e7\r
+d2d4g8f6c2c4e7e6b1c3d7d5c1g5b8d7g1f3c7c6e2e3d8a5g5f6d7f6f3d2f8b4d1c2e8g8f1d3b4c3\r
+d2d4g8f6c2c4e7e6b1c3d7d5c1g5b8d7g1f3h7h6g5h4f8e7e2e3e8g8a1c1a7a6b2b3b7b6c4d5e6d5\r
+d2d4g8f6c2c4e7e6b1c3d7d5c1g5c7c5e2e3c5d4e3d4f8e7g1f3e8g8a1c1b7b6f1d3b8c6e1g1c6b4\r
+d2d4g8f6c2c4e7e6b1c3d7d5c1g5f8e7e2e3b8d7g1f3e8g8a1c1c7c6f1d3d5c4d3c4f6d5g5e7d8e7\r
+d2d4g8f6c2c4e7e6b1c3d7d5c1g5f8e7e2e3b8d7g1f3e8g8a1c1c7c6f1d3h7h6g5h4d5c4d3c4b7b5\r
+d2d4g8f6c2c4e7e6b1c3d7d5c1g5f8e7e2e3b8d7g1f3e8g8d1c2c7c6a1d1f8e8a2a3d5c4f1c4f6d5\r
+d2d4g8f6c2c4e7e6b1c3d7d5c1g5f8e7e2e3e8g8g1f3b8d7a1c1c7c6a2a3a7a6d1c2f8e8f1d3h7h6\r
+d2d4g8f6c2c4e7e6b1c3d7d5c1g5f8e7e2e3e8g8g1f3b8d7a1c1c7c6d1c2a7a6c4d5f6d5g5e7d8e7\r
+d2d4g8f6c2c4e7e6b1c3d7d5c1g5f8e7e2e3e8g8g1f3b8d7a1c1c7c6f1d3d5c4d3c4f6d5g5e7d8e7\r
+d2d4g8f6c2c4e7e6b1c3d7d5c1g5f8e7e2e3e8g8g1f3h7h6g5h4b7b6f1d3c8b7e1g1b8d7a1c1c7c5\r
+d2d4g8f6c2c4e7e6b1c3d7d5c1g5f8e7e2e3e8g8g1f3h7h6g5h4f6e4h4e7d8e7c4d5e4c3b2c3e6d5\r
+d2d4g8f6c2c4e7e6b1c3d7d5c1g5f8e7g1f3e8g8e2e3h7h6g5h4b7b6f1d3c8b7e1g1b8d7a1c1c7c5\r
+d2d4g8f6c2c4e7e6b1c3d7d5c4d5e6d5c1g5f8e7d1c2e8g8e2e3f8e8f1d3b8d7g1f3d7f8e1g1c7c6\r
+d2d4g8f6c2c4e7e6b1c3d7d5c4d5e6d5c1g5f8e7e2e3c7c6f1d3b8d7d1c2f6h5g5e7d8e7g1e2d7b6\r
+d2d4g8f6c2c4e7e6b1c3d7d5c4d5e6d5c1g5f8e7e2e3e8g8d1c2b8d7g1f3c7c6f1d3f8e8e1g1d7f8\r
+d2d4g8f6c2c4e7e6b1c3d7d5c4d5e6d5c1g5f8e7e2e3e8g8f1d3c7c6d1c2b8d7g1e2f8e8e1g1d7f8\r
+d2d4g8f6c2c4e7e6b1c3d7d5c4d5e6d5c1g5f8e7e2e3e8g8f1d3c7c6d1c2b8d7g1e2f8e8e1g1d7f8\r
+d2d4g8f6c2c4e7e6b1c3d7d5c4d5e6d5c1g5f8e7e2e3h7h6g5h4e8g8f1d3b7b6g1f3c8b7e1g1c7c5\r
+d2d4g8f6c2c4e7e6b1c3d7d5e2e3b8d7g1f3f8e7f1d3c7c5c4d5e6d5d4c5e8g8e1g1d7c5d3c2c8g4\r
+d2d4g8f6c2c4e7e6b1c3d7d5g1f3b8d7c1g5f8b4c4d5e6d5e2e3c7c5f1d3d8a5e1g1c5c4d3f5e8g8\r
+d2d4g8f6c2c4e7e6b1c3d7d5g1f3b8d7c4d5e6d5c1g5f8e7e2e3e8g8d1c2c7c6f1d3f8e8h2h3f6e4\r
+d2d4g8f6c2c4e7e6b1c3d7d5g1f3b8d7e2e3a7a6a2a4f8b4c1d2c7c6f1d3d5c4d3c4d8a5e1g1e8g8\r
+d2d4g8f6c2c4e7e6b1c3d7d5g1f3c7c5c4d5c5d4d1d4e6d5e2e4b8c6f1b5a7a6b5c6b7c6f3e5c8b7\r
+d2d4g8f6c2c4e7e6b1c3d7d5g1f3c7c5c4d5c5d4d1d4e6d5e2e4b8c6f1b5f6e4e1g1e4f6f1e1f8e7\r
+d2d4g8f6c2c4e7e6b1c3d7d5g1f3c7c6e2e3a7a6c4c5b8d7f1d3d8c7e1g1e6e5d4e5d7e5f3e5c7e5\r
+d2d4g8f6c2c4e7e6b1c3d7d5g1f3f8b4c1g5e8g8e2e3c7c5c4d5e6d5d4c5b8d7a1c1d7c5d1d4b4c3\r
+d2d4g8f6c2c4e7e6b1c3f8b4a2a3b4c3b2c3c7c5e2e3b7b6g1e2b8c6e2g3e8g8f1d3c8a6e3e4f6e8\r
+d2d4g8f6c2c4e7e6b1c3f8b4a2a3b4c3b2c3c7c5e2e3b8c6f1d3e6e5g1e2d7d6e1g1d8e7e3e4f6d7\r
+d2d4g8f6c2c4e7e6b1c3f8b4a2a3b4c3b2c3c7c5e2e3b8c6f1d3e6e5g1e2d7d6e3e4f6h5e1g1g7g5\r
+d2d4g8f6c2c4e7e6b1c3f8b4a2a3b4c3b2c3c7c5e2e3b8c6f1d3e8g8g1e2d7d6e3e4f6e8e1g1b7b6\r
+d2d4g8f6c2c4e7e6b1c3f8b4a2a3b4c3b2c3c7c5e2e3d8a5c1d2f6e4g1f3e4d2d1d2e8g8f1d3d7d6\r
+d2d4g8f6c2c4e7e6b1c3f8b4a2a3b4c3b2c3c7c5f2f3b8c6d4d5c6a5e2e4e6e5f1d3b7b6c1g5c8a6\r
+d2d4g8f6c2c4e7e6b1c3f8b4a2a3b4c3b2c3c7c5g1f3e8g8c1g5d7d6d1c2f8e8e2e4h7h6g5e3d8a5\r
+d2d4g8f6c2c4e7e6b1c3f8b4a2a3b4c3b2c3e8g8f2f3d7d5c4d5e6d5e2e3c8f5g1e2b8d7e2g3f5g6\r
+d2d4g8f6c2c4e7e6b1c3f8b4a2a3b4c3b2c3e8g8f2f3f6h5g1h3f7f5e2e4c7c5e4e5b8c6f3f4g7g6\r
+d2d4g8f6c2c4e7e6b1c3f8b4a2a3b4c3b2c3f6e4d1c2f7f5g1h3d7d6f2f3e4f6e2e4f5e4f3e4e6e5\r
+d2d4g8f6c2c4e7e6b1c3f8b4a2a3b4c3b2c3f6e4d1c2f7f5g1h3e8g8f2f3e4f6c4c5b7b6c5b6c7b6\r
+d2d4g8f6c2c4e7e6b1c3f8b4a2a3b4c3b2c3f6e4e2e3f7f5d1h5g7g6h5h6d7d6f2f3e4f6e3e4e6e5\r
+d2d4g8f6c2c4e7e6b1c3f8b4a2a3b4c3b2c3f6e4g1h3c7c5e2e3d8a5c1d2c5d4c3d4e4d2d1d2a5d2\r
+d2d4g8f6c2c4e7e6b1c3f8b4c1d2b7b6f2f3b8c6a2a3b4e7e2e3e8g8f1d3d7d5c4d5e6d5g1e2f6h5\r
+d2d4g8f6c2c4e7e6b1c3f8b4c1g5c7c5d4d5b4c3b2c3e6e5a1c1d7d6e2e3b8d7f2f3h7h6g5h4g7g5\r
+d2d4g8f6c2c4e7e6b1c3f8b4c1g5h7h6g5h4c7c5d4d5d7d6e2e3e6e5g1e2b8d7a2a3b4a5d1c2e8g8\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1b3c7c5d4c5b4c5g1f3d7d5c4d5e6d5c1g5c8e6g5f6g7f6e1c1b8d7\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1b3c7c5d4c5b8a6a2a3b4c3b3c3a6c5f2f3a7a5e2e4e8g8c1f4d8b6\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1b3c7c5d4c5b8a6g1f3e8g8c1g5b4c5e2e3b7b6f1e2c8b7e1g1c5e7\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1b3c7c5d4c5b8c6g1f3b4c5c1g5h7h6g5f6d8f6e2e3b7b6f1e2c8b7\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1b3d8e7a2a3b4c3b3c3b7b6f2f3d7d5c4d5f6d5c3c2e7h4g2g3h4d4\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2b8c6g1f3d7d5c1g5h7h6g5f6d8f6e2e3e8g8a2a3b4c3c2c3f8e8\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2b8c6g1f3d7d5c4d5e6d5a2a3b4a5c1g5c6e7g5f6g7f6e2e3c7c6\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2b8c6g1f3d7d6c1d2e8g8a2a3b4c3d2c3a7a5e2e3d8e7f1d3e6e5\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2c7c5d4c5b8a6e2e3a6c5c1d2e8g8g1f3b7b6f1e2c8a6e1g1d7d5\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2c7c5d4c5d8c7a2a3b4c5b2b4c5e7c3b5c7c6g1f3d7d6f3d4c6d7\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2c7c5d4c5e8g8a2a3b4c5g1f3b7b6c1f4c8b7a1d1d7d5c4d5e6d5\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2c7c5d4c5e8g8c1f4b4c5e2e3b8c6g1f3d7d5a2a3d8e7f4g5f8d8\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2c7c5d4c5e8g8c1f4b4c5g1f3b8c6e2e3d7d5a1d1d8a5a2a3c5e7\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2c7c5d4c5e8g8c1f4b8a6f4d6f8e8a2a3d8a5a1c1b4c3c2c3a5c3\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2c7c5d4c5e8g8c1g5b8a6a2a3b4c5g1f3b7b6g2g3c8b7f1g2d8c8\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2c7c5d4c5e8g8g1f3b8a6a2a3b4c3c2c3a6c5e2e3a7a5b2b3d7d5\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2c7c5d4c5e8g8g1f3b8a6c1d2a6c5e2e3b7b6f1e2c8b7e1g1c5e4\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2d7d5a2a3b4c3c2c3b8c6e2e3e6e5d4e5f6e4c3d3e4c5d3c2d5c4\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2d7d5c4d5d8d5e2e3c7c5a2a3b4c3b2c3b8c6g1f3e8g8c3c4d5d6\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2d7d5c4d5d8d5e2e3c7c5a2a3b4c3b2c3b8d7f2f3c5d4c3d4d7b6\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2d7d5c4d5d8d5e2e3c7c5a2a3b4c3b2c3e8g8g1f3c5d4c3d4b7b6\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2d7d5c4d5d8d5e2e3c7c5c1d2b4c3b2c3e8g8g1f3b8c6c3c4d5d6\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2d7d5c4d5d8d5e2e3c7c5c1d2b4c3d2c3c5d4c3d4b8c6d4f6g7f6\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2d7d5c4d5d8d5e2e3c7c5c1d2b4c3d2c3c5d4c3d4b8c6d4f6g7f6\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2d7d5c4d5d8d5g1f3d5f5c2d1c7c5e2e3c5d4e3d4e8g8f1d3f5h5\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2d7d5c4d5e6d5a2a3b4c3b2c3e8g8c1g5c7c5e2e3b8d7f1d3d8a5\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2d7d5c4d5e6d5c1d2e8g8e2e3b8c6f1d3f8e8g1e2b4d6a2a3c8g4\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2d7d5c4d5e6d5c1g5h7h6g5f6d8f6a2a3b4c3c2c3c7c6e2e3e8g8\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2d7d5c4d5e6d5c1g5h7h6g5f6d8f6a2a3b4c3c2c3c7c6g1f3e8g8\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2d7d5c4d5e6d5c1g5h7h6g5f6d8f6a2a3b4c3c2c3e8g8e2e3c7c6\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2d7d5c4d5e6d5c1g5h7h6g5h4b8d7e2e3e8g8f1d3c7c5d4c5d7c5\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2d7d5c4d5e6d5c1g5h7h6g5h4c7c5d4c5b8c6e2e3g7g5h4g3d8a5\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2d7d5c4d5e6d5c1g5h7h6g5h4c7c5d4c5g7g5h4g3f6e4e2e3d8a5\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2d7d5c4d5e6d5c1g5h7h6g5h4c7c5d4c5g7g5h4g3f6e4e2e3d8a5\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2d7d5c4d5e6d5g1f3c7c5a2a3b4c3b2c3e8g8c1g5b8d7e2e3d8a5\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2e8g8a2a3b4c3c2c3b7b6c1g5c7c5d4c5b6c5e2e3b8c6g1h3h7h6\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2e8g8a2a3b4c3c2c3b7b6c1g5c7c5d4c5b6c5e2e3d7d6f1d3b8d7\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2e8g8a2a3b4c3c2c3b7b6c1g5c7c5d4c5b6c5e2e3d7d6f1d3b8d7\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2e8g8a2a3b4c3c2c3b7b6c1g5c7c5d4c5b6c5e2e3d7d6f1d3b8d7\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2e8g8a2a3b4c3c2c3b7b6c1g5c8a6e2e3d7d6f1d3b8d7b2b4c7c5\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2e8g8a2a3b4c3c2c3b7b6c1g5c8b7f2f3h7h6g5h4d7d5e2e3b8d7\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2e8g8a2a3b4c3c2c3b7b6c1g5c8b7f2f3h7h6g5h4d7d5e2e3b8d7\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2e8g8a2a3b4c3c2c3b7b6c1g5c8b7g1f3d7d6e2e3b8d7c3c2d8e8\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2e8g8a2a3b4c3c2c3b7b6c1g5h7h6g5h4c8b7e2e3d7d6f2f3b8d7\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2e8g8a2a3b4c3c2c3b7b6g1f3c8b7e2e3d7d6b2b3b8d7c1b2d8e7\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2e8g8a2a3b4c3c2c3b7b6g1f3c8b7e2e3d7d6f1e2b8d7e1g1f6e4\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2e8g8c1g5h7h6g5h4c7c5d4c5b8a6e2e3a6c5g1e2d7d5e1c1c8d7\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2e8g8g1f3c7c5d4c5b8a6a2a3b4c5b2b4c5e7c1b2b7b6e2e3c8b7\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2e8g8g1f3c7c5d4c5b8a6c1d2a6c5e2e3b7b6f1e2c8b7e1g1c5e4\r
+d2d4g8f6c2c4e7e6b1c3f8b4d1c2e8g8g1f3c7c5d4c5b8a6g2g3a6c5f1g2c5e4c1d2e4d2f3d2d7d5\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3b7b6a2a3b4c3b2c3c8b7f2f3b8c6e3e4d7d6f1d3c6a5g1e2d8d7\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3b7b6f1d3c8b7g1f3e8g8e1g1c7c5c1d2c5d4e3d4d7d5c4d5f6d5\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3b7b6f1d3c8b7g1f3f6e4d1c2f7f5e1g1b4c3b2c3e8g8f3e1d7d6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3b7b6f1d3c8b7g1f3f6e4e1g1b4c3b2c3e4c3d1c2b7f3g2f3d8g5\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3b7b6g1e2c8a6a2a3b4e7e2f4d7d5c4d5a6f1e1f1e6d5g2g4c7c6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3b7b6g1e2c8a6a2a3b4e7e2g3d7d5c4d5a6f1g3f1e6d5f1g3d8d7\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3b7b6g1e2c8a6e2g3e8g8e3e4d7d6c1d2c7c5a2a3b4a5d4d5e6d5\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3b7b6g1e2c8a6e2g3e8g8f1d3c7c5e1g1c5d4e3d4d7d5c4d5a6d3\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3b7b6g1e2c8b7a2a3b4c3e2c3e8g8f1d3c7c5d4d5b6b5e1g1b5c4\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3b7b6g1e2e8g8a2a3b4c3e2c3d7d5c4d5e6d5b2b4c7c5b4c5b6c5\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5a2a3b4c3b2c3b7b6f1d3c8b7f2f3b8c6g1e2e8g8e1g1c6a5\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5a2a3b4c3b2c3b8c6f1d3e8g8g1e2b7b6e3e4f6e8c1e3d7d6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5f1d3b7b6g1f3c8b7e1g1e8g8c1d2d7d6d1c2b8d7a2a3b4c3\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5f1d3b7b6g1f3c8b7e1g1e8g8c3a4c5d4e3d4d8c7a2a3b4e7\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5f1d3b8c6g1e2c5d4e3d4d7d5c4d5f6d5e1g1b4d6c3e4d6e7\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5f1d3b8c6g1e2c5d4e3d4d7d5c4d5f6d5e1g1b4d6c3e4d6e7\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5f1d3b8c6g1e2c5d4e3d4d7d5c4d5f6d5e1g1e8g8d3b1b4e7\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5f1d3b8c6g1e2c5d4e3d4d7d5c4d5f6d5e1g1e8g8d3c2b4d6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5f1d3b8c6g1f3b4c3b2c3d7d6e1g1e6e5d1c2e8g8f3g5h7h6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5f1d3b8c6g1f3b4c3b2c3d7d6e1g1e8g8f3d2e6e5d2e4b7b6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5f1d3b8c6g1f3d7d5e1g1e8g8a2a3b4c3b2c3d5c4d3c4d8c7\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5f1d3b8c6g1f3d7d5e1g1e8g8a2a3b4c3b2c3d5c4d3c4d8c7\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5f1d3b8c6g1f3d7d5e1g1e8g8a2a3b4c3b2c3d5c4d3c4d8c7\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5f1d3b8c6g1f3e8g8e1g1d7d5a2a3b4c3b2c3d5c4d3c4d8c7\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5f1d3c5d4e3d4d7d5c4d5f6d5g1e2e8g8e1g1b8c6c3d5e6d5\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5f1d3d7d5g1f3b8c6e1g1e8g8a2a3c5d4e3d4d5c4d3c4b4e7\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5f1d3d7d5g1f3d5c4d3c4a7a6a2a3b4a5e1g1b7b5c4e2c5d4\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5f1d3d7d5g1f3e8g8e1g1b7b6c4d5e6d5c1d2c8g4a2a3b4c3\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5f1d3d7d5g1f3e8g8e1g1b7b6c4d5e6d5f3e5f8e8c1d2c8a6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5f1d3d7d5g1f3e8g8e1g1b8c6a2a3b4c3b2c3d5c4d3c4d8c7\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5f1d3d7d5g1f3e8g8e1g1b8c6a2a3b4c3b2c3d5c4d3c4d8c7\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5f1d3d7d5g1f3e8g8e1g1b8c6a2a3b4c3b2c3d5c4d3c4d8c7\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5f1d3d7d5g1f3e8g8e1g1b8c6a2a3b4c3b2c3d5c4d3c4d8c7\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5f1d3d7d5g1f3e8g8e1g1b8c6a2a3b4c3b2c3d5c4d3c4d8c7\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5f1d3d7d5g1f3e8g8e1g1c5d4e3d4d5c4d3c4b7b6c1g5c8b7\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5f1d3e8g8a2a3b4c3b2c3b7b6e3e4c8b7c1g5h7h6h2h4d7d6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5f1d3e8g8a2a3b4c3b2c3b7b6g1e2c8b7e1g1d7d6d1c2d6d5\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5f1d3e8g8a2a3b4c3b2c3b8c6g1e2b7b6e1g1c8a6e3e4f6e8\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5f1d3e8g8g1f3b7b6e1g1c8b7a2a3b4c3b2c3b7e4d3e2b8c6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5f1d3e8g8g1f3b7b6e1g1c8b7c1d2c5d4e3d4d7d5c4d5b4c3\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5f1d3e8g8g1f3d7d5e1g1b8c6a2a3b4c3b2c3b7b6c4d5e6d5\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5f1d3e8g8g1f3d7d5e1g1b8c6a2a3b4c3b2c3d5c4d3c4d8c7\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5f1d3e8g8g1f3d7d5e1g1b8c6a2a3b4c3b2c3d5c4d3c4d8c7\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5f1d3e8g8g1f3d7d5e1g1b8c6a2a3b4c3b2c3d5c4d3c4d8c7\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5f1d3e8g8g1f3d7d5e1g1b8d7a2a3d5c4d3c4c5d4e3d4b4e7\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5f1d3e8g8g1f3d7d5e1g1d5c4d3c4b7b6d1e2c8b7f1d1c5d4\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5g1e2c5d4e3d4d7d5c4c5f6e4c1d2e4d2d1d2b7b6a2a3b4c3\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5g1e2c5d4e3d4e8g8a2a3b4e7d4d5e6d5c4d5f8e8d5d6e7f8\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5g1e2c5d4e3d4e8g8a2a3b4e7e2f4d7d5c4d5f6d5c3d5e6d5\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5g1e2d7d5a2a3b4c3e2c3c5d4e3d4d5c4f1c4b8c6c1e3e8g8\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5g1f3d7d5a2a3b4c3b2c3e8g8c4d5e6d5f1d3b8c6e1g1c8g4\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5g1f3d7d5f1e2e8g8e1g1b8c6c4d5e6d5d4c5b4c5a2a3a7a6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5g1f3e8g8f1d3b7b6d4d5e6d5c4d5f6d5d3h7g8h7d1d5b4c3\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5g1f3e8g8f1d3d7d5e1g1b8c6a2a3b4c3b2c3d5c4d3c4d8c7\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3c7c5g1f3e8g8f1d3d7d5e1g1d5c4d3c4b8d7c1d2c5d4e3d4d7b6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3d7d5a2a3b4d6g1f3e8g8c4c5d6e7b2b4f6e4c1b2b8d7f1d3f7f5\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3d7d5a2a3b4e7g1f3e8g8b2b4b8d7c1b2c7c6f1d3d5c4d3c4e7d6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3d7d5a2a3b4e7g1f3e8g8f1d3c7c5e1g1b7b6d1e2b8c6d4c5b6c5\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3d7d5c1d2e8g8g1f3b8c6f1d3d5c4d3c4a7a6e1g1b7b5c4d3c8b7\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3d7d5f1d3e8g8g1f3c7c5e1g1b8d7a2a3b4a5d1c2c5d4e3d4d5c4\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3d7d5f1d3e8g8g1f3d5c4d3c4c7c5e1g1c5d4e3d4b8c6a2a3b4c3\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3d7d5g1f3e8g8f1d3c7c5e1g1b8c6a2a3b4c3b2c3d8c7d1c2c6a5\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3d7d5g1f3e8g8f1d3c7c5e1g1d5c4d3c4c8d7a2a3b4c3b2c3d7c6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8a2a3b4c3b2c3d7d6g1e2e6e5e2g3f8e8f2f3c7c5e3e4e5d4\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8a2a3b4c3b2c3f8e8g1e2e6e5e2g3d7d6f1e2b8d7e1g1c7c5\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3b7b6g1e2d7d5e1g1d5c4d3c4c8b7f2f3c7c5a2a3c5d4\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3c7c5a2a3b4c3b2c3b8c6g1e2b7b6e3e4f6e8e1g1c8a6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3c7c5d4d5b7b5d5e6f7e6c4b5c8b7g1f3d7d5e1g1b8d7\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3c7c5g1e2d7d5e1g1d5c4d3c4b8c6a2a3b4c3b2c3d8c7\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3c7c5g1f3b7b6e1g1c8b7c3a4c5d4a2a3b4e7e3d4d8c7\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3c7c5g1f3d7d5e1g1b7b6c4d5e6d5d4c5b6c5c3e2b8c6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3c7c5g1f3d7d5e1g1b8c6a2a3b4a5c4d5e6d5d4c5a5c3\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3c7c5g1f3d7d5e1g1b8c6a2a3b4c3b2c3d5c4d3c4d8c7\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3c7c5g1f3d7d5e1g1b8c6a2a3b4c3b2c3d8c7c4d5e6d5\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3c7c5g1f3d7d5e1g1b8c6a2a3b4c3b2c3d8c7c4d5e6d5\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3c7c5g1f3d7d5e1g1b8c6a2a3d5c4d3c4b4a5d1d3a7a6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3c7c5g1f3d7d5e1g1b8d7a2a3b4a5c4d5e6d5d1e2f8e8\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3c7c5g1f3d7d5e1g1d5c4d3c4b8c6a2a3b4a5c4a2a5b6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3c7c5g1f3d7d5e1g1d5c4d3c4b8c6a2a3b4a5c4a2a7a6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3c7c5g1f3d7d5e1g1d5c4d3c4b8c6a2a3b4a5c4a2a7a6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3c7c5g1f3d7d5e1g1d5c4d3c4b8c6a2a3b4a5c4d3c5d4\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3c7c5g1f3d7d5e1g1d5c4d3c4b8d7c4b3b7b6a2a3c5d4\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3c7c5g1f3d7d5e1g1d5c4d3c4c5d4e3d4b7b6d1e2c8b7\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3c7c5g1f3d7d5e1g1d5c4d3c4d8e7a2a3b4a5d1c2c8d7\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3d7d5a2a3b4c3b2c3d5c4d3c4c7c5g1e2d8c7c4d3b7b6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3d7d5a2a3d5c4d3c4b4d6d1c2b8d7g1f3a7a6c4a2c7c5\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3d7d5a2a3d5c4d3c4b4d6d1c2b8d7g1f3c7c5d4c5d6c5\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3d7d5g1e2d5c4d3c4e6e5e1g1e5d4e3d4b8c6h2h3c8f5\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3d7d5g1f3b7b6e1g1c7c5d1e2b8d7c4d5e6d5a2a3b4a5\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3d7d5g1f3b7b6e1g1c8b7a2a3b4c3b2c3d5c4d3c4c7c5\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3d7d5g1f3b7b6e1g1c8b7a2a3b4d6b2b4d5c4d3c4b8d7\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3d7d5g1f3b7b6e1g1c8b7a2a3b4d6d1e2c7c5d4c5b6c5\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3d7d5g1f3b7b6e1g1c8b7c1d2d5c4d3c4b8d7d1e2c7c5\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3d7d5g1f3b7b6e1g1c8b7c4d5e6d5a2a3b4d6b2b4a7a6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3d7d5g1f3b7b6e1g1c8b7c4d5e6d5a2a3b4d6b2b4a7a6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3d7d5g1f3b7b6e1g1c8b7c4d5e6d5c1d2b8d7d1c2c7c5\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3d7d5g1f3b7b6e1g1c8b7c4d5e6d5f3e5b4d6f2f4c7c5\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3d7d5g1f3b7b6e1g1c8b7d1e2b8d7a2a3b4c3b2c3c7c5\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3d7d5g1f3c7c5e1g1b7b6c4d5e6d5d4c5b6c5c3a4b8d7\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3d7d5g1f3c7c5e1g1b8c6a2a3b4c3b2c3b7b6c4d5e6d5\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3d7d5g1f3c7c5e1g1b8c6a2a3b4c3b2c3b7b6c4d5e6d5\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3d7d5g1f3c7c5e1g1b8c6a2a3b4c3b2c3b7b6c4d5e6d5\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3d7d5g1f3c7c5e1g1b8c6a2a3b4c3b2c3b7b6f3e5c8b7\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3d7d5g1f3c7c5e1g1b8c6a2a3b4c3b2c3d8c7c4d5e6d5\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3d7d5g1f3c7c5e1g1b8c6a2a3b4c3b2c3d8c7c4d5e6d5\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3d7d5g1f3c7c5e1g1b8c6a2a3b4c3b2c3d8c7c4d5e6d5\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3d7d5g1f3c7c5e1g1b8c6a2a3d5c4d3c4b4a5d1d3a7a6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3d7d5g1f3c7c5e1g1b8d7a2a3b4a5d1c2c5d4e3d4d5c4\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3d7d5g1f3c7c5e1g1b8d7c4d5e6d5a2a3b4c3b2c3f8e8\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3d7d5g1f3c7c5e1g1b8d7d1e2a7a6a2a3b4a5a1b1d5c4\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3d7d5g1f3c7c5e1g1b8d7d1e2a7a6a2a3c5d4e3d4d5c4\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3d7d5g1f3c7c5e1g1c5d4e3d4d5c4d3c4b7b6f1e1c8b7\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3d7d5g1f3c7c5e1g1d5c4d3c4b8c6a2a3b4a5d1d3a7a6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3d7d5g1f3c7c5e1g1d5c4d3c4b8d7a2a3c5d4e3d4b4c3\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3d7d5g1f3c7c5e1g1d5c4d3c4b8d7d1e2a7a6a2a3c5d4\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3d7d5g1f3d5c4d3c4c7c5e1g1b8c6a2a3b4a5d1d3a7a6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3d7d6g1e2e6e5e1g1b4c3e2c3f8e8b2b3e5e4d3c2c8g4\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8f1d3d7d6g1e2e6e5e1g1b8c6c3d5e5d4e3d4h7h6d5b4c6b4\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8g1e2d7d5a2a3b4e7c4d5e6d5b2b4b7b6e2f4c7c6f1d3e7d6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8g1e2d7d5a2a3b4e7c4d5e6d5b2b4b8d7e2g3f8e8f1d3c7c6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8g1e2d7d5a2a3b4e7c4d5e6d5e2g3c7c5d4c5e7c5b2b4d5d4\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8g1e2d7d5a2a3b4e7c4d5e6d5e2g3c7c5f1d3b8c6e1g1f8e8\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8g1e2d7d5a2a3b4e7c4d5e6d5e2g3c8e6f1d3b8d7e1g1c7c6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8g1e2d7d5a2a3b4e7c4d5e6d5e2g3f8e8b2b4c7c6f1d3b7b5\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8g1e2d7d5a2a3b4e7c4d5e6d5e2g3f8e8f1d3b8d7e1g1a7a6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8g1e2d7d5a2a3b4e7c4d5e6d5g2g3b8d7f1g2d7b6e1g1f8e8\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8g1e2d7d5a2a3b4e7c4d5e6d5g2g3b8d7f1g2d7b6e1g1f8e8\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8g1e2d7d5a2a3b4e7c4d5f6d5d1c2b8d7b2b4c7c6c1d2d5b6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8g1e2d7d5a2a3b4e7c4d5f6d5d1c2b8d7c1d2c7c5c3d5e6d5\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8g1e2d7d5a2a3b4e7c4d5f6d5d1c2b8d7e2g3c7c5f1d3d5f6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8g1e2d7d5a2a3b4e7e2g3c7c5d4c5e7c5b2b4c5e7c1b2d5c4\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8g1e2f8e8a2a3b4f8d4d5d7d6g2g3e6d5c4d5c7c5d5c6b7c6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8g1e2f8e8g2g3d7d5f1g2d5c4e1g1c7c6d1c2b8d7c3e4d7b6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8g1f3b7b6f1e2c8b7e1g1d7d5c4d5e6d5c1d2b4d6a1c1a7a6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8g1f3c7c5f1e2d7d5e1g1c5d4e3d4b8c6c1g5b4e7a1c1b7b6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8g1f3d7d5a2a3b4c3b2c3b7b6c4d5e6d5f1d3c7c5e1g1b8c6\r
+d2d4g8f6c2c4e7e6b1c3f8b4e2e3e8g8g1f3d7d5f1e2b7b6e1g1c8b7a2a3b4d6b2b4d5c4e2c4a7a5\r
+d2d4g8f6c2c4e7e6b1c3f8b4f2f3d7d5a2a3b4c3b2c3c7c5c4d5f6d5d4c5d8a5e2e4d5e7c1e3e8g8\r
+d2d4g8f6c2c4e7e6b1c3f8b4f2f3d7d5a2a3b4c3b2c3c7c5c4d5f6d5d4c5d8a5e2e4d5e7c1e3e8g8\r
+d2d4g8f6c2c4e7e6b1c3f8b4f2f3d7d5a2a3b4c3b2c3e8g8c4d5e6d5e2e3f6h5g1e2b7b6g2g3c8a6\r
+d2d4g8f6c2c4e7e6b1c3f8b4f2f3d7d5a2a3b4e7e2e4d5e4f3e4e6e5d4d5e7c5c1g5a7a5g1f3d8e7\r
+d2d4g8f6c2c4e7e6b1c3f8b4g1f3b7b6c1g5h7h6g5h4g7g5h4g3f6e4d1c2c8b7e2e3d7d6f1d3b4c3\r
+d2d4g8f6c2c4e7e6b1c3f8b4g1f3c7c5e2e3b8c6f1d3b4c3b2c3d7d6e3e4e6e5d4d5c6e7f3h4h7h6\r
+d2d4g8f6c2c4e7e6b1c3f8b4g1f3c7c5e2e3d7d5a2a3b4c3b2c3e8g8c1b2b8c6a1c1f8e8f1d3d5c4\r
+d2d4g8f6c2c4e7e6b1c3f8b4g1f3c7c5e2e3d7d5a2a3b4c3b2c3e8g8f1d3b8d7e1g1b7b6c4d5e6d5\r
+d2d4g8f6c2c4e7e6b1c3f8b4g1f3c7c5e2e3d7d5f1d3e8g8e1g1b8c6a2a3b4c3b2c3d5c4d3c4d8c7\r
+d2d4g8f6c2c4e7e6b1c3f8b4g1f3c7c5e2e3e8g8f1e2b7b6e1g1c8b7c3a4c5d4e3d4b4e7a2a3f6e4\r
+d2d4g8f6c2c4e7e6b1c3f8b4g1f3c7c5e2e3e8g8f1e2d7d5e1g1b8c6c4d5c5d4d5c6d4c3d1b3d8e7\r
+d2d4g8f6c2c4e7e6b1c3f8b4g1f3c7c5g2g3b7b6f1g2c8b7e1g1c5d4d1d4b8c6d4d3e8g8f1d1a8c8\r
+d2d4g8f6c2c4e7e6b1c3f8b4g1f3c7c5g2g3b7b6f1g2c8b7e1g1c5d4d1d4b8c6d4d3e8g8f1d1a8c8\r
+d2d4g8f6c2c4e7e6b1c3f8b4g1f3c7c5g2g3b8c6f1g2d7d5c4d5f6d5c1d2c5d4f3d4c6d4c3d5b4d2\r
+d2d4g8f6c2c4e7e6b1c3f8b4g1f3c7c5g2g3b8c6f1g2f6e4c1d2b4c3b2c3e8g8e1g1c6a5d4c5d8c7\r
+d2d4g8f6c2c4e7e6b1c3f8b4g1f3c7c5g2g3b8c6f1g2f6e4c1d2b4c3b2c3e8g8e1g1f7f5d2e3e4c3\r
+d2d4g8f6c2c4e7e6b1c3f8b4g1f3c7c5g2g3c5d4f3d4e8g8f1g2d7d5c4d5f6d5d1b3b8a6e1g1d5c3\r
+d2d4g8f6c2c4e7e6b1c3f8b4g1f3c7c5g2g3c5d4f3d4e8g8f1g2d7d5d1b3b4c3b2c3b8c6c4d5c6a5\r
+d2d4g8f6c2c4e7e6b1c3f8b4g1f3c7c5g2g3c5d4f3d4e8g8f1g2d7d5e1g1d5c4d1a4d8e7d4c2b4c5\r
+d2d4g8f6c2c4e7e6b1c3f8b4g1f3c7c5g2g3d7d5c4d5f6d5c1d2c5d4c3d5b4d2d1d2d8d5d2d4d5d4\r
+d2d4g8f6c2c4e7e6b1c3f8b4g1f3c7c5g2g3f6e4d1d3d8a5d3e4b4c3c1d2c3d2f3d2a5b6d4c5b6b2\r
+d2d4g8f6c2c4e7e6b1c3f8b4g1f3d7d6d1b3a7a5g2g3b8c6f1g2f6e4e1g1b4c3b2c3e8g8f3e1f7f5\r
+d2d4g8f6c2c4e7e6b1c3f8b4g1f3e8g8c1g5c7c5e2e3c5d4e3d4h7h6g5h4d7d5a1c1d5c4f1c4b8c6\r
+d2d4g8f6c2c4e7e6b1c3f8b4g1f3e8g8c1g5d7d6e2e3b8d7d1c2b7b6f1d3b4c3b2c3h7h6g5h4c8b7\r
+d2d4g8f6c2c4e7e6b1c3f8b4g1f3e8g8d1b3c7c5d4c5b8a6c1d2d8e7e2e3a6c5b3c2b7b6f1e2c8b7\r
+d2d4g8f6c2c4e7e6b1c3f8b4g1f3f6e4d1c2d7d5e2e3c7c5f1d3e4f6c4d5e6d5d4c5b4c5e1g1b8c6\r
+d2d4g8f6c2c4e7e6b1c3f8b4g1f3f6e4d1c2f7f5g2g3b8c6f1g2e8g8e1g1b4c3b2c3c6a5c4c5d7d6\r
+d2d4g8f6c2c4e7e6g1f3b7b6a2a3c7c5d4d5c8a6d1c2e6d5c4d5g7g6b1c3f8g7g2g3e8g8f1g2d7d6\r
+d2d4g8f6c2c4e7e6g1f3b7b6a2a3c7c5d4d5c8a6d1c2e6d5c4d5g7g6b1c3f8g7g2g3e8g8f1g2d7d6\r
+d2d4g8f6c2c4e7e6g1f3b7b6a2a3c8a6d1c2a6b7b1c3c7c5d4c5b6c5c1g5h7h6g5h4f8e7e2e3e8g8\r
+d2d4g8f6c2c4e7e6g1f3b7b6a2a3c8a6d1c2a6b7b1c3c7c5e2e3f8e7f1d3c5d4e3d4d8c8e1g1b7f3\r
+d2d4g8f6c2c4e7e6g1f3b7b6a2a3c8a6d1c2d7d5c4d5e6d5b1c3c7c6g2g3f8d6f1g2e8g8e1g1f8e8\r
+d2d4g8f6c2c4e7e6g1f3b7b6a2a3c8a6d1c2d7d5e2e3f8e7b2b4e8g8b1d2c7c5b4b5a6b7c1b2b8d7\r
+d2d4g8f6c2c4e7e6g1f3b7b6a2a3c8a6e2e3c7c5b1c3c5d4f3d4a6b7d4b5d7d6f1e2a7a6e2f3d8d7\r
+d2d4g8f6c2c4e7e6g1f3b7b6a2a3c8a6e2e3d7d5b1d2f8e7b2b4e8g8c1b2c7c5d4c5b6c5b4b5a6b7\r
+d2d4g8f6c2c4e7e6g1f3b7b6a2a3c8b7b1c3d7d5c4d5e6d5g2g3f8d6f1g2e8g8e1g1f8e8c1g5b8d7\r
+d2d4g8f6c2c4e7e6g1f3b7b6a2a3c8b7b1c3d7d5c4d5f6d5c1d2b8d7d1c2c7c5c3d5e6d5d4c5b6c5\r
+d2d4g8f6c2c4e7e6g1f3b7b6a2a3c8b7b1c3d7d5c4d5f6d5c1d2f8e7d1c2e8g8e2e4d5c3d2c3b8d7\r
+d2d4g8f6c2c4e7e6g1f3b7b6a2a3c8b7b1c3d7d5c4d5f6d5d1c2c7c5e2e4d5c3b2c3b8d7c1f4c5d4\r
+d2d4g8f6c2c4e7e6g1f3b7b6a2a3c8b7b1c3d7d5e2e3b8d7c4d5e6d5f1e2f8d6b2b4e8g8e1g1a7a6\r
+d2d4g8f6c2c4e7e6g1f3b7b6a2a3c8b7b1c3f8e7d4d5e6d5c4d5e8g8g2g3f8e8f1g2e7f8e1g1c7c6\r
+d2d4g8f6c2c4e7e6g1f3b7b6a2a3c8b7b1c3g7g6c1f4f8g7e2e3e8g8f1e2d7d6e1g1b8d7h2h3f6e4\r
+d2d4g8f6c2c4e7e6g1f3b7b6a2a3c8b7b1c3g7g6c1g5f8g7e2e3h7h6g5h4d7d6d4d5e8g8f1e2g6g5\r
+d2d4g8f6c2c4e7e6g1f3b7b6a2a3f8e7b1c3d7d5c4d5e6d5c1f4e8g8e2e3c7c5f3e5c8b7f1e2b8c6\r
+d2d4g8f6c2c4e7e6g1f3b7b6a2a3f8e7b1c3d7d5c4d5e6d5g2g3e8g8f1g2c8b7e1g1c7c5c1f4b8c6\r
+d2d4g8f6c2c4e7e6g1f3b7b6b1c3c8b7a2a3b7f3g2f3f8e7f3f4d7d5f4f5e6f5f1g2e8g8c4d5e7d6\r
+d2d4g8f6c2c4e7e6g1f3b7b6b1c3c8b7a2a3d7d5c4d5e6d5g2g3f8d6f1g2e8g8e1g1c7c6f3e5d8e7\r
+d2d4g8f6c2c4e7e6g1f3b7b6b1c3c8b7a2a3d7d5c4d5e6d5g2g3f8e7d1a4c7c6f1g2e8g8e1g1b8d7\r
+d2d4g8f6c2c4e7e6g1f3b7b6b1c3c8b7a2a3d7d5c4d5f6d5d1a4b8d7c3d5e6d5c1f4c7c6g2g3f8e7\r
+d2d4g8f6c2c4e7e6g1f3b7b6b1c3c8b7a2a3d7d5c4d5f6d5d1c2b8d7c3d5e6d5c1g5f7f6g5f4c7c5\r
+d2d4g8f6c2c4e7e6g1f3b7b6b1c3c8b7a2a3d7d5c4d5f6d5d1c2c7c5d4c5f8c5c1g5d8c8a1c1h7h6\r
+d2d4g8f6c2c4e7e6g1f3b7b6b1c3c8b7a2a3d7d5c4d5f6d5d1c2d5c3b2c3c7c5e2e4b8c6c1b2a8c8\r
+d2d4g8f6c2c4e7e6g1f3b7b6b1c3c8b7a2a3d7d5c4d5f6d5d1c2d5c3b2c3f8e7e2e3b8d7f1d3c7c5\r
+d2d4g8f6c2c4e7e6g1f3b7b6b1c3c8b7a2a3d7d5c4d5f6d5d1c2d5c3c2c3h7h6e2e3f8d6f1b5c7c6\r
+d2d4g8f6c2c4e7e6g1f3b7b6b1c3c8b7a2a3d7d5c4d5f6d5e2e3b8d7f1d3c7c5e3e4d5f6d4d5e6d5\r
+d2d4g8f6c2c4e7e6g1f3b7b6b1c3c8b7a2a3d7d5c4d5f6d5e2e3f8e7f1d3d5c3b2c3c7c5e1g1e8g8\r
+d2d4g8f6c2c4e7e6g1f3b7b6b1c3c8b7a2a3d7d5c4d5f6d5e2e3g7g6f1b5c7c6b5d3f8g7e3e4d5c3\r
+d2d4g8f6c2c4e7e6g1f3b7b6b1c3c8b7c1f4f8b4d1b3a7a5e2e3f6e4f1d3e4c3b2c3b4e7e3e4d7d6\r
+d2d4g8f6c2c4e7e6g1f3b7b6b1c3c8b7c1g5f8b4a1c1h7h6g5f6d8f6e2e3e8g8f1e2d7d6e1g1b4c3\r
+d2d4g8f6c2c4e7e6g1f3b7b6b1c3c8b7c1g5f8b4e2e3h7h6g5h4g7g5h4g3f6e4d1c2b4c3b2c3d7d6\r
+d2d4g8f6c2c4e7e6g1f3b7b6b1c3c8b7c1g5h7h6g5h4f8e7d1c2c7c5d4c5b6c5e2e3e8g8f1e2d7d6\r
+d2d4g8f6c2c4e7e6g1f3b7b6b1c3c8b7c1g5h7h6g5h4f8e7d1c2c7c5d4c5b6c5e2e3e8g8f1e2d7d6\r
+d2d4g8f6c2c4e7e6g1f3b7b6b1c3c8b7c1g5h7h6g5h4f8e7e2e3f6e4h4e7d8e7c3e4b7e4f1e2e7b4\r
+d2d4g8f6c2c4e7e6g1f3b7b6b1c3c8b7c1g5h7h6g5h4f8e7e2e3f6e4h4e7d8e7c3e4b7e4f1e2e8g8\r
+d2d4g8f6c2c4e7e6g1f3b7b6b1c3c8b7c1g5h7h6g5h4f8e7e2e3f6e4h4e7d8e7c3e4b7e4f1e2e8g8\r
+d2d4g8f6c2c4e7e6g1f3b7b6b1c3c8b7e2e3d7d5c4d5e6d5f1b5c7c6b5d3f8e7e1g1e8g8b2b3b8d7\r
+d2d4g8f6c2c4e7e6g1f3b7b6b1c3c8b7e2e3f8e7f1d3c7c5e1g1c5d4e3d4d7d5c4d5f6d5d3b5b7c6\r
+d2d4g8f6c2c4e7e6g1f3b7b6b1c3c8b7e2e3f8e7f1d3d7d5e1g1e8g8d1e2b8d7b2b3a7a6c1b2e7d6\r
+d2d4g8f6c2c4e7e6g1f3b7b6b1c3f8b4c1d2c8b7e2e3e8g8f1d3d7d5e1g1c7c5c4d5e6d5d4c5b6c5\r
+d2d4g8f6c2c4e7e6g1f3b7b6b1c3f8b4c1g5c8b7e2e3h7h6g5h4b4c3b2c3d7d6f3d2g7g5h4g3d8e7\r
+d2d4g8f6c2c4e7e6g1f3b7b6b1c3f8b4c1g5c8b7e2e3h7h6g5h4g7g5h4g3f6e4d1c2b4c3b2c3d7d6\r
+d2d4g8f6c2c4e7e6g1f3b7b6b1c3f8b4c1g5c8b7e2e3h7h6g5h4g7g5h4g3f6e4d1c2b4c3b2c3d7d6\r
+d2d4g8f6c2c4e7e6g1f3b7b6b1c3f8b4c1g5c8b7e2e3h7h6g5h4g7g5h4g3f6e4d1c2b4c3b2c3d7d6\r
+d2d4g8f6c2c4e7e6g1f3b7b6b1c3f8b4d1b3d8e7c1g5c8b7e2e3a7a5a2a3b4c3b3c3f6e4g5e7e4c3\r
+d2d4g8f6c2c4e7e6g1f3b7b6b1c3f8b4e2e3f6e4d1c2c8b7f1d3f7f5e1g1b4c3b2c3e8g8f3e1c7c5\r
+d2d4g8f6c2c4e7e6g1f3b7b6c1g5h7h6g5h4c8b7e2e3c7c5b1c3f8e7f1e2c5d4f3d4e8g8e1g1b8c6\r
+d2d4g8f6c2c4e7e6g1f3b7b6e2e3c8b7a2a3d7d5b2b4d5c4f1c4f8e7b1d2e8g8a1b1b8d7e1g1a8b8\r
+d2d4g8f6c2c4e7e6g1f3b7b6e2e3c8b7f1d3d7d5e1g1b8d7b2b3f8e7c1b2e8g8b1c3c7c5d1e2a8c8\r
+d2d4g8f6c2c4e7e6g1f3b7b6e2e3c8b7f1d3f8b4b1d2c7c5d4c5b4c5e1g1b8c6a2a3d8c7b2b3c6e5\r
+d2d4g8f6c2c4e7e6g1f3b7b6e2e3c8b7f1d3f8b4b1d2e8g8a2a3b4d2d1d2c7c5b2b4d7d6c1b2b8d7\r
+d2d4g8f6c2c4e7e6g1f3b7b6e2e3c8b7f1d3f8e7b1c3d7d5d1a4c7c6c4d5e6d5e1g1e8g8a4c2c6c5\r
+d2d4g8f6c2c4e7e6g1f3b7b6e2e3c8b7f1d3f8e7b1c3d7d5e1g1e8g8d1e2c7c5d4c5b6c5f1d1d8b6\r
+d2d4g8f6c2c4e7e6g1f3b7b6e2e3c8b7f1d3f8e7e1g1e8g8b1c3d7d5d1e2b8d7b2b3a7a6c1b2e7d6\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b1d2a6b7f1g2c7c5e2e4c5d4e1g1d7d6f3d4b8d7f1e1e6e5\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b1d2a6b7f1g2f8e7e1g1e8g8d1c2b8a6a2a3c7c5b2b3d7d5\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b1d2a6b7f1g2f8e7e1g1e8g8d1c2d7d5c4d5e6d5f3e5c7c5\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b1d2a6b7f1g2f8e7e2e4f6e4f3e5e7b4d1e2d7d5c4d5d8d5\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b1d2c7c5f1g2b8c6d4c5f8c5e1g1e8g8a2a3a6b7b2b4c5e7\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b1d2c7c6f1g2d7d5e1g1f8e7f3e5e8g8b2b3a6b7c1b2b8a6\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b1d2f8b4d1c2a6b7f1g2b7e4c2b3b4d2c1d2e8g8e1g1d7d6\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b1d2f8b4d1c2a6b7f1g2b7e4c2d1b4d2c1d2e8g8e1g1d7d6\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b2b3a6b7f1g2f8b4c1d2a7a5e1g1e8g8b1c3f6e4c3e4b7e4\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b2b3d7d5f1g2d5c4f3e5f8b4e1f1f6d7e5c4c7c6c1b2b6b5\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b2b3d7d5f1g2d5c4f3e5f8b4e1f1f6d7e5c4c7c6c1b2e8g8\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b2b3f8b4c1d2b4d2d1d2d7d5c4d5e6d5d2e3d8e7e3e7e8e7\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b2b3f8b4c1d2b4e7b1c3d7d5c4d5f6d5c3d5e6d5f1g2b8d7\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b2b3f8b4c1d2b4e7b1c3d7d5c4d5f6d5c3d5e6d5f1g2e8g8\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b2b3f8b4c1d2b4e7b1c3d7d5c4d5f6d5f1g2e8g8c3d5e6d5\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b2b3f8b4c1d2b4e7b1c3e8g8e2e4d7d5c4d5a6f1e1f1e6d5\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b2b3f8b4c1d2b4e7b1c3e8g8e2e4d7d5c4d5a6f1e1f1e6d5\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b2b3f8b4c1d2b4e7b1c3e8g8f1g2c7c6e2e4d7d5d1e2b8d7\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b2b3f8b4c1d2b4e7f1g2a6b7b1c3d7d5c4d5e6d5e1g1e8g8\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b2b3f8b4c1d2b4e7f1g2a6b7b1c3e8g8e1g1b8a6f1e1c7c5\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b2b3f8b4c1d2b4e7f1g2c7c6d2c3d7d5b1d2a6b7f3e5e8g8\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b2b3f8b4c1d2b4e7f1g2c7c6d2c3d7d5b1d2b8d7e1g1e8g8\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b2b3f8b4c1d2b4e7f1g2c7c6d2c3d7d5f3e5a6b7b1d2b8d7\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b2b3f8b4c1d2b4e7f1g2c7c6d2c3d7d5f3e5e8g8e1g1a6b7\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b2b3f8b4c1d2b4e7f1g2c7c6d2c3d7d5f3e5f6d7e5d7b8d7\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b2b3f8b4c1d2b4e7f1g2c7c6d2c3d7d5f3e5f6d7e5d7b8d7\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b2b3f8b4c1d2b4e7f1g2c7c6d2c3d7d5f3e5f6d7e5d7b8d7\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b2b3f8b4c1d2b4e7f1g2c7c6d2c3d7d5f3e5f6d7e5d7b8d7\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b2b3f8b4c1d2b4e7f1g2c7c6d2c3d7d5f3e5f6d7e5d7b8d7\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b2b3f8b4c1d2b4e7f1g2c7c6d2c3d7d5f3e5f6e4e1g1e4c3\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b2b3f8b4c1d2b4e7f1g2c7c6d2c3e8g8b1d2d7d5f3e5a6b7\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b2b3f8b4c1d2b4e7f1g2c7c6e1g1d7d5f3e5f6d7e5d7b8d7\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b2b3f8b4c1d2b4e7f1g2d7d5f3e5a6b7e1g1b8d7b1c3c7c5\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b2b3f8b4c1d2b4e7f1g2d7d5f3e5c7c6d2c3f6e4e1g1e4c3\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b2b3f8b4c1d2b4e7f1g2d7d5f3e5e8g8e1g1a6b7b1c3b8d7\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b2b3f8b4c1d2b4e7f1g2e8g8e1g1d7d5c4d5f6d5b1c3b8d7\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b2b3f8b4c1d2b4e7f1g2e8g8e1g1d7d5f3e5c7c6d2c3f6d7\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6b2b3f8b4c1d2b4e7f1g2e8g8e1g1d7d5f3e5c7c6d2c3f6d7\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6d1a4f8e7b1c3e8g8f1g2a6b7a4c2d7d5c4d5e6d5e1g1b8a6\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6d1a4f8e7f1g2e8g8b1c3c7c6f3e5d8e8e1g1d7d5f1e1b6b5\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6d1b3b8c6b1d2f8e7f1g2e8g8e1g1d7d5b3a4a6b7f1d1d8d7\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8a6d1b3d7d5c4d5e6d5b1c3f8e7f1g2e8g8f3e5a6b7e1g1c7c6\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8b7f1g2f8b4c1d2a7a5e1g1e8g8d2g5b4e7d1c2h7h6g5f6e7f6\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8b7f1g2f8b4c1d2b4d2d1d2d7d6e1g1e8g8b1c3f6e4c3e4b7e4\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8b7f1g2f8b4c1d2b4e7b1c3f6e4e1g1e8g8d4d5e4d2d1d2e7f6\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8b7f1g2f8e7b1c3f6e4c1d2d7d6d4d5e4d2d1d2e6e5h2h4b8d7\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8b7f1g2f8e7b1c3f6e4c1d2e7f6e1g1e8g8d1c2e4d2c2d2d7d6\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8b7f1g2f8e7b1c3f6e4c1d2e8g8d4d5e4c3d2c3e7f6a1c1c7c6\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8b7f1g2f8e7b1c3f6e4c1d2f7f5e1g1e8g8d1c2e4c3d2c3b7e4\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8b7f1g2f8e7e1g1e8g8b1c3f6e4c3e4b7e4d4d5e7f6f3e1e4g2\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8b7f1g2f8e7e1g1e8g8b1c3f6e4c3e4b7e4f3e1e4g2e1g2d7d5\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8b7f1g2f8e7e1g1e8g8b1c3f6e4d1c2e4c3c2c3b7e4b2b3c7c5\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8b7f1g2f8e7e1g1e8g8b1c3f6e4d1c2e4c3c2c3c7c5c1e3e7f6\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8b7f1g2f8e7e1g1e8g8b1c3f6e4d1c2e4c3c2c3c7c5f1d1d7d6\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8b7f1g2f8e7e1g1e8g8b1c3f6e4d1c2e4c3c2c3c7c5f1d1e7f6\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8b7f1g2f8e7e1g1e8g8b1c3f6e4d1c2e4c3c2c3d7d6f1d1b8d7\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8b7f1g2f8e7e1g1e8g8b1c3f6e4d1c2e4c3c2c3f7f5b2b3e7f6\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8b7f1g2f8e7e1g1e8g8b1c3f6e4d1c2e4c3c2c3f7f5b2b3e7f6\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8b7f1g2f8e7e1g1e8g8b1c3f6e4d1c2e4c3c2c3f7f5b2b3e7f6\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8b7f1g2f8e7e1g1e8g8b2b3d7d5f3e5c7c5d4c5b6c5c4d5e6d5\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3c8b7f1g2f8e7e1g1e8g8d4d5e6d5f3h4c7c6c4d5f6d5h4f5d5c7\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3f8b4c1d2b4d2d1d2c8a6b1a3c7c5f1g2b8c6e1g1e8g8f1d1a8c8\r
+d2d4g8f6c2c4e7e6g1f3b7b6g2g3f8b4c1d2b4d2d1d2c8a6d2c2c7c5f1g2b8c6d4c5b6c5e1g1e8g8\r
+d2d4g8f6c2c4e7e6g1f3c7c5b1c3c5d4f3d4f8b4d1b3b8a6e2e3f6e4f1e2d8a5e1g1a6c5b3c2b4c3\r
+d2d4g8f6c2c4e7e6g1f3c7c5d4d5d7d6b1c3g7g6e2e4f8g7h2h3e8g8f1d3e6d5c4d5a7a6a2a4f6h5\r
+d2d4g8f6c2c4e7e6g1f3c7c5d4d5e6d5c4d5d7d6b1c3g7g6e2e4f8g7f1e2e8g8e1g1f8e8f3d2b8d7\r
+d2d4g8f6c2c4e7e6g1f3c7c5d4d5e6d5c4d5d7d6b1c3g7g6f3d2b8d7e2e4f8g7f1e2e8g8e1g1a7a6\r
+d2d4g8f6c2c4e7e6g1f3c7c5d4d5e6d5c4d5d7d6b1c3g7g6f3d2b8d7e2e4f8g7f1e2e8g8e1g1f8e8\r
+d2d4g8f6c2c4e7e6g1f3c7c5d4d5e6d5c4d5g7g6b1c3f8g7c1g5e8g8e2e3f8e8f3d2d7d6f1e2a7a6\r
+d2d4g8f6c2c4e7e6g1f3c7c5d4d5e6d5c4d5g7g6b1c3f8g7e2e4e8g8f1e2f8e8f3d2d7d6e1g1b8d7\r
+d2d4g8f6c2c4e7e6g1f3c7c5e2e3d7d5c4d5e6d5b1c3b8c6f1e2a7a6e1g1f8d6d4c5d6c5b2b3e8g8\r
+d2d4g8f6c2c4e7e6g1f3c7c5g2g3c5d4f3d4d8a5b1c3f8b4d1d3f6e4d4b3a5f5d3e3e4c3b2c3b4e7\r
+d2d4g8f6c2c4e7e6g1f3c7c5g2g3c5d4f3d4f8b4c1d2d8b6d2b4b6b4b1c3b4b2d4b5b2b4b5c7e8d8\r
+d2d4g8f6c2c4e7e6g1f3c7c6b1c3d7d5e2e3b8d7f1d3d5c4d3c4b7b5c4d3a7a6e3e4c6c5e4e5c5d4\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3b8d7c1g5h7h6g5h4d5c4e2e4f8e7d1e2d7b6h4g3e8g8e1c1c8d7\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3b8d7d1c2f8e7c4d5e6d5c1f4c7c6h2h3d7f8e2e3f8g6f4h2e8g8\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3c7c5c4d5c5d4d1d4e6d5c1g5f8e7e2e3b8c6d4d2e8g8f1e2c8e6\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3c7c5c4d5f6d5e2e3b8c6f1c4d5c3b2c3f8e7e1g1e8g8e3e4b7b6\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3c7c5c4d5f6d5e2e3b8c6f1d3c5d4e3d4g7g6c1g5d8a5e1g1f8g7\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3c7c5c4d5f6d5e2e3b8c6f1d3d5c3b2c3f8e7d1c2g7g6h2h4h7h5\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3c7c5c4d5f6d5e2e4d5c3b2c3c5d4c3d4b8c6f1c4b7b5c4d3f8b4\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3c7c5c4d5f6d5e2e4d5c3b2c3c5d4c3d4b8c6f1c4b7b5c4e2f8b4\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3c7c5c4d5f6d5g2g3c5d4c3d5d8d5d1d4d5b5e2e4b5b4d4b4f8b4\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3c7c5e2e3b8c6a2a3f6e4d1c2e4c3b2c3f8e7c1b2e8g8f1d3h7h6\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3c7c6c1g5b8d7d1b3f8e7e2e3e8g8f1e2f6e4g5e7d8e7c3e4d5e4\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3c7c6c1g5b8d7e2e3d8a5f3d2f8b4d1c2d5c4g5f6d7f6d2c4b4c3\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3c7c6e2e3b8d7d1c2f8d6b2b3e8g8f1e2e6e5c4d5f6d5c3d5c6d5\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3c7c6e2e3b8d7d1c2f8e7b2b3e8g8f1d3c6c5c4d5e6d5e1g1b7b6\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3c7c6e2e3b8d7f1d3d5c4d3c4b7b5c4b3f8e7e1g1e8g8f1e1c8b7\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3d5c4d1a4c7c6a4c4b7b5c4d3b8d7c1g5c8b7e2e3a7a6f1e2c6c5\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3d5c4e2e4f8b4c1g5c7c5f1c4c5d4f3d4b4c3b2c3d8a5c4b5b8d7\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3d5c4e2e4f8b4c1g5c7c5f1c4c5d4f3d4b4c3b2c3d8a5d4b5c8d7\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3d5c4e2e4f8b4c1g5c7c5f1c4c5d4f3d4b4c3b2c3d8a5d4b5f6e4\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3d5c4e2e4f8b4c1g5c7c5f1c4c5d4f3d4b4c3b2c3d8a5d4b5f6e4\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3f8b4c4d5e6d5d1a4b8c6c1g5h7h6g5f6d8f6e2e3e8g8f1e2c8e6\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3f8b4e2e3e8g8f1d3c7c5e1g1b8c6a2a3b4a5c3e2d5c4d3c4a5b6\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3f8e7c1f4e8g8e2e3b7b6c4d5e6d5f1d3c7c5e1g1c8b7a1c1b8d7\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3f8e7c1f4e8g8e2e3c7c5d4c5b8c6d1c2e7c5a2a3d8a5e1c1c5e7\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3f8e7c1f4e8g8e2e3c7c5d4c5e7c5a1c1b8c6c4d5e6d5f1e2d5d4\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3f8e7c1f4e8g8e2e3c7c5d4c5e7c5a2a3b8c6b2b4c5e7c4d5f6d5\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3f8e7c1f4e8g8e2e3c7c5d4c5e7c5d1c2b8c6a1d1d8a5a2a3c5e7\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3f8e7c1g5e8g8e2e3b8d7a1c1a7a6a2a3c7c6f1d3h7h6g5h4d5c4\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3f8e7c1g5e8g8e2e3b8d7a1c1a7a6c4d5e6d5f1d3c7c6d1c2f8e8\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3f8e7c1g5e8g8e2e3h7h6g5f6e7f6c4d5e6d5d1d2c8e6g2g3c7c5\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3f8e7c1g5e8g8e2e3h7h6g5h4f6e4h4e7d8e7a1c1c7c6f1d3e4c3\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3f8e7c1g5e8g8e2e3h7h6g5h4f6e4h4e7d8e7c4d5e4c3b2c3e6d5\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3f8e7c1g5e8g8e2e3h7h6g5h4f6e4h4e7d8e7d1c2e4c3c2c3d5c4\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3f8e7c1g5h7h6g5f6e7f6d1b3c7c6e1c1d5c4b3c4b7b5c4b3a7a5\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3f8e7c1g5h7h6g5f6e7f6d1b3c7c6e2e3b8d7a1d1e8g8f1d3b7b6\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3f8e7c1g5h7h6g5f6e7f6e2e3e8g8a1c1c7c6f1d3b8d7e1g1d5c4\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3f8e7c1g5h7h6g5h4e8g8a1c1d5c4e2e3c7c5f1c4c5d4f3d4c8d7\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3f8e7c1g5h7h6g5h4e8g8e2e3b7b6a1c1c8b7h4f6e7f6c4d5e6d5\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3f8e7c1g5h7h6g5h4e8g8e2e3b7b6f1e2b8d7e1g1c8b7a1c1c7c5\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3f8e7c1g5h7h6g5h4e8g8e2e3b7b6f1e2c8b7a1c1d5c4e2c4b8d7\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3f8e7c1g5h7h6g5h4e8g8e2e3b7b6f1e2c8b7a1c1d5c4e2c4b8d7\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3f8e7c1g5h7h6g5h4e8g8e2e3b7b6f1e2c8b7h4f6e7f6c4d5e6d5\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3f8e7c1g5h7h6g5h4e8g8e2e3b7b6f1e2c8b7h4f6e7f6c4d5e6d5\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3f8e7c1g5h7h6g5h4e8g8e2e3b7b6f1e2c8b7h4f6e7f6c4d5e6d5\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3f8e7c1g5h7h6g5h4e8g8e2e3b7b6f1e2c8b7h4f6e7f6c4d5e6d5\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3f8e7c1g5h7h6g5h4e8g8e2e3b7b6f1e2c8b7h4f6e7f6c4d5e6d5\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3f8e7c1g5h7h6g5h4e8g8e2e3b7b6f1e2c8b7h4f6e7f6c4d5e6d5\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3f8e7c1g5h7h6g5h4e8g8e2e3b7b6f1e2c8b7h4f6e7f6c4d5e6d5\r
+d2d4g8f6c2c4e7e6g1f3d7d5b1c3f8e7c4d5e6d5c1f4c7c6d1c2g7g6e2e3c8f5f1d3f5d3c2d3b8d7\r
+d2d4g8f6c2c4e7e6g1f3d7d5c1g5b8d7e2e3f8e7b1c3e8g8d1c2c7c5c4d5c5d4f3d4f6d5g5e7d8e7\r
+d2d4g8f6c2c4e7e6g1f3d7d5g2g3d5c4d1a4b8d7f1g2a7a6a4c4b7b5c4c6a8b8c1g5c8b7c6c2c7c5\r
+d2d4g8f6c2c4e7e6g1f3d7d5g2g3d5c4f1g2b8c6e1g1a8b8a2a4a7a6a4a5b7b5a5b6c7b6c1f4f8d6\r
+d2d4g8f6c2c4e7e6g1f3d7d5g2g3d5c4f1g2c7c5e1g1b8c6d1a4c5d4f3d4d8d4g2c6c8d7f1d1d4d1\r
+d2d4g8f6c2c4e7e6g1f3f8b4b1c3c7c5e2e3e8g8f1e2b7b6e1g1c8b7d1b3c5d4b3b4b8c6b4a3d4c3\r
+d2d4g8f6c2c4e7e6g1f3f8b4b1d2d7d5d1a4b8c6a2a3b4d2c1d2f6e4a4c2a7a5e2e3e8g8f1d3f7f5\r
+d2d4g8f6c2c4e7e6g1f3f8b4b1d2e8g8a2a3b4e7e2e4d7d5e4e5f6d7f1d3c7c5c4d5e6d5e1g1b8c6\r
+d2d4g8f6c2c4e7e6g1f3f8b4c1d2a7a5b1c3e8g8e2e3d7d6d1c2b8d7a2a3b4c3d2c3d8e7f1e2a5a4\r
+d2d4g8f6c2c4e7e6g1f3f8b4c1d2a7a5b1c3e8g8e2e3d7d6d1c2b8d7f1d3e6e5e1g1f8e8e3e4e5d4\r
+d2d4g8f6c2c4e7e6g1f3f8b4c1d2a7a5g2g3d7d5d1c2b8c6a2a3b4e7f1g2d5c4c2c4d8d5c4d3e8g8\r
+d2d4g8f6c2c4e7e6g1f3f8b4c1d2b4d2d1d2e8g8g2g3b7b6f1g2c8b7b1c3f6e4c3e4b7e4e1g1d7d6\r
+d2d4g8f6c2c4e7e6g1f3f8b4c1d2c7c5d2b4c5b4a2a3b4a3a1a3d7d6e2e3e8g8f1e2b7b6e1g1a7a5\r
+d2d4g8f6c2c4e7e6g1f3f8b4c1d2d8e7b1c3b4c3d2c3f6e4d1c2e4c3c2c3d7d6a1c1e8g8c4c5b8d7\r
+d2d4g8f6c2c4e7e6g1f3f8b4c1d2d8e7g2g3b8c6b1c3d7d5c4d5e6d5f1g2e8g8e1g1a7a5d1c2c8g4\r
+d2d4g8f6c2c4e7e6g1f3f8b4c1d2d8e7g2g3b8c6b1c3e8g8f1g2d7d6e1g1b4c3d2c3e6e5d1c2a7a5\r
+d2d4g8f6c2c4e7e6g2g3c7c5d4d5e6d5c4d5b7b5f1g2d7d6a2a3a7a5b1c3d8b6g1f3f8e7e1g1e8g8\r
+d2d4g8f6c2c4e7e6g2g3c7c5d4d5e6d5c4d5b7b5f1g2d7d6a2a3a7a5b1c3d8b6g1f3f8e7e1g1e8g8\r
+d2d4g8f6c2c4e7e6g2g3c7c5d4d5e6d5c4d5b7b5f1g2d7d6b2b4b8a6b4c5a6c5g1f3g7g6e1g1f8g7\r
+d2d4g8f6c2c4e7e6g2g3c7c5d4d5e6d5c4d5d7d6b1c3g7g6g1f3f8g7f1g2e8g8e1g1a7a6a2a4b8d7\r
+d2d4g8f6c2c4e7e6g2g3c7c5d4d5e6d5c4d5f8d6b1c3d6e5d5d6d8b6g1f3e5d6c1g5d6e7f1h3e8g8\r
+d2d4g8f6c2c4e7e6g2g3c7c5g1f3c5d4f3d4d7d5f1g2e6e5d4f3d5d4e1g1b8c6e2e3f8c5e3d4c5d4\r
+d2d4g8f6c2c4e7e6g2g3d7d5f1g2b8c6b1c3f8b4a2a3b4c3b2c3e8g8c1g5d5c4e2e4h7h6g5f6d8f6\r
+d2d4g8f6c2c4e7e6g2g3d7d5f1g2c7c6d1a4b8d7b1d2d5c4a4c4e6e5g1f3d7b6c4d3e5d4d3d4d8d4\r
+d2d4g8f6c2c4e7e6g2g3d7d5f1g2d5c4d1a4b8d7g1f3c7c5b1c3a7a6e1g1f8e7d4c5e7c5a4c4b7b5\r
+d2d4g8f6c2c4e7e6g2g3d7d5f1g2d5c4d1a4c8d7a4c4d7c6g1f3b8d7b1c3d7b6c4d3f8b4e1g1e8g8\r
+d2d4g8f6c2c4e7e6g2g3d7d5f1g2d5c4d1a4c8d7a4c4d7c6g1f3c6d5c4a4d8d7a4d7b8d7e1g1c7c5\r
+d2d4g8f6c2c4e7e6g2g3d7d5f1g2d5c4g1f3b8d7e1g1a8b8a2a4b7b6f3d2e6e5d2c4e5d4d1d4f8c5\r
+d2d4g8f6c2c4e7e6g2g3d7d5f1g2d5c4g1f3c7c5e1g1b8c6d1a4c8d7a4c4b7b5c4d3a8c8d4c5f8c5\r
+d2d4g8f6c2c4e7e6g2g3d7d5f1g2d5c4g1f3c7c5e1g1b8c6d1a4c8d7a4c4c5d4f3d4a8c8b1c3d8a5\r
+d2d4g8f6c2c4e7e6g2g3d7d5f1g2d5c4g1f3c7c5e1g1b8c6d4c5d8d1f1d1f8c5b1d2e8e7d2c4f6g4\r
+d2d4g8f6c2c4e7e6g2g3d7d5f1g2d5c4g1f3c7c5e1g1b8c6f3e5c8d7b1a3c5d4a3c4f8c5d1b3e8g8\r
+d2d4g8f6c2c4e7e6g2g3d7d5f1g2d5c4g1f3c7c5e1g1b8d7b1a3d7b6a3c4b6c4d1a4c8d7a4c4b7b5\r
+d2d4g8f6c2c4e7e6g2g3d7d5f1g2d5c4g1f3c8d7d1c2c7c5e1g1d7c6c2c4b8d7c1g5a8c8g5f6d7f6\r
+d2d4g8f6c2c4e7e6g2g3d7d5f1g2d5c4g1f3c8d7d1c2c7c5f3e5b8c6e5c6d7c6g2c6b7c6d4c5f8c5\r
+d2d4g8f6c2c4e7e6g2g3d7d5f1g2d5c4g1f3f8b4c1d2b4e7d1c2c8d7e1g1d7c6c2c4c6d5c4c2b8c6\r
+d2d4g8f6c2c4e7e6g2g3d7d5f1g2f8e7g1f3e8g8e1g1c7c6b2b3b8d7c1b2b7b6b1d2c8b7a1c1a8c8\r
+d2d4g8f6c2c4e7e6g2g3d7d5f1g2f8e7g1f3e8g8e1g1d5c4d1c2a7a6a2a4c8d7c2c4d7c6c1g5a6a5\r
+d2d4g8f6c2c4e7e6g2g3d7d5f1g2f8e7g1f3e8g8e1g1d5c4d1c2a7a6c2c4b7b5c4c2c8b7c1d2b7e4\r
+d2d4g8f6c2c4e7e6g2g3d7d5f1g2f8e7g1f3e8g8e1g1d5c4d1c2a7a6c2c4b7b5c4c2c8b7c1g5b8d7\r
+d2d4g8f6c2c4e7e6g2g3d7d5g1f3c7c6f1g2b8d7d1c2f8d6b1d2e8g8e1g1f8e8f1e1e6e5c4d5c6d5\r
+d2d4g8f6c2c4e7e6g2g3d7d5g1f3d5c4d1a4b8d7a4c4c7c5f1g2d7b6c4d3c5d4e1g1f8e7f3d4e8g8\r
+d2d4g8f6c2c4e7e6g2g3d7d5g1f3f8e7f1g2e8g8e1g1d5c4d1c2a7a6a2a4c8d7f1d1d7c6b1c3e7b4\r
+d2d4g8f6c2c4e7e6g2g3f8b4b1d2f6e4g1f3f7f5f1g2e8g8e1g1b8c6d4d5e4d2c1d2b4d2d1d2c6e7\r
+d2d4g8f6c2c4e7e6g2g3f8b4c1d2b4e7f1g2d7d5c4d5e6d5b1c3e8g8e2e3c7c6g1e2b8a6e1g1a6c7\r
+d2d4g8f6c2c4e7e6g2g3f8b4c1d2b4e7f1g2d7d5g1f3e8g8e1g1c7c6d1b3b8d7d2g5b7b6f1e1c8b7\r
+d2d4g8f6c2c4e7e6g2g3f8b4c1d2b4e7f1g2d7d5g1f3e8g8e1g1c7c6d1c2b7b6d2f4c8b7b1d2b8d7\r
+d2d4g8f6c2c4e7e6g2g3f8b4c1d2b4e7f1g2d7d5g1f3e8g8e1g1c7c6d1c2b7b6d2g5b8d7b1d2c8b7\r
+d2d4g8f6c2c4e7e6g2g3f8b4c1d2b4e7f1g2d7d5g1f3e8g8e1g1c7c6d1c2b7b6f3e5c8b7c4d5c6d5\r
+d2d4g8f6c2c4e7e6g2g3f8b4c1d2b4e7g1f3d7d5f1g2e8g8e1g1c7c6d1b3b7b6b1c3c8b7a1c1b8d7\r
+d2d4g8f6c2c4g7g6b1c3d7d5c1f4e7e6e2e3f8g7g1f3e8g8d1b3c7c6f1e2f8e8e1g1b8d7f1d1d5c4\r
+d2d4g8f6c2c4g7g6b1c3d7d5c1f4f6h5f4e5f7f6e5g3h5g3h2g3c7c6e2e3f8g7f1d3e8g8h1h7f6f5\r
+d2d4g8f6c2c4g7g6b1c3d7d5c1f4f8g7e2e3c7c5d4c5d8a5a1c1d5c4f1c4e8g8g1f3a5c5c4b3b8c6\r
+d2d4g8f6c2c4g7g6b1c3d7d5c1f4f8g7e2e3c7c5d4c5d8a5a1c1d5c4f1c4e8g8g1f3a5c5c4b3b8c6\r
+d2d4g8f6c2c4g7g6b1c3d7d5c1f4f8g7e2e3c7c5d4c5d8a5a1c1d5c4f1c4e8g8g1f3b8c6e1g1a5c5\r
+d2d4g8f6c2c4g7g6b1c3d7d5c1f4f8g7e2e3c7c5d4c5d8a5a1c1f6e4c4d5e4c3d1d2a5a2b2c3a2a5\r
+d2d4g8f6c2c4g7g6b1c3d7d5c1f4f8g7e2e3c7c5d4c5d8a5a1c1f6e4c4d5e4c3d1d2a5a2b2c3a2d2\r
+d2d4g8f6c2c4g7g6b1c3d7d5c1f4f8g7e2e3c7c6a1c1e8g8g1f3c8g4h2h3g4f3d1f3d8a5f1d3b8d7\r
+d2d4g8f6c2c4g7g6b1c3d7d5c1f4f8g7e2e3e8g8c4d5f6d5c3d5d8d5f4c7b8a6f1a6d5g2d1f3g2f3\r
+d2d4g8f6c2c4g7g6b1c3d7d5c1f4f8g7e2e3e8g8d1b3c7c5c4d5c5d4e3d4e7e6d5e6b8c6e6f7g8h8\r
+d2d4g8f6c2c4g7g6b1c3d7d5c1f4f8g7g1f3e8g8e2e3c7c5d4c5f6e4f4e5g7e5f3e5e4c3b2c3d8a5\r
+d2d4g8f6c2c4g7g6b1c3d7d5c1g5f6e4g5f4c7c6e2e3f8g7f1d3e4c3b2c3d8a5g1e2d5c4d3c4b8d7\r
+d2d4g8f6c2c4g7g6b1c3d7d5c1g5f6e4g5h4e4c3b2c3d5c4e2e3c8e6a1b1b7b6f1e2f8h6g1f3c7c6\r
+d2d4g8f6c2c4g7g6b1c3d7d5c4d5f6d5e2e4d5b6h2h3f8g7g1f3e8g8f1e2a7a5e1g1a5a4a2a3f7f5\r
+d2d4g8f6c2c4g7g6b1c3d7d5c4d5f6d5e2e4d5c3b2c3c7c5f1c4f8g7g1e2c5d4c3d4b8c6c1e3d8a5\r
+d2d4g8f6c2c4g7g6b1c3d7d5c4d5f6d5e2e4d5c3b2c3c7c5f1c4f8g7g1e2c5d4c3d4b8c6c1e3e8g8\r
+d2d4g8f6c2c4g7g6b1c3d7d5c4d5f6d5e2e4d5c3b2c3c7c5f1c4f8g7g1e2e8g8e1g1b8c6c1e3c6a5\r
+d2d4g8f6c2c4g7g6b1c3d7d5c4d5f6d5e2e4d5c3b2c3c7c5f1c4f8g7g1e2e8g8e1g1b8d7c1g5h7h6\r
+d2d4g8f6c2c4g7g6b1c3d7d5c4d5f6d5e2e4d5c3b2c3c7c5f1c4f8g7g1e2e8g8e1g1c5d4c3d4b8c6\r
+d2d4g8f6c2c4g7g6b1c3d7d5c4d5f6d5e2e4d5c3b2c3f8g7c1e3c7c5d1d2c5d4c3d4b8c6a1d1d8a5\r
+d2d4g8f6c2c4g7g6b1c3d7d5c4d5f6d5e2e4d5c3b2c3f8g7c1e3c7c5d1d2d8a5a1b1b7b6f1b5c8d7\r
+d2d4g8f6c2c4g7g6b1c3d7d5c4d5f6d5e2e4d5c3b2c3f8g7c1e3c7c5d1d2d8a5a1b1c5d4c3d4a5d2\r
+d2d4g8f6c2c4g7g6b1c3d7d5c4d5f6d5e2e4d5c3b2c3f8g7c1e3c7c5d1d2d8a5a1c1c5d4c3d4a5d2\r
+d2d4g8f6c2c4g7g6b1c3d7d5c4d5f6d5e2e4d5c3b2c3f8g7c1e3c7c5d1d2e8g8a1c1d8a5g1f3e7e6\r
+d2d4g8f6c2c4g7g6b1c3d7d5c4d5f6d5e2e4d5c3b2c3f8g7c1e3c7c5d1d2e8g8g1f3c8g4f3g5c5d4\r
+d2d4g8f6c2c4g7g6b1c3d7d5c4d5f6d5e2e4d5c3b2c3f8g7c1e3c7c5d1d2e8g8g1f3d8a5a1c1e7e6\r
+d2d4g8f6c2c4g7g6b1c3d7d5c4d5f6d5e2e4d5c3b2c3f8g7f1c4b7b6d1f3e8g8e4e5c8a6c4d5c7c6\r
+d2d4g8f6c2c4g7g6b1c3d7d5c4d5f6d5e2e4d5c3b2c3f8g7f1c4b7b6d1f3e8g8g1e2b8c6h2h4c6a5\r
+d2d4g8f6c2c4g7g6b1c3d7d5c4d5f6d5e2e4d5c3b2c3f8g7f1c4c7c5g1e2b8c6c1e3e8g8e1g1c5d4\r
+d2d4g8f6c2c4g7g6b1c3d7d5c4d5f6d5e2e4d5c3b2c3f8g7f1c4c7c5g1e2b8c6c1e3e8g8e1g1c8g4\r
+d2d4g8f6c2c4g7g6b1c3d7d5c4d5f6d5e2e4d5c3b2c3f8g7f1c4c7c5g1e2b8c6c1e3e8g8e1g1c8g4\r
+d2d4g8f6c2c4g7g6b1c3d7d5c4d5f6d5e2e4d5c3b2c3f8g7f1c4c7c5g1e2b8c6c1e3e8g8e1g1c8g4\r
+d2d4g8f6c2c4g7g6b1c3d7d5c4d5f6d5e2e4d5c3b2c3f8g7f1c4c7c5g1e2b8c6c1e3e8g8e1g1c8g4\r
+d2d4g8f6c2c4g7g6b1c3d7d5c4d5f6d5e2e4d5c3b2c3f8g7f1c4c7c5g1e2b8c6c1e3e8g8e1g1c8g4\r
+d2d4g8f6c2c4g7g6b1c3d7d5c4d5f6d5e2e4d5c3b2c3f8g7f1c4c7c5g1e2b8c6c1e3e8g8e1g1d8c7\r
+d2d4g8f6c2c4g7g6b1c3d7d5c4d5f6d5e2e4d5c3b2c3f8g7f1c4c7c5g1e2e8g8c1e3b8c6a1c1c5d4\r
+d2d4g8f6c2c4g7g6b1c3d7d5c4d5f6d5e2e4d5c3b2c3f8g7f1c4c7c5g1e2e8g8e1g1b8c6c1e3d8c7\r
+d2d4g8f6c2c4g7g6b1c3d7d5c4d5f6d5e2e4d5c3b2c3f8g7f1c4e8g8g1e2b7b6e1g1c8b7f2f3c7c5\r
+d2d4g8f6c2c4g7g6b1c3d7d5c4d5f6d5e2e4d5c3b2c3f8g7f1c4e8g8g1e2c7c5e1g1b8c6c1e3d8c7\r
+d2d4g8f6c2c4g7g6b1c3d7d5c4d5f6d5e2e4d5c3b2c3f8g7f1c4e8g8g1e2c7c5e1g1b8c6c1e3d8c7\r
+d2d4g8f6c2c4g7g6b1c3d7d5c4d5f6d5e2e4d5c3b2c3f8g7f1c4e8g8g1e2c7c5e1g1b8c6c1e3d8c7\r
+d2d4g8f6c2c4g7g6b1c3d7d5c4d5f6d5e2e4d5c3b2c3f8g7f1c4e8g8g1e2c7c5e1g1b8c6c1e3d8c7\r
+d2d4g8f6c2c4g7g6b1c3d7d5c4d5f6d5e2e4d5c3b2c3f8g7g1f3c7c5a1b1e8g8f1e2c5d4c3d4d8a5\r
+d2d4g8f6c2c4g7g6b1c3d7d5c4d5f6d5e2e4d5c3b2c3f8g7g1f3c7c5a1b1e8g8f1e2c5d4c3d4d8a5\r
+d2d4g8f6c2c4g7g6b1c3d7d5c4d5f6d5e2e4d5c3b2c3f8g7g1f3c7c5c1e3d8a5d1d2c8g4a1c1b8c6\r
+d2d4g8f6c2c4g7g6b1c3d7d5c4d5f6d5g1f3f8g7e2e4d5c3b2c3c7c5a1b1e8g8f1e2b8c6d4d5c6e5\r
+d2d4g8f6c2c4g7g6b1c3d7d5c4d5f6d5g2g3f8g7f1g2d5c3b2c3c7c5e2e3e8g8g1e2b8c6e1g1d8a5\r
+d2d4g8f6c2c4g7g6b1c3d7d5d1b3d5c4b3c4c8e6c4b5b8c6g1f3a8b8f3e5e6d7e5d7d8d7d4d5c6d4\r
+d2d4g8f6c2c4g7g6b1c3d7d5d1b3d5c4b3c4f8g7c1f4c7c6a1d1d8a5f4d2b7b5c4b3b5b4c3a4b8a6\r
+d2d4g8f6c2c4g7g6b1c3d7d5d1b3d5c4b3c4f8g7e2e4e8g8f1e2b8c6g1f3f6d7c1e3d7b6c4c5c8g4\r
+d2d4g8f6c2c4g7g6b1c3d7d5d1b3d5c4b3c4f8g7e2e4e8g8g1f3a7a6c1f4b7b5c4c7d8e8f1e2b8c6\r
+d2d4g8f6c2c4g7g6b1c3d7d5g1f3f8g7c1f4c7c5d4c5d8a5a1c1d5c4e2e3a5c5d1a4b8c6f1c4e8g8\r
+d2d4g8f6c2c4g7g6b1c3d7d5g1f3f8g7c1f4e8g8a1c1c7c5d4c5d5c4e2e4d8a5e4e5f8d8f4d2f6g4\r
+d2d4g8f6c2c4g7g6b1c3d7d5g1f3f8g7c1f4e8g8a1c1d5c4e2e4c8g4f1c4f6h5f4e3g4f3g2f3e7e6\r
+d2d4g8f6c2c4g7g6b1c3d7d5g1f3f8g7c1f4e8g8e2e3c7c5d4c5d8a5a1c1d5c4f1c4a5c5c4b3b8c6\r
+d2d4g8f6c2c4g7g6b1c3d7d5g1f3f8g7c1f4e8g8e2e3c7c6d1b3d8a5h2h3b8d7a1c1d5c4f1c4d7b6\r
+d2d4g8f6c2c4g7g6b1c3d7d5g1f3f8g7c1g5f6e4c4d5e4g5f3g5e7e6d1d2e6d5d2e3e8f8e3f4d8f6\r
+d2d4g8f6c2c4g7g6b1c3d7d5g1f3f8g7c1g5f6e4c4d5e4g5f3g5e7e6g5f3e6d5e2e3e8g8f1d3b7b6\r
+d2d4g8f6c2c4g7g6b1c3d7d5g1f3f8g7c4d5f6d5e2e4d5c3b2c3c7c5a1b1e8g8f1e2c5d4c3d4d8a5\r
+d2d4g8f6c2c4g7g6b1c3d7d5g1f3f8g7c4d5f6d5e2e4d5c3b2c3c7c5c1e3c8g4a1c1d8a5d1d2b8d7\r
+d2d4g8f6c2c4g7g6b1c3d7d5g1f3f8g7c4d5f6d5e2e4d5c3b2c3c7c5c1e3c8g4a1c1d8a5d1d2b8d7\r
+d2d4g8f6c2c4g7g6b1c3d7d5g1f3f8g7c4d5f6d5e2e4d5c3b2c3c7c5c1e3d8a5d1d2e8g8a1c1c5d4\r
+d2d4g8f6c2c4g7g6b1c3d7d5g1f3f8g7d1b3c7c6c4d5f6d5e2e4d5b6c1e3c8e6b3c2e6c4f1e2b8a6\r
+d2d4g8f6c2c4g7g6b1c3d7d5g1f3f8g7d1b3d5c4b3c4c7c6e2e4e8g8c4b3b7b5e4e5f6e8a2a4b5a4\r
+d2d4g8f6c2c4g7g6b1c3d7d5g1f3f8g7d1b3d5c4b3c4e8g8e2e4a7a6e4e5b7b5c4b3f6d7c1e3c7c5\r
+d2d4g8f6c2c4g7g6b1c3d7d5g1f3f8g7d1b3d5c4b3c4e8g8e2e4a7a6e4e5b7b5c4b3f6d7c1e3c7c5\r
+d2d4g8f6c2c4g7g6b1c3d7d5g1f3f8g7d1b3d5c4b3c4e8g8e2e4a7a6e4e5b7b5c4b3f6d7e5e6f7e6\r
+d2d4g8f6c2c4g7g6b1c3d7d5g1f3f8g7d1b3d5c4b3c4e8g8e2e4b8a6b2b4c7c6a1b1a6c7h2h3c7b5\r
+d2d4g8f6c2c4g7g6b1c3d7d5g1f3f8g7d1b3d5c4b3c4e8g8e2e4b8a6f1e2c7c5d4d5e7e6e1g1e6d5\r
+d2d4g8f6c2c4g7g6b1c3d7d5g1f3f8g7d1b3d5c4b3c4e8g8e2e4b8a6f1e2c7c5d4d5e7e6e1g1e6d5\r
+d2d4g8f6c2c4g7g6b1c3d7d5g1f3f8g7d1b3d5c4b3c4e8g8e2e4b8a6f1e2c7c5d4d5e7e6e1g1e6d5\r
+d2d4g8f6c2c4g7g6b1c3d7d5g1f3f8g7d1b3d5c4b3c4e8g8e2e4b8a6f1e2c7c5d4d5e7e6e1g1e6d5\r
+d2d4g8f6c2c4g7g6b1c3d7d5g1f3f8g7d1b3d5c4b3c4e8g8e2e4b8c6f1e2c8g4c1e3g4f3e2f3e7e5\r
+d2d4g8f6c2c4g7g6b1c3d7d5g1f3f8g7d1b3d5c4b3c4e8g8e2e4b8c6h2h3e7e5d4e5f6d7e5e6f7e6\r
+d2d4g8f6c2c4g7g6b1c3d7d5g1f3f8g7d1b3d5c4b3c4e8g8e2e4c7c6c4b3e7e5d4e5f6g4f1e2d8b6\r
+d2d4g8f6c2c4g7g6b1c3d7d5g1f3f8g7d1b3d5c4b3c4e8g8e2e4c8g4c1e3f6d7a1d1b8c6f1e2d7b6\r
+d2d4g8f6c2c4g7g6b1c3d7d5g1f3f8g7d1b3d5c4b3c4e8g8e2e4c8g4c1e3f6d7a1d1b8c6f1e2d7b6\r
+d2d4g8f6c2c4g7g6b1c3d7d5g1f3f8g7d1b3d5c4b3c4e8g8e2e4c8g4c1e3f6d7a1d1b8c6f1e2g4f3\r
+d2d4g8f6c2c4g7g6b1c3d7d5g1f3f8g7d1b3d5c4b3c4e8g8e2e4c8g4c1e3f6d7a1d1d7b6c4b3b8c6\r
+d2d4g8f6c2c4g7g6b1c3d7d5g1f3f8g7d1b3d5c4b3c4e8g8e2e4c8g4c1e3f6d7c4b3c7c5d4d5b8a6\r
+d2d4g8f6c2c4g7g6b1c3d7d5g1f3f8g7d1b3d5c4b3c4e8g8e2e4c8g4c1e3f6d7c4b3d7b6a1d1e7e5\r
+d2d4g8f6c2c4g7g6b1c3d7d5g1f3f8g7d1b3d5c4b3c4e8g8e2e4c8g4c1e3f6d7c4b3d7b6a2a4a7a5\r
+d2d4g8f6c2c4g7g6b1c3d7d5g1f3f8g7d1b3d5c4b3c4e8g8e2e4c8g4c1e3f6d7c4b3d7b6a2a4a7a5\r
+d2d4g8f6c2c4g7g6b1c3d7d5g1f3f8g7d1b3d5c4b3c4e8g8e2e4c8g4c1e3f6d7e1c1b8c6h2h3g4f3\r
+d2d4g8f6c2c4g7g6b1c3d7d5g1f3f8g7d1b3d5c4b3c4e8g8e2e4c8g4c1e3f6d7f1e2d7b6c4c5c7c6\r
+d2d4g8f6c2c4g7g6b1c3d7d5g1f3f8g7d1b3d5c4b3c4e8g8e2e4c8g4c1e3f6d7f3d2d7b6c4d3c7c6\r
+d2d4g8f6c2c4g7g6b1c3f8g7c1g5c7c5d4c5b8a6g2g3a6c5f1g2d7d6a1c1e8g8b2b4c5e6g5d2a7a5\r
+d2d4g8f6c2c4g7g6b1c3f8g7c1g5d7d6e2e3c7c5d4d5h7h6g5h4e8g8g1f3c8f5f3d2d8b6d1c1g6g5\r
+d2d4g8f6c2c4g7g6b1c3f8g7c1g5d7d6e2e3c7c5g1f3d8a5d1d2e8g8f1e2h7h6g5h4b8c6h2h3a7a6\r
+d2d4g8f6c2c4g7g6b1c3f8g7c1g5d7d6e2e3e8g8g1f3c7c5f1e2h7h6g5h4c5d4f3d4b8c6e1g1c8d7\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e3d7d6g1f3b8d7f1e2e8g8e1g1e7e5d4e5d6e5d1c2c7c6e3e4d8e7\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6c1g5c7c5d4d5b8a6f1d3a6c7g1e2a7a6a2a4a8b8e1g1e8g8\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f1d3e7e5d4d5a7a5g1e2b8a6f2f3f6d7c1e3g7h6d1d2h6e3\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f1e2e8g8c1g5b8a6h2h4e7e5d4d5c7c6h4h5c6d5c4d5d8b6\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f1e2e8g8c1g5c7c5d4c5d8a5g5d2a5c5g1f3c8g4d2e3c5a5\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f1e2e8g8c1g5c7c5d4d5b7b5c4b5a7a6a2a4h7h6g5d2b8d7\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f1e2e8g8c1g5c7c5d4d5e7e6g1f3e6d5e4d5c8g4e1g1g4f3\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f1e2e8g8c1g5c7c5d4d5h7h6g5f4e7e6d5e6c8e6f4d6f8e8\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f1e2e8g8c1g5c7c5d4d5h7h6g5f4e7e6d5e6c8e6f4d6f8e8\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f1e2e8g8c1g5h7h6g5e3c7c5d4c5d8a5e3d2a5c5g1f3c8g4\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f1e2e8g8c1g5h7h6g5e3c7c5d4c5d8a5e3d2a5c5g1f3c8g4\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f1e2e8g8c1g5h7h6g5e3e7e5d4d5b8a6d1d2a6c5f2f3f6h5\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f1e2e8g8g1f3e7e5d4d5b8d7c1g5h7h6g5h4a7a6e1g1d8e8\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f1e2e8g8g1f3e7e5d4d5b8d7c1g5h7h6g5h4a7a6f3d2d8e8\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f1e2e8g8g1f3e7e5e1g1b8c6c1e3f8e8d4d5c6d4f3d4e5d4\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f1e2e8g8g1f3e7e5e1g1b8c6d4d5c6e7c1d2f6e8a1c1c7c5\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f1e2e8g8g1f3e7e5e1g1b8c6d4d5c6e7c1d2f6e8b2b4f7f5\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f1e2e8g8g1f3e7e5e1g1b8c6d4d5c6e7f3d2a7a5b2b3f6d7\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f1e2e8g8g1f3e7e5e1g1b8c6d4d5c6e7f3e1f6d7c1e3f7f5\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f3b8d7c1e3e7e5g1e2e8g8d4d5f6h5d1d2f7f5e1c1a7a6\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f3c7c5d4c5d6c5d1d8e8d8c1e3f6d7g1e2b7b6e1c1b8a6\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f3e7e5d4d5f6h5c1e3b8a6d1d2d8h4g2g3h5g3d2f2g3f1\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f3e8g8c1e3a7a6f1d3b8c6g1e2a8b8a2a3f6d7d3b1c6a5\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f3e8g8c1e3a7a6f1d3c7c5d4c5d6c5e3c5b8c6g1e2f6d7\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f3e8g8c1e3b8c6g1e2a7a6d1d2a8b8h2h4h7h5e3h6e7e5\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f3e8g8c1e3b8c6g1e2a7a6e2c1e7e5d4d5c6d4c1b3d4b3\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f3e8g8c1e3b8c6g1e2a7a6h2h4h7h5e2c1e7e5d4d5c6d4\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f3e8g8c1e3b8c6g1e2a7a6h2h4h7h5e2c1e7e5d4d5c6e7\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f3e8g8c1e3b8c6g1e2a7a6h2h4h7h5e2c1f6d7c1b3a6a5\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f3e8g8c1e3b8d7d1d2c7c5d4c5d6c5e1c1d8a5c1b1d7e5\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f3e8g8c1e3b8d7d1d2c7c5g1h3d8a5h3f2a7a6d4c5d7c5\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f3e8g8c1e3c7c5d4d5e7e6d1d2e6d5c4d5a7a6a2a4f8e8\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f3e8g8c1e3c7c6f1d3a7a6g1e2b7b5e1g1b8d7a1c1e7e5\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f3e8g8c1e3c7c6f1d3e7e5g1e2e5d4e3d4c6c5d4f2b8c6\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f3e8g8c1e3e7e5d4d5c7c5f1d3f6h5g1e2f7f5e4f5g6f5\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f3e8g8c1e3e7e5d4d5c7c6d1d2c6d5c4d5a7a6g2g4b8d7\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f3e8g8c1e3e7e5d4d5c7c6f1d3c6d5c4d5f6h5g1e2f7f5\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f3e8g8c1e3e7e5d4d5c7c6f1d3c6d5c4d5f6h5g1e2f7f5\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f3e8g8c1e3e7e5d4d5f6h5d1d2d8h4g2g3h4e7e1c1f7f5\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f3e8g8c1e3e7e5d4d5f6h5d1d2f7f5e1c1a7a6f1d3c7c5\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f3e8g8c1e3e7e5d4d5f6h5d1d2f7f5e1c1b8d7f1d3d7c5\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f3e8g8c1e3e7e5d4d5f6h5d1d2f7f5e1c1f5f4e3f2g7f6\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f3e8g8c1e3e7e5d4d5f6h5d1d2f7f5e1c1f5f4e3f2g7f6\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f3e8g8c1e3e7e5d4e5d6e5d1d8f8d8c3d5f6d5c4d5c7c6\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f3e8g8c1e3e7e5d4e5d6e5d1d8f8d8c3d5f6d5c4d5c7c6\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f3e8g8c1e3e7e5g1e2c7c6d4d5c6d5c4d5a7a6d1d2b8d7\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f3e8g8c1g5c7c5d4d5a7a6d1d2f8e8g1e2b8d7e2g3d7f8\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f3e8g8c1g5c7c5d4d5e7e6d1d2e6d5c4d5h7h6g5e3f8e8\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f3e8g8c1g5c7c5d4d5e7e6d1d2e6d5c4d5h7h6g5e3h6h5\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f3e8g8c1g5c7c5d4d5e7e6d1d2h7h6g5e3e6d5c4d5h6h5\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f3e8g8c1g5h7h6g5e3c7c5d4c5d6c5d1d8f8d8e3c5b8c6\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f3e8g8g1e2b8c6c1e3a7a6d1d2a8b8e2c1e7e5c1b3e5d4\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f3e8g8g1e2b8c6c1e3a7a6d1d2c8d7e2c1e7e5c1b3e5d4\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f4c7c5d4c5d8a5f1d3a5c5g1f3e8g8d1e2b8c6c1e3c5h5\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f4c7c5d4d5e8g8g1f3e7e6f1e2e6d5c4d5b7b5e4e5d6e5\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f4e8g8g1f3b8a6f1d3c8g4e1g1f6d7c1e3e7e5f4e5c7c5\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6f2f4e8g8g1f3c7c5d4d5e7e6f1e2e6d5c4d5b7b5e4e5f6d7\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6g1f3e8g8f1e2c7c5e1g1c8g4d4d5b8d7c1g5a7a6a2a4d8c7\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6g1f3e8g8f1e2e7e5c1e3b8a6e1g1c7c6d4e5d6e5d1d8f8d8\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6g1f3e8g8f1e2e7e5c1e3b8a6e1g1f6g4e3g5f7f6g5c1g8h8\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6g1f3e8g8f1e2e7e5c1e3b8c6d4d5c6e7f3d2f6e8c4c5f7f5\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6g1f3e8g8f1e2e7e5c1e3c7c6d1d2f8e8d4d5f6g4e3g5f7f6\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6g1f3e8g8f1e2e7e5c1e3c7c6d4d5f6g4e3g5f7f6g5h4b8a6\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6g1f3e8g8f1e2e7e5c1e3c7c6d4d5f6g4e3g5f7f6g5h4b8a6\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6g1f3e8g8f1e2e7e5c1e3d8e7d4e5d6e5c3d5e7d8e3c5f6e4\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6g1f3e8g8f1e2e7e5c1e3d8e7d4e5d6e5c3d5f6d5c4d5f8d8\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6g1f3e8g8f1e2e7e5c1e3e5d4f3d4f8e8f2f3c7c6d1d2d6d5\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6g1f3e8g8f1e2e7e5c1e3f6g4e3g5f7f6g5c1b8c6e1g1f6f5\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6g1f3e8g8f1e2e7e5c1e3f6g4e3g5f7f6g5c1e5d4f3d4f6f5\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6g1f3e8g8f1e2e7e5c1e3f6g4e3g5f7f6g5h4g6g5h4g3g4h6\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6g1f3e8g8f1e2e7e5d4d5b8d7c1g5h7h6g5h4a7a6f3d2d8e8\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6g1f3e8g8f1e2e7e5d4d5b8d7c1g5h7h6g5h4g6g5h4g3f6h5\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6g1f3e8g8f1e2e7e5d4e5d6e5d1d8f8d8c1g5d8e8c3d5f6d5\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6g1f3e8g8f1e2e7e5e1g1b8a6c1e3c7c6d1c2f6g4e3g5f7f6\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6g1f3e8g8f1e2e7e5e1g1b8c6d4d5c6e7b2b4f6h5f1e1h5f4\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6g1f3e8g8f1e2e7e5e1g1b8c6d4d5c6e7b2b4f6h5f1e1h7h6\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6g1f3e8g8f1e2e7e5e1g1b8c6d4d5c6e7c1d2f6e8a1c1f7f5\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6g1f3e8g8f1e2e7e5e1g1b8c6d4d5c6e7c1d2f6e8a1c1f7f5\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6g1f3e8g8f1e2e7e5e1g1b8c6d4d5c6e7f3e1f6d7c1e3f7f5\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6g1f3e8g8f1e2e7e5e1g1b8c6d4d5c6e7f3e1f6d7e1d3f7f5\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6g1f3e8g8f1e2e7e5e1g1c7c6c1e3b8a6d4d5f6g4e3g5f7f6\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6g1f3e8g8f1e2e7e5e1g1c7c6d4d5c6c5f3e1a7a6c1e3f6e8\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6g1f3e8g8f1e2e7e5e1g1c7c6f1e1e5d4f3d4f8e8e2f1f6g4\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6g1f3e8g8g2g3c8g4f1g2f6d7e1g1b8c6c1e3e7e5d4d5g4f3\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6g2g3e8g8f1g2e7e5g1e2e5d4e2d4b8c6d4c6b7c6e1g1f6d7\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4d7d6h2h3e8g8c1e3e7e5d4d5b8d7g2g4d7c5d1c2c7c6g1e2c6d5\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4e8g8f2f4d7d6g1f3b8a6f1e2e7e5d4e5d6e5d1d8f8d8f3e5a6c5\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4e8g8g1f3d7d6f1e2e7e5e1g1b8c6d4d5c6e7f3e1f6d7f2f3f7f5\r
+d2d4g8f6c2c4g7g6b1c3f8g7e2e4e8g8g1f3d7d6f1e2e7e5e1g1b8d7f1e1c7c6e2f1f8e8d4d5c6c5\r
+d2d4g8f6c2c4g7g6b1c3f8g7g1f3d7d6c1f4b8d7h2h3c7c5e2e3e8g8f1e2b7b6e1g1c8b7d4d5a7a6\r
+d2d4g8f6c2c4g7g6b1c3f8g7g1f3e8g8c1g5c7c5e2e3d7d6f1e2h7h6g5h4c8g4d1b3c5d4f3d4g4e2\r
+d2d4g8f6c2c4g7g6b1c3f8g7g1f3e8g8e2e4d7d6f1e2e7e5e1g1e5d4f3d4f8e8f2f3c7c6g1h1a7a6\r
+d2d4g8f6c2c4g7g6b1c3f8g7g2g3d7d5c4d5f6d5f1g2c8e6c3e4e8g8g1f3b8a6e1g1c7c6a2a3e6f5\r
+d2d4g8f6c2c4g7g6b1c3f8g7g2g3d7d5c4d5f6d5f1g2d5c3b2c3c7c5e2e3b8c6g1e2c8d7e1g1a8c8\r
+d2d4g8f6c2c4g7g6e2e3d7d5c4d5f6d5e3e4d5b6b1c3f8g7c1e3b8c6d4d5c6e5e3d4f7f6f2f4e5f7\r
+d2d4g8f6c2c4g7g6f2f3d7d5c4d5f6d5e2e4d5b6c1e3f8g7b1c3e8g8f3f4f7f5d1b3e7e6e4e5b8c6\r
+d2d4g8f6c2c4g7g6f2f3f8g7e2e4e8g8b1c3c7c6c1e3d7d5e4e5f6d7c4d5c6d5c3d5d8a5d5c3b8c6\r
+d2d4g8f6c2c4g7g6g1f3f8g7g2g3c7c6f1g2d7d5c4d5c6d5b1c3e8g8f3e5e7e6c1g5d8b6d1d2f6d7\r
+d2d4g8f6c2c4g7g6g1f3f8g7g2g3c7c6f1g2d7d5c4d5c6d5b1c3e8g8f3e5e7e6e1g1f6d7e5f3b8c6\r
+d2d4g8f6c2c4g7g6g1f3f8g7g2g3c7c6f1g2d7d5c4d5c6d5b1c3e8g8f3e5e7e6e1g1f6d7f2f4b8c6\r
+d2d4g8f6c2c4g7g6g1f3f8g7g2g3c7c6f1g2d7d5c4d5c6d5b1c3e8g8f3e5e7e6e1g1f6d7f2f4f7f6\r
+d2d4g8f6c2c4g7g6g1f3f8g7g2g3c7c6f1g2d7d5c4d5c6d5f3e5e8g8b1c3e7e6e1g1f6d7f2f4b8c6\r
+d2d4g8f6c2c4g7g6g1f3f8g7g2g3e8g8f1g2c7c6b1c3d7d5c4d5c6d5e1g1f6e4f3e5e4c3b2c3b8c6\r
+d2d4g8f6c2c4g7g6g1f3f8g7g2g3e8g8f1g2c7c6b1c3d7d5c4d5c6d5f3e5e7e6e1g1b8c6e5c6b7c6\r
+d2d4g8f6c2c4g7g6g1f3f8g7g2g3e8g8f1g2c7c6b1c3d7d5c4d5c6d5f3e5e7e6e1g1f6d7e5f3b8c6\r
+d2d4g8f6c2c4g7g6g1f3f8g7g2g3e8g8f1g2c7c6b1c3d7d5c4d5c6d5f3e5e7e6e1g1f6d7e5f3b8c6\r
+d2d4g8f6c2c4g7g6g1f3f8g7g2g3e8g8f1g2c7c6e1g1d7d5b2b3a7a5b1c3f6e4c1b2c8f5a1c1b8d7\r
+d2d4g8f6c2c4g7g6g1f3f8g7g2g3e8g8f1g2c7c6e1g1d7d5c4d5c6d5b1c3f6e4c3e4d5e4f3e5f7f6\r
+d2d4g8f6c2c4g7g6g1f3f8g7g2g3e8g8f1g2c7c6e1g1d7d5c4d5c6d5b1c3f6e4f3e5c8f5c1f4e7e6\r
+d2d4g8f6c2c4g7g6g1f3f8g7g2g3e8g8f1g2d7d5c4d5f6d5e1g1d5b6b1c3b8c6e2e3a7a5d4d5c6b4\r
+d2d4g8f6c2c4g7g6g1f3f8g7g2g3e8g8f1g2d7d5c4d5f6d5e1g1d5b6b1c3b8c6e2e3e7e5d4d5e5e4\r
+d2d4g8f6c2c4g7g6g1f3f8g7g2g3e8g8f1g2d7d6e1g1b8c6b1c3a7a6c1g5h7h6g5d2e7e5d4d5c6d4\r
+d2d4g8f6c2c4g7g6g1f3f8g7g2g3e8g8f1g2d7d6e1g1b8c6b1c3a7a6d4d5c6a5f3d2c7c5d1c2a8b8\r
+d2d4g8f6c2c4g7g6g1f3f8g7g2g3e8g8f1g2d7d6e1g1b8c6b1c3a7a6f1e1a8b8a1b1c6a5b2b3b7b5\r
+d2d4g8f6c2c4g7g6g1f3f8g7g2g3e8g8f1g2d7d6e1g1b8d7b1c3e7e5h2h3c7c6e2e4d8b6c4c5d6c5\r
+d2d4g8f6c2c4g7g6g2g3c7c5d4d5d7d6f1g2f8g7b1c3a7a6a2a4e8g8g1f3e7e5e1g1a6a5e2e4f6e8\r
+d2d4g8f6c2c4g7g6g2g3c7c5g1f3c5d4f3d4d8a5b1c3f6e4d1c2e4f6c1d2a5c5c2d3f8g7d4b3c5h5\r
+d2d4g8f6c2c4g7g6g2g3c7c6b1c3d7d5c4d5c6d5g1h3f8g7h3f4e8g8f1g2e7e6e1g1b8c6e2e3b7b6\r
+d2d4g8f6c2c4g7g6g2g3c7c6d4d5c6d5c4d5d7d6b1c3f8g7f1g2d8a5c1d2e8g8e2e3b8d7g1e2d7e5\r
+d2d4g8f6c2c4g7g6g2g3c7c6d4d5c6d5c4d5d7d6f1g2f8g7b1c3e8g8g1f3b8d7e1g1d7b6a2a4c8g4\r
+d2d4g8f6c2c4g7g6g2g3c7c6d4d5f8g7f1g2d7d6b1c3e8g8g1f3e7e5e1g1c6d5c4d5b8d7f3d2a7a5\r
+d2d4g8f6c2c4g7g6g2g3c7c6f1g2d7d5c4d5c6d5b1c3f8g7g1f3e8g8f3e5c8f5e1g1f6e4c3e4f5e4\r
+d2d4g8f6c2c4g7g6g2g3c7c6f1g2d7d5c4d5c6d5b1c3f8g7g1f3e8g8f3e5e7e6e1g1f6d7f2f4b8c6\r
+d2d4g8f6c2c4g7g6g2g3c7c6f1g2d7d5c4d5c6d5b1c3f8g7g1h3c8h3g2h3b8c6h3g2e7e6e2e3e8g8\r
+d2d4g8f6c2c4g7g6g2g3c7c6f1g2d7d5c4d5c6d5g1f3f8g7b1c3e8g8f3e5e7e6e1g1f6d7f2f4b8c6\r
+d2d4g8f6c2c4g7g6g2g3c7c6f1g2d7d5c4d5c6d5g1f3f8g7b1c3f6e4d1b3e4c3b2c3b8c6f3d2e7e6\r
+d2d4g8f6c2c4g7g6g2g3c7c6f1g2d7d5c4d5c6d5g1f3f8g7f3e5e8g8b1c3e7e6e1g1f6d7f2f4b8c6\r
+d2d4g8f6c2c4g7g6g2g3c7c6f1g2d7d5g1f3f8g7b2b3e8g8e1g1f6e4c1b2a7a5b1c3e4c3b2c3b7b5\r
+d2d4g8f6c2c4g7g6g2g3c7c6f1g2d7d5g1f3f8g7e1g1e8g8b1c3d5c4f3e5c8e6e2e4b8d7f2f4d8b6\r
+d2d4g8f6c2c4g7g6g2g3c7c6f1g2d7d5g1f3f8g7e1g1e8g8c1f4f6e4b1c3c8f5d1b3d8b6c4d5b6b3\r
+d2d4g8f6c2c4g7g6g2g3c7c6g1f3f8g7f1g2d7d5c4d5c6d5b1c3e8g8f3e5e7e6e1g1f6d7f2f4b8c6\r
+d2d4g8f6c2c4g7g6g2g3d7d5c4d5f6d5f1g2f8g7g1f3e8g8e1g1d5b6b1c3a7a5c1f4c7c6d1c1f8e8\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2c7c5d4d5d7d6g1f3c8f5b1c3f6e4c3e4f5e4e1g1e8g8d1b3b8d7\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2d7d5c4d5f6d5e2e4d5b6g1e2c7c5d4d5e7e6e1g1e8g8a2a4b8a6\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2d7d5c4d5f6d5e2e4d5b6g1e2c7c5d4d5e7e6e1g1e8g8e2c3e6d5\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2d7d5c4d5f6d5e2e4d5b6g1e2c8g4f2f3g4c8b1c3b8c6d4d5c6b8\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2d7d5c4d5f6d5e2e4d5b6g1e2e7e5d4d5c7c6b1c3c6d5e4d5e8g8\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2d7d5c4d5f6d5e2e4d5b6g1e2e7e5d4d5e8g8e1g1c7c6b1c3c6d5\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2d7d5c4d5f6d5g1f3e8g8e1g1c7c5d4c5b8a6f3g5d5b4a2a3d8d1\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2d7d5c4d5f6d5g1f3e8g8e1g1c7c5e2e4d5f6e4e5f6d5d4c5d5b4\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2d7d5g1f3e8g8e1g1d5c4b1a3c4c3b2c3c7c5e2e3b8c6d1e2f6d5\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2d7d6b1c3e8g8g1f3b8d7e1g1e7e5b2b3f8e8d1c2f6g4d4e5d7e5\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2e8g8b1c3c7c5d4d5d7d6g1f3b8a6f3d2a6c7d1c2a8b8b2b3e7e6\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2e8g8b1c3c7c5d4d5e7e5c1g5h7h6g5f6d8f6d5d6b8c6e2e3b7b6\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2e8g8b1c3c7c5d4d5e7e5g1f3d7d6e1g1b8d7d1c2d8e7e2e4a7a6\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2e8g8b1c3d7d6e2e3b8d7g1e2a7a6b2b3a8b8a2a4a6a5c1a3c7c6\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2e8g8b1c3d7d6e2e3b8d7g1e2a7a6b2b3a8b8a2a4e7e5c1a3b7b6\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2e8g8b1c3d7d6e2e3b8d7g1e2e7e5b2b3f8e8c1a3a8b8e1g1a7a6\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2e8g8b1c3d7d6e2e3b8d7g1e2e7e5b2b3f8e8c1a3h7h5h2h3a7a6\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2e8g8b1c3d7d6g1f3b8c6e1g1a7a6d4d5c6a5f3d2c7c5d1c2a8b8\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2e8g8b1c3d7d6g1f3b8c6e1g1e7e5d4d5c6e7c4c5f6d7c5d6c7d6\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2e8g8b1c3d7d6g1f3b8c6e1g1e7e5d4d5c6e7e2e4f6e8f3e1f7f5\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2e8g8b1c3d7d6g1f3b8c6e1g1e7e5d4e5c6e5f3e5d6e5d1d8f8d8\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2e8g8b1c3d7d6g1f3b8d7e1g1e7e5b2b3f8e8d1c2c7c6f1d1e5e4\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2e8g8b1c3d7d6g1f3b8d7e1g1e7e5e2e4c7c6c1e3f6g4e3g5d8b6\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2e8g8b1c3d7d6g1f3b8d7e1g1e7e5e2e4c7c6h2h3e5d4f3d4f8e8\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2e8g8b1c3d7d6g1f3b8d7e1g1e7e5e2e4e5d4f3d4d7c5h2h3f8e8\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2e8g8b1c3d7d6g1f3b8d7e1g1e7e5e2e4e5d4f3d4f8e8h2h3d7c5\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2e8g8b1c3d7d6g1f3b8d7e1g1e7e5e2e4f8e8d4d5a7a5f3e1d7c5\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2e8g8b1c3d7d6g1f3b8d7e1g1e7e5e2e4f8e8d4d5a7a6f3e1a8b8\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2e8g8b1c3d7d6g1f3b8d7e1g1e7e5e2e4f8e8h2h3e5d4f3d4d7c5\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2e8g8b1c3d7d6g1f3b8d7e1g1e7e5e2e4f8e8h2h3e5d4f3d4d7c5\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2e8g8b1c3d7d6g1f3b8d7e1g1e7e5e2e4f8e8h2h3e5d4f3d4d7c5\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2e8g8b1c3d7d6g1f3c7c5d4d5b8a6e1g1a6c7e2e4a7a6a2a4a8b8\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2e8g8b1c3d7d6g1f3c7c5d4d5b8a6e1g1a6c7f3d2a8b8a2a4e7e6\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2e8g8b1c3d7d6g1f3c7c5d4d5b8a6f3d2a6c7d1c2a8b8b2b3b7b5\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2e8g8e2e4d7d6g1e2c7c6e1g1e7e5b1c3b8d7f2f3f8e8c1e3d8c7\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2e8g8g1f3d7d6e1g1b8c6b1c3c8g4c1e3f6d7d1d2e7e5d4e5g4f3\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2e8g8g1f3d7d6e1g1b8c6b1c3c8g4h2h3g4f3g2f3f6d7f3g2c6d4\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2e8g8g1f3d7d6e1g1b8c6d4d5c6a5f3d2c7c5b1c3e7e5a2a3b7b6\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2e8g8g1f3d7d6e1g1b8d7b1c3e7e5e2e4c7c6h2h3d8b6d4d5c6d5\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2e8g8g1f3d7d6e1g1b8d7b1c3e7e5e2e4f8e8h2h3e5d4f3d4d7c5\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2e8g8g1f3d7d6e1g1b8d7d1c2e7e5f1d1f8e8b1c3c7c6d4e5d6e5\r
+d2d4g8f6c2c4g7g6g2g3f8g7f1g2e8g8g1f3d7d6e1g1c7c5d4c5d6c5f3e5d8c7e5d3b8c6b1c3c8f5\r
+d2d4g8f6g1f3b7b6c2c4e7e6g2g3c8a6b2b3a6b7f1g2f8b4c1d2a7a5e1g1e8g8b1c3d7d5d1c2b8a6\r
+d2d4g8f6g1f3b7b6g2g3c8b7f1g2c7c5e1g1c5d4f3d4b7g2g1g2d7d5c2c4e7e6d1a4d8d7d4b5b8c6\r
+d2d4g8f6g1f3b7b6g2g3c8b7f1g2e7e6c2c4f8b4b1c3d7d6e1g1b4c3b2c3b8c6f3d2d6d5c4d5e6d5\r
+d2d4g8f6g1f3b7b6g2g3c8b7f1g2e7e6e1g1c7c5c2c3f8e7b2b3e8g8c1b2d7d5b1d2b8c6c3c4a8c8\r
+d2d4g8f6g1f3c7c5c2c3e7e6g2g3d7d5f1g2b8c6e1g1f8e7d4c5e7c5c1g5e8g8b1d2c5e7g5f6e7f6\r
+d2d4g8f6g1f3c7c5c2c3g7g6c1g5d8b6d1b3f6e4g5f4b8c6d4d5c6d8b1d2e4f6e2e4d7d6f1b5c8d7\r
+d2d4g8f6g1f3c7c5c2c4c5d4f3d4e7e5d4c2d7d5c4d5d8d5d1d5f6d5e2e4d5b4c2b4f8b4c1d2b4d2\r
+d2d4g8f6g1f3c7c5d4c5e7e6a2a3f8c5b2b4c5e7c1b2a7a5b4b5e8g8e2e3d7d6c2c4b8d7f1e2d7c5\r
+d2d4g8f6g1f3c7c5d4d5d7d6b1c3e7e6d5e6c8e6e2e4f8e7f1b5e6d7a2a4e8g8e1g1b8c6h2h3c6b4\r
+d2d4g8f6g1f3c7c5d4d5d7d6b1c3g7g6e2e4f8g7f1b5c8d7a2a4e8g8e1g1b8a6f1e1a6b4h2h3e7e6\r
+d2d4g8f6g1f3c7c5d4d5e7e6b1c3e6d5c3d5f6d5d1d5d7d6e2e4f8e7f1c4e8g8d5h5c8e6c4e6f7e6\r
+d2d4g8f6g1f3c7c5d4d5e7e6b1c3f6d5c3d5e6d5d1d5f8e7e2e4e8g8f1c4d7d6d5h5c8e6c4e6f7e6\r
+d2d4g8f6g1f3c7c5d4d5e7e6c2c4e6d5c4d5d7d6b1c3g7g6e2e4f8g7f1e2e8g8e1g1f8e8f3d2b8d7\r
+d2d4g8f6g1f3d7d5c2c4c7c6b1c3d5c4a2a4c8f5e2e3e7e6f1c4f8b4e1g1b8d7f3h4e8g8f2f3f5g6\r
+d2d4g8f6g1f3d7d5c2c4c7c6c4d5c6d5c1f4b8c6b1c3c8f5e2e3e7e6f1b5f6d7e1g1f8e7a1c1e8g8\r
+d2d4g8f6g1f3d7d5c2c4d5c4b1c3c7c6a2a4c8f5e2e3e7e6f1c4b8d7e1g1f8b4d1e2f5g6e3e4e8g8\r
+d2d4g8f6g1f3d7d5c2c4e7e6b1c3c7c5c4d5f6d5e2e4d5c3b2c3c5d4c3d4b8c6f1c4b7b5c4e2f8b4\r
+d2d4g8f6g1f3d7d5c2c4e7e6b1c3c7c5e2e3b8c6a2a3f6e4d1c2e4c3c2c3c5d4f3d4c6d4c3d4d5c4\r
+d2d4g8f6g1f3d7d5c2c4e7e6b1c3f8e7c1g5b8d7e2e3e8g8a1c1b7b6c4d5e6d5d1a4c7c5a4c6a8b8\r
+d2d4g8f6g1f3d7d5c2c4e7e6b1c3f8e7c1g5b8d7e2e3e8g8a1c1b7b6c4d5e6d5f1b5c8b7e1g1c7c6\r
+d2d4g8f6g1f3d7d5c2c4e7e6b1c3f8e7c1g5e8g8e2e3b8d7d1c2c7c5c4d5f6d5g5e7d8e7c3d5e6d5\r
+d2d4g8f6g1f3d7d5c2c4e7e6b1c3f8e7c1g5h7h6g5f6e7f6e2e3e8g8a1c1c7c6f1d3d5c4d3c4b8d7\r
+d2d4g8f6g1f3d7d5c2c4e7e6b1c3f8e7c1g5h7h6g5h4e8g8e2e3b7b6c4d5f6d5h4e7d8e7a1c1c8b7\r
+d2d4g8f6g1f3d7d5c2c4e7e6c4d5e6d5b1c3c7c6d1c2f8e7e2e4d5e4c3e4b8d7f3e5d7e5d4e5d8a5\r
+d2d4g8f6g1f3d7d5c2c4e7e6g2g3d5c4d1a4b8d7f1g2a7a6a4c4b7b5c4c6a8b8c1f4c8b7c6c7f8b4\r
+d2d4g8f6g1f3d7d5c2c4e7e6g2g3d5c4d1a4b8d7f1g2a7a6a4c4c7c5d4c5f8c5e1g1b7b5c4h4c8b7\r
+d2d4g8f6g1f3d7d5c2c4e7e6g2g3d5c4d1a4b8d7f1g2a7a6b1c3a8b8a4c4b7b5c4d3c8b7e1g1c7c5\r
+d2d4g8f6g1f3d7d5g2g3c7c6f1g2c8f5e1g1h7h6c2c4e7e6b1c3f8e7d1b3d8b6c4c5b6a6b3d1b8d7\r
+d2d4g8f6g1f3d7d6c2c4c8g4d1b3d8c8h2h3g4h5g2g4h5g6f1g2c7c6b1c3e7e6d4d5f8e7c1e3f6d7\r
+d2d4g8f6g1f3d7d6c2c4g7g6b1c3f8g7e2e4e8g8f1e2c7c5e1g1b8c6d4d5c6a5h2h3e7e5a2a3b7b6\r
+d2d4g8f6g1f3d7d6g2g3b8d7f1g2e7e5c2c4f8e7b1c3e8g8e1g1c7c6d1c2d8c7b2b3f8e8c1b2e7f8\r
+d2d4g8f6g1f3d7d6g2g3g7g6f1g2f8g7e1g1e8g8c2c4b8d7b1c3e7e5c1g5h7h6g5d2c7c6d1c1g8h7\r
+d2d4g8f6g1f3e7e6c1g5c7c5e2e3b7b6b1d2c5d4e3d4c8b7f1d3f8e7e1g1e8g8f1e1d7d6a2a4b8c6\r
+d2d4g8f6g1f3e7e6c1g5c7c5e2e3b7b6d4d5e6d5b1c3f8e7c3d5c8b7g5f6e7f6c2c3e8g8f1c4a7a6\r
+d2d4g8f6g1f3e7e6c1g5c7c5e2e3f8e7b1d2c5d4e3d4b7b6c2c3c8b7f1d3d7d6e1g1b8d7f1e1e8g8\r
+d2d4g8f6g1f3e7e6c1g5c7c5e2e3f8e7d4c5e7c5c2c4c5b4b1d2b7b6f1d3b8c6e1g1b4e7a1c1c8b7\r
+d2d4g8f6g1f3e7e6c1g5c7c5e2e3h7h6g5f6d8f6b1d2c5d4e3d4b8c6c2c3d7d5f1d3f8d6d1e2e8g8\r
+d2d4g8f6g1f3e7e6c1g5d7d5b1d2f8e7e2e3b8d7f1d3c7c5c2c3b7b6e1g1c8b7f3e5d7e5d4e5f6d7\r
+d2d4g8f6g1f3e7e6c2c4b7b6b1c3c8b7a2a3d7d5c4d5f6d5e2e3f8e7f1b5c7c6b5d3b8d7e1g1e8g8\r
+d2d4g8f6g1f3e7e6c2c4b7b6b1c3c8b7c1g5h7h6g5h4f8e7e2e3e8g8f1d3c7c5e1g1c5d4e3d4b7f3\r
+d2d4g8f6g1f3e7e6c2c4b7b6b1c3c8b7c1g5h7h6g5h4f8e7e2e3e8g8f1d3c7c5e1g1c5d4e3d4d7d5\r
+d2d4g8f6g1f3e7e6c2c4b7b6b1c3c8b7e2e3f8b4f1d3e8g8e1g1b4c3b2c3c7c5f1e1f6e4d1c2f7f5\r
+d2d4g8f6g1f3e7e6c2c4b7b6b1c3f8b4c1d2c7c5a2a3b4c3d2c3c8b7e2e3e8g8f1d3d7d6e1g1b8d7\r
+d2d4g8f6g1f3e7e6c2c4b7b6e2e3c8b7f1d3d7d5b2b3f8e7e1g1e8g8c1b2c7c5d1e2c5d4e3d4b8c6\r
+d2d4g8f6g1f3e7e6c2c4b7b6g2g3c8a6b2b3f8b4c1d2b4e7f1g2c7c6f3e5d7d5d2c3f6d7e5d7b8d7\r
+d2d4g8f6g1f3e7e6c2c4b7b6g2g3c8a6b2b3f8b4c1d2b4e7f1g2d7d5c4d5e6d5e1g1e8g8b1c3a6b7\r
+d2d4g8f6g1f3e7e6c2c4b7b6g2g3c8a6d1b3b8c6b1d2f8b4d4d5b4d2c1d2c6a5b3a4f6e4d2a5b6a5\r
+d2d4g8f6g1f3e7e6c2c4b7b6g2g3c8b7f1g2f8e7b1c3e8g8e1g1f6e4c1d2d7d5f3e5b8d7c4d5e6d5\r
+d2d4g8f6g1f3e7e6c2c4b7b6g2g3c8b7f1g2f8e7b1c3e8g8e1g1f6e4c1d2f7f5d4d5e7f6d1c2f6c3\r
+d2d4g8f6g1f3e7e6c2c4c7c5e2e3d7d5b1c3b8c6c4d5e6d5f1e2c5d4e3d4f8d6c1g5c8e6e1g1h7h6\r
+d2d4g8f6g1f3e7e6c2c4d7d5b1c3b8d7c1g5f8e7e2e3e8g8a1c1c7c6a2a3f8e8f1d3d5c4d3c4f6d5\r
+d2d4g8f6g1f3e7e6c2c4d7d5b1c3b8d7e2e3a7a6c4c5c7c6b2b4d8c7c1b2e6e5d4e5d7e5f3e5c7e5\r
+d2d4g8f6g1f3e7e6c2c4d7d5b1c3c7c5c4d5f6d5e2e3b8c6f1d3f8e7e1g1e8g8a2a3c5d4e3d4e7f6\r
+d2d4g8f6g1f3e7e6c2c4d7d5b1c3c7c5c4d5f6d5e2e3b8c6f1d3f8e7e1g1e8g8a2a3c5d4e3d4e7f6\r
+d2d4g8f6g1f3e7e6c2c4d7d5b1c3c7c5c4d5f6d5e2e3b8c6f1d3f8e7e1g1e8g8a2a3c5d4e3d4e7f6\r
+d2d4g8f6g1f3e7e6c2c4d7d5b1c3c7c5c4d5f6d5e2e4d5c3b2c3c5d4c3d4f8b4c1d2b4d2d1d2e8g8\r
+d2d4g8f6g1f3e7e6c2c4d7d5b1c3c7c5c4d5f6d5e2e4d5c3b2c3c5d4c3d4f8b4c1d2b4d2d1d2e8g8\r
+d2d4g8f6g1f3e7e6c2c4d7d5b1c3d5c4e2e4f8b4c1g5c7c5f1c4c5d4f3d4b4c3b2c3d8a5c4b5c8d7\r
+d2d4g8f6g1f3e7e6c2c4d7d5b1c3f8e7c1g5e8g8e2e3b8d7f1d3d5c4d3c4c7c5e1g1a7a6a2a4c5d4\r
+d2d4g8f6g1f3e7e6c2c4d7d5c1g5h7h6g5f6d8f6b1c3c7c6e2e3b8d7f1d3f6d8e1g1f8e7d1e2e8g8\r
+d2d4g8f6g1f3e7e6c2c4f8b4b1d2b7b6a2a3b4d2c1d2h7h6g2g3c8b7f1g2e8g8e1g1d7d6b2b4b8d7\r
+d2d4g8f6g1f3e7e6c2c4f8b4b1d2b7b6e2e3c8b7a2a3b4d2d1d2e8g8b2b3f6e4d2c2f7f5f1d3d7d6\r
+d2d4g8f6g1f3e7e6c2c4f8b4b1d2e8g8a2a3b4d2c1d2b7b6d2g5c8b7e2e3d7d6f1d3b8d7e1g1h7h6\r
+d2d4g8f6g1f3e7e6c2c4f8b4c1d2a7a5g2g3d7d5d1c2c7c5f1g2c5d4d2b4a5b4c4d5e8g8f3d4d8b6\r
+d2d4g8f6g1f3e7e6e2e3b7b6f1d3c8b7e1g1d7d5b2b3f8d6c1b2e8g8c2c4c7c5c4d5e6d5b1c3b8d7\r
+d2d4g8f6g1f3e7e6e2e3b7b6f1d3c8b7e1g1d7d5c2c4d5c4d3c4a7a6d1e2b8d7f1d1c7c5a2a4f8d6\r
+d2d4g8f6g1f3e7e6e2e3c7c5f1d3b8c6e1g1f8e7b2b3b7b6a2a3c8b7c1b2a8c8b1d2e8g8d1e2f8e8\r
+d2d4g8f6g1f3e7e6e2e3c7c5f1d3d7d5d4c5f8c5a2a3e8g8b2b4c5e7b1d2a7a5b4b5b8d7c1b2d7c5\r
+d2d4g8f6g1f3e7e6g2g3b7b5f1g2c8b7e1g1c7c5c1g5f8e7c2c3b8a6e2e3a8b8b1d2e8g8a2a3f6e4\r
+d2d4g8f6g1f3e7e6g2g3b7b6f1g2c8b7c2c4f8e7b1c3e8g8d1c2c7c5d4d5e6d5f3g5b8c6c3d5g7g6\r
+d2d4g8f6g1f3e7e6g2g3b7b6f1g2c8b7c2c4f8e7b1c3e8g8d1d3d7d5c4d5f6d5c3d5e6d5e1g1b8d7\r
+d2d4g8f6g1f3e7e6g2g3b7b6f1g2c8b7c2c4f8e7b1c3e8g8d4d5e7b4c1d2c7c6d5c6d7c6d1c2c6c5\r
+d2d4g8f6g1f3e7e6g2g3b7b6f1g2c8b7c2c4f8e7b1c3f6e4c1d2d7d5c4d5e6d5d1a4b7c6a4b3e8g8\r
+d2d4g8f6g1f3e7e6g2g3b7b6f1g2c8b7c2c4f8e7b1c3f6e4c1d2d7d5c4d5e6d5d1a4d8d7a4d7b8d7\r
+d2d4g8f6g1f3e7e6g2g3b7b6f1g2c8b7c2c4f8e7e1g1e8g8b1c3f6e4c3e4b7e4f3e1e4g2e1g2d7d5\r
+d2d4g8f6g1f3e7e6g2g3b7b6f1g2c8b7e1g1f8e7c2c4e8g8b1c3f6e4c1d2f7f5d4d5e7f6a1c1b8a6\r
+d2d4g8f6g1f3e7e6g2g3b7b6f1g2c8b7e1g1f8e7c2c4e8g8b1c3f6e4c3e4b7e4f3e1d7d5c4d5e4g2\r
+d2d4g8f6g1f3e7e6g2g3c7c5f1g2d8c7e1g1c5d4f3d4a7a6d4b3f8e7c1f4d7d6c2c4b8d7b1a3f6h5\r
+d2d4g8f6g1f3g7g6b1c3d7d5c1f4f8g7e2e3c7c6f1e2b8d7f3e5a7a5h2h4h7h5d1d2f6e4c3e4d5e4\r
+d2d4g8f6g1f3g7g6c1f4f8g7b1d2c7c5c2c3c5d4c3d4d7d5f4b8a8b8d1a4c8d7a4a7f6e4e2e3e4d2\r
+d2d4g8f6g1f3g7g6c1f4f8g7b1d2d7d6h2h3e8g8e2e3c7c5f1e2b8c6f4h2b7b6e1g1c8b7c2c3d8d7\r
+d2d4g8f6g1f3g7g6c1f4f8g7b1d2d7d6h2h3e8g8e2e3c7c5f1e2b8c6f4h2c5d4e3d4c8d7e1g1a8c8\r
+d2d4g8f6g1f3g7g6c1f4f8g7e2e3d7d6h2h3e8g8f1e2b7b6e1g1c8b7c2c4f6e4d1c2b8d7b1c3e4c3\r
+d2d4g8f6g1f3g7g6c1g5f8g7b1d2d7d5e2e3e8g8c2c3b8d7f1e2f8e8b2b4c7c6e1g1e7e5d2b3d8b6\r
+d2d4g8f6g1f3g7g6c1g5f8g7c2c3d7d5b1d2e8g8e2e3c7c6f1e2c8g4e1g1b8d7b2b4a7a5b4b5a5a4\r
+d2d4g8f6g1f3g7g6c2c4f8g7b1c3d7d5c1f4e8g8a1c1c7c5d4c5d5c4d1d8f8d8e2e4b8a6e4e5f6g4\r
+d2d4g8f6g1f3g7g6c2c4f8g7b1c3d7d5d1b3d5c4b3c4e8g8e2e4a7a6c4a4b8d7e4e5f6g4h2h3g4h6\r
+d2d4g8f6g1f3g7g6c2c4f8g7b1c3d7d5e2e3e8g8g2g3d5c4f3e5c8e6f1g2d8c8d1e2c7c6e5c4e6h3\r
+d2d4g8f6g1f3g7g6c2c4f8g7b1c3d7d6c1g5h7h6g5h4g6g5h4g3f6h5e2e3e7e6f1d3d8e7a1c1e8g8\r
+d2d4g8f6g1f3g7g6c2c4f8g7b1c3e8g8e2e4d7d6f1e2e7e5c1e3c7c6e1g1e5d4e3d4d8e7f3d2f8e8\r
+d2d4g8f6g1f3g7g6c2c4f8g7b1c3e8g8e2e4d7d6f1e2e7e5e1g1b8c6d4d5c6e7b2b4f6h5f1e1h5f4\r
+d2d4g8f6g1f3g7g6c2c4f8g7b1c3e8g8e2e4d7d6f1e2e7e5e1g1e5d4f3d4b8d7c1g5d7c5f2f3h7h6\r
+d2d4g8f6g1f3g7g6c2c4f8g7b1c3e8g8e2e4d7d6f1e2e7e5e1g1e5d4f3d4f8e8f2f3c7c6g1h1a7a6\r
+d2d4g8f6g1f3g7g6c2c4f8g7g2g3c7c6f1g2d7d5c4d5c6d5b1c3e8g8f3e5e7e6e1g1f6d7e5f3b8c6\r
+d2d4g8f6g1f3g7g6c2c4f8g7g2g3c7c6f1g2d7d5c4d5c6d5e1g1e8g8b1c3f6e4c3e4d5e4f3e5f7f6\r
+d2d4g8f6g1f3g7g6c2c4f8g7g2g3d7d5c4d5f6d5f1g2d5b6e2e4e8g8e1g1c8g4d4d5d8d7b1c3c7c6\r
+d2d4g8f6g1f3g7g6c2c4f8g7g2g3d7d5f1g2d5c4e1g1c7c6b1c3e8g8h2h3b7b5f3e5a7a6e2e4c8b7\r
+d2d4g8f6g1f3g7g6c2c4f8g7g2g3e8g8f1g2d7d5c4d5f6d5e1g1b8c6e2e4d5b6d4d5c6a5d1e1a5c4\r
+d2d4g8f6g1f3g7g6c2c4f8g7g2g3e8g8f1g2d7d5c4d5f6d5e1g1d5b6b1c3b8c6d4d5c6a5c1f4c7c6\r
+d2d4g8f6g1f3g7g6c2c4f8g7g2g3e8g8f1g2d7d5c4d5f6d5e1g1d5b6b1c3b8c6e2e3e7e5d4d5c6a5\r
+d2d4g8f6g1f3g7g6c2c4f8g7g2g3e8g8f1g2d7d6e1g1b8c6b1c3a7a6h2h3e7e5d4d5c6e7e2e4b7b5\r
+d2d4g8f6g1f3g7g6c2c4f8g7g2g3e8g8f1g2d7d6e1g1b8d7b1c3e7e5e2e4a7a6a1b1b7b5c4b5a6b5\r
+d2d4g8f6g1f3g7g6c2c4f8g7g2g3e8g8f1g2d7d6e1g1b8d7b1c3e7e5e2e4a7a6f1e1e5d4f3d4f6g4\r
+d2d4g8f6g1f3g7g6c2c4f8g7g2g3e8g8f1g2d7d6e1g1b8d7d1c2e7e5f1d1f8e8b1c3e5d4f3d4c7c6\r
+d2d4g8f6g1f3g7g6g2g3d7d5f1g2e7e6c2c4f8g7c1g5c7c5e1g1d8b6b1c3c5d4f3d4f6e4c3e4d5e4\r
+d2d4g8f6g1f3g7g6g2g3d7d5f1g2f8g7e1g1c7c6b1d2e8g8c2c4f6e4e2e3e4d2f3d2d5c4d2c4c8e6\r
+d2d4g8f6g1f3g7g6g2g3d7d5f1g2f8g7e1g1e8g8c1f4c7c6b1d2d8b6d1c1c6c5d4c5b6c5d2b3c5b4\r
+d2d4g8f6g1f3g7g6g2g3f8g7c2c4d7d5f1g2d5c4e1g1c7c6b1c3e8g8h2h3b8a6e2e4b7b5d1e2c8b7\r
+d2d4g8f6g1f3g7g6g2g3f8g7f1g2e8g8e1g1c7c6c2c4d7d6b1c3d8b6b2b3e7e5d4e5d6e5d1c2f8e8\r
+d2d4g8f6g1f3g7g6g2g3f8g7f1g2e8g8e1g1d7d5c2c4d5c4b1a3b8c6a3c4c8e6b2b3d8c8f1e1f8d8\r
+d2d4g8f6g1f3g7g6g2g3f8g7f1g2e8g8e1g1d7d6b1d2b8c6c2c3e7e5d4e5d6e5d2b3d8e7c1e3f8d8\r
+d2d4g8f6g1f3g7g6g2g3f8g7f1g2e8g8e1g1d7d6b2b3e7e5d4e5d6e5c1b2e5e4d1d8f8d8f3g5c8f5\r
+d2d4g8f6g1f3g7g6g2g3f8g7f1g2e8g8e1g1d7d6b2b3e7e5d4e5f6g4c1b2b8c6c2c4f8e8b1c3g4e5\r
+d2d4g8f6g1f3g7g6g2g3f8g7f1g2e8g8e1g1d7d6c2c4b8c6b1c3a7a6f1e1c8d7e2e4d7g4c1e3f6d7\r
+d2d4g8f6g1f3g7g6g2g3f8g7f1g2e8g8e1g1d7d6c2c4b8c6b1c3a8b8c1d2c8g4d4d5g4f3e2f3c6e5\r
+d2d4g8f6g1f3g7g6g2g3f8g7f1g2e8g8e1g1d7d6f1e1b8d7e2e4e7e5c2c3f8e8b1d2b7b6d1c2c8b7\r
+e2e3e7e5b1c3d7d5d2d4e5d4d1d4g8f6e3e4b8c6f1b5c8d7b5c6d7c6e4e5f6e4c3e4d5e4g1e2f8e7\r
+e2e3e7e5d2d4e5d4e3d4d7d5b1c3g8f6c1g5f8e7f1d3e8g8g1e2b8c6e1g1f6e8g5e7c6e7d1d2c7c6\r
+e2e4c7c5b1c3b8c6f2f4e7e6g1f3d7d5f1b5c8d7e4d5c6d4b5d7d8d7f3e5d7d6d5e6d6e6e1g1e8c8\r
+e2e4c7c5b1c3b8c6f2f4e7e6g1f3d7d5f1b5g8e7e4d5e6d5f3e5a7a6b5c6e7c6e1g1f8e7d1f3c8e6\r
+e2e4c7c5b1c3b8c6f2f4e7e6g1f3d7d5f1b5g8e7e4d5e7d5f3e5c8d7b5c6d7c6e5c6b7c6e1g1f8e7\r
+e2e4c7c5b1c3b8c6f2f4g7g6g1f3f8g7f1b5c6d4e1g1a7a6b5d3d7d6f3d4c5d4c3e2g8f6g1h1f6d7\r
+e2e4c7c5b1c3b8c6g1e2d7d6d2d4c5d4e2d4e7e6c1e3g8f6d1d2f8e7f2f3a7a6e1c1e8g8g2g4c6d4\r
+e2e4c7c5b1c3b8c6g1e2e7e5c3d5g8e7e2c3e7d5c3d5f8e7g2g3d7d6f1g2h7h5h2h4c8e6d2d3e6d5\r
+e2e4c7c5b1c3b8c6g1e2e7e6g2g3d7d5e4d5e6d5f1g2d5d4c3d5g8f6e2f4f6d5f4d5f8d6e1g1e8g8\r
+e2e4c7c5b1c3b8c6g1f3g7g6f1b5f8g7e1g1d7d6d2d3c8d7a2a4g8f6h2h3e8g8c1e3e7e5f3d2d7e6\r
+e2e4c7c5b1c3b8c6g2g3g7g6f1g2f8g7d2d3b7b6g1e2d7d6e1g1c8b7f2f4f7f5g3g4f5g4f4f5d8d7\r
+e2e4c7c5b1c3b8c6g2g3g7g6f1g2f8g7d2d3b7b6g1h3c8b7e1g1d7d6f2f4h7h6f4f5g7c3b2c3g6g5\r
+e2e4c7c5b1c3b8c6g2g3g7g6f1g2f8g7d2d3d7d6c1e3a8b8d1d2b7b5g1f3b5b4c3d1c6d4f3h4e7e5\r
+e2e4c7c5b1c3b8c6g2g3g7g6f1g2f8g7d2d3d7d6f2f4e7e5g1f3g8e7e1g1e8g8c1e3c6d4d1d2e5f4\r
+e2e4c7c5b1c3b8c6g2g3g7g6f1g2f8g7d2d3d7d6f2f4e7e5g1h3e5f4c1f4g8e7e1g1h7h6a1b1e8g8\r
+e2e4c7c5b1c3b8c6g2g3g7g6f1g2f8g7d2d3d7d6g1e2c8d7c1e3c6d4h2h3d8c8d1d2a8b8g3g4b7b5\r
+e2e4c7c5b1c3b8c6g2g3g7g6f1g2f8g7d2d3d7d6g1e2e7e5c3d5g8e7c2c3e7d5e4d5c6e7e1g1e8g8\r
+e2e4c7c5b1c3b8c6g2g3g7g6f1g2f8g7d2d3d7d6g1h3g8f6e1g1c8g4f2f3g4h3g2h3e8g8c1e3f6e8\r
+e2e4c7c5b1c3b8c6g2g3g7g6f1g2f8g7d2d3e7e6c1e3d7d6f2f4g8e7g1f3c6d4e1g1c8d7d1d2d8a5\r
+e2e4c7c5b1c3b8c6g2g3g7g6f1g2f8g7d2d3e7e6c1e3d8a5d1d2d7d6f2f4g8e7g1f3c6d4e1g1f7f5\r
+e2e4c7c5b1c3b8c6g2g3g7g6f1g2f8g7d2d3e7e6c1e3d8a5g1e2c6d4e1g1g8e7e3d2d7d6e2d4c5d4\r
+e2e4c7c5b1c3b8c6g2g3g7g6f1g2f8g7d2d3e7e6c1e3g8e7e3c5d7d6c5e3a7a6g1e2c8d7d1d2e8g8\r
+e2e4c7c5b1c3b8c6g2g3g7g6f1g2f8g7d2d3g8f6g1e2e8g8e1g1d7d6a1b1a8b8a2a3b7b5b2b4c5b4\r
+e2e4c7c5b1c3d7d6f2f4b8c6g1f3g7g6f1c4f8g7e1g1e7e6d2d3g8e7d1e1c6d4f3d4c5d4c3e2e8g8\r
+e2e4c7c5b1c3d7d6f2f4g7g6d2d4c5d4d1d4g8f6e4e5b8c6f1b5f6d7b5c6b7c6e5e6d7f6e6f7e8f7\r
+e2e4c7c5b1c3d7d6f2f4g7g6g1f3f8g7f1c4b8c6e1g1e7e6f4f5e6f5d2d3g8e7a2a3h7h6d1e1c8e6\r
+e2e4c7c5b1c3d7d6g1e2g8f6g2g3b8c6f1g2g7g6d2d3f8g7h2h3a8b8c1g5e8g8d1d2b7b5e1g1b5b4\r
+e2e4c7c5b1c3d7d6g1f3g8f6g2g3b8c6f1g2g7g6d2d4c5d4f3d4c6d4d1d4f8g7e1g1e8g8d4b4a7a5\r
+e2e4c7c5b1c3d7d6g2g3b8c6f1g2g7g6d2d3f8g7c1e3a8b8d1d2b7b5g1e2c6d4e1g1e7e6c3d1g8e7\r
+e2e4c7c5b1c3d7d6g2g3b8c6f1g2g7g6d2d3f8g7c1e3a8b8d1d2b7b5g1e2c6d4e1g1e7e6c3d1g8e7\r
+e2e4c7c5b1c3d7d6g2g3b8c6f1g2g7g6d2d3f8g7f2f4e7e6g1f3g8e7e1g1e8g8a1b1b7b6c1d2c8b7\r
+e2e4c7c5b1c3d7d6g2g3b8c6f1g2g7g6d2d3f8g7f2f4e7e6g1f3g8e7e1g1e8g8a2a3c8d7a1b1a8c8\r
+e2e4c7c5b1c3d7d6g2g3b8c6f1g2g7g6d2d3f8g7f2f4g8f6g1f3e8g8e1g1a8b8f3h4c6d4f4f5b7b5\r
+e2e4c7c5b1c3d7d6g2g3b8c6f1g2g7g6d2d3f8g7f2f4g8f6g1f3e8g8e1g1a8b8h2h3b7b5a2a3a7a5\r
+e2e4c7c5b1c3d7d6g2g3b8c6f1g2g7g6d2d3f8g7f2f4g8f6g1f3e8g8e1g1a8b8h2h3b7b5a2a3a7a5\r
+e2e4c7c5b1c3d7d6g2g3b8c6f1g2g7g6d2d3f8g7f2f4g8f6g1f3e8g8e1g1a8b8h2h3b7b5a2a3a7a5\r
+e2e4c7c5b1c3d7d6g2g3b8c6f1g2g7g6d2d3f8g7g1h3e7e6e1g1g8e7c1e3e8g8d1d2c6d4g1h1a8b8\r
+e2e4c7c5b1c3d7d6g2g3g7g6f1g2f8g7d2d3b8c6c1e3g8f6h2h3e8g8g1e2c8d7e1g1a7a6g3g4a8b8\r
+e2e4c7c5b1c3d7d6g2g3g7g6f1g2f8g7d2d3b8c6f2f4e7e6g1f3g8e7e1g1e8g8c1d2a8b8a1b1b7b5\r
+e2e4c7c5b1c3d7d6g2g3g7g6f1g2f8g7d2d3b8c6f2f4e7e6g1f3g8e7e1g1e8g8c1d2a8b8a1b1b7b5\r
+e2e4c7c5b1c3d7d6g2g3g7g6f1g2f8g7d2d3b8c6g1h3e7e6e1g1g8e7c1e3e8g8d1d2e6e5f2f4f7f5\r
+e2e4c7c5b1c3e7e6g1e2b8c6d2d4c5d4e2d4d7d6g2g3g8f6f1g2c8d7e1g1f8e7c1e3e8g8d1e2a7a6\r
+e2e4c7c5b1c3e7e6g1e2b8c6d2d4c5d4e2d4d8c7g2g3a7a6f1g2d7d6e1g1c8d7a2a4g8f6d4c6d7c6\r
+e2e4c7c5b1c3e7e6g1e2b8c6g2g3d7d5e4d5e6d5d2d3g8f6f1g2f8e7c1g5d5d4g5f6e7f6c3e4f6e7\r
+e2e4c7c5b1c3e7e6g1f3a7a6d2d4c5d4f3d4d7d6f1d3g8f6e1g1f8e7f2f4b8c6d4c6b7c6d1e2f6d7\r
+e2e4c7c5b1c3e7e6g1f3a7a6d2d4c5d4f3d4d7d6g2g3b7b6f1g2c8b7e1g1f8e7f2f4d8c7d1e2g8f6\r
+e2e4c7c5b1c3e7e6g1f3a7a6d2d4c5d4f3d4d7d6g2g3b8c6f1g2c8d7e1g1g8f6a2a4f8e7d4c6d7c6\r
+e2e4c7c5b1c3e7e6g1f3a7a6g2g3b7b5f1g2c8b7d2d4b5b4c3a4c5d4f3d4g8f6c1g5d8a5g5f6g7f6\r
+e2e4c7c5b1c3e7e6g1f3a7a6g2g3b7b5f1g2c8b7d2d4g8f6c1g5c5d4f3d4h7h6g5f6d8f6e1g1b8c6\r
+e2e4c7c5b1c3e7e6g1f3b8c6g2g3d7d5f1g2d5d4c3e2g7g6d2d3f8g7e1g1g8e7f3h4e6e5f2f4d8d6\r
+e2e4c7c5b1c3e7e6g1f3d7d6d2d4c5d4f3d4g8f6f1e2a7a6e1g1d8c7c1e3b7b5a2a3c8b7f2f3b8d7\r
+e2e4c7c5b1c3e7e6g1f3d7d6d2d4c5d4f3d4g8f6g2g3f8e7f1g2e8g8e1g1a7a6a2a4d8c7h2h3b8c6\r
+e2e4c7c5b1c3e7e6g2g3d7d5e4d5e6d5f1g2g8f6g1e2d5d4c3e4f6e4g2e4b8d7d2d3d7f6e4g2f8d6\r
+e2e4c7c5b1c3g7g6g2g3f8g7d2d3b8c6f1g2a8b8f2f4d7d6g1f3e7e6e1g1g8e7e4e5d6e5f4e5c6e5\r
+e2e4c7c5c2c3d7d5e4d5d8d5d2d4e7e6g1f3b8c6f1e2g8f6e1g1f8e7c1e3c5d4f3d4c6d4e3d4e8g8\r
+e2e4c7c5c2c3d7d5e4d5d8d5d2d4e7e6g1f3g8f6c1e3c5d4c3d4f8e7b1c3d5d6f1d3b8c6a2a3e8g8\r
+e2e4c7c5c2c3d7d5e4d5d8d5d2d4g8f6g1f3b8c6c1e3c5d4c3d4e7e6b1c3d5d6a2a3f8e7f1d3e8g8\r
+e2e4c7c5c2c3d7d5e4d5d8d5d2d4g8f6g1f3c8g4d4c5d5c5b1a3a7a6c1e3c5c7h2h3g4h5d1a4b8d7\r
+e2e4c7c5c2c3d7d5e4d5d8d5d2d4g8f6g1f3c8g4f1e2e7e6e1g1b8c6c1e3c5d4c3d4f8b4a2a3b4a5\r
+e2e4c7c5c2c3d7d5e4d5d8d5d2d4g8f6g1f3c8g4f1e2e7e6h2h3g4h5e1g1b8c6c1e3c5d4c3d4f8b4\r
+e2e4c7c5c2c3d7d6d2d4g8f6f1d3c5d4c3d4g7g6b1c3f8g7h2h3e8g8g1f3e7e5d4e5d6e5e1g1b8c6\r
+e2e4c7c5c2c3e7e6d2d4d7d5e4d5e6d5c1e3c5c4b2b3c4b3a2b3f8d6f1d3b8c6d1f3g8f6h2h3h7h6\r
+e2e4c7c5c2c3g8f6e4e5f6d5d2d4c5d4g1f3b8c6c3d4d7d6f1c4d5b6c4b5d6e5f3e5c8d7e5d7d8d7\r
+e2e4c7c5c2c3g8f6e4e5f6d5d2d4c5d4g1f3e7e6c3d4d7d6a2a3c8d7f1d3d7c6e1g1b8d7b2b4a7a6\r
+e2e4c7c5c2c3g8f6e4e5f6d5g1f3b8c6f1c4d5b6c4b3c5c4b3c2d8c7d1e2g7g5e5e6d7e6f3g5c7e5\r
+e2e4c7c5c2c3g8f6e4e5f6d5g1f3b8c6f1c4d5b6c4b3c5c4b3c2g7g6b1a3d7d6d1e2d6d5h2h3f8g7\r
+e2e4c7c5c2c3g8f6e4e5f6d5g1f3b8c6f1c4d5b6c4e2d7d6e5d6e7e6d2d4f8d6d4c5d6c5d1d8c6d8\r
+e2e4c7c5c2c3g8f6e4e5f6d5g1f3b8c6f1c4d5b6c4e2d7d6e5d6e7e6d2d4f8d6e1g1e8g8e2d3g7g6\r
+e2e4c7c5c2c3g8f6e4e5f6d5g1f3e7e6d2d4c5d4c3d4b7b6a2a3f8e7b1d2e8g8d2e4f7f5e5f6d5f6\r
+e2e4c7c5c2c3g8f6e4e5f6d5g2g3b8c6f1g2d8c7f2f4e7e6b1a3f8e7g1e2e8g8e1g1a7a6d2d3b7b6\r
+e2e4c7c5d2d3b8c6g1f3g7g6g2g3f8g7f1g2d7d6e1g1g8f6b1d2e8g8a2a4c8d7d2c4d8c8f1e1f6g4\r
+e2e4c7c5g1e2d7d6g2g3g7g6f1g2f8g7c2c3g8f6d2d4e8g8e1g1d8c7b1a3b8c6h2h3f8d8c1e3e7e5\r
+e2e4c7c5g1e2d7d6g2g3g7g6f1g2f8g7e1g1b8c6c2c3e7e5d2d3g8e7a2a3e8g8b2b4b7b6f2f4e5f4\r
+e2e4c7c5g1e2g8f6b1c3d7d6g2g3b8c6f1g2g7g6d2d3f8g7c1e3e8g8h2h3f6e8d1d2c6d4c3d1a8b8\r
+e2e4c7c5g1e2g8f6b1c3d7d6g2g3b8c6f1g2g7g6d2d4c5d4e2d4c6d4d1d4f8g7e1g1e8g8d4d3c8e6\r
+e2e4c7c5g1e2g8f6b1c3d7d6g2g3b8c6f1g2g7g6e1g1f8g7d2d3e8g8h2h3a8b8f2f4c8d7c1e3b7b5\r
+e2e4c7c5g1e2g8f6b1c3d7d6g2g3g7g6f1g2b8c6e1g1f8g7d2d4c5d4e2d4c8g4d4e2d8c8f2f3g4h3\r
+e2e4c7c5g1e2g8f6b1c3e7e6g2g3b8c6f1g2f8e7e1g1d7d6d2d3a7a6a2a3d8c7f2f4b7b5g1h1e8g8\r
+e2e4c7c5g1f3a7a6b1c3e7e6d2d4c5d4f3d4b7b5f1d3d8b6d4b3b6c7e1g1c8b7d1e2d7d6a2a4b5b4\r
+e2e4c7c5g1f3a7a6d2d4c5d4f3d4g8f6b1c3e7e5d4f3f8b4f3e5e8g8f1d3d7d5e1g1b4c3b2c3d5e4\r
+e2e4c7c5g1f3b8c6b1c3e7e5f1c4d7d6d2d3f8e7f3d2e7g5d2f1g5c1a1c1g8e7f1e3e8g8a2a3g8h8\r
+e2e4c7c5g1f3b8c6b1c3g7g6d2d4c5d4f3d4f8g7c1e3g8f6f1e2e8g8d1d2d7d5e4d5f6d5c3d5d8d5\r
+e2e4c7c5g1f3b8c6b1c3g7g6g2g3f8g7f1g2g8f6d2d3e8g8f3h4a8b8f2f4d7d6e1g1c8d7f4f5b7b5\r
+e2e4c7c5g1f3b8c6c2c3d7d5e4d5d8d5d2d4g8f6f1e2e7e6e1g1f8e7b1a3e8g8a3b5d5d8d4c5e7c5\r
+e2e4c7c5g1f3b8c6c2c3g8f6e4e5f6d5f1c4d5b6c4b3d7d5e5d6e7e6d2d4c5d4c3d4f8d6e1g1c6e7\r
+e2e4c7c5g1f3b8c6d2d4c5d4c2c3d4d3c3c4d7d6f1d3g8f6e1g1e7e6b1c3f8e7c1f4e6e5f4g5c8g4\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4d8b6d4b3e7e6f1d3g8f6e1g1f8e7c2c4c6e5b1c3d7d6c1e3b6c7\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4d8c7b1c3e7e6c1e3a7a6f1d3g8f6e1g1c6e5h2h3f8c5d1e2d7d6\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4d8c7b1c3e7e6c1e3a7a6f1d3g8f6e1g1h7h5h2h3b7b5d4c6c7c6\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4d8c7b1c3e7e6f1e2a7a6e1g1g8f6c1e3f8e7f2f4d7d6a2a4e8g8\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4d8c7b1c3e7e6f1e2a7a6e1g1g8f6c1e3f8e7g1h1e8g8f2f4d7d6\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4d8c7b1c3e7e6f1e2a7a6f2f4c6d4d1d4b7b5c1e3c8b7e1g1a8c8\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4d8c7b1c3e7e6g2g3a7a6f1g2g8f6e1g1c6d4d1d4f8c5c1f4d7d6\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4e7e5d4b5a7a6b5d6f8d6d1d6d8f6d6d1f6g6b1c3g8e7h2h4h7h5\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4e7e5d4b5d7d6c2c4c8e6b1c3a7a6b5a3a8c8f1d3f8e7e1g1e7g5\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4e7e5d4b5d7d6c2c4f8e7b1c3a7a6b5a3c8e6f1d3e7g5a3c2g5c1\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4e7e6b1c3d7d6c1e3g8f6f1c4a7a6c4b3d8c7f2f4f8e7d1f3e8g8\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4e7e6b1c3d7d6c1e3g8f6f2f4f8e7d1f3e8g8e1c1d8c7d4b5c7b8\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4e7e6b1c3d7d6g2g3c8d7f1g2c6d4d1d4d7c6e1g1g8f6f1d1f8e7\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4e7e6b1c3d8c7c1e3a7a6a2a3g8f6f2f4d7d6f1d3c6d4e3d4e6e5\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4e7e6b1c3d8c7c1e3a7a6f1d3b7b5d4c6c7c6e1g1c8b7a2a3g8f6\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4e7e6b1c3d8c7c1e3a7a6f1d3g8f6e1g1b7b5d1e2c8b7a1d1c6e5\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4e7e6b1c3d8c7c1e3a7a6f1e2c6d4d1d4b7b5e1g1c8b7a1d1g8f6\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4e7e6b1c3d8c7c1e3a7a6f1e2g8f6a2a3f8e7e1g1e8g8f2f4d7d6\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4e7e6b1c3d8c7f1e2g8f6e1g1a7a6c1e3f8b4d4c6b7c6c3a4e8g8\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4e7e6b1c3d8c7g2g3a7a6f1g2g8f6e1g1f8e7b2b3e8g8c1b2c6d4\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4e7e6d4b5d7d6c1f4e6e5f4e3g8f6e3g5c8e6b1c3a7a6g5f6g7f6\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4e7e6d4b5d7d6c1f4e6e5f4e3g8f6e3g5d8a5d1d2f6e4d2a5c6a5\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4e7e6d4b5d7d6c2c4g8f6b5c3f8e7g2g3e8g8f1g2a7a6e1g1a8b8\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g7g6b1c3f8g7c1e3g8f6f1c4c6a5c4e2e8g8e1g1d7d6f2f4c8d7\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g7g6b1c3f8g7c1e3g8f6f1c4d7d6f2f3c6a5c4b3a5b3a2b3e8g8\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g7g6b1c3f8g7c1e3g8f6f1c4d8a5e1g1e8g8c4b3d7d6h2h3c8d7\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g7g6b1c3f8g7c1e3g8f6f1c4e8g8c4b3d8a5f2f3d7d5e4d5c6b4\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g7g6c2c4f8g7c1e3g8f6b1c3e8g8f1e2b7b6e1g1c8b7f2f3f6h5\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g7g6c2c4f8g7c1e3g8f6b1c3f6g4d1g4c6d4g4d1d4e6d1d2d7d6\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g7g6c2c4g8f6b1c3c6d4d1d4d7d6c1e3f8g7f2f3e8g8d4d2c8e6\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g7g6c2c4g8f6b1c3c6d4d1d4d7d6c4c5f8g7f1b5c8d7b5d7d8d7\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g7g6c2c4g8f6b1c3c6d4d1d4d7d6f1e2f8g7c1e3e8g8d4d2c8e6\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6c1e3f6g4f1b5g4e3f2e3c8d7b5c6b7c6e1g1e7e6\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6c1g5e7e6d1d2a7a6e1c1c8d7f2f4b7b5d4f3b5b4\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6c1g5e7e6d1d2a7a6e1c1c8d7f2f4b7b5g5f6g7f6\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6c1g5e7e6d1d2a7a6e1c1c8d7f2f4b7b5g5f6g7f6\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6c1g5e7e6d1d2a7a6e1c1c8d7f2f4f8e7d4f3b7b5\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6c1g5e7e6d1d2a7a6e1c1c8d7f2f4f8e7f1e2e8g8\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6c1g5e7e6d1d2a7a6e1c1c8d7f2f4h7h6g5h4f6e4\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6c1g5e7e6d1d2a7a6e1c1c8d7h2h3b7b5a2a3f8e7\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6c1g5e7e6d1d2a7a6e1c1h7h6g5e3c8d7f2f3b7b5\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6c1g5e7e6d1d2a7a6e1c1h7h6g5e3c8d7f2f4a8c8\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6c1g5e7e6d1d2a7a6e1c1h7h6g5e3d8c7f2f3a8b8\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6c1g5e7e6d1d2a7a6e1c1h7h6g5e3f6g4d4c6b7c6\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6c1g5e7e6d1d2a7a6e1c1h7h6g5e3f6g4d4c6b7c6\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6c1g5e7e6d1d2a7a6e1c1h7h6g5e3f8e7f2f4c6d4\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6c1g5e7e6d1d2a7a6e1c1h7h6g5f4c8d7d4c6d7c6\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6c1g5e7e6d1d2a7a6f1e2c8d7a1d1d8c7e1g1f8e7\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6c1g5e7e6d1d2f8e7e1c1c6d4d2d4e8g8f2f4h7h6\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6c1g5e7e6d1d2f8e7e1c1e8g8d4b3a7a6g5f6g7f6\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6c1g5e7e6d1d2f8e7e1c1e8g8f2f4c6d4d2d4d8a5\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6c1g5e7e6d1d2f8e7e1c1e8g8f2f4c6d4d2d4h7h6\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6c1g5e7e6d1d2f8e7e1c1e8g8f2f4e6e5d4c6b7c6\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6c1g5e7e6d1d2f8e7e1c1e8g8f2f4h7h6g5h4e6e5\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6c1g5e7e6d1d2f8e7e1c1e8g8f2f4h7h6g5h4f6e4\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6c1g5e7e6d1d2h7h6g5f6g7f6e1c1a7a6f1e2h6h5\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6c1g5e7e6d1d2h7h6g5f6g7f6e1c1a7a6f2f4c8d7\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6c1g5e7e6d1d3a7a6a1d1c8d7f1e2f8e7e1g1e8g8\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6c1g5e7e6f1e2f8e7e1g1e8g8d1d3h7h6g5c1g8h8\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6c1g5e7e6f1e2f8e7e1g1e8g8d4b5a7a6g5f6g7f6\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6c1g5e7e6f2f4f8e7d1d2e8g8e1c1c6d4d2d4d8a5\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6c1g5e7e6g2g3f8e7f1g2e8g8e1g1c6d4d1d4h7h6\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6f1c4c8d7c1g5d8a5g5f6g7f6d4b3a5g5e1g1h8g8\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6f1c4c8d7c4b3g7g6f2f3c6a5c1g5f8g7d1d2h7h6\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6f1c4d8b6d4e2e7e6e1g1f8e7c4b3e8g8g1h1c6a5\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6f1c4e7e6c4b3f8e7e1g1e8g8c1e3c6a5f2f4b7b6\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6f1c4e7e6e1g1a7a6c1e3d8c7c4b3c6a5f2f4b7b5\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6f1c4e7e6e1g1a7a6c1e3d8c7c4b3f8e7f2f4c6a5\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6f1e2e7e5d4b3f8e7e1g1e8g8c1e3c8e6e2f3a7a5\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6f1e2e7e5d4b3f8e7e1g1e8g8c1e3c8e6e2f3c6a5\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6f1e2e7e6c1e3a7a6e1g1d8c7d4b3f8e7f2f4e8g8\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6f1e2g7g6c1e3f8g7h2h4e8g8h4h5d6d5h5g6f7g6\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6f1e2g7g6c1e3f8g7h2h4e8g8h4h5d6d5h5g6h7g6\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6f1e2g7g6c1e3f8g7h2h4h7h5f2f3e8g8d1d2d6d5\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6f1e2g7g6e1g1f8g7d4b3e8g8g1h1a7a6f2f4b7b5\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3d7d6g2g3c8g4f2f3g4d7c1e3g7g6d1d2f8g7e1c1e8g8\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3e7e5d4b3f8b4f1d3d7d5e4d5f6d5c1d2d5c3b2c3b4d6\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3e7e5d4b5d7d6c1g5a7a6b5a3b7b5g5f6g7f6c3d5f6f5\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3e7e5d4b5d7d6c1g5a7a6b5a3b7b5g5f6g7f6c3d5f6f5\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3e7e5d4b5d7d6c1g5a7a6g5f6g7f6b5a3d6d5c3d5f8a3\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3e7e5d4b5d7d6c3d5f6d5e4d5c6b8c2c4f8e7f1e2a7a6\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3e7e5d4b5d7d6c3d5f6d5e4d5c6e7a2a4e7f5c2c3g7g6\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3e7e5d4b5d7d6c3d5f6d5e4d5c6e7c2c3e7f5a2a4g7g6\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3e7e5d4b5d7d6c3d5f6d5e4d5c6e7c2c4e7f5f1d3f8e7\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3e7e5d4b5h7h6b5d6f8d6d1d6d8e7d6e7e8e7c1e3d7d6\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3e7e6d4b5d7d6c1f4e6e5f4g5a7a6b5a3b7b5c3d5f8e7\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3e7e6d4c6b7c6e4e5f6d5c3e4d8c7f2f4c7a5c1d2a5b6\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3e7e6f1b5d8b6b5c6d7c6e1g1f8e7e4e5f6d5c3e4c6c5\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3g7g6d4c6b7c6e4e5f6g8f1c4f8g7c1f4d8a5e1g1g7e5\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3g7g6d4c6d7c6d1d8e8d8f1c4d8e8a2a4e7e5f2f4c8e6\r
+e2e4c7c5g1f3b8c6d2d4c5d4f3d4g8f6b1c3g7g6f1c4d7d6d4c6b7c6e4e5f6g4e5e6f7f5e1g1f8g7\r
+e2e4c7c5g1f3b8c6f1b5g7g6b5c6b7c6e1g1f8g7f1e1f7f6c2c3g8h6d2d4c5d4c3d4e8g8b1c3d7d6\r
+e2e4c7c5g1f3b8c6f1b5g7g6c2c3g8f6e4e5f6d5e1g1f8g7d2d4c5d4c3d4e8g8b1c3d5c7b5a4d7d6\r
+e2e4c7c5g1f3b8c6f1b5g7g6e1g1f8g7b1c3d7d6d2d3c8d7c3d5e7e6d5e3g8e7c2c3e8g8d3d4c6d4\r
+e2e4c7c5g1f3b8c6f1b5g7g6e1g1f8g7f1e1g8f6c2c3a7a6b5c6d7c6h2h3e8g8d2d4c5d4c3d4c6c5\r
+e2e4c7c5g1f3b8c6f1b5g7g6e1g1f8g7f1e1g8f6c2c3e8g8h2h3e7e5b1a3d7d6b5c6b7c6d2d3a7a5\r
+e2e4c7c5g1f3d7d6b1c3b8c6d2d4c5d4f3d4g8f6c1g5e7e6d1d2a7a6e1c1c8d7f2f4f8e7d4f3b7b5\r
+e2e4c7c5g1f3d7d6b1c3e7e6d2d4c5d4f3d4g8f6c1e3f8e7f2f4b8c6d1f3e6e5d4c6b7c6f4e5d6e5\r
+e2e4c7c5g1f3d7d6b1c3g8f6e4e5d6e5f3e5b8d7e5c4e7e6b2b3f8e7c1b2e8g8d1f3a8b8a2a4b7b6\r
+e2e4c7c5g1f3d7d6b1c3g8f6e4e5d6e5f3e5e7e6g2g3b8d7e5c4d7b6d1e2b6c4e2c4c8d7f1g2d8c8\r
+e2e4c7c5g1f3d7d6c2c3g8f6d1c2b8c6d2d4c5d4c3d4d6d5e4e5f6e4b1c3c8f5c2b3e4c3b2c3d8d7\r
+e2e4c7c5g1f3d7d6c2c3g8f6f1e2g7g6e1g1f8g7e2b5b8c6d2d4c5d4c3d4a7a6b5e2d6d5e4e5f6e4\r
+e2e4c7c5g1f3d7d6c2c3g8f6f1e2g7g6e1g1f8g7e2b5b8c6d2d4e8g8d4d5c6a5f1e1e7e6b5f1e6d5\r
+e2e4c7c5g1f3d7d6c2c3g8f6f1e2g7g6e1g1f8g7e2b5c8d7b5d7d8d7f1e1e8g8d2d4b8a6e4e5d6e5\r
+e2e4c7c5g1f3d7d6d2d4c5d4d1d4b8c6f1b5a7a6b5c6b7c6e1g1e7e5d4d3f8e7f1d1g8f6c1g5e8g8\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4b8c6b1c3e7e6f1e2g8f6c1e3f8e7f2f4e8g8e1g1c8d7d4b3a7a5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6a2a4b8c6f1e2e7e5d4b3f8e7e1g1e8g8c1g5c8e6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6a2a4b8c6f1e2g7g6c1e3f8g7e1g1e8g8f2f4c8d7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1e3e7e5d4b3c8e6d1d2b8d7f2f3a8c8g2g4f8e7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1e3e7e5d4f3d8c7a2a4f8e7a4a5b8d7f3d2d7c5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1e3e7e5d4f3d8c7a2a4f8e7a4a5e8g8f1e2c8e6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1e3e7e5d4f3f8e7f1c4c8e6c4e6f7e6f3g5d8d7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1e3e7e6d1d2b7b5f2f3c8b7g2g4b8c6d4c6b7c6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1e3e7e6f1e2f8e7f2f4b8c6d1d2c6d4d2d4e8g8\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1e3e7e6f2f3b7b5g2g4h7h6d1d2b8d7e1c1c8b7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1e3e7e6f2f4b7b5d1f3c8b7f1d3b8d7g2g4d7c5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1e3e7e6g2g4h7h6d1e2b8c6e1c1c8d7f2f3a8c8\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1g5b8c6d1d2e7e6e1c1c8d7f2f4h7h6g5h4g7g5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1g5b8d7f1c4d8a5d1d2h7h6g5f6d7f6e1c1e7e6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1g5e7e6d1d3f8e7f1e2h7h6g5h4b8d7e1c1d8c7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1g5e7e6f2f4b7b5e4e5d6e5f4e5d8c7e5f6c7e5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1g5e7e6f2f4b7b5e4e5d6e5f4e5d8c7f1b5a6b5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1g5e7e6f2f4b8d7d1f3d8c7e1c1b7b5f1d3c8b7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1g5e7e6f2f4b8d7d1f3d8c7e1c1b7b5f1d3c8b7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1g5e7e6f2f4c8d7d1f3b8c6e1c1d8c7d4c6b7c6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1g5e7e6f2f4d8b6d1d2b6b2a1b1b2a3f4f5b8c6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1g5e7e6f2f4d8b6d1d2b6b2a1b1b2a3f4f5b8c6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1g5e7e6f2f4d8b6d1d2b6b2a1b1b2a3f4f5b8c6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1g5e7e6f2f4d8b6d1d2b6b2d4b3b2a3f1d3f8e7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1g5e7e6f2f4d8b6d1d2b6b2d4b3b2a3g5f6g7f6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1g5e7e6f2f4d8b6d1d2b6b2d4b3b2a3g5f6g7f6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1g5e7e6f2f4d8b6d1d2b6b2d4b3b2a3g5f6g7f6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1g5e7e6f2f4d8b6d1d2b6b2d4b3b8c6g5f6g7f6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1g5e7e6f2f4f8e7d1f3b8d7f1c4h7h6g5f6e7f6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1g5e7e6f2f4f8e7d1f3d8c7e1c1b8d7d1e1h7h6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1g5e7e6f2f4f8e7d1f3d8c7e1c1b8d7f1d3b7b5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1g5e7e6f2f4f8e7d1f3d8c7e1c1b8d7f1e2b7b5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1g5e7e6f2f4f8e7d1f3d8c7e1c1b8d7f4f5e6e5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1g5e7e6f2f4f8e7d1f3d8c7e1c1b8d7g2g4b7b5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1g5e7e6f2f4f8e7d1f3d8c7e1c1b8d7g2g4b7b5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1g5e7e6f2f4f8e7d1f3d8c7e1c1b8d7g2g4b7b5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1g5e7e6f2f4f8e7d1f3d8c7e1c1b8d7g2g4b7b5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1g5e7e6f2f4h7h6g5h4d8b6a2a3b8c6h4f2b6c7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6c1g5e7e6f2f4h7h6g5h4d8b6a2a3b8c6h4f2b6c7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1c4b8d7a2a4g7g6e1g1f8g7c1g5e8g8d1d2d7c5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1c4e7e6a2a3f8e7e1g1e8g8c4a2b7b5f2f4c8b7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1c4e7e6c4b3b7b5e1g1f8e7d1f3d8c7f3g3b8c6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1c4e7e6c4b3b7b5e1g1f8e7d1f3d8c7f3g3e8g8\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1c4e7e6c4b3b7b5e1g1f8e7d1f3d8c7f3g3e8g8\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1c4e7e6c4b3b7b5f2f3f8e7c1e3e8g8d1d2d8c7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1c4e7e6c4b3b7b5f2f4b5b4c3a4f6e4e1g1g7g6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1c4e7e6c4b3b8c6c1e3f8e7f2f4e8g8e1g1c6d4\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1c4e7e6c4b3b8c6f2f4f8e7c1e3e8g8d1f3c6d4\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1c4e7e6c4b3b8d7f2f4d7c5d1f3b7b5f4f5c8d7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1c4e7e6c4b3b8d7f2f4d7c5e4e5d6e5f4e5f6d7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1c4e7e6c4b3b8d7f2f4d7c5f4f5f8e7d1f3e8g8\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1c4e7e6c4b3f8e7f2f4e8g8d1f3d8c7e1g1b7b5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1d3g7g6h2h3f8g7c1e3b8c6e1g1e8g8f1e1c8d7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2d8c7c1g5b8d7e1g1e7e6e2h5c7c4d4e6c4e6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2d8c7e1g1e7e6f2f4b8c6c1e3f8e7d1e1c6d4\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2e7e5d4b3c8e6e1g1b8d7a2a4f8e7f2f4d8c7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2e7e5d4b3c8e6e1g1b8d7a2a4f8e7f2f4d8c7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2e7e5d4b3c8e6e1g1b8d7c1e3f8e7f2f3d7b6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2e7e5d4b3c8e6e1g1b8d7f2f4d8c7a2a4f8e7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2e7e5d4b3c8e6e1g1b8d7f2f4d8c7f4f5e6c4\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2e7e5d4b3c8e6e1g1f8e7f2f4e5f4c1f4e8g8\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2e7e5d4b3c8e6f2f4d8c7f4f5e6c4e2f3a6a5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2e7e5d4b3f8e7c1e3b8d7e1g1e8g8f2f3d8c7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2e7e5d4b3f8e7c1e3c8e6e1g1b8d7f2f4a8c8\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2e7e5d4b3f8e7c1g5b8d7a2a4b7b6c3d5c8b7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2e7e5d4b3f8e7e1g1c8e6f2f4d8c7a2a4b8d7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2e7e5d4b3f8e7e1g1c8e6f2f4d8c7a2a4b8d7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2e7e5d4b3f8e7e1g1c8e6f2f4d8c7a2a4b8d7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2e7e5d4b3f8e7e1g1c8e6f2f4d8c7a2a4b8d7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2e7e5d4b3f8e7e1g1c8e6f2f4d8c7g2g4h7h6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2e7e5d4b3f8e7e1g1e8g8c1e3c8e6f2f4e5f4\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2e7e5d4b3f8e7e1g1e8g8c1e3d8c7a2a4c8e6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2e7e5d4b3f8e7e1g1e8g8c1e3d8c7a2a4c8e6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2e7e5d4b3f8e7e1g1e8g8c1e3f8e8d1d2d8c7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2e7e6e1g1d8c7f2f4f8e7c1e3b8d7e2f3d7b6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2e7e6e1g1f8e7a2a4b8c6c1e3e8g8f2f4d8c7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2e7e6e1g1f8e7a2a4b8c6c1e3e8g8f2f4d8c7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2e7e6e1g1f8e7a2a4b8c6c1e3e8g8f2f4d8c7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2e7e6e1g1f8e7a2a4b8c6c1e3e8g8f2f4d8c7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2e7e6e1g1f8e7a2a4b8c6c1e3e8g8f2f4d8c7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2e7e6e1g1f8e7f2f4e8g8g1h1b8c6c1e3d8c7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2e7e6e1g1f8e7f2f4e8g8g1h1d8c7a2a4b8c6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2e7e6e1g1f8e7f2f4e8g8g1h1d8c7a2a4b8c6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2e7e6e1g1f8e7f2f4e8g8g1h1d8c7a2a4b8c6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2e7e6e1g1f8e7f2f4e8g8g1h1d8c7a2a4b8c6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2e7e6e1g1f8e7f2f4e8g8g1h1d8c7a2a4b8c6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2e7e6e1g1f8e7f2f4e8g8g1h1d8c7d1e1b7b5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2e7e6e1g1f8e7f2f4e8g8g1h1d8c7e2f3b8c6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2e7e6f2f4f8e7e1g1e8g8g1h1d8c7d1e1b7b5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f2f4b8d7f1e2g7g6e1g1f8g7a2a4e8g8g1h1d8c7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f2f4d8c7f1e2e7e5d4b3b7b5e1g1c8b7d1d3b8d7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f2f4d8c7f1e2e7e6e1g1f8e7a2a4b8c6c1e3e8g8\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f2f4d8c7f1e2e7e6e1g1f8e7g1h1e8g8a2a4b8c6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f2f4e7e5d4f3b8d7a2a4d8c7f1d3f8e7e1g1e8g8\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f2f4e7e5d4f3b8d7a2a4d8c7f1d3g7g6e1g1b7b6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f2f4e7e5d4f3b8d7a2a4f8e7f1c4e8g8d1e2d8a5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6f2f4e7e6c1e3b7b5d1f3c8b7f1d3b8d7a2a3d7c5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6g2g3e7e5d4e2c8e6f1g2b7b5a2a4b5b4c3d5f6d5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6g2g3e7e5d4e2c8e6f1g2b7b5e1g1b8d7a2a4b5b4\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6g2g3e7e5d4e2c8g4f1g2d8d7h2h3g4e6c3d5e6d5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6g2g3e7e5d4e2f8e7f1g2e8g8a2a4b7b6e1g1c8b7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6g2g3e7e5d4e2f8e7f1g2e8g8a2a4b8c6e1g1c6b4\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3a7a6g2g3e7e6f1g2f8e7e1g1e8g8b2b3d8c7c1b2b8c6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3b8c6c1g5d8b6d4b3e7e6d1d2f8e7f2f3e8g8g2g4f8d8\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3b8c6c1g5e7e6d1d2a7a6e1c1c6d4d2d4f8e7f2f3d8c7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3b8c6c1g5e7e6d1d2a7a6e1c1c8d7f2f3d8c7c1b1f8e7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3b8c6c1g5e7e6d1d2a7a6e1c1c8d7f2f4b7b5d4c6d7c6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3b8c6c1g5e7e6d1d2a7a6e1c1c8d7f2f4b7b5d4c6d7c6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3b8c6c1g5e7e6d1d2a7a6e1c1f8e7f2f4c8d7d4f3b7b5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3b8c6c1g5e7e6d1d2a7a6e1c1f8e7g5f6g7f6f1c4c6d4\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3b8c6c1g5e7e6d1d2a7a6e1c1h7h6g5e3c6d4e3d4b7b5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3b8c6c1g5e7e6d1d2a7a6e1c1h7h6g5e3c6d4e3d4b7b5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3b8c6c1g5e7e6d1d2f8e7e1c1e8g8d4b3a7a5a2a4d6d5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3b8c6c1g5e7e6d1d2f8e7e1c1e8g8d4b3a7a5a2a4d6d5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3b8c6c1g5e7e6d1d2f8e7e1c1e8g8d4b3a7a6g5f6g7f6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3b8c6c1g5e7e6d1d2f8e7e1c1e8g8f2f4c6d4d2d4d8a5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3b8c6c1g5e7e6d1d2f8e7e1c1e8g8f2f4c6d4d2d4d8a5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3b8c6c1g5e7e6d1d2f8e7e1c1e8g8f2f4c6d4d2d4d8a5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3b8c6c1g5e7e6d1d2f8e7e1c1e8g8f2f4h7h6g5h4e6e5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3b8c6c1g5e7e6d1d2f8e7e1c1e8g8f2f4h7h6g5h4e6e5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3b8c6f1c4e7e6c4b3a7a6f2f4f8e7c1e3d8c7e1g1b7b5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3b8c6f1c4e7e6c4b3f8e7c1e3e8g8e1g1a7a6f2f4c6d4\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3b8c6f1c4e7e6c4b3f8e7c1e3e8g8e1g1c8d7f2f4d8c8\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3b8c6f1c4e7e6c4b3f8e7c1e3e8g8f2f4c8d7e1g1a7a6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3b8c6f1c4e7e6c4b3f8e7e1g1c6d4d1d4e8g8f2f4b7b6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3b8c6f1c4e7e6c4b3f8e7e1g1e8g8c1e3a7a6f2f4d8c7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3b8c6f1c4e7e6c4b3f8e7e1g1e8g8f2f4c8d7g1h1a8c8\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3b8c6f1c4e7e6c4b3f8e7f2f4e8g8c1e3c6d4e3d4b7b5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3b8c6f1e2g7g6d4b3f8g7e1g1e8g8c1g5a7a6a2a4c8e6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3b8d7f1c4a7a6c1g5d8a5d1d2e7e6e1g1h7h6g5h4g7g5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3c8d7c1g5e7e6d4b5d7b5f1b5b8c6d1f3h7h6g5h4f8e7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3c8d7f1e2e7e6e1g1f8e7f2f4b8c6d4b3e8g8c1e3a8c8\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3e7e6f1e2a7a6e1g1b8d7f2f4b7b5e2f3c8b7a2a3d8c7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3e7e6f1e2f8e7e1g1b8c6f2f4e8g8g1h1c8d7d4b3a7a6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3e7e6f1e2f8e7e1g1e8g8c1e3b8c6f2f4e6e5d4b3e5f4\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3e7e6f1e2f8e7e1g1e8g8f2f4b8c6c1e3a7a6d1e1c6d4\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3e7e6f1e2f8e7e1g1e8g8f2f4b8c6c1e3e6e5d4b3a7a5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3e7e6f2f4a7a6d1f3d8b6d4b3b8c6f1d3f8e7c1e3b6c7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3e7e6f2f4a7a6f1e2f8e7e1g1d8c7d1e1e8g8e1g3b8c6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3e7e6g2g3b8c6f1g2c8d7e1g1f8e7c1e3c6e5a2a4a7a6\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3e7e6g2g4a7a6f1g2f6d7e1g1b8c6g1h1f8e7f2f4e8g8\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3e7e6g2g4a7a6g4g5f6d7a2a4b8c6c1e3d7e5f1e2c6d4\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3e7e6g2g4h7h6g4g5h6g5c1g5a7a6f1g2c8d7d1e2f8e7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3e7e6g2g4h7h6h2h3a7a6f1g2g7g5b2b3b8d7c1b2d7e5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3g7g6c1e3f8g7d1d2b8c6f2f3e8g8f1c4c8d7h2h4h7h5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3g7g6c1e3f8g7d1d2b8d7f2f3a7a6e1c1b7b5g2g4c8b7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3g7g6c1e3f8g7f1e2b8c6e1g1e8g8d4b3a7a6f2f3b7b5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3g7g6c1e3f8g7f2f3b8c6d1d2e8g8e1c1c8e6c1b1a8c8\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3g7g6c1e3f8g7f2f3b8c6d1d2e8g8f1c4c8d7h2h4a8c8\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3g7g6c1e3f8g7f2f3e8g8d1d2b8c6f1c4c8d7c4b3a8c8\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3g7g6c1e3f8g7f2f3e8g8d1d2b8c6f1c4c8d7c4b3a8c8\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3g7g6c1e3f8g7f2f3e8g8d1d2b8c6f1c4c8d7e1c1c6e5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3g7g6c1e3f8g7f2f3e8g8d1d2b8c6f1c4c8d7h2h4h7h5\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3g7g6c1e3f8g7f2f3e8g8d1d2b8c6g2g4c8e6e1c1c6d4\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3g7g6c1e3f8g7f2f3e8g8d1d2f8e8g2g4b8c6h2h4f6d7\r
+e2e4c7c5g1f3d7d6d2d4c5d4f3d4g8f6b1c3g7g6f1e2f8g7c1e3e8g8e1g1b8c6d1d2d6d5e4d5f6d5\r
+e2e4c7c5g1f3d7d6d2d4g8f6b1c3c5d4f3d4a7a6c1g5e7e6f2f4d8b6d1d3b6b2a1b1b2a3f4f5b8c6\r
+e2e4c7c5g1f3d7d6d2d4g8f6b1c3c5d4f3d4a7a6f1c4e7e6a2a4f8e7e1g1e8g8c1e3b7b6f2f4d8c7\r
+e2e4c7c5g1f3d7d6d2d4g8f6b1c3c5d4f3d4e7e6f1e2a7a6a2a4b7b6e1g1c8b7e2d3b8d7d1e2f8e7\r
+e2e4c7c5g1f3d7d6f1b5b8c6d2d4c5d4d1d4c8g4d4d3a8c8c2c4g7g6b1c3f8g7e1g1g4f3d3f3g8f6\r
+e2e4c7c5g1f3d7d6f1b5b8c6e1g1c8d7f1e1g8f6c2c3a7a6b5f1d7g4d2d3g7g6b1d2f8g7h2h3g4d7\r
+e2e4c7c5g1f3d7d6f1b5b8c6e1g1c8d7f1e1g8f6c2c3a7a6b5f1d7g4d2d3g7g6b1d2f8g7h2h3g4f3\r
+e2e4c7c5g1f3d7d6f1b5b8c6e1g1c8g4h2h3g4h5c2c3d8b6b1a3a7a6b5a4b6c7d2d4b7b5a3b5a6b5\r
+e2e4c7c5g1f3d7d6f1b5b8d7c2c3g8f6d1e2e7e6d2d4c5d4c3d4f8e7e1g1e8g8c1d2a7a6b5d3e6e5\r
+e2e4c7c5g1f3d7d6f1b5b8d7c2c3g8f6d2d3g7g6e1g1f8g7f1e1a7a6b5a4b7b5a4c2e8g8a2a4c8b7\r
+e2e4c7c5g1f3d7d6f1b5c8d7b5d7b8d7e1g1g8f6d1e2e7e6b2b3f8e7c1b2e8g8c2c4a7a6d2d4c5d4\r
+e2e4c7c5g1f3d7d6f1b5c8d7b5d7b8d7e1g1g8f6d1e2e7e6b2b3f8e7c1b2e8g8d2d4c5d4f3d4d7c5\r
+e2e4c7c5g1f3d7d6f1b5c8d7b5d7b8d7e1g1g8f6d1e2e7e6b2b3g7g6d2d4c5d4f3d4f8g7c1a3d8b6\r
+e2e4c7c5g1f3d7d6f1b5c8d7b5d7d8d7c2c4b8c6b1c3g8f6e1g1g7g6d2d4c5d4f3d4f8g7d4c2e8g8\r
+e2e4c7c5g1f3d7d6f1b5c8d7b5d7d8d7c2c4e7e5b1c3b8c6d2d3g7g6a2a3f8g7a1b1g8e7b2b4b7b6\r
+e2e4c7c5g1f3d7d6f1b5c8d7b5d7d8d7c2c4g8f6b1c3b8c6e1g1g7g6d2d4c5d4f3d4f8g7d4e2e8g8\r
+e2e4c7c5g1f3d7d6f1b5c8d7b5d7d8d7c2c4g8f6b1c3b8c6e1g1g7g6d2d4c5d4f3d4f8g7d4e2e8g8\r
+e2e4c7c5g1f3d7d6f1b5c8d7b5d7d8d7e1g1b8c6c2c3g8f6d2d4f6e4d4d5c6e5f1e1e5f3d1f3e4f6\r
+e2e4c7c5g1f3d7d6f1b5c8d7b5d7d8d7e1g1b8c6c2c4c6e5d2d3g7g6f3e5d6e5c1e3e7e6b1c3f8d6\r
+e2e4c7c5g1f3d7d6f1b5c8d7b5d7d8d7e1g1b8c6f1e1g8f6d2d4c5d4c1g5d6d5g5f6g7f6e4d5d7d5\r
+e2e4c7c5g1f3d7d6f1b5c8d7b5d7d8d7e1g1g8f6f1e1b8c6c2c3e7e6d2d4c5d4c3d4d6d5e4e5f6e4\r
+e2e4c7c5g1f3d7d6f1b5c8d7b5d7d8d7e1g1g8f6f1e1b8c6d2d4c5d4c1g5f6g4f3d4h7h6g5h4g7g5\r
+e2e4c7c5g1f3d7d6f1c4g8f6d2d3e7e6c4b3b8c6c2c3g7g6e1g1f8g7f1e1e8g8d3d4c5d4c3d4e6e5\r
+e2e4c7c5g1f3d7d6g2g3b8c6f1g2g8f6b1c3g7g6e1g1f8g7d2d3e8g8c1g5h7h6g5d2e7e5a2a3c8e6\r
+e2e4c7c5g1f3d7d6g2g3e7e5f1g2g7g6e1g1f8g7c2c3b8c6d2d3g8e7a2a3e8g8b2b4c5b4a3b4b7b5\r
+e2e4c7c5g1f3e7e6b1c3a7a6d2d4c5d4f3d4d8c7f1d3b8c6c1e3g8f6e1g1b7b5d4c6c7c6a2a3f8c5\r
+e2e4c7c5g1f3e7e6b1c3d7d6d2d4c5d4d1d4b8c6f1b5c8d7d4d3a7a6b5c6d7c6c1f4e6e5f4e3g8f6\r
+e2e4c7c5g1f3e7e6b2b3b8c6c1b2d7d6g2g3g8f6d2d3f8e7f1g2e8g8e1g1f6d7f1e1e7f6c2c3b7b6\r
+e2e4c7c5g1f3e7e6c2c3g8f6e4e5f6d5d2d4c5d4c3d4f8e7a2a3b7b6f1d3c8a6e1g1e8g8f1e1a6d3\r
+e2e4c7c5g1f3e7e6c2c3g8f6e4e5f6d5d2d4c5d4d1d4b8c6d4e4f7f5e5f6d5f6e4h4d8c7f1e2b7b6\r
+e2e4c7c5g1f3e7e6d2d3d7d5b1d2b8c6g2g3g7g6f1g2f8g7e1g1g8e7f1e1e8g8c2c3b7b6d2f1c8b7\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4a7a6b1c3b7b5f1d3c8b7e1g1d8c7f1e1f8c5c1e3g8f6d4b5a6b5\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4a7a6b1c3b8c6c1e3g8f6f1d3d7d5e4d5e6d5e1g1f8d6d4c6b7c6\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4a7a6b1c3d8c7a2a3b8c6c1e3g8f6f1e2b7b5f2f4c8b7e2f3d7d6\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4a7a6b1c3d8c7f1d3b8c6c1e3g8f6e1g1b7b5d4b3f8e7f2f4d7d6\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4a7a6b1c3d8c7f2f4b7b5a2a3c8b7d1f3g8f6f1d3f8c5d4b3c5e7\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4a7a6c2c4g8f6b1c3f8b4d1f3d8c7d4c2b4d6f1e2b8c6f3e3b7b6\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4a7a6c2c4g8f6b1c3f8b4f1d3b8c6d4e2d8c7e1g1c6e5f2f4e5c4\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4a7a6c2c4g8f6f1d3b8c6d4c6d7c6e1g1e6e5d1c2f8c5b1d2c8e6\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4a7a6f1d3b8c6d4c6b7c6e1g1d7d5b1d2g8f6b2b3f8b4c1b2a6a5\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4a7a6f1d3b8c6d4c6b7c6e1g1d7d5b1d2g8f6d1e2f8e7b2b3e8g8\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4a7a6f1d3b8c6d4c6b7c6e1g1d7d5b1d2g8f6d1e2f8e7f1e1e8g8\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4a7a6f1d3b8c6d4c6b7c6e1g1d7d5c2c4g8f6c4d5c6d5e4d5e6d5\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4a7a6f1d3b8c6d4c6d7c6e1g1e6e5b1d2d8c7a2a4g8f6d1f3f8c5\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4a7a6f1d3f8c5c1e3d7d6b1c3g8e7e1g1b8d7d1e2b7b5a2a4d8b6\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4a7a6f1d3f8c5d4b3c5a7d1e2b8c6c1e3d7d6b1c3g8e7e1g1e6e5\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4a7a6f1d3f8c5d4b3c5a7e1g1b8c6d1g4g8f6g4g7h8g8g7h6c6e5\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4a7a6f1d3g8f6e1g1d7d6c2c4f8e7b1c3e8g8c1e3b8d7f2f4d7c5\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4a7a6f1d3g8f6e1g1d8c7b1d2f8c5d2b3c5e7f2f4d7d6d1f3e8g8\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4a7a6f1d3g8f6e1g1d8c7d1e2d7d6c2c4g7g6b1c3f8g7f1d1e8g8\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4a7a6f1d3g8f6e1g1d8c7f2f4f8c5c2c3b8c6g1h1d7d6d4b3c5a7\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4b8c6b1c3a7a6d4c6b7c6f1d3d7d5e1g1g8f6f1e1f8e7e4e5f6d7\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4b8c6b1c3a7a6f1e2d7d6c1e3f8e7f2f4g8f6d1d2c6d4d2d4b7b5\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4b8c6b1c3a7a6f1e2d7d6e1g1g8f6c1e3f8e7f2f4e8g8a2a4d8c7\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4b8c6b1c3a7a6g2g3d7d6f1g2c8d7e1g1g8f6b2b3f8e7c3e2a8c8\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4b8c6b1c3a7a6g2g3d7d6f1g2c8d7e1g1g8f6f1e1f8e7d4c6d7c6\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4b8c6b1c3d7d6c1e3g8f6f1e2f8e7f2f4e8g8d1d2a7a6e1c1d6d5\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4b8c6b1c3d7d6c1e3g8f6f2f4f8e7d1e2e6e5d4f3a7a6e1c1d8a5\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4b8c6b1c3d7d6c1e3g8f6f2f4f8e7f1e2e8g8e1g1c8d7d4b3a7a6\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4b8c6b1c3d7d6f1e2g8f6c1e3c8d7f2f4f8e7d4b3a7a6a2a4c6a5\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4b8c6b1c3d7d6f1e2g8f6c1e3c8d7f2f4f8e7d4b5d8b8g2g4a7a6\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4b8c6b1c3d7d6f1e2g8f6c1e3c8d7f2f4f8e7d4b5d8b8g2g4a7a6\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4b8c6b1c3d7d6f1e2g8f6c1e3f8e7e1g1c8d7d4b3a7a6f2f4b7b5\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4b8c6b1c3d7d6f1e2g8f6c1e3f8e7f2f4c8d7e1g1e8g8g1h1a7a6\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4b8c6b1c3d7d6f1e2g8f6c1e3f8e7f2f4e8g8e1g1c8d7d4b3a7a6\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4b8c6b1c3d7d6g2g3g8f6f1g2c8d7e1g1c6d4d1d4d8c7c3d1f8e7\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4b8c6b1c3d7d6g2g4h7h6h2h4a7a6f1g2f8e7c1e3c6d4d1d4e6e5\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4b8c6b1c3d8c7c1e3a7a6f1d3g8f6e1g1c6e5h2h3f8c5d1d2d7d6\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4b8c6b1c3d8c7c1e3a7a6f1d3g8f6e1g1c6e5h2h3f8c5g1h1d7d6\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4b8c6b1c3d8c7c1e3a7a6f1e2g8f6a2a3f8d6d1d2c6d4e3d4d6f4\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4b8c6b1c3d8c7c1e3g8f6f1d3c6d4e3d4f8c5d4c5c7c5d1e2d7d6\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4b8c6b1c3d8c7f1e2a7a6e1g1g8f6c1e3f8b4c3a4b4e7d4c6b7c6\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4b8c6b1c3d8c7f1e2a7a6e1g1g8f6g1h1f8b4c1g5b4c3g5f6g7f6\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4b8c6b1c3d8c7f1e2b7b6c1e3c8b7d1d2c6d4e3d4a7a6a1d1g8f6\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4b8c6b1c3d8c7g2g3d7d6f1g2c6d4d1d4g8f6c1g5f8e7e1c1c8d7\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4b8c6d4b5d7d6c1f4e6e5f4e3g8f6e3g5c8e6b1c3a7a6g5f6g7f6\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4b8c6d4b5d7d6c2c4g8f6b1c3a7a6b5a3d6d5c4d5e6d5e4d5c6b4\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4b8c6d4b5d7d6c2c4g8f6b1c3a7a6b5a3d6d5e4d5e6d5c4d5c6b4\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4b8c6d4b5d7d6c2c4g8f6b1c3a7a6b5a3f8e7f1e2e8g8e1g1b7b6\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4b8c6d4b5d7d6c2c4g8f6b1c3a7a6b5a3f8e7f1e2e8g8e1g1b7b6\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4b8c6d4b5d7d6c2c4g8f6b1c3a7a6b5a3f8e7f1e2e8g8e1g1b7b6\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4b8c6d4b5d7d6c2c4g8f6b1c3a7a6b5a3f8e7f1e2e8g8e1g1b7b6\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4b8c6d4b5d7d6c2c4g8f6b1c3a7a6b5a3f8e7f1e2e8g8e1g1b7b6\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4b8c6d4b5d7d6c2c4g8f6b1c3a7a6b5a3f8e7f1e2e8g8e1g1b7b6\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4b8c6d4b5d7d6c2c4g8f6b5c3f8e7f1e2e8g8e1g1b7b6c1f4c8b7\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4b8c6d4b5g8f6b1c3f8b4a2a3b4c3b5c3d7d5e4d5e6d5f1d3e8g8\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4g8f6b1c3b8c6d4b5d7d6c1f4e6e5f4g5a7a6b5a3b7b5c3d5f8e7\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4g8f6b1c3b8c6d4b5d7d6c1f4e6e5f4g5a7a6b5a3b7b5g5f6g7f6\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4g8f6b1c3b8c6d4b5d7d6c1f4e6e5f4g5a7a6b5a3b7b5g5f6g7f6\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4g8f6b1c3b8c6d4b5f8b4a2a3b4c3b5c3d7d5e4d5e6d5f1d3d5d4\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4g8f6b1c3b8c6d4b5f8b4a2a3b4c3b5c3d7d5e4d5e6d5f1d3e8g8\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4g8f6b1c3b8c6d4b5f8b4a2a3b4c3b5c3d7d5e4d5e6d5f1d3e8g8\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4g8f6b1c3d7d6f1c4f8e7c1e3e8g8f2f4d6d5c4d3d5e4c3e4f6d5\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4g8f6b1c3d7d6f1c4f8e7e1g1a7a6c4b3b7b5f2f4e8g8f4f5b5b4\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4g8f6b1c3d7d6f1e2f8e7e1g1b8c6g1h1a7a6a2a4e8g8f2f4d8c7\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4g8f6b1c3d7d6f1e2f8e7e1g1e8g8f2f4b8c6c1e3c8d7d4b3a7a5\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4g8f6b1c3d7d6f1e2f8e7e1g1e8g8f2f4b8c6c1e3d8c7d4b5c7b8\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4g8f6b1c3d7d6f2f4a7a6d1f3d8b6d4b3b8c6c1e3b6c7f1d3b7b5\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4g8f6b1c3d7d6f2f4a7a6f1e2f8e7e1g1e8g8c1e3b8c6a2a4f8e8\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4g8f6b1c3d7d6f2f4a7a6f1e2f8e7e1g1e8g8c1e3d8c7d1e1f8e8\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4g8f6b1c3d7d6f2f4b8c6c1e3e6e5d4f3f6g4d1d2g4e3d2e3e5f4\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4g8f6b1c3d7d6f2f4f8e7f1d3b8c6d4f3a7a6a2a3b7b5e1g1c8b7\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4g8f6b1c3d7d6g2g3a7a6f1g2d8c7e1g1c8d7g1h1b8c6f2f4a8c8\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4g8f6b1c3d7d6g2g4h7h6g4g5h6g5c1g5b8c6d1d2a7a6e1c1c8d7\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4g8f6b1c3d7d6g2g4h7h6g4g5h6g5c1g5b8c6d1d2a7a6e1c1c8d7\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4g8f6b1c3d7d6g2g4h7h6h1g1f8e7c1e3b8c6d1f3a7a6e1c1d8c7\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4g8f6b1c3d7d6g2g4h7h6h2h4b8c6h1g1h6h5g4h5f6h5c1g5h5f6\r
+e2e4c7c5g1f3e7e6d2d4c5d4f3d4g8f6b1c3d7d6g2g4h7h6h2h4f8e7h1g1d6d5e4d5f6d5c3d5d8d5\r
+e2e4c7c5g1f3e7e6g2g3b7b6f1g2c8b7d2d3d7d6e1g1g8f6f1e1f8e7b1d2e8g8c2c3b8d7a2a3a8c8\r
+e2e4c7c5g1f3e7e6g2g3b8c6f1g2g8f6d2d3d7d5b1d2f8e7e1g1b7b5a2a4b5a4a1a4e8g8e4d5e6d5\r
+e2e4c7c5g1f3e7e6g2g3b8c6f1g2g8f6d2d3d7d5b1d2f8e7e1g1e8g8f1e1b7b5e4d5e6d5d2f1c8b7\r
+e2e4c7c5g1f3g7g6c2c4f8g7d2d4d7d6b1c3b8c6c1e3c8g4d4c5d6c5d1d8a8d8e3c5g7c3b2c3g8f6\r
+e2e4c7c5g1f3g7g6d2d4c5d4f3d4b8c6b1c3f8g7c1e3g8f6f1c4d8a5e1g1e8g8c4b3d7d6h2h3a5h5\r
+e2e4c7c5g1f3g7g6d2d4c5d4f3d4b8c6b1c3f8g7d4c6b7c6f1c4d8a5d1f3g8f6e1g1e8g8a1b1d7d6\r
+e2e4c7c5g1f3g7g6d2d4c5d4f3d4b8c6b1c3f8g7d4c6b7c6f1c4e7e6e1g1g8e7d1d6c8b7c1g5h7h6\r
+e2e4c7c5g1f3g7g6d2d4f8g7b1c3b8c6c1e3c5d4f3d4g8f6f1c4e8g8c4b3d7d6f2f3c6a5d1d2a5b3\r
+e2e4c7c5g1f3g7g6d2d4f8g7d4d5d7d6b1c3g8f6f1b5b8d7a2a4e8g8e1g1a7a6b5e2a8b8f1e1f6e8\r
+e2e4c7c5g1f3g7g6f1c4b8c6e1g1f8g7c2c3g8h6d2d4c5d4c3d4e8g8b1c3d7d6h2h3g8h8c1f4f7f6\r
+e2e4c7c6b1c3d7d5d1f3g8f6e4e5f6d7f3g3e7e6g1f3a7a6f1e2c6c5e1g1b8c6f1e1c6d4e2d1d4f5\r
+e2e4c7c6b1c3d7d5d2d4d5e4c3e4c8f5e4g3f5g6g1h3e7e6h3f4f8d6c2c3g8f6h2h4d8c7h4h5d6f4\r
+e2e4c7c6b1c3d7d5d2d4d5e4c3e4c8f5e4g3f5g6h2h4h7h6g1e2e7e5f2f4e5d4e2d4f8c5c1e3g8f6\r
+e2e4c7c6b1c3d7d5d2d4d5e4c3e4c8f5e4g3f5g6h2h4h7h6g1f3b8d7f1d3g6d3d1d3d8c7c1d2g8f6\r
+e2e4c7c6b1c3d7d5g1f3c8g4h2h3g4f3d1f3e7e6d2d3b8d7f1e2g7g6e1g1f8g7f3g3d8b6g1h1g8e7\r
+e2e4c7c6b1c3d7d5g1f3c8g4h2h3g4f3d1f3e7e6d2d4d8b6f1d3b6d4e4d5e6d5c1f4b8d7e1c1d4f6\r
+e2e4c7c6b1c3d7d5g1f3c8g4h2h3g4f3d1f3e7e6g2g3g8f6d2d3f8e7f1g2e8g8e1g1b8a6f3e2f6e8\r
+e2e4c7c6b1c3d7d5g1f3c8g4h2h3g4f3d1f3g8f6d2d3e7e6a2a3f8c5g2g4e8g8h3h4b8d7g4g5f6e8\r
+e2e4c7c6b1c3d7d5g1f3c8g4h2h3g4f3d1f3g8f6d2d3e7e6a2a3f8e7g2g4f6d7d3d4d7f8c1e3f8g6\r
+e2e4c7c6b1c3d7d5g1f3c8g4h2h3g4f3d1f3g8f6d2d3e7e6f1e2b8d7f3g3g7g6e1g1f8g7c1f4d8b6\r
+e2e4c7c6b1c3d7d5g1f3c8g4h2h3g4f3d1f3g8f6d2d3e7e6g2g3f8b4c1d2d5d4c3b1b4d2b1d2e6e5\r
+e2e4c7c6b1c3d7d5g1f3c8g4h2h3g4f3d1f3g8f6d2d3e7e6g2g3f8b4c1d2d5d4c3b1b4d2b1d2e6e5\r
+e2e4c7c6b1c3d7d5g1f3c8g4h2h3g4f3d1f3g8f6d2d3e7e6g2g3f8b4c1d2d5d4c3b1d8b6b2b3a7a5\r
+e2e4c7c6b1c3d7d5g1f3c8g4h2h3g4f3d1f3g8f6d2d3e7e6g2g3f8b4c1d2d5d4c3b1d8b6b2b3a7a5\r
+e2e4c7c6b1c3d7d5g1f3c8g4h2h3g4f3d1f3g8f6d2d3e7e6g2g3f8b4c1d2d5d4c3b1d8b6b2b3b8d7\r
+e2e4c7c6b1c3d7d5g1f3c8g4h2h3g4f3d1f3g8f6d2d4e7e6f1d3d5e4c3e4f6e4f3e4b8d7c2c3d7f6\r
+e2e4c7c6b1c3d7d5g1f3c8g4h2h3g4f3g2f3e7e6d2d4b8d7c1f4f8b4h3h4g8f6e4e5f6h5f4g5d8a5\r
+e2e4c7c6b1c3d7d5g1f3c8g4h2h3g4h5e4d5c6d5f1b5b8c6g2g4h5g6f3e5a8c8h3h4f7f6e5g6h7g6\r
+e2e4c7c6b1c3d7d5g1f3d5e4c3e4c8g4h2h3g4f3d1f3b8d7d2d4g8f6f1d3f6e4f3e4e7e6e1g1f8e7\r
+e2e4c7c6b1c3d7d5g1f3d5e4c3e4c8g4h2h3g4f3d1f3e7e6f1c4b8d7f3g3d7f6d2d3f6e4d3e4g8f6\r
+e2e4c7c6b1c3d7d5g1f3d5e4c3e4c8g4h2h3g4f3d1f3e7e6f1c4f8e7e1g1g8f6f1e1b8d7d2d3f6e4\r
+e2e4c7c6b1c3d7d5g1f3d5e4c3e4g8f6e4f6g7f6f1c4f8g7h2h3c8f5e1g1e7e6f1e1e8g8d2d4b8d7\r
+e2e4c7c6b1c3d7d5g1f3g7g6e4d5c6d5f1b5b8c6f3e5c8d7e5d7d8d7d1f3e7e6c3e2f8g7d2d4g8e7\r
+e2e4c7c6b1c3d7d5g1f3g8f6e4e5f6e4c3e2d8b6d2d4c6c5d4c5b6c5e2d4b8c6f1b5a7a6b5c6b7c6\r
+e2e4c7c6c2c4d7d5c4d5c6d5e4d5g8f6b1c3f6d5g1f3d5c3b2c3g7g6h2h4f8g7h4h5b8c6a1b1d8c7\r
+e2e4c7c6c2c4d7d5c4d5c6d5e4d5g8f6b1c3f6d5g1f3e7e6d2d4f8e7f1c4e8g8e1g1b8c6f1e1a7a6\r
+e2e4c7c6c2c4d7d5e4d5c6d5c4d5g8f6b1c3f6d5f1c4d5b6c4b3b8c6g1f3c8f5d2d4e7e6e1g1f8e7\r
+e2e4c7c6c2c4d7d5e4d5c6d5c4d5g8f6b1c3f6d5g1f3b8c6d2d4c8g4d1b3g4f3g2f3e7e6b3b7c6d4\r
+e2e4c7c6c2c4e7e5g1f3d7d6d2d4e5d4f3d4g8f6b1c3g7g6f1e2f8g7e1g1e8g8c1e3f8e8e2f3b8d7\r
+e2e4c7c6c2c4e7e6b1c3d7d5c4d5e6d5e4d5c6d5g1f3g8f6f1b5b8c6e1g1f8e7f3e5c8d7d2d4e8g8\r
+e2e4c7c6d2d3d7d5b1d2e7e5g1f3b8d7d3d4d5e4d2e4e5d4d1d4g8f6c1g5f8e7e1c1e8g8e4d6d8a5\r
+e2e4c7c6d2d3d7d5b1d2e7e5g1f3f8d6d1e2d8e7d3d4e5d4e4d5c6d5f3d4b8c6d2b3g8f6e2e7e8e7\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4b8d7e4g5d7f6g1f3e7e6d1d3f8d6f3e5g8h6c1d2a7a5a2a3d8c7\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4b8d7e4g5g8f6f1d3e7e6g1f3h7h6g5e6d8e7e1g1f7e6d3g6e8d8\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4b8d7e4g5g8f6f1d3h7h6g5e6d8b6e6f8d7f8g1f3c8g4c2c3f8d7\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4b8d7f1c4g8f6e4f6d7f6c2c3d8c7h2h3c8f5g1f3e7e6e1g1f8d6\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4b8d7f1c4g8f6e4g5e7e6d1e2d7b6c4b3h7h6g5f3a7a5c2c3c6c5\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4b8d7f1c4g8f6e4g5e7e6d1e2d7b6c4b3h7h6g5f3a7a5c2c3c6c5\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4b8d7f1c4g8f6e4g5e7e6d1e2d7b6c4b3h7h6g5f3a7a5c2c3c6c5\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4b8d7f1c4g8f6e4g5e7e6d1e2d7b6c4d3h7h6g5f3c6c5d4c5f8c5\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4b8d7g1f3g8f6e4f6d7f6c2c3c8g4f1e2e7e6h2h3g4h5f3e5h5e2\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4b8d7g1f3g8f6e4f6d7f6c2c3c8g4h2h3g4f3d1f3d8d5f1e2e7e6\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4b8d7g1f3g8f6e4f6d7f6c2c3c8g4h2h3g4f3d1f3e7e6f1c4f8e7\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4b8d7g1f3g8f6e4f6d7f6f1c4c8f5e1g1e7e6h2h3f8e7c2c3e8g8\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4b8d7g1f3g8f6e4f6d7f6f3e5c8e6f1e2g7g6e1g1f8g7c2c4e8g8\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4b8d7g1f3g8f6e4g3e7e6f1d3c6c5e1g1c5d4f3d4f8c5d4b3c5e7\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4c8f5e4g3f5g6f1c4e7e6g1e2f8d6h2h4h7h6e2f4d6f4c1f4g8f6\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4c8f5e4g3f5g6f1c4e7e6g1e2g8f6e2f4f8d6e1g1f6d5g3h5e8g8\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4c8f5e4g3f5g6f1c4e7e6g1e2g8f6e2f4f8d6f4g6h7g6c1g5b8d7\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4c8f5e4g3f5g6g1e2b8d7h2h4h7h6e2f4g6h7f1c4e7e5d1e2d8e7\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4c8f5e4g3f5g6g1e2e7e6h2h4h7h6e2f4g6h7f1c4g8f6d1e2f8d6\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4c8f5e4g3f5g6g1e2g8f6h2h4h7h6e2f4g6h7f1c4e7e6e1g1f8d6\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4c8f5e4g3f5g6g1f3b8d7f1d3e7e6e1g1g8f6c2c4f8d6b2b3e8g8\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4c8f5e4g3f5g6g1f3b8d7f1d3e7e6e1g1g8f6c2c4f8d6b2b3e8g8\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4c8f5e4g3f5g6g1f3b8d7f1d3g8f6e1g1e7e6f1e1f8e7c2c4e8g8\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4c8f5e4g3f5g6g1f3b8d7h2h4h7h6h4h5g6h7f1d3h7d3d1d3e7e6\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4c8f5e4g3f5g6g1f3e7e6h2h4h7h6f1d3g6d3d1d3g8f6c1e3f8d6\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4c8f5e4g3f5g6h2h4h7h6g1f3b8d7f1d3g6d3d1d3d8c7c1d2e7e6\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4c8f5e4g3f5g6h2h4h7h6g1f3b8d7h4h5g6h7f1d3h7d3d1d3d8c7\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4c8f5e4g3f5g6h2h4h7h6g1f3b8d7h4h5g6h7f1d3h7d3d1d3d8c7\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4c8f5e4g3f5g6h2h4h7h6g1f3b8d7h4h5g6h7f1d3h7d3d1d3d8c7\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4c8f5e4g3f5g6h2h4h7h6g1f3b8d7h4h5g6h7f1d3h7d3d1d3e7e6\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4c8f5e4g3f5g6h2h4h7h6g1f3b8d7h4h5g6h7f1d3h7d3d1d3e7e6\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4c8f5e4g3f5g6h2h4h7h6g1f3b8d7h4h5g6h7f1d3h7d3d1d3g8f6\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4c8f5e4g3f5g6h2h4h7h6h4h5g6h7g1f3b8d7f1d3h7d3d1d3g8f6\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4e7e6g1f3b8d7f1d3g8f6c2c3c6c5c1g5c5d4f3d4d8b6e4f6g7f6\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4g8f6e4f6e7f6f1c4f8d6d1e2d8e7e2e7e8e7g1e2c8e6c4e6f7e6\r
+e2e4c7c6d2d4d7d5b1c3d5e4c3e4g8f6e4f6g7f6c2c3c8f5g1e2b8d7e2g3f5g6h2h4h7h6h4h5g6h7\r
+e2e4c7c6d2d4d7d5b1d2d5e4d2e4b8d7e4g5d7f6f1c4e7e6g1e2f8d6e1g1h7h6g5f3d8c7e2g3g8e7\r
+e2e4c7c6d2d4d7d5b1d2d5e4d2e4b8d7e4g5g8f6f1d3e7e6g1f3f8d6d1e2h7h6g5e4f6e4e2e4d7f6\r
+e2e4c7c6d2d4d7d5b1d2d5e4d2e4b8d7e4g5g8f6f1d3e7e6g1f3f8d6d1e2h7h6g5e4f6e4e2e4d7f6\r
+e2e4c7c6d2d4d7d5b1d2d5e4d2e4b8d7e4g5g8f6f1d3e7e6g1f3f8d6d1e2h7h6g5e4f6e4e2e4d7f6\r
+e2e4c7c6d2d4d7d5b1d2d5e4d2e4b8d7e4g5g8f6f1d3e7e6g1f3f8e7d1e2h7h6g5e4f6e4e2e4c6c5\r
+e2e4c7c6d2d4d7d5b1d2d5e4d2e4b8d7e4g5g8f6f1d3g7g6g1f3f8g7e1g1e8g8f1e1h7h6g5e4f6e4\r
+e2e4c7c6d2d4d7d5b1d2d5e4d2e4b8d7f1c4g8f6e4f6d7f6g1f3c8f5d1e2e7e6c1g5f8e7e1c1f5g4\r
+e2e4c7c6d2d4d7d5b1d2d5e4d2e4b8d7f1c4g8f6e4g5e7e6d1e2d7b6c4b3h7h6g5f3a7a5a2a3g7g6\r
+e2e4c7c6d2d4d7d5b1d2d5e4d2e4b8d7f1c4g8f6e4g5e7e6d1e2d7b6c4d3h7h6g5f3c6c5d4c5f8c5\r
+e2e4c7c6d2d4d7d5b1d2d5e4d2e4b8d7f1c4g8f6e4g5e7e6d1e2d7b6c4d3h7h6g5f3c6c5d4c5f8c5\r
+e2e4c7c6d2d4d7d5b1d2d5e4d2e4b8d7f1c4g8f6e4g5e7e6d1e2d7b6c4d3h7h6g5f3c6c5d4c5f8c5\r
+e2e4c7c6d2d4d7d5b1d2d5e4d2e4b8d7f1c4g8f6e4g5e7e6d1e2d7b6c4d3h7h6g5f3c6c5d4c5f8c5\r
+e2e4c7c6d2d4d7d5b1d2d5e4d2e4b8d7f1c4g8f6e4g5e7e6d1e2d7b6c4d3h7h6g5f3c6c5d4c5f8c5\r
+e2e4c7c6d2d4d7d5b1d2d5e4d2e4b8d7g1f3g8f6e4f6d7f6f3e5c8e6f1e2g7g6e1g1f8g7c2c4e8g8\r
+e2e4c7c6d2d4d7d5b1d2d5e4d2e4b8d7g1f3g8f6e4f6d7f6f3e5c8e6f1e2g7g6e1g1f8g7c2c4e8g8\r
+e2e4c7c6d2d4d7d5b1d2d5e4d2e4b8d7g1f3g8f6e4f6d7f6f3e5f6d7c1e3d7e5d4e5c8f5d1d8a8d8\r
+e2e4c7c6d2d4d7d5b1d2d5e4d2e4b8d7g1f3g8f6e4f6d7f6f3e5f6d7e5d3g7g6c1e3f8g7d1d2d7b6\r
+e2e4c7c6d2d4d7d5b1d2d5e4d2e4b8d7g1f3g8f6e4f6d7f6g2g3c8g4f1g2e7e5d4e5d8d1e1d1e8c8\r
+e2e4c7c6d2d4d7d5b1d2d5e4d2e4b8d7g1f3g8f6e4g3e7e6f1d3f8e7e1g1e8g8b2b3c6c5c1b2b7b6\r
+e2e4c7c6d2d4d7d5b1d2d5e4d2e4b8d7g1f3g8f6e4g3e7e6f1d3f8e7e1g1e8g8d1e2c6c5f1d1d8c7\r
+e2e4c7c6d2d4d7d5b1d2d5e4d2e4c8f5e4c5b7b6c5b3e7e6g1f3b8d7g2g3g8f6f1g2a8c8e1g1f8d6\r
+e2e4c7c6d2d4d7d5b1d2d5e4d2e4c8f5e4c5b7b6c5b3e7e6g1f3f8d6g2g3g8e7f1g2h7h6d1e2b8d7\r
+e2e4c7c6d2d4d7d5b1d2d5e4d2e4c8f5e4c5b7b6c5b3g8f6g1f3e7e6g2g3b8d7f1g2d8c7e1g1a8d8\r
+e2e4c7c6d2d4d7d5b1d2d5e4d2e4c8f5e4g3f5g6h2h4h7h6g1f3b8d7h4h5g6h7f1d3h7d3d1d3e7e6\r
+e2e4c7c6d2d4d7d5b1d2d5e4d2e4c8f5e4g3f5g6h2h4h7h6g1f3b8d7h4h5g6h7f1d3h7d3d1d3e7e6\r
+e2e4c7c6d2d4d7d5b1d2d5e4d2e4c8f5e4g3f5g6h2h4h7h6h4h5g6h7g1f3b8d7f1d3h7d3d1d3g8f6\r
+e2e4c7c6d2d4d7d5b1d2d5e4d2e4g8f6e4f6e7f6f1c4b8d7g1e2f8d6e1g1e8g8c1f4d7b6c4d3c8e6\r
+e2e4c7c6d2d4d7d5b1d2d5e4d2e4g8f6e4f6g7f6g1f3c8f5g2g3e7e6f1g2f8g7e1g1e8g8f3h4f5g6\r
+e2e4c7c6d2d4d7d5e4d5c6d5c2c4e7e6b1c3g8f6g1f3f8e7c4d5f6d5f1d3b8c6e1g1e8g8f1e1e7f6\r
+e2e4c7c6d2d4d7d5e4d5c6d5c2c4g8f6b1c3b8c6c4d5f6d5g1f3c8g4d1b3g4f3g2f3e7e6b3b7c6d4\r
+e2e4c7c6d2d4d7d5e4d5c6d5c2c4g8f6b1c3e7e6c1g5f8e7g1f3e8g8f1d3d5c4d3c4a7a6a2a4b8c6\r
+e2e4c7c6d2d4d7d5e4d5c6d5c2c4g8f6b1c3e7e6g1f3f8b4c4d5f6d5c1d2b8c6f1d3b4e7e1g1e8g8\r
+e2e4c7c6d2d4d7d5e4d5c6d5c2c4g8f6b1c3e7e6g1f3f8b4c4d5f6d5c1d2b8c6f1d3b4e7e1g1e8g8\r
+e2e4c7c6d2d4d7d5e4d5c6d5c2c4g8f6b1c3e7e6g1f3f8b4c4d5f6d5d1c2b8c6f1d3b4e7a2a3d5f6\r
+e2e4c7c6d2d4d7d5e4d5c6d5c2c4g8f6b1c3e7e6g1f3f8e7c4d5f6d5f1c4d5c3b2c3e8g8e1g1b8d7\r
+e2e4c7c6d2d4d7d5e4d5c6d5c2c4g8f6b1c3e7e6g1f3f8e7c4d5f6d5f1c4d5f6e1g1e8g8d1e2b8c6\r
+e2e4c7c6d2d4d7d5e4d5c6d5c2c4g8f6b1c3e7e6g1f3f8e7c4d5f6d5f1d3b8c6e1g1e8g8f1e1d5f6\r
+e2e4c7c6d2d4d7d5e4d5c6d5c2c4g8f6b1c3e7e6g1f3f8e7c4d5f6d5f1d3b8c6e1g1e8g8f1e1e7f6\r
+e2e4c7c6d2d4d7d5e4d5c6d5c2c4g8f6b1c3e7e6g1f3f8e7c4d5f6d5f1d3b8c6e1g1e8g8f1e1e7f6\r
+e2e4c7c6d2d4d7d5e4d5c6d5c2c4g8f6b1c3e7e6g1f3f8e7c4d5f6d5f1d3b8c6e1g1e8g8f1e1e7f6\r
+e2e4c7c6d2d4d7d5e4d5c6d5c2c4g8f6b1c3e7e6g1f3f8e7c4d5f6d5f1d3e8g8e1g1b8c6f1e1e7f6\r
+e2e4c7c6d2d4d7d5e4d5c6d5c2c4g8f6b1c3g7g6d1b3f8g7c4d5e8g8g2g3b8a6f1g2d8b6b3b6a7b6\r
+e2e4c7c6d2d4d7d5e4d5c6d5f1d3b8c6c2c3g8f6c1f4c8g4d1b3d8d7b1d2e7e6g1f3g4f3d2f3f8d6\r
+e2e4c7c6d2d4d7d5e4e5c6c5d4c5b8c6c1f4e7e6b1d2f8c5d2b3c5b6d1g4e8f8g1f3f7f5g4g3g8e7\r
+e2e4c7c6d2d4d7d5e4e5c6c5d4c5e7e6b1c3b8c6c1f4g8e7g1f3e7g6f4e3g6e5f3e5c6e5d1h5e5c6\r
+e2e4c7c6d2d4d7d5e4e5c6c5d4c5e7e6c1e3g8h6c2c3h6f5e3d4c8d7g1f3b8c6d1d2f7f6b2b4a7a5\r
+e2e4c7c6d2d4d7d5e4e5c6c5d4c5e7e6c1e3g8h6c2c3h6f5e3d4f5d4c3d4b7b6b2b4a7a5f1b5c8d7\r
+e2e4c7c6d2d4d7d5e4e5c6c5d4c5e7e6d1g4b8c6g1f3d8c7f1b5c8d7b5c6c7c6c1e3g8h6e3h6g7h6\r
+e2e4c7c6d2d4d7d5e4e5c6c5d4c5e7e6d1g4b8d7g1f3g8e7c1g5h7h6g5e7d8e7b1c3e7c5e1c1a7a6\r
+e2e4c7c6d2d4d7d5e4e5c6c5d4c5e7e6g1f3f8c5f1d3b8c6e1g1g8e7c1f4d8b6b1c3a7a6c3a4b6a7\r
+e2e4c7c6d2d4d7d5e4e5c6c5d4c5e7e6g1f3f8c5f1d3b8c6e1g1g8e7c1f4e7g6f4g3e8g8c2c4d5c4\r
+e2e4c7c6d2d4d7d5e4e5c8f5b1c3d8b6g2g4f5d7f1g2e7e6g1e2c6c5e1g1c5d4e2d4b8c6d4b3c6e5\r
+e2e4c7c6d2d4d7d5e4e5c8f5b1c3e7e6g2g4f5g6g1e2c6c5h2h4h7h5e2f4b8c6f4g6f7g6c3e2g8e7\r
+e2e4c7c6d2d4d7d5e4e5c8f5b1c3e7e6g2g4f5g6g1e2c6c5h2h4h7h6c1e3d8b6d1d2b8c6e1c1h6h5\r
+e2e4c7c6d2d4d7d5e4e5c8f5f1d3f5d3d1d3e7e6g1f3d8a5b1d2a5a6c2c4g8e7e1g1b8d7b2b3e7f5\r
+e2e4c7c6d2d4d7d5e4e5c8f5f1e2e7e6g1f3c6c5c2c3b8d7e1g1g8e7d4c5e7c6f3d4f5b1a1b1f8c5\r
+e2e4c7c6d2d4d7d5e4e5c8f5g1f3e7e6a2a3b8d7b1d2h7h6f1e2g8e7d2f1f5g6c2c3c6c5f1g3e7c6\r
+e2e4c7c6d2d4d7d5e4e5c8f5g1f3e7e6a2a3b8d7c2c4d5c4f1c4d7b6c4b3g8e7e1g1e7d5f1e1f8e7\r
+e2e4c7c6d2d4d7d5e4e5c8f5g1f3e7e6c2c3c6c5a2a3c5d4c3d4g8e7c1e3e7c6f1d3f5d3d1d3f8e7\r
+e2e4c7c6d2d4d7d5e4e5c8f5g1f3e7e6c2c3g8e7f3h4f5b1a1b1c6c5a2a3b8c6f1e2e7g6h4g6h7g6\r
+e2e4c7c6d2d4d7d5e4e5c8f5g1f3e7e6f1e2b8d7e1g1g8e7c2c3h7h6b1a3a7a6a3c2f5h7c2e1c6c5\r
+e2e4c7c6d2d4d7d5e4e5c8f5g1f3e7e6f1e2b8d7e1g1g8e7f3h4f5g6b1d2c6c5c2c3c5d4c3d4e7f5\r
+e2e4c7c6d2d4d7d5e4e5c8f5g1f3e7e6f1e2b8d7e1g1h7h6b2b3g8e7c2c4e7g6b1a3g6f4c1f4f8a3\r
+e2e4c7c6d2d4d7d5e4e5c8f5g1f3e7e6f1e2c6c5c1e3c5d4f3d4g8e7c2c4b8c6d1a4d5c4b1a3d8a5\r
+e2e4c7c6d2d4d7d5e4e5c8f5g1f3e7e6f1e2c6c5c1e3c5d4f3d4g8e7e1g1b8c6e2b5a7a6b5c6b7c6\r
+e2e4c7c6d2d4d7d5e4e5c8f5g1f3e7e6f1e2c6c5c1e3c5d4f3d4g8e7e3g5d8a5b1c3f5g6e1g1a7a6\r
+e2e4c7c6d2d4d7d5e4e5c8f5g1f3e7e6f1e2c6c5e1g1b8c6c2c3c5d4c3d4g8e7a2a3f5e4b1d2e7f5\r
+e2e4c7c6d2d4d7d5e4e5c8f5g1f3e7e6f1e2c6c5e1g1b8c6c2c3f5g4b1d2c5d4c3d4g8e7a2a3e7f5\r
+e2e4c7c6d2d4d7d5e4e5c8f5h2h4c6c5d4c5d8c7b1c3b8c6g1f3a8d8c3b5c7c8f3d4f5g4f2f3g4d7\r
+e2e4c7c6d2d4d7d5e4e5c8f5h2h4h7h5g1e2e7e6e2g3g7g6g3f5g6f5c2c4c6c5c4d5d8d5b1c3d5d4\r
+e2e4c7c6d2d4d7d5e4e5c8f5h2h4h7h6g1e2e7e6e2g3g8e7b1c3b8d7c1e3f5h7f1d3h7d3c2d3h6h5\r
+e2e4c7c6d2d4d7d5e4e5c8f5h2h4h7h6g2g4f5d7c2c3c6c5f1g2e7e6g1e2d7b5b1a3b5e2d1e2c5d4\r
+e2e4c7c6d2d4d7d5e4e5c8f5h2h4h7h6g2g4f5d7h4h5c6c5c2c3b8c6f1h3e7e6c1e3d8b6d1b3c5d4\r
+e2e4c7c6d2d4d7d5f2f3e7e6b1c3g8f6c1g5h7h6g5h4d8b6a2a3c6c5g1e2b8c6d4c5f8c5c3a4b6a5\r
+e2e4c7c6d2d4d7d6g1f3g8f6b1c3c8g4h2h3g4h5f1d3e7e6d1e2d6d5c1g5f8e7e4e5f6d7g5e7d8e7\r
+e2e4d7d5e4d5d8d5b1c3d5a5d2d4g8f6g1f3c7c6f3e5c8e6f1d3b8d7f2f4g7g6e1g1f8g7g1h1e6f5\r
+e2e4d7d5e4d5g8f6d2d4f6d5g1f3c8g4f1e2b8c6c2c4d5b6d4d5g4f3g2f3c6e5f3f4e5d7b1c3c7c6\r
+e2e4d7d5e4d5g8f6f1b5c8d7b5c4d7g4f2f3g4c8b1c3b8d7d2d4d7b6c4b3b6d5c3d5f6d5c2c4d5f6\r
+e2e4d7d5e4d5g8f6f1b5c8d7b5c4d7g4f2f3g4f5g2g4f5c8b1c3a7a6a2a4c7c6d5c6b8c6d2d3e7e5\r
+e2e4d7d5e4d5g8f6f1b5c8d7b5c4d7g4f2f3g4f5g2g4f5c8b1c3a7a6g4g5b7b5c4b3f6d7d2d4d7b6\r
+e2e4d7d5e4d5g8f6f1b5c8d7b5c4d7g4f2f3g4f5g2g4f5c8b1c3c7c6d5c6b8c6d2d3e7e5g4g5f6h5\r
+e2e4d7d6d2d4g7g6b1c3f8g7f1e2c7c6f2f4d8b6e4e5g8h6\r
+e2e4d7d6d2d4g7g6b1c3f8g7f2f4g8f6g1f3e8g8f1e2c7c5d4c5d8a5e1g1a5c5g1h1b8c6e2d3c8g4\r
+e2e4d7d6d2d4g7g6b1c3f8g7g1f3g8f6f1e2e8g8e1g1c7c6a2a4a7a5h2h3b8a6c1e3a6b4d1d2d8c7\r
+e2e4d7d6d2d4g7g6b1c3g8f6f2f4f8g7g1f3c7c5d4c5d8a5f1d3a5c5d1e2e8g8c1e3c5a5e1g1c8g4\r
+e2e4d7d6d2d4g7g6f1e2f8g7b1c3c7c6c1e3b7b5a2a3g8f6d1d2e8g8e3h6e7e5h6g7g8g7a1d1d8e7\r
+e2e4d7d6d2d4g7g6g1f3f8g7b1c3c7c6a2a4g8f6f1e2a7a5e1g1e8g8c1e3b8a6f3d2a6b4a1c1d6d5\r
+e2e4d7d6d2d4g7g6g1f3g8f6b1c3f8g7f1e2e8g8e1g1c7c6a2a4a7a5h2h3b8a6c1f4a6c7f1e1c7e6\r
+e2e4d7d6d2d4g8f6b1c3b8d7f2f4e7e5g1f3e5d4d1d4f8e7c1e3d7c5e1c1c5e6d4d2e8g8h2h3b7b6\r
+e2e4d7d6d2d4g8f6b1c3g7g6c1e3c7c6d1d2b8d7h2h3d8c7g2g3b7b5f1g2b5b4c3d1a8b8g1e2f8g7\r
+e2e4d7d6d2d4g8f6b1c3g7g6c1e3f8g7d1d2c7c6f2f3d8a5g2g4b7b5g1e2h7h5g4g5f6d7f1g2b5b4\r
+e2e4d7d6d2d4g8f6b1c3g7g6c1e3f8g7d1d2c7c6f2f3d8a5g2g4h7h5g4g5f6h7f3f4e8g8g1f3e7e5\r
+e2e4d7d6d2d4g8f6b1c3g7g6c1e3f8g7d1d2f6g4e3g5h7h6g5h4g4f6f2f4b7b6e1c1c8b7e4e5d6e5\r
+e2e4d7d6d2d4g8f6b1c3g7g6f2f4f8g7g1f3e8g8f1e2c7c5d4c5d8a5e1g1a5c5g1h1b8c6f3d2a7a5\r
+e2e4d7d6d2d4g8f6b1c3g7g6g1f3f8g7f1c4b8c6d4d5c6b8h2h3c7c6c4b3e8g8e1g1b7b6c1g5c8b7\r
+e2e4d7d6d2d4g8f6b1c3g7g6g1f3f8g7f1e2c7c6a2a4a7a5e1g1e8g8h2h3b8a6f1e1d8c7c1g5h7h6\r
+e2e4d7d6d2d4g8f6b1c3g7g6g1f3f8g7f1e2c7c6e1g1e8g8a2a4b8d7a4a5d8c7h2h3f8d8c1e3d7f8\r
+e2e4d7d6d2d4g8f6b1c3g7g6g1f3f8g7f1e2c8g4e1g1e8g8h2h3g4f3e2f3b8c6c3e2e7e5c2c3f8e8\r
+e2e4d7d6d2d4g8f6b1c3g7g6g1f3f8g7f1e2e8g8e1g1c7c5d4d5b8a6c1f4a6c7a2a4b7b6f1e1c8b7\r
+e2e4d7d6d2d4g8f6b1c3g7g6g1f3f8g7f1e2e8g8e1g1c7c6h2h3b8d7c1f4d8a5d1d2e7e5f4e3f8e8\r
+e2e4d7d6d2d4g8f6b1c3g7g6g1f3f8g7f1e2e8g8e1g1c8g4c1e3b8c6d1d3e7e5d4d5c6b4d3d2a7a5\r
+e2e4d7d6d2d4g8f6b1c3g7g6g1f3f8g7h2h3e8g8c1e3b7b6f1c4e7e6e1g1c8b7d4d5e6d5e4d5a7a6\r
+e2e4d7d6d2d4g8f6b1c3g7g6g1f3f8g7h2h3e8g8c1e3c7c6a2a4b8d7a4a5d8c7f1e2e7e5d4e5d7e5\r
+e2e4d7d6d2d4g8f6b1c3g7g6g1f3f8g7h2h3e8g8c1e3c7c6d1d2b7b5f1d3b8d7e3h6e7e5h6g7g8g7\r
+e2e4d7d6d2d4g8f6b1c3g7g6g2g3f8g7f1g2e8g8g1e2b8d7e1g1c7c5h2h3a7a6c1e3d8c7d1d2c5d4\r
+e2e4e7e5b1c3b8c6f1c4g8f6d2d3c6a5c4b3a5b3a2b3d7d5e4d5f8b4g1f3f6d5c1d2d5c3b2c3b4d6\r
+e2e4e7e5b1c3b8c6f1c4g8f6d2d3c6a5g1e2a5c4d3c4f8e7e1g1d7d6b2b3e8g8e2g3c7c6c1b2d8a5\r
+e2e4e7e5b1c3b8c6f2f4e5f4d2d4d7d5e4d5d8h4e1e2h4e7e2f2e7h4g2g3f4g3f2g2c6d4h2g3h4g4\r
+e2e4e7e5b1c3b8c6f2f4e5f4d2d4d8h4e1e2g8f6g1f3h4g4d4d5c6e5h2h3g4h5c1f4e5f3g2f3d7d6\r
+e2e4e7e5b1c3g8f6f1c4f6e4d1h5e4d6c4b3f8e7g1f3b8c6f3e5c6e5h5e5e8g8c3d5f8e8e1g1e7f8\r
+e2e4e7e5b1c3g8f6f1c4f8c5d2d3d7d6f2f4c8e6c4e6f7e6g1f3e5f4c1f4e8g8c3a4c5b4c2c3b4a5\r
+e2e4e7e5b1c3g8f6f1c4f8c5f2f4d7d6g1f3c7c6d2d3b7b5c4b3d8e7d1e2b8d7h1f1c5b4f4e5d6e5\r
+e2e4e7e5b1c3g8f6f2f4d7d5f4e5f6e4g1f3f8e7d1e2e4c3d2c3c7c5c1f4b8c6e1c1c8e6h2h4h7h6\r
+e2e4e7e5b1c3g8f6g1f3b8c6f1b5c6d4b5a4f8c5f3e5e8g8e5d3c5b6e4e5f6e8c3d5c7c6d5e3d7d6\r
+e2e4e7e5b1c3g8f6g1f3b8c6f1b5f8b4e1g1e8g8d2d3d7d6c1g5b4c3b2c3h7h6g5h4c8d7a1b1a7a6\r
+e2e4e7e5b1c3g8f6g2g3d7d5e4d5f6d5f1g2d5c3b2c3f8d6g1e2e8g8e1g1b8d7d2d3d7f6c3c4c7c6\r
+e2e4e7e5b1c3g8f6g2g3d7d5e4d5f6d5f1g2d5c3b2c3f8d6g1f3e8g8e1g1b8d7f1e1a8b8d2d4e5d4\r
+e2e4e7e5b1c3g8f6g2g3d7d5e4d5f6d5f1g2d5c3b2c3f8d6g1f3e8g8e1g1c7c5d2d3b8c6f3d2d8d7\r
+e2e4e7e5b1c3g8f6g2g3f8b4g1e2c7c6f1g2e8g8e1g1d7d5e4d5c6d5d2d4e5d4d1d4b8c6d4d3b4c3\r
+e2e4e7e5d2d4e5d4d1d4b8c6d4e3g8f6c1d2f8e7b1c3d7d5e4d5f6d5e3g3d5c3d2c3e7f6c3f6d8f6\r
+e2e4e7e5f1c4g8f6b1c3b8c6f2f4f8c5f4e5c6e5c4b3c5g1h1g1f6g4d2d4d8h4e1d2e5c6d1f3g4f6\r
+e2e4e7e5f1c4g8f6d2d3b8c6g1f3f8c5c2c3d7d6e1g1e8g8b1d2a7a6c4b3c8e6f1e1e6b3d2b3c5a7\r
+e2e4e7e5f1c4g8f6d2d3c7c6g1f3f8e7c4b3d7d6b1d2b8a6c2c3e8g8e1g1c8e6b3c2f6d7d3d4a6c7\r
+e2e4e7e5f1c4g8f6d2d3f8c5b1c3c7c6c1g5h7h6g5h4b7b5c4b3d7d6d1e2b8d7c3d1d7f8f2f3f8g6\r
+e2e4e7e5f1c4g8f6d2d4b8c6g1f3d8e7e1g1d7d6b1c3c8g4d4e5c6e5c4e2e8c8c1g5e5f3e2f3g4f3\r
+e2e4e7e5f1c4g8f6d2d4b8c6g1f3f6e4d4e5d8e7d1d5e4c5e1g1h7h6b1c3c6b4d5d1c7c6a2a3b4a6\r
+e2e4e7e5f1c4g8f6d2d4e5d4g1f3f8c5e4e5d7d5e5f6d5c4d1e2c8e6f6g7h8g8c1g5c5e7g5e7e8e7\r
+e2e4e7e5f2f4e5f4g1f3g8e7d2d4d7d5b1c3d5e4c3e4e7g6h2h4d8e7e1f2c8g4h4h5g6h4c1f4b8c6\r
+e2e4e7e5f2f4e5f4g1f3g8f6e4e5f6h5f1e2g7g6d2d4f8g7e1g1d7d6b1c3e8g8f3e1d6e5e2h5g6h5\r
+e2e4e7e5f2f4f8c5g1f3d7d6c2c3c8g4d2d4g4f3g2f3d8h4e1e2c5b6b1a3f7f5a3c4f5e4f4e5d6e5\r
+e2e4e7e5g1f3b8c6b1c3g7g6d2d4e5d4f3d4f8g7c1e3g8f6f1e2e8g8e1g1f8e8d4c6b7c6e2f3c8b7\r
+e2e4e7e5g1f3b8c6b1c3g8f6d2d4e5d4f3d4f8b4d4c6b7c6f1d3d7d5e4d5c6d5e1g1e8g8c1g5c7c6\r
+e2e4e7e5g1f3b8c6b1c3g8f6d2d4e5d4f3d4f8b4d4c6b7c6f1d3d7d5e4d5c6d5e1g1e8g8c1g5c7c6\r
+e2e4e7e5g1f3b8c6b1c3g8f6f1b5c6d4b5a4f8c5e1g1e8g8d2d3c7c6f3d4c5d4c3e2d4b6c1g5h7h6\r
+e2e4e7e5g1f3b8c6b1c3g8f6f1b5d7d6d2d4c8d7e1g1f8e7f1e1e5d4f3d4e8g8b5c6b7c6c1g5h7h6\r
+e2e4e7e5g1f3b8c6b1c3g8f6f1b5d7d6d2d4c8d7e1g1f8e7f1e1e5d4f3d4e8g8d4e2a7a6b5d3f6g4\r
+e2e4e7e5g1f3b8c6b1c3g8f6f1b5d7d6d2d4c8d7e1g1f8e7f1e1e5d4f3d4e8g8d4e2c6e5e2g3d7b5\r
+e2e4e7e5g1f3b8c6b1c3g8f6f1b5f8b4e1g1e8g8c3d5f6d5e4d5e5e4d5c6e4f3d1f3d7c6b5d3b4d6\r
+e2e4e7e5g1f3b8c6b1c3g8f6f1b5f8b4e1g1e8g8d2d3b4c3b2c3d7d6b5c6b7c6c1g5h7h6g5f6d8f6\r
+e2e4e7e5g1f3b8c6b1c3g8f6f1b5f8b4e1g1e8g8d2d3b4c3b2c3d7d6c1g5d8e7f1e1c6d8d3d4d8e6\r
+e2e4e7e5g1f3b8c6b1c3g8f6f1b5f8b4e1g1e8g8d2d3d7d6c1g5b4c3b2c3c6e7b5c4e7g6f3h4g6f4\r
+e2e4e7e5g1f3b8c6b1c3g8f6f1b5f8b4e1g1e8g8d2d3d7d6c1g5b4c3b2c3c6e7b5c4e7g6f3h4g6f4\r
+e2e4e7e5g1f3b8c6b1c3g8f6g2g3d7d5e4d5f6d5f1g2d5c3b2c3f8d6e1g1e8g8a1b1a8b8d2d4h7h6\r
+e2e4e7e5g1f3b8c6b1c3g8f6g2g3f8b4f1g2d7d6d2d3c8g4h2h3g4h5e1g1h7h6c3d5f6d5e4d5c6e7\r
+e2e4e7e5g1f3b8c6c2c3g8f6d2d4f6e4d4d5c6b8f1d3e4f6f3e5d7d6d3b5b8d7e5f3f8e7e1g1e8g8\r
+e2e4e7e5g1f3b8c6d2d4e5d4f3d4d8f6c1e3f8c5c2c3g8e7f1c4c6e5c4e2f6g6e1g1e8g8b1d2d7d5\r
+e2e4e7e5g1f3b8c6d2d4e5d4f3d4d8h4d4b5h4e4c1e3e8d8b1c3e4e5c3d5g8f6b5c7f8d6f2f4e5e4\r
+e2e4e7e5g1f3b8c6d2d4e5d4f3d4f8c5c1e3d8f6c2c3g8e7f1c4e8g8e1g1c5b6c4b3d7d6g1h1c6d4\r
+e2e4e7e5g1f3b8c6d2d4e5d4f3d4f8c5d4b3c5b6b1c3g8f6c1g5d7d6d1d2h7h6g5f4c8e6e1c1f6h5\r
+e2e4e7e5g1f3b8c6d2d4e5d4f3d4f8c5d4c6d8f6d1d2d7c6b1c3c8e6c3a4a8d8f1d3c5d4c2c3b7b5\r
+e2e4e7e5g1f3b8c6d2d4e5d4f3d4f8c5d4c6d8f6d1d2d7c6b1c3c8e6c3a4a8d8f1d3c5d4e1g1a7a6\r
+e2e4e7e5g1f3b8c6d2d4e5d4f3d4f8c5d4c6d8f6d1d2d7c6b1c3c8e6c3a4a8d8f1d3c5d4e1g1f6h4\r
+e2e4e7e5g1f3b8c6d2d4e5d4f3d4f8c5d4c6d8f6d1d2d7c6b1c3c8e6c3a4a8d8f1d3c5d4e1g1g8e7\r
+e2e4e7e5g1f3b8c6d2d4e5d4f3d4f8c5d4c6d8f6d1d2d7c6b1c3c8e6c3a4c5d6d2e3g8h6h2h3e8g8\r
+e2e4e7e5g1f3b8c6d2d4e5d4f3d4f8c5d4c6d8f6d1d2d7c6f1d3c8e6e1g1f6e7d2e2g8f6c1e3c5e3\r
+e2e4e7e5g1f3b8c6d2d4e5d4f3d4f8c5d4f5d8f6b1c3g8e7f5e3e8g8f1d3c6e5d3e2e5g6g2g3d7d6\r
+e2e4e7e5g1f3b8c6d2d4e5d4f3d4g8f6b1c3f8b4d4c6b7c6f1d3d7d5e4d5c6d5e1g1e8g8c1g5c7c6\r
+e2e4e7e5g1f3b8c6d2d4e5d4f3d4g8f6d4c6b7c6e4e5d8e7d1e2f6d5b1d2d5b6c2c4c8b7b2b3e8c8\r
+e2e4e7e5g1f3b8c6d2d4e5d4f3d4g8f6d4c6b7c6e4e5d8e7d1e2f6d5c2c4c8a6b2b3e8c8g2g3d8e8\r
+e2e4e7e5g1f3b8c6d2d4e5d4f3d4g8f6d4c6b7c6e4e5d8e7d1e2f6d5c2c4c8a6b2b3g7g5c1a3d7d6\r
+e2e4e7e5g1f3b8c6d2d4e5d4f3d4g8f6d4c6b7c6e4e5d8e7d1e2f6d5c2c4d5b6b1d2c8b7b2b3e8c8\r
+e2e4e7e5g1f3b8c6d2d4e5d4f3d4g8f6d4c6b7c6e4e5d8e7d1e2f6d5c2c4d5b6b1d2e7e6b2b3a7a5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4b7b5a4b3c6a5e1g1d7d6c2c3a5b3a2b3c8b7d2d3f8e7c3c4e7f6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4b7b5a4b3g8f6e1g1f8e7f1e1d7d6c2c3e8g8h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4d7d6a4c6b7c6d2d4e5d4d1d4g8f6e1g1f8e7e4e5c6c5d4d3d6e5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4d7d6a4c6b7c6d2d4f7f6b1c3g8e7c1e3e7g6d1e2f8e7e1c1c8d7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4d7d6c2c3c8d7d2d4g7g6c1g5f7f6g5e3g8h6e1g1f8g7h2h3h6f7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4d7d6c2c3c8d7d2d4g7g6e1g1f8g7d4d5c6e7a4d7d8d7c3c4h7h6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4d7d6c2c3c8d7d2d4g7g6e1g1f8g7d4d5c6e7a4d7d8d7c3c4h7h6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4d7d6c2c3c8d7d2d4g7g6e1g1f8g7f1e1g8e7d4e5c6e5f3e5g7e5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4d7d6c2c3c8d7d2d4g8e7a4b3h7h6b1a3e7g6a3c4f8e7c4e3e8g8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4d7d6c2c3c8d7d2d4g8e7a4b3h7h6b1d2e7g6d2c4f8e7c4e3e8g8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4d7d6c2c3c8d7d2d4g8e7a4b3h7h6b1d2e7g6d2c4f8e7e1g1e8g8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4d7d6c2c3c8d7d2d4g8e7a4b3h7h6b1d2e7g6d2c4f8e7e1g1e8g8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4d7d6c2c3c8d7d2d4g8e7c1e3h7h6b1d2g7g5d4e5d6e5h2h4g5g4\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4d7d6c2c3c8d7d2d4g8e7h2h4h7h6c1e3e5d4c3d4d6d5e4e5b7b5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4d7d6c2c3f7f5e4f5c8f5d2d4e5e4f3g5d6d5f2f3e4e3f3f4f8d6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4d7d6c2c3f7f5e4f5c8f5e1g1f5d3f1e1f8e7a4c2d3c2d1c2g8f6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4d7d6c2c3g8f6e1g1c8d7d2d4f8e7d4d5c6b8a4c2d7g4c3c4b8d7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4d7d6c2c3g8f6e1g1f8e7d2d4c8d7b1d2e8g8f1e1f8e8a2a3e7f8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4d7d6d2d4c8d7a4b3f8e7d4e5d6e5d1d5d7e6d5d8a8d8b3e6f7e6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4d7d6e1g1c8d7c2c4g8f6b1c3f8e7d2d4c6d4f3d4e5d4a4d7f6d7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4f7f5d2d4e5d4e4e5f8c5e1g1g8e7a4b3d7d5e5d6d8d6f1e1h7h6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6a4c6d7c6b1c3f8d6d2d3c6c5h2h3c8e6c1e3h7h6a2a4c5c4\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6d1e2b7b5a4b3f8e7c2c3d7d5d2d3e8g8c1g5d5e4d3e4f6d7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6d1e2b7b5a4b3f8e7c2c3e8g8e1g1d7d5d2d3d5e4d3e4c8g4\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6d1e2f8e7d2d3b7b5a4b3e8g8e1g1d7d6c2c3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6d1e2f8e7e1g1b7b5a4b3d7d6a2a4c8g4c2c3e8g8h2h3c6a5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6d2d3d7d6c2c3c8d7e1g1g7g6b1d2f8g7f1e1e8g8d2f1b7b5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6d2d3d7d6c2c3f8e7b1d2c8d7e1g1e8g8f1e1f8e8d2f1h7h6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6d2d3d7d6c2c3f8e7b1d2e8g8e1g1b7b5a4c2f6h5a2a4b5b4\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6d2d3f8c5c2c3b7b5a4c2d7d5d1e2e8g8c1g5d5e4d3e4h7h6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6d2d4e5d4e1g1f8e7f1e1e8g8e4e5f6e8c2c3d4c3b1c3d7d6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1b7b5a4b3c8b7d2d3f8c5a2a4e8g8c1g5h7h6g5h4g7g5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1b7b5a4b3c8b7d2d3f8d6c2c3e8g8f1e1c6a5b3c2f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1b7b5a4b3c8b7f1e1f8c5c2c3d7d6d2d4c5b6c1e3e8g8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1b7b5a4b3c8b7f1e1f8c5c2c3d7d6d2d4c5b6c1e3e8g8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1b7b5a4b3f8c5a2a4a8b8c2c3d7d6d2d4c5b6b1a3e8g8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1b7b5a4b3f8c5a2a4c8b7d2d3d7d6b1c3b5b4c3d5c6a5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1b7b5a4b3f8c5a2a4c8b7d2d3e8g8b1c3c6a5f3e5a5b3\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1b7b5a4b3f8c5d2d3d7d6a2a4a8b8a4b5a6b5c1e3e8g8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1b7b5a4b3f8e7d1e2e8g8c2c3d7d6f1d1c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1b7b5a4b3f8e7d2d4d7d6d4e5d6e5d1e2c8g4c2c3e8g8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1b7b5a4b3f8e7d2d4d7d6d4e5d6e5d1e2c8g4c2c3e8g8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1b7b5a4b3f8e7f1e1d7d6a2a4c8d7c2c3e8g8d2d4h7h6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1b7b5a4b3f8e7f1e1e8g8c2c3d7d5e4d5f6d5f3e5c6e5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1d7d6a4c6b7c6d2d4e5d4f3d4c6c5d4f3f8e7b1c3e8g8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1d7d6f1e1b7b5a4b3c6a5d2d4a5b3a2b3f6d7b3b4f8e7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5a2a4a8b8a4b5a6b5d4e5c8e6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5a2a4a8b8a4b5a6b5d4e5c8e6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5a2a4c6d4f3d4e5d4a4b5f8c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5a2a4c6d4f3d4e5d4d1d4c8e6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6b1d2e4c5c2c3d5d4\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6b1d2e4c5c2c3d5d4\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6b1d2e4c5c2c3d5d4\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6b1d2e4c5c2c3d5d4\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6b1d2e4c5c2c3d5d4\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6b1d2e4c5c2c3d5d4\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6b1d2e4c5c2c3d5d4\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6b1d2e4c5c2c3d5d4\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6b1d2e4c5c2c3f8e7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6b1d2e4c5c2c3f8e7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6b1d2e4c5c2c3g7g6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6c1e3f8c5d1e2d8e7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6c1e3f8e7c2c3d8d7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6c1e3f8e7c2c3d8d7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6c1e3f8e7c2c3d8d7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6c1e3f8e7c2c3d8d7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6c1e3f8e7c2c3e4c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6c1e3f8e7c2c3e4c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6c2c3e4c5b3c2e6g4\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6c2c3e4c5b3c2e6g4\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6c2c3f8c5b1d2e8g8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6c2c3f8c5b1d2e8g8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6c2c3f8c5b1d2e8g8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6c2c3f8c5b1d2e8g8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6c2c3f8c5b1d2e8g8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6c2c3f8c5b1d2e8g8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6c2c3f8c5b1d2e8g8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6c2c3f8c5b1d2e8g8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6c2c3f8c5d1d3e8g8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6c2c3f8c5d1d3e8g8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6c2c3f8c5d1d3e8g8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6c2c3f8c5d1d3e8g8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6c2c3f8e7a2a4b5b4\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6c2c3f8e7b1d2e4c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6c2c3f8e7b1d2e8g8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6c2c3f8e7b3c2e4c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6c2c3f8e7c1e3e4c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6c2c3f8e7c1e3e4c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6c2c3f8e7c1e3e8g8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6c2c3f8e7c1e3e8g8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6d1e2e4c5f1d1b5b4\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6d1e2e4c5f1d1c5b3\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6d1e2e4c5f1d1c5b3\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6d1e2f8c5c1e3d8e7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6d1e2f8e7f1d1e4c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6d1e2f8e7f1d1e4c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6d1e2f8e7f1d1e8g8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6d1e2f8e7f1d1e8g8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6d1e2f8e7f1d1e8g8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6d1e2f8e7f1d1e8g8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5d4e5c8e6d1e2f8e7f1d1e8g8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5f3e5c6e5d4e5c7c6b1d2e4d2\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4d2d4b7b5a4b3d7d5f3e5c6e5d4e5c7c6c2c3f8c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f6e4f1e1e4c5b1c3f8e7c3d5e8g8a4c6d7c6d5e7d8e7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8c5c2c3b7b5a4b3d7d6a2a4c8g4d2d3e8g8h2h3g4f3\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7a4c6d7c6d1e2c8g4h2h3g4f3e2f3e8g8d2d3f6d7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7a4c6d7c6d1e2c8g4h2h3g4f3e2f3e8g8d2d3f6d7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7a4c6d7c6d2d3d8d6b1d2c8e6b2b3f6d7c1b2c6c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7a4c6d7c6d2d3f6d7b1c3e8g8c1e3c6c5c3d5e7d6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7a4c6d7c6d2d3f6d7b1d2e8g8d2c4f7f6f3h4d7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7a4c6d7c6d2d3f6d7b2b3e8g8c1b2f7f6b1c3d7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7a4c6d7c6f3e5f6e4d2d4e8g8c1e3f7f6e5d3c8f5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7b1c3b7b5a4b3d7d6c3d5c6a5d5e7d8e7d2d4c8b7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7b1c3d7d6a4c6b7c6d2d4f6d7d4e5d6e5c1e3e7d6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7b1c3d7d6a4c6b7c6d2d4f6d7d4e5d6e5c3a4e8g8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7d1e2b7b5a4b3e8g8c2c3d7d5d2d3d5d4b1d2e7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7d1e2b7b5a4b3e8g8c2c3d7d5d2d3d5d4c3d4c6d4\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7d1e2b7b5a4b3e8g8c2c3d7d5d2d3d5d4c3d4c6d4\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7d1e2b7b5a4b3e8g8c2c3d7d5d2d3f8e8f1d1c8b7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7d1e2b7b5a4b3e8g8c2c3d7d6d2d4c8g4f1d1e5d4\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7d2d3b7b5a4b3d7d6a2a4c8b7b1c3b5b4c3d5c6a5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7d2d3d7d6c2c3e8g8f1e1b7b5a4c2d6d5e4d5d8d5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7d2d3d7d6c2c3e8g8f1e1f6d7a4c2e7f6b1d2d7b6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7d2d4e5d4e4e5f6e4f3d4e8g8d4f5d7d5a4c6b7c6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7d2d4e5d4e4e5f6e4f3d4e8g8d4f5d7d5f5e7c6e7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3c6a5b3c2c7c5d2d4d8c7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3c6a5b3c2c7c5d2d4d8c7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3c6a5b3c2c7c5d2d4d8c7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3c8g4d2d3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8a2a4c8g4d2d3c6a5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8d2d3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8d2d3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8d2d4c8g4c1e3e5d4\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8d2d4c8g4c1e3e5d4\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8d2d4c8g4c1e3e5d4\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8d2d4c8g4d4d5c6a5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6b8d2d4b8d7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6b8d2d4b8d7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6b8d2d4b8d7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6b8d2d4b8d7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6b8d2d4b8d7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6b8d2d4b8d7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6b8d2d4b8d7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6b8d2d4b8d7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6b8d2d4b8d7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6b8d2d4b8d7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6b8d2d4b8d7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6b8d2d4b8d7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6b8d2d4b8d7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6b8d2d4b8d7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6b8d2d4b8d7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6b8d2d4b8d7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6b8d2d4c8b7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c6b8d2d4c8b7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c8b7d2d3f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c8b7d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c8b7d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c8b7d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c8b7d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c8b7d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c8b7d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c8b7d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c8b7d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c8b7d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c8b7d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c8b7d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c8b7d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c8b7d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c8b7d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c8b7d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c8b7d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c8b7d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c8b7d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c8b7d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c8b7d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c8b7d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c8b7d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c8b7d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c8b7d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c8b7d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c8b7d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c8b7d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c8e6d2d4e6b3\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c8e6d2d4e6b3\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c8e6d2d4e6b3\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c8e6d2d4e6b3\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3c8e6d2d4e6b3\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3d8d7d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3f6d7d2d4d7b6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3f6d7d2d4d7b6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3f6d7d2d4e7f6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3f6d7d2d4e7f6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3f6d7d2d4e7f6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3f6d7d2d4e7f6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3f6d7d2d4e7f6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3f6d7d2d4e7f6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3f6d7d2d4e7f6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3f6d7d2d4e7f6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3f8e8d2d4c8b7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3f8e8d2d4c8b7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3f8e8d2d4c8b7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3f8e8d2d4c8b7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3h7h6d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3h7h6d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3h7h6d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3h7h6d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3h7h6d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3h7h6d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3d7d6c2c3e8g8h2h3h7h6d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8a2a4b5b4c2c3d7d6a4a5b4c3\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8a2a4b5b4d2d3d7d6a4a5c8e6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8a2a4b5b4d2d3d7d6a4a5c8e6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8a2a4c8b7d2d3d7d6b1d2f6d7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8a2a4c8b7d2d3d7d6b1d2f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8a2a4c8b7d2d3d7d6c2c3c6b8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8a2a4c8b7d2d3f8e8b1d2e7f8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d5e4d5f6d5f3e5c6e5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d5e4d5f6d5f3e5c6e5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d5e4d5f6d5f3e5c6e5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d5e4d5f6d5f3e5c6e5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d5e4d5f6d5f3e5c6e5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d5e4d5f6d5f3e5c6e5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d5e4d5f6d5f3e5c6e5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d5e4d5f6d5f3e5c6e5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d5e4d5f6d5f3e5c6e5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d5e4d5f6d5f3e5c6e5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d5e4d5f6d5f3e5c6e5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d6d2d3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d6d2d3f6d7b1d2d7b6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d6h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d6h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d6h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d6h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d6h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d6h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d6h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d6h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d6h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d6h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d6h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d6h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d6h2h3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d6h2h3c6b8d2d4b8d7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d6h2h3c8b7d2d4c6b8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d6h2h3c8b7d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d6h2h3c8e6d2d4e6b3\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d6h2h3d8d7d2d4f8e8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d6h2h3f6d7d2d4d7b6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d6h2h3f6d7d2d4d7b6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d6h2h3f6d7d2d4d7b6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d6h2h3f6d7d2d4d7b6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8c2c3d7d6h2h3f6d7d2d4e7f6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8d2d3d7d6c2c3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8d2d3d7d6c2c3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8d2d3d7d6c2c3c6a5b3c2c7c5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8d2d4d7d6c2c3c8g4c1e3e5d4\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8d2d4d7d6c2c3c8g4d4d5c6a5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8d2d4d7d6c2c3c8g4h2h3g4f3\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8h2h3c8b7d2d3d7d6c2c3c6b8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1b7b5a4b3e8g8h2h3d7d6c2c3c6b8d2d4b8d7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1d7d6a4c6b7c6d2d4e5d4f3d4c8d7c1g5e8g8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1d7d6a4c6b7c6d2d4f6d7d4e5d6e5b1d2f7f6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5a4g8f6e1g1f8e7f1e1d7d6c2c3c8g4d2d4f6d7c1e3f7f5e4f5g4f5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5c6b7c6f3e5d8e7d2d4f7f6e5f3e7e4d1e2e4e2e1e2a6a5c1f4c8a6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5c6d7c6b1c3c8g4h2h3g4f3d1f3g8e7d2d3c6c5f3g3e7g6c1e3f8d6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5c6d7c6b1c3f7f6d2d4e5d4d1d4d8d4f3d4c8d7c1e3e8c8e1c1g8e7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5c6d7c6b1c3f7f6d2d4e5d4d1d4f8d6c1e3g8e7f3d2c6c5d4d3b7b5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5c6d7c6d2d4e5d4d1d4c8g4b1c3d8d4f3d4e8c8c1e3f8b4d4e2g4e2\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5c6d7c6d2d4e5d4d1d4c8g4b1c3d8d4f3d4e8c8d4e2f8c5f2f3g4e6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5c6d7c6d2d4e5d4d1d4d8d4f3d4c6c5d4e2c8d7b1c3e8c8c1f4d7c6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5c6d7c6d2d4e5d4d1d4d8d4f3d4c6c5d4e2c8d7b2b3d7c6f2f3f8e7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5c6d7c6e1g1c8g4h2h3h7h5d2d3d8f6b1d2g8e7d2c4g4f3d1f3f6f3\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5c6d7c6e1g1d8d6b1a3b7b5c2c4g8f6d1e2c8g4f1d1f8e7d2d3d6e6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5c6d7c6e1g1d8d6b1a3c8e6d1e2f7f6f1d1g7g5d2d4g5g4f3e1e8c8\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5c6d7c6e1g1d8d6d2d3f7f6c1e3c8g4b1d2e8c8a1b1g8e7b2b4g7g5\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5c6d7c6e1g1d8d6d2d4e5d4f3d4c8d7c1e3e8c8b1d2g8h6h2h3d6g6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5c6d7c6e1g1f7f6d2d4c8g4c2c3f8d6d4e5f6e5d1b3g4f3g2f3b7b6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5c6d7c6e1g1f7f6d2d4c8g4d4e5d8d1f1d1f6e5b1d2e8c8d1e1f8d6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5c6d7c6e1g1f7f6d2d4c8g4d4e5d8d1f1d1f6e5d1d3f8d6b1d2g8f6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5c6d7c6e1g1f7f6d2d4e5d4f3d4c6c5d4b3d8d1f1d1c8g4f2f3g4e6\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5c6d7c6e1g1f7f6d2d4e5d4f3d4c6c5d4e2d8d1f1d1c8d7b1c3g8e7\r
+e2e4e7e5g1f3b8c6f1b5a7a6b5c6d7c6e1g1g8e7f3e5d8d4d1h5g7g6h5g5f8g7e5d3f7f5e4e5c6c5\r
+e2e4e7e5g1f3b8c6f1b5c6d4f3d4e5d4e1g1c7c6b5c4g8f6d2d3d7d5e4d5f6d5f1e1c8e6b1d2f8b4\r
+e2e4e7e5g1f3b8c6f1b5c6d4f3d4e5d4e1g1c7c6b5c4g8f6f1e1d7d6d2d3f8e7b1d2e8g8d2f3c6c5\r
+e2e4e7e5g1f3b8c6f1b5d7d6b1c3a7a6b5c4c8e6c4e6f7e6d2d4e5d4f3d4c6d4d1d4g8e7c1g5e7c6\r
+e2e4e7e5g1f3b8c6f1b5d7d6b1c3c8d7d2d4g8e7c1g5f7f6g5e3e7g6d1d2a7a6b5a4b7b5a4b3c6a5\r
+e2e4e7e5g1f3b8c6f1b5d7d6c2c3c8d7e1g1g8e7d2d4e7g6d4d5c6b8b5d7b8d7b1a3f8e7a3c2d7c5\r
+e2e4e7e5g1f3b8c6f1b5d7d6d2d4c8d7b1c3g8e7b5c4c6d4f3d4e5d4d1d4e7c6d4e3c6e5c4b3c7c6\r
+e2e4e7e5g1f3b8c6f1b5d7d6d2d4c8d7b1c3g8e7b5c4e5d4f3d4c6d4d1d4e7c6d4e3c6e5c4b3d7e6\r
+e2e4e7e5g1f3b8c6f1b5d7d6d2d4c8d7b1c3g8e7b5c4e5d4f3d4c6d4d1d4e7c6d4e3d7e6c3d5f8e7\r
+e2e4e7e5g1f3b8c6f1b5d7d6d2d4c8d7b1c3g8e7c1e3e7g6d1d2f8e7e1c1a7a6b5e2e5d4f3d4c6d4\r
+e2e4e7e5g1f3b8c6f1b5d7d6d2d4c8d7b1c3g8e7c1g5f7f6g5e3e7c8c3e2f8e7c2c3e8g8b5d3c8b6\r
+e2e4e7e5g1f3b8c6f1b5d7d6d2d4c8d7d4e5d6e5e1g1f8d6b1c3g8e7c1g5f7f6g5e3e8g8b5c4g8h8\r
+e2e4e7e5g1f3b8c6f1b5f7f5b1c3f5e4c3e4d7d5f3e5d5e4e5c6d8g5d1e2g8f6f2f4g5f4c6e5c7c6\r
+e2e4e7e5g1f3b8c6f1b5f7f5b1c3f5e4c3e4d7d5f3e5d5e4e5c6d8g5d1e2g8f6f2f4g5h4g2g3h4h3\r
+e2e4e7e5g1f3b8c6f1b5f7f5b1c3f5e4c3e4g8f6d1e2d7d5e4f6g7f6d2d4f8g7d4e5e8g8e5e6f8e8\r
+e2e4e7e5g1f3b8c6f1b5f7f5d2d3f5e4d3e4g8f6e1g1d7d6b1c3f8e7a2a3c8g4h2h3g4f3d1f3e8g8\r
+e2e4e7e5g1f3b8c6f1b5f7f5d2d3f5e4d3e4g8f6e1g1f8c5b1c3d7d6c1e3c5b6c3d5e8g8e3g5c8e6\r
+e2e4e7e5g1f3b8c6f1b5f8b4e1g1g8e7c2c3b4a5b5c6e7c6b2b4a5b6b4b5c6a5f3e5e8g8d2d4d7d5\r
+e2e4e7e5g1f3b8c6f1b5f8c5c2c3f7f5d2d4f5e4d4c5e4f3d1f3g8f6c1g5e8g8e1g1d8e7b5c4g8h8\r
+e2e4e7e5g1f3b8c6f1b5f8c5c2c3g8e7d2d4e5d4c3d4c5b4c1d2b4d2d1d2a7a6b5a4d7d5e4d5d8d5\r
+e2e4e7e5g1f3b8c6f1b5f8c5c2c3g8e7d2d4e5d4c3d4c5b4c1d2b4d2d1d2d7d5e4d5e7d5b5c6b7c6\r
+e2e4e7e5g1f3b8c6f1b5f8c5c2c3g8e7e1g1e7g6d2d4e5d4c3d4c5b6b1c3e8g8a2a4a7a6b5c4h7h6\r
+e2e4e7e5g1f3b8c6f1b5f8c5c2c3g8f6d2d4e5d4e4e5f6e4c3d4c5b4b1d2e8g8e1g1d7d5d1a4b4d2\r
+e2e4e7e5g1f3b8c6f1b5f8c5e1g1c6d4f3d4c5d4c2c3d4b6d2d4c7c6b5c4d7d6d1b3d8c7d4e5d6e5\r
+e2e4e7e5g1f3b8c6f1b5g7g6c2c3a7a6b5a4d7d6d2d4c8d7c1g5f7f6g5e3g8h6e1g1f8g7h2h3h6f7\r
+e2e4e7e5g1f3b8c6f1b5g7g6c2c3a7a6b5a4d7d6d2d4c8d7c1g5f7f6g5e3g8h6h2h3f8g7b1d2d8e7\r
+e2e4e7e5g1f3b8c6f1b5g7g6c2c3a7a6b5a4d7d6d2d4c8d7c1g5f7f6g5e3g8h6h2h3f8g7b1d2h6f7\r
+e2e4e7e5g1f3b8c6f1b5g7g6c2c3a7a6b5c4d7d6d2d4f8g7c1g5d8d7d4e5d6e5d1e2g8f6b1a3e8g8\r
+e2e4e7e5g1f3b8c6f1b5g8f6b1c3f8b4e1g1d7d6c3d5b4c5d2d4e5d4f3d4c5d4d1d4e8g8d5f6d8f6\r
+e2e4e7e5g1f3b8c6f1b5g8f6b1c3f8b4e1g1e8g8d2d3b4c3b2c3d7d6c1g5d8e7f1e1c6d8d3d4d8e6\r
+e2e4e7e5g1f3b8c6f1b5g8f6b1c3f8b4e1g1e8g8d2d3d7d6c1g5c8e6d3d4e5d4f3d4h7h6g5h4c6e5\r
+e2e4e7e5g1f3b8c6f1b5g8f6d1e2a7a6b5a4f8e7e1g1b7b5a4b3e8g8a2a4b5b4d2d3d7d6b1d2c8g4\r
+e2e4e7e5g1f3b8c6f1b5g8f6d1e2f8c5c2c3e8g8e1g1f8e8d2d3h7h6h2h3d7d6c1e3c8d7e3c5d6c5\r
+e2e4e7e5g1f3b8c6f1b5g8f6d2d3d7d6c2c3c8d7b5a4g7g6b1d2f8g7d2c4e8g8c4e3c6e7a4b3c7c6\r
+e2e4e7e5g1f3b8c6f1b5g8f6d2d3d7d6c2c3g7g6b1d2f8g7d2f1e8g8b5a4d6d5d1e2d8d6a4c2b7b6\r
+e2e4e7e5g1f3b8c6f1b5g8f6d2d3d7d6c2c3g7g6b1d2f8g7d2f1e8g8b5a4f6d7f1e3d7c5a4c2c5e6\r
+e2e4e7e5g1f3b8c6f1b5g8f6d2d3d7d6c2c3g7g6b1d2f8g7d2f1e8g8f1e3d6d5d1c2a7a6b5a4d5e4\r
+e2e4e7e5g1f3b8c6f1b5g8f6d2d3d7d6c2c3g7g6d3d4c8d7b1d2f8g7d4e5c6e5f3e5d6e5d1e2e8g8\r
+e2e4e7e5g1f3b8c6f1b5g8f6d2d3d7d6c2c3g7g6d3d4c8d7b1d2f8g7d4e5c6e5f3e5d6e5d1e2e8g8\r
+e2e4e7e5g1f3b8c6f1b5g8f6d2d4e5d4e1g1f8e7e4e5f6e4f3d4e8g8d4f5d7d5b5c6b7c6f5e7d8e7\r
+e2e4e7e5g1f3b8c6f1b5g8f6e1g1d7d6d2d4c8d7b1c3e5d4f3d4f8e7b2b3c6d4d1d4d7b5c3b5f6d7\r
+e2e4e7e5g1f3b8c6f1b5g8f6e1g1d7d6d2d4c8d7b1c3f8e7b5c6d7c6d1d3e5d4f3d4c6d7c1g5e8g8\r
+e2e4e7e5g1f3b8c6f1b5g8f6e1g1d7d6d2d4c8d7b1c3f8e7b5c6d7c6d1d3e5d4f3d4e8g8c1f4f6d7\r
+e2e4e7e5g1f3b8c6f1b5g8f6e1g1d7d6d2d4c8d7b1c3f8e7c1g5e8g8d4e5c6e5b5d7f6d7g5e7e5f3\r
+e2e4e7e5g1f3b8c6f1b5g8f6e1g1d7d6d2d4c8d7b1c3f8e7f1e1e5d4f3d4c6d4d1d4d7b5c3b5e8g8\r
+e2e4e7e5g1f3b8c6f1b5g8f6e1g1d7d6d2d4c8d7b1c3f8e7f1e1e5d4f3d4e8g8b5c6b7c6c1g5f8e8\r
+e2e4e7e5g1f3b8c6f1b5g8f6e1g1d7d6d2d4c8d7b1c3f8e7f1e1e5d4f3d4e8g8b5f1f8e8f2f3e7f8\r
+e2e4e7e5g1f3b8c6f1b5g8f6e1g1d7d6d2d4c8d7b1c3f8e7f1e1e5d4f3d4e8g8d4c6d7c6b5c6b7c6\r
+e2e4e7e5g1f3b8c6f1b5g8f6e1g1d7d6d2d4c8d7f1e1e5d4f3d4f8e7b1c3e8g8b5c6b7c6c1g5f8e8\r
+e2e4e7e5g1f3b8c6f1b5g8f6e1g1d7d6f1e1f8e7d2d4e5d4f3d4c8d7b1c3e8g8b5c6b7c6c1g5f8e8\r
+e2e4e7e5g1f3b8c6f1b5g8f6e1g1f6e4d2d4e4d6b5c6d7c6d4e5d6f5d1d8e8d8b1c3d8e8b2b3c8e6\r
+e2e4e7e5g1f3b8c6f1b5g8f6e1g1f6e4d2d4e4d6b5c6d7c6d4e5d6f5d1d8e8d8b2b3d8e8c1b2a7a5\r
+e2e4e7e5g1f3b8c6f1b5g8f6e1g1f6e4d2d4e4d6b5c6d7c6d4e5d6f5d1d8e8d8f1d1d8e8b1c3c8e6\r
+e2e4e7e5g1f3b8c6f1b5g8f6e1g1f6e4d2d4e4d6b5c6d7c6d4e5d6f5d1d8e8d8f1d1d8e8b1c3f5e7\r
+e2e4e7e5g1f3b8c6f1b5g8f6e1g1f6e4d2d4e4d6b5c6d7c6d4e5d6f5d1d8e8d8f1d1d8e8b1c3h7h6\r
+e2e4e7e5g1f3b8c6f1b5g8f6e1g1f6e4d2d4f8e7d1e2d7d5f3e5c8d7b5c6d7c6f1e1c6d7f2f3e4d6\r
+e2e4e7e5g1f3b8c6f1b5g8f6e1g1f6e4d2d4f8e7d1e2e4d6b5c6b7c6d4e5d6b7b1c3e8g8f1e1b7c5\r
+e2e4e7e5g1f3b8c6f1b5g8f6e1g1f6e4d2d4f8e7d1e2e4d6b5c6b7c6d4e5d6b7b1c3e8g8f1e1b7c5\r
+e2e4e7e5g1f3b8c6f1b5g8f6e1g1f6e4d2d4f8e7d1e2e4d6b5c6b7c6d4e5d6b7f1e1e8g8b1c3b7c5\r
+e2e4e7e5g1f3b8c6f1b5g8f6e1g1f6e4d2d4f8e7d1e2e4d6b5c6b7c6d4e5d6b7f1e1e8g8b1c3b7c5\r
+e2e4e7e5g1f3b8c6f1b5g8f6e1g1f6e4d2d4f8e7f1e1e4d6b5c6d7c6d4e5d6f5d1d8e7d8b1c3c8e6\r
+e2e4e7e5g1f3b8c6f1b5g8f6e1g1f6e4f1e1e4d6f3e5c6e5e1e5f8e7b1c3e8g8b5d3e7f6e5e3g7g6\r
+e2e4e7e5g1f3b8c6f1b5g8f6e1g1f6e4f1e1e4d6f3e5c6e5e1e5f8e7b5f1e8g8d2d4e7f6e5e1f8e8\r
+e2e4e7e5g1f3b8c6f1b5g8f6e1g1f6e4f1e1e4d6f3e5f8e7b5c6d7c6d1e2c8e6d2d3d6f5b1d2e8g8\r
+e2e4e7e5g1f3b8c6f1b5g8f6e1g1f6e4f1e1e4d6f3e5f8e7b5d3e8g8b1c3c6e5e1e5c7c6b2b3d6e8\r
+e2e4e7e5g1f3b8c6f1b5g8f6e1g1f6e4f1e1e4d6f3e5f8e7b5d3e8g8b1c3c6e5e1e5c7c6b2b3f8e8\r
+e2e4e7e5g1f3b8c6f1b5g8f6e1g1f6e4f1e1e4d6f3e5f8e7b5d3e8g8d1h5f7f5b1c3c6e5e1e5g7g6\r
+e2e4e7e5g1f3b8c6f1b5g8f6e1g1f8c5f3e5f6e4d1e2c6e5d2d4c5e7d4e5e4c5e2g4e8g8c1h6c5e6\r
+e2e4e7e5g1f3b8c6f1b5g8f6e1g1f8e7f1e1d7d6b5c6b7c6d2d4e5d4f3d4c8d7b1c3e8g8b2b3f8e8\r
+e2e4e7e5g1f3b8c6f1b5g8f6e1g1f8e7f1e1d7d6b5c6b7c6d2d4e5d4f3d4c8d7b1c3e8g8d1d3f8e8\r
+e2e4e7e5g1f3b8c6f1b5g8f6e1g1f8e7f1e1d7d6c2c3e8g8d2d4c8d7b5a4d8e8a4c2d7g4c1e3e5d4\r
+e2e4e7e5g1f3b8c6f1b5g8f6e1g1f8e7f1e1d7d6d2d4e5d4f3d4c8d7b1c3e8g8d4f3c6e5b5d7e5f3\r
+e2e4e7e5g1f3b8c6f1c4d7d6d2d4e5d4f3d4g8f6d4c6b7c6b1c3f8e7e1g1e8g8c1f4f6d7f4g3a8b8\r
+e2e4e7e5g1f3b8c6f1c4f8c5b1c3g8f6d2d3d7d6c1e3c5e3f2e3c6a5c4b3a5b3a2b3f6g4d1e2f7f6\r
+e2e4e7e5g1f3b8c6f1c4f8c5b2b4c5b4c2c3b4a5e1g1d7d6d2d4c8d7d1b3d8f6d4e5d6e5f1d1h7h6\r
+e2e4e7e5g1f3b8c6f1c4f8c5b2b4c5b4c2c3b4a5e1g1d7d6d2d4c8d7d1b3d8f6d4e5d6e5f1d1h7h6\r
+e2e4e7e5g1f3b8c6f1c4f8c5b2b4c5b4c2c3b4a5e1g1d7d6d2d4c8g4c4b5e5d4c3d4g4d7c1b2c6e7\r
+e2e4e7e5g1f3b8c6f1c4f8c5b2b4c5b4c2c3b4a5e1g1d7d6d2d4c8g4c4b5e5d4c3d4g4d7c1b2g8f6\r
+e2e4e7e5g1f3b8c6f1c4f8c5b2b4c5b4c2c3b4a5e1g1d7d6d2d4c8g4c4b5e5d4c3d4g4d7c1b2g8f6\r
+e2e4e7e5g1f3b8c6f1c4f8c5b2b4c5b4c2c3b4a5e1g1d7d6d2d4c8g4c4b5e5d4c3d4g4d7c1b2g8f6\r
+e2e4e7e5g1f3b8c6f1c4f8c5b2b4c5b4c2c3b4a5e1g1d7d6d2d4c8g4d1a4e5d4c3d4a7a6c4d5a5b6\r
+e2e4e7e5g1f3b8c6f1c4f8c5b2b4c5b4c2c3b4a5e1g1d7d6d2d4c8g4d1a4g4f3g2f3e5d4c3d4a7a6\r
+e2e4e7e5g1f3b8c6f1c4f8c5b2b4c5b4c2c3b4a5e1g1d8f6d2d4g8e7c1g5f6d6d1b3e8g8f1d1a5b6\r
+e2e4e7e5g1f3b8c6f1c4f8c5b2b4c5b4c2c3b4a5e1g1d8f6d2d4g8e7c1g5f6d6d4d5c6d8d1a4a5b6\r
+e2e4e7e5g1f3b8c6f1c4f8c5b2b4c5b4c2c3b4a5e1g1d8f6d2d4g8e7c1g5f6d6d4d5c6d8d1a4b7b6\r
+e2e4e7e5g1f3b8c6f1c4f8c5b2b4c5b4c2c3b4a5e1g1d8f6d2d4g8e7c1g5f6d6d4d5c6d8d1a4b7b6\r
+e2e4e7e5g1f3b8c6f1c4f8c5b2b4c5b4c2c3b4a5e1g1d8f6d2d4g8e7d1a4a5b6c1g5f6d6b1a3e5d4\r
+e2e4e7e5g1f3b8c6f1c4f8c5b2b4c5b4c2c3b4a5e1g1d8f6d2d4g8e7d4d5c6d8c1g5f6d6d1a4f7f6\r
+e2e4e7e5g1f3b8c6f1c4f8c5b2b4c5b4c2c3b4a5e1g1d8f6d2d4g8e7d4d5c6d8d1a4a5b6c1g5f6d6\r
+e2e4e7e5g1f3b8c6f1c4f8c5b2b4c5b4c2c3b4a5e1g1d8f6d2d4g8e7d4d5c6d8d1a4a5b6c1g5f6d6\r
+e2e4e7e5g1f3b8c6f1c4f8c5b2b4c5b4c2c3b4a5e1g1d8f6d2d4g8e7f3g5c6d8f2f4e5d4c3d4a5b6\r
+e2e4e7e5g1f3b8c6f1c4f8c5b2b4c5b4c2c3b4a5e1g1d8f6d2d4g8h6c1g5f6d6d4d5c6d8d1a4a5b6\r
+e2e4e7e5g1f3b8c6f1c4f8c5b2b4c5b4c2c3b4a5e1g1d8f6d2d4h7h6c4b5g8e7c1a3e5d4e4e5f6e6\r
+e2e4e7e5g1f3b8c6f1c4f8c5b2b4c5b4c2c3b4a5e1g1d8f6d2d4h7h6d1a4a5b6c4b5g8e7c1a3e5d4\r
+e2e4e7e5g1f3b8c6f1c4f8c5c2c3g8f6d2d3a7a6e1g1d7d6f1e1c5a7c4b3e8g8b1d2c8e6d2f1e6b3\r
+e2e4e7e5g1f3b8c6f1c4f8c5c2c3g8f6d2d3d7d6b1d2a7a6e1g1e8g8c4b3c5a7h2h3c8e6b3c2d6d5\r
+e2e4e7e5g1f3b8c6f1c4f8c5c2c3g8f6d2d3d7d6c4b3a7a6b1d2e8g8h2h3c5a7d2f1d6d5d1e2f8e8\r
+e2e4e7e5g1f3b8c6f1c4f8c5c2c3g8f6d2d4e5d4c3d4c5b4b1c3f6e4e1g1b4c3b2c3d7d5c1a3d5c4\r
+e2e4e7e5g1f3b8c6f1c4f8c5c2c3g8f6d2d4e5d4c3d4c5b4b1c3f6e4e1g1b4c3b2c3d7d5c1a3d5c4\r
+e2e4e7e5g1f3b8c6f1c4f8c5c2c3g8f6d2d4e5d4e4e5d7d5c4b5f6e4c3d4c5b6b1c3e8g8c1e3f7f5\r
+e2e4e7e5g1f3b8c6f1c4f8c5c2c3g8f6d2d4e5d4e4e5d7d5c4b5f6e4c3d4c5e7b1c3e8g8b5d3f7f5\r
+e2e4e7e5g1f3b8c6f1c4f8c5d2d3d7d6b1c3g8f6c1g5h7h6g5f6d8f6c3d5f6g6d1e2c8g4c2c3c5b6\r
+e2e4e7e5g1f3b8c6f1c4f8c5d2d3g8f6b1c3d7d6c1e3c5b6d1d2c6a5c4b5c7c6b5a4b6e3f2e3b7b5\r
+e2e4e7e5g1f3b8c6f1c4f8c5d2d3g8f6b1c3d7d6c1g5h7h6g5f6d8f6c3d5f6d8c2c3c6e7d5e3e8g8\r
+e2e4e7e5g1f3b8c6f1c4f8c5d2d3g8f6c1e3c5e3f2e3d7d6e1g1c6a5c4b5c7c6b5a4d8b6d1d2f6g4\r
+e2e4e7e5g1f3b8c6f1c4f8c5d2d3g8f6c2c3d7d6b1d2a7a6c4b3c5a7d2c4h7h6e1g1c6e7b3c2e8g8\r
+e2e4e7e5g1f3b8c6f1c4f8c5d2d3g8f6c2c3d7d6b1d2c6e7d2f1c7c6d1e2e8g8h2h3d6d5c4b3e7g6\r
+e2e4e7e5g1f3b8c6f1c4f8c5d2d3g8f6c2c3d7d6c1e3c5e3f2e3d8e7e1g1c6d8b1d2d8e6d3d4f6g4\r
+e2e4e7e5g1f3b8c6f1c4f8c5e1g1g8f6d2d3d7d6c2c3a7a6c4b3c5a7b1d2e8g8h2h3c8e6f1e1e6b3\r
+e2e4e7e5g1f3b8c6f1c4f8e7d2d3g8f6c4b3d7d5b1d2e8g8e1g1d5e4d3e4e7c5c2c3d8e7b3c2a7a5\r
+e2e4e7e5g1f3b8c6f1c4f8e7d2d3g8f6c4b3d7d6c2c3e8g8e1g1c6a5b3c2c7c5f1e1a5c6b1d2f8e8\r
+e2e4e7e5g1f3b8c6f1c4f8e7d2d4d7d6b1c3g8f6h2h3e8g8e1g1c6d4f3d4e5d4d1d4c7c6a2a4f6d7\r
+e2e4e7e5g1f3b8c6f1c4g8f6d2d3f8e7e1g1e8g8c2c3d7d5e4d5f6d5f1e1c8g4b1d2g8h8a2a4f7f6\r
+e2e4e7e5g1f3b8c6f1c4g8f6f3g5d7d5e4d5c6a5c4b5c7c6d5c6b7c6b5e2h7h6g5h3f8c5e1g1e8g8\r
+e2e4e7e5g1f3b8c6f1c4g8f6f3g5d7d5e4d5c6a5c4b5c7c6d5c6b7c6b5e2h7h6g5h3f8c5e1g1e8g8\r
+e2e4e7e5g1f3b8c6f1c4g8f6f3g5d7d5e4d5c6a5c4b5c7c6d5c6b7c6b5f1h7h6g5h3f8c5d1e2e8g8\r
+e2e4e7e5g1f3b8c6f1c4g8f6f3g5d7d5e4d5c6a5c4b5c7c6d5c6b7c6b5f1h7h6g5h3f8c5d2d3d8b6\r
+e2e4e7e5g1f3b8c6f1c4g8f6f3g5d7d5e4d5c6d4d5d6d8d6c4f7e8e7f7b3c8g4f2f3g4h5b1c3a8e8\r
+e2e4e7e5g1f3d7d6d2d4b8d7b1c3c7c6d4e5d6e5f1c4f8e7e1g1g8f6c1e3b7b5c4d3e8g8a2a4b5b4\r
+e2e4e7e5g1f3d7d6d2d4b8d7f1c4c7c6b1c3f8e7e1g1g8f6a2a4e8g8b2b3d8c7c1b2d7b6c4d3c8g4\r
+e2e4e7e5g1f3d7d6d2d4b8d7f1c4c7c6d4e5d6e5e1g1f8e7b1c3g8f6d1e2e8g8f1d1d8c7a2a3d7c5\r
+e2e4e7e5g1f3d7d6d2d4e5d4f3d4g7g6b1c3f8g7c1f4g8f6d1d2e8g8e1c1f8e8f2f3b8c6d4c6b7c6\r
+e2e4e7e5g1f3d7d6d2d4e5d4f3d4g8f6b1c3f8e7f1e2e8g8e1g1f8e8f1e1e7f8e2f1h7h6c1f4b8d7\r
+e2e4e7e5g1f3g8f6b1c3b8c6d2d4e5d4f3d4f8b4d4c6b7c6f1d3d7d5e4d5c6d5e1g1e8g8c1g5c7c6\r
+e2e4e7e5g1f3g8f6b1c3b8c6g2g3f8c5f1g2d7d6d2d3a7a6c1e3c5e3f2e3c8g4e1g1c6e7h2h3g4f3\r
+e2e4e7e5g1f3g8f6b1c3b8c6g2g3f8c5f1g2d7d6d2d3a7a6c1e3c5e3f2e3c8g4h2h3g4f3d1f3c6e7\r
+e2e4e7e5g1f3g8f6b1c3b8c6g2g3f8c5f1g2d7d6d2d3a7a6c1e3c8g4h2h3g4f3d1f3c6d4f3d1h7h5\r
+e2e4e7e5g1f3g8f6d2d4e5d4e4e5f6e4d1d4d7d5e5d6e4d6b1c3b8c6d4f4d6f5f1b5f8d6f4e4d8e7\r
+e2e4e7e5g1f3g8f6d2d4f6e4f1d3d7d5f3e5b8c6e5c6b7c6e1g1f8d6c2c4e8g8c4c5d6e7b1c3f7f5\r
+e2e4e7e5g1f3g8f6d2d4f6e4f1d3d7d5f3e5b8c6e5c6b7c6e1g1f8e7b1c3e4c3b2c3e8g8f1e1f8e8\r
+e2e4e7e5g1f3g8f6d2d4f6e4f1d3d7d5f3e5b8c6e5c6b7c6e1g1f8e7b1d2e4d2c1d2e8g8f1e1f8e8\r
+e2e4e7e5g1f3g8f6d2d4f6e4f1d3d7d5f3e5b8d7e5d7c8d7e1g1d8h4c2c4e8c8c4c5g7g5f2f3e4f6\r
+e2e4e7e5g1f3g8f6d2d4f6e4f1d3d7d5f3e5b8d7e5d7c8d7e1g1f8d6b1c3d8h4g2g3e4c3b2c3h4g4\r
+e2e4e7e5g1f3g8f6d2d4f6e4f1d3d7d5f3e5b8d7e5d7c8d7e1g1f8d6b1c3e4c3b2c3e8g8d1h5f7f5\r
+e2e4e7e5g1f3g8f6d2d4f6e4f1d3d7d5f3e5b8d7e5d7c8d7e1g1f8e7d1f3e8g8c2c3e7d6b1d2f7f5\r
+e2e4e7e5g1f3g8f6d2d4f6e4f1d3d7d5f3e5f8d6e1g1b8c6e5c6b7c6c2c4e8g8c4c5d6e7b1c3f7f5\r
+e2e4e7e5g1f3g8f6d2d4f6e4f1d3d7d5f3e5f8d6e1g1e8g8c2c4d6e5d4e5b8c6c4d5d8d5d1c2c6b4\r
+e2e4e7e5g1f3g8f6d2d4f6e4f1d3d7d5f3e5f8d6e1g1e8g8c2c4d6e5d4e5b8c6c4d5d8d5d1c2c6b4\r
+e2e4e7e5g1f3g8f6d2d4f6e4f1d3d7d5f3e5f8e7b1d2e4d2c1d2b8c6e5c6b7c6e1g1e8g8d1h5g7g6\r
+e2e4e7e5g1f3g8f6f3e5d7d6e5f3f6e4c2c4f8e7d2d4d6d5f1d3b8c6c4d5d8d5e1g1c8g4b1c3e4c3\r
+e2e4e7e5g1f3g8f6f3e5d7d6e5f3f6e4d1e2d8e7d2d3e4f6c1g5e7e2f1e2f8e7b1c3c7c6e1c1b8a6\r
+e2e4e7e5g1f3g8f6f3e5d7d6e5f3f6e4d1e2d8e7d2d3e4f6c1g5e7e2f1e2f8e7b1c3c7c6e1c1b8a6\r
+e2e4e7e5g1f3g8f6f3e5d7d6e5f3f6e4d1e2d8e7d2d3e4f6c1g5e7e2f1e2f8e7b1c3c7c6e1c1b8a6\r
+e2e4e7e5g1f3g8f6f3e5d7d6e5f3f6e4d2d4d6d5f1d3b8c6e1g1c8g4c2c4e4f6b1c3g4f3d1f3c6d4\r
+e2e4e7e5g1f3g8f6f3e5d7d6e5f3f6e4d2d4d6d5f1d3b8c6e1g1c8g4c2c4e4f6b1c3g4f3d1f3c6d4\r
+e2e4e7e5g1f3g8f6f3e5d7d6e5f3f6e4d2d4d6d5f1d3b8c6e1g1c8g4c2c4e4f6c4d5g4f3d1f3d8d5\r
+e2e4e7e5g1f3g8f6f3e5d7d6e5f3f6e4d2d4d6d5f1d3b8c6e1g1c8g4c2c4f8e7c4d5d8d5b1c3e4c3\r
+e2e4e7e5g1f3g8f6f3e5d7d6e5f3f6e4d2d4d6d5f1d3b8c6e1g1c8g4f1e1f8e7c2c4e4f6c4d5g4f3\r
+e2e4e7e5g1f3g8f6f3e5d7d6e5f3f6e4d2d4d6d5f1d3b8c6e1g1f8e7c2c4c6b4d3e2c8e6b1c3e8g8\r
+e2e4e7e5g1f3g8f6f3e5d7d6e5f3f6e4d2d4d6d5f1d3b8c6e1g1f8e7c2c4c6b4d3e2e8g8b1c3c8e6\r
+e2e4e7e5g1f3g8f6f3e5d7d6e5f3f6e4d2d4d6d5f1d3b8c6e1g1f8e7c2c4c6b4d3e2e8g8b1c3c8e6\r
+e2e4e7e5g1f3g8f6f3e5d7d6e5f3f6e4d2d4d6d5f1d3b8c6e1g1f8e7c2c4e4f6b1c3e8g8h2h3d5c4\r
+e2e4e7e5g1f3g8f6f3e5d7d6e5f3f6e4d2d4d6d5f1d3f8d6e1g1e8g8c2c4c7c6c4d5c6d5b1c3e4c3\r
+e2e4e7e5g1f3g8f6f3e5d7d6e5f3f6e4d2d4d6d5f1d3f8d6e1g1e8g8c2c4c7c6d1c2b8a6a2a3c8g4\r
+e2e4e7e5g1f3g8f6f3e5d7d6e5f3f6e4d2d4d6d5f1d3f8d6e1g1e8g8c2c4c7c6d1c2b8a6a2a3f7f5\r
+e2e4e7e5g1f3g8f6f3e5d7d6e5f3f6e4d2d4d6d5f1d3f8e7e1g1b8c6c2c4c6b4c4d5b4d3d1d3d8d5\r
+e2e4e7e5g1f3g8f6f3e5d7d6e5f3f6e4d2d4d6d5f1d3f8e7e1g1b8c6c2c4c6b4c4d5b4d3d1d3d8d5\r
+e2e4e7e5g1f3g8f6f3e5d7d6e5f3f6e4d2d4d6d5f1d3f8e7e1g1b8c6c2c4c6b4d3e2d5c4e2c4e8g8\r
+e2e4e7e5g1f3g8f6f3e5d7d6e5f3f6e4d2d4d6d5f1d3f8e7e1g1b8c6f1e1c8f5d3b5e7f6b1d2e8g8\r
+e2e4e7e5g1f3g8f6f3e5d7d6e5f3f6e4d2d4d6d5f1d3f8e7e1g1b8c6f1e1c8g4c2c3f7f5d1b3e8g8\r
+e2e4e7e5g1f3g8f6f3e5d7d6e5f3f6e4d2d4d6d5f1d3f8e7e1g1b8c6f1e1c8g4c2c4e4f6b1c3d5c4\r
+e2e4e7e5g1f3g8f6f3e5d7d6e5f3f6e4d2d4d6d5f1d3f8e7e1g1b8c6f1e1c8g4c2c4e4f6c4d5g4f3\r
+e2e4e7e5g1f3g8f6f3e5d7d6e5f3f6e4d2d4d6d5f1d3f8e7e1g1c8f5f1e1b8c6b1d2e4d2d1d2f5d3\r
+e2e4e7e5g1f3g8f6f3e5d7d6e5f3f6e4d2d4d6d5f1d3f8e7e1g1c8f5f1e1b8c6b1d2e4d2d1d2f5d3\r
+e2e4e7e5g1f3g8f6f3e5d7d6e5f3f6e4d2d4e4f6f1d3f8e7h2h3e8g8e1g1c7c6f1e1b8d7c1f4f8e8\r
+e2e4e7e5g1f3g8f6f3e5d7d6e5f3f6e4d2d4f8e7f1d3d6d5e1g1e8g8c2c4e4f6h2h3d5c4d3c4b8d7\r
+e2e4e7e6d1e2c7c5f2f4b8c6g1f3g8f6g2g3d7d5e4e5f6d7f1g2c6d4f3d4c5d4e1g1d7b8d2d3b8c6\r
+e2e4e7e6d1e2c7c5f2f4d7d5e4d5d8d5b1c3d5d8g1f3b8c6g2g3g8f6f1g2f8e7e1g1e8g8d2d3c8d7\r
+e2e4e7e6d2d3c7c5b1d2b8c6g2g3g7g6f1g2f8g7g1f3g8e7e1g1e8g8c2c3d7d6a2a4f7f5d1b3d6d5\r
+e2e4e7e6d2d3c7c5g2g3b8c6f1g2g7g6g1f3f8g7e1g1g8e7c2c3e6e5c1e3d7d6h2h3e8g8b1a3b7b6\r
+e2e4e7e6d2d3d7d5b1d2b8c6g1f3g8f6g2g3f8c5f1g2d5e4d3e4e6e5e1g1e8g8c2c3a7a5h2h3b7b6\r
+e2e4e7e6d2d4d7d5b1c3b8c6g1f3g8f6e4d5e6d5f1b5c8g4h2h3g4f3d1f3f8e7c1g5a7a6b5c6b7c6\r
+e2e4e7e6d2d4d7d5b1c3d5e4c3e4b8d7f1d3f8e7g1f3g8f6e4f6d7f6e1g1e8g8f3e5c7c5d4c5d8d5\r
+e2e4e7e6d2d4d7d5b1c3d5e4c3e4b8d7f1d3g8f6e4f6d7f6g1f3c7c5d4c5f8c5e1g1e8g8c1g5c5e7\r
+e2e4e7e6d2d4d7d5b1c3d5e4c3e4b8d7g1f3f8e7f1d3g8f6e1g1e8g8d1e2b7b6c1f4c8b7a1d1d8c8\r
+e2e4e7e6d2d4d7d5b1c3d5e4c3e4b8d7g1f3g8f6e4f6d7f6c1g5f8e7f1d3c7c5d4c5d8a5c2c3a5c5\r
+e2e4e7e6d2d4d7d5b1c3d5e4c3e4b8d7g1f3g8f6e4g3c7c5f1e2c5d4f3d4f8c5d4b3c5e7e1g1e8g8\r
+e2e4e7e6d2d4d7d5b1c3d5e4c3e4b8d7g1f3g8f6f1d3b7b6e4f6d7f6f3e5a7a6e1g1c8b7c2c3f8e7\r
+e2e4e7e6d2d4d7d5b1c3d5e4c3e4g8f6e4f6d8f6g1f3c8d7c1g5f6g6f1d3f7f5h2h4b8c6d1e2h7h6\r
+e2e4e7e6d2d4d7d5b1c3f8b4a2a3b4c3b2c3d5e4d1g4g8f6g4g7h8g8g7h6c7c5g1e2b8c6d4c5g8g6\r
+e2e4e7e6d2d4d7d5b1c3f8b4a2a3b4c3b2c3d5e4d1g4g8f6g4g7h8g8g7h6c7c5g1e2b8d7e2g3g8g6\r
+e2e4e7e6d2d4d7d5b1c3f8b4a2a3b4c3b2c3d5e4d1g4g8f6g4g7h8g8g7h6c7c5g1e2g8g6h6d2b8d7\r
+e2e4e7e6d2d4d7d5b1c3f8b4a2a3b4c3b2c3d5e4d1g4g8f6g4g7h8g8g7h6c7c5g1e2g8g6h6e3b8c6\r
+e2e4e7e6d2d4d7d5b1c3f8b4a2a3b4c3b2c3d5e4d1g4g8f6g4g7h8g8g7h6c7c5g1e2g8g6h6e3b8c6\r
+e2e4e7e6d2d4d7d5b1c3f8b4a2a3b4c3b2c3d5e4d1g4g8f6g4g7h8g8g7h6g8g6h6d2b8c6g1e2b7b6\r
+e2e4e7e6d2d4d7d5b1c3f8b4c1d2c7c5a2a3b4c3d2c3g8f6d4c5f6e4c3g7h8g8g7d4b8c6g1f3f7f6\r
+e2e4e7e6d2d4d7d5b1c3f8b4c1d2d5e4d1g4d8d4e1c1g8f6g4g7h8g8g7h6b4f8h6h4g8g4h4h3d4f2\r
+e2e4e7e6d2d4d7d5b1c3f8b4c1d2d5e4d1g4g8f6g4g7h8g8g7h6b8c6e1c1g8g6h6h4b4c3d2c3d8d5\r
+e2e4e7e6d2d4d7d5b1c3f8b4d1g4g8f6g4g7h8g8g7h6g8g6h6e3f6e4f1d3f7f5g1e2c7c5d3e4f5e4\r
+e2e4e7e6d2d4d7d5b1c3f8b4e4d5e6d5f1d3b8c6g1e2g8e7e1g1c8f5d3f5e7f5d1d3d8d7c3d1e8g8\r
+e2e4e7e6d2d4d7d5b1c3f8b4e4e5b7b6d1g4b4f8g1f3c8a6c3b5d8d7a2a4g8e7f1e2e7f5c1f4h7h5\r
+e2e4e7e6d2d4d7d5b1c3f8b4e4e5c7c5a2a3b4a5b2b4c5d4c3b5a5c7f2f4c8d7g1f3d7b5f1b5b8c6\r
+e2e4e7e6d2d4d7d5b1c3f8b4e4e5c7c5a2a3b4a5b2b4c5d4c3b5a5c7f2f4g8e7g1f3b8c6f1d3c7b8\r
+e2e4e7e6d2d4d7d5b1c3f8b4e4e5c7c5a2a3b4a5b2b4c5d4c3b5a5c7f2f4g8e7g1f3c8d7b5d4b8c6\r
+e2e4e7e6d2d4d7d5b1c3f8b4e4e5c7c5a2a3b4a5b2b4c5d4d1g4g8e7b4a5d4c3g4g7h8g8g7h7b8c6\r
+e2e4e7e6d2d4d7d5b1c3f8b4e4e5c7c5a2a3b4a5b2b4c5d4d1g4g8e7b4a5d4c3g4g7h8g8g7h7b8d7\r
+e2e4e7e6d2d4d7d5b1c3f8b4e4e5c7c5a2a3b4a5c1d2b8c6c3b5c6d4b5d4a5d2d1d2c5d4d2d4g8e7\r
+e2e4e7e6d2d4d7d5b1c3f8b4e4e5c7c5a2a3b4a5c1d2b8c6c3b5c6d4d2a5d8a5b2b4a5b6b5d4c5d4\r
+e2e4e7e6d2d4d7d5b1c3f8b4e4e5c7c5a2a3b4a5c1d2c5d4c3b5b8c6g1f3f7f6b5d4c6d4f3d4a5d2\r
+e2e4e7e6d2d4d7d5b1c3f8b4e4e5c7c5a2a3b4c3b2c3d8a5c1d2a5a4d1g4e8f8g4d1g8e7g1f3b7b6\r
+e2e4e7e6d2d4d7d5b1c3f8b4e4e5c7c5a2a3b4c3b2c3d8a5c1d2a5a4d1g4g7g6g4d1c5d4a1b1d4d3\r
+e2e4e7e6d2d4d7d5b1c3f8b4e4e5c7c5a2a3b4c3b2c3d8c7d1g4f7f5g4g3g8e7g3g7h8g8g7h7c5d4\r
+e2e4e7e6d2d4d7d5b1c3f8b4e4e5c7c5a2a3b4c3b2c3d8c7d1g4f7f5g4g3g8e7g3g7h8g8g7h7c5d4\r
+e2e4e7e6d2d4d7d5b1c3f8b4e4e5c7c5a2a3b4c3b2c3d8c7d1g4f7f5g4g3g8e7g3g7h8g8g7h7c5d4\r
+e2e4e7e6d2d4d7d5b1c3f8b4e4e5c7c5a2a3b4c3b2c3d8c7d1g4f7f6g1f3b8c6g4g3c7f7d4c5g8e7\r
+e2e4e7e6d2d4d7d5b1c3f8b4e4e5c7c5a2a3b4c3b2c3g8e7a3a4b8c6g1f3c8d7f1e2a8c8e1g1e8g8\r
+e2e4e7e6d2d4d7d5b1c3f8b4e4e5c7c5a2a3b4c3b2c3g8e7a3a4b8c6g1f3d8a5d1d2c8d7c1a3c5d4\r
+e2e4e7e6d2d4d7d5b1c3f8b4e4e5c7c5a2a3b4c3b2c3g8e7a3a4b8c6g1f3d8a5d1d2c8d7f1e2a8c8\r
+e2e4e7e6d2d4d7d5b1c3f8b4e4e5c7c5a2a3b4c3b2c3g8e7a3a4c8d7g1f3d8a5c1d2b8c6f1e2f7f6\r
+e2e4e7e6d2d4d7d5b1c3f8b4e4e5c7c5a2a3b4c3b2c3g8e7d1g4c5d4c3d4d8c7e1d1e8g8g1f3f7f6\r
+e2e4e7e6d2d4d7d5b1c3f8b4e4e5c7c5a2a3b4c3b2c3g8e7d1g4c5d4g4g7h8g8g7h7d8c7g1e2b8c6\r
+e2e4e7e6d2d4d7d5b1c3f8b4e4e5c7c5a2a3b4c3b2c3g8e7d1g4d8c7g4g7h8g8g7h7c5d4g1e2b8c6\r
+e2e4e7e6d2d4d7d5b1c3f8b4e4e5c7c5a2a3b4c3b2c3g8e7g1f3b7b6a3a4c8a6f1a6b8a6e1g1a6b8\r
+e2e4e7e6d2d4d7d5b1c3f8b4e4e5c7c5a2a3b4c3b2c3g8e7g1f3b7b6a3a4c8a6f1a6b8a6e1g1a6b8\r
+e2e4e7e6d2d4d7d5b1c3f8b4e4e5c7c5a2a3b4c3b2c3g8e7g1f3b7b6a3a4c8a6f1a6b8a6e1g1a6b8\r
+e2e4e7e6d2d4d7d5b1c3f8b4e4e5c7c5a2a3b4c3b2c3g8e7g1f3b7b6f1b5c8d7b5d3d7a4h2h4h7h6\r
+e2e4e7e6d2d4d7d5b1c3f8b4e4e5c7c5a2a3b4c3b2c3g8e7g1f3c8d7d4c5d7a4a1b1b8d7c1e3d8a5\r
+e2e4e7e6d2d4d7d5b1c3f8b4e4e5c7c5a2a3b4c3b2c3g8e7g1f3c8d7d4c5d8c7f1d3d7a4a1b1b8d7\r
+e2e4e7e6d2d4d7d5b1c3f8b4e4e5c7c5a2a3b4c3b2c3g8e7g1f3c8d7d4c5d8c7f1d3d7a4c1e3b8d7\r
+e2e4e7e6d2d4d7d5b1c3f8b4e4e5c7c5a2a3b4c3b2c3g8e7g1f3c8d7d4c5d8c7f1d3d7a4e1g1b8d7\r
+e2e4e7e6d2d4d7d5b1c3f8b4e4e5c7c5a2a3b4c3b2c3g8e7h2h4d8a5c1d2c5d4c3d4a5a4c2c3a4d1\r
+e2e4e7e6d2d4d7d5b1c3f8b4e4e5g8e7a2a3b4c3b2c3c7c5a3a4b8c6g1f3c8d7f1d3d8c7e1g1c5c4\r
+e2e4e7e6d2d4d7d5b1c3f8b4e4e5g8e7a2a3b4c3b2c3c7c5g1f3b7b6f3g5h7h6d1h5g7g6h5h3d8c7\r
+e2e4e7e6d2d4d7d5b1c3f8b4e4e5g8e7a2a3b4c3b2c3c7c5g1f3d8a5c1d2b8c6f1e2c5d4c3d4a5a4\r
+e2e4e7e6d2d4d7d5b1c3f8b4f1d3d5e4d3e4c7c5g1e2g8f6e4f3c5d4d1d4d8d4e2d4a7a6e1g1b8d7\r
+e2e4e7e6d2d4d7d5b1c3f8b4g1e2d5e4a2a3b4e7c3e4b8c6c1e3g8f6e2c3e8g8e4g3b7b6f1e2c8b7\r
+e2e4e7e6d2d4d7d5b1c3f8b4g1e2d5e4a2a3b4e7c3e4b8c6g2g4b7b6f1g2c8b7c2c3g8f6e2g3e8g8\r
+e2e4e7e6d2d4d7d5b1c3g8f6c1g5d5e4c3e4b8d7e4f6d7f6g1f3c7c5d1d3f8e7g5f6e7f6d3b5c8d7\r
+e2e4e7e6d2d4d7d5b1c3g8f6c1g5d5e4c3e4b8d7e4f6d7f6g1f3c7c5f1c4c5d4e1g1f8e7d1e2h7h6\r
+e2e4e7e6d2d4d7d5b1c3g8f6c1g5d5e4c3e4b8d7e4f6d7f6g1f3c7c5f1c4c5d4e1g1f8e7d1e2h7h6\r
+e2e4e7e6d2d4d7d5b1c3g8f6c1g5d5e4c3e4b8d7e4f6d7f6g1f3h7h6g5h4c7c5f1b5c8d7b5d7d8d7\r
+e2e4e7e6d2d4d7d5b1c3g8f6c1g5d5e4c3e4b8d7e4f6d7f6g1f3h7h6g5h4g7g6f1c4f8g7e1g1e8g8\r
+e2e4e7e6d2d4d7d5b1c3g8f6c1g5d5e4c3e4b8d7g1f3f8e7e4f6e7f6g5f6d8f6d1d2e8g8d2g5f6g5\r
+e2e4e7e6d2d4d7d5b1c3g8f6c1g5d5e4c3e4b8d7g1f3f8e7e4f6e7f6h2h4e8g8d1e2c7c5e2e3d8a5\r
+e2e4e7e6d2d4d7d5b1c3g8f6c1g5d5e4c3e4f8e7g5f6e7f6c2c3b8d7g1f3e8g8f1d3e6e5d1c2e5d4\r
+e2e4e7e6d2d4d7d5b1c3g8f6c1g5d5e4c3e4f8e7g5f6e7f6g1f3b8d7d1d2f6e7e1c1d7f6f1d3e8g8\r
+e2e4e7e6d2d4d7d5b1c3g8f6c1g5d5e4c3e4f8e7g5f6e7f6g1f3b8d7d1e2e8g8e1c1f6e7c1b1b7b6\r
+e2e4e7e6d2d4d7d5b1c3g8f6c1g5d5e4c3e4f8e7g5f6e7f6g1f3b8d7f1c4e8g8d1e2d7b6c4b3c8d7\r
+e2e4e7e6d2d4d7d5b1c3g8f6c1g5d5e4c3e4f8e7g5f6e7f6g1f3b8d7f1c4e8g8d1e2d7b6c4b3c8d7\r
+e2e4e7e6d2d4d7d5b1c3g8f6c1g5d5e4c3e4f8e7g5f6e7f6g1f3b8d7f1d3c7c5d4c5d7c5d3b5e8e7\r
+e2e4e7e6d2d4d7d5b1c3g8f6c1g5d5e4c3e4f8e7g5f6e7f6g1f3c8d7d1d2d7c6e4f6d8f6f3e5e8g8\r
+e2e4e7e6d2d4d7d5b1c3g8f6c1g5d5e4c3e4f8e7g5f6g7f6g1f3b7b6f1c4c8b7d1e2c7c6e1c1d8c7\r
+e2e4e7e6d2d4d7d5b1c3g8f6c1g5d5e4c3e4f8e7g5f6g7f6g1f3b7b6f1c4c8b7d1e2c7c6e1c1d8c7\r
+e2e4e7e6d2d4d7d5b1c3g8f6c1g5d5e4c3e4f8e7g5f6g7f6g1f3b7b6f1c4c8b7d1e2c7c6e1c1d8c7\r
+e2e4e7e6d2d4d7d5b1c3g8f6c1g5d5e4c3e4f8e7g5f6g7f6g1f3b7b6f1d3c8b7d1e2c7c6e1g1b8d7\r
+e2e4e7e6d2d4d7d5b1c3g8f6c1g5d5e4c3e4f8e7g5f6g7f6g1f3f6f5e4c3c7c6g2g3b8d7f1g2d8c7\r
+e2e4e7e6d2d4d7d5b1c3g8f6c1g5d5e4c3e4f8e7g5f6g7f6g2g3f6f5e4c3e7f6g1e2b8c6d4d5e6d5\r
+e2e4e7e6d2d4d7d5b1c3g8f6c1g5f8b4e4d5d8d5g1f3c7c5g5f6g7f6d1d2b4c3d2c3b8d7a1d1h8g8\r
+e2e4e7e6d2d4d7d5b1c3g8f6c1g5f8b4e4d5d8d5g5f6g7f6d1d2b4c3d2c3b8c6g1f3d5e4e1d2c8d7\r
+e2e4e7e6d2d4d7d5b1c3g8f6c1g5f8b4e4d5d8d5g5f6g7f6d1d2b4c3d2c3b8c6g1f3d5e4e1d2c8d7\r
+e2e4e7e6d2d4d7d5b1c3g8f6c1g5f8b4e4d5d8d5g5f6g7f6d1d2b4c3d2c3b8c6g1f3h8g8e1c1d5a2\r
+e2e4e7e6d2d4d7d5b1c3g8f6c1g5f8b4e4e5h7h6g5d2b4c3b2c3f6e4d1g4e8f8g1f3c7c5f1d3e4d2\r
+e2e4e7e6d2d4d7d5b1c3g8f6c1g5f8b4e4e5h7h6g5d2b4c3b2c3f6e4d1g4g7g6f1d3e4d2e1d2c7c5\r
+e2e4e7e6d2d4d7d5b1c3g8f6c1g5f8b4e4e5h7h6g5d2b4c3b2c3f6e4d1g4g7g6g1f3c7c5d4c5b8d7\r
+e2e4e7e6d2d4d7d5b1c3g8f6c1g5f8b4e4e5h7h6g5d2b4c3d2c3f6e4c3a5e8g8f1d3b8c6a5c3e4c3\r
+e2e4e7e6d2d4d7d5b1c3g8f6c1g5f8b4f1d3d5e4d3e4c7c5d4c5b4c3b2c3d8a5g5f6g7f6d1d4e6e5\r
+e2e4e7e6d2d4d7d5b1c3g8f6c1g5f8b4f1d3d5e4d3e4c7c5d4c5d8d1a1d1b8d7g5f6d7f6e4f3b4c5\r
+e2e4e7e6d2d4d7d5b1c3g8f6c1g5f8e7e4e5f6d7h2h4c7c5g5e7d8e7c3b5e8g8b5c7c5d4c7a8f7f6\r
+e2e4e7e6d2d4d7d5b1c3g8f6e4e5f6d7c3e2c7c5c2c3b8c6f2f4b7b5g1f3b5b4f4f5b4c3f5e6f7e6\r
+e2e4e7e6d2d4d7d5b1c3g8f6e4e5f6d7f2f4c7c5d4c5f8c5d1g4e8g8f1d3f7f5g4h3c5g1h1g1d7c5\r
+e2e4e7e6d2d4d7d5b1c3g8f6e4e5f6d7f2f4c7c5g1f3b8c6c1e3a7a6d1d2b7b5h2h4c8b7h4h5b5b4\r
+e2e4e7e6d2d4d7d5b1c3g8f6e4e5f6d7f2f4c7c5g1f3b8c6c1e3c5d4f3d4d7c5d1d2a7a6e1c1d8a5\r
+e2e4e7e6d2d4d7d5b1c3g8f6e4e5f6d7f2f4c7c5g1f3b8c6c1e3c5d4f3d4f8c5d1d2c5d4e3d4c6d4\r
+e2e4e7e6d2d4d7d5b1c3g8f6e4e5f6d7f2f4c7c5g1f3b8c6c1e3c5d4f3d4f8c5d1d2c5d4e3d4c6d4\r
+e2e4e7e6d2d4d7d5b1c3g8f6e4e5f6d7f2f4c7c5g1f3b8c6c1e3c5d4f3d4f8c5d1d2c5d4e3d4c6d4\r
+e2e4e7e6d2d4d7d5b1c3g8f6e4e5f6d7f2f4c7c5g1f3b8c6c1e3d8b6c3a4b6a5c2c3c5d4b2b4c6b4\r
+e2e4e7e6d2d4d7d5b1c3g8f6e4e5f6d7f2f4c7c5g1f3b8c6c1e3d8b6c3a4b6a5c2c3c5d4b2b4c6b4\r
+e2e4e7e6d2d4d7d5b1c3g8f6e4e5f6d7g1f3c7c5d4c5b8c6c1f4f8c5f1d3f7f6e5f6d7f6e1g1e8g8\r
+e2e4e7e6d2d4d7d5b1c3g8f6f1d3c7c5e4d5c5d4d3b5c8d7b5d7d8d7d5e6d7e6c3e2b8c6g1f3f8b4\r
+e2e4e7e6d2d4d7d5b1c3g8f6f1d3c7c5g1f3c5c4d3e2d5e4f3e5f8d6e1g1a7a6e5c4h7h6f2f3e4f3\r
+e2e4e7e6d2d4d7d5b1c3g8f6f1d3c7c5g1f3d5e4c3e4c5d4e4f6g7f6f3d4c8d7c1e3b8c6d3e4d8a5\r
+e2e4e7e6d2d4d7d5b1d2a7a6g1f3c7c5e4d5e6d5f1e2c5d4e1g1f8d6d2b3b8c6b3d4g8e7d4c6b7c6\r
+e2e4e7e6d2d4d7d5b1d2a7a6g1f3c7c5e4d5e6d5f1e2g8f6e1g1f8e7d4c5e7c5d2b3c5a7c1g5b8d7\r
+e2e4e7e6d2d4d7d5b1d2a7a6g1f3c7c5e4d5e6d5f1e2g8f6e1g1f8e7d4c5e7c5d2b3c5a7c1g5b8d7\r
+e2e4e7e6d2d4d7d5b1d2a7a6g1f3c7c5e4d5e6d5f1e2g8f6e1g1f8e7d4c5e7c5d2b3c5a7c1g5e8g8\r
+e2e4e7e6d2d4d7d5b1d2a7a6g1f3c7c5e4d5e6d5f1e2g8f6e1g1f8e7d4c5e7c5d2b3c5d6c1g5e8g8\r
+e2e4e7e6d2d4d7d5b1d2c7c5d4c5f8c5f1d3g8e7g1e2e8g8e1g1b8c6a2a3c6e5d2b3c5b6e2g3e5d3\r
+e2e4e7e6d2d4d7d5b1d2c7c5e4d5d8d5g1f3c5d4f1c4d5d6e1g1g8f6d2b3b8c6b3d4c6d4f3d4f8e7\r
+e2e4e7e6d2d4d7d5b1d2c7c5e4d5d8d5g1f3c5d4f1c4d5d6e1g1g8f6d2b3b8c6f1e1a7a6a2a4f8e7\r
+e2e4e7e6d2d4d7d5b1d2c7c5e4d5d8d5g1f3c5d4f1c4d5d8e1g1a7a6d2b3b8c6b3d4c6d4d1d4d8d4\r
+e2e4e7e6d2d4d7d5b1d2c7c5e4d5d8d5g1f3c5d4f1c4d5d8e1g1b8c6d2b3a7a6b3d4c6d4f3d4d8c7\r
+e2e4e7e6d2d4d7d5b1d2c7c5e4d5e6d5f1b5b8c6d1e2d8e7d4c5e7e2g1e2f8c5d2b3c5b6b3d4c8d7\r
+e2e4e7e6d2d4d7d5b1d2c7c5e4d5e6d5f1b5b8c6d1e2d8e7d4c5e7e2g1e2f8c5d2b3c5b6c1d2g8e7\r
+e2e4e7e6d2d4d7d5b1d2c7c5e4d5e6d5f1b5b8c6g1f3c5d4d1e2d8e7f3d4e7e2d4e2g8f6c2c3f8c5\r
+e2e4e7e6d2d4d7d5b1d2c7c5e4d5e6d5f1b5b8c6g1f3c5d4d1e2d8e7f3d4e7e2e1e2c8d7d2f3c6d4\r
+e2e4e7e6d2d4d7d5b1d2c7c5e4d5e6d5f1b5b8c6g1f3c5d4d1e2d8e7f3d4e7e2e1e2c8d7d2f3g8f6\r
+e2e4e7e6d2d4d7d5b1d2c7c5e4d5e6d5f1b5b8c6g1f3c5d4f3d4c8d7d2f3g8f6e1g1f8e7f1e1e8g8\r
+e2e4e7e6d2d4d7d5b1d2c7c5e4d5e6d5f1b5c8d7b5d7b8d7g1e2f8d6e1g1g8e7d2f3c5c4c1f4d8c7\r
+e2e4e7e6d2d4d7d5b1d2c7c5e4d5e6d5f1b5c8d7b5d7b8d7g1e2f8d6e1g1g8f6d2f3e8g8d4c5d7c5\r
+e2e4e7e6d2d4d7d5b1d2c7c5e4d5e6d5f1b5c8d7d1e2d8e7b5d7b8d7d4c5d7c5d2b3e7e2g1e2c5b3\r
+e2e4e7e6d2d4d7d5b1d2c7c5e4d5e6d5f1b5c8d7d1e2d8e7b5d7b8d7d4c5d7c5d2b3e7e2g1e2c5b3\r
+e2e4e7e6d2d4d7d5b1d2c7c5e4d5e6d5f1b5c8d7d1e2f8e7d4c5g8f6b5d7b8d7d2b3e8g8g1h3f8e8\r
+e2e4e7e6d2d4d7d5b1d2c7c5e4d5e6d5f1b5c8d7d1e2f8e7d4c5g8f6d2b3e8g8c1e3f8e8g1f3e7c5\r
+e2e4e7e6d2d4d7d5b1d2c7c5e4d5e6d5f1b5c8d7d1e2f8e7d4c5g8f6g1f3e8g8d2b3f8e8c1e3e7c5\r
+e2e4e7e6d2d4d7d5b1d2c7c5e4d5e6d5f1b5c8d7d1e2f8e7d4c5g8f6g1f3e8g8e1g1f8e8d2b3e7c5\r
+e2e4e7e6d2d4d7d5b1d2c7c5e4d5e6d5g1f3b8c6f1b5f8d6d4c5d6c5e1g1g8e7d2b3c5d6c2c3c8g4\r
+e2e4e7e6d2d4d7d5b1d2c7c5e4d5e6d5g1f3b8c6f1b5f8d6d4c5d6c5e1g1g8e7d2b3c5d6c2c3c8g4\r
+e2e4e7e6d2d4d7d5b1d2c7c5e4d5e6d5g1f3b8c6f1b5f8d6d4c5d6c5e1g1g8e7d2b3c5d6f1e1e8g8\r
+e2e4e7e6d2d4d7d5b1d2c7c5e4d5e6d5g1f3b8c6f1b5f8d6d4c5d6c5e1g1g8e7d2b3c5d6f1e1e8g8\r
+e2e4e7e6d2d4d7d5b1d2c7c5e4d5e6d5g1f3b8c6f1b5f8d6d4c5d6c5e1g1g8e7d2b3c5d6f1e1e8g8\r
+e2e4e7e6d2d4d7d5b1d2c7c5e4d5e6d5g1f3b8c6f1b5f8d6d4c5d6c5e1g1g8e7d2b3c5d6f1e1e8g8\r
+e2e4e7e6d2d4d7d5b1d2c7c5e4d5e6d5g1f3b8c6f1b5f8d6d4c5d6c5e1g1g8e7f1e1e8g8d2b3c5d6\r
+e2e4e7e6d2d4d7d5b1d2c7c5e4d5e6d5g1f3b8c6f1b5f8d6e1g1c5d4d2b3g8e7b3d4e8g8c2c3c8g4\r
+e2e4e7e6d2d4d7d5b1d2c7c5e4d5e6d5g1f3b8c6f1b5f8d6e1g1c5d4d2b3g8e7b3d4e8g8c2c3c8g4\r
+e2e4e7e6d2d4d7d5b1d2c7c5e4d5e6d5g1f3b8c6f1b5f8d6e1g1c5d4d2b3g8e7b3d4e8g8c2c3c8g4\r
+e2e4e7e6d2d4d7d5b1d2c7c5e4d5e6d5g1f3b8c6f1b5f8d6e1g1c5d4d2b3g8e7b3d4e8g8c2c3c8g4\r
+e2e4e7e6d2d4d7d5b1d2c7c5e4d5e6d5g1f3b8c6f1b5f8d6e1g1g8e7d4c5d6c5d2b3c5d6b3d4e8g8\r
+e2e4e7e6d2d4d7d5b1d2c7c5e4d5e6d5g1f3b8c6f1b5f8d6e1g1g8e7d4c5d6c5d2b3c5d6c1g5e8g8\r
+e2e4e7e6d2d4d7d5b1d2c7c5e4d5e6d5g1f3g8f6f1b5c8d7b5d7b8d7e1g1f8e7d4c5d7c5d2b3c5e4\r
+e2e4e7e6d2d4d7d5b1d2c7c5e4d5e6d5g1f3g8f6f1b5c8d7b5d7b8d7e1g1f8e7d4c5d7c5d2b3c5e4\r
+e2e4e7e6d2d4d7d5b1d2c7c5e4d5e6d5g1f3g8f6f1b5c8d7b5d7b8d7e1g1f8e7d4c5d7c5f3d4e8g8\r
+e2e4e7e6d2d4d7d5b1d2c7c5g1f3b8c6e4d5e6d5f1b5d8e7b5e2c5d4e1g1e7d8d2b3f8d6b3d4g8e7\r
+e2e4e7e6d2d4d7d5b1d2c7c5g1f3b8c6e4d5e6d5f1b5f8d6d4c5d6c5d2b3c5b6e1g1g8e7f1e1e8g8\r
+e2e4e7e6d2d4d7d5b1d2c7c5g1f3b8c6e4d5e6d5f1b5f8d6e1g1g8e7d4c5d6c5d2b3c5b6f1e1e8g8\r
+e2e4e7e6d2d4d7d5b1d2c7c5g1f3c5d4e4d5d8d5f1c4d5d6e1g1b8c6d2b3g8f6b3d4c6d4f3d4a7a6\r
+e2e4e7e6d2d4d7d5b1d2d5e4d2e4b8d7g1f3g8f6e4f6d7f6f1d3f8e7f3e5c7c6c2c3h7h6d1e2e8g8\r
+e2e4e7e6d2d4d7d5b1d2d5e4d2e4f8e7g1f3g8f6f1d3b8d7e1g1e8g8d1e2b7b6e4f6d7f6c2c4c8b7\r
+e2e4e7e6d2d4d7d5b1d2f7f5e4f5e6f5g1f3g8f6c2c4f8d6c4d5e8g8f1e2f6d5e1g1g8h8f1e1c8e6\r
+e2e4e7e6d2d4d7d5b1d2g8f6e4e5f6d7c2c3c7c5f1d3b8c6g1e2c5d4c3d4d8b6d2f3f7f6e5f6d7f6\r
+e2e4e7e6d2d4d7d5b1d2g8f6e4e5f6d7c2c3c7c5f1d3b8c6g1e2c5d4c3d4f7f6e5f6d7f6d2f3f8d6\r
+e2e4e7e6d2d4d7d5b1d2g8f6e4e5f6d7f1d3c7c5c2c3b8c6d2f3c5d4c3d4f8b4c1d2d8e7a2a3b4d2\r
+e2e4e7e6d2d4d7d5b1d2g8f6e4e5f6d7f1d3c7c5c2c3b8c6g1e2c5d4c3d4f7f6e5f6d7f6e1g1f8d6\r
+e2e4e7e6d2d4d7d5b1d2g8f6f1d3c7c5e4e5f6d7c2c3b8c6g1e2c5d4c3d4f7f6e5f6d7f6e1g1f8d6\r
+e2e4e7e6d2d4d7d5b1d2g8f6f1d3c7c5e4e5f6d7c2c3b8c6g1e2c5d4c3d4f7f6e5f6d7f6e1g1f8d6\r
+e2e4e7e6d2d4d7d5b1d2g8f6f1d3c7c5e4e5f6d7c2c3b8c6g1e2d8b6d2f3c5d4c3d4f7f6e5f6d7f6\r
+e2e4e7e6d2d4d7d5e4d5e6d5f1d3f8d6d1e2g8e7g1f3e8g8e1g1c8g4d3h7g8h8h7d3d8c8e2e3f7f6\r
+e2e4e7e6d2d4d7d5e4e5c7c5c2c3b8c6g1f3c8d7f1e2g8e7e1g1e7g6c1e3c5d4c3d4f8e7b1c3e8g8\r
+e2e4e7e6d2d4d7d5e4e5c7c5c2c3b8c6g1f3d8b6a2a3c5c4b1d2c6a5g2g3c8d7h2h4h7h6f1h3e8c8\r
+e2e4e7e6d2d4d7d5e4e5c7c5c2c3b8c6g1f3d8b6d1b3b6b3a2b3c5d4c3d4c8d7f1e2g8e7e1g1e7f5\r
+e2e4e7e6d2d4d7d5e4e5c7c5c2c3b8c6g1f3g8e7b1a3c5d4c3d4e7f5a3c2d8b6f1d3f8b4e1f1b4e7\r
+e2e4e7e6d2d4d7d5e4e5c7c5c2c3b8c6g1f3g8e7f1d3c5d4c3d4e7f5d3f5e6f5b1c3c8e6h2h4h7h6\r
+e2e4e7e6d2d4d7d5e4e5f8b4b1c3b7b6d1g4b4f8c1g5d8d7f1b5b8c6g1f3h7h6g5d2c8b7e1g1a7a6\r
+e2e4g7g6d2d4f8g7b1c3d7d6c1e3a7a6a2a4b8d7g1f3g8f6f1e2e8g8e1g1b7b6h2h3c8b7f3d2e7e6\r
+e2e4g7g6d2d4f8g7c2c4d7d6b1c3b8c6c1e3e7e5d4d5c6e7d1d2f7f5f2f3g8f6f1d3a7a6h2h3f5f4\r
+e2e4g7g6d2d4f8g7g1f3d7d6b1c3a7a6a2a4b7b6f1c4e7e6e1g1b8d7h2h3c8b7c1e3g8e7d1d2h7h6\r
+e2e4g8f6b1c3d7d5e4e5f6e4c3e2e4c5d2d4c5e6f2f4g7g6c1e3e6g7d1d2b7b6h2h3e7e6g1f3c7c5\r
+e2e4g8f6b1c3e7e5g2g3f8c5f1g2e8g8d2d3f8e8g1e2b8c6e1g1c6d4h2h3c7c6g1h2d4e2d1e2d7d5\r
+e2e4g8f6e4e5f6d5d2d4d7d6c2c4d5b6f2f4d6e5f4e5b8c6c1e3c8f5b1c3e7e6g1f3f8e7d4d5e6d5\r
+e2e4g8f6e4e5f6d5d2d4d7d6c2c4d5b6g1f3c8g4f1e2d6e5c4c5e5e4c5b6e4f3e2f3g4f3d1f3a7b6\r
+e2e4g8f6e4e5f6d5d2d4d7d6g1f3b8c6c2c4d5b6e5e6f7e6h2h4e6e5d4d5c6d4f3d4e5d4f1d3d8d7\r
+e2e4g8f6e4e5f6d5d2d4d7d6g1f3b8c6c2c4d5b6f1e2c8g4e5d6c7d6d4d5g4f3e2f3c6e5f3e2g7g6\r
+e2e4g8f6e4e5f6d5d2d4d7d6g1f3c8g4e5d6e7d6f1e2f8e7e1g1e8g8h2h3g4h5c2c4d5b6c1e3b8c6\r
+e2e4g8f6e4e5f6d5d2d4d7d6g1f3c8g4f1e2e7e6c2c4d5b6e5d6c7d6b1c3f8e7e1g1e8g8c1f4a7a6\r
+e2e4g8f6e4e5f6d5d2d4d7d6g1f3c8g4f1e2e7e6e1g1f8e7c2c4d5b6b1c3e8g8c1e3a7a6e5d6c7d6\r
+e2e4g8f6e4e5f6d5d2d4d7d6g1f3c8g4f1e2e7e6e1g1f8e7c2c4d5b6b1c3e8g8c1e3d6d5c4c5g4f3\r
+e2e4g8f6e4e5f6d5d2d4d7d6g1f3c8g4f1e2e7e6e1g1f8e7h2h3g4h5c2c4d5b6b1c3b8d7e5d6c7d6\r
+e2e4g8f6e4e5f6d5d2d4d7d6g1f3c8g4f1e2e7e6e1g1f8e7h2h3g4h5c2c4d5b6b1c3e8g8c1e3d6d5\r
+e2e4g8f6e4e5f6d5d2d4d7d6g1f3d6e5f3e5b8d7f1c4e7e6d1g4h7h5g4e2d7e5d4e5c8d7e1g1d7c6\r
+e2e4g8f6e4e5f6d5d2d4d7d6g1f3d6e5f3e5e7e6d1f3d8f6f3g3h7h6b1c3d5b4f1b5c7c6b5a4b8d7\r
+e2e4g8f6e4e5f6d5d2d4d7d6g1f3d6e5f3e5e7e6d1h5g7g6h5f3d8e7b1c3b8d7f1c4d5c3e5d7e7d7\r
+e2e4g8f6e4e5f6d5d2d4d7d6g1f3d6e5f3e5g7g6f1c4c8e6c4b3f8g7c2c3c7c6e1g1b8d7e5d3e8g8\r
+e2e4g8f6e4e5f6d5d2d4d7d6g1f3d6e5f3e5g7g6f1c4c8e6d1e2f8g7e1g1e8g8c4b3c7c6f1d1b8d7\r
+e2e4g8f6e4e5f6d5d2d4d7d6g1f3d6e5f3e5g7g6g2g3f8g7f1g2e8g8e1g1c7c6f1e1c8f5c2c3b8d7\r
+e2e4g8f6e4e5f6d5d2d4d7d6g1f3g7g6f1c4d5b6c4b3f8g7b1d2e8g8h2h3a7a5a2a4d6e5d4e5b8a6\r
+e2e4g8f6e4e5f6d5d2d4d7d6g1f3g7g6f1e2f8g7e1g1e8g8c2c4d5b6b1c3b8c6e5d6c7d6c1e3c8g4\r
+f2f4c7c5g1f3g7g6e2e4f8g7f1e2b8c6e1g1d7d6d2d3e7e6b1a3g8e7c2c3e8g8c1e3a7a6d3d4c5d4\r
+f2f4d7d5b2b3c8g4g2g3g8f6f1g2c7c6g1f3g4f3g2f3g7g6\r
+f2f4d7d5c2c4d5c4b1a3e7e5f4e5f8a3d1a4b8c6a4a3c6e5\r
+f2f4d7d5e2e3g7g6c2c4g8f6b1c3f8g7g1f3e8g8d1b3d5c4f1c4b8c6f3e5c6e5f4e5f6d7c4f7g8h8\r
+f2f4d7d5e2e3g7g6g1f3f8g7d2d4g8f6f1d3e8g8b1d2c7c5c2c3b7b6d1e2c8b7f3e5d8c7e1g1b8c6\r
+f2f4d7d5g1f3g7g6d2d3g8f6g2g3b7b6f1g2c8b7e1g1f8g7d1e1e8g8h2h3b8c6g3g4d8d6e1f2e7e5\r
+f2f4d7d5g1f3g8f6e2e3g7g6b2b3f8g7c1b2e8g8f1e2c7c5c2c4d5d4e3d4f6h5\r
+f2f4d7d5g1f3g8f6e2e3g7g6b2b3f8g7c1b2e8g8f1e2c7c5e1g1b8c6f3e5d8c7b1c3c6e5c3b5c7b6\r
+f2f4d7d5g1f3g8f6e2e3g7g6b2b3f8g7c1b2e8g8f1e2c7c5e1g1b8c6f3e5d8c7e5c6c7c6e2f3c8e6\r
+f2f4d7d5g1f3g8f6e2e3g7g6b2b4f8g7c1b2e8g8f1e2b7b6e1g1c8b7b1a3b8d7c2c4c7c5b4c5d7c5\r
+f2f4d7d5g2g3g8f6f1g2c7c5g1f3b8c6c2c3g7g6e1g1f8g7d2d3e8g8b1d2d8c7\r
+g1f3c7c5b2b3d7d5c1b2f7f6c2c4d5d4d2d3e7e5e2e3g8e7f1e2e7c6b1d2f8e7e1g1e8g8e3e4a7a6\r
+g1f3c7c5b2b3g8f6c2c4g7g6c1b2f8g7e2e3e8g8f1e2b7b6e1g1c8b7a2a3b8c6d2d3d7d5c4d5d8d5\r
+g1f3c7c5c2c4b8c6b1c3e7e5e2e3g8f6a2a3d7d6f1e2g7g6d2d4e5d4e3d4f8g7c1f4e8g8e1g1c8f5\r
+g1f3c7c5c2c4b8c6b1c3g8f6d2d4c5d4f3d4e7e6a2a3c6d4d1d4b7b6c1f4f8c5d4d2e8g8a1d1c8b7\r
+g1f3c7c5c2c4b8c6b1c3g8f6g2g3g7g6f1g2f8g7e1g1e8g8d2d3a7a6a2a3a8b8a1b1b7b5c4b5a6b5\r
+g1f3c7c5c2c4b8c6d2d4c5d4f3d4g8f6b1c3e7e6d4b5d7d5c1f4e6e5c4d5e5f4d5c6b7c6d1d8e8d8\r
+g1f3c7c5c2c4b8c6d2d4c5d4f3d4g8f6g2g3d8b6d4c2d7d6f1g2g7g6b1c3f8g7e1g1e8g8b2b3c8e6\r
+g1f3c7c5e2e4d7d6d2d4c5d4f3d4g8f6b1c3a7a6f1e2e7e5d4b3c8e6e1g1f8e7f2f4d8c7e2f3e8g8\r
+g1f3c7c5g2g3d7d5f1g2b8c6e1g1e7e6d2d3f8d6e2e4g8e7f1e1e8g8b1d2d6c7c2c3a7a5a2a4b7b6\r
+g1f3c7c5g2g3d7d6f1g2b8c6e1g1g8f6d2d3g7g6b2b3f8g7c1b2e8g8b1d2d8c7c2c4f8e8d2e4f6e4\r
+g1f3c7c5g2g3g7g6f1g2b8c6e1g1f8g7d2d3d7d6b1c3e7e5e2e4g8e7f3h4e8g8f2f4e5f4g3f4f7f5\r
+g1f3c7c5g2g3g7g6f1g2f8g7e1g1b8c6d2d3g8f6b1c3e8g8a2a3d7d6a1b1b7b6b2b4c8b7c1g5d8d7\r
+g1f3d7d5b2b3c8g4e2e3g8f6c1b2e7e6h2h3g4h5d2d3c7c5g2g4h5g6f3e5b8d7e5g6h7g6f1g2d8b6\r
+g1f3d7d5c2c4c7c6d2d4g8f6b1c3d5c4a2a4c8f5f3e5e7e6f2f3f8b4e5c4e8g8c1g5h7h6g5h4c6c5\r
+g1f3d7d5c2c4c7c6e2e3e7e6d2d4f7f5f1d3g8f6e1g1f8d6b2b3d8e7a2a4e8g8c1a3d6a3b1a3f6e4\r
+g1f3d7d5c2c4c7c6e2e3g8f6b1c3g7g6d2d4f8g7f1e2e8g8e1g1d5c4e2c4c8g4h2h3g4f3d1f3b8d7\r
+g1f3d7d5c2c4c7c6e2e3g8f6b1c3g7g6d2d4f8g7f1e2e8g8e1g1d5c4e2c4c8g4h2h3g4f3d1f3b8d7\r
+g1f3d7d5c2c4c7c6e2e3g8f6b1c3g7g6d2d4f8g7f1e2e8g8e1g1d5c4e2c4c8g4h2h3g4f3d1f3b8d7\r
+g1f3d7d5c2c4c7c6e2e3g8f6b1c3g7g6d2d4f8g7f1e2e8g8e1g1d5c4e2c4c8g4h2h3g4f3d1f3b8d7\r
+g1f3d7d5c2c4c7c6e2e3g8f6d2d4c8f5b1c3e7e6f3h4f5e4d1b3d8c7f2f3e4g6c1d2b8d7a1c1a8c8\r
+g1f3d7d5c2c4d5c4e2e3g8f6f1c4e7e6e1g1c7c5d2d4a7a6d1e2b7b5c4b3c8b7b1c3b8d7f1d1f8d6\r
+g1f3d7d5c2c4d5c4e2e3g8f6f1c4e7e6e1g1c7c5d2d4a7a6d1e2b7b5c4b3c8b7f1d1b8d7b1c3b5b4\r
+g1f3d7d5c2c4d5d4e2e3b8c6e3d4c6d4f3d4d8d4b1c3g8f6d2d3c7c6c1e3d4d7d3d4g7g6f1e2f8g7\r
+g1f3d7d5c2c4d5d4g2g3c7c5e2e3b8c6e3d4c6d4f3d4d8d4b1c3c8g4f1e2g4e2d1e2e7e6d2d3d4d7\r
+g1f3d7d5c2c4e7e6d2d4g8f6b1c3c7c5c4d5f6d5e2e4d5c3b2c3c5d4c3d4f8b4c1d2b4d2d1d2e8g8\r
+g1f3d7d5c2c4e7e6d2d4g8f6b1c3c7c5c4d5f6d5g2g3c5d4c3d5d8d5d1d4d5d4f3d4f8b4c1d2b4d2\r
+g1f3d7d5c2c4e7e6g2g3d5d4f1g2c7c5e1g1b8c6d2d3g8f6e2e3f8e7e3d4c5d4f1e1f6d7b1a3d7c5\r
+g1f3d7d5c2c4e7e6g2g3g8f6f1g2d5c4d1a4b8d7a4c4c7c5e1g1f8e7d2d3e8g8b2b3a7a6c1b2b7b5\r
+g1f3d7d5d2d4c7c5c2c4e7e6c4d5e6d5g2g3b8c6f1g2g8f6e1g1f8e7b1c3e8g8c1g5c8e6d4c5e7c5\r
+g1f3d7d5d2d4c7c5g2g3c5d4f1g2d8a5b1d2b8c6e1g1e7e5d2b3a5c7e2e3d4e3c1e3g8f6e3g5c8e6\r
+g1f3d7d5d2d4c7c6c2c4e7e6b1d2g8f6e2e3b8d7f1d3f8d6e3e4d5e4d2e4f6e4d3e4e8g8e1g1h7h6\r
+g1f3d7d5d2d4c7c6c2c4e7e6b1d2g8f6e2e3c6c5b2b3b8c6c1b2c5d4e3d4f8e7a1c1e8g8f1d3c8d7\r
+g1f3d7d5d2d4c8f5c2c4e7e6e2e3b8c6c4d5e6d5f1b5f8d6b1c3g8e7e1g1e8g8a2a3a7a6b5e2d8d7\r
+g1f3d7d5d2d4c8g4c2c4b8c6e2e3e7e5d1b3g4f3g2f3e5d4c4d5c6e5e3d4e5d7b1c3d8e7c1e3e7b4\r
+g1f3d7d5d2d4c8g4c2c4b8c6e2e3e7e5d1b3g4f3g2f3g8e7b1c3e5d4c3d5a8b8e3e4e7g6c1d2f8d6\r
+g1f3d7d5d2d4c8g4c2c4b8c6e2e3e7e6b1c3f8b4c1d2g8e7f1d3g4f5d3f5e7f5c4d5e6d5d1b3b4c3\r
+g1f3d7d5d2d4c8g4c2c4g4f3g2f3d5c4e2e4e7e5d4e5d8d1e1d1b8c6f3f4a8d8c1d2f8c5h1g1g8e7\r
+g1f3d7d5d2d4c8g4c2c4g4f3g2f3e7e6c4d5d8d5e2e4f8b4b1c3d5a5c1d2b8c6d4d5e6d5a2a3c6d4\r
+g1f3d7d5d2d4c8g4f3e5g4h5d1d3d8c8c2c4f7f6e5f3e7e6b1c3h5g6d3d1c7c6e2e3f8d6c1d2g8e7\r
+g1f3d7d5d2d4e7e6c2c4f8e7b1c3g8f6c1g5b8d7e2e3h7h6g5h4e8g8a1c1c7c6f1d3d5c4d3c4a7a6\r
+g1f3d7d5d2d4e7e6c2c4g8f6b1c3f8e7c1g5b8d7e2e3h7h6g5h4e8g8a1c1c7c6f1d3d5c4d3c4b7b5\r
+g1f3d7d5d2d4e7e6c2c4g8f6b1c3f8e7c1g5e8g8e2e3b7b6a1c1c8b7f1e2b8d7c4d5f6d5c3d5b7d5\r
+g1f3d7d5d2d4e7e6c2c4g8f6c1g5f8e7b1c3e8g8a1c1h7h6g5h4b7b6c4d5f6d5c3d5e6d5h4e7d8e7\r
+g1f3d7d5d2d4e7e6g2g3c7c5f1g2b8c6e1g1g8f6c2c4d5c4f3e5c8d7b1a3c5d4a3c4f8c5d1b3e8g8\r
+g1f3d7d5d2d4e7e6g2g3g8f6f1g2f8e7c2c4e8g8d1c2b8c6e1g1c6b4c2d1d5c4b1a3c7c5a3c4\r
+g1f3d7d5d2d4g8f6c2c4c7c6b1c3d5c4a2a4c8f5e2e3e7e6f1c4f8b4e1g1e8g8d1e2c6c5f1d1b8c6\r
+g1f3d7d5d2d4g8f6c2c4c7c6b1c3d5c4a2a4c8f5f3e5e7e6f2f3c6c5e2e4c5d4e4f5b8c6e5c6b7c6\r
+g1f3d7d5d2d4g8f6c2c4c7c6b1c3e7e6c1g5h7h6g5f6d8f6e2e3b8d7f1d3d5c4d3c4g7g6e1g1f8g7\r
+g1f3d7d5d2d4g8f6c2c4c7c6b1c3e7e6c1g5h7h6g5f6d8f6e2e3b8d7f1d3d5c4d3c4g7g6e1g1f8g7\r
+g1f3d7d5d2d4g8f6c2c4c7c6b1c3e7e6c4d5e6d5d1c2g7g6c1g5f8e7g5f6e7f6e2e3c8f5f1d3f5d3\r
+g1f3d7d5d2d4g8f6c2c4c7c6b1c3e7e6c4d5e6d5d1c2g7g6c1g5f8e7g5f6e7f6e2e3c8f5f1d3f5d3\r
+g1f3d7d5d2d4g8f6c2c4c7c6b1c3e7e6c4d5e6d5d1c2g7g6c1g5f8e7g5f6e7f6e2e3c8f5f1d3f5d3\r
+g1f3d7d5d2d4g8f6c2c4c7c6b1c3e7e6e2e3b8d7d1c2b7b6c1d2c8b7c4d5e6d5f1d3f8e7e1g1e8g8\r
+g1f3d7d5d2d4g8f6c2c4c7c6b1c3e7e6e2e3b8d7f1e2d5c4a2a4f8d6f3d2e8g8d2c4d6c7b2b3f6d5\r
+g1f3d7d5d2d4g8f6c2c4c7c6e2e3g7g6b1c3f8g7f1d3e8g8h2h3c6c5e1g1c5d4e3d4d5c4d3c4b8c6\r
+g1f3d7d5d2d4g8f6c2c4d5c4b1c3a7a6e2e4b7b5e4e5f6d5a2a4d5b4f1e2c8f5e1g1b4c2a1a2c2b4\r
+g1f3d7d5d2d4g8f6c2c4d5c4e2e3e7e6f1c4c7c5e1g1a7a6a2a4b8c6b1c3c5d4e3d4f8e7c1g5e8g8\r
+g1f3d7d5d2d4g8f6c2c4d5c4e2e3e7e6f1c4c7c5e1g1a7a6d1e2b7b5c4b3c8b7f1d1b8d7b1c3d8b8\r
+g1f3d7d5d2d4g8f6c2c4e7e6b1c3b8d7c1g5h7h6g5h4f8e7e2e3e8g8a1c1a7a6b2b3b7b6c4d5e6d5\r
+g1f3d7d5d2d4g8f6c2c4e7e6b1c3b8d7c4d5e6d5c1f4c7c6e2e3f8e7h2h3d7f8f1d3f8g6f4h2e8g8\r
+g1f3d7d5d2d4g8f6c2c4e7e6b1c3c7c6e2e3b8d7d1c2f8d6e3e4e6e5c4d5c6d5e4d5e5d4f3d4e8g8\r
+g1f3d7d5d2d4g8f6c2c4e7e6b1c3c7c6e2e3b8d7f1d3d5c4d3c4b7b5c4e2c8b7a2a3b5b4c3a4b4a3\r
+g1f3d7d5d2d4g8f6c2c4e7e6b1c3d5c4e2e4f8b4c1g5c7c5f1c4c5d4f3d4b4c3b2c3d8a5g5f6a5c3\r
+g1f3d7d5d2d4g8f6c2c4e7e6b1c3f8e7c1g5e8g8e2e3h7h6g5h4b7b6c4d5f6d5h4e7d8e7c3d5e6d5\r
+g1f3d7d5d2d4g8f6c2c4e7e6b1c3f8e7c1g5e8g8e2e3h7h6g5h4b7b6f1e2c8b7h4f6e7f6c4d5e6d5\r
+g1f3d7d5d2d4g8f6c2c4e7e6b1c3f8e7c1g5h7h6g5f6e7f6d1d2b8c6e2e3e8g8a1c1a7a6f1e2d5c4\r
+g1f3d7d5d2d4g8f6c2c4e7e6b1c3f8e7c1g5h7h6g5f6e7f6d1d2d5c4e2e4c7c5d4d5e6d5e4e5f6g5\r
+g1f3d7d5d2d4g8f6c2c4e7e6b1c3f8e7c1g5h7h6g5f6e7f6e2e3e8g8d1c2c7c5d4c5d5c4f1c4d8a5\r
+g1f3d7d5d2d4g8f6c2c4e7e6b1c3f8e7c1g5h7h6g5h4e8g8a1c1d5c4e2e3c7c5f1c4c5d4f3d4c8d7\r
+g1f3d7d5d2d4g8f6c2c4e7e6b1c3f8e7c1g5h7h6g5h4e8g8e2e3b7b6a1c1c8b7f1e2b8d7c4d5e6d5\r
+g1f3d7d5d2d4g8f6c2c4e7e6b1c3f8e7c1g5h7h6g5h4e8g8e2e3b7b6a1c1c8b7f1e2b8d7c4d5e6d5\r
+g1f3d7d5d2d4g8f6c2c4e7e6b1c3f8e7c1g5h7h6g5h4e8g8e2e3b7b6f1e2c8b7e1g1b8d7a1c1c7c5\r
+g1f3d7d5d2d4g8f6c2c4e7e6c1g5f8e7b1c3h7h6g5f6e7f6e2e3e8g8a1c1c7c6f1d3b8d7e1g1d5c4\r
+g1f3d7d5d2d4g8f6c2c4e7e6c1g5f8e7b1c3h7h6g5h4e8g8e2e3b7b6f1e2c8b7h4f6e7f6c4d5e6d5\r
+g1f3d7d5d2d4g8f6c2c4e7e6g2g3c7c5f1g2b8c6e1g1c5d4f3d4f8c5d4c6b7c6b1c3e8g8c1g5h7h6\r
+g1f3d7d5d2d4g8f6c2c4e7e6g2g3f8e7f1g2e8g8e1g1b8d7d1c2c7c6b2b3b7b6f1d1c8b7b1c3d8c8\r
+g1f3d7d5d2d4g8f6e2e3e7e6c2c4f8e7b1c3b8d7c4c5c7c6b2b4e8g8c1b2d8c7f1e2f6e8e1g1f7f5\r
+g1f3d7d5d2d4g8f6e2e3e7e6c2c4f8e7b1c3e8g8f1d3c7c5c4d5c5d4f3d4f6d5c3d5d8d5e1g1b8c6\r
+g1f3d7d5g2g3c7c5f1g2b8c6d2d4e7e6e1g1c5d4f3d4f8c5d4b3c5b6c2c4g8f6c4d5f6d5b1a3e8g8\r
+g1f3d7d5g2g3c7c6f1g2b8d7e1g1g8f6d2d3e7e5e2e4d5e4d3e4f6e4f3e5d7e5d1d8e8d8g2e4f8d6\r
+g1f3d7d5g2g3c7c6f1g2c8g4c2c4g8f6c4d5g4f3g2f3c6d5d2d3b8c6e1g1e7e6b1c3f8e7f3g2e8g8\r
+g1f3d7d5g2g3c7c6f1g2c8g4e1g1b8d7d2d4g4f3g2f3g8f6c1f4d8b6b2b3e7e6e2e3f8e7c2c4h7h6\r
+g1f3d7d5g2g3c7c6f1g2g8f6e1g1c8g4c2c4e7e6c4d5g4f3g2f3c6d5b1c3b8c6d2d3f8e7f3g2e8g8\r
+g1f3d7d5g2g3c8g4b2b3b8d7c1b2e7e6f1g2g8f6e1g1c7c6d2d3f8d6b1d2e8g8h2h3g4h5e2e3h7h6\r
+g1f3d7d5g2g3c8g4f1g2b8d7c2c4c7c6c4d5c6d5b1c3g8f6d1b3d7c5b3b5f6d7d2d4a7a6b5b4c5e4\r
+g1f3d7d5g2g3c8g4f1g2b8d7e1g1c7c6d2d3e7e5h2h3g4h5c2c4d5c4d3c4g8f6c1e3d8c7b1c3f8b4\r
+g1f3d7d5g2g3c8g4f1g2b8d7h2h3g4f3g2f3c7c6d2d3e7e6e2e4d7e5f3g2d5e4g2e4g8f6e4g2f8b4\r
+g1f3d7d5g2g3c8g4f1g2c7c6b2b3b8d7c1b2g8f6e1g1e7e6d2d3f8c5b1d2e8g8e2e4d5e4d3e4e6e5\r
+g1f3d7d5g2g3g7g6d2d4f8g7f1g2g8f6b1c3e8g8e1g1b8d7c1g5c7c6d1c1f6e4c3e4d5e4f3d2h7h6\r
+g1f3d7d5g2g3g7g6f1g2f8g7c2c4d5c4b1a3c8e6d1c2c7c5a3c4b8c6e1g1a8c8d2d3g8h6c4e5c6e5\r
+g1f3d7d5g2g3g7g6f1g2f8g7e1g1e7e5d2d3g8e7b1d2e8g8e2e4b8c6e4d5e7d5c2c3h7h6d2c4f8e8\r
+g1f3d7d5g2g3g8f6f1g2c7c6e1g1c8g4d2d3b8d7b1d2e7e6e2e4f8e7d1e2e8g8h2h3g4h5f1e1d5e4\r
+g1f3d7d5g2g3g8f6f1g2c8f5c2c4e7e6e1g1f8e7b2b3e8g8c1b2h7h6d2d3f5h7b1d2b8c6a2a3a7a5\r
+g1f3d7d6b1c3g8f6d2d4c8g4c1g5b8d7e2e4e7e5f1e2f8e7e1g1e8g8d1d2c7c6a2a4a7a5g5e3f8e8\r
+g1f3d7d6d2d4c8g4e2e3g8f6c2c4b8d7b1c3e7e5f1e2f8e7e3e4c7c6c1e3e8g8e1g1a7a6a2a3f8e8\r
+g1f3d7d6d2d4c8g4e2e4e7e6f1d3g8f6b1d2f8e7h2h3g4h5d2f1d6d5f1g3h5g6d1e2d5e4g3e4e8g8\r
+g1f3d7d6d2d4g8f6g2g3g7g6f1g2f8g7e1g1e8g8c2c4b8c6b1c3a7a6h2h3c8d7e2e4e7e5d4e5d6e5\r
+g1f3e7e6c2c4d7d5d2d4d5c4b1c3a7a6e2e3b7b5a2a4b5b4c3b1g8f6f1c4c8b7e1g1c7c5b1d2c5d4\r
+g1f3e7e6g2g3d7d5f1g2c7c5c2c4d5c4f3e5g8f6e1g1f8e7b1a3e8g8a3c4f6d5d2d4c5d4d1d4f7f6\r
+g1f3e7e6g2g3d7d5f1g2c7c5e1g1b8c6d2d3g7g6e2e4f8g7d1e2g8e7e4e5d8c7f1e1a7a6c2c3c8d7\r
+g1f3f7f5d2d4e7e6c2c4g8f6b1c3f8e7d4d5e6d5c4d5e8g8g2g3d7d6f1g2b8d7e1g1d7e5f3d4e5g6\r
+g1f3f7f5d2d4e7e6c2c4g8f6e2e3f8e7b1c3e8g8f1d3d7d5c1d2c7c6c4c5b8d7f3g5d7b8f2f3d8c7\r
+g1f3f7f5d2d4g8f6c1f4g7g6e2e3f8g7h2h3c7c5c2c3b7b6b1d2e8g8f1d3c8a6d1b3g8h8d3a6b8a6\r
+g1f3f7f5g2g3g8f6f1g2g7g6c2c4f8g7b1c3e8g8e1g1d7d6d2d4b8c6d4d5c6a5d1d3c7c5f3g5a7a6\r
+g1f3g7g6c2c4f8g7d2d4d7d6b1c3b8d7e2e4e7e6f1e2b7b6e1g1c8b7c1e3g8e7d1c2h7h6a1d1e8g8\r
+g1f3g7g6c2c4f8g7d2d4g8f6g2g3e8g8f1g2d7d6b1c3c7c6e1g1c8f5f3h4f5d7e2e4e7e5h4f3f8e8\r
+g1f3g7g6d2d4f8g7c2c4d7d6b1c3b8d7e2e4e7e5f1e2c7c6e1g1d8e7c1e3g8h6h2h3f7f6a1c1e8g8\r
+g1f3g7g6d2d4f8g7c2c4d7d6b1c3c8g4g2g3b8c6d4d5c6a5c1d2c7c5b2b3g8f6f1g2e8g8e1g1a7a6\r
+g1f3g7g6d2d4g8f6g2g3f8g7f1g2d7d5c2c4d5c4b1a3b8c6a3c4c8e6b2b3e8g8c1b2e6d5a1c1a7a5\r
+g1f3g7g6e2e4f8g7d2d4d7d6c2c4c8g4f1e2b8c6c1e3e7e5d4d5g4f3e2f3c6d4e3d4e5d4b1a3g8e7\r
+g1f3g8f6b2b3d7d5c1b2c8g4e2e3b8d7h2h3g4h5d2d3e7e6g2g4h5g6f3h4f8b4c2c3b4d6h4g6h7g6\r
+g1f3g8f6b2b3g7g6c1b2f8g7g2g3e8g8f1g2d7d6d2d4c7c5c2c4c5d4f3d4a7a6b1c3e7e6e1g1d8c7\r
+g1f3g8f6c2c4b7b6b1c3c8b7d2d3c7c5e2e4d7d6g2g3e7e6f1g2f8e7e1g1e8g8b2b3a7a6c1b2f8e8\r
+g1f3g8f6c2c4b7b6d2d3g7g6e2e4d7d6b1c3f8g7d3d4e8g8f1e2c8b7d1c2e7e5d4e5d6e5c1e3f8e8\r
+g1f3g8f6c2c4b7b6d2d4e7e6g2g3c8a6b2b3f8b4c1d2b4e7f1g2e8g8e1g1d7d5c4d5f6d5b1c3b8d7\r
+g1f3g8f6c2c4b7b6e2e3c8b7f1e2e7e6e1g1f8e7b2b3e8g8c1b2c7c5b1c3b8c6a2a3d7d5c4d5f6d5\r
+g1f3g8f6c2c4b7b6g2g3c7c5f1g2c8b7b1c3g7g6d2d3f8g7e2e4b8c6e1g1e8g8f3h4c6d4e4e5b7g2\r
+g1f3g8f6c2c4b7b6g2g3c7c5f1g2c8b7b1c3g7g6d2d3f8g7e2e4e8g8h2h3f6e8c1e3e7e5e1g1d7d6\r
+g1f3g8f6c2c4b7b6g2g3c7c5f1g2c8b7b1c3g7g6e1g1f8g7d2d3e8g8e2e4d7d6a1b1b8c6a2a3f6e8\r
+g1f3g8f6c2c4b7b6g2g3c7c5f1g2c8b7e1g1e7e6b1c3f8e7d2d4c5d4d1d4d7d6b2b3b8d7c3b5d7c5\r
+g1f3g8f6c2c4b7b6g2g3c7c5f1g2c8b7e1g1e7e6b1c3f8e7d2d4c5d4d1d4d7d6c1e3e8g8a1d1b8d7\r
+g1f3g8f6c2c4b7b6g2g3c7c5f1g2c8b7e1g1g7g6b1c3f8g7d2d4c5d4f3d4b7g2g1g2e8g8e2e4d8c7\r
+g1f3g8f6c2c4b7b6g2g3c7c5f1g2c8b7e1g1g7g6b1c3f8g7d2d4c5d4f3d4b7g2g1g2e8g8e2e4d8c7\r
+g1f3g8f6c2c4b7b6g2g3c7c5f1g2c8b7e1g1g7g6b2b3f8g7c1b2e8g8e2e3e7e6d2d4d8e7b1c3b8a6\r
+g1f3g8f6c2c4b7b6g2g3c7c5f1g2c8b7e1g1g7g6d2d4c5d4d1d4f8g7b1c3d7d6f1d1b8d7b2b3a8c8\r
+g1f3g8f6c2c4b7b6g2g3c7c5f1g2c8b7e1g1g7g6d2d4c5d4d1d4f8g7b1c3d7d6f1d1b8d7b2b3a8c8\r
+g1f3g8f6c2c4b7b6g2g3c8b7f1g2c7c5b1c3g7g6e1g1f8g7d2d4c5d4d1d4b8c6d4f4a8c8f1d1d7d6\r
+g1f3g8f6c2c4b7b6g2g3c8b7f1g2c7c5e1g1g7g6b1c3f8g7d2d4c5d4f3d4b7g2g1g2d8c8b2b3c8b7\r
+g1f3g8f6c2c4b7b6g2g3c8b7f1g2e7e6b1c3f8e7d2d4f6e4c1d2e7f6e1g1e8g8a1c1e4d2d1d2d7d6\r
+g1f3g8f6c2c4b7b6g2g3c8b7f1g2e7e6e1g1f8e7b1c3e8g8b2b3d7d5c4d5f6d5c1b2c7c5a1c1e7f6\r
+g1f3g8f6c2c4b7b6g2g3c8b7f1g2e7e6e1g1f8e7b1c3e8g8d2d4f6e4c1d2e7f6d1c2e4d2c2d2d7d6\r
+g1f3g8f6c2c4b7b6g2g3c8b7f1g2e7e6e1g1f8e7b1c3e8g8f1e1d7d5c4d5e6d5d2d4b8a6c1g5c7c6\r
+g1f3g8f6c2c4b7b6g2g3c8b7f1g2e7e6e1g1f8e7d2d4e8g8b1c3f6e4d1c2e4c3c2c3f7f5b2b3e7f6\r
+g1f3g8f6c2c4b7b6g2g3c8b7f1g2e7e6e1g1f8e7d2d4e8g8b1c3f6e4d1c2e4c3c2c3f7f5b2b3e7f6\r
+g1f3g8f6c2c4b7b6g2g3c8b7f1g2e7e6e1g1f8e7d2d4e8g8d4d5e6d5f3d4b7c6c4d5c6d5g2d5f6d5\r
+g1f3g8f6c2c4b7b6g2g3c8b7f1g2e7e6e1g1f8e7d2d4e8g8d4d5e6d5f3d4b8c6c4d5c6d4d1d4c7c5\r
+g1f3g8f6c2c4b7b6g2g3c8b7f1g2g7g6b1c3f8g7d2d4f6e4c3e4b7e4e1g1e8g8d4d5c7c5g2h3e4f3\r
+g1f3g8f6c2c4b7b6g2g3c8b7f1g2g7g6e1g1f8g7d2d4e7e6b1c3f6e4c3e4b7e4c1g5f7f6g5e3e8g8\r
+g1f3g8f6c2c4b7b6g2g3e7e6f1g2c8b7e1g1f8e7d2d4e8g8d4d5e6d5f3h4c7c6c4d5f6d5h4f5e7c5\r
+g1f3g8f6c2c4c7c5b1c3b8c6d2d4c5d4f3d4e7e6a2a3c6d4d1d4b7b6c1f4f8c5d4d2c8b7e2e3e8g8\r
+g1f3g8f6c2c4c7c5b1c3b8c6d2d4c5d4f3d4e7e6a2a3c6d4d1d4b7b6d4f4c8b7e2e4d7d6c1e3f8e7\r
+g1f3g8f6c2c4c7c5b1c3b8c6d2d4c5d4f3d4e7e6a2a3c6d4d1d4b7b6d4f4c8b7e2e4d7d6f1d3f8e7\r
+g1f3g8f6c2c4c7c5b1c3b8c6d2d4c5d4f3d4e7e6a2a3f8e7e2e3d7d5c4d5e6d5f1b5c8d7d4f3a7a6\r
+g1f3g8f6c2c4c7c5b1c3b8c6d2d4c5d4f3d4e7e6d4b5d7d5c1f4e6e5c4d5e5f4d5c6b7c6d1d8e8d8\r
+g1f3g8f6c2c4c7c5b1c3b8c6d2d4c5d4f3d4e7e6g2g3d8b6d4b3d7d5c4d5f6d5f1g2d5c3b2c3f8e7\r
+g1f3g8f6c2c4c7c5b1c3b8c6d2d4c5d4f3d4e7e6g2g3d8b6d4b3d7d5c4d5f6d5f1g2d5c3b2c3f8e7\r
+g1f3g8f6c2c4c7c5b1c3b8c6d2d4c5d4f3d4e7e6g2g3d8b6d4b5c6e5f1g2a7a6d1a4a8b8c1e3f8c5\r
+g1f3g8f6c2c4c7c5b1c3b8c6g2g3d7d5c4d5f6d5f1g2d5c7d2d3e7e5f3d2c8d7e1g1f8e7d2c4f7f6\r
+g1f3g8f6c2c4c7c5b1c3b8c6g2g3d7d5c4d5f6d5f1g2d5c7e1g1e7e5f3e1c8e6e1d3f7f6f2f4c5c4\r
+g1f3g8f6c2c4c7c5b1c3b8c6g2g3g7g6f1g2f8g7e1g1e8g8d2d4c5d4f3d4c6d4d1d4d7d6d4d3a7a6\r
+g1f3g8f6c2c4c7c5b1c3d7d5c4d5f6d5d2d4d5c3b2c3g7g6e2e3f8g7f1d3e8g8e1g1d8c7a2a4b8c6\r
+g1f3g8f6c2c4c7c5b1c3d7d5c4d5f6d5e2e4d5b4f1b5b8c6d2d4c5d4a2a3d4c3d1d8e8d8a3b4c3b2\r
+g1f3g8f6c2c4c7c5b1c3d7d5c4d5f6d5e2e4d5b4f1c4b4d3e1e2d3f4e2f1f4e6b2b4c5b4c3d5g7g6\r
+g1f3g8f6c2c4c7c5b1c3e7e6g2g3b7b6f1g2c8b7e1g1f8e7b2b3e8g8c1b2d7d5c4d5f6d5d2d4b8a6\r
+g1f3g8f6c2c4c7c5b1c3e7e6g2g3b7b6f1g2c8b7e1g1f8e7d2d4c5d4d1d4d7d6c1g5a7a6g5f6e7f6\r
+g1f3g8f6c2c4c7c5b1c3e7e6g2g3b7b6f1g2c8b7e1g1f8e7d2d4c5d4d1d4d7d6f1d1a7a6b2b3b8d7\r
+g1f3g8f6c2c4c7c5d2d4c5d4f3d4e7e6g2g3f8b4b1c3e8g8f1g2d7d5e1g1d5c4c1g5h7h6g5f6d8f6\r
+g1f3g8f6c2c4c7c5g2g3b7b6f1g2c8b7e1g1e7e6b1c3f8e7d2d4c5d4d1d4d7d6c1g5a7a6g5f6e7f6\r
+g1f3g8f6c2c4c7c5g2g3b8c6f1g2d7d5c4d5f6d5d2d4c8f5e1g1d5b4a2a3b4c2f3h4d8d4b1d2c2a1\r
+g1f3g8f6c2c4c7c5g2g3b8c6f1g2e7e5b1c3d7d6e1g1f8e7d2d3e8g8a2a3a7a6f3e1a8b8e1c2c6d4\r
+g1f3g8f6c2c4c7c5g2g3d7d5c4d5f6d5f1g2b8c6d2d4c5d4f3d4d5b4d4c6d8d1e1d1b4c6b1c3c8d7\r
+g1f3g8f6c2c4c7c5g2g3d7d5c4d5f6d5f1g2b8c6d2d4c5d4f3d4d5b4d4c6d8d1e1d1b4c6g2c6b7c6\r
+g1f3g8f6c2c4c7c5g2g3e7e6f1g2d7d5c4d5f6d5e1g1f8e7b1c3e8g8c3d5e6d5d2d4b8c6d4c5e7c5\r
+g1f3g8f6c2c4c7c5g2g3g7g6b2b3f8g7c1b2e8g8f1g2b8c6e1g1d7d6d2d4c5d4f3d4c8d7b1c3d8a5\r
+g1f3g8f6c2c4c7c6b1c3d7d5e2e3a7a6d2d4b7b5b2b3c8g4f1e2e7e6e1g1b8d7h2h3g4h5f3e5h5e2\r
+g1f3g8f6c2c4e7e6b1c3b7b6e2e4c8b7d2d3d7d6g2g3g7g6f1g2f8g7e1g1c7c5f1e1e8g8d3d4c5d4\r
+g1f3g8f6c2c4e7e6b1c3b7b6e2e4c8b7f1d3c7c5e1g1b8c6e4e5f6g4d3e4d8c8d2d4c5d4e4c6c8c6\r
+g1f3g8f6c2c4e7e6b1c3b7b6g2g3c8b7f1g2c7c5e1g1f8e7b2b3d7d6c1b2e8g8e2e3a7a6d2d4c5d4\r
+g1f3g8f6c2c4e7e6b1c3c7c5e2e4b8c6f1e2d7d5e4e5f6e4e1g1f8e7d1c2e4g5f3g5e7g5c4d5e6d5\r
+g1f3g8f6c2c4e7e6b1c3c7c5g2g3b8c6f1g2d7d5c4d5f6d5e1g1f8e7d2d4d5c3b2c3e8g8a1b1d8a5\r
+g1f3g8f6c2c4e7e6b1c3d7d5d2d4c7c5c4d5c5d4d1d4f6d5e2e4d5c3d4c3b8c6f1b5c8d7e1g1d8b6\r
+g1f3g8f6c2c4e7e6b1c3d7d5d2d4c7c5c4d5f6d5e2e3b8c6f1d3f8e7a2a3c5d4e3d4e8g8e1g1d5f6\r
+g1f3g8f6c2c4e7e6b1c3d7d5d2d4c7c5e2e3b8c6c4d5e6d5f1e2c5d4f3d4f8d6e1g1e8g8d4f3c8e6\r
+g1f3g8f6c2c4e7e6b1c3d7d5d2d4c7c5e2e3b8c6c4d5f6d5f1c4f8e7c4d5e6d5d4c5c8e6e1g1e7c5\r
+g1f3g8f6c2c4e7e6b1c3d7d5d2d4c7c6d1b3f8e7g2g3e8g8f1g2d8b6e1g1b6b3a2b3b8a6c1d2f8d8\r
+g1f3g8f6c2c4e7e6b1c3d7d5d2d4c7c6e2e3b8d7f1d3d5c4d3c4b7b5c4d3c8b7e3e4b5b4c3a4c6c5\r
+g1f3g8f6c2c4e7e6b1c3d7d5d2d4c7c6e2e3b8d7f1d3d5c4d3c4b7b5c4d3c8b7e3e4b5b4c3a4c6c5\r
+g1f3g8f6c2c4e7e6b1c3d7d5d2d4d5c4e2e3a7a6a2a4c7c5f1c4b8c6e1g1f8e7d4c5d8d1f1d1e7c5\r
+g1f3g8f6c2c4e7e6b1c3d7d5d2d4f8b4c4d5e6d5c1g5b8d7e2e3c7c5g5f6d7f6f1b5e8e7e1g1c5c4\r
+g1f3g8f6c2c4e7e6b1c3d7d5d2d4f8e7c1f4e8g8e2e3c7c5d4c5e7c5d1c2b8c6a2a3d8a5e1c1c5e7\r
+g1f3g8f6c2c4e7e6b1c3d7d5d2d4f8e7c1g5e8g8e2e3h7h6g5h4b7b6d1b3c8b7h4f6e7f6c4d5e6d5\r
+g1f3g8f6c2c4e7e6b1c3d7d5d2d4f8e7c1g5e8g8e2e3h7h6g5h4b7b6d1b3c8b7h4f6e7f6c4d5e6d5\r
+g1f3g8f6c2c4e7e6b1c3d7d5d2d4f8e7c1g5h7h6g5f6e7f6e2e3e8g8a1c1c7c6f1d3b8d7e1g1d5c4\r
+g1f3g8f6c2c4e7e6b1c3d7d5d2d4f8e7c1g5h7h6g5h4e8g8a1c1d5c4e2e3c7c5f1c4c5d4f3d4c8d7\r
+g1f3g8f6c2c4e7e6b1c3d7d5d2d4f8e7c1g5h7h6g5h4e8g8e2e3b7b6a1c1c8b7f1e2d5c4e2c4b8d7\r
+g1f3g8f6c2c4e7e6b1c3d7d5d2d4f8e7c1g5h7h6g5h4e8g8e2e3b7b6f1d3c8b7h4f6e7f6c4d5e6d5\r
+g1f3g8f6c2c4e7e6b1c3d7d5d2d4f8e7c1g5h7h6g5h4e8g8e2e3f6e4h4e7d8e7a1c1e4c3c1c3d5c4\r
+g1f3g8f6c2c4e7e6b1c3f8b4d1b3c7c5a2a3b4a5g2g3b8c6f1g2e8g8e1g1d7d5d2d3d5d4c3a4b7b6\r
+g1f3g8f6c2c4e7e6b1c3f8b4d1c2c7c5g2g3e8g8f1g2b8c6e1g1d8e7e2e3d7d5c3a4d5c4c2c4a8b8\r
+g1f3g8f6c2c4e7e6b1c3f8b4d1c2e8g8a2a3b4c3c2c3b7b6b2b4d7d6c1b2c8b7g2g3c7c5f1g2b8d7\r
+g1f3g8f6c2c4e7e6b1c3f8b4d1c2e8g8a2a3b4c3c2c3b7b6g2g3c8b7f1g2d7d5c4d5e6d5e1g1f8e8\r
+g1f3g8f6c2c4e7e6b1c3f8b4d1c2e8g8a2a3b4c3c2c3c7c5b2b4b7b6c1b2d7d6g2g3c8b7f1g2b8d7\r
+g1f3g8f6c2c4e7e6b1c3f8b4g2g3e8g8f1g2c7c5e1g1b8c6d2d4c5d4f3d4d8e7d4c2b4c3b2c3f8d8\r
+g1f3g8f6c2c4e7e6b1c3f8b4g2g3e8g8f1g2d7d5d1b3c7c5e1g1b8c6d2d3h7h6e2e3f8e8a2a3d5c4\r
+g1f3g8f6c2c4e7e6b1c3f8b4g2g4d7d5g4g5f6e4d1a4b8c6c3e4d5e4f3e5e4e3f2e3d8g5e5f3g5e7\r
+g1f3g8f6c2c4e7e6d2d4b7b6g2g3c8b7f1g2f8e7b1c3f6e4d1c2e4c3b2c3f7f5f3h4b8c6h4f3c6a5\r
+g1f3g8f6c2c4e7e6d2d4b7b6g2g3c8b7f1g2f8e7e1g1d7d6b1c3b8d7d1c2e8g8e2e4e6e5f1e1f8e8\r
+g1f3g8f6c2c4e7e6d2d4d7d5b1c3c7c5c4d5f6d5g2g3c5d4c3d5d8d5d1d4b8c6d4d5e6d5f1g2c8f5\r
+g1f3g8f6c2c4e7e6d2d4d7d5b1c3c7c6c1g5b8d7e2e3d8a5c4d5f6d5d1d2d7b6c3d5a5d2f3d2e6d5\r
+g1f3g8f6c2c4e7e6d2d4d7d5b1c3c7c6c1g5b8d7e2e3d8a5f3d2f8b4d1c2d5c4g5f6d7f6d2c4b4c3\r
+g1f3g8f6c2c4e7e6d2d4d7d5g2g3d5c4f1g2c7c5e1g1b8c6f3e5c8d7b1a3f6d5e5d7d8d7d4c5f8c5\r
+g1f3g8f6c2c4e7e6g2g3a7a6f1g2b7b5b2b3c7c5e1g1c8b7e2e3f8e7b1c3d8a5c1b2e8g8d1e2b8c6\r
+g1f3g8f6c2c4e7e6g2g3b7b6f1g2c8b7b1c3f8e7e1g1e8g8f1e1f6e4c3e4b7e4d2d3e4b7d3d4b7e4\r
+g1f3g8f6c2c4e7e6g2g3b7b6f1g2c8b7d2d4f8e7e1g1e8g8b1c3f6e4c3e4b7e4f3h4e4g2h4g2d7d6\r
+g1f3g8f6c2c4e7e6g2g3b7b6f1g2c8b7e1g1c7c5b1c3f8e7d2d4c5d4d1d4b8c6d4f4e8g8f1d1d8b8\r
+g1f3g8f6c2c4e7e6g2g3b7b6f1g2c8b7e1g1f8e7d2d4e8g8b1c3f6e4d1c2e4c3c2c3c7c5f1d1d7d6\r
+g1f3g8f6c2c4e7e6g2g3b7b6f1g2c8b7e1g1f8e7d2d4e8g8f1e1d7d5c4d5e6d5b1c3b8d7c1f4f6e4\r
+g1f3g8f6c2c4e7e6g2g3d7d5d2d4d5c4d1a4b8d7a4c4b7b6f1g2c8b7e1g1c7c5f1d1a7a6d4c5f8c5\r
+g1f3g8f6c2c4e7e6g2g3d7d5f1g2c7c5e1g1b8c6d2d4f6e4c4d5e6d5c1e3c5c4b1c3e4c3b2c3d8a5\r
+g1f3g8f6c2c4e7e6g2g3d7d5f1g2c7c6e1g1f8d6b2b3b8d7c1b2e8g8c4d5e6d5d2d3f8e8b1d2d7f8\r
+g1f3g8f6c2c4e7e6g2g3d7d5f1g2d5c4d1a4b8d7a4c4a7a6d2d3b7b5c4c6a8b8c1f4f6d5f4g5f8e7\r
+g1f3g8f6c2c4e7e6g2g3d7d5f1g2d5c4d1a4b8d7a4c4c7c5e1g1b7b6c4c2c8b7b2b3f8e7c1b2e8g8\r
+g1f3g8f6c2c4e7e6g2g3d7d5f1g2d5c4d1c2a7a6f3e5f6d5e5c4b7b5c4e3d5e3d2e3a8a7a2a4c8b7\r
+g1f3g8f6c2c4e7e6g2g3d7d5f1g2f8e7e1g1e8g8d2d4d5c4d1c2a7a6a2a4b8c6c2c4d8d5b1d2f8d8\r
+g1f3g8f6c2c4e7e6g2g3d7d5f1g2f8e7e1g1e8g8d2d4d5c4d1c2a7a6c1g5b7b5g5f6e7f6f3g5f6g5\r
+g1f3g8f6c2c4g7g6b1c3d7d5c4d5f6d5d1a4b8c6f3e5d5b6e5c6b6a4c6d8a4c3d8f7e8f7d2c3e7e5\r
+g1f3g8f6c2c4g7g6b1c3d7d5c4d5f6d5d1a4c8d7a4h4d5c3d2c3b8c6e2e4e7e5c1g5f8e7f1c4h7h6\r
+g1f3g8f6c2c4g7g6b1c3d7d5c4d5f6d5d1a4c8d7a4h4d5c3d2c3b8c6e2e4e7e5c1g5f8e7f1c4h7h6\r
+g1f3g8f6c2c4g7g6b1c3d7d5c4d5f6d5d1a4c8d7a4h4d5c3d2c3b8c6e2e4e7e5h4d8a8d8f1c4f7f6\r
+g1f3g8f6c2c4g7g6b1c3d7d5c4d5f6d5d1a4c8d7a4h4d7c6h4d4f7f6e2e3f8g7f1e2e7e5d4c4d5c3\r
+g1f3g8f6c2c4g7g6b1c3d7d5c4d5f6d5g2g3f8g7f1g2e7e5c3d5d8d5d2d3e8g8e1g1b8c6c1e3d5d6\r
+g1f3g8f6c2c4g7g6b1c3f8g7d2d4d7d6g2g3e8g8f1g2b8c6e1g1a8b8h2h3a7a6a2a4f6d7a4a5e7e5\r
+g1f3g8f6c2c4g7g6b1c3f8g7d2d4d7d6g2g3e8g8f1g2b8d7e1g1c7c6e2e4e7e5h2h3a7a5c1e3e5d4\r
+g1f3g8f6c2c4g7g6b1c3f8g7d2d4e8g8e2e4d7d6f1e2e7e5d4d5f6h5f3g1b8d7e2h5g6h5d1h5d7c5\r
+g1f3g8f6c2c4g7g6b1c3f8g7e2e4c7c5d2d4c5d4f3d4b8c6c1e3f6g4d1g4c6d4g4d1d4e6d1d2d8a5\r
+g1f3g8f6c2c4g7g6b1c3f8g7e2e4d7d6d2d4e8g8c1e3e7e5d4e5d6e5d1d8f8d8c3d5d8d7e1c1b8c6\r
+g1f3g8f6c2c4g7g6b1c3f8g7e2e4d7d6d2d4e8g8f1e2b8d7e1g1e7e5f1e1f8e8e2f1h7h6d4d5f6h7\r
+g1f3g8f6c2c4g7g6b1c3f8g7e2e4d7d6d2d4e8g8f1e2e7e5e1g1b8c6d4d5c6e7c1d2f6h5a1c1f7f5\r
+g1f3g8f6c2c4g7g6b1c3f8g7e2e4d7d6d2d4e8g8f1e2e7e5e1g1b8c6d4d5c6e7f3d2a7a5b2b3c7c5\r
+g1f3g8f6c2c4g7g6b1c3f8g7e2e4d7d6d2d4e8g8f1e2e7e5e1g1b8c6d4d5c6e7f3e1f6d7e1d3f7f5\r
+g1f3g8f6c2c4g7g6b1c3f8g7e2e4d7d6d2d4e8g8f1e2e7e5e1g1b8c6d4d5c6e7f3e1f6d7e1d3f7f5\r
+g1f3g8f6c2c4g7g6b1c3f8g7e2e4d7d6d2d4e8g8f1e2e7e5e1g1b8c6d4d5c6e7f3e1f6d7e1d3f7f5\r
+g1f3g8f6c2c4g7g6b2b3f8g7c1b2c7c5g2g3d7d6f1g2e7e5e1g1b8c6b1c3e8g8d2d3f6h5f3d2c8g4\r
+g1f3g8f6c2c4g7g6d2d4f8g7b1c3d7d6e2e4e8g8f1e2e7e5e1g1b8c6d4d5c6e7b2b4a7a5c1a3a5b4\r
+g1f3g8f6c2c4g7g6d2d4f8g7g2g3e8g8f1g2c7c6b1c3d7d5c4d5c6d5f3e5e7e6e1g1f6d7e5d7c8d7\r
+g1f3g8f6c2c4g7g6g2g3f8g7b1c3e8g8f1g2d7d6e1g1b8c6d2d3h7h6a2a3e7e5a1b1a7a5f3d2c6e7\r
+g1f3g8f6c2c4g7g6g2g3f8g7f1g2e8g8e1g1c7c5d2d4c5d4f3d4d7d5c4d5f6d5b1c3d5c3b2c3d8c7\r
+g1f3g8f6c2c4g7g6g2g3f8g7f1g2e8g8e1g1d7d6b1c3b8c6d2d3a7a6f3d2a8b8a2a3f6e8e2e3c8d7\r
+g1f3g8f6c2c4g7g6g2g3f8g7f1g2e8g8e1g1d7d6b1c3b8c6d2d3f6h5d3d4e7e5d4d5c6e7e2e4c7c5\r
+g1f3g8f6c2c4g7g6g2g3f8g7f1g2e8g8e1g1d7d6d2d4b8d7b1c3e7e5d4e5d6e5h2h3c7c6c1e3d8e7\r
+g1f3g8f6c2c4g7g6g2g3f8g7f1g2e8g8e1g1d7d6d2d4b8d7b1c3e7e5e2e4c7c6f1e1e5d4f3d4f6g4\r
+g1f3g8f6c2c4g7g6g2g3f8g7f1g2e8g8e1g1d7d6d2d4b8d7b1c3e7e5e2e4e5d4f3d4f8e8f1e1c7c6\r
+g1f3g8f6c2c4g7g6g2g3f8g7f1g2e8g8e1g1d7d6d2d4c7c5h2h3b8c6b1c3c8d7d4c5d6c5c1e3d8c8\r
+g1f3g8f6d2d4b7b6c1g5f6e4g5h4c8b7e2e3h7h6b1d2g7g5h4g3e4g3h2g3e7e6c2c3d7d6d1a4c7c6\r
+g1f3g8f6d2d4d7d5c2c4d5c4e2e3g7g6f1c4f8g7e1g1e8g8b2b3c7c6c1b2c8g4b1d2b8d7h2h3g4f5\r
+g1f3g8f6d2d4d7d5c2c4e7e6b1c3c7c6e2e3f8d6f1d3b8d7e1g1e8g8e3e4d5e4c3e4f6e4d3e4h7h6\r
+g1f3g8f6d2d4d7d5c2c4e7e6b1c3f8e7c1g5e8g8e2e3h7h6g5f6e7f6a1c1f6e7a2a3c7c6f1d3b8d7\r
+g1f3g8f6d2d4d7d6c2c4b8d7b1c3c7c6e2e4e7e5f1e2f8e7e1g1e8g8f1e1a7a6e2f1b7b5a2a3c8b7\r
+g1f3g8f6d2d4e7e6c1g5h7h6g5f6d8f6e2e4d7d6b1c3g7g5e4e5f6e7f1b5c8d7e1g1d6d5b5d3b8c6\r
+g1f3g8f6d2d4e7e6c2c4b7b6b1c3f8b4e2e3c7c5f1d3d7d5c4d5e6d5e1g1e8g8a2a3b4c3b2c3c8a6\r
+g1f3g8f6d2d4e7e6e2e3b7b6c2c4c8b7b1c3d7d5c4d5f6d5f1b5c7c6b5d3f8e7e3e4d5c3b2c3e8g8\r
+g1f3g8f6d2d4e7e6e2e3c7c5c2c4d7d5d4c5f8c5b1c3c5b4c1d2d5c4f1c4e8g8e1g1b8c6d1e2d8e7\r
+g1f3g8f6d2d4e7e6e2e3f8b4c2c3b4e7f1e2e8g8e1g1d7d5c3c4b7b6b1c3c8b7c4d5e6d5f3e5f6d7\r
+g1f3g8f6d2d4e7e6g2g3b7b6f1g2c8b7c2c4f8e7b1c3e8g8d1d3d7d5c4d5f6d5c3d5e6d5e1g1b8d7\r
+g1f3g8f6d2d4g7g6g2g3d7d5f1g2f8g7e1g1e8g8c2c4d5c4b1a3b8c6a3c4c8e6c4e5e6d5c1f4e7e6\r
+g1f3g8f6d2d4g7g6g2g3f8g7f1g2e8g8e1g1d7d6b1c3b8a6e2e4c7c5e4e5f6e8e5d6e8d6d4c5a6c5\r
+g1f3g8f6d2d4g7g6g2g3f8g7f1g2e8g8e1g1d7d6f1e1b8c6b1c3e7e5d4e5d6e5h2h3d8e7c1g5f8d8\r
+g1f3g8f6g2g3b7b5a2a4b5b4d2d3c8b7e2e4d7d6f1g2b8d7e1g1e7e6a4a5a8b8b1d2f8e7d2c4e8g8\r
+g1f3g8f6g2g3b7b6c2c4c7c5f1g2c8b7e1g1e7e6b1c3f8e7b2b3d7d5e2e3e8g8c1b2b8d7d1e2f6e4\r
+g1f3g8f6g2g3b7b6f1g2c8b7e1g1c7c5d2d3g7g6e2e4d7d6f3h4b8c6f2f4f8g7b1c3e8g8f4f5c6e5\r
+g1f3g8f6g2g3d7d5c2c4c7c6f1g2d5c4a2a4g7g6b1a3d8d5e1g1b8a6f3e1d5h5a3c4c8h3e1f3h3g2\r
+g1f3g8f6g2g3d7d5f1g2c7c5e1g1g7g6d2d3f8g7b1d2e8g8e2e4b8c6c2c3e7e5f1e1h7h6e4d5f6d5\r
+g1f3g8f6g2g3d7d5f1g2c7c6b2b3c8f5c1b2e7e6e1g1f8e7d2d3h7h6b1d2e8g8d1e1b8d7e2e4f5h7\r
+g1f3g8f6g2g3d7d5f1g2c7c6c2c4d5c4b1a3b7b5d2d3c4d3f3e5a7a6e1g1c8b7d1b3e7e6f1d1d8c7\r
+g1f3g8f6g2g3d7d5f1g2c7c6e1g1c8g4b2b3b8d7c1b2e7e6c2c4f8d6d2d3e8g8b1d2d8e7d1c2e6e5\r
+g1f3g8f6g2g3d7d5f1g2c7c6e1g1c8g4c2c4e7e6c4d5c6d5d1b3g4f3g2f3d8d7b1c3b8c6f3g2f8e7\r
+g1f3g8f6g2g3d7d5f1g2c7c6e1g1c8g4d2d3b8d7b1d2e7e5e2e4f8d6h2h3g4f3d1f3e8g8e4d5f6d5\r
+g1f3g8f6g2g3d7d5f1g2c8f5c2c4c7c6c4d5c6d5d1b3d8c8b1c3e7e6d2d3b8c6c1f4f8e7e1g1e8g8\r
+g1f3g8f6g2g3d7d5f1g2c8f5d2d3e7e6b1d2h7h6e1g1f8c5d1e1e8g8e2e4d5e4d2e4f6e4d3e4f5h7\r
+g1f3g8f6g2g3d7d5f1g2c8f5e1g1b8d7d2d3c7c6b1d2h7h6e2e4d5e4d3e4f6e4f3d4e4d2c1d2f5h7\r
+g1f3g8f6g2g3d7d5f1g2g7g6c2c4c7c6b2b3f8g7c1b2e8g8e1g1c8g4d2d4f6e4f3e5g4e6f2f3e4d6\r
+g1f3g8f6g2g3d7d6f1g2e7e5d2d3g7g6e1g1f8g7e2e4e8g8b1d2b8d7a2a4a7a5d2c4d7c5c1e3c5e6\r
+g1f3g8f6g2g3g7g6b2b3f8g7c1b2d7d5c2c4c8g4f1g2c7c6e1g1e8g8d2d3g4f3g2f3b8d7b1d2e7e6\r
+g1f3g8f6g2g3g7g6b2b3f8g7c1b2e8g8f1g2c7c5c2c4b8c6e1g1d7d6b1c3c8g4h2h3g4d7d2d4d8c8\r
+g1f3g8f6g2g3g7g6b2b4b7b6c1b2c8b7b1a3f8g7f1g2e8g8e1g1d7d6c2c4c7c5a3c2d8c7d2d3b8d7\r
+g1f3g8f6g2g3g7g6c2c4c7c6f1g2f8g7d2d4e8g8b1c3d7d5c4d5c6d5f3e5b7b6c1g5c8b7g5f6g7f6\r
+g1f3g8f6g2g3g7g6c2c4f8g7b1c3e8g8f1g2d7d6d2d4b8c6e1g1a7a6d4d5c6a5f3d2c7c5a1b1a8b8\r
+g1f3g8f6g2g3g7g6c2c4f8g7f1g2e8g8e1g1b8c6b1c3d7d6d2d4a7a6d4d5c6a5f3d2c7c5d1c2e7e5\r
+g1f3g8f6g2g3g7g6f1g2f8g7c2c4c7c6d2d4d7d5c4d5c6d5b1c3e8g8f3e5b8c6e1g1c8f5e5c6b7c6\r
+g1f3g8f6g2g3g7g6f1g2f8g7d2d4e8g8e1g1d7d6b2b3a7a5c2c4a5a4b3b4c7c5b4c5d6c5b1a3c5d4\r
+g1f3g8f6g2g3g7g6f1g2f8g7e1g1e8g8c2c4c7c6b2b3f6e4d2d4d7d5c1b2c8e6b1d2e4d2d1d2b8a6\r
+g1f3g8f6g2g3g7g6f1g2f8g7e1g1e8g8c2c4c7c6d2d4d7d5c4d5c6d5f3e5c8f5b1c3f6e4c1f4b8c6\r
+g1f3g8f6g2g3g7g6f1g2f8g7e1g1e8g8d2d3c7c5e2e4b8c6c2c3d7d5e4e5f6e8d3d4c8g4h2h3g4f3\r
+g1f3g8f6g2g3g7g6f1g2f8g7e1g1e8g8d2d3d7d5b1d2c7c5e2e4d5e4d3e4b8c6c2c3h7h6d1e2c8e6\r
+g1f3g8f6g2g3g7g6f1g2f8g7e1g1e8g8d2d4c7c5c2c3b7b6f3e5d7d5a2a4c8b7a4a5b8d7e5d7f6d7\r
+g2g3c7c5f1g2b8c6e2e4g7g6d2d3f8g7f2f4d7d6g1f3g8f6e1g1e8g8c2c3a8b8d1e2f6e8c1e3e8c7\r
+g2g3d7d5f1g2c7c6c2c4g8f6g1f3g7g6b2b3f8g7c1b2c8g4e1g1e8g8d2d3g4f3g2f3b8d7f3g2f8e8\r
+g2g3d7d5f1g2c7c6d2d3g8f6b1d2c8g4h2h3g4h5g1f3b8d7e1g1e7e6e2e4d5e4d3e4f8c5d1e2e8g8\r
+g2g3d7d5f2f4h7h5f1g2h5h4b1c3c7c6d2d3h4g3h2g3h8h1g2h1d8b6g1f3c8g4c3a4b6a5c2c3b8d7\r
+g2g3d7d5g1f3c7c5f1g2g7g6c2c4d5d4b2b4c5b4d1a4c8d7a4b4b8c6b4b3f8g7d2d3g8f6e1g1e8g8\r
+g2g3d7d5g1f3c7c5f1g2g7g6e1g1f8g7d2d4c5d4f3d4g8f6c2c4e8g8c4d5f6d5b1c3d5c3b2c3b8c6\r
+g2g3d7d5g1f3c7c6f1g2c8f5e1g1e7e6d2d3g8f6b1d2b8d7d1e1h7h6e2e4f5h7e1e2f8e7e4e5f6g8\r
+g2g3d7d5g1f3c7c6f1g2c8f5e1g1g8f6d2d3h7h6c2c4d5c4d3c4d8d1f1d1b8d7c1f4g7g5f4e3f8g7\r
+g2g3d7d5g1f3g8f6f1g2c7c6e1g1c8g4b2b3b8d7c1b2e7e6c2c4f8d6d2d4d8b8b1d2e8g8f1e1b7b5\r
+g2g3d7d5g1f3g8f6f1g2c8f5c2c4c7c6c4d5c6d5d1b3d8b6b3b6a7b6b1c3b8c6d2d3e7e6e1g1f8c5\r
+g2g3e7e5c2c4b8c6f1g2g7g6b1c3f8g7d2d3g8e7a1b1a7a5e2e3e8g8g1e2d7d6e1g1c8e6c3d5e7f5\r
+g2g3e7e5c2c4c7c6g1f3e5e4f3d4d7d5d2d3g8f6f1g2f8c5d4b3c5b4c1d2b4d2d1d2d5c4d3c4d8e7\r
+g2g3e7e5e2e4g8f6f1g2b8c6b1c3f8c5d2d3d7d6c3a4c5b4c2c3b4a5b2b4a5b6g1f3c8e6e1g1d8d7\r
+g2g3g7g6f1g2f8g7c2c4e7e5b1c3f7f5d2d4e5d4c3b5b8c6g1f3g8f6e1g1f6e4b5d4c6d4f3d4e8g8\r
+g2g3g7g6f1g2f8g7d2d4c7c5c2c3d8b6g1f3g8f6e1g1e8g8d4d5d7d6c3c4e7e6b1c3e6d5c4d5b8d7\r
+g2g3g7g6f1g2f8g7d2d4d7d6e2e4g8f6g1e2e8g8e1g1b8d7b1c3c7c6a2a4a7a5b2b3f8e8c1a3d8c7\r
+g2g3g7g6f1g2f8g7d2d4d7d6e2e4g8f6g1e2e8g8e1g1e7e5d4e5d6e5b2b3b8c6c1b2f8e8d1d8e8d8\r
+g2g3g7g6f1g2f8g7e2e4e7e5g1e2b8c6c2c3g8e7d2d4e5d4c3d4d7d5e4e5f7f6f2f4e8g8e1g1c8g4\r
+g2g3g7g6g1f3g8f6f1g2f8g7d2d4c7c5d4d5d7d6c2c4b7b5c4b5d8a5f3d2a5b5e1g1e8g8b1a3b5a6\r
+g2g3g8f6f1g2d7d5g1f3g7g6c2c4f8g7c4d5f6d5e1g1e8g8d2d4b8a6b1c3d5b6b2b3a6b4c1b2a7a5\r
+g2g3g8f6f1g2g7g6e2e4d7d6d2d4f8g7g1e2e8g8e1g1e7e5b1c3c7c6a2a4b8d7a4a5e5d4e2d4d7c5\r
+g2g3g8f6g1f3b7b5f1g2c8b7e1g1e7e6b2b3f8e7c2c4b5c4b3c4c7c5b1c3e8g8a1b1b7c6d2d3d7d6\r
+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$\r
+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
\ No newline at end of file
diff --git a/winboard/install/files/root/Pulsar/pulsarShatranjBlack.txt b/winboard/install/files/root/Pulsar/pulsarShatranjBlack.txt
new file mode 100644 (file)
index 0000000..4fb2e3c
--- /dev/null
@@ -0,0 +1,18 @@
+c1a3c8e6\r
+c1e3c8a6\r
+b1a3b8a6\r
+b1a3b8c6\r
+b1c3b8c6\r
+b1c3b8a6\r
+c1a3b8a6\r
+c1a3b8c6\r
+c1e3b8a6\r
+c1e3b8c6\r
+f1d3f8d6\r
+f1h3b8c6\r
+f1h3b8a6\r
+g1f3g8f6\r
+g1f3g8h6\r
+g1h3g8f6\r
+g1h3g8h6\r
+$
\ No newline at end of file
diff --git a/winboard/install/files/root/Pulsar/pulsarShatranjWhite.txt b/winboard/install/files/root/Pulsar/pulsarShatranjWhite.txt
new file mode 100644 (file)
index 0000000..f1122ba
--- /dev/null
@@ -0,0 +1,17 @@
+c1a3c8e6\r
+c1e3c8a6\r
+b1a3b8a6\r
+b1a3b8c6\r
+b1c3b8c6\r
+b1c3b8a6\r
+c1a3b8a6\r
+c1a3b8c6\r
+c1e3b8a6\r
+c1e3b8c6\r
+f1d3f8d6\r
+f1h3b8c6\r
+f1h3b8a6\r
+g1f3g8f6\r
+g1f3g8h6\r
+g1h3g8f6\r
+g1h3g8h6\r
diff --git a/winboard/install/files/root/Pulsar/suicideBookBlack.txt b/winboard/install/files/root/Pulsar/suicideBookBlack.txt
new file mode 100644 (file)
index 0000000..88e3148
--- /dev/null
@@ -0,0 +1,13 @@
+e2e3b7b5f1b5g8h6\r
+e2e3b7b5f1b5c8a6\r
+e2e3b7b5f1b5e7e6b5d7c8d7\r
+e2e3e7e6\r
+e2e3b7b6f1a6b8a6d1h5c7c5\r
+e2e3b7b6f1c4g8h6\r
+e2e3c7c5b2b4c5b4f1a6b8a6d2d3b4b3a2b3d8a5\r
+e2e3c7c5f1d3a7a5\r
+g2g3g8h6\r
+g2g3c7c5\r
+b2b3e7e6\r
+b2b3g7g6\r
+$
\ No newline at end of file
diff --git a/winboard/install/files/root/Pulsar/suicideBookWhite.txt b/winboard/install/files/root/Pulsar/suicideBookWhite.txt
new file mode 100644 (file)
index 0000000..3025cab
--- /dev/null
@@ -0,0 +1,22 @@
+e2e3b7b5f1b5f8a6\r
+e2e3b7b5f1b5e7e6\r
+e2e3e7e6\r
+e2e3b7b6\r
+e2e3c7c5\r
+g2g3b7b6c2c4\r
+g2g3b7b6g1h3\r
+g2g3g8h6b2b3\r
+g2g3a7a6b1a3c7c6a3b5\r
+g2g3a7a6e2e3\r
+b2b3e7e6b3b4f8b4g1h3\r
+b2b3e7e6b3b4f8b4c2c3\r
+b2b3e7e6g1h3\r
+b2b3g7g6b1c3\r
+b2b3g7g6g2g4b7b6c1a3\r
+b2b3g7g6g2g4b7b6c2c4\r
+b2b3c7c5b3b4c5b4c1a3\r
+b2b3c7c5b3b4c5b4b1a3\r
+b2b3c7c5c2c4b7b5c4b5c5c4b3c4\r
+b2b3b7b6b3b4\r
+b2b3b7b6c2c4\r
+$\r
diff --git a/winboard/install/files/root/Pulsar/threeBookBlack.txt b/winboard/install/files/root/Pulsar/threeBookBlack.txt
new file mode 100644 (file)
index 0000000..503a5f6
--- /dev/null
@@ -0,0 +1,33 @@
+e2e3e7e6b1c3f8b4\r
+e2e3e7e6b1c3b8c6\r
+e2e3e7e6b1c3g8f6\r
+e2e3e7e6g1f3b8c6\r
+e2e3e7e6g1f3g8f6\r
+e2e3e7e6f1d3\r
+e2e3b8c6g1f3g8f6\r
+e2e3g8f6\r
+e2e4e7e6f1b5 \r
+e2e4e7e6g1f3\r
+e2e4e7e6b1c3d8f6\r
+e2e4e7e6b1c3f8b4\r
+e2e4e7e6b1c3g8h6\r
+e2e4e7e6c2c3b8c6\r
+e2e4e7e6c2c3d8h4\r
+e2e4b8c6\r
+e2e4c7c5\r
+b1c3e7e6e2e3\r
+b1c3e7e6g1f3\r
+b1c3g8f6\r
+b1c3c7c6\r
+b1c3b8c6\r
+b1c3e7e6\r
+c2c3g8f6\r
+c2c3h7h6\r
+d2d4g8f6\r
+d2d4d7d5c2c3\r
+d2d4d7d5c1g5c7c6\r
+d2d4d7d5c1g5c8g4\r
+d2d4c7c6\r
+d2d4c7c5\r
+d2d4e7e5b1c3\r
+$
\ No newline at end of file
diff --git a/winboard/install/files/root/Pulsar/threeBookWhite.txt b/winboard/install/files/root/Pulsar/threeBookWhite.txt
new file mode 100644 (file)
index 0000000..3352ab2
--- /dev/null
@@ -0,0 +1,28 @@
+e2e3e7e6b1c3f8b4\r
+e2e3e7e6b1c3b8c6\r
+e2e3e7e6b1c3g8f6\r
+e2e3e7e6g1f3b8c6\r
+e2e3e7e6g1f3g8f6\r
+e2e3e7e6f1d3\r
+e2e3b8c6g1f3g8f6\r
+e2e3g8f6\r
+e2e4e7e5f1c4d8f6\r
+e2e4e7e5g1f3\r
+e2e4e7e6f1b5 \r
+e2e4e7e6g1f3\r
+e2e4e7e6b1c3d8f6\r
+e2e4e7e6b1c3f8b4\r
+e2e4e7e6b1c3g8h6\r
+e2e4e7e6c2c3b8c6\r
+e2e4e7e6c2c3d8h4\r
+e2e4b8c6\r
+e2e4c7c5\r
+b1c3e7e6e2e3\r
+b1c3e7e6g1f3\r
+b1c3g8f6\r
+b1c3c7c6\r
+b1c3b8c6\r
+b1c3e7e6\r
+c2c3g8f6\r
+c2c3h7h6\r
+$
\ No newline at end of file
diff --git a/winboard/install/files/root/README.html b/winboard/install/files/root/README.html
new file mode 100644 (file)
index 0000000..c8e5384
--- /dev/null
@@ -0,0 +1,106 @@
+<html>\r
+<header>\r
+<title>WinBoard Gold Pack</title>\r
+</header>\r
+<body>\r
+<table cellpadding="20"><tr><td>\r
+<h1>The WinBoard Gold Pack 4.4.0</h1>\r
+<h2>For the ultimate WinBoard experience!</h2>\r
+</td><td>\r
+<img src="WinBoard/doc/mini.gif">\r
+</td></tr></table>\r
+<p>\r
+This package bundles the core set of WinBoard and support programs,\r
+such as a tournament manager, UCI adapter, opening book,\r
+sample WinBoard and UCI engines.\r
+All pre-installed and ready to run,\r
+in order to provide an example for how things can be done.\r
+</p><p>\r
+The package includes:\r
+<pre>\r
+WinBoard 4.4.0          A GUI for Chess, to play a game or match between two WinBoard engines\r
+                        (Written by Tim Mann, Alessandro Scotti, HG.Muller and many, many others)\r
+Polyglot 1.5w22         An adapter to allow UCI engines to play under WinBoard (Fabien Letouzy)\r
+                        Version adapted to run without cygwin1.dll by Fonzy Bleumers,\r
+                        and to understand the WB protocol extensions by Michel van den Bergh\r
+PSWBTM 2.0              A tournament manager, which invokes WinBoard repeatedly\r
+                        in order toplay a complete tournament (round-robin or gauntlet)\r
+                        It also manages a database of engines (Pradu Kannan)\r
+default.bin             A small opening book used by Polyglot and WinBoard (Guenther Simon)\r
+Fairy-Max 4.8(J)        Example of a WinBoard engine, which plays many variants (H.G.Muller)\r
+Start positions         The famous Nunn and Silver opening sets, as PGN or FEN file, respectively\r
+bitmaps                 To give the Chess board a wood texture (David Dahlem)\r
+hgtable.exe             A program to make a plain-text cross table from a PGN file (H.G.Muller)\r
+These html pages        To provide a tutorial for explaining how to use what is here,\r
+                           or how to obtain what is still missing (for legal reasons).\r
+</pre>\r
+Most software is supplied without source code, but it is all open source,\r
+and links for downloading the source code are given below.\r
+</p><p>\r
+Some very useful programs or data files could not be included for reasons of incompatible licenses.\r
+It might be a good idea to start with downloading those from their respective sources,\r
+so everything works immediately when you try to reproduce the examples discussed in this tutorial.\r
+This applies to:\r
+</p>\r
+<pre>\r
+Chess Mark              A Chess Font, to dress up the appearance of the WinBoard graphics\r
+PolyglotGUI             A program by Alex Guerrero to help configuring UCI engines\r
+</pre>\r
+</p>\r
+<h2>Tutorial</h2>\r
+<h4>To install the missing components:</h4>\r
+<p>\r
+<a href="WinBoard/doc/PolyglotGUI.html">Installing Polyglot GUI</a>\r
+</p>\r
+<h4>Using the Components of this Package:</h4>\r
+<p>\r
+<a href="PSWBTM/doc/running.html">Running an Engine with PSWBTM</a>\r
+</p><p>\r
+<a href="PSWBTM/doc/tourney.html">Running a Tournament with PSWBTM</a>\r
+</p><p>\r
+<a href="PSWBTM/doc/install.html">Installing new engines</a>\r
+</p><p>\r
+<a href="PSWBTM/doc/configure.html">Configuring PSWBTM</a>\r
+</p><p>\r
+<a href="PSWBTM/doc/UCI.html">Installing UCI engines</a>\r
+</p><p>\r
+<a href="WinBoard/doc/shortcuts.html">Making Shortcuts to run WinBoard</a>\r
+</p><p>\r
+<a href="WinBoard/doc/texture.html">Changing the Look of Board and Pieces</a>\r
+</p>\r
+<h4>More Detailed Information</h4>\r
+<p>\r
+<a href="WinBoard/doc/engine-intf.html">WinBoard Protocol Description</a>\r
+</p><p>\r
+<a href="WinBoard/doc/manual.html">Overview of new WinBoard Options in Version 4.3.xx</a>\r
+</p><p>\r
+<a href=".html"></a>\r
+</p>\r
+<h4>Links for Downloading Source Files and Additional Data</h4>\r
+<p>\r
+<a href="http://www.open-aurec.com/wbforum/WinBoard/WBsrc.4.4.0.zip">WinBoard Source Code</a>\r
+</p><p>\r
+<a href="http://alpha.uhasselt.be/Research/Algebra/Toga/">Polyglot Source Code</a>\r
+</p><p>\r
+<a href="http://pradu.us/home/cc/PSWBTM/">PSWBTM Home Page</a>\r
+</p><p>\r
+<a href="http://pradu.us/home/cc/PSWBTM/PSWBTMsources.zip">PSWBTM 2.0 Source Code</a>\r
+</p><p>\r
+<a href="http://es.geocities.com/winboard_chess/">Polyglot GUI Home Page</a>\r
+</p><p>\r
+<a href="http://www.enpassant.dk/chess/fontedk.htm">A good Source of Chess Fonts</a>\r
+</p><p>\r
+<a href="http://www.orbitfiles.com/download/id3433876565.html">Polygot GUI download link</a>\r
+</p><p>\r
+<a href=""></a>\r
+</p><p>\r
+<a href=""></a>\r
+</p><p>\r
+<a href=""></a>\r
+</p><p>\r
+</p><p>\r
+</p><p>\r
+\r
+</p>\r
+</body>\r
+</html>\r
diff --git a/winboard/install/files/root/SMIRF/Smirfoglot.exe b/winboard/install/files/root/SMIRF/Smirfoglot.exe
new file mode 100644 (file)
index 0000000..c2a5a89
Binary files /dev/null and b/winboard/install/files/root/SMIRF/Smirfoglot.exe differ
diff --git a/winboard/install/files/root/WinBoard/ChessMark.ini b/winboard/install/files/root/WinBoard/ChessMark.ini
new file mode 100644 (file)
index 0000000..c9b215e
--- /dev/null
@@ -0,0 +1,16 @@
+;\r
+; Use a font to get different piece symbols\r
+; Note that the 'Chess mark' font has to be installed in your\r
+; font folder (usually C:/WINDOWS/FONTS) for this to work!\r
+;\r
+/renderPiecesWithFont="Chess Mark"\r
+/fontPieceBackColorWhite=#ffffff\r
+/fontPieceForeColorWhite=#000000\r
+/fontPieceBackColorBlack=#ffffff\r
+/fontPieceForeColorBlack=#000000\r
+/fontPieceSize=80\r
+/fontPieceToCharTable="pnbrqkomvtwl"\r
+;\r
+; prevent this from automatically becoming standard setting\r
+;\r
+/saveSettingsOnExit=false\r
diff --git a/winboard/install/files/root/WinBoard/FICS.ini b/winboard/install/files/root/WinBoard/FICS.ini
new file mode 100644 (file)
index 0000000..7bc91fb
--- /dev/null
@@ -0,0 +1,33 @@
+;\r
+; parameters for playing on FICS\r
+;\r
+/ics\r
+/icshost="freechess.org"\r
+/icshelper="timeseal"\r
+;\r
+;\r
+; switch auxiliary windows off in Human mode\r
+;\r
+/engineOutputUp=false\r
+/evalGraphUp=false\r
+/moveHistoryUp=true\r
+/autoLogo=true\r
+;\r
+;\r
+; define window positions\r
+;\r
+/winWidth=426\r
+/winHeight=539\r
+/icsX=426\r
+/icsY=200\r
+/icsW=600\r
+/icsH=339\r
+/moveHistoryX=426\r
+/moveHistoryY=0\r
+/moveHistoryW=600\r
+/moveHistoryH=200\r
+;\r
+;\r
+; prevent these settings from becoming default\r
+; \r
+/saveSettingsOnExit=false\r
diff --git a/winboard/install/files/root/WinBoard/FICS.lnk b/winboard/install/files/root/WinBoard/FICS.lnk
new file mode 100644 (file)
index 0000000..f9b5ba7
Binary files /dev/null and b/winboard/install/files/root/WinBoard/FICS.lnk differ
diff --git a/winboard/install/files/root/WinBoard/Fairy-Max.lnk b/winboard/install/files/root/WinBoard/Fairy-Max.lnk
new file mode 100644 (file)
index 0000000..4bd793d
Binary files /dev/null and b/winboard/install/files/root/WinBoard/Fairy-Max.lnk differ
diff --git a/winboard/install/files/root/WinBoard/Fruit.lnk b/winboard/install/files/root/WinBoard/Fruit.lnk
new file mode 100644 (file)
index 0000000..35e1690
Binary files /dev/null and b/winboard/install/files/root/WinBoard/Fruit.lnk differ
diff --git a/winboard/install/files/root/WinBoard/Gothic.ini b/winboard/install/files/root/WinBoard/Gothic.ini
new file mode 100644 (file)
index 0000000..0b54ff5
--- /dev/null
@@ -0,0 +1,25 @@
+;\r
+; Start up Fairy-Max for a game of Gothic Chess\r
+; first specify Human-engine and the variant\r
+;\r
+/chessProgram=true\r
+/variant=gothic\r
+;\r
+;\r
+; indicate the engine to run\r
+;\r
+/firstChessProgram="fmax"\r
+/firstDirectory="../Fairy-Max"\r
+/secondChessProgram="fmax"\r
+/secondDirectory="../Fairy-Max"\r
+;\r
+;\r
+; because board is wide, close auxiliary windows to save some space\r
+;\r
+/engineOutputUp=false\r
+/moveHistoryUp=false\r
+;\r
+;\r
+; prevent this from automatically becoming standard setting\r
+;\r
+/saveSettingsOnExit=false\r
diff --git a/winboard/install/files/root/WinBoard/ICC.ini b/winboard/install/files/root/WinBoard/ICC.ini
new file mode 100644 (file)
index 0000000..467f1b5
--- /dev/null
@@ -0,0 +1,33 @@
+;\r
+; parameters for playing on ICC\r
+;\r
+/ics\r
+/icshost="chessclub.com"\r
+/icshelper="timestamp"\r
+;\r
+;\r
+; switch auxiliary windows off in Human mode\r
+;\r
+/engineOutputUp=false\r
+/evalGraphUp=false\r
+/moveHistoryUp=true\r
+/autoLogo=true\r
+;\r
+;\r
+; define window positions\r
+;\r
+/winWidth=426\r
+/winHeight=539\r
+/icsX=426\r
+/icsY=200\r
+/icsW=600\r
+/icsH=339\r
+/moveHistoryX=426\r
+/moveHistoryY=0\r
+/moveHistoryW=600\r
+/moveHistoryH=200\r
+;\r
+;\r
+; prevent these settings from becoming default\r
+; \r
+/saveSettingsOnExit=false\r
diff --git a/winboard/install/files/root/WinBoard/ICC.lnk b/winboard/install/files/root/WinBoard/ICC.lnk
new file mode 100644 (file)
index 0000000..9089f32
Binary files /dev/null and b/winboard/install/files/root/WinBoard/ICC.lnk differ
diff --git a/winboard/install/files/root/WinBoard/ICS bot.lnk b/winboard/install/files/root/WinBoard/ICS bot.lnk
new file mode 100644 (file)
index 0000000..3e82625
Binary files /dev/null and b/winboard/install/files/root/WinBoard/ICS bot.lnk differ
diff --git a/winboard/install/files/root/WinBoard/ICSbot.ini b/winboard/install/files/root/WinBoard/ICSbot.ini
new file mode 100644 (file)
index 0000000..1f66730
--- /dev/null
@@ -0,0 +1,50 @@
+;\r
+; parameters for playing on ICC with an engine\r
+;\r
+/ics\r
+/icshost="chessclub.com"\r
+/icshelper="timestamp"\r
+;\r
+;\r
+; invoke the engine (zippy mode)\r
+;\r
+/zp\r
+/zippyVariants="normal,shatranj"\r
+/firstChessProgram="fmax"\r
+/firstDirectory="../Fairy-Max"\r
+/autoKibitz\r
+;\r
+;\r
+; define window layout\r
+;\r
+/autoLogo=true\r
+/moveHistoryUp=true\r
+/evalGraphUp=true\r
+/engineOutputUp=true\r
+;\r
+; define window positions\r
+;\r
+/minY=126\r
+/winWidth=426\r
+/winHeight=539\r
+/icsX=426\r
+/icsY=69\r
+/icsW=437\r
+/icsH=160\r
+/moveHistoryX=426\r
+/moveHistoryY=-126\r
+/moveHistoryW=437\r
+/moveHistoryH=195\r
+/evalGraphX=0\r
+/evalGraphY=-126\r
+/evalGraphW=426\r
+/evalGraphH=126\r
+/engineOutputX=426\r
+/engineOutputY=229\r
+/engineOutputW=437\r
+/engineOutputH=310\r
+;\r
+;\r
+; prevent these settings from becoming default\r
+; \r
+/saveSettingsOnExit=false\r
diff --git a/winboard/install/files/root/WinBoard/PG/fruit.ini b/winboard/install/files/root/WinBoard/PG/fruit.ini
new file mode 100644 (file)
index 0000000..1c05966
--- /dev/null
@@ -0,0 +1,80 @@
+[Polyglot]\r
+\r
+EngineName=Fruit 05/11/03\r
+EngineDir=..\Fruit\r
+EngineCommand=Fruit_21\r
+Book=true\r
+BookFile=..\WinBoard\default_book.bin\r
+Log=false\r
+LogFile=Fruit05/11/03.log\r
+Resign=false\r
+ResignMoves=3\r
+UCIVersion=1\r
+ShowPonder=true\r
+CanPonder=false\r
+SyncStop=false\r
+PromoteWorkAround=false\r
+KibitzMove=false\r
+KibitzPV=false\r
+KibitzCommand=tellall\r
+KibitzDelay=5\r
+\r
+[Engine]\r
+Hash=64\r
+NalimovPath=..\nalimov\r
+NalimovCache=4\r
+Ponder=false\r
+OwnBook=true\r
+MultiPV=1\r
+UCI_Chess960=false\r
+UCI_EngineAbout=Fruit by Fabien Letouzey, see http://www.fruitchess.com/\r
+BookFile=book.bin\r
+Time Allocation=100\r
+EGTB=true\r
+EGTB Depth=8\r
+NullMove Pruning=Always\r
+NullMove Reduction=3\r
+Verification Search=Always\r
+Verification Reduction=5\r
+History Pruning 1=true\r
+History Depth 1=1\r
+History PV Node 1=false\r
+History Move Skip 1=3\r
+History Threshold 1=40\r
+History Reduction 1=2\r
+History Leaf Pruning 1=true\r
+History Pruning 2=true\r
+History Depth 2=1\r
+History PV Node 2=false\r
+History Move Skip 2=5\r
+History Threshold 2=70\r
+History Reduction 2=1\r
+History Leaf Pruning 2=true\r
+History ReSearch=true\r
+Extended Futility Pruning=true\r
+Extended Futility Margin=300\r
+Material=100\r
+Piece Activity=100\r
+King Safety=100\r
+Pawn Structure=100\r
+Passed Pawns=100\r
+Pawn=100\r
+Knight=100\r
+Bishop=100\r
+Rook=100\r
+Queen=100\r
+Bishop Pair=100\r
+Pawn Duo=false\r
+Pawn Duo Weight=4\r
+Pawn Duo Weight (Endgame)=0\r
+Pawn Duo File a+b=1\r
+Pawn Duo File b+c=2\r
+Pawn Duo File c+d=3\r
+Pawn Duo File d+e=4\r
+Pawn Duo Rank 2=0\r
+Pawn Duo Rank 3=0\r
+Pawn Duo Rank 4=4\r
+Pawn Duo Rank 5=5\r
+Pawn Duo Rank 6=6\r
+Pawn Duo Rank 7=7\r
+Contempt Factor=0\r
diff --git a/winboard/install/files/root/WinBoard/PGN viewer.lnk b/winboard/install/files/root/WinBoard/PGN viewer.lnk
new file mode 100644 (file)
index 0000000..3cd8f36
Binary files /dev/null and b/winboard/install/files/root/WinBoard/PGN viewer.lnk differ
diff --git a/winboard/install/files/root/WinBoard/QH/eleeye.ini b/winboard/install/files/root/WinBoard/QH/eleeye.ini
new file mode 100644 (file)
index 0000000..dffdf08
--- /dev/null
@@ -0,0 +1,19 @@
+[UCCI2QH]\r
+Name=ElephantEye 3.1\r
+File=../eleeye/ELEEYE.EXE\r
+Info=ElephantEye 3.1 - AI Plugin for Qianhong\r
+Info=Designed by Morning Yellow\r
+Info=Copyright (C) 2004-2007 www.elephantbase.net\r
+Info=Authorized to ElephantEye Test Team\r
+Level=Beginner\r
+Level=Amateur\r
+Level=Expert\r
+Level=Master\r
+Level=Grand-Master\r
+Level=Overwhelming\r
+ThinkMode=time 60000 movestogo 999\r
+ThinkMode=time 60000 movestogo 216\r
+ThinkMode=time 60000 movestogo 36\r
+ThinkMode=time 60000 movestogo 6\r
+ThinkMode=time 60000 movestogo 1\r
+ThinkMode=infinite\r
diff --git a/winboard/install/files/root/WinBoard/QH2WB.exe b/winboard/install/files/root/WinBoard/QH2WB.exe
new file mode 100644 (file)
index 0000000..c2139c4
Binary files /dev/null and b/winboard/install/files/root/WinBoard/QH2WB.exe differ
diff --git a/winboard/install/files/root/WinBoard/UCCI2WB.exe b/winboard/install/files/root/WinBoard/UCCI2WB.exe
new file mode 100644 (file)
index 0000000..136295a
Binary files /dev/null and b/winboard/install/files/root/WinBoard/UCCI2WB.exe differ
diff --git a/winboard/install/files/root/WinBoard/Xiangqi.lnk b/winboard/install/files/root/WinBoard/Xiangqi.lnk
new file mode 100644 (file)
index 0000000..efa5617
Binary files /dev/null and b/winboard/install/files/root/WinBoard/Xiangqi.lnk differ
diff --git a/winboard/install/files/root/WinBoard/default_book.bin b/winboard/install/files/root/WinBoard/default_book.bin
new file mode 100644 (file)
index 0000000..331244e
Binary files /dev/null and b/winboard/install/files/root/WinBoard/default_book.bin differ
diff --git a/winboard/install/files/root/WinBoard/doc/PolyglotGUI.html b/winboard/install/files/root/WinBoard/doc/PolyglotGUI.html
new file mode 100644 (file)
index 0000000..0a03c9a
--- /dev/null
@@ -0,0 +1,90 @@
+<html>\r
+<header>\r
+<title>WGP: Polyglot GUI</title>\r
+</header>\r
+<body>\r
+<table cellpadding="20"><tr><td>\r
+<h1>The WinBoard Gold Pack 4.4.0</h1>\r
+<h2>For the ultimate WinBoard experience!</h2>\r
+</td><td>\r
+<img src="mini.gif">\r
+</td></tr></table>\r
+<p>\r
+To help in making the polyglot.ini files for UCI engines,\r
+you need to know what options the engine implements.\r
+Polyglot GUI by Alex Guerrero is a program to assist in this.\r
+It interrogates a selected engine for its options,\r
+and then displays the options to the user as a menu dialog.\r
+The user can then enter or alter the values for these options easily,\r
+where needed,\r
+(they all start as default value given by the engine).\r
+After having done this,\r
+the name of a .ini file can be entered, and the result saved on it.\r
+</p>\r
+<h3>Downloading and Installing Polyglot GUI</h3>\r
+<p>\r
+The direct download link for Plyglot GUI is given below.\r
+Clicking it will invoke the browser download popup.\r
+Click "Open" to open the zip file,\r
+and you will see the two files it contains.\r
+If this does not work, or if there is no button "Open" at all,\r
+your download software does most likely not undestand the .rar format\r
+in which Polyglot GUI is compressed.\r
+In that case, you will have to click "Save" in stead,\r
+and choose a temporary place to put the PolyglotGUI.zip file.\r
+Before being able to proceed, you must then first obtain an unzip program that does\r
+support rar format.\r
+I always use 7Zip for this, and can recommend it.\r
+In that case, read the following section.\r
+If your browser could open the zip file, you can skip that section.\r
+</p>\r
+<h3>Downloading 7-Zip</h3>\r
+<p>\r
+The download link for 7-zip is given below, or click\r
+<a href="http://www.7-zip.org/download.html">here</a>.\r
+A number of different packaes can be downloaded, easiest is to click the .exe version for Windows.\r
+This will probably trigger all kind of security alerts, so you have to convince your computer\r
+somehow that you really want to do this a number of times.\r
+It installs through a setup program, which you can invoke automatically by clicking the "Open" button.\r
+\r
+</p>\r
+<h3>Unpacking Polyglot GUI</h3>\r
+<p>\r
+Click "Extract al files" on the upper left,\r
+and this will invoke the unpack wizard.\r
+When it asks where to unpack the files,\r
+(after clicking "Next" a few times),\r
+click "browse", and browse to the Polyglot folder of the WinBoard Gold Pack\r
+(~\Polyglot15w),\r
+where the polyglot.ini files are.\r
+When you finally click "Finish", the two unpacked files are stored there.\r
+Polyglot GUI is the mmediately ready for use.\r
+</p>\r
+<h3>Links</h3>\r
+<p>\r
+<a href="http://www.orbitfiles.com/download/id3433876565.html">Polygot GUI download link</a>\r
+</p><p>\r
+<a href="http://es.geocities.com/winboard_chess/">Polyglot GUI Home Page</a>\r
+</p><p>\r
+<a href="http://www.7-zip.org/download.html">7-Zip decompression software</a>\r
+</br>\r
+<a href=".html"></a>\r
+</br>\r
+<a href=".html"></a>\r
+</br>\r
+<a href=".html"></a>\r
+</br>\r
+<a href=""></a>\r
+</br>\r
+<a href=""></a>\r
+</br>\r
+<a href=""></a>\r
+</p><p>\r
+</p><p>\r
+</p><p>\r
+</p><p>\r
+</p><p>\r
+\r
+</p>\r
+</body>\r
+</html>
\ No newline at end of file
diff --git a/winboard/install/files/root/WinBoard/doc/engine-intf.html b/winboard/install/files/root/WinBoard/doc/engine-intf.html
new file mode 100644 (file)
index 0000000..6fb7c11
--- /dev/null
@@ -0,0 +1,2250 @@
+<html>\r
+<head>\r
+<title>Chess Engine Communication Protocol</title>\r
+</head>\r
+\r
+<body>\r
+<hr noshade size="2">\r
+<h1>Chess Engine Communication Protocol</h1>\r
+<h1><font color=green>Discussion Proposal</font></h1>\r
+<h2><a href="http://www.tim-mann.org/">Tim Mann</a> &amp; <a href="http://home.hccnet.nl/h.g.muller/winboardF.html">H.G.Muller</a></h2>\r
+<p>\r
+$Id: engine-intf.html,v 2.1 2003/10/27 19:21:00 mann Exp $<br>\r
+Version 2; implemented in xboard/WinBoard 4.2.1 and later.<br>\r
+Changes since version 1 are indicated in <font color=red>red</font>.<br>\r
+Changes for WinBoard 4.3.xx are indicated in <font color=green>green</font>.<br>\r
+Proposed changes, implemented only in alpha versions are indicated in <font color=blue>blue</font>.\r
+<hr noshade size="2">\r
+\r
+<ul>\r
+<li><a href="#1">1. Introduction</a>\r
+<li><a href="#2">2. Connection</a>\r
+<li><a href="#3">3. Debugging</a>\r
+<li><a href="#4">4. How it got this way</a>\r
+<li><a href="#5">5. WinBoard requires Win32 engines</a>\r
+<li><a href="#6">6. Hints on input/output</a>\r
+<li><a href="#7">7. Signals</a>\r
+<li><a href="#8">8. Commands from xboard to the engine</a>\r
+<li><a href="#9">9. Commands from the engine to xboard</a>\r
+<li><a href="#10">10. Thinking Output</a>\r
+<li><a href="#11">11. Time control</a>\r
+<li><a href="#12">12. Analyze Mode</a>\r
+<li><a href="#13">13. Idioms and backward compatibility features</a>\r
+</ul>\r
+\r
+<hr noshade size="2">\r
+\r
+<h2><a name="1">1. Introduction</a></h2>\r
+\r
+<p>\r
+This document is a set of rough notes on the protocol that xboard and\r
+WinBoard use to communicate with gnuchessx and other chess engines.\r
+These notes may be useful if you want to connect a different chess\r
+engine to xboard.  Throughout the notes, "xboard" means both xboard\r
+and WinBoard except where they are specifically contrasted.\r
+</p>\r
+\r
+<p>\r
+There are two reasons I can imagine someone wanting to do this: \r
+</p>\r
+<ol>\r
+<li>You have, or are developing, a chess engine but you don't want to\r
+write your own graphical interface. \r
+<li>You have, or are developing,a chess engine, and you want to\r
+interface it to the Internet Chess Server.\r
+</ol>\r
+\r
+<p>\r
+In case (2), if you are using xboard, you will need to configure the\r
+"Zippy" code into it, but WinBoard includes this code already.  See\r
+the file <a\r
+href="http://www.tim-mann.org/xboard/zippy.README">zippy.README</a>\r
+in the xboard or WinBoard distribution for more information.\r
+\r
+</p>\r
+\r
+<p>\r
+These notes are unpolished, but I've attempted to make them complete\r
+in this release.  If you notice any errors, omissions, or misleading\r
+statements, let me know.\r
+</p>\r
+\r
+<p>\r
+I'd like to hear from everyone who is trying to interface their own\r
+chess engine to xboard/WinBoard. Please join the mailing list for \r
+authors of xboard/WinBoard compatible chess engines and post a message \r
+about what you're doing. The list is now hosted by Yahoo Groups; you \r
+can join at <a href="http://groups.yahoo.com/group/chess-engines" \r
+>http://groups.yahoo.com/group/chess-engines</a>, or you can read the\r
+list there without joining.  The list is filtered to prevent spam.\r
+</p>\r
+<p>\r
+<font color=green>\r
+Note that the WinBoard 4.3.xx line was developed independently of the\r
+original GNU project, by H.G.Muller.\r
+If you have questions about WinBoard 4.3.xx, or want to report bugs in it,\r
+report them in the appropriate section of the \r
+<a href="http://www.open-aurec.com/wbforum/">WinBoard forum</a>.\r
+</font>\r
+</p>\r
+\r
+<h2><a name="2">2. Connection</a></h2>\r
+\r
+<p>\r
+An xboard chess engine runs as a separate process from xboard itself,\r
+connected to xboard through a pair of anonymous pipes.  The engine\r
+does not have to do anything special to set up these pipes.  xboard\r
+sets up the pipes itself and starts the engine with one pipe as its\r
+standard input and the other as its standard output.  The engine then\r
+reads commands from its standard input and writes responses to its\r
+standard output.  This is, unfortunately, a little more complicated to\r
+do right than it sounds; see <a href="#6">section 6</a> below.\r
+</p>\r
+\r
+<p>\r
+And yes, contrary to some people's expectations, exactly the same\r
+thing is true for WinBoard.  Pipes and standard input/output are\r
+implemented in Win32 and work fine.  You don't have to use DDE, COM,\r
+DLLs, BSOD, or any of the other infinite complexity that\r
+Microsoft has created just to talk between two programs.  A WinBoard\r
+chess engine is a Win32 console program that simply reads from its\r
+standard input and writes to its standard output.  See sections \r
+<a href="#5">5</a> and <a href="#6">6</a> below for additional details.\r
+</p>\r
+\r
+<h2><a name="3">3. Debugging</a></h2>\r
+\r
+<p>\r
+To diagnose problems in your engine's interaction with xboard, use the\r
+-debug flag on xboard's command line to see the messages that are\r
+being exchanged.  In WinBoard, these messages are written to the file\r
+WinBoard.debug instead of going to the screen.\r
+</p>\r
+\r
+<p>\r
+You can turn debug mode on or off while WinBoard is running by\r
+pressing Ctrl+Alt+F12.  You can turn debug mode on or off while xboard\r
+is running by binding DebugProc to a shortcut key (and pressing the\r
+key!); see the instructions on shortcut keys in the xboard man page.\r
+</p>\r
+\r
+<p>\r
+While your engine is running under xboard/WinBoard, you can send a\r
+command directly to the engine by pressing Shift+1 (xboard) or Alt+1\r
+(WinBoard 4.0.3 and later).  This brings up a dialog that you can type\r
+your command into.  Press Shift+2 (Alt+2) instead to send to the\r
+second chess engine in Two Machines mode.  On WinBoard 4.0.2 and earlier,\r
+Ctrl+Alt is used in place of Alt; this had to be changed due to a conflict\r
+with typing the @-sign on some European keyboards.\r
+</p>\r
+\r
+<h2><a name="4">4. How it got this way</a></h2>\r
+\r
+<p>\r
+Originally, xboard was just trying to talk to the existing\r
+command-line interface of GNU Chess 3.1+ and 4, which was designed\r
+for people to type commands to.  So the communication protocol is very\r
+ad-hoc.  It might have been good to redesign it early on, but because\r
+xboard and GNU Chess are separate programs, I didn't want to force\r
+people to upgrade them together to versions that matched.  I\r
+particularly wanted to keep new versions of xboard working with old\r
+versions of GNU Chess, to make it easier to compare the play of old\r
+and new gnuchess versions.  I didn't foresee the need for a clean\r
+protocol to be used with other chess engines in the future.\r
+</p>\r
+\r
+<p>\r
+Circumstances have changed over the years, and now there are many more\r
+engines that work with xboard.  I've had to make the protocol\r
+description more precise, I've added some features that GNU Chess\r
+does not support, and I've specified the standard semantics of a few\r
+features to be slightly different from what GNU Chess 4 does.\r
+</p>\r
+\r
+<p>\r
+<font color=red>\r
+This release of the protocol specification is the first to carry a\r
+version number of its own -- version 2.  Previous releases simply\r
+carried a last-modified date and were loosely tied to specific \r
+releases of xboard and WinBoard.  The version number "1" applies\r
+generally to all those older versions of the protocol.\r
+</font>\r
+\r
+<font color=red>\r
+<p>Protocol version 2 remains compatible with older engines but has\r
+several new capabilities.  In particular, it adds the \r
+"feature" command, a new mechanism for making backward-compatible\r
+changes and extensions to the protocol.  Engines that do not support a\r
+particular new feature do not have to use it; new features are not\r
+enabled unless the engine specifically requests them using the feature\r
+command.  If an engine does not send the feature command at all, the\r
+protocol behavior is nearly identical to version 1.  Several new\r
+features can be selected by the feature command in version 2,\r
+including the "ping" command (recommended for all engines), the\r
+"setboard" command, and many optional parameters.  Additional features\r
+will probably be added in future versions.\r
+</p>\r
+\r
+<p>\r
+<font color=green>\r
+If it is necessary to have a separate name, \r
+it would be best to refer to the protocol including the green additions as version 2f.\r
+I really don't think it is a different protocol from version 2, though.\r
+I just tried to clarify some ambiguities in the original definition,\r
+now that the WinBoard 4.3.xx line has implemented them in a specific way.\r
+The hand-shaking protocol for features as defined in protocol 2 perfectly\r
+allows addition of an occasional new features without any need for stepping up the protocol version number,\r
+and I think refraining from the latter would enormously lower the barrier for actual\r
+implementation of these features in engines.\r
+<br>\r
+The two really new things are the engine debug comments, and the "nps" command.\r
+The former merely tries to regulate an extremely common existing pactice \r
+of having engines dump debug messages on WinBoard in an unprotected way, \r
+as usually you get away with that.\r
+</font>\r
+\r
+</font>\r
+\r
+<h2><a name="5">5. WinBoard requires Win32 engines</a></h2>\r
+\r
+<p>\r
+Due to some Microsoft brain damage that I don't understand, WinBoard\r
+does not work with chess engines that were compiled to use a DOS\r
+extender for 32-bit addressing.  (Probably not with 16-bit DOS or\r
+Windows programs either.)  WinBoard works only with engines that are\r
+compiled for the Win32 API.  You can get a free compiler that targets\r
+the Win32 API from <a href="http://sources.redhat.com/cygwin/"\r
+>http://sources.redhat.com/cygwin/</a>.  I think DJGPP 2.x should also\r
+work if you use the RSXNTDJ extension, but I haven't tried it.  Of\r
+course, Microsoft Visual C++ will work.  Most likely the other\r
+commercial products that support Win32 will work too (Borland, etc.),\r
+but I have not tried them.  Delphi has been successfully used to write\r
+engines for WinBoard; if you want to do this, Tony Werten has donated\r
+some <a href="http://www.tim-mann.org/winboard/delphi.txt" >sample\r
+code</a> that should help you get started.\r
+</p>\r
+\r
+<h2><a name="6">6. Hints on input/output</a></h2>\r
+\r
+<p>\r
+Beware of using buffered I/O in your chess engine.  The C stdio\r
+library, C++ streams, and the I/O packages in most other languages use\r
+buffering both on input and output.  That means two things.  First,\r
+when your engine tries to write some characters to xboard, the library\r
+stashes them in an internal buffer and does not actually write them to\r
+the pipe connected to xboard until either the buffer fills up or you\r
+call a special library routine asking for it to be flushed.  (In C\r
+stdio, this routine is named <tt>fflush</tt>.)  Second, when your engine tries\r
+to read some characters from xboard, the library does not read just\r
+the characters you asked for -- it reads all the characters that are\r
+currently available (up to some limit) and stashes any characters you\r
+are not yet ready for in an internal buffer.  The next time you ask to\r
+read, you get the characters from the buffer (if any) before the\r
+library tries to read more data from the actual pipe.\r
+</p>\r
+\r
+<p>\r
+Why does this cause problems?  First, on the output side, remember\r
+that your engine produces output in small quantities (say, a few\r
+characters for a move, or a line or two giving the current analysis),\r
+and that data always needs to be delivered to xboard/WinBoard for\r
+display immediately.  If you use buffered output, the data you print\r
+will sit in a buffer in your own address space instead of being\r
+delivered.\r
+</p>\r
+\r
+<p>\r
+You can usually fix the output buffering problem by asking for the\r
+buffering to be turned off.  In C stdio, you do this by calling\r
+<tt>setbuf(stdout, NULL)</tt>.  A more laborious and error-prone\r
+method is to carefully call <tt>fflush(stdout)</tt> after every line\r
+you output; I don't recommend this.  In C++, you can try\r
+<tt>cout.setf(ios::unitbuf)</tt>, which is documented in current\r
+editions of "The C++ Programming Language," but not older ones.\r
+Another C++ method that might work is\r
+<tt>cout.rdbuf()-&gt;setbuf(NULL, 0)</tt>.  Alternatively, you can\r
+carefully call <tt>cout.flush()</tt> after every line you output;\r
+again, I don't recommend this.\r
+</p>\r
+\r
+<p>\r
+Another way to fix the problem is to use unbuffered operating system\r
+calls to write directly to the file descriptor for standard output.\r
+On Unix, this means <tt>write(1, ...)</tt> -- see the man page for write(2).\r
+On Win32, you can use either the Unix-like <tt>_write(1, ...)</tt> or Win32\r
+native routines like <tt>WriteFile</tt>.\r
+</p>\r
+\r
+<p>\r
+Second, on the input side, you are likely to want to poll during your\r
+search and stop it if new input has come in.  If you implement\r
+pondering, you'll need this so that pondering stops when the user\r
+makes a move.  You should also poll during normal thinking on your\r
+move, so that you can implement the "?" (move now) command, and so\r
+that you can respond promptly to a "result", "force", or "quit"\r
+command if xboard wants to end the game or terminate your engine.\r
+Buffered input makes polling more complicated -- when you poll, you\r
+must stop your search if there are <em>either</em> characters in the buffer\r
+<em>or</em> characters available from the underlying file descriptor.\r
+</p>\r
+\r
+<p>\r
+The most direct way to fix this problem is to use unbuffered operating\r
+system calls to read (and poll) the underlying file descriptor\r
+directly.  On Unix, use <tt>read(0, ...)</tt> to read from standard input, and\r
+use <tt>select()</tt> to poll it.  See the man pages read(2) and select(2).\r
+(Don't follow the example of GNU Chess 4 and use the FIONREAD ioctl to\r
+poll for input.  It is not very portable; that is, it does not exist\r
+on all versions of Unix, and is broken on some that do have it.)  On\r
+Win32, you can use either the Unix-like <tt>_read(0, ...)</tt> or the native\r
+Win32 <tt>ReadFile()</tt> to read.  Unfortunately, under Win32, the function to\r
+use for polling is different depending on whether the input device is\r
+a pipe, a console, or something else.  (More Microsoft brain damage\r
+here -- did they never hear of device independence?)  For pipes, you\r
+can use <tt>PeekNamedPipe</tt> to poll (even when the pipe is unnamed).\r
+For consoles, \r
+you can use <tt>GetNumberOfConsoleInputEvents</tt>.  For sockets only, you can\r
+use <tt>select()</tt>.  It might be possible to use\r
+<tt>WaitForSingleObject</tt> more \r
+generally, but I have not tried it.  Some code to do these things can\r
+be found in Crafty's utility.c, but I don't guarantee that it's all\r
+correct or optimal.\r
+</p>\r
+\r
+<p>\r
+A second way to fix the problem might be to ask your I/O library not\r
+to buffer on input.  It should then be safe to poll the underlying\r
+file descriptor as described above.  With C, you can try calling\r
+<tt>setbuf(stdin, NULL)</tt>.  However, I have never tried this.  Also, there\r
+could be problems if you use <tt>scanf()</tt>, at least with certain patterns,\r
+because <tt>scanf()</tt> sometimes needs to read one extra character and "push\r
+it back" into the buffer; hence, there is a one-character pushback\r
+buffer even if you asked for stdio to be unbuffered.  With C++, you\r
+can try <tt>cin.rdbuf()-&gt;setbuf(NULL, 0)</tt>, but again, I have never tried\r
+this.\r
+</p>\r
+\r
+<p>\r
+A third way to fix the problem is to check whether there are\r
+characters in the buffer whenever you poll.  C I/O libraries generally\r
+do not provide any portable way to do this.  Under C++, you can use\r
+<tt>cin.rdbuf()-&gt;in_avail()</tt>.  This method has been reported to\r
+work with \r
+EXchess.  Remember that if there are no characters in the buffer, you\r
+still have to poll the underlying file descriptor too, using the\r
+method described above.\r
+</p>\r
+\r
+<p>\r
+A fourth way to fix the problem is to use a separate thread to read\r
+from stdin.  This way works well if you are familiar with thread\r
+programming.  This thread can be blocked waiting for input to come in\r
+at all times, while the main thread of your engine does its thinking.\r
+When input arrives, you have the thread put the input into a buffer\r
+and set a flag in a global variable.  Your search routine then\r
+periodically tests the global variable to see if there is input to\r
+process, and stops if there is.  WinBoard and my Win32 ports of ICC\r
+timestamp and FICS timeseal use threads to handle multiple input\r
+sources.\r
+</p>\r
+\r
+<h2><a name="7">7. Signals</a></h2>\r
+\r
+<p>Engines that run on Unix need to be concerned with two Unix\r
+signals: <tt>SIGTERM</tt> and <tt>SIGINT</tt>.  This applies both to\r
+engines that run under xboard and (the unusual case of) engines that\r
+WinBoard remotely runs on a Unix host using the -firstHost or\r
+-secondHost feature.  It does not apply to engines that run on\r
+Windows, because Windows does not have Unix-style signals.\r
+<font color=red>\r
+Beginning with version 2, you can now turn off the use of\r
+either or both\r
+signals.  See the "feature" command in <a href="#6">section 9</a> below.\r
+</font>\r
+</p>\r
+\r
+<p>First, when an engine is sent the "quit" command, it is also given\r
+a <tt>SIGTERM</tt> signal shortly afterward to make sure it goes away.\r
+If your engine reliably responds to "quit", and the signal causes\r
+problems for you, you should either ignore it by calling\r
+<tt>signal(SIGTERM, SIG_IGN)</tt> at the start of your program,\r
+or disable it with the "feature" command.</p>\r
+\r
+<p>Second, xboard will send an interrupt signal (<tt>SIGINT</tt>) at\r
+certain times when it believes the engine may not be listening to user\r
+input (thinking or pondering).  WinBoard currently does this only when\r
+the engine is running remotely using the -firstHost or -secondHost\r
+feature, not when it is running locally.  You probably need to know\r
+only enough about this grungy feature to keep it from getting in your\r
+way.\r
+</p>\r
+\r
+<p>\r
+The <tt>SIGINT</tt>s are basically tailored to the needs of GNU Chess 4\r
+on systems where its input polling code is broken or disabled.\r
+Because they work in a rather peculiar way, it is recommended that you\r
+either ignore <tt>SIGINT</tt> by having your engine call\r
+<tt>signal(SIGINT, SIG_IGN)</tt>, or disable it with the "feature"\r
+command.</p>\r
+\r
+<p>\r
+Here are details for the curious.  If xboard needs to send a command\r
+when it is the chess engine's move (such as before the "?" command), \r
+it sends a <tt>SIGINT</tt> first.  If xboard needs to send commands when it is\r
+not the chess engine's move, but the chess engine may be pondering\r
+(thinking on its opponent's time) or analyzing (analysis or analyze\r
+file mode), xboard sends a <tt>SIGINT</tt> before the first such command only.\r
+Another <tt>SIGINT</tt> is not sent until another move is made, even if xboard\r
+issues more commands.  This behavior is necessary for GNU Chess 4.  The\r
+first <tt>SIGINT</tt> stops it from pondering until the next move, but on some\r
+systems, GNU Chess 4 will die if it receives a <tt>SIGINT</tt> when not \r
+actually thinking or pondering.\r
+</p>\r
+\r
+<p>\r
+There are two reasons why WinBoard does not send the Win32 equivalent\r
+of <tt>SIGINT</tt> (which is called <tt>CTRL_C_EVENT</tt>) to local\r
+engines.  First, the Win32 GNU Chess 4 port does not need it.  Second, I\r
+could not find a way to get it to work.  Win32 seems to be designed\r
+under the assumption that only console applications, not windowed\r
+applications, would ever want to send a <tt>CTRL_C_EVENT</tt>.\r
+</p>\r
+\r
+<h2><a name="8">8. Commands from xboard to the engine</a></h2>\r
+\r
+<p>\r
+All commands from xboard to the engine end with a newline (\n), even\r
+where that is not explicitly stated.  All your output to xboard must\r
+be in complete lines; any form of prompt or partial line will cause\r
+problems.\r
+</p>\r
+\r
+<p>\r
+At the beginning of each game, xboard sends an initialization string.\r
+This is currently "new\nrandom\n" unless the user changes it with the\r
+initString or secondInitString option.\r
+</p>\r
+\r
+<p>\r
+xboard normally reuses the same chess engine process for multiple\r
+games.  At the end of a game, xboard will send the "force" command\r
+(see below) to make sure your engine stops thinking about the current\r
+position.  It will later send the initString again to start a new\r
+game.  If your engine can't play multiple games, you can disable reuse\r
+<font color=red>\r
+either with the "feature" command (beginning in protocol version\r
+2; see below) or \r
+</font>\r
+with xboard's -xreuse (or -xreuse2) command line\r
+option.  xboard will then ask the process to quit after each game and\r
+start a new process for the next game.\r
+</p>\r
+\r
+<dl>\r
+<dt><strong>xboard</strong>\r
+<dd>This command will be sent once immediately after your engine\r
+process is started.  You can use it to put your engine into "xboard\r
+mode" if that is needed.  If your engine prints a prompt to ask for\r
+user input, you must turn off the prompt and output a newline when the\r
+"xboard" command comes in.\r
+<p>\r
+\r
+<dt><font color=red><strong>protover N</strong></font>\r
+<dd><font color=red>\r
+Beginning in protocol version 2 (in which N=2), this command will\r
+be sent immediately after the "xboard" command.  If you receive some\r
+other command immediately after "xboard" (such as "new"), you can\r
+assume that protocol version 1 is in use.  The "protover" command is\r
+the only new command that xboard always sends in version 2.  All other\r
+new commands to the engine are sent only if the engine first enables\r
+them with the "feature" command.  Protocol versions will always be\r
+simple integers so that they can easily be compared.\r
+\r
+<p>Your engine should reply to the protover command by sending the\r
+"feature" command (see below) with the list of non-default feature\r
+settings that you require, if any.\r
+\r
+<p>Your engine should never refuse to run due to receiving a higher\r
+protocol version number than it is expecting!  New protocol versions\r
+will always be compatible with older ones by default; the larger\r
+version number is simply a hint that additional "feature" command\r
+options added in later protocol versions may be accepted.\r
+</font>\r
+<p>\r
+\r
+<dt><font color=red><strong>accepted</strong></font>\r
+<dt><font color=red><strong>rejected</strong></font>\r
+<dd><font color=red>\r
+These commands may be sent to your engine in reply to the "feature"\r
+command; see its documentation below.\r
+</font>\r
+<p>\r
+\r
+<dt><strong>new</strong>\r
+<dd>Reset the board to the standard chess starting position.  Set\r
+White on move.  Leave force mode and set the engine to play Black.\r
+Associate the engine's clock with Black and the opponent's clock with\r
+White.  Reset clocks and time controls to the start of a new game.\r
+Use wall clock for time measurement.\r
+Stop clocks.  Do not ponder on this move, even if pondering is on.\r
+Remove any search depth limit previously set by the sd command.\r
+<p>\r
+\r
+<dt><strong>variant VARNAME</strong>\r
+<dd>If the game is not standard chess, but a variant, this command is\r
+sent after "new" and before the first move or "edit" command.  Currently\r
+defined variant names are:\r
+\r
+<table>\r
+<tr align="left"><th>wildcastle<td>Shuffle chess where king can castle from d file\r
+<tr align="left"><th>nocastle<td>Shuffle chess with no castling at all\r
+<tr align="left"><th>fischerandom<td>Fischer Random\r
+<tr align="left"><th>bughouse<td>Bughouse, ICC/FICS rules\r
+<tr align="left"><th>crazyhouse<td>Crazyhouse, ICC/FICS rules\r
+<tr align="left"><th>losers<td>Win by losing all pieces or getting mated (ICC)\r
+<tr align="left"><th>suicide<td>Win by losing all pieces including king,\r
+or by having fewer pieces when one player has no legal moves (FICS)\r
+<tr align="left"><th><font color=red>giveaway</font>\r
+<td><font color=red>Win by losing all pieces including king,\r
+or by having no legal moves (ICC)</font>\r
+<tr align="left"><th>twokings<td>Weird ICC wild 9\r
+<tr align="left"><th>kriegspiel<td>Kriegspiel (engines not supported)\r
+<tr align="left"><th>atomic<td>Atomic\r
+<tr align="left"><th>3check<td>Win by giving check 3 times\r
+<tr align="left"><th><font color=green>xiangqi</font>\r
+<td><font color=green>Chinese Chess (9x10 board)</font>\r
+<tr align="left"><th><font color=green>shogi</font>\r
+<td><font color=green>Japanese Chess (9x9 bord)</font>\r
+<tr align="left"><th><font color=green>capablanca</font>\r
+<td><font color=green>Capablanca Chess (10x8 board, with Archbishop and Chancellor)</font>\r
+<tr align="left"><th><font color=green>gothic</font>\r
+<td><font color=green>Gothic Chess (10x8 board, same with better opening setup)</font>\r
+<tr align="left"><th><font color=green>falcon</font>\r
+<td><font color=green>Falcon Chess (10x8 board, with two Falcon pieces)</font>\r
+<tr align="left"><th><font color=green>shatranj</font>\r
+<td><font color=green>ancient Arabic Chess, with Elephants and General in stead of B and Q</font>\r
+<tr align="left"><th><font color=green>courier</font>\r
+<td><font color=green>Courier Chess (12x8 board, a medieval precursor of modern Chess</font>\r
+<tr align="left"><th><font color=green>knightmate</font>\r
+<td><font color=green>King moves as Knight and vice versa</font>\r
+<tr align="left"><th><font color=green>berolina</font><td>\r
+<font color=green>Pawns capture straight ahead, and move diagonally</font>\r
+<tr align="left"><th><font color=green>janus</font><td>\r
+<font color=green>Janus Chess (10x8, with two Archbishops)</font>\r
+<tr align="left"><th><font color=green>caparandom</font>\r
+<td><font color=green>shuffle variant like FRC (10x8 board)</font>\r
+<tr align="left"><th><font color=green>cylinder</font>\r
+<td><font color=green>Pieces wrap around between side edges, like board is a cylinder</font>\r
+<tr align="left"><th><font color=blue>super</font>\r
+<td><font color=blue>Superchess: a shuffle variant with 4 fairy pieces on 8x8 board</font>\r
+<tr align="left"><th>unknown<td>Unknown variant (not supported)\r
+</table>\r
+<p>\r
+\r
+<dt><strong>quit</strong>\r
+<dd>The chess engine should immediately exit.  This command is used\r
+when xboard is itself exiting, and also between games if the -xreuse\r
+command line option is given (or -xreuse2 for the second engine).\r
+See also <a href="#7">Signals</a> above.\r
+<p>\r
+\r
+<dt><strong>random</strong>\r
+<dd>This command is specific to GNU Chess 4.  You can either ignore it\r
+completely (that is, treat it as a no-op) or implement it as GNU Chess\r
+does.  The command toggles "random" mode (that is, it sets random =\r
+!random).  In random mode, the engine adds a small random value to its\r
+evaluation function to vary its play.  The "new" command sets random\r
+mode off.\r
+<p>\r
+\r
+<dt><strong>force</strong>\r
+<dd>Set the engine to play neither color ("force mode").  Stop clocks.\r
+The engine should check that moves received in force mode are legal\r
+and made in the proper turn, but should not think, ponder, or make\r
+moves of its own.\r
+<p>\r
+\r
+<dt><strong>go</strong>\r
+<dd>Leave force mode and set the engine to play the color that is on\r
+move.  Associate the engine's clock with the color that is on move,\r
+the opponent's clock with the color that is not on move.  Start the engine's\r
+clock.  Start thinking and eventually make a move.\r
+<p>\r
+\r
+<dt><font color=red><strong>playother</strong></font>\r
+<dd>\r
+<font color=red>\r
+(This command is new in protocol version 2.  It is not\r
+sent unless you enable it with the feature command.)\r
+Leave force mode and set the engine to play the color that is <i>not</i> on\r
+move.  Associate the opponent's clock with the color that is on move,\r
+the engine's clock with the color that is not on move.  Start the opponent's\r
+clock.  If pondering is enabled, the engine should begin pondering.\r
+If the engine later receives a move, it should start thinking and eventually\r
+reply.\r
+</font>\r
+<p>\r
+\r
+<dt><strong>white</strong>\r
+<dd>\r
+<font color=red>\r
+(This command is obsolete as of protocol version 2, but is still\r
+sent in some situations to accommodate older engines unless you disable it \r
+with the feature command.)\r
+</font>\r
+Set White on move.  Set the engine to play Black.  Stop clocks.\r
+<p>\r
+  \r
+<dt><strong>black</strong>\r
+<dd>\r
+<font color=red>\r
+(This command is obsolete as of protocol version 2, but is still\r
+sent in some situations to accommodate older engines unless you disable it \r
+with the feature command.)\r
+</font>\r
+Set Black on move.  Set the engine to play White.  Stop clocks.\r
+<p>\r
+\r
+<dt><strong>level MPS BASE INC</strong>\r
+<dd>Set time controls.  See the <a href="#11">Time Control</a> section below.\r
+<p>\r
+  \r
+<dt><strong>st TIME</strong>\r
+<dd>Set time controls.  See the <a href="#11">Time Control</a> section\r
+below. \r
+<p>\r
+\r
+<dt><strong>sd DEPTH</strong>\r
+<dd>The engine should limit its thinking to DEPTH ply.\r
+<font color=green>The commands "level" or "st" and "sd" can be used together in an orthogonal way.\r
+If both are issued, the engine should observe both limitations:</font>\r
+In the protocol, the "sd" command isn't a time control.  It doesn't\r
+say that your engine has unlimited time but must search to exactly the\r
+given depth.  It says that you should pay attention to the time\r
+control as normal, but cut off the search at the specified depth even\r
+if you have time to search deeper.  If you don't have time to search\r
+to the specified depth, given your normal time management algorithm,\r
+then you will want to stop sooner than the given depth.\r
+<p>\r
+The "new" command should set the search depth back to unlimited.  This\r
+is already stated in the spec.  The "level" command should not affect\r
+the search depth.  As it happens, xboard/WinBoard currently always\r
+sends sd (if needed) right after level, but that isn't part of the\r
+spec.\r
+<p>\r
+\r
+<dt><font color=green><strong>nps NODE_RATE</strong></font>\r
+<dd><font color=green>The engine should not use wall-clock time to make its timing decisions,\r
+but an own internal time measure based on the number of nodes it has searched\r
+(and will report as "thinking output", see <a href="#10">section 10</a>),\r
+converted to seconds through dividing by the given NODE_RATE.\r
+Example: after receiving the commands "st 8" and "nps 10000",\r
+the engine should never use more that 80,000 nodes in the search for any move.\r
+In this mode, the engine should report user CPU time used (in its thinking output), \r
+rather than wall-clock time.\r
+This even holds if NODE_RATE is given as 0,\r
+but in that case it should also use the user CPU time for its timing decisions.\r
+The effect of an "nps" command should persist until the next "new" command.\r
+</font>\r
+<p>\r
+\r
+<dt><strong>time N</strong>\r
+<dd>Set a clock that always belongs to the engine.  N is a number in\r
+  centiseconds (units of 1/100 second).  Even if the engine changes to\r
+  playing the opposite color, this clock remains with the engine.\r
+<p>\r
+\r
+<dt><strong>otim N</strong>\r
+\r
+<dd>Set a clock that always belongs to the opponent.  N is a number in\r
+centiseconds (units of 1/100 second).  Even if the opponent changes to\r
+playing the opposite color, this clock remains with the opponent.\r
+<p>\r
+If needed for purposes of board display in force mode (where the\r
+engine is not participating in the game) the time clock should be\r
+associated with the last color that the engine was set to play, the\r
+otim clock with the opposite color.\r
+</p>\r
+<p>\r
+<font color=green>This business of "clocks remaining with the engine" is apparently so ambiguous\r
+that many engines implement it wrong.\r
+The clocks in fact always remain with the color.\r
+Which clock reading is relayed with "time", and which by "otim", is determined by which side the engine plays.\r
+Note that the way the clocks operate and receive extra time (in accordance with the selected time control)\r
+is not affected in any way by which moves are made by the engine, which by the opponent, and which were forced.\r
+</font>\r
+</p>\r
+<p>\r
+<font color=red>\r
+Beginning in protocol version 2, if you can't handle the time and\r
+otim commands, you can use the "feature" command to disable them; see\r
+below.  \r
+</font>\r
+The following techniques from older protocol versions also\r
+work: You can ignore the time and otim commands (that is, treat them\r
+as no-ops), or send back "Error (unknown command): time" the first\r
+time you see "time".\r
+</p>\r
+\r
+<dt><strong>MOVE</strong>\r
+<dd>See below for the syntax of moves.  If the move is illegal, print\r
+an error message; see the section "<a href="#9">Commands from the engine to\r
+xboard</a>".  If the move is legal and in turn, make it.  If not in force\r
+mode, stop the opponent's clock, start the engine's clock, start\r
+thinking, and eventually make a move.\r
+<p>\r
+When xboard sends your engine a move, it normally sends coordinate\r
+algebraic notation.  Examples:\r
+<p>\r
+<table>\r
+<tr align="left"><td>Normal moves:<td>e2e4\r
+<tr align="left"><td>Pawn promotion:<td>e7e8q\r
+<tr align="left"><td>Castling:<td>e1g1, e1c1, e8g8, e8c8\r
+<tr align="left"><td>Bughouse/crazyhouse drop:<td>P@h3\r
+<tr align="left"><td>ICS Wild 0/1 castling:<td>d1f1, d1b1, d8f8, d8b8\r
+<tr align="left"><td>FischerRandom castling:<td>O-O, O-O-O (oh, not zero)\r
+</table>\r
+\r
+<p>\r
+<font color=green>\r
+Note that on boards with more than 9 ranks, counting of the ranks starts at 0.\r
+</font>\r
+</p>\r
+<p>\r
+<font color=red>\r
+Beginning in protocol version 2, you can use the feature command\r
+to select SAN (standard algebraic notation) instead; for example, e4,\r
+Nf3, exd5, Bxf7+, Qxf7#, e8=Q, O-O, or P@h3.  Note that the last form,\r
+P@h3, is a extension to the PGN standard's definition of SAN, which does\r
+not support bughouse or crazyhouse.\r
+</font>\r
+</p>\r
+\r
+<p>\r
+xboard doesn't reliably detect illegal moves, because it does not keep\r
+track of castling unavailability due to king or rook moves, or en\r
+passant availability.  If xboard sends an illegal move, send back an\r
+error message so that xboard can retract it and inform the user; see\r
+the section "<a href="#9">Commands from the engine to xboard</a>".\r
+</p>\r
+\r
+<dt><font color=red><strong>usermove MOVE</strong></font>\r
+<dd><font color=red>\r
+By default, moves are sent to the engine without a command name;\r
+the notation is just sent as a line by itself.\r
+Beginning in protocol version 2, you can use the feature command\r
+to cause the command name "usermove" to be sent before the move.\r
+Example: "usermove e2e4".\r
+</font>\r
+</p>\r
+\r
+<dt><strong>?</strong>\r
+<dd>Move now.  If your engine is thinking, it should move immediately;\r
+  otherwise, the command should be ignored (treated as a no-op).  It\r
+  is permissible for your engine to always ignore the ? command.  The\r
+  only bad consequence is that xboard's Move Now menu command will do\r
+  nothing.\r
+<p>\r
+It is also permissible for your engine to move immediately if it gets\r
+any command while thinking, as long as it processes the command right\r
+after moving, but it's preferable if you don't do this.  For example,\r
+xboard may send post, nopost, easy, hard, force, quit,\r
+<font color=red>\r
+or other commands\r
+</font>\r
+while the engine is on move.\r
+</p>\r
+\r
+<dt><font color=red><strong>ping N</strong></font>\r
+<dd>\r
+<font color=red>\r
+In this command, N is a decimal number.  When you receive the command,\r
+reply by sending the string <strong>pong N</strong>, where N is the\r
+same number you received.  Important: You must not reply to a "ping"\r
+command until you have finished executing all commands that you\r
+received before it.  Pondering does not count; if you receive a ping\r
+while pondering, you should reply immediately and continue pondering.\r
+Because of the way xboard uses the ping command, if you implement the\r
+other commands in this protocol, you should never see a "ping" command\r
+when it is your move; however, if you do, you must not send the "pong"\r
+reply to xboard until after you send your move.  For example, xboard\r
+may send "?" immediately followed by "ping".  If you implement the "?"\r
+command, you will have moved by the time you see the subsequent ping\r
+command.  Similarly, xboard may send a sequence like "force", "new",\r
+"ping".  You must not send the pong response until after you have\r
+finished executing the "new" command and are ready for the new game to\r
+start.\r
+\r
+<p>\r
+The ping command is new in protocol version 2 and will not be sent\r
+unless you enable it with the "feature" command.  Its purpose is to\r
+allow several race conditions that could occur in previous versions of\r
+the protocol to be fixed, so it is highly recommended that you\r
+implement it.  It is especially important in simple engines that do\r
+not ponder and do not poll for input while thinking, but it is needed in all\r
+engines.  \r
+</p>\r
+</font>\r
+\r
+<dt><strong>draw</strong>\r
+<dd>The engine's opponent offers the engine a draw.  To accept the\r
+draw, send "offer draw".  To decline, ignore the offer (that is, send\r
+nothing).  If you're playing on ICS, it's possible for the draw offer\r
+to have been withdrawn by the time you accept it, so don't assume the\r
+game is over because you accept a draw offer.  Continue playing until\r
+xboard tells you the game is over.  See also "offer draw" below.\r
+<p>\r
+\r
+<dt><strong>result RESULT {COMMENT}</strong>\r
+<dd>After the end of each game, xboard will send you a result command.\r
+You can use this command to trigger learning.  RESULT is either 1-0,\r
+0-1, 1/2-1/2, or *, indicating whether white won, black won, the game\r
+was a draw, or the game was unfinished.  The COMMENT string is purely\r
+a human-readable comment; its content is unspecified and subject to\r
+change.  In ICS mode, it is passed through from ICS uninterpreted.\r
+Example: <pre>result 1-0 {White mates}</pre>\r
+<p>\r
+Here are some notes on interpreting the "result" command.  Some apply\r
+only to playing on ICS ("Zippy" mode).\r
+</p>\r
+\r
+<p>\r
+If you won but did not just play a mate, your opponent must have\r
+resigned or forfeited.  If you lost but were not just mated, you\r
+probably forfeited on time, or perhaps the operator resigned manually.\r
+If there was a draw for some nonobvious reason, perhaps your opponent\r
+called your flag when he had insufficient mating material (or vice\r
+versa), or perhaps the operator agreed to a draw manually.\r
+</p>\r
+\r
+<p>\r
+You will get a result command even if you already know the game ended\r
+-- for example, after you just checkmated your opponent.  In fact, if\r
+you send the "RESULT {COMMENT}" command (discussed below), you will\r
+simply get the same thing fed back to you with "result" tacked in\r
+front.  You might not always get a "result *" command, however.  In\r
+particular, you won't get one in local chess engine mode when the user\r
+stops playing by selecting Reset, Edit Game, Exit or the like.\r
+</p>\r
+\r
+<dt><font color=red><strong>setboard FEN</strong></font>\r
+<dd><font color=red>\r
+The setboard command is the new way to set up positions, beginning\r
+in protocol version 2.  It is not used unless it has been selected\r
+with the feature command.  Here FEN is a position in Forsythe-Edwards\r
+Notation, as defined in the PGN standard.</font>\r
+<font color=green>Note that this PGN standard referred to here\r
+only applies to normal Chess;\r
+Obviously in variants that cannot be described by a FEN for normal Chess,\r
+e.g. because the board is not 8x8, other pieces then PNBRQK participate, \r
+there are holdings that need to be specified, etc., \r
+xboard will use a FEN format that is standard or suitable for that varant.\r
+In particular, in FRC or CRC, WinBoard will use Shredder-FEN or X-FEN standard,\r
+i.e. it can use the rook-file indicator letter to represent a castling right \r
+(like HAha) whenever it wants, but if it uses KQkq, this will always refer \r
+to the outermost rook on the given side.</font>\r
+<font color=red>\r
+\r
+<p><i>Illegal positions:</i> Note that either setboard or edit can\r
+be used to send an illegal position to the engine.  The user can\r
+create any position with xboard's Edit Position command (even, say,\r
+an empty board, or a board with 64 white kings and no black ones).\r
+If your engine receives a position that it considers illegal, \r
+I suggest that you send the response "tellusererror Illegal position",\r
+and then respond to any attempted move with "Illegal move" until\r
+the next new, edit, or setboard command.</p>\r
+</font>\r
+<p>\r
+\r
+<dt><strong>edit</strong>\r
+<dd>\r
+<font color=red>\r
+The edit command is the old way to set up positions.  For compatibility\r
+with old engines, it is still used by default, but new engines may prefer\r
+to use the feature command (see below) to cause xboard to use setboard instead.\r
+</font>\r
+The edit command puts the chess engine into a special mode, where\r
+it accepts the following subcommands:\r
+<table>\r
+<tr align="left"><th>c<td>change current piece color, initially white\r
+<tr align="left"><th>Pa4 (for example)<td>place pawn of current color on a4\r
+<tr align="left"><th>xa4 (for example)<td>empty the square a4 (not used by xboard)\r
+<tr align="left"><th>#<td>clear board\r
+<tr align="left"><th>.<td>leave edit mode\r
+</table>\r
+<font color=red>\r
+See the Idioms section below for additional subcommands used in\r
+ChessBase's implementation of the protocol.\r
+</font>\r
+\r
+<p>The edit command does not change the side to move.  To set up a\r
+black-on-move position, xboard uses the following command sequence:\r
+</p>\r
+<pre>\r
+    new\r
+    force\r
+    a2a3\r
+    edit\r
+    &lt;edit commands&gt;\r
+    .\r
+</pre>\r
+\r
+<p>\r
+This sequence is used to avoid the "black" command, which is now\r
+considered obsolete and which many engines never did implement as \r
+specified in this document.\r
+</p>\r
+\r
+<p>\r
+After an edit command is complete, if a king and a rook are on their\r
+home squares, castling is assumed to be available to them.  En passant\r
+capture is assumed to be illegal on the current move regardless of the\r
+positions of the pawns.  The clock for the 50 move rule starts at\r
+zero, and for purposes of the draw by repetition rule, no prior\r
+positions are deemed to have occurred.\r
+<font color=green>\r
+In FRC or CRC, any rook and king put on the back rank should be considered to\r
+have castling rights, even if it later becomes apparent that they cannot be both in the\r
+initial position, because the position just set up is asymmetric.\r
+It is upto WinBoard to find work-around in cases where this is not desired,\r
+similar to the "black kludge" shown above, by setting up an earlier position,\r
+and then do a move to destroy castling rights or create e.p. rights.\r
+(Don't bet your life on it...)\r
+</font>\r
+</p>\r
+\r
+<dt><strong>hint</strong>\r
+<dd>If the user asks for a hint, xboard sends your engine the command\r
+"hint".  Your engine should respond with "Hint: xxx", where xxx is a\r
+suggested move.  If there is no move to suggest, you can ignore the\r
+hint command (that is, treat it as a no-op).\r
+<p>\r
+\r
+<dt><strong>bk</strong>\r
+<dd>If the user selects "Book" from the xboard menu, xboard will send\r
+your engine the command "bk".  You can send any text you like as the\r
+response, as long as each line begins with a blank space or tab (\t)\r
+character, and you send an empty line at the end.  The text pops up in\r
+a modal information dialog.\r
+<p>\r
+\r
+<dt><strong>undo</strong>\r
+<dd>If the user asks to back up one move, xboard will send you the\r
+"undo" command.  xboard will not send this command without putting you\r
+in "force" mode first, so you don't have to worry about what should\r
+happen if the user asks to undo a move your engine made.  (GNU Chess 4\r
+actually switches to playing the opposite color in this case.)\r
+<p>\r
+\r
+<dt><strong>remove</strong>\r
+<dd>If the user asks to retract a move, xboard will send you the\r
+"remove" command.  It sends this command only when the user is on\r
+move.  Your engine should undo the last two moves (one for each\r
+player) and continue playing the same color.\r
+<p>\r
+\r
+<dt><strong>hard</strong>\r
+<dd>Turn on pondering (thinking on the opponent's time, also known as\r
+"permanent brain").  xboard will not make any assumption about what\r
+your default is for pondering or whether "new" affects this setting.\r
+<p>\r
+\r
+<dt><strong>easy</strong>\r
+<dd>Turn off pondering.\r
+<p>\r
+  \r
+<dt><strong>post</strong>\r
+<dd>Turn on thinking/pondering output.  \r
+See <a href="#10">Thinking Output</a> section.\r
+<p>\r
+\r
+<dt><strong>nopost</strong>\r
+<dd>Turn off thinking/pondering output.\r
+<p>\r
+  \r
+<dt><strong>analyze</strong>\r
+<dd>Enter analyze mode.  See <a href="#12">Analyze Mode</a> section.\r
+<p>\r
+\r
+<dt><strong>name X</strong> <dd>This command informs the engine of its\r
+opponent's name.  When the engine is playing on a chess server, xboard\r
+obtains the opponent's name from the server. \r
+<font color=red>\r
+When the engine is\r
+playing locally against a human user, xboard obtains the user's login\r
+name from the local operating system.  When the engine is playing\r
+locally against another engine, xboard uses either the other engine's\r
+filename or the name that the other engine supplied in the myname\r
+option to the feature command.  By default, xboard uses the name\r
+command only when the engine is playing on a chess server.  Beginning\r
+in protocol version 2, you can change this with the name option to the\r
+feature command; see below.\r
+</font>\r
+<p>\r
+\r
+<dt><strong>rating</strong>\r
+<dd>In ICS mode, xboard obtains the ICS opponent's rating from the\r
+"Creating:" message that appears before each game.  (This message may\r
+not appear on servers using outdated versions of the FICS code.)  In\r
+Zippy mode, it sends these ratings on to the chess engine using the\r
+"rating" command.  The chess engine's own rating comes first, and if\r
+either opponent is not rated, his rating is given as 0.  \r
+<font color=red>\r
+In the future this command may also be used in other modes, if ratings\r
+are known.\r
+</font>\r
+Example: <pre>rating 2600 1500</pre>\r
+<p>\r
+\r
+<dt><font color=red><strong>ics HOSTNAME</strong></font>\r
+<dd><font color=red>\r
+If HOSTNAME is "-", the engine is playing against a local\r
+opponent; otherwise, the engine is playing on an Internet Chess Server\r
+(ICS) with the given hostname.  This command is new in protocol\r
+version 2 and is not sent unless the engine has enabled it with\r
+the "feature" command.  Example: "ics freechess.org"\r
+</font>\r
+<p>\r
+\r
+<dt><strong>computer</strong>\r
+<dd>The opponent is also a computer chess engine.  Some engines alter\r
+their playing style when they receive this command.\r
+<p>\r
+\r
+<dt><font color=red><strong>pause</strong></font>\r
+<dt><font color=red><strong>resume</strong></font>\r
+<dd><font color=red>(These commands are new in protocol\r
+version 2 and will not be sent unless feature pause=1 is set.  At\r
+this writing, xboard actually does not use the commands at all, but it\r
+or other interfaces may use them in the future.)\r
+The "pause" command puts the engine into a special state where it\r
+does not think, ponder, or otherwise consume significant CPU time.\r
+The current thinking or pondering (if any) is suspended and both\r
+player's clocks are stopped.  The only command that the interface may\r
+send to the engine while it is in the paused state is "resume".  The\r
+paused thinking or pondering (if any) resumes from exactly where it\r
+left off, and the clock of the player on move resumes running from\r
+where it stopped.\r
+</font>\r
+<p>\r
+\r
+<dt><font color=blue><strong>memory N</strong></font>\r
+<dd><font color=blue>\r
+This command informs the engine on how much memory it is allowed to use maximally, in MegaBytes.\r
+On receipt of this command, the engine should adapt the size of its hash tables accordingly.\r
+This command does only fix the total memory use,\r
+the engine has to decide for itself \r
+(or be configured by the user by other means) \r
+how to divide up the available memory between the various tables it wants to use \r
+(e.g. main hash, pawn hash, tablebase cache, bitbases).\r
+This command will only be sent to engines that have requested it through the memory feature,\r
+and only at the start of a game,\r
+as the first of the commands to relay engine option settings just before each "new" command.\r
+</font>\r
+<p>\r
+\r
+<dt><font color=blue><strong>cores N</strong></font>\r
+<dd><font color=blue>\r
+This command informs the engine on how many CPU cores it is allowed to use maximally.\r
+This could be interpreted as the number of search threads for SMP engines. \r
+(Threads that do not consume significant amounts of CPU time, like I/O threads, need not be included in the count.)\r
+This command will only be sent to engines that have requested it through the smp feature.\r
+The engine should be able to respond to the "cores" command any time during a game,\r
+but it is allowed to finish a search in progress before procesing the command.\r
+(Obeying the command should take priority over finishing a ponder search, though.)\r
+In any case it will be sent at the start of every game\r
+as the last command to relay engine option settings before the "new" command.\r
+</font>\r
+<p>\r
+\r
+<dt><font color=blue><strong>egtpath TYPE PATH</strong></font>\r
+<dd><font color=blue>\r
+This command informs the engine in which directory (given by the PATH argument)\r
+it can find end-game tables of the specified TYPE.\r
+The TYPE argument can be any character string which does not contain spaces.\r
+Currently <strong>nalimov</strong> and <strong>scorpio</strong> are defined types, \r
+for Nalimov tablebases and Scorpio bitbases, respectively,\r
+but future developers of other formats are free to define their own format names.\r
+The GUI simply matches the TYPE names the engine says it supports \r
+with those that the user supplied when configuring xboard.\r
+For every match, it sends a separate "y" command.\r
+The PATH argument would normally (for Nalimov) be the pathname of the directory the EGT files are in,\r
+but could also be the name of a file, or in fact anything the particular EGT type requires.\r
+It is upto the developer of the EGT format to specify the syntax of this parameter.\r
+This command will only be sent to engines that have told the GUI they support EGTs of the given TYPE\r
+through the egt feature.\r
+It will be sent at the start of each game, before the "new" command.\r
+</font>\r
+<p>\r
+\r
+<dt><font color=blue><strong>option NAME[=VALUE]</strong></font>\r
+<dd><font color=blue>\r
+This command changes the setting of the option NAME defined by the engine \r
+(through an earlier feature command)\r
+to the given VALUE.\r
+XBoard will in general have no idea what the option means,\r
+and will send the command only when a user changes the value of this option through a menu,\r
+or at startup of the engine \r
+(before the first 'cores' command or, if that is not sent, the first 'new' command)\r
+in reaction to command-line options.\r
+The NAME echoes back to the engine the string that was identified as an option NAME\r
+in the feature command defining the option.\r
+The VALUE is of the type (numeric or text or absent) that was implied by the option type\r
+specified in this feature command,\r
+i.e. with 'spin' and 'check' options VALUE will be a decimal integer (in the latter case 0 or 1),\r
+with 'combo' and 'string' options VALUE will be a text string,\r
+and with 'button' and 'save' options no VALUE will be sent at all.\r
+</font>\r
+</dl>\r
+\r
+<h3>Bughouse commands:</h3>\r
+\r
+<p>\r
+xboard now supports bughouse engines when in Zippy mode.  See\r
+<a href="http://www.tim-mann.org/xboard/zippy.README"\r
+>zippy.README</a> for information on Zippy mode and how to turn on the\r
+bughouse support.  The bughouse move format is given above.  xboard\r
+sends the following additional commands to the engine when in bughouse\r
+mode.  \r
+Commands to inform your engine of the partner's game state may\r
+be added in the future.\r
+</p>\r
+\r
+<dl>\r
+<dt><strong>partner &lt;player&gt;</strong>\r
+<dd>&lt;player&gt; is now your partner for future games.  Example: <pre>partner mann</pre>\r
+<p>\r
+\r
+<dt><strong>partner</strong>\r
+<dd>Meaning: You no longer have a partner.\r
+<p>\r
+\r
+<dt><strong>ptell &lt;text&gt;</strong>\r
+<dd>Your partner told you &lt;text&gt;, either with a ptell or an ordinary tell.  \r
+<p>\r
+\r
+<dt><strong>holding [&lt;white&gt;] [&lt;black&gt;]</strong>\r
+<dd>White currently holds &lt;white&gt;; black currently holds &lt;black&gt;.\r
+  Example: <pre>holding [PPPRQ] []</pre>\r
+\r
+<dt><strong>holding [&lt;white&gt;] [&lt;black&gt;] &lt;color&gt;&lt;piece&gt;</strong>\r
+<dd>White currently holds &lt;white&gt;; black currently holds &lt;black&gt;, after\r
+  &lt;color&gt; acquired &lt;piece&gt;.   Example: <pre>holding [PPPRQ] [R] BR</pre>\r
+</dl>\r
+\r
+<h2><a name="9">9. Commands from the engine to xboard</a></h2>\r
+\r
+<p>\r
+<font color=red>\r
+In general, an engine should not send any output to xboard that is not\r
+described in this document.  As the protocol is extended, newer\r
+versions of xboard may recognize additional strings as commands that\r
+were previously not assigned a meaning.\r
+</font>\r
+</p>\r
+\r
+<dl>\r
+<dt><font color=red>\r
+<strong>feature FEATURE1=VALUE1 FEATURE2=VALUE2 ...</strong> \r
+</font>\r
+\r
+<dd><font color=red>\r
+Beginning with version 2, the protocol includes the "feature"\r
+command, which lets your engine control certain optional protocol\r
+features.  Feature settings are written as FEATURE=VALUE, where\r
+FEATURE is a name from the list below and VALUE is the value to be\r
+assigned.  Features can take string, integer, or boolean values; the\r
+type of value is listed for each feature.  String values are written\r
+in double quotes (for example, <tt>feature myname="Miracle Chess\r
+0.9"</tt>), integers are written in decimal, and boolean values are\r
+written as 0 for false, 1 for true.  Any number of features can be set\r
+in one feature command, or multiple feature commands can be given.\r
+\r
+<p>\r
+Your engine should send one or more feature commands immediately after\r
+receiving the "protover" command, since xboard needs to know the\r
+values of some features before sending further commands to the engine.\r
+Because engines that predate protocol version 2 do not send "feature",\r
+xboard uses a timeout mechanism: when it first starts your engine, it\r
+sends "xboard" and "protover N", then listens for feature commands for\r
+two seconds before sending any other commands.  To end this timeout\r
+and avoid the wait, set the feature "done=1" at the end of your last\r
+feature command.  To increase the timeout, if needed, set the feature\r
+"done=0" before your first feature command and "done=1" at the end.\r
+If needed, it is okay for your engine to set done=0 soon as it starts,\r
+even before it receives the xboard and protover commands.  This can be\r
+useful if your engine takes a long time to initialize itself.  It\r
+should be harmless even if you are talking to a (version 1) user\r
+interface that does not understand the "feature" command, since such\r
+interfaces generally ignore commands from the engine that they do not\r
+understand.\r
+</p>\r
+\r
+<p>\r
+The feature command is designed to let the protocol change without\r
+breaking engines that were written for older protocol versions.  When\r
+a new feature is added to the protocol, its default value is always\r
+chosen to be compatible with older versions of the protocol that did\r
+not have the feature.  Any feature that your engine does not set in a\r
+"feature" command retains its default value, so as the protocol\r
+changes, you do not have to change your engine to keep up with it\r
+unless you want to take advantage of a new feature.  Because some\r
+features are improvements to the protocol, while others are meant to\r
+cater to engines that do not implement all the protocol features, the\r
+recommended setting for a feature is not always the same as the\r
+default setting.  The listing below gives both default and recommended\r
+settings for most features.\r
+</p>\r
+\r
+<p>\r
+You may want to code your engine so as to be able to work with\r
+multiple versions of the engine protocol.  Protocol version 1 does not\r
+send the protover command and does not implement the feature command;\r
+if you send a feature command in protocol version 1, it will have no\r
+effect and there will be no response.  In protocol version 2 or later,\r
+each feature F that you set generates the response "accepted F" if the\r
+feature is implemented, or "rejected F" if it is not.  Thus an engine\r
+author can request any feature without having to keep track of which\r
+protocol version it was introduced in; you need only check whether the\r
+feature is accepted or rejected.  This mechanism also makes it\r
+possible for a user interface author to implement a subset of a\r
+protocol version by rejecting some features that are defined in that\r
+version; however, you should realize that engine authors are likely to\r
+code for xboard and may not be prepared to have a feature that they\r
+depend on be rejected.\r
+</p>\r
+\r
+<p>\r
+Here are the features that are currently defined.\r
+</p>\r
+</font>\r
+\r
+<dl>\r
+<dt><font color=red>\r
+<strong>ping</strong> (boolean, default 0, recommended 1)\r
+</font>\r
+<dd><font color=red>\r
+If ping=1, xboard may use the protocol's new "ping" command;\r
+if ping=0, xboard will not use the command.\r
+</font>\r
+\r
+<dt><font color=red>\r
+<strong>setboard</strong> (boolean, default 0, recommended 1)\r
+</font>\r
+<dd><font color=red>\r
+If setboard=1, xboard will use the protocol's new "setboard" command\r
+to set up positions; if setboard=0, it will use the older "edit" command.\r
+</font>\r
+\r
+<dt><font color=red>\r
+<strong>playother</strong> (boolean, default 0, recommended 1)\r
+</font>\r
+<dd><font color=red>\r
+If playother=1, xboard will use the protocol's new "playother" command\r
+when appropriate; if playother=0, it will not use the command.\r
+</font>\r
+\r
+<dt><font color=red>\r
+<strong>san</strong> (boolean, default 0)\r
+</font>\r
+<dd><font color=red>\r
+If san=1, xboard will send moves to the engine in standard algebraic\r
+notation (SAN); for example, Nf3.  If san=0, xboard will send moves in\r
+coordinate notation; for example, g1f3.  See MOVE in \r
+<a href="#8">section 8</a> above for more details of both kinds of notation.\r
+</font>\r
+\r
+<dt><font color=red>\r
+<strong>usermove</strong> (boolean, default 0)\r
+</font>\r
+<dd><font color=red>\r
+If usermove=1, xboard will send moves to the engine with the\r
+command "usermove MOVE"; if usermove=0, xboard will send just the move,\r
+with no command name.\r
+</font>\r
+\r
+<dt><font color=red>\r
+<strong>time</strong> (boolean, default 1, recommended 1)\r
+</font>\r
+<dd><font color=red>\r
+If time=1, xboard will send the "time" and "otim" commands to\r
+update the engine's clocks; if time=0, it will not.\r
+</font>\r
+\r
+<dt><font color=red>\r
+<strong>draw</strong> (boolean, default 1, recommended 1)\r
+</font>\r
+<dd><font color=red>\r
+If draw=1, xboard will send the "draw" command if the engine's opponent\r
+offers a draw; if draw=0, xboard will not inform the engine about\r
+draw offers.  Note that if draw=1, you may receive a draw offer while you\r
+are on move; if this will cause you to move immediately, you should set\r
+draw=0.\r
+</font>\r
+\r
+<dt><font color=red>\r
+<strong>sigint</strong> (boolean, default 1)\r
+</font>\r
+<dd><font color=red>\r
+If sigint=1, xboard may send SIGINT (the interrupt signal) to\r
+the engine as <a href="#7">section 7</a> above; if sigint=0, it will\r
+not.\r
+</font>\r
+\r
+<dt><font color=red>\r
+<strong>sigterm</strong> (boolean, default 1)\r
+</font>\r
+<dd><font color=red>\r
+If sigterm=1, xboard may send SIGTERM (the termination signal) to\r
+the engine as <a href="#7">section 7</a> above; if sigterm=0, it will\r
+not.\r
+</font>\r
+\r
+<dt><font color=red>\r
+<strong>reuse</strong> (boolean, default 1, recommended 1) \r
+</font>\r
+<dd><font color=red>\r
+If reuse=1, xboard may reuse your engine for multiple games.  If\r
+reuse=0 (or if the user has set the -xreuse option on xboard's command\r
+line), xboard will kill the engine process after every game and start\r
+a fresh process for the next game.\r
+</font>\r
+\r
+<dt><font color=red>\r
+<strong>analyze</strong> (boolean, default 1, recommended 1)\r
+</font>\r
+<dd><font color=red>\r
+If analyze=0, xboard will not try to use the "analyze" command; it\r
+will pop up an error message if the user asks for analysis mode.  If\r
+analyze=1, xboard will try to use the command if the user asks for\r
+analysis mode.\r
+</font>\r
+\r
+<dt><font color=red>\r
+<strong>myname</strong> (string, default determined from engine filename)\r
+</font>\r
+<dd><font color=red>\r
+This feature lets you set the name that xboard will use for your\r
+engine in window banners, in the PGN tags of saved game files, and when\r
+sending the "name" command to another engine.\r
+</font>\r
+\r
+<dt><font color=red>\r
+<strong>variants</strong> (string, see text below)\r
+</font>\r
+<dd><font color=red>\r
+This feature indicates which chess variants your engine accepts.\r
+It should be a comma-separated list of variant names.  See the table\r
+under the "variant" command in <a href="#8">section 8</a> above.  If\r
+you do not set this feature, xboard will assume by default that your\r
+engine supports all variants.  (However, the -zippyVariants\r
+command-line option still limits which variants will be accepted in\r
+Zippy mode.)  It is recommended that you set this feature to the\r
+correct value for your engine (just "normal" in most cases) rather\r
+than leaving the default in place, so that the user will get an\r
+appropriate error message if he tries to play a variant that your\r
+engine does not support.</font>\r
+<br>\r
+<font color=green>If your engine can play variants on a deviating board size,\r
+like capablanca on an 8x8 board, or capablanca crazyhouse,\r
+it can list them amongst the variants with a prefix spcifying board size plus\r
+holdings size, like 8x8+0_capablanca or 10x8+7_capablanca.\r
+If it is capable of playing any variant with an arbitrary board size,\r
+it should list "boardsize" as one of the variants.\r
+If there is a maximum to the board size, this can be prefixed,\r
+e.g. "12x10+0_boardsize".\r
+</font>\r
+\r
+<dt><font color=red>\r
+<strong>colors</strong> (boolean, default 1, recommended 0) \r
+</font>\r
+<dd><font color=red>\r
+If colors=1, xboard uses the obsolete "white" and "black"\r
+commands in a stylized way that works with most older chess engines\r
+that require the commands.  See the "<a href="#13">Idioms</a>" section\r
+below for details.  If colors=0, xboard does not use the "white" and\r
+"black" commands at all.\r
+</font>\r
+\r
+<dt><font color=red>\r
+<strong>ics</strong> (boolean, default 0)\r
+</font>\r
+<dd><font color=red>\r
+If ics=1, xboard will use the protocol's new "ics" command\r
+to inform the engine of whether or not it is playing on a chess server;\r
+if ics=0, it will not.\r
+</font>\r
+\r
+<dt><font color=red>\r
+<strong>name</strong> (boolean, see text below)\r
+</font>\r
+<dd><font color=red>\r
+If name=1, xboard will use the protocol's "name" command\r
+to inform the engine of the opponent's name; if name=0, it will not.\r
+By default, name=1 if the engine is playing on a chess server; name=0 if not.\r
+</font>\r
+\r
+<dt><font color=red>\r
+<strong>pause</strong> (boolean, default 0)\r
+</font>\r
+<dd><font color=red>\r
+If pause=1, xboard may use the protocol's new "pause" command;\r
+if pause=0, xboard assumes that the engine does not support this command.\r
+</font>\r
+\r
+<dt><font color=green>\r
+<strong>nps</strong> (boolean, default ?)\r
+</font>\r
+<dd><font color=green>\r
+If nps=1, it means the engine supports the nps command.\r
+If nps=0, it means the engine does not support it, and WinBoard should refrain from sending it.\r
+Default is that WinBoard sends it, in an attempt to try out if the engine understand it.\r
+The engine should properly respond with "Error (unkown command): nps" if it does not implement it,\r
+(as any protocol version pre-scribes),\r
+or WinBoard might assume that the engine did understand the command. \r
+In that case the use of different time standards that ensues could lead to time forfeits for the engine.\r
+</font>\r
+\r
+<dt><font color=green>\r
+<strong>debug</strong> (boolean, default 0)\r
+</font>\r
+<dd><font color=green>\r
+If debug=1, it means the engine wants to send debug output prefixed by '#',\r
+which WinBoard should ignore, except for including it in the winboard.debug file.\r
+As this feature is added to protocol 2 ony late,\r
+so that not all protocol-2 supporting versions of WinBoard might implement it,\r
+it is important that engines check if WinBoard accepts the feature.\r
+If the feature is rejected,\r
+engines must refrain from sending the debug output,\r
+or do so at their own risk.\r
+</font>\r
+\r
+<dt><font color=blue>\r
+<strong>memory</strong> (boolean, default 0)\r
+</font>\r
+<dd><font color=blue>\r
+If memory=1, the size of the total amount of memory available for the memory-consuming tables of the engine \r
+(e.g. hash, EGTB cache)\r
+will be set by the GUI through the "memory" command.\r
+</font>\r
+\r
+<dt><font color=blue>\r
+<strong>smp</strong> (boolean, default 0)\r
+</font>\r
+<dd><font color=blue>\r
+If smp=1, the GUI will send the "cores" command to the engine to inform it how many CPU cores it can use.\r
+Note that sending smp=1 does not imply the engine can use more than one CPU;\r
+just that it wants to receive the "cores" command.\r
+</font>\r
+\r
+<dt><font color=blue>\r
+<strong>egt</strong> (string, see text below)\r
+</font>\r
+<dd><font color=blue>\r
+This feature indicates which end-game table formats the engine supports.\r
+It should be a comma-separated list of format names.\r
+See under the "egtpath" command in <a href="#8">section 8</a> above.\r
+If you do not set this feature, xboard will assume the engine does not support end-game tables,\r
+and will not send any "egtpath" commands to inform the engine about their whereabouts.\r
+</font>\r
+\r
+<dt><font color=blue>\r
+<strong>option</strong> (string, see text below)\r
+</font>\r
+<dd><font color=blue>\r
+This feature is used by the engine to define an option command to appear in a GUI menu,\r
+so that the user can change the corresponding setting of the engine through the GUI.\r
+The string describes the option by defining a name, type, current value and (sometimes) the acceptable value range.\r
+There are six different options types, each requiring a slighly different syntax of the defining string:\r
+<br>\r
+feature option="NAME -button"\r
+<br>\r
+feature option="NAME -save"\r
+<br>\r
+feature option="NAME -check VALUE"\r
+<br>\r
+feature option="NAME -string VALUE"\r
+<br>\r
+feature option="NAME -spin VALUE MIN MAX"\r
+<br>\r
+feature option="NAME -combo CHOICE1 /// CHOICE2 ..."\r
+<br>\r
+NAME is an arbitrary alphanumeric string which can contain spaces; \r
+the oter words in capitals would be replaced by the current (default) setting of the option,\r
+the minimum or maximum value of numeric (-spin) options, \r
+or arbitrary text labels (for -combo option).\r
+In the latter cae, the current value will be preceded by an asterisk.\r
+</font>\r
+\r
+<dt><font color=red>\r
+<strong>done</strong> (integer, no default)\r
+</font>\r
+<dd><font color=red>\r
+If you set done=1 during the initial two-second timeout after\r
+xboard sends you the "xboard" command, the\r
+timeout will end and xboard will not look for any more feature\r
+commands before starting normal operation.\r
+If you set done=0, the initial timeout is increased to one hour;\r
+in this case, you must set done=1 before xboard will enter normal operation.\r
+</font>\r
+</dl>\r
+<p>\r
+\r
+<dt><strong>Illegal move: MOVE</strong>\r
+<dt><strong>Illegal move (REASON): MOVE</strong>\r
+<dd>If your engine receives a MOVE command that is recognizably a move\r
+but is not legal in the current position, your engine must print an\r
+error message in one of the above formats so that xboard can pass the\r
+error on to the user and retract the move.  The (REASON) is entirely\r
+optional.  Examples:\r
+\r
+<pre>\r
+  Illegal move: e2e4\r
+  Illegal move (in check): Nf3\r
+  Illegal move (moving into check): e1g1\r
+</pre>\r
+<p>\r
+Generally, xboard will never send an ambiguous move, so it does not \r
+matter whether you respond to such a move with an Illegal move message \r
+or an Error message.\r
+</p>\r
+\r
+<dt><strong>Error (ERRORTYPE): COMMAND</strong>\r
+<dd>If your engine receives a command it does not understand or does\r
+not implement, it should print an error message in the above format so\r
+that xboard can parse it.  Examples:\r
+<pre>\r
+  Error (ambiguous move): Nf3\r
+  Error (unknown command): analyze\r
+  Error (command not legal now): undo\r
+  Error (too many parameters): level 1 2 3 4 5 6 7\r
+</pre>\r
+\r
+<dt><strong>move MOVE</strong>\r
+<dd>Your engine is making the move MOVE.  Do not echo moves from\r
+xboard with this command; send only new moves made by the engine.\r
+\r
+<font color=red>\r
+<p>For the actual move text from your chess engine (in place of MOVE\r
+above), your move should be either\r
+<ul>\r
+<li>in coordinate notation (e.g.,\r
+e2e4, e7e8q) with castling indicated by the King's two-square move (e.g.,\r
+e1g1), or\r
+<li>in Standard Algebraic Notation (SAN) as defined in the\r
+Portable Game Notation standard (e.g, e4, Nf3, O-O, cxb5, Nxe4, e8=Q),\r
+with the extension piece@square (e.g., P@f7) to handle piece placement\r
+in bughouse and crazyhouse.\r
+</ul>\r
+xboard itself also accepts some variants of SAN, but for compatibility\r
+with non-xboard interfaces, it is best not to rely on this behavior.\r
+</p>\r
+\r
+<p>Warning: Even though all versions of this protocol specification\r
+have indicated that xboard accepts SAN moves, some non-xboard\r
+interfaces are known to accept only coordinate notation.  See the\r
+Idioms section for more information on the known limitations of some\r
+non-xboard interfaces.  It should be safe to send SAN moves if you\r
+receive a "protover 2" (or later) command from the interface, but\r
+otherwise it is best to stick to coordinate notation for maximum\r
+compatibility.  An even more conservative approach would be for your\r
+engine to send SAN to the interface only if you have set feature san=1\r
+(which causes the interface to send SAN to you) and have received\r
+"accepted san" in reply.\r
+</p>\r
+</font>\r
+\r
+<dt><strong>RESULT {COMMENT}</strong> <dd>When your engine detects\r
+that the game has ended by rule, your engine must output a line of the\r
+form "RESULT {comment}" (without the quotes), where RESULT is a PGN\r
+result code (1-0, 0-1, or 1/2-1/2), and comment is the reason.  Here\r
+"by rule" means that the game is definitely over because of what\r
+happened on the board.  In normal chess, this includes checkmate,\r
+stalemate, triple repetition, the 50 move rule, or insufficient\r
+material; it does not include loss on time or the like.\r
+Examples:\r
+<pre>\r
+  0-1 {Black mates}\r
+  1-0 {White mates}\r
+  1/2-1/2 {Draw by repetition}\r
+  1/2-1/2 {Stalemate}\r
+</pre>\r
+\r
+<p>\r
+xboard relays the result to the user, the ICS, the other engine in Two\r
+Machines mode, and the PGN save file as required.\r
+<font color=green>Note that "definitey over" above means that sending this command \r
+will be taken by WinBoard as an unconditional refusal of the engine to play on,\r
+which might cause you to forfeit if the game was in fact not over.\r
+This command should thus not be used to offer draws, accept draws,\r
+or make draw-by-rule claims that might not be valid \r
+(because it is not your move, and the opponent already moved without you knowing it yet).\r
+For offering and claiming draws, "offer draw" should be used.</font>\r
+<p>\r
+Note to GUI programmers: RESULT commands that the engine sends immediately after its move\r
+might be detected by the GUI only after the opponent has moved, because of communication\r
+and scheduling delays, no matter how fast the engine sent it.\r
+Any judgement of the validity of RESULT claims based on te "current" board position\r
+will have to account for this uncertainty.\r
+</p>\r
+\r
+<dt><strong>resign</strong>\r
+<dd>If your engine wants to resign, it can send the command "resign".\r
+Alternatively, it can use the "RESULT {comment}" command if the string\r
+"resign" is included in the comment; for example "0-1 {White\r
+resigns}".  xboard relays the resignation to the user, the ICS, the\r
+other engine in Two Machines mode, and the PGN save file as required.\r
+<p>\r
+\r
+<dt><strong>offer draw</strong>\r
+<dd>If your engine wants to offer a draw by agreement (as opposed to\r
+claiming a draw by rule), it can send the command "offer draw".\r
+xboard relays the offer to the user, the ICS, the other engine in Two\r
+Machines mode, and the PGN save file as required.  In Machine White,\r
+Machine Black, or Two Machines mode, the offer is considered valid\r
+until your engine has made two more moves.\r
+<font color=green>This command must also be used to accept a draw offer.\r
+Do not use the 1/2-1/2 command for that, as the offer might be no longer valid,\r
+in which case a refusal to play on implied by the RESULT command would make you forfeit the game.\r
+"offer draw" should also be used to claim 50-move and 3-fold-repetition draws\r
+that will occur <em>after</em> your move, by sending it <em>before</em> making the move.\r
+WinBoard will grant draw offers without the opponent having any say in\r
+it in situations where draws can be claimed.\r
+Only if the draw cannot be claimed, the offer will be passed to your opponent after you make your next move,\r
+just before WinBoard relays this move to the opponent.\r
+</font>\r
+<p>\r
+\r
+<dt><font color=red><strong>tellopponent MESSAGE</strong></font>\r
+<dd><font color=red>\r
+This command lets the engine give a message to its opponent,\r
+independent of whether the opponent is a user on the local machine or\r
+a remote ICS user (Zippy mode).  MESSAGE consists of any characters,\r
+including whitespace, to the end of the line.  When the engine is\r
+playing against a user on the local machine, xboard pops up an\r
+information dialog containing the message.  When the engine is playing\r
+against an opponent on the ICS (Zippy mode), xboard sends "say\r
+MESSAGE\n" to the ICS.\r
+<p>\r
+\r
+<dt><strong>tellothers MESSAGE</strong> \r
+<dd>This command lets the engine give a message to people watching the\r
+game other than the engine's opponent.  MESSAGE consists of any\r
+characters, including whitespace, to the end of the line.  When the\r
+engine is playing against a user on the local machine, this command\r
+does nothing.  When the engine is playing against an opponent on the\r
+ICS (Zippy mode), xboard sends "whisper MESSAGE\n" to the ICS.\r
+<p>\r
+\r
+<dt><strong>tellall MESSAGE</strong>\r
+<dd>This command lets the engine give a message to its opponent and\r
+other people watching the game, \r
+independent of whether the opponent is a user on the local machine or\r
+a remote ICS user (Zippy mode).  MESSAGE consists of any characters,\r
+including whitespace, to the end of the line.  When the engine is\r
+playing against a user on the local machine, xboard pops up an\r
+information dialog containing the message.  When the engine is playing\r
+against an opponent on the ICS (Zippy mode), xboard sends "kibitz\r
+MESSAGE\n" to the ICS.\r
+</font>\r
+<p>\r
+\r
+<dt><strong>telluser MESSAGE</strong>\r
+<dd>xboard pops up an information dialog containing the message.\r
+MESSAGE consists of any characters, including whitespace, to the end\r
+of the line.\r
+<p>\r
+\r
+<dt><strong>tellusererror MESSAGE</strong>\r
+<dd>xboard pops up an error dialog containing the message.\r
+MESSAGE consists of any characters, including whitespace, to the end\r
+of the line.\r
+<p>\r
+\r
+<dt><strong>askuser REPTAG MESSAGE</strong>\r
+<dd>Here REPTAG is a string containing no whitespace, and MESSAGE\r
+consists of any characters, including whitespace, to the end of the\r
+line.  xboard pops up a question dialog that says MESSAGE and\r
+has a typein box.  If the user types in "bar", xboard sends "REPTAG\r
+bar" to the engine.  The user can cancel the dialog and send nothing.\r
+<p>\r
+\r
+<dt><strong>tellics MESSAGE</strong>\r
+<dd>In Zippy mode, xboard sends "MESSAGE\n" to ICS.  MESSAGE consists\r
+of any characters, including whitespace, to the end of the line.\r
+<p>\r
+\r
+<dt><font color=red><strong>tellicsnoalias MESSAGE</strong></font>\r
+<dd><font color=red>\r
+In Zippy mode, xboard sends "xMESSAGE\n" to ICS, where "x" is a\r
+character that prevents the ICS from expanding command aliases, if\r
+xboard knows of such a character.  (On chessclub.com and chess.net,\r
+"/" is used; on freechess.org, "$" is used.)  MESSAGE consists of any\r
+characters, including whitespace, to the end of the line.\r
+</font>\r
+<p>\r
+\r
+<dt><font color=green><strong># COMMENT</strong></font>\r
+<dd><font color=green>\r
+The engine can send any string of printable characters, terminated by a newline,\r
+for inclusion in the winboard.debug file, provided the line starts with a '#' character.\r
+If the engine has set feature debug=1,\r
+it is guaranteed that WinBoard (and any future version of it) will completely ignore\r
+these lines in any other respect.\r
+</font>\r
+</dl>\r
+<p>\r
+\r
+<h2><a name="10">10. Thinking Output</a></h2>\r
+\r
+<p>\r
+If the user asks your engine to "show thinking", xboard sends your\r
+engine the "post" command.  It sends "nopost" to turn thinking off.\r
+In post mode, your engine sends output lines to show the progress of\r
+its thinking.  The engine can send as many or few of these lines as it\r
+wants to, whenever it wants to.  Typically they would be sent when the\r
+PV (principal variation) changes or the depth changes.  The thinking\r
+output should be in the following format:\r
+</p>\r
+\r
+<pre>ply score time nodes pv</pre>\r
+\r
+Where:\r
+<table>\r
+<tr align="left"><th>ply<td>Integer giving current search depth.\r
+<tr align="left"><th>score<td>Integer giving current evaluation in centipawns.\r
+<tr align="left"><th>time<td>Current search time in centiseconds (ex:\r
+1028 = 10.28 seconds).\r
+\r
+<tr align="left"><th>nodes<td>Nodes searched.\r
+<tr align="left"><th>pv<td>Freeform text giving current "best" line.\r
+You can continue the pv onto another line if you start each\r
+continuation line with at least four space characters.\r
+</table>\r
+\r
+<p>\r
+Example:\r
+</p>\r
+\r
+<pre>  9 156 1084 48000 Nf3 Nc6 Nc3 Nf6</pre>\r
+\r
+<p>\r
+Meaning:\r
+</p>\r
+\r
+9 ply, score=1.56, time = 10.84 seconds, nodes=48000, \r
+PV = "Nf3 Nc6 Nc3 Nf6"\r
+\r
+<p>\r
+Longer example from actual Crafty output:\r
+</p>\r
+<pre>\r
+  4    109      14   1435  1. e4 d5 2. Qf3 dxe4 3. Qxe4 Nc6\r
+  4    116      23   2252  1. Nf3 Nc6 2. e4 e6\r
+  4    116      27   2589  1. Nf3 Nc6 2. e4 e6\r
+  5    141      44   4539  1. Nf3 Nc6 2. O-O e5 3. e4\r
+  5    141      54   5568  1. Nf3 Nc6 2. O-O e5 3. e4\r
+</pre>\r
+\r
+<p>\r
+You can use the PV to show other things; for instance, while in book,\r
+Crafty shows the observed frequency of different reply moves in its\r
+book.  In situations like this where your engine is not really\r
+searching, start the PV with a '(' character:\r
+</p>\r
+\r
+<pre>\r
+  0      0       0      0  (e4 64%, d4 24%)\r
+</pre>\r
+\r
+<p>\r
+GNU Chess output is very slightly different.  The ply number is\r
+followed by an extra nonblank character, and the time is in seconds,\r
+not hundredths of seconds.  For compatibility, xboard accepts the\r
+extra character and takes it as a flag indicating the different time\r
+units.  Example:\r
+</p>\r
+\r
+<pre>\r
+ 2.     14    0       38   d1d2  e8e7 \r
+ 3+     78    0       65   d1d2  e8e7  d2d3 \r
+ 3&     14    0       89   d1d2  e8e7  d2d3 \r
+ 3&     76    0      191   d1e2  e8e7  e2e3 \r
+ 3.     76    0      215   d1e2  e8e7  e2e3 \r
+ 4&     15    0      366   d1e2  e8e7  e2e3  e7e6 \r
+ 4.     15    0      515   d1e2  e8e7  e2e3  e7e6 \r
+ 5+     74    0      702   d1e2  f7f5  e2e3  e8e7  e3f4 \r
+ 5&     71    0     1085   d1e2  e8e7  e2e3  e7e6  e3f4 \r
+ 5.     71    0     1669   d1e2  e8e7  e2e3  e7e6  e3f4 \r
+ 6&     48    0     3035   d1e2  e8e7  e2e3  e7e6  e3e4  f7f5  e4d4 \r
+ 6.     48    0     3720   d1e2  e8e7  e2e3  e7e6  e3e4  f7f5  e4d4 \r
+ 7&     48    0     6381   d1e2  e8e7  e2e3  e7e6  e3e4  f7f5  e4d4 \r
+ 7.     48    0    10056   d1e2  e8e7  e2e3  e7e6  e3e4  f7f5  e4d4 \r
+ 8&     66    1    20536   d1e2  e8e7  e2e3  e7e6  e3d4  g7g5  a2a4  f7f5 \r
+ 8.     66    1    24387   d1e2  e8e7  e2e3  e7e6  e3d4  g7g5  a2a4  f7f5 \r
+ 9&     62    2    38886   d1e2  e8e7  e2e3  e7e6  e3d4  h7h5  a2a4  h5h4 \r
+                           d4e4 \r
+ 9.     62    4    72578   d1e2  e8e7  e2e3  e7e6  e3d4  h7h5  a2a4  h5h4 \r
+                           d4e4 \r
+10&     34    7   135944   d1e2  e8e7  e2e3  e7e6  e3d4  h7h5  c2c4  h5h4 \r
+                           d4e4  f7f5  e4f4 \r
+10.     34    9   173474   d1e2  e8e7  e2e3  e7e6  e3d4  h7h5  c2c4  h5h4 \r
+                           d4e4  f7f5  e4f4 \r
+</pre>\r
+\r
+<p>If your engine is pondering (thinking on its opponent's time) in post\r
+mode, it can show its thinking then too.  In this case your engine may\r
+omit the hint move (the move it is assuming its opponent will make)\r
+from the thinking lines <em>if and only if</em> it sends xboard the move in\r
+the usual "Hint: xxx" format before sending the first line.\r
+</p>\r
+\r
+<h2><a name="11">11. Time control</a></h2>\r
+\r
+<p>\r
+xboard supports three styles of time control: conventional chess clocks,\r
+the ICS-style incremental clock, and an exact number of seconds per move.\r
+</p>\r
+\r
+<p>In conventional clock mode, every time control period is the same.\r
+That is, if the time control is 40 moves in 5 minutes, then after each\r
+side has made 40 moves, they each get an additional 5 minutes, and so\r
+on, ad infinitum.  At some future time it would be nice to support a\r
+series of distinct time controls.  This is very low on my personal\r
+priority list, but code donations to the xboard project are accepted,\r
+so feel free to take a swing at it.  I suggest you talk to me first,\r
+though.\r
+</p>\r
+\r
+<p>\r
+The command to set a conventional time control looks like this:\r
+</p>\r
+\r
+<pre>\r
+  level 40 5 0\r
+  level 40 0:30 0\r
+</pre>\r
+\r
+<p>\r
+The 40 means that there are 40 moves per time control.  The 5 means\r
+there are 5 minutes in the control.  In the second example, the 0:30\r
+means there are 30 seconds.  The final 0 means that we are in\r
+conventional clock mode.\r
+</p>\r
+\r
+<p>\r
+<font color=green>\r
+Note that the time parameter in this command is not a pure numeric argument,\r
+but in general is a character string, in order to pass the number of seconds.\r
+Engines are encouraged to ignore any unexpected characters at the end of this string,\r
+i.e. following the MIN or MIN:SEC specification.\r
+Future protocol versions might (under control of an appropriate feature)\r
+append such extra characters to this argument,\r
+in order to inform the engine in advance of the time control it can expect after the current session completes.\r
+E.g. "level 40 25+5 0" could mean that the engine has to play 40 moves in 25 minutes,\r
+but should expect to get only 5 minutes for the entire remainder of the game after that,\r
+rather than another 25 minutes for the next 40 moves.\r
+When the time comes, (i.e. after the 40 moves), \r
+it will be informed of the time-control change by receiving a new "level 0 5 0" command,\r
+but engines with advanced time management might want to plan for this in advance.\r
+</font>\r
+</p>\r
+\r
+<p>\r
+The command to set an incremental time control looks like this:\r
+</p>\r
+\r
+<pre>\r
+  level 0 2 12\r
+</pre>\r
+\r
+<p>\r
+Here the 0 means "play the whole game in this time control period",\r
+the 2 means "base=2 minutes", and the 12 means "inc=12 seconds".  As\r
+in conventional clock mode, the second argument to level can be in\r
+minutes and seconds.\r
+</p>\r
+\r
+<p>\r
+At the start of the game, each player's clock is set to base minutes.\r
+Immediately after a player makes a move, inc seconds are added to his\r
+clock.  A player's clock counts down while it is his turn.  Your flag\r
+can be called whenever your clock is zero or negative.  (Your clock\r
+can go negative and then become positive again because of the\r
+increment.)\r
+</p>\r
+\r
+<p><font color=blue>\r
+The number of moves given in the level command (when non-zero) should \r
+be taken as the number of moves still to do before the specified time\r
+will be added to the clock, if the "level" command is received after\r
+some moves have already been played.\r
+The time given should be interpreted as the time left on its clock\r
+(including any time left over from the previous sessions),\r
+and not necessarily the time that will be added to the clock\r
+after the specified number of moves has been played.\r
+This is only relevant in WinBoard 4.3.xx, which might send the engine\r
+"level" commands during a game,\r
+just before the engine has to start thinking about the first move of \r
+a new time-control session.\r
+Example: if at the start of the game "level 40 60 0" was given \r
+(40 moves per hour),\r
+and the engine receives "level 20 22 0" just before move 41,\r
+it should understand that it should do the next 20 moves in 22 minutes\r
+(pehaps because the secondary session was 20 moves per 15 minutes,\r
+and it had 7 minutes left on its clock after the first 40 moves).\r
+</font></p>\r
+\r
+<p>\r
+A special rule on some ICS implementations: if you ask for a game with\r
+base=0, the clocks really start at 10 seconds instead of 0.  xboard\r
+itself does not know about this rule, so it passes the 0 on to the\r
+engine instead of changing it to 0:10.\r
+</p>\r
+\r
+<p>\r
+ICS also has time odds games.  With time odds, each player has his own\r
+(base, inc) pair, but otherwise things work the same as in normal\r
+games.  The Zippy xboard accepts time odds games but ignores the fact\r
+that the opponent's parameters are different; this is perhaps not\r
+quite the right thing to do, but gnuchess doesn't understand time\r
+odds.  Time odds games are always unrated.\r
+</p>\r
+\r
+<p>\r
+The command to set an exact number of seconds per move looks like this:\r
+</p>\r
+\r
+<pre>\r
+  st 30\r
+</pre>\r
+\r
+<p>\r
+This means that each move must be made in at most 30 seconds.  Time not used\r
+on one move does not accumulate for use on later moves.\r
+</p>\r
+\r
+<h2><a name="12">12. Analyze Mode</a></h2>\r
+\r
+<p>xboard supports analyzing fresh games, edited positions, and games\r
+from files.  However, all of these look the same from the chess\r
+engine's perspective. Basically, the engine just has to respond to the\r
+"analyze" command.  \r
+<font color=red>\r
+Beginning in protocol version 2,\r
+if your engine does not support analyze mode, it should use\r
+the feature command to set analyze=0.  \r
+</font>\r
+The older method of\r
+printing the error message "Error (unknown command): analyze" in\r
+response to the "analyze" command will also work, however.\r
+</p>\r
+\r
+<p>\r
+To enter analyze mode, xboard sends the command sequence "post", "analyze".  \r
+Analyze mode in your engine should be\r
+similar to force mode, except that your engine thinks about what move\r
+it would make next if it were on move.  Your engine should accept the\r
+following commands while in analyze mode:\r
+</p>\r
+\r
+<ul>\r
+<li>Any legal move, as in force mode\r
+<li><strong>undo</strong>&nbsp;&nbsp; Back up one move and analyze previous position.\r
+<li><strong>new</strong>&nbsp;&nbsp; Reset position to start of game but stay in analyze mode.\r
+<li><font color=red><strong>setboard</strong> if you have set feature setboard=1; otherwise <strong>edit</strong>.  Exiting edit mode returns to analyze mode.\r
+</font>\r
+<li><strong>exit</strong>&nbsp;&nbsp; Leave analyze mode.\r
+<li><strong>.</strong>&nbsp;&nbsp; Send a search status update (optional); see below.\r
+<li><font color=red>\r
+<strong>bk</strong>&nbsp;&nbsp; Show book moves from this position,\r
+if any; see above.</font>\r
+<li><font color=red>\r
+<strong>hint</strong>&nbsp;&nbsp; Show the predicted move from this\r
+position, if any; see above.</font>\r
+</ul>\r
+  \r
+<p>\r
+If the user selects "Periodic Updates", xboard will send the string\r
+".\n" to the chess engine periodically during analyze mode, unless the\r
+last PV received began with a '(' character.\r
+</p>\r
+\r
+<p>\r
+The chess engine should respond to ".\n" with a line like this:\r
+</p>\r
+\r
+<pre>\r
+stat01: time nodes ply mvleft mvtot <font color=red>mvname</font>\r
+</pre>\r
+\r
+Where:\r
+<table>\r
+<tr align="left"><th>time<td>Elapsed search time in centiseconds (ie: 567 = 5.67 seconds).\r
+<tr align="left"><th>nodes<td>Nodes searched so far.\r
+<tr align="left"><th>ply<td>Search depth so far.\r
+<tr align="left"><th>mvleft<td>Number of moves left to consider at this depth.\r
+<tr align="left"><th>mvtot<td>Total number of moves to consider.\r
+<tr align="left"><th><font color=red>mvname</font><td><font color=red>\r
+Move currently being considered (SAN or coordinate notation).  Optional;\r
+added in protocol version 2.</font>\r
+</table>\r
+\r
+<p>\r
+Examples:\r
+</p>\r
+<pre>\r
+  stat01: 1234 30000 7 5 30\r
+  stat01: 1234 30000 7 5 30 Nf3\r
+</pre>\r
+\r
+<p>\r
+Meaning:\r
+</p>\r
+\r
+<p>After 12.34 seconds, I've searched 7 ply/30000 nodes, there are a\r
+  total of 30 legal moves, and I have 5 more moves to search\r
+  before going to depth 8.  In the second example, of the 30 legal\r
+  moves, the one I am currently searching is Nf3.</p>\r
+\r
+<p>\r
+Implementation of the "." command is optional. If the engine does not\r
+respond to the "." command with a "stat01..." line, xboard will stop\r
+sending "."  commands.  If the engine does not implement this command,\r
+the analysis window will use a shortened format to display the engine\r
+info.\r
+</p>\r
+\r
+<p>\r
+To give the user some extra information, the chess engine can output\r
+the strings "++\n" and "--\n", to indicate that the current search is\r
+failing high or low, respectively.  You don't have to send anything\r
+else to say "Okay, I'm not failing high/low anymore."  xboard will\r
+figure this out itself.\r
+</p>\r
+\r
+<h2><a name="13">13. Idioms and backward compatibility features</a></h2>\r
+\r
+<p>\r
+Some engines have variant interpretations of the force/go/white/black,\r
+time/otim, and hard/easy command sets.  \r
+In order to accommodate these older engines, xboard uses these commands\r
+only according to the stylized patterns ("idioms") given in this section.\r
+The obsolete white and black commands\r
+have historically been particularly troublesome, and it is recommended\r
+that new engines set the feature colors=0 and/or ignore the commands.\r
+</p>\r
+\r
+<dl>\r
+\r
+<dt><strong>time N</strong>\r
+<dt><strong>otim N</strong>\r
+<dt><strong>MOVE</strong>\r
+<dd>Sent when the opponent makes a move and the engine is already\r
+playing the opposite color.\r
+<p>\r
+\r
+<dt><strong>white</strong>\r
+<dt><strong>go</strong>\r
+<dd>Sent when the engine is in force mode or playing Black but should\r
+switch to playing White.  This sequence is sent only when White is\r
+already on move.  \r
+<font color=red>\r
+If you set the feature colors=0, "white" is not sent.\r
+</font>\r
+<p>\r
+\r
+<dt><strong>black</strong>\r
+<dt><strong>go</strong>\r
+<dd>Sent when the engine is in force mode or playing White but should\r
+switch to playing Black.  This sequence is sent only when Black is\r
+already on move.  \r
+<font color=red>\r
+If you set the feature colors=0, "black" is not sent.\r
+</font>\r
+<p>\r
+\r
+<dt><strong>white</strong>\r
+<dt><strong>time N</strong>\r
+<dt><strong>otim N</strong>\r
+<dt><strong>black</strong>\r
+<dt><strong>go</strong>\r
+<dd>Sent when Black is on move, the engine is in force mode or playing\r
+White, and the engine's clock needs to be updated before it starts\r
+playing.  \r
+The initial "white" is a kludge to accommodate GNU Chess\r
+4's variant interpretation of these commands.  \r
+<font color=red>\r
+If you set the feature colors=0, "white" and "black" are not sent.\r
+</font>\r
+<p>\r
+\r
+<dt><strong>black</strong>\r
+<dt><strong>time N</strong>\r
+<dt><strong>otim N</strong>\r
+<dt><strong>white</strong>\r
+<dt><strong>go</strong>\r
+<dd>Sent when White is on move, the engine is in force mode or playing\r
+Black, and the engine's clock needs to be updated before it starts\r
+playing.  See previous idiom.  \r
+The initial "black" is a kludge to accommodate GNU Chess\r
+4's variant interpretation of these commands.  \r
+<font color=red>\r
+If you set the feature colors=0, "black" and "white" are not sent.\r
+</font>\r
+<p>\r
+\r
+<dt><strong>hard</strong>\r
+<dt><strong>easy</strong>\r
+<dd>Sent in sequence to turn off pondering if xboard is not sure\r
+whether it is on.  When xboard is sure, it will send "hard" or "easy"\r
+alone.  xboard does this because "easy" is a toggle in GNU Chess 4 but\r
+"hard" is an absolute on.\r
+\r
+</dl>\r
+\r
+<p>\r
+To support older engines, certain additional commands from the engine\r
+to xboard are also recognized.  (These are commands by themselves, not\r
+values to be placed in the comment field of the PGN result code.)\r
+These forms are not recommended for new engines; use the PGN result\r
+code commands or the resign command instead.\r
+</p>\r
+\r
+<table>\r
+<tr align="left"><th>Command              <th>Interpreted as\r
+<tr align="left"><td>White resigns        <td>0-1 {White resigns}\r
+<tr align="left"><td>Black resigns        <td>1-0 {Black resigns}\r
+<tr align="left"><td>White                <td>1-0 {White mates}\r
+<tr align="left"><td>Black                <td>0-1 {Black mates}\r
+<tr align="left"><td>Draw                 <td>1/2-1/2 {Draw}\r
+<tr align="left"><td>computer mates       <td>1-0 {White mates} or 0-1 {Black mates}\r
+<tr align="left"><td>opponent mates       <td>1-0 {White mates} or 0-1 {Black mates}\r
+<tr align="left"><td>computer resigns     <td>0-1 {White resigns} or 1-0 {Black resigns}\r
+<tr align="left"><td>game is a draw       <td>1/2-1/2 {Draw}\r
+<tr align="left"><td>checkmate            <td>1-0 {White mates} or 0-1 {Black mates}\r
+</table>\r
+\r
+<p>\r
+Commands in the above table are recognized if they begin a line and\r
+arbitrary characters follow, so (for example) "White mates" will be\r
+recognized as "White", and "game is a draw by the 50 move rule" will\r
+be recognized as "game is a draw".  All the commands are\r
+case-sensitive.\r
+</p>\r
+\r
+<p>\r
+An alternative move syntax is also recognized:\r
+</p>\r
+\r
+<table>\r
+<tr align="left"><th>Command              <th>Interpreted as\r
+<tr align="left"><td>NUMBER ... MOVE      <td>move MOVE\r
+</table>\r
+\r
+<p>\r
+Here NUMBER means any string of decimal digits, optionally ending in a\r
+period.  MOVE is any string containing no whitespace.  In this command\r
+format, xboard requires the "..." even if your engine is playing\r
+White.  A command of the form NUMBER MOVE will be ignored.  This odd\r
+treatment of the commands is needed for compatibility with gnuchessx.\r
+The original reasons for it are lost in the mists of time, but I\r
+suspect it was originally a bug in the earliest versions of xboard,\r
+before I started working on it, which someone "fixed" in the wrong\r
+way, by creating a special version of gnuchess (gnuchessx) instead of\r
+changing xboard.\r
+</p>\r
+\r
+<p>\r
+Any line that contains the words "offer" and "draw" is recognized as\r
+"offer draw".\r
+</p>\r
+\r
+<p>\r
+The "Illegal move" message is recognized even if spelled "illegal\r
+move" and even if the colon (":") is omitted.  This accommodates GNU\r
+Chess 4, which prints messages like "Illegal move (no matching\r
+move)e2e4", and old versions of Crafty, which print just "illegal move".\r
+</p>\r
+\r
+<p>\r
+In Zippy mode, for compatibility with older versions of Crafty,\r
+xboard passes through to ICS any line that begins "kibitz", "whisper",\r
+"tell", or "draw".  Do not use this feature in new code.  Instead, use the\r
+commands "tellall", "tellothers", "tellopponent", "tellics" (if needed),\r
+"1/2-1/2 {COMMENT}", or "offer draw", as appropriate.\r
+</p>\r
+\r
+<p>\r
+<font color=red>\r
+If the engine responds to the "sd DEPTH" command with an error message\r
+indicating the command is not supported (such as "Illegal move: sd"),\r
+xboard sets an internal flag and subsequently uses the command\r
+"depth\nDEPTH" instead, for the benefit of GNU Chess 4.  Note the\r
+newline in the middle of this command!  New engines should not rely on\r
+this feature.\r
+</font>\r
+</p>\r
+\r
+<p>\r
+<font color=red>\r
+If the engine responds to the "st TIME" command with an error message\r
+indicating the command is not supported (such as "Illegal move: st"),\r
+xboard sets an internal flag and subsequently uses the command "level\r
+1 TIME" instead, for the benefit of GNU Chess 4.  Note that this is\r
+not a standard use of the level command, as TIME seconds are not added\r
+after each player makes 1 move; rather, each move is made in at most\r
+TIME seconds.  New engines should not implement or rely on this\r
+feature.\r
+</font>\r
+</p>\r
+\r
+<font color=red>\r
+<p>\r
+In support of the -firstHost/-secondHost features, which allow a chess\r
+engine to be run on another machine using the rsh protocol, xboard recognizes\r
+error messages that are likely to come from rsh as fatal errors.  The following\r
+messages are currently recognized:\r
+</p>\r
+\r
+<blockquote>\r
+unknown host<br>\r
+No remote directory<br>\r
+not found<br>\r
+No such file<br>\r
+can't alloc<br>\r
+Permission denied<br>\r
+</blockquote>\r
+</font>\r
+\r
+<p>\r
+<font color=red>\r
+ChessBase/Fritz now implements the xboard/winboard protocol and can use\r
+WinBoard-compatible engines in its GUI.  ChessBase's version of the\r
+protocol is generally the same as version 1, except that they have\r
+added the commands <strong>fritz</strong>, <strong>reset</strong>, and\r
+<strong>ponder</strong>, and the edit subcommands\r
+<strong>castle</strong> and <strong>ep</strong>.  If you want your\r
+engine to work well with the ChessBase/Fritz GUI, you may need to\r
+implement these additional commands, and you should also be aware of\r
+the peculiar way that ChessBase uses the protocol.  See their <a\r
+href="http://www.chessbase.com/Products/engines/winboard/tech.htm"\r
+>web page</a> for documentation.\r
+</font>\r
+</p>\r
+\r
+<p>\r
+<font color=red>\r
+ChessMaster 8000 also implements version 1 of the xboard/winboard\r
+protocol and can use WinBoard-compatible engines.  The original\r
+release of CM8000 also has one additional restriction: only pure\r
+coordinate notation (e.g., e2e4) is accepted in the move command.  A\r
+patch to correct this should be available from The Learning Company\r
+(makers of CM8000) in February 2001.\r
+</font>\r
+</p>\r
+\r
+<hr noshade size="2">\r
+<address>converted to HTML by <a href="http://www.jakob.at/steffen/">Steffen A. Jakob</a></address>\r
+</body>\r
+</html>\r
diff --git a/winboard/install/files/root/WinBoard/doc/fonts.html b/winboard/install/files/root/WinBoard/doc/fonts.html
new file mode 100644 (file)
index 0000000..f535b44
--- /dev/null
@@ -0,0 +1,135 @@
+<html>\r
+<header>\r
+<title>WGP: Piece Fonts</title>\r
+</header>\r
+<body>\r
+<table cellpadding="20"><tr><td>\r
+<h1>The WinBoard Gold Pack 4.4.0</h1>\r
+<h2>For the ultimate WinBoard experience!</h2>\r
+</td><td>\r
+<img src="mini.gif">\r
+</td></tr></table>\r
+<p>\r
+Chess fonts are fonts where each letter is a small picture, like hieroglyphs.\r
+The pictures represent Chess pieces, e.g. the A can look like a King, the B like a Queen.\r
+Often there are separate characters for white and black pieces,\r
+and often also for pieces on white and black squares.\r
+In WinBoard 4.4, it is posible to use such fonts for displaying the pieces.\r
+You would only need the pieces on light squares for this,\r
+as WinBoard will draw the background by itself.\r
+</p>\r
+<h3>Step 1: Installing the Font on your Computer</h3>\r
+<p>\r
+The first step is to download the font.\r
+The "Chess Mark" font that is provided as an example in already included in this package,\r
+and the installer puts it in the Windows fonts folder for you,\r
+so it becomes automatically available in all your Windows applications.\r
+Other fonts can be obtained from the internet.\r
+A link to the website from which ChessMark was originally obtained,\r
+is given below.\r
+It contains many freeware fonts.\r
+You can pre-view the various fonts there as well.\r
+</p><p>\r
+To install new fonts, you can use the following procedure:\r
+After clicking the download link you can ask to open the file,\r
+Windows will then automatically show you its contents.\r
+(Often this does not work, though.\r
+In that case you will have to click 'Save' in stead of 'Open',\r
+and save the downloaded .zip file somewhere.\r
+After that you get the option to click 'Open' again,\r
+and then it usually works.)\r
+The opened zip file will in general contain 4 files,\r
+two READ_ME files (one in Danish), a Word document, and the font file (.tff) itself.\r
+</p><p>\r
+Click "extract all files" on the upper left.\r
+This makes the unpack wizzard pop up, which will guide you trough the unpacking process.\r
+You can unpack the fonts download in any convenient place;\r
+you will have to move some selected parts of it to another place anyway.\r
+</p><p>\r
+After unpacking,\r
+the .tff file must be moved to the /WINDOWS/FONTS folder to become installed.\r
+Sometimes it becomes only active after restarting your computer.\r
+If the font is correctly installed, you will see some Chess-piece symbols\r
+when you click the .tff file in your system's Fonts folder.\r
+If the page you see when clicking this file is mostly blank,\r
+you probably have to restart your computer.\r
+</p>\r
+<h3>Step 2: Tell WinBoard to use the Font</h3>\r
+<p>\r
+To use a font for rendering pieces, you have to tel WinBoard two things:\r
+<br>\r
+* Which font to use\r
+<br>\r
+* Which character represents which piece\r
+<br>\r
+The latter is unfortunately not standardized; every fonts does it differently.\r
+For the first thing there is a command-line option /renderPiecesWithFont="Chess Mark"\r
+(or whatever font you have downoaded).\r
+If you want this to become the global default for your "board look",\r
+you have to append this to the winboard.ini file in the WinBoard folder (i.e. ~\WinBoard\winboard.ini),\r
+using a text editor (e.g. MS NotePad).\r
+The option is already there in the winboard.ini supplied with the Gold Pack,\r
+but it is made inactive by putting a '*' in front of the font name.\r
+So you could also look for that option in the winboard.ini file, and delete the asterisk.\r
+</p><p>\r
+If you don't want to make the font a global default,\r
+you could make a special shortcut for it,\r
+that only works if WinBoard is invoked through this shortcut.\r
+The options we discuss here should then not go into the winboard.ini file,\r
+but in a separate small .ini file like the supplied example "ChessMark.ini".\r
+</p><p>\r
+The mapping of pieces on characters is controlled by the option /fontPieceToCharTable="...",\r
+where the "..." lists the character needed to obtain PNBRQKpnbrqk, in that order.\r
+Sometimes the mapping is specified in one of the README files that come with the font.\r
+But if you don't know which to use,\r
+you can experiment by making a text in MS Word consisting of the full alphabet,\r
+and then changing the font for it to the font you just installed.\r
+(If this package installed correctly, you should already have "ChessMark" in your font menu, there.)\r
+The winboard.ini supplied with this package already sets the proper values for ChessMark,\r
+but if you would try another font it would likely start to mix up the pieces unless you change these settings.\r
+</p>\r
+<h3>Coloring the Pieces and Fine Tuning</h3>\r
+<p>\r
+The inner part of the pieces (everything inside the black outline defined by the font)\r
+is filled with a color gradient.\r
+Usually, the black pieces have almost solid font images, so there is little to fill there.\r
+If you don't want that, you can use the /allWhite=true option\r
+(also selectable from the "Options -> Board..." menu dialog).\r
+The actual colors are set by the following four options,\r
+which define a foreground and background color for both the white and black pieces.\r
+The actual color gradually changes from foreground on one side to backfground on the other,\r
+to simulate shading.\r
+If you don't want this shading, you can make foreground and background colors equal.\r
+The colors (unfortnately) have to be given as hexadecimal code for RGB intensities...).\r
+In the winboard.ini supplied with this package they are set to white and black.\r
+</p><p>\r
+Pieces rendered with fonts are automaticaly scaled with the board size. \r
+Not all fonts are equally big though, even if they are all called 12-point (or whatever).\r
+Therefore the size of the pieces can need some fine-tuning,\r
+which can be done with the option /fontPieceSize=N, where N is a number.\r
+The number is aproximately the percentage of the size that would nominally be needed\r
+to fill an entire board square.\r
+So usually we have to set it slightly below 100.\r
+The settings used in the ChessMark.ini example file are:\r
+</p>\r
+<pre>\r
+/renderPiecesWithFont="Chess Mark"\r
+/fontPieceBackColorWhite=#ffffff\r
+/fontPieceForeColorWhite=#000000\r
+/fontPieceBackColorBlack=#ffffff\r
+/fontPieceForeColorBlack=#000000\r
+/fontPieceSize=80\r
+/fontPieceToCharTable="pnbrqkomvtwl"\r
+</pre>\r
+<h3>Links</h3>\r
+<p>\r
+<a href="http://www.enpassant.dk/chess/fontedk.htm">A Download Page for Chess Fonts</a>\r
+</p>\r
+<p>\r
+<a href="texture.html">Using arbitrary bitmaps for chess board</a>\r
+</p>\r
+<p>\r
+<a href="shortcuts.html">Customizing WinBoard through shortcuts</a>\r
+</p>\r
+</body>\r
+</html>\r
diff --git a/winboard/install/files/root/WinBoard/doc/manual.html b/winboard/install/files/root/WinBoard/doc/manual.html
new file mode 100644 (file)
index 0000000..11af3cb
--- /dev/null
@@ -0,0 +1,627 @@
+<!DOCTYPE HTML>\r
+<html>\r
+\r
+<head>\r
+<title>WinBoard 4.4.0</title>\r
+</head>\r
+\r
+<body>\r
+<table><tr><td halign="top">\r
+<h1>WinBoard 4.4.0</h1>\r
+<h2>"For the ultimate WinBoard experience"</h2>\r
+<h3>Introduction</h3>\r
+<p>\r
+The WinBoard 4.3 series was a continuation of the WinBoard_x line by Allessandro Scotti.\r
+It has been further developed, and is maintained, by H.G. Muller.\r
+Most addtions and improvements that went into this since the last version produced\r
+by the GNU-Savannah xboard project team, WinBoard 4.2.7b,\r
+were unfortunately not parallelled in XBoard.\r
+On the contrary, they had destroyed the compatibility of the back-end sources\r
+shared by WinBoard and XBoard with the XBoard front-end of version 4.2.7b.\r
+Since WinBoard 4.3.14, however, the releases again comes with a compatible XBoard front-end.\r
+That does not mean that all the features added to WinBoard can already be used\r
+in the latest XBoard version.\r
+But some can, an in 4.3.15 many more have been added.\r
+</p><p>\r
+WinBoard 4.4 is a merger of the WinBoard 4.3 line (WinBoard 4.3.pre16) \r
+and what was left in the GNU-Svannah XBoard repository (WinBoard 4.2.pre8).\r
+More WinBoard functionality has been ported to XBoard,\r
+but there still is a sizable gap to bridge.\r
+</p><p>\r
+The description below applies specifically to WinBoard, \r
+although we have tried to mark features that can also be used in xboard by (x) everywhere.\r
+This version of XBoard now does have some new menus added to control such features.\r
+Other functions, if they work at all, must be switched on from the command line.\r
+</p>\r
+</td><td width="20">\r
+</td><td width="200" halign="center" cellpdding="20">\r
+<img src="mini.gif">\r
+</td></tr></table>\r
+<h3>New features since 4.2.7b</h3>\r
+<p>\r
+Below follows a table that lists the new features, \r
+the command-line option needed to control them,\r
+and if there is a menu provided that can switch the option while WinBoard is running\r
+(command-line options exert their effect only at startup).\r
+Note that, unlike WinBoard 4.2.7, the WinBoard 4.3 series is fully castling and e.p. aware,\r
+and handles the castling, e.p. and 50-move field in FENs on input and output as should be expected.\r
+</p>\r
+<table cellpadding="3" border="1"><tr><td width="220">\r
+      <h3>command-line option</h3>\r
+    </td><td>\r
+      <h3>description</h3>\r
+    </td><td width="250">\r
+      <h3>menu</h3>\r
+  </td></tr><tr><td>\r
+      \r
+    </td><td bgcolor="lightblue">\r
+      <strong>ENGINE-ENGINE ADJUDICATION OPTIONS<strong>\r
+    </td><td>\r
+      \r
+  </td></tr><tr><td>\r
+      -adjudicateLossThreshold 0 (*x)\r
+    </td><td>\r
+      adjudicates engine-engine game based on score\r
+    </td><td>\r
+      Options -> Engine... (x)\r
+  </td></tr><tr><td>\r
+      -checkMates false (*x)\r
+    </td><td>\r
+      detect and end game on checkmates and stalemates\r
+    </td><td>\r
+      Options -> Engine... (x)\r
+  </td></tr><tr><td>\r
+      -testClaims false (*x)\r
+    </td><td>\r
+      WinBoard corrects false RESULT claims\r
+    </td><td>\r
+      Options -> Engine.. (x)\r
+  </td></tr><tr><td>\r
+      -materialDraws false (*x)\r
+    </td><td>\r
+      adjudicate draw when no mating material present\r
+    </td><td>\r
+      Options -> Engine.. (x)\r
+  </td></tr><tr><td>\r
+      -trivialDraws false (*x)\r
+    </td><td>\r
+      adjudicate draw in endgames like KRKR and KNNK\r
+    </td><td>\r
+      Options -> Engine.. (x)\r
+  </td></tr><tr><td>\r
+      -adjudicateDrawMoves 0 (*x)\r
+    </td><td>\r
+      adjudicate draw when game lasts too long\r
+    </td><td>\r
+      Options -> Engine.. (x)\r
+  </td></tr><tr><td>\r
+      -ruleMoves 51 (*x)\r
+    </td><td>\r
+      number of reversible moves after which to adjudicate draw\r
+    </td><td>\r
+      Options -> Engine.. (x)\r
+  </td></tr><tr><td>\r
+      -repeatsToDraw 6 (*x)\r
+    </td><td>\r
+      adjudicate draw when a position occurs this many times\r
+    </td><td>\r
+      Options -> Engine.. (x)\r
+  </td></tr><tr><td>\r
+      -firstScoreAbs false (x)\r
+      <br>\r
+      -secondScoreAbs false (x)\r
+    </td><td>\r
+      Engine indicates score for white, even when playing black\r
+    </td><td>\r
+      Options -> Adjudications.. (xboard-only)\r
+  </td></tr><tr><td>\r
+      -\r
+    </td><td>\r
+      Adjudicate the game in progress as win to white, win to black, or draw\r
+    </td><td>\r
+      Action -> Adjudicate to White\r
+      <br>\r
+      Action -> Adjudicate to Black\r
+      <br>\r
+      Action -> Adjudicate Draw\r
+  </td></tr><tr><td>\r
+      \r
+    </td><td bgcolor="lightblue">\r
+      <strong>TIME-CONTROL AND TIMING OPTIONS</strong>\r
+    </td><td>\r
+      \r
+  </td></tr><tr><td>\r
+      -firstTimeOdds 1 (x)\r
+      <br>\r
+      -secondTimeOdds 1 (x)\r
+    </td><td>\r
+      reduce the thinking time of the mentioned engine by the given factor\r
+    </td><td>\r
+      Options -> Engine Settings.. (xboard only)\r
+  </td></tr><tr><td>\r
+      -timeOddsMode 1 (*x)\r
+    </td><td>\r
+      determines what happens when both engine have time odds\r
+    </td><td>\r
+      Options -> Engine Settings.. (xboard only)\r
+  </td></tr><tr><td>\r
+      -firstNPS -1 (x)\r
+      <br>\r
+      -secondNPS -1 (x)\r
+    </td><td>\r
+      engine must use node count for its time control, as if running at specified rate\r
+    </td><td>\r
+      -\r
+  </td></tr><tr><td>\r
+      -matchPause 10000 (*x)\r
+    </td><td>\r
+      number of msec to wait between games in match mode\r
+    </td><td>\r
+      -\r
+  </td></tr><tr><td>\r
+      -delayBeforeQuit 0 (*x)\r
+      <br>\r
+      -delayAfterQuit 0 (*x)\r
+    </td><td>\r
+      timing parameter specifying how to terminate the engine processes\r
+    </td><td>\r
+      -\r
+  </td></tr><tr><td>\r
+      -\r
+    </td><td>\r
+      adjust the clocks by 1 minute (up or down)\r
+    </td><td>\r
+      left- or right-cick on clock in edit-game mode\r
+  </td></tr><tr><td>\r
+      -niceEngines 0 (*x)\r
+    </td><td>\r
+      lower the CPU priority of the engines\r
+    </td><td>\r
+      -\r
+  </td></tr><tr><td>\r
+      \r
+    </td><td bgcolor="lightblue">\r
+      <strong>DISPLAY-LOOK OPTIONS</strong>\r
+    </td><td>\r
+      \r
+  </td></tr><tr><td>\r
+      -liteBackTextureFile "" (*)\r
+      <br>\r
+      -darkBackTextureFile "" (*)\r
+      <br>\r
+      -liteBackTextureMode 1 (*)\r
+      <br>\r
+      -darkBackTextureMode 1 (*)\r
+    </td><td>\r
+      Allows you to use any bitmap picture for displaying the board square\r
+    </td><td>\r
+      -\r
+  </td></tr><tr><td>\r
+      -renderPiecesWithFont "" (*)\r
+    </td><td>\r
+      specifies a true-type Chess font to be used for piece symbols\r
+    </td><td>\r
+      -\r
+  </td></tr><tr><td>\r
+      -fontPieceToCharTable "" (*)\r
+    </td><td>\r
+      specifies which font character to use for the various piece types\r
+    </td><td>\r
+      -\r
+  </td></tr><tr><td>\r
+      -overrideLineGap 1 (*)\r
+    </td><td>\r
+      controls the width of the black grid lines between squares\r
+    </td><td>\r
+      -\r
+  </td></tr><tr><td>\r
+      -fontPieceBackColorWhite #0 (*)\r
+      <br>\r
+      -fontPieceForeColorWhite #0 (*)\r
+      <br>\r
+      -fontPieceBackColorBlack #0 (*)\r
+      <br>\r
+      -fontPieceForeColorBlack #0 (*)\r
+    </td><td>\r
+      control piece colors in font-based rendering\r
+    </td><td>\r
+      -\r
+  </td></tr><tr><td>\r
+      -fontPieceSize 80 (*)\r
+    </td><td>\r
+      tunes the size of pieces in font-based rendering (% of square size)\r
+    </td><td>\r
+      -\r
+  </td></tr><tr><td>\r
+      -highlightMoveWithArrow false (*)\r
+    </td><td>\r
+      draws a big arrow to indicate the move last played\r
+    </td><td>\r
+      Options -> General...\r
+  </td></tr><tr><td>\r
+      -highlightArrowColor #FFFF80 (*)\r
+    </td><td>\r
+      controls the color of the highlight arrow\r
+    </td><td>\r
+      -\r
+  </td></tr><tr><td>\r
+      -autoLogo false (*)\r
+      <br>\r
+      -firstLogo ""\r
+      <br>\r
+      -secondLogo ""\r
+    </td><td>\r
+      causes WinBoard to display player logos above the board, next to the clocks.\r
+    </td><td>\r
+      -\r
+  </td></tr><tr><td>\r
+      -\r
+    </td><td>\r
+      Swap white and black clock\r
+    </td><td>\r
+      Options -> Swap Clocks\r
+  </td></tr><tr><td>\r
+      \r
+    </td><td bgcolor="lightblue">\r
+      <strong>(UCI) ENGINE OPTIONS</strong>\r
+    </td><td>\r
+      \r
+  </td></tr><tr><td>\r
+      -polyglotDir "" (*x)\r
+    </td><td>\r
+      tells WinBoard where you installed Polyglot, for automatic invocation with UCI engines\r
+    </td><td>\r
+      Options -> Global Settings... (x)\r
+  </td></tr><tr><td>\r
+      -polyglotBook "" (*x)\r
+    </td><td>\r
+      tells WinBoard which opening book it should use, or should make Polyglot use.\r
+    </td><td>\r
+      Options -> Global Settings... (x)\r
+  </td></tr><tr><td>\r
+      -usePolyglotBook false (*x)\r
+    </td><td>\r
+      turns the use of the Polygot book on or off\r
+    </td><td>\r
+      Options -> Global Settings... (x)\r
+  </td></tr><tr><td>\r
+      -defaultPathEGTB "c:\egtb" (*x)\r
+    </td><td>\r
+      folder where to find end-game tables\r
+    </td><td>\r
+      Options -> Global Settings... (x)\r
+  </td></tr><tr><td>\r
+      -defaultCacheSizeEGTB 4 (*x)\r
+    </td><td>\r
+      specifies the cache size for UCI engines\r
+    </td><td>\r
+      Options -> Global Settings... (x)\r
+  </td></tr><tr><td>\r
+      -defaultHashSize 64 (*x)\r
+    </td><td>\r
+      specifies the size of the main hash table for UCI engines and WinBoard engines implementing the memory command\r
+    </td><td>\r
+      Options -> Global Settings... (x)\r
+  </td></tr><tr><td>\r
+      -firstIsUCI false (x)\r
+      <br>\r
+      -secondIsUCI false (x)\r
+      <br>\r
+      -fUCI (x)\r
+      <br>\r
+      -sUCI (x)\r
+    </td><td>\r
+      tells WinBoard the corresponding engine should be run through Polyglot\r
+    </td><td>\r
+      -\r
+  </td></tr><tr><td>\r
+      -firstHasOwnBookUCI true (x)\r
+      <br>\r
+      -secondHasOwnBookUCI true (x)\r
+      <br>\r
+      -fNoOwnBookUCI true (x)\r
+      <br>\r
+      -sNoOwnBookUCI true (x)\r
+      <br>\r
+      -firstXBook (x)\r
+      <br>\r
+      -secondXBook (x)\r
+    </td><td>\r
+      tells WinBoard (or Polyglot) if the engine should use its own opening book\r
+    </td><td>\r
+      Options -> Global Settings... (x)\r
+  </td></tr><tr><td>\r
+      -smpCores 1 (*x)\r
+    </td><td>\r
+      sets the maximum number of CPUs an SMP engine can use.\r
+      (only affects engines that support the <strong>cores</strong> command of WB protocol)\r
+    </td><td>\r
+      Options -> Global Settings... (x)\r
+  </td></tr><tr><td>\r
+      -egtFormats "" (*x)\r
+    </td><td>\r
+      specifies which end-game tables are installed on the computer,\r
+      and where they can be found\r
+      (e.g. "nalimov:\chess\egtb,scorpio:\chess\bitbases")\r
+    </td><td>\r
+      -\r
+  </td></tr><tr><td>\r
+      -firstOptions "" (x)\r
+      <br>\r
+      -secondOptions "" (x)\r
+    </td><td>\r
+      sets engine-defined options of UCI engines and WinBoard engines that support the option feature.\r
+    </td><td>\r
+      Options -> Engine #1 Settings... (x)\r
+      <br>\r
+      Options -> Engine #2 Settings... (x)\r
+  </td></tr><tr><td>\r
+      -firstNeedsNoncompliantFEN "" (x)\r
+      <br>\r
+      -secondNeedsNoncompliantFEN "" (x)\r
+    </td><td>\r
+      directly specifies castling and e.p. field to be used in all FENs sent to mentioned engine\r
+    </td><td>\r
+      -\r
+  </td></tr><tr><td>\r
+      \r
+    </td><td bgcolor="lightblue">\r
+      <strong>CHESS-VARIANT OPTIONS</strong>\r
+    </td><td>\r
+      \r
+  </td></tr><tr><td>\r
+      -boardHeight -1 (*x)\r
+      <br>\r
+      -boardWidth -1 (*x)\r
+      <br>\r
+      -holdingsSize -1 (*x)\r
+    </td><td>\r
+      specifies the board format and nr of piece types that can be dropped,\r
+      when you want it to be different from what is usual in the chosen varint\r
+    </td><td>\r
+      File -> New Variant...\r
+  </td></tr><tr><td>\r
+      -variant normal (x)\r
+    </td><td>\r
+      supports many new variants: xiangqi, shogi, fischerandom, capabanca, gothic, caparandom, janus,\r
+      shatranj, courier, knightmate, berolina, falcon, cylinder, fairy, super, great\r
+    </td><td>\r
+      File -> New Variant... (x)\r
+  </td></tr><tr><td>\r
+      -defaultFrcOpening -1 (x)\r
+    </td><td>\r
+      allows you to play from a specific opening shuffle, or make a new shuffle each game\r
+    </td><td>\r
+      File -> New Shuffle Game... (x)\r
+  </td></tr><tr><td>\r
+      -pieceToCharTable "" (x)\r
+    </td><td>\r
+      allows you to specify by which letters pieces are referred to in FEN and SAN,\r
+      if you want to deviate from what is usual for the current variant\r
+    </td><td>\r
+      -\r
+  </td></tr><tr><td>\r
+      -flipBlack fase (*x)\r
+    </td><td>\r
+      displays opponent pieces uppside down (for Shogi)\r
+    </td><td>\r
+      Options -> Board...\r
+  </td></tr><tr><td>\r
+      -allWhite false (*x)\r
+    </td><td>\r
+      use white bitmaps (with black outline) also for display of black pieces (for Shogi)\r
+    </td><td>\r
+      Options -> Board...\r
+  </td></tr><tr><td>\r
+      \r
+    </td><td bgcolor="lightblue">\r
+      <strong>PGN FILE OPTIONS</strong>\r
+    </td><td>\r
+      \r
+  </td></tr><tr><td>\r
+      -pgnExtendedInfo false (*x)\r
+    </td><td>\r
+      save engine output (depth, score time) in PGN\r
+    </td><td>\r
+      Options->General...\r
+  </td></tr><tr><td>\r
+      -pgnEventHeader </br>"Computer Chess Game" (*x)\r
+    </td><td>\r
+      specify the event for the PGN event tag\r
+    </td><td>\r
+      -\r
+  </td></tr><tr><td>\r
+      -saveOutOfBookInfo true (*)\r
+    </td><td>\r
+      include an 'annotator' tag in the PGN file\r
+    </td><td>\r
+      \r
+  </td></tr><tr><td>\r
+      -hideThinkingFromHuman false (*x)\r
+    </td><td>\r
+      suppresses the engine thinking output in the display, without the need to switch it off\r
+      (so it can still appear in the PGN file)\r
+    </td><td>\r
+      Options -> General... (x)\r
+  </td></tr><tr><td>\r
+      -userName "" (x)\r
+    </td><td>\r
+      sets the name of the human player\r
+    </td><td>\r
+      Mode -> Enter Username... (x)\r
+  </td></tr><tr><td>\r
+      \r
+    </td><td bgcolor="lightblue">\r
+      <strong>USER-INTERFACE OPTIONS AND WINDOW CONTROL</strong>\r
+    </td><td>\r
+      \r
+  </td></tr><tr><td>\r
+      -moveHistoryUp true (*)\r
+      <br>\r
+      -moveHistoryX 0 (*)\r
+      <br>\r
+      -moveHistoryY 0 (*)\r
+      <br>\r
+      -moveHistoryW 0 (*)\r
+      <br>\r
+      -moveHistoryH 0 (*)\r
+    </td><td>\r
+      controls opening, placement and size of a window containing the moves of the current game\r
+      (new in 4.4 is that all X and Y coordinates of auxiliary windows are stored relative to the main window)\r
+    </td><td>\r
+      Mode -> Show Move History (x)\r
+  </td></tr><tr><td>\r
+      -evalGraphUp true (*)\r
+      <br>\r
+      -evalGraphX 0 (*)\r
+      <br>\r
+      -evalGraphY 0 (*)\r
+      <br>\r
+      -evalGraphW 0 (*)\r
+      <br>\r
+      -evalGraphH 0 (*)\r
+    </td><td>\r
+      controls opening, placement and size of a window containing a graph of the\r
+      evaluation score of the engine(s) as a function of move number of the current game\r
+    </td><td>\r
+      Mode -> Show Evaluation Graph\r
+  </td></tr><tr><td>\r
+      -engineOutputUp true (*)\r
+      <br>\r
+      -engineOutputX 0 (*)\r
+      <br>\r
+      -engineOutputY 0 (*)\r
+      <br>\r
+      -engineOutputW 0 (*)\r
+      <br>\r
+      -engineOutputH 0 (*)\r
+    </td><td>\r
+      controls opening, placement and size of a window containing the thinking output of the engine(s)\r
+    </td><td>\r
+      Mode -> Show Engine Output (x)\r
+  </td></tr><tr><td>\r
+      -stickyWindows true (*)\r
+    </td><td>\r
+      make the various windows snap onto each other, and stick together\r
+    </td><td>\r
+      -\r
+  </td></tr><tr><td>\r
+      -showEvalInMoveHistory true (*)\r
+    </td><td>\r
+      depth/score info of the engine is included as comments in the move history window\r
+    </td><td>\r
+      Options -> General...\r
+  </td></tr><tr><td>\r
+      -evalHistColorWhite #FFFFB0 (*)\r
+      <br>\r
+      -evalHistColorBlack #AD5D3D (*)\r
+    </td><td>\r
+      determines the color of the eval-score comments in the move-history window\r
+    </td><td>\r
+      -\r
+  </td></tr><tr><td>\r
+      -autoDisplayComment true (*)\r
+    </td><td>\r
+      causes a window for displaying PGN comments to pop up automatically when such a comment is encountered\r
+    </td><td>\r
+      -\r
+  </td></tr><tr><td>\r
+      -autoDisplayTags true (*)\r
+    </td><td>\r
+      causes a window with PGN tags to be displayed as soon as a PGN file is loaded\r
+    </td><td>\r
+      -\r
+  </td></tr><tr><td>\r
+      -gameListTags "eprd" (*)\r
+    </td><td>\r
+      specifies the PGN tags that should be displayed in the game list\r
+    </td><td>\r
+      Options -> Game List...\r
+  </td></tr><tr><td>\r
+      -noGUI (x)\r
+    </td><td>\r
+      suppress update of display on all machine and ICS moves (moves, clocks, icon)\r
+    </td><td>\r
+      -\r
+  </td></tr><tr><td>\r
+      \r
+    </td><td bgcolor="lightblue">\r
+      <strong>ICS OPTIONS</strong>\r
+    </td><td>\r
+      \r
+  </td></tr><tr><td>\r
+      -autoKibitz (x)\r
+    </td><td>\r
+      kibitz engine Thinking Output to ICS, and capture opponent kibitz for in PGN\r
+    </td><td>\r
+      -\r
+  </td></tr><tr><td>\r
+      -zippyShortGame 0 (x)\r
+    </td><td>\r
+      ban opponents on ICS that abort without playing\r
+    </td><td>\r
+      -\r
+  </td></tr><tr><td>\r
+      \r
+    </td><td bgcolor="lightblue">\r
+      <strong>MISCELLANEOUS</strong>\r
+    </td><td>\r
+      \r
+  </td></tr><tr><td>\r
+      -debugFile "winboard.debug" (x)\r
+      <br>\r
+      -nameOfDebugFile "winboard.debug" (x)\r
+    </td><td>\r
+      allows you to specify an alternative name for saving the debug information\r
+    </td><td>\r
+      -\r
+  </td></tr><tr><td>\r
+      -engineDebugOutput 0 (x)\r
+    </td><td>\r
+      tells WinBoard if and how to put protocol-violating output in the debug file\r
+    </td><td>\r
+      -\r
+  </td></tr><tr><td>\r
+      -\r
+    </td><td>\r
+      save chess-board display as diagram in bitmap file\r
+      (only works for the smaller board formats!)\r
+    </td><td>\r
+      File -> Save Diagram...\r
+  </td></tr><tr><td>\r
+      -defaultFrcPosition -1 (*x)\r
+    </td><td>\r
+      specify the number of the starting position in shuffle Chess variants\r
+    </td><td>\r
+      File -> New Shuffle Game... (x)\r
+  </td></tr><tr><td>\r
+      -\r
+    </td><td>\r
+      display only those lines in the game list that contain a given string\r
+    </td><td>\r
+      in Game-List window\r
+  </td></tr><tr><td>\r
+      -rewindFile 0 (x)\r
+    </td><td>\r
+      A nonzero value for this option causes the loadGameIndex or loadPositionIndex\r
+      to rewind to the beginning of the Games or Position file when it reaches\r
+      the given value in auto-increment match mode. \r
+      This mode is specified by a negative value as argument of the /lgi or /lpi options,\r
+      where -1 increments the index after every game of the match,\r
+      and -2 after every two games (so that each position is played with black and white).\r
+    </td><td>\r
+      -\r
+  </td></tr><tr><td>\r
+      -sameColorGames 0 (x)\r
+    </td><td>\r
+      play a match, but without alternating the colors (overrules -matchGames)\r
+    </td><td>\r
+      -\r
+</td></tr></table>\r
+<p>\r
+The value with which the option is listed is the default value.\r
+If it is false or true, it is a Boolean option, a number implies an integer option.\r
+A value starting with # indicates an RGB color indication in hexadecimal notation.\r
+Options the settings of which are saved into the winboard.ini file are marked with (*).\r
+</p>\r
+</body>\r
diff --git a/winboard/install/files/root/WinBoard/doc/mini.gif b/winboard/install/files/root/WinBoard/doc/mini.gif
new file mode 100644 (file)
index 0000000..12e4ea5
Binary files /dev/null and b/winboard/install/files/root/WinBoard/doc/mini.gif differ
diff --git a/winboard/install/files/root/WinBoard/doc/shortcuts.html b/winboard/install/files/root/WinBoard/doc/shortcuts.html
new file mode 100644 (file)
index 0000000..e69162e
--- /dev/null
@@ -0,0 +1,200 @@
+<html>\r
+<header>\r
+<title>WGP: Shortcuts for WinBoard</title>\r
+</header>\r
+<body>\r
+<table cellpadding="20"><tr><td>\r
+<h1>The WinBoard Gold Pack 4.4.0</h1>\r
+<h2>For the ultimate WinBoard experience!</h2>\r
+</td><td>\r
+<img src="mini.gif">\r
+</td></tr></table>\r
+<h3>Customizing WinBoard through Shortcuts</h3>\r
+<p>\r
+The most convenient way to run invoke WinBoard is usually through PSWBTM,\r
+as this combines an easy way to select the engine with a large choice of engines.\r
+A viable alternative for things you do very often \r
+(e.g. play on FICS, or play your own engine on ICC)\r
+is to use a shortcut.\r
+Such a shortcut hardly offers any flexibility, as it always starts WinBoard with exactly\r
+the same combination of options.\r
+But it does allow you to start this combination with a single mouse click,\r
+which can be convenient for something you do frequently.\r
+And the WinBoard menus offer you a possibility to tailor some settings later.\r
+</p><p>\r
+If you browse to the WinBoard directory of this package (~\WinBoard),\r
+starting from "My Computer" on the desk top,\r
+You will see a number of black-knight icons.\r
+Except for the one marked "winboard" these are all shortcuts\r
+(recognizable from the small arrow in their lower left).\r
+They were defined as examples for how shortcuts can be used to ease some common tasks.\r
+</p><p>\r
+A good example to look how this works at is the "PGN viewer" shortcut.\r
+Double-click this, and you will see WinBoard pop up.\r
+Only the WinBoard main and move-history window will be there.\r
+Compare this to what you get when you click the winboard icon itself (i.e. not a shotcut):\r
+this will pop up the start-up dialog first, where you would have to tick that you want\r
+to use WinBoard to view or edit games only, after which it would come up in the default mode,\r
+with game history, engine output and evaluation graph all open up.\r
+(Unless you changed this default after downloading.)\r
+So to get into the same mode as was pre-programmed in the "PGN Viewer" shortcut,\r
+you would first have to close these auxiiary windows (in the "Mode" menu). \r
+So the shortcut does save quite some effort.\r
+</p><p>\r
+In a shortcut you can include any command-line options with the command that invokes WinBoard\r
+(in the target field that you see when you right-click the shortcut, and select "properties").\r
+The shortcuts in this package are all based on the use of "indirection" file arguments.\r
+That means that the actual arguments for, say, the "PGN Viewer" icon,\r
+are collected into a file "viewer.ini".\r
+The only option on the command-line in the shortcut is then "@viewer".\r
+Such a name preceded by a '@' sign is interpreted by WinBoard as the name of an .ini file\r
+(in this case viewer.ini), which is then read to get the actual option settings.\r
+This allows for far more options than can be put in the target line of the shortcut,\r
+and allows you to easily modify the options with a text editor like NotePad,\r
+rather than in the cramped confines of the shortcut properties dialog.\r
+</p><p>\r
+So when you want to change the settings of the shortcuts,\r
+you only have to change the contents of the corresponding .ini file.\r
+The shortcuts themselves only contain\r
+</p>\r
+~\WinBoard\winboard.exe @INIFILENAME\r
+<p>\r
+in their target field, \r
+where the twiddle stands for the path where you installed the Gold Pack.\r
+(Windows XP adapts this automatically, first time you use the shortcut.)\r
+And this can always stay that way.\r
+(Note that Windows XP and Vista do not show you the "@INIFILENAME" in the target field, \r
+when you open its properties dialog, which is a bit confusing.)\r
+</p>\r
+<h3>Changing the Shortcut Settings</h3>\r
+<p>\r
+There is thus no reason to ever touch the shortcuts themselves.\r
+All you have to do is to edit or replace the corresponding.ini file.\r
+For instance, for the shortcut to play against Fairy-Max,\r
+the settingsfile "fairy.ini" contains:\r
+</p>\r
+<pre>\r
+;\r
+; parameters for playing against an engine\r
+;\r
+/cp\r
+/firstChessProgram="fmax 22"\r
+/firstDirectory="../Fairy-Max"\r
+/secondChessProgram="fmax 22"\r
+/secondDirectory="../Fairy-Max"\r
+;\r
+;\r
+; define window layout\r
+;\r
+/autoLogo=true\r
+/moveHistoryUp=true\r
+/evalGraphUp=false\r
+/engineOutputUp=false\r
+/hideThinkingFromHuman=true\r
+;\r
+; define window positions\r
+;\r
+/winWidth=426\r
+/winHeight=539\r
+/moveHistoryX=426\r
+/moveHistoryY=0\r
+/moveHistoryW=250\r
+/moveHistoryH=539\r
+;\r
+;\r
+; prevent these settings from becoming default\r
+; \r
+/saveSettingsOnExit=false</pre>\r
+<p>\r
+One thing that is apparent is that a .ini file can contain "comments"\r
+describing what the options do, in lines starting with a semicolon.\r
+From top to bottom, the options tell WinBoard that we want it \r
+to run a Chess program (so it skips the startup dialog),\r
+which one, and where to find it.\r
+Note that WinBoard always wants to have two Chess programs in this mode,\r
+so we give it the same twice.\r
+(The second program is only used when you select Two-Machines Mode.)\r
+In the next section we tell WinBoard that it should try to find logos\r
+to display with the players,\r
+that of the three auxiliary windows only the move history should be open,\r
+and that the Human opponent should not be alowed to see what the engine\r
+is thinking.\r
+</p><p>\r
+Then follows a section which describes exactly where to locate the windows,\r
+in this case only the move-history window.\r
+The position of this is given (in pixels) compared to the position of\r
+the main window.\r
+Note it does not specify where to position the main window,\r
+or what boardSize to use.\r
+So for this the default value will be used.\r
+(Usually what was used last time, as remembered in the winboard.ini file.)\r
+For reference, though, the width and height of the main window for\r
+which the position information on the other windows refers,\r
+is mentioned first, as /winWidth and /winHeight.\r
+This allows WinBoard to conclude at startup that the move-history window\r
+was touching the main window on the right edge \r
+(since winWidth = moveHistoryX).\r
+So that it can retain this attachment if we start up WinBoard with\r
+a main window of a different width.\r
+(E.g. because we are playing Gothic Chess on a 10x8 board.)\r
+</p><p>\r
+At the bottom there is an option that says all this should not be copied \r
+to the win     board.ini file automatically.\r
+After all, because these settings are collected in a shortcut,\r
+you can summon them at the click of a mouse.\r
+So there is no reason to make them disturb the carefuly chosen settings \r
+of your previous session,\r
+which might take you a lot of effort to reproduce.\r
+</p><p>\r
+OK, that was pretty nasty, especially the coordinates part.\r
+You don't want to calculate coordinates by hand, and find out by trial and\r
+error what looks nice.\r
+A more convenient way of adjusting this, \r
+is to start WinBoard not through a shortcut, but through the startup dialog,\r
+and then drag and size the windows where you want them \r
+(or close them if you don't want them).\r
+You then save the settings in winboard.ini\r
+(usually done automatically, when you close WinBoard,\r
+but you can do it also with the "Options -> Save Settings Now" menu).\r
+Now you can open winboard.ini with the text editor,\r
+and at the end you will see all the coordinates of the windows as\r
+you just layed them out.\r
+Simply copy this information (starting with the /winWidth parameter)\r
+to the .ini file of the shortcut you are customizing.\r
+</p>\r
+<h3>Making a Shortcut from Scratch</h3>\r
+<p>\r
+If you want to create an entirely new shortcut, \r
+e.g. for a task you commonly perform, but which was not delivered with this package,\r
+you can use the following procedure:\r
+</p><p>\r
+First start up WinBoard, and bring it in exactly the state you would want it\r
+to start up in through the shortcut.\r
+Then save the settings on the winboard.ini file,\r
+make a copy of winboard.ini, and rename that copy to "MyShortcut.ini" (say).\r
+Then open this MyShortcut.ini in NotePad (usually by double-left-clicking it).\r
+Now you can add option settings to it which are normally not remembered\r
+from session to session (because they are not saved in winboard.ini),\r
+such as the variant (e.g. /variant=fischerandom),\r
+or the chess program and its folder (e.g. /fcp=Fruit /fd="..\Fruit" /fUCI).\r
+</p><p>\r
+Right-click the "winboard" knight icon (which is not a shortcut),\r
+and select "Make Shortcut" from the popup menu.\r
+Change the name of the newly appearing shortcut to "MyShortcut".\r
+Then right-click this shortcut, and select "Propeties".\r
+The text in the "target" field of the popup will now just be the name of the winboard.exe.\r
+Click this text at the end to put the cursor there (posibly with help of the arrow keys).\r
+Then add to this line " @MyShortcut.ini", so the line becomes:\r
+</p>\r
+~\WinBoard\winboard.exe @MyShortcut.ini\r
+<p>\r
+and click "OK". This completes the process.\r
+</p><p>\r
+This is pretty much all that can be said about how to mak shortcuts;\r
+the main problem is to figure out what the options are that do what you want done.\r
+Looking in the winboard.ini file often can provide inspiration, and when all else fails,\r
+as a final resort, you can read the manual!\r
+</p>\r
+\r
+</body>\r
+</html>
\ No newline at end of file
diff --git a/winboard/install/files/root/WinBoard/doc/texture.html b/winboard/install/files/root/WinBoard/doc/texture.html
new file mode 100644 (file)
index 0000000..2df933e
--- /dev/null
@@ -0,0 +1,97 @@
+<html>\r
+<header>\r
+<title>WGP: Board and Pieces</title>\r
+</header>\r
+<body>\r
+<table cellpadding="20"><tr><td>\r
+<h1>The WinBoard Gold Pack 4.4.0</h1>\r
+<h2>For the ultimate WinBoard experience!</h2>\r
+</td><td>\r
+<img src="mini.gif">\r
+</td></tr></table>\r
+<h3>Using a Bitmap Image for Chess Board</h3>\r
+<p>\r
+WinBoard 4.4 allows the user to use arbitrary images for the board squares.\r
+This feature was first introduced in\r
+<a href="http://www.ascotti.org/programming/chess/winboard_x.htm">Winboard_x</a>.\r
+The images have to be given as a bitmap, and the board squares are cut out of it.\r
+The Winboard_x home page shows some examples of this,\r
+and hosts the bitmap files needed to acheive them for download.\r
+The direct links are listed below.\r
+</p><p>\r
+The first step is to download the image.\r
+Of course you could also provide one yourself.\r
+The format must be bitmap (.bmp), but if you have an image in another format\r
+(.jpg, .gif) you can use MicroSoft Paint to convert it to .bmp;\r
+simply open the image file in Paint, and the use the "File -> Save as..." menu \r
+to save it as bitmap.\r
+The format in which you save can be selected at the bottom of the save dialog.\r
+</p><p>\r
+You will need two bitmaps, one for the light squares,the other for the dark.\r
+They have to be placed in the folder 'textures',\r
+which is already premade in the WinBoard folder of this package\r
+(~\WinBoard\textures).\r
+The bitmaps will have to be at least 129x129 \r
+(the largest square size used by winBoard),\r
+but using a larger bitmap will provide more variety in the squares that WinBoard \r
+cuts out of it.\r
+</p><p>\r
+Next step is to tell WinBoard to use the bitmaps.\r
+For this the options /liteBackTextureFile="..." and /darkBackTextureFile="..." exist.\r
+They can be put as arguments on the command line,\r
+in the winboard.ini file, or in special .ini files called from the command line.\r
+</p>\r
+<pre>\r
+/liteBackTextureFile="textures/wood_l.bmp"\r
+/darkBackTextureFile="textures/wood_d.bmp"\r
+/liteBackTextureMode=2\r
+/darkBackTextureMode=2\r
+/overrideLineGap=0\r
+</pre>\r
+<p>\r
+When board textures are used, the black lines between the squares that WinBoard usually draws\r
+often are spoiling the nice look.\r
+With the /overrideLineGap option you can set them narrower, or make them disappear altogether.\r
+(The number gives the width in pixels.)\r
+Note that WinBoard colors these lines for highlighting from- and to-squares of moves,\r
+so if you make the lines invisibly narrow, you better highlight with an Arrow.\r
+(You can enable this form of highlighting in the "Options -> General..." menu.\r
+The TextureMode options determine how squares cut out of the bitmaps are randomly\r
+rotated before being glued together to form the board.\r
+</p>\r
+<h3>Having Many Pre-defined Board Looks</h3>\r
+<p>\r
+If you don't want these settings to be permanently stored in your winboard.ini file,\r
+e.g. because you frequently want to change between different customized looks,\r
+you can put the options listed above in a small .ini file,\r
+such as the ~\WinBoard\wood.ini that was provided with this package.\r
+You can then summon them up at any time by giving "@wood.ini" (without the quotes)\r
+as an extra option on the bottom line of the startup dialog,\r
+or even make a separate shortcut that has this option on the "target" line.\r
+</p>\r
+<h3>Redefining the Piece Symbols</h3>\r
+<p>\r
+For changing the appearence of the pieces, \r
+you will need to use a true-type font to define the piece symbols.\r
+Such a true-type font can be scaled to any board size.\r
+How to do this is decriped on a separate page of this tutorial.\r
+</p>\r
+<h3>Links</h3>\r
+<p>\r
+<a href="fonts.html">How to Customize the Piece Symbols</a>\r
+</p>\r
+<p>\r
+<a href="shortcuts.html">Customizing WinBoard through Shortcuts</a>\r
+</p>\r
+<h3>Some Texture Bitmaps to Download</h3>\r
+<p>\r
+<a href="http://www.ascotti.org/programming/chess/zip/WbxSandy.zip">Sandy</a>\r
+</p><p>\r
+<a href="http://www.ascotti.org/programming/chess/zip/WbxClouds.zip">Clouds</a>\r
+</p><p>\r
+<a href="http://www.ascotti.org/programming/chess/zip/WbxBpWood.zip">Wood</a>\r
+</p><p>\r
+<a href="http://www.ascotti.org/programming/chess/zip/WbxDave.zip">Wood</a> (already included in the WinBoard Gold Pack)\r
+</p>\r
+</body>\r
+</html>
\ No newline at end of file
diff --git a/winboard/install/files/root/WinBoard/fairy.ini b/winboard/install/files/root/WinBoard/fairy.ini
new file mode 100644 (file)
index 0000000..d437c2b
--- /dev/null
@@ -0,0 +1,38 @@
+;\r
+; parameters for playing against an engine\r
+;\r
+/cp\r
+/firstChessProgram="fmax"\r
+/firstDirectory="../Fairy-Max"\r
+/secondChessProgram="fmax"\r
+/secondDirectory="../Fairy-Max"\r
+;\r
+; Opening book\r
+;\r
+/polyglotBook="default_book.bin"\r
+/usePolyglotBook=true\r
+/firstXBook\r
+/secondXBook\r
+;\r
+;\r
+; define window layout\r
+;\r
+/autoLogo=true\r
+/moveHistoryUp=true\r
+/evalGraphUp=false\r
+/engineOutputUp=false\r
+/hideThinkingFromHuman=true\r
+;\r
+; define window positions\r
+;\r
+/winWidth=426\r
+/winHeight=539\r
+/moveHistoryX=426\r
+/moveHistoryY=0\r
+/moveHistoryW=250\r
+/moveHistoryH=539\r
+;\r
+;\r
+; prevent these settings from becoming default\r
+; \r
+/saveSettingsOnExit=false\r
diff --git a/winboard/install/files/root/WinBoard/fruit.ini b/winboard/install/files/root/WinBoard/fruit.ini
new file mode 100644 (file)
index 0000000..7988653
--- /dev/null
@@ -0,0 +1,49 @@
+;\r
+; parameters for playing against an UCI engine\r
+;\r
+/cp\r
+;\r
+; Method 1: explicitly invoke Polyglot, and supply ini file with all UCI option settings\r
+; Directory is . (= same as WB), because that is where polyglot.exe is\r
+; This means WB will not be able to find logo file, so give it explicitly\r
+; \r
+/firstChessProgram="polyglot PG\fruit.ini"\r
+/firstDirectory="."\r
+/firstLogo="..\Fruit\logo.bmp"\r
+;\r
+; Method 2: let WB invoke Polyglot by telling it the engine is UCI. \r
+; PG/fruit.ini will not be used, so only the most basic options will be set.\r
+;\r
+/secondChessProgram="fruit_21"\r
+/secondDirectory="../Fruit"\r
+/fUCI\r
+;\r
+; Opening book\r
+;\r
+/polyglotBook="default_book.bin"\r
+/usePolyglotBook=true\r
+/firstXBook\r
+/secondXBook\r
+;\r
+;\r
+; define window layout\r
+;\r
+/autoLogo=true\r
+/moveHistoryUp=true\r
+/evalGraphUp=false\r
+/engineOutputUp=false\r
+/hideThinkingFromHuman=true\r
+;\r
+; define window positions\r
+;\r
+/winWidth=426\r
+/winHeight=539\r
+/moveHistoryX=426\r
+/moveHistoryY=0\r
+/moveHistoryW=250\r
+/moveHistoryH=539\r
+;\r
+;\r
+; prevent these settings from becoming default\r
+; \r
+/saveSettingsOnExit=false\r
diff --git a/winboard/install/files/root/WinBoard/logos/README.txt b/winboard/install/files/root/WinBoard/logos/README.txt
new file mode 100644 (file)
index 0000000..a1ce67b
--- /dev/null
@@ -0,0 +1,13 @@
+This folder is where WinBoard will search logo bitmaps for\r
+human users, and for Internet Chess Servers, when the option\r
+/autoLogo=true. (The logos for engines will be taken from the\r
+engine folder as specified by the /fd or /sd option, from\r
+the file "logo.bmp" in that folder.)\r
+\r
+To be recognized, the name of the file should be xxx.bmp,\r
+where xxx is either the name of the ICS as given in the\r
+/icsHost command (or selected in the startup dialog), or\r
+the name of the user as it appears in the WinBoard title\r
+bar. (This name can be set through the "Mode -> User Name"\r
+menu when you are not satisfied with the name the operating\r
+system assigns you.)
\ No newline at end of file
diff --git a/winboard/install/files/root/WinBoard/logos/chessclub.com.bmp b/winboard/install/files/root/WinBoard/logos/chessclub.com.bmp
new file mode 100644 (file)
index 0000000..b192eaa
Binary files /dev/null and b/winboard/install/files/root/WinBoard/logos/chessclub.com.bmp differ
diff --git a/winboard/install/files/root/WinBoard/logos/freechess.org.bmp b/winboard/install/files/root/WinBoard/logos/freechess.org.bmp
new file mode 100644 (file)
index 0000000..0ca154a
Binary files /dev/null and b/winboard/install/files/root/WinBoard/logos/freechess.org.bmp differ
diff --git a/winboard/install/files/root/WinBoard/logos/hgm.bmp b/winboard/install/files/root/WinBoard/logos/hgm.bmp
new file mode 100644 (file)
index 0000000..8f4d2b8
Binary files /dev/null and b/winboard/install/files/root/WinBoard/logos/hgm.bmp differ
diff --git a/winboard/install/files/root/WinBoard/marble.ini b/winboard/install/files/root/WinBoard/marble.ini
new file mode 100644 (file)
index 0000000..4c0c3cd
--- /dev/null
@@ -0,0 +1,17 @@
+;\r
+; Set bitmap background for Chess board\r
+;\r
+/liteBackTextureFile="textures/marble_l.bmp"\r
+/darkBackTextureFile="textures/marble_d.bmp"\r
+/liteBackTextureMode=2\r
+/darkBackTextureMode=2\r
+;\r
+; suppress grid lines, and use arrow for highlighting in stead\r
+;\r
+/overrideLineGap=0\r
+/highlightMoveWithArrow=true\r
+;\r
+;\r
+; prevent this from automatically becoming standard setting\r
+;\r
+/saveSettingsOnExit=false\r
diff --git a/winboard/install/files/root/WinBoard/my WinBoard.lnk b/winboard/install/files/root/WinBoard/my WinBoard.lnk
new file mode 100644 (file)
index 0000000..d94614f
Binary files /dev/null and b/winboard/install/files/root/WinBoard/my WinBoard.lnk differ
diff --git a/winboard/install/files/root/WinBoard/polyglot.exe b/winboard/install/files/root/WinBoard/polyglot.exe
new file mode 100644 (file)
index 0000000..cc58d9a
Binary files /dev/null and b/winboard/install/files/root/WinBoard/polyglot.exe differ
diff --git a/winboard/install/files/root/WinBoard/polyglot_1st.ini b/winboard/install/files/root/WinBoard/polyglot_1st.ini
new file mode 100644 (file)
index 0000000..e2326e0
--- /dev/null
@@ -0,0 +1,10 @@
+[Polyglot]\r
+EngineDir = .\r
+EngineCommand = polyglot PG\fruit.ini\r
+Book = true\r
+BookFile = default_book.bin\r
+[Engine]\r
+Hash = 64\r
+NalimovPath = ..\egtb\r
+NalimovCache = 4\r
+OwnBook = false\r
diff --git a/winboard/install/files/root/WinBoard/textures/marble_d.bmp b/winboard/install/files/root/WinBoard/textures/marble_d.bmp
new file mode 100644 (file)
index 0000000..8bf5c3e
Binary files /dev/null and b/winboard/install/files/root/WinBoard/textures/marble_d.bmp differ
diff --git a/winboard/install/files/root/WinBoard/textures/marble_l.bmp b/winboard/install/files/root/WinBoard/textures/marble_l.bmp
new file mode 100644 (file)
index 0000000..a824772
Binary files /dev/null and b/winboard/install/files/root/WinBoard/textures/marble_l.bmp differ
diff --git a/winboard/install/files/root/WinBoard/textures/wood_d.bmp b/winboard/install/files/root/WinBoard/textures/wood_d.bmp
new file mode 100644 (file)
index 0000000..c94c45d
Binary files /dev/null and b/winboard/install/files/root/WinBoard/textures/wood_d.bmp differ
diff --git a/winboard/install/files/root/WinBoard/textures/wood_l.bmp b/winboard/install/files/root/WinBoard/textures/wood_l.bmp
new file mode 100644 (file)
index 0000000..b0ca2f6
Binary files /dev/null and b/winboard/install/files/root/WinBoard/textures/wood_l.bmp differ
diff --git a/winboard/install/files/root/WinBoard/textures/xqboard.bmp b/winboard/install/files/root/WinBoard/textures/xqboard.bmp
new file mode 100644 (file)
index 0000000..d07a835
Binary files /dev/null and b/winboard/install/files/root/WinBoard/textures/xqboard.bmp differ
diff --git a/winboard/install/files/root/WinBoard/textures/xqwood.bmp b/winboard/install/files/root/WinBoard/textures/xqwood.bmp
new file mode 100644 (file)
index 0000000..b5bccfd
Binary files /dev/null and b/winboard/install/files/root/WinBoard/textures/xqwood.bmp differ
diff --git a/winboard/install/files/root/WinBoard/timeseal.exe b/winboard/install/files/root/WinBoard/timeseal.exe
new file mode 100644 (file)
index 0000000..25df3a8
Binary files /dev/null and b/winboard/install/files/root/WinBoard/timeseal.exe differ
diff --git a/winboard/install/files/root/WinBoard/timestamp.exe b/winboard/install/files/root/WinBoard/timestamp.exe
new file mode 100644 (file)
index 0000000..05df785
Binary files /dev/null and b/winboard/install/files/root/WinBoard/timestamp.exe differ
diff --git a/winboard/install/files/root/WinBoard/viewer.ini b/winboard/install/files/root/WinBoard/viewer.ini
new file mode 100644 (file)
index 0000000..39b5c38
--- /dev/null
@@ -0,0 +1,34 @@
+;\r
+; settings for PGN viewer\r
+;\r
+/ncp\r
+;\r
+; no eval graph or engine, and we would not know which loo to pick\r
+;\r
+/moveHistoryUp=true\r
+/evalGraphUp=false\r
+/engineOutputUp=false\r
+/autoLogo=false\r
+;\r
+; define window positions\r
+;\r
+/winWidth=426\r
+/winHeight=539\r
+/commentX=450\r
+/commentY=200\r
+/commentW=400\r
+/commentH=150\r
+/tagsX=450\r
+/tagsY=350\r
+/tagsW=350\r
+/tagsH=275\r
+/gameListX=426\r
+/gameListY=0\r
+/gameListW=400\r
+/gameListH=689\r
+/moveHistoryX=0\r
+/moveHistoryY=539\r
+/moveHistoryW=426\r
+/moveHistoryH=150\r
+;\r
+/saveSettingsOnExit=false\r
diff --git a/winboard/install/files/root/WinBoard/winboard.GID b/winboard/install/files/root/WinBoard/winboard.GID
new file mode 100644 (file)
index 0000000..ff29f09
Binary files /dev/null and b/winboard/install/files/root/WinBoard/winboard.GID differ
diff --git a/winboard/install/files/root/WinBoard/winboard.chm b/winboard/install/files/root/WinBoard/winboard.chm
new file mode 100644 (file)
index 0000000..cf644bf
Binary files /dev/null and b/winboard/install/files/root/WinBoard/winboard.chm differ
diff --git a/winboard/install/files/root/WinBoard/winboard.exe b/winboard/install/files/root/WinBoard/winboard.exe
new file mode 100644 (file)
index 0000000..e11c1a9
Binary files /dev/null and b/winboard/install/files/root/WinBoard/winboard.exe differ
diff --git a/winboard/install/files/root/WinBoard/winboard.hlp b/winboard/install/files/root/WinBoard/winboard.hlp
new file mode 100644 (file)
index 0000000..4f16b29
Binary files /dev/null and b/winboard/install/files/root/WinBoard/winboard.hlp differ
diff --git a/winboard/install/files/root/WinBoard/winboard.ini b/winboard/install/files/root/WinBoard/winboard.ini
new file mode 100644 (file)
index 0000000..1625776
--- /dev/null
@@ -0,0 +1,344 @@
+;\r
+; WinBoard 4.4.0k Save Settings file\r
+;\r
+; You can edit the values of options that are already set in this file,\r
+; but if you add other options, the next Save Settings will not save them.\r
+; Use a shortcut, an @indirection file, or a .bat file instead.\r
+;\r
+/whitePieceColor=#ffffcc\r
+/blackPieceColor=#202020\r
+/lightSquareColor=#c8c365\r
+/darkSquareColor=#77a26d\r
+/highlightSquareColor=#ffff00\r
+/premoveHighlightColor=#ff0000\r
+/movesPerSession=40\r
+/timeDelay=1\r
+/timeControl="1"\r
+/timeIncrement=-1\r
+/saveGameFile=".\default.pgn"\r
+/autoSaveGames=true\r
+/monoMode=false\r
+/showCoords=true\r
+/showThinking=true\r
+/ponderNextMove=false\r
+/periodicUpdates=true\r
+/popupExitMessage=true\r
+/popupMoveErrors=false\r
+/size=tiny /clockFont="Arial:9 b"\r
+/size=teeny /clockFont="Arial:9 b"\r
+/size=dinky /clockFont="Arial:10 b"\r
+/size=petite /clockFont="Arial:10 b"\r
+/size=slim /clockFont="Arial:12 b"\r
+/size=small /clockFont="Arial:14 b"\r
+/size=mediocre /clockFont="Arial:16 b"\r
+/size=middling /clockFont="Arial:16 b"\r
+/size=average /clockFont="Arial:18 b"\r
+/size=moderate /clockFont="Arial:20 b"\r
+/size=medium /clockFont="Arial:22 b"\r
+/size=bulky /clockFont="Arial:24 b"\r
+/size=large /clockFont="Arial:26 b"\r
+/size=big /clockFont="Arial:28 b"\r
+/size=huge /clockFont="Arial:21 b"\r
+/size=giant /clockFont="Arial:22 b"\r
+/size=colossal /clockFont="Arial:23 b"\r
+/size=titanic /clockFont="Arial:24 b"\r
+/size=tiny /messageFont="Small Fonts:6"\r
+/size=teeny /messageFont="Small Fonts:6"\r
+/size=dinky /messageFont="Small Fonts:7"\r
+/size=petite /messageFont="Small Fonts:7"\r
+/size=slim /messageFont="Arial:8 b"\r
+/size=small /messageFont="Arial:9 b"\r
+/size=mediocre /messageFont="Arial:9 b"\r
+/size=middling /messageFont="Arial:9 b"\r
+/size=average /messageFont="Arial:10 b"\r
+/size=moderate /messageFont="Arial:10 b"\r
+/size=medium /messageFont="Arial:10 b"\r
+/size=bulky /messageFont="Arial:10 b"\r
+/size=large /messageFont="Arial:10 b"\r
+/size=big /messageFont="Arial:11 b"\r
+/size=huge /messageFont="Arial:11 b"\r
+/size=giant /messageFont="Arial:11 b"\r
+/size=colossal /messageFont="Arial:12 b"\r
+/size=titanic /messageFont="Arial:12 b"\r
+/size=tiny /coordFont="Small Fonts:4"\r
+/size=teeny /coordFont="Small Fonts:4"\r
+/size=dinky /coordFont="Small Fonts:5"\r
+/size=petite /coordFont="Small Fonts:5"\r
+/size=slim /coordFont="Small Fonts:6"\r
+/size=small /coordFont="Small Fonts:7"\r
+/size=mediocre /coordFont="Small Fonts:7"\r
+/size=middling /coordFont="Small Fonts:7"\r
+/size=average /coordFont="Arial:7 b"\r
+/size=moderate /coordFont="Arial:7 b"\r
+/size=medium /coordFont="Arial:7 b"\r
+/size=bulky /coordFont="Arial:7 b"\r
+/size=large /coordFont="Arial:7 b"\r
+/size=big /coordFont="Arial:8 b"\r
+/size=huge /coordFont="Arial:8 b"\r
+/size=giant /coordFont="Arial:8 b"\r
+/size=colossal /coordFont="Arial:9 b"\r
+/size=titanic /coordFont="Arial:9 b"\r
+/size=tiny /tagsFont="Courier New:8"\r
+/size=teeny /tagsFont="Courier New:8"\r
+/size=dinky /tagsFont="Courier New:8"\r
+/size=petite /tagsFont="Courier New:8"\r
+/size=slim /tagsFont="Courier New:8"\r
+/size=small /tagsFont="Courier New:8"\r
+/size=mediocre /tagsFont="Courier New:8"\r
+/size=middling /tagsFont="Courier New:8"\r
+/size=average /tagsFont="Courier New:8"\r
+/size=moderate /tagsFont="Courier New:8"\r
+/size=medium /tagsFont="Courier New:8"\r
+/size=bulky /tagsFont="Courier New:8"\r
+/size=large /tagsFont="Courier New:8"\r
+/size=big /tagsFont="Courier New:8"\r
+/size=huge /tagsFont="Courier New:8"\r
+/size=giant /tagsFont="Courier New:8"\r
+/size=colossal /tagsFont="Courier New:8"\r
+/size=titanic /tagsFont="Courier New:8"\r
+/size=tiny /commentFont="Arial:9"\r
+/size=teeny /commentFont="Arial:9"\r
+/size=dinky /commentFont="Arial:9"\r
+/size=petite /commentFont="Arial:9"\r
+/size=slim /commentFont="Arial:9"\r
+/size=small /commentFont="Arial:9"\r
+/size=mediocre /commentFont="Arial:9"\r
+/size=middling /commentFont="Arial:9"\r
+/size=average /commentFont="Arial:9"\r
+/size=moderate /commentFont="Arial:9"\r
+/size=medium /commentFont="Arial:9"\r
+/size=bulky /commentFont="Arial:9"\r
+/size=large /commentFont="Arial:9"\r
+/size=big /commentFont="Arial:9"\r
+/size=huge /commentFont="Arial:9"\r
+/size=giant /commentFont="Arial:9"\r
+/size=colossal /commentFont="Arial:9"\r
+/size=titanic /commentFont="Arial:9"\r
+/size=tiny /icsFont="Courier New:8"\r
+/size=teeny /icsFont="Courier New:8"\r
+/size=dinky /icsFont="Courier New:8"\r
+/size=petite /icsFont="Courier New:8"\r
+/size=slim /icsFont="Courier New:8"\r
+/size=small /icsFont="Courier New:8"\r
+/size=mediocre /icsFont="Courier New:8"\r
+/size=middling /icsFont="Courier New:8"\r
+/size=average /icsFont="Courier New:8"\r
+/size=moderate /icsFont="Courier New:8"\r
+/size=medium /icsFont="Courier New:8"\r
+/size=bulky /icsFont="Courier New:8"\r
+/size=large /icsFont="Courier New:8"\r
+/size=big /icsFont="Courier New:8"\r
+/size=huge /icsFont="Courier New:8"\r
+/size=giant /icsFont="Courier New:8"\r
+/size=colossal /icsFont="Courier New:8"\r
+/size=titanic /icsFont="Courier New:8"\r
+/size=tiny /moveHistoryFont="MS Sans Serif:8"\r
+/size=teeny /moveHistoryFont="MS Sans Serif:8"\r
+/size=dinky /moveHistoryFont="MS Sans Serif:8"\r
+/size=petite /moveHistoryFont="MS Sans Serif:8"\r
+/size=slim /moveHistoryFont="MS Sans Serif:8"\r
+/size=small /moveHistoryFont="MS Sans Serif:8"\r
+/size=mediocre /moveHistoryFont="MS Sans Serif:8"\r
+/size=middling /moveHistoryFont="MS Sans Serif:8"\r
+/size=average /moveHistoryFont="MS Sans Serif:8"\r
+/size=moderate /moveHistoryFont="MS Sans Serif:8"\r
+/size=medium /moveHistoryFont="MS Sans Serif:8"\r
+/size=bulky /moveHistoryFont="MS Sans Serif:8"\r
+/size=large /moveHistoryFont="MS Sans Serif:8"\r
+/size=big /moveHistoryFont="MS Sans Serif:8"\r
+/size=huge /moveHistoryFont="MS Sans Serif:8"\r
+/size=giant /moveHistoryFont="MS Sans Serif:8"\r
+/size=colossal /moveHistoryFont="MS Sans Serif:8"\r
+/size=titanic /moveHistoryFont="MS Sans Serif:8"\r
+/boardSize=middling\r
+/alwaysOnTop=false\r
+/autoCallFlag=true\r
+/autoComment=false\r
+/autoObserve=false\r
+/autoFlipView=true\r
+/autoRaiseBoard=true\r
+/alwaysPromoteToQueen=false\r
+/oldSaveStyle=false\r
+/quietPlay=false\r
+/getMoveList=true\r
+/testLegality=true\r
+/premove=true\r
+/premoveWhite=false\r
+/premoveWhiteText=""\r
+/premoveBlack=false\r
+/premoveBlackText=""\r
+/icsAlarm=true\r
+/icsAlarmTime=5000\r
+/animateMoving=true\r
+/animateSpeed=10\r
+/animateDragging=true\r
+/blindfold=false\r
+/highlightLastMove=true\r
+/highlightDragging=false\r
+/colorizeMessages=true\r
+/colorShout="#209000"\r
+/colorSShout="b #289808"\r
+/colorChannel1="#2020e0"\r
+/colorChannel="b #4040ff"\r
+/colorKibitz="b #ff00ff"\r
+/colorTell="b #ff0000"\r
+/colorChallenge="bi #ff0000"\r
+/colorRequest="bi #ff0000"\r
+/colorSeek="#980808"\r
+/colorNormal="#000000"\r
+/colorBackground=#ffffff\r
+/soundShout=""\r
+/soundSShout=""\r
+/soundChannel1=""\r
+/soundChannel=""\r
+/soundKibitz=""\r
+/soundTell=""\r
+/soundChallenge=""\r
+/soundRequest=""\r
+/soundSeek=""\r
+/soundMove=""\r
+/soundBell="$"\r
+/soundIcsWin=""\r
+/soundIcsLoss=""\r
+/soundIcsDraw=""\r
+/soundIcsUnfinished=""\r
+/soundIcsAlarm=""\r
+/comPortSettings=9600,7,Space,1,None\r
+/saveSettingsOnExit=true\r
+/icsMenu={-\r
+&Who,who,0,1\r
+Playe&rs,players,0,1\r
+&Games,games,0,1\r
+&Sought,sought,0,1\r
+|&Tell (name),tell,1,0\r
+M&essage (name),message,1,0\r
+-\r
+&Finger (name),finger,1,1\r
+&Vars (name),vars,1,1\r
+&Observe (name),observe,1,1\r
+&Match (name),match,1,1\r
+Pl&ay (name),play,1,1\r
+}\r
+/icsNames={chessclub.com /icsport=5000 /icshelper=timestamp\r
+freechess.org /icsport=5000 /icshelper=timeseal\r
+global.chessparlor.com /icsport=6000 /icshelper=timeseal\r
+chessanytime.com /icsport=5000\r
+chess.net /icsport=5000\r
+zics.org /icsport=5000\r
+jogo.cex.org.br /icsport=5000\r
+ajedrez.cec.uchile.cl /icsport=5000\r
+fly.cc.fer.hr /icsport=7890\r
+freechess.nl /icsport=5000 /icshelper=timeseal\r
+jeu.echecs.com /icsport=5000\r
+chess.unix-ag.uni-kl.de /icsport=5000 /icshelper=timeseal\r
+chess.mds.mdh.se /icsport=5000\r
+}\r
+/firstChessProgramNames={"fmax 22" /fd="..\Fairy-Max" /firstXBook\r
+fruit_21 /fd="../Fruit" -fUCI\r
+"polygolt PG/fruit.ini"\r
+"Pulsar2009-9a 2" /fd="..\Pulsar"\r
+"MaxQi 22" /fd="..\Fairy-Max" /variant=xiangqi\r
+"ShaMax 22" /fd="..\Fairy-Max" /variant=satranj\r
+"Smirfoglot /H64" /fd=..\SMIRF"\r
+"joker80 20" /fd="../joker" /variant=gothic\r
+"jokerKM 20" /fd="../joker" /variant=knightmate\r
+}\r
+/secondChessProgramNames={"fmax 22" /sd="..\Fairy-Max" /secondXBook\r
+fruit_21 /sd="../Fruit" -sUCI\r
+"polygolt PG/fruit.ini"\r
+"MaxQi 22" /sd="..\Fairy-Max" /variant=xiangqi\r
+"ShaMax 22" /sd="..\Fairy-Max" /variant=satranj\r
+"Pulsar2009-9a 2" /sd="..\Pulsar"\r
+"Smirfoglot /H64" /sd=..\SMIRF"\r
+"joker80 20" /sd="../joker" /variant=gothic\r
+"jokerKM 20" /sd="../joker" /variant=knightmate\r
+}\r
+/showButtonBar=true\r
+/pgnExtendedInfo=true\r
+/hideThinkingFromHuman=false\r
+/liteBackTextureFile="*textures/marble_l.bmp"\r
+/darkBackTextureFile="*textures/marble_d.bmp"\r
+/liteBackTextureMode=2\r
+/darkBackTextureMode=2\r
+/renderPiecesWithFont="*Chess Mark"\r
+/fontPieceToCharTable="pnbrqkomvtwl"\r
+/fontPieceBackColorWhite=#ffffff\r
+/fontPieceForeColorWhite=#000000\r
+/fontPieceBackColorBlack=#ffffff\r
+/fontPieceForeColorBlack=#000000\r
+/fontPieceSize=80\r
+/overrideLineGap=-1\r
+/adjudicateLossThreshold=0\r
+/delayBeforeQuit=0\r
+/delayAfterQuit=0\r
+/pgnEventHeader="Computer Chess Game"\r
+/defaultFrcPosition=-1\r
+/gameListTags="eprd"\r
+/saveOutOfBookInfo=true\r
+/showEvalInMoveHistory=true\r
+/evalHistColorWhite=#ffffb0\r
+/evalHistColorBlack=#ad5d3d\r
+/highlightMoveWithArrow=true\r
+/highlightArrowColor=#ffff80\r
+/stickyWindows=true\r
+/adjudicateDrawMoves=0\r
+/autoDisplayComment=false\r
+/autoDisplayTags=false\r
+/polyglotDir="."\r
+/usePolyglotBook=true\r
+/polyglotBook="default_book.bin"\r
+/defaultHashSize=64\r
+/defaultCacheSizeEGTB=4\r
+/defaultPathEGTB="..\egtb"\r
+/boardWidth=-1\r
+/boardHeight=-1\r
+/holdingsSize=-1\r
+/matchPause=1000\r
+/flipBlack=false\r
+/allWhite=false\r
+/testClaims=true\r
+/checkMates=false\r
+/materialDraws=false\r
+/trivialDraws=false\r
+/ruleMoves=51\r
+/repeatsToDraw=4\r
+/smpCores=1\r
+/egtFormats={nalimov:..\egtb,scorpio:..\bitbases}\r
+/niceEngines=0\r
+/autoLogo=true\r
+/timeOddsMode=0\r
+/winWidth=426\r
+/winHeight=539\r
+/x=34\r
+/y=26\r
+/icsX=-12\r
+/icsY=316\r
+/icsW=437\r
+/icsH=152\r
+/commentX=885\r
+/commentY=183\r
+/commentW=308\r
+/commentH=179\r
+/tagsX=917\r
+/tagsY=390\r
+/tagsW=247\r
+/tagsH=265\r
+/gameListX=-437\r
+/gameListY=-24\r
+/gameListW=437\r
+/gameListH=304\r
+/moveHistoryUp=true\r
+/moveHistoryX=426\r
+/moveHistoryY=406\r
+/moveHistoryW=437\r
+/moveHistoryH=259\r
+/evalGraphUp=true\r
+/evalGraphX=0\r
+/evalGraphY=539\r
+/evalGraphW=426\r
+/evalGraphH=126\r
+/engineOutputUp=true\r
+/engineOutputX=426\r
+/engineOutputY=0\r
+/engineOutputW=437\r
+/engineOutputH=406\r
diff --git a/winboard/install/files/root/WinBoard/wood.ini b/winboard/install/files/root/WinBoard/wood.ini
new file mode 100644 (file)
index 0000000..9eacbbb
--- /dev/null
@@ -0,0 +1,17 @@
+;\r
+; Set bitmap background for Chess board\r
+;\r
+/liteBackTextureFile="textures/wood_l.bmp"\r
+/darkBackTextureFile="textures/wood_d.bmp"\r
+/liteBackTextureMode=2\r
+/darkBackTextureMode=2\r
+;\r
+; suppress grid lines, and use arrow for highlighting in stead\r
+;\r
+/overrideLineGap=0\r
+/highlightMoveWithArrow=true\r
+;\r
+;\r
+; prevent this from automatically becoming standard setting\r
+;\r
+/saveSettingsOnExit=false\r
diff --git a/winboard/install/files/root/WinBoard/xq.ini b/winboard/install/files/root/WinBoard/xq.ini
new file mode 100644 (file)
index 0000000..7a8f826
--- /dev/null
@@ -0,0 +1,82 @@
+;\r
+; set for Xiangqi and optimal board size\r
+;\r
+/variant=xiangqi\r
+/boardSize=middling\r
+;\r
+;\r
+; define engines to appear in start menu\r
+;\r
+/firstChessProgramNames={MaxQi /fd="..\Fairy-Max" /firstXBook\r
+HaQiKiD /fd="../HaQi" /firstXBook\r
+"UCCI2WB QH\eleeye.ini" /firstLogo="../EleEye/logo.bmp"\r
+}\r
+/secondChessProgramNames={MaxQi /sd="..\Fairy-Max" /secondXBook\r
+HaQiKiD /sd="../HaQi" /secondXBook\r
+"UCCI2WB QH\eleeye.ini" /secondLogo="../EleEye/logo.bmp"\r
+}\r
+;\r
+;\r
+; select a Xiangqi opening book!\r
+;\r
+/polyglotBook=xq_book.bin\r
+/usePolyglotBook=true\r
+;\r
+; set bitmap background for Xiangqi board\r
+;\r
+/liteBackTextureFile="textures/xqboard.bmp"\r
+/darkBackTextureFile="textures/xqboard.bmp"\r
+/liteBackTextureMode=1\r
+/darkBackTextureMode=1\r
+;\r
+; suppress square boundaries, and use arrow for highlighting in stead\r
+;\r
+/overrideLineGap=0\r
+/highlightMoveWithArrow=true\r
+;\r
+; select font for piece rendering\r
+;\r
+/renderPiecesWithFont="XIANGQI"\r
+/fontPieceToCharTable="ph.r.ae..k.cxPH.R.AE..K.CX"\r
+/fontPieceBackColorWhite=#ffffff\r
+/fontPieceForeColorWhite=#ff1010\r
+/fontPieceBackColorBlack=#ffffff\r
+/fontPieceForeColorBlack=#8080ff\r
+/fontPieceSize=70\r
+;\r
+; make sure perpetual-check adjudication works before engine can claim draw\r
+;\r
+/repeatsToDraw=3\r
+;\r
+; define window layout\r
+;\r
+/moveHistoryUp=true\r
+/evalGraphUp=true\r
+/engineOutputUp=true\r
+;\r
+; window positions\r
+;\r
+/minX=437\r
+/minY=126\r
+/winWidth=426\r
+/winHeight=539\r
+/gameListX=-437\r
+/gameListY=0\r
+/gameListW=437\r
+/gameListH=304\r
+/moveHistoryX=-437\r
+/moveHistoryY=304\r
+/moveHistoryW=437\r
+/moveHistoryH=235\r
+/evalGraphX=0\r
+/evalGraphY=-126\r
+/evalGraphW=426\r
+/evalGraphH=126\r
+/engineOutputX=-437\r
+/engineOutputY=-126\r
+/engineOutputW=437\r
+/engineOutputH=430\r
+;\r
+; prevent this from automatically becoming standard setting\r
+;\r
+/saveSettingsOnExit=false\r
diff --git a/winboard/install/files/root/WinBoard/xq_book.bin b/winboard/install/files/root/WinBoard/xq_book.bin
new file mode 100644 (file)
index 0000000..442ef47
Binary files /dev/null and b/winboard/install/files/root/WinBoard/xq_book.bin differ
diff --git a/winboard/install/installer/FA.ini b/winboard/install/installer/FA.ini
new file mode 100644 (file)
index 0000000..258cf8e
--- /dev/null
@@ -0,0 +1,28 @@
+[Settings]\r
+NumFields=3\r
+\r
+[Field 1]\r
+Type=label\r
+Text=Associate WinBoard with the following file extensions:\r
+Left=0\r
+Right=-1\r
+Top=0\r
+Bottom=10\r
+\r
+[Field 2]\r
+Type=checkbox\r
+Text=" .PGN - Portable Game Notation (Games)"\r
+Left=0\r
+Right=-1\r
+Top=30\r
+Bottom=40\r
+State=1\r
+\r
+[Field 3]\r
+Type=checkbox\r
+Text=" .FEN - Forsyth-Edwards Notation (Positions)"\r
+Left=0\r
+Right=-1\r
+Top=50\r
+Bottom=60\r
+State=1
\ No newline at end of file
diff --git a/winboard/install/installer/FontName-0.7.exe b/winboard/install/installer/FontName-0.7.exe
new file mode 100644 (file)
index 0000000..50686e6
Binary files /dev/null and b/winboard/install/installer/FontName-0.7.exe differ
diff --git a/winboard/install/installer/WinBoard-4.2.7_full.nsi b/winboard/install/installer/WinBoard-4.2.7_full.nsi
new file mode 100644 (file)
index 0000000..c151275
--- /dev/null
@@ -0,0 +1,378 @@
+; WinBoard-4.2.7 MUI
+;
+;
+
+;--------------------------------
+;Include Modern UI
+
+  !include "MUI.nsh"
+
+;--------------------------------
+
+!define InstName "WinBoard"
+!define InstVersion "4.2.7"
+!define InstBaseDir "WinBoard-4.2.7"
+
+;--------------------------------
+; General
+;
+
+Name "${InstName} ${InstVersion}"
+Caption "WinBoard - Chessboard For Windows"
+OutFile "WinBoard-4.2.7_full.exe"
+InstallDir $PROGRAMFILES\${InstBaseDir}
+
+SetCompressor lzma
+SetDateSave on
+SetDatablockOptimize on
+CRCCheck on
+SilentInstall normal
+BGGradient 000000 4682b4 FFFFFF
+;XPStyle on
+
+;--------------------------------
+;Variables
+
+  Var INI_VALUE
+  Var START_MENU_FOLDER
+  Var MUI_TEMP
+
+;--------------------------------
+
+
+;!define MUI_ICON "knight.ico"
+;!define MUI_UNICON "wc_uninst.ico"
+!define MUI_WELCOMEFINISHPAGE_BITMAP "welcome_chess.bmp"
+
+;--------------------------------
+;Interface Settings
+
+       !define MUI_ABORTWARNING
+       ;!define MUI_COMPONENTSPAGE_NODESC
+       !define MUI_COMPONENTSPAGE_SMALLDESC
+       !define MUI_WELCOMEPAGE_TEXT "This wizard will guide you through the installation of ${InstName} ${InstVersion}.\n\n\n\n\nClick Next to continue."
+       !define MUI_LICENSEPAGE_TEXT_BOTTOM "$\nPress Continue to proceed with the installation."
+       !define MUI_LICENSEPAGE_BUTTON "Continue"
+
+;--------------------------------
+
+;--------------------------------
+; Pages
+
+       ; Install Section
+       ;--------------------------------------------------------------------
+       !insertmacro MUI_PAGE_WELCOME
+       !insertmacro MUI_PAGE_LICENSE "..\READ_ME.txt"
+       !insertmacro MUI_PAGE_COMPONENTS
+       Page custom FileAssoc
+       !insertmacro MUI_PAGE_DIRECTORY
+       
+       ;Start Menu Folder Page Configuration
+        !define MUI_STARTMENUPAGE_REGISTRY_ROOT "HKCU"
+        !define MUI_STARTMENUPAGE_REGISTRY_KEY "Software\WinBoard"
+        !define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "Start Menu Folder"
+       !insertmacro MUI_PAGE_STARTMENU Application $START_MENU_FOLDER
+       
+       !insertmacro MUI_PAGE_INSTFILES
+       !insertmacro MUI_PAGE_FINISH
+       ;--------------------------------------------------------------------
+       
+       ; Uninstall Section
+       ;
+       ;!define MUI_WELCOMEPAGE_TEXT "WARNING! THIS UNINSTALLER WILL COMPLETELY DELETE THE INSTALLATION DIRECTORY\n\n$INSTDIR !!!\n\nIF THERE ARE ANY FILES YOU WISH TO SAVE, MOVE THEM FROM THE INSTALLATION DIRECTORY FIRST!\n\n\n\nPress Next to Continue."
+       !define MUI_WELCOMEPAGE_TEXT "This will uninstall WinBoard from directory:\n\n$INSTDIR\n\n\n\nPress Next to Continue."
+       !insertmacro MUI_UNPAGE_WELCOME
+       !insertmacro MUI_UNPAGE_CONFIRM
+       !insertmacro MUI_UNPAGE_INSTFILES
+       !insertmacro MUI_UNPAGE_FINISH
+
+;--------------------------------
+;Languages
+  !insertmacro MUI_LANGUAGE "English"
+
+;--------------------------------
+
+;--------------------------------
+;Reserve Files
+  
+  ;These files should be inserted before other files in the data block
+  ;Keep these lines before any File command
+  ;Only for solid compression (by default, solid compression is enabled for BZIP2 and LZMA)
+  
+  ReserveFile "FA.ini"
+  !insertmacro MUI_RESERVEFILE_INSTALLOPTIONS
+
+;--------------------------------
+
+Section "WinBoard Core Components" Core
+
+SectionIn 1 RO
+
+       SetOutPath $INSTDIR
+
+       File ..\bughouse.bat
+       File ..\ChangeLog
+       File ..\COPYING
+       File ..\COPYRIGHT
+       File ..\cygncurses7.dll
+       File ..\cygreadline5.dll
+       File ..\cygwin1.dll
+       File ..\FAQ.html
+       File ..\kk13.pgn
+       File ..\NEWS
+       File ..\READ_ME.txt
+       File ..\RJF60.pgn
+       File ..\timeseal.exe
+       File ..\timestamp.exe
+       File ..\winboard.exe
+       File ..\winboard.hlp
+       File ..\zippy.lines
+       File ..\zippy.README
+       
+       ;Create uninstaller
+       WriteUninstaller "$INSTDIR\UnInstall.exe"
+       
+       !insertmacro MUI_STARTMENU_WRITE_BEGIN Application
+
+       CreateDirectory "$SMPROGRAMS\$START_MENU_FOLDER"
+       CreateShortCut "$SMPROGRAMS\$START_MENU_FOLDER\Game Viewer.lnk" "$INSTDIR\winboard.exe" "-ncp" "$INSTDIR\winboard.exe" 1
+       CreateShortCut "$SMPROGRAMS\$START_MENU_FOLDER\Game Viewer - Bobby Fischer.lnk" "$INSTDIR\winboard.exe" "-ncp -lgf RJF60.pgn" "$INSTDIR\winboard.exe" 1
+       CreateShortCut "$SMPROGRAMS\$START_MENU_FOLDER\Game Viewer - Karpov vs Kasparov.lnk" "$INSTDIR\winboard.exe" "-ncp -lgf kk13.pgn" "$INSTDIR\winboard.exe" 1
+        CreateShortCut "$SMPROGRAMS\$START_MENU_FOLDER\WinBoard Help.lnk" "$INSTDIR\winboard.hlp"
+        CreateShortCut "$SMPROGRAMS\$START_MENU_FOLDER\Frequently Asked Questions.lnk" "$INSTDIR\FAQ.html"
+        CreateShortCut "$SMPROGRAMS\$START_MENU_FOLDER\WinBoard READ_ME.lnk" "$INSTDIR\READ_ME.txt"
+       CreateShortCut "$SMPROGRAMS\$START_MENU_FOLDER\WinBoard UnInstall.lnk" "$INSTDIR\UnInstall.exe"
+       CreateShortCut "$SMPROGRAMS\$START_MENU_FOLDER\Chess Server - chessclub.com.lnk" "$INSTDIR\winboard.exe"  "-ics -icshost chessclub.com -icshelper timestamp" "$INSTDIR\winboard.exe" 0
+       CreateShortCut "$SMPROGRAMS\$START_MENU_FOLDER\Chess Server - freechess.org.lnk" "$INSTDIR\winboard.exe"  "-ics -icshost freechess.org -icshelper timeseal" "$INSTDIR\winboard.exe" 0
+       CreateShortCut "$SMPROGRAMS\$START_MENU_FOLDER\Chess Server - Other.lnk" "$INSTDIR\winboard.exe" "-ics" "$INSTDIR\winboard.exe" 0
+       CreateShortCut "$SMPROGRAMS\$START_MENU_FOLDER\WinBoard Startup Dialog.lnk" "$INSTDIR\winboard.exe" "" "$INSTDIR\winboard.exe" 2
+       
+        !insertmacro MUI_STARTMENU_WRITE_END
+
+SectionEnd
+
+SubSection /e "Chess Engines" Engines
+
+       Section "GNU Chess 5.0" GNUChess5
+
+               SetOutPath "$INSTDIR"
+
+               File ..\book.dat
+               File ..\GNUChes5.exe
+               File ..\gnuches5.txt
+               File ..\gnuchess.dat
+               File ..\gnuchess.lan
+               File ..\gnuchess.README
+               
+               CreateDirectory "$SMPROGRAMS\$START_MENU_FOLDER\Chess Engines"
+
+                !insertmacro MUI_STARTMENU_WRITE_BEGIN Application
+
+               CreateShortCut "$SMPROGRAMS\$START_MENU_FOLDER\Chess Engines\GNU Chess 5.0 Documentation.lnk" "$INSTDIR\gnuches5.txt"
+               CreateShortCut "$SMPROGRAMS\$START_MENU_FOLDER\Chess Engines\GNU Chess 5.0.lnk" "$INSTDIR\winboard.exe" "-cp -fcp 'GNUChes5 xboard' -scp 'GNUChes5 xboard'" "$INSTDIR\winboard.exe" 2
+               
+               !insertmacro MUI_STARTMENU_WRITE_END
+
+       SectionEnd
+       
+       Section "GNU Chess 4.0" GNUChess4
+       
+                SetOutPath "$INSTDIR"
+                
+                File ..\gnuchesr.exe
+               File ..\GNUChess.exe
+               File ..\gnuchess.txt
+
+               CreateDirectory "$SMPROGRAMS\$START_MENU_FOLDER\Chess Engines"
+
+               !insertmacro MUI_STARTMENU_WRITE_BEGIN Application
+
+               CreateShortCut "$SMPROGRAMS\$START_MENU_FOLDER\Chess Engines\GNU Chess 4.0 Documentation.lnk" "$INSTDIR\gnuchess.txt"
+               CreateShortCut "$SMPROGRAMS\$START_MENU_FOLDER\Chess Engines\GNU Chess 4.0.lnk" "$INSTDIR\winboard.exe" "-cp -fcp GNUChess -scp GNUChess" "$INSTDIR\winboard.exe" 2
+               
+               !insertmacro MUI_STARTMENU_WRITE_END
+               
+         SectionEnd
+
+       Section "Crafty 19.3" Crafty
+
+               SetOutPath "$INSTDIR\Crafty"
+
+               File ..\Crafty-WinBoard\wcrafty.exe
+               File ..\Crafty-WinBoard\book.bin
+               File ..\Crafty-WinBoard\books.bin
+               File ..\Crafty-WinBoard\Crafty.rc
+               File ..\Crafty-WinBoard\crafty.doc.txt
+               
+               CreateDirectory "$SMPROGRAMS\$START_MENU_FOLDER\Chess Engines"
+               
+                !insertmacro MUI_STARTMENU_WRITE_BEGIN Application
+
+               CreateShortCut "$SMPROGRAMS\$START_MENU_FOLDER\Chess Engines\Crafty Documentation.lnk" "$INSTDIR\Crafty\crafty.doc.txt"
+               CreateShortCut "$SMPROGRAMS\$START_MENU_FOLDER\Chess Engines\Crafty 19.3.lnk" "$INSTDIR\winboard.exe" "-cp -fcp Crafty\wcrafty.exe -fd Crafty -scp Crafty\wcrafty.exe -sd Crafty" "$INSTDIR\winboard.exe" 2
+
+               !insertmacro MUI_STARTMENU_WRITE_END
+
+
+       SectionEnd
+
+SubSectionEnd
+
+
+;--------------------------------
+;Installer Functions
+Function .onInit
+
+  ;Extract InstallOptions INI files
+  !insertmacro MUI_INSTALLOPTIONS_EXTRACT "FA.ini"
+  
+FunctionEnd
+
+Function FileAssoc
+
+       !insertmacro MUI_HEADER_TEXT "Windows File Associations" "Do you want to use Winboard as your viewer for the following file types?"
+       !insertmacro MUI_INSTALLOPTIONS_DISPLAY "FA.ini"
+
+       
+       ;Read a value from an InstallOptions INI file
+
+       !insertmacro MUI_INSTALLOPTIONS_READ $INI_VALUE "FA.ini" "Field 2" "State"
+  
+       ;Display a messagebox if check box was checked
+       StrCmp $INI_VALUE "1" "" CheckFEN
+       WriteRegStr HKCR ".pgn" "" "WinBoard.PGN"
+       WriteRegStr HKCR ".pgn" "Content Type" "application/x-chess-pgn"
+       WriteRegStr HKCR "WinBoard.PGN" "" "Chess Game"
+       WriteRegStr HKCR "WinBoard.PGN\DefaultIcon" "" "$INSTDIR\WinBoard.exe,1"
+       WriteRegStr HKCR "WinBoard.PGN\Shell\Open" "" "Open"
+       WriteRegStr HKCR "WinBoard.PGN\Shell\Open\command" "" '"$INSTDIR\WinBoard.exe" -ini "$INSTDIR\WinBoard.ini" -ncp -lgf "%1"'
+       
+       CheckFEN:
+       !insertmacro MUI_INSTALLOPTIONS_READ $INI_VALUE "FA.ini" "Field 3" "State"
+  
+       ;Display a messagebox if check box was checked
+       StrCmp $INI_VALUE "1" "" Continue
+       WriteRegStr HKCR ".fen" "" "WinBoard.FEN"
+       WriteRegStr HKCR ".fen" "Content Type" "application/x-chess-fen"
+       WriteRegStr HKCR "WinBoard.FEN" "" "Chess Position"
+       WriteRegStr HKCR "WinBoard.FEN\DefaultIcon" "" "$INSTDIR\WinBoard.exe,1"
+       WriteRegStr HKCR "WinBoard.FEN\Shell\Open" "" "Open"
+       WriteRegStr HKCR "WinBoard.FEN\Shell\Open\command" "" '"$INSTDIR\WinBoard.exe" -ini "$INSTDIR\WinBoard.ini" -ncp -lpf "%1"'
+       
+       Continue:
+
+FunctionEnd
+
+;--------------------------------
+;Descriptions
+
+  ;Language strings
+
+       LangString DESC_Core ${LANG_ENGLISH} "Winboard Core Components - Executable and Help Files"
+       LangString DESC_Engines ${LANG_ENGLISH} "Chess Engines to play against using the WinBoard Interface"
+       LangString DESC_GNUChess5 ${LANG_ENGLISH} "GNU Chess 5.0 Engine"
+       LangString DESC_GNUChess4 ${LANG_ENGLISH} "GNU Chess 4.0 Engine"
+       LangString DESC_Crafty ${LANG_ENGLISH} "Crafty 19.3 Chess Engine, by Robert Hyatt"
+
+
+  ;Assign language strings to sections
+
+  !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
+       !insertmacro MUI_DESCRIPTION_TEXT ${Core} $(DESC_Core)
+       !insertmacro MUI_DESCRIPTION_TEXT ${Engines} $(DESC_Engines)
+       !insertmacro MUI_DESCRIPTION_TEXT ${GNUChess5} $(DESC_GNUChess5)
+       !insertmacro MUI_DESCRIPTION_TEXT ${GNUChess4} $(DESC_GNUChess4)
+       !insertmacro MUI_DESCRIPTION_TEXT ${Crafty} $(DESC_Crafty)
+  !insertmacro MUI_FUNCTION_DESCRIPTION_END
+
+;--------------------------------
+
+;--------------------------------
+;Uninstaller Section
+
+; Function to delete install directory if non-empty on user request
+Function un.ForceDirectoryDelete
+
+         MessageBox MB_YESNO "The uninstaller was unable to delete the directory '$INSTDIR'. This is usually$\r$\ndue to user-created files such as WinBoard.ini, or other configuration files. If$\r$\nyou wish to keep your old configuration files, select No.$\r$\n$\r$\nForce deletion of install directory and all files in it?" IDNO End
+         
+         RMDir /r "$INSTDIR"
+         
+         End:
+
+FunctionEnd
+
+
+Section "Uninstall"
+
+        Delete "$INSTDIR\bughouse.bat"
+       Delete "$INSTDIR\ChangeLog"
+       Delete "$INSTDIR\COPYING"
+       Delete "$INSTDIR\COPYRIGHT"
+       Delete "$INSTDIR\cygncurses7.dll"
+       Delete "$INSTDIR\cygreadline5.dll"
+       Delete "$INSTDIR\cygwin1.dll"
+       Delete "$INSTDIR\FAQ.html"
+       Delete "$INSTDIR\kk13.pgn"
+       Delete "$INSTDIR\NEWS"
+       Delete "$INSTDIR\READ_ME.txt"
+       Delete "$INSTDIR\RJF60.pgn"
+       Delete "$INSTDIR\timeseal.exe"
+       Delete "$INSTDIR\timestamp.exe"
+       Delete "$INSTDIR\winboard.exe"
+       Delete "$INSTDIR\winboard.hlp"
+       Delete "$INSTDIR\zippy.lines"
+       Delete "$INSTDIR\zippy.README"
+        Delete "$INSTDIR\book.dat"
+       Delete "$INSTDIR\GNUChes5.exe"
+       Delete "$INSTDIR\gnuches5.txt"
+       Delete "$INSTDIR\gnuchess.dat"
+       Delete "$INSTDIR\gnuchess.lan"
+       Delete "$INSTDIR\gnuchess.README"
+        Delete "$INSTDIR\gnuchesr.exe"
+       Delete "$INSTDIR\GNUChess.exe"
+       Delete "$INSTDIR\gnuchess.txt"
+       Delete "$INSTDIR\UnInstall.exe"
+       Delete "$INSTDIR\Crafty\wcrafty.exe"
+       Delete "$INSTDIR\Crafty\book.bin"
+       Delete "$INSTDIR\Crafty\books.bin"
+       Delete "$INSTDIR\Crafty\Crafty.rc"
+       Delete "$INSTDIR\Crafty\crafty.doc.txt"
+       RMDir "$INSTDIR\Crafty"
+       RMDir "$INSTDIR"
+
+       
+       !insertmacro MUI_STARTMENU_GETFOLDER Application $MUI_TEMP
+       
+       RMDir /r "$SMPROGRAMS\$MUI_TEMP"
+       
+       ReadRegStr $1 HKCR ".pgn" ""
+       StrCmp $1 "WinBoard.PGN" "" DelFEN
+       ReadRegStr $1 HKCR "WinBoard.PGN\Shell\Open\command" ""
+       StrCmp $1 '"$INSTDIR\WinBoard.exe" -ini "$INSTDIR\WinBoard.ini" -ncp -lgf "%1"' "" DelFEN
+       DeleteRegKey HKCR ".pgn"
+       DeleteRegKey HKCR "WinBoard.PGN"
+       
+       DelFEN:
+       
+       ReadRegStr $1 HKCR ".fen" ""
+       StrCmp $1 "WinBoard.FEN" "" ContDelFEN
+       ReadRegStr $1 HKCR "WinBoard.FEN\Shell\Open\command" ""
+       StrCmp $1 '"$INSTDIR\WinBoard.exe" -ini "$INSTDIR\WinBoard.ini" -ncp -lpf "%1"' "" ContDelFEN
+       DeleteRegKey HKCR ".fen"
+       DeleteRegKey HKCR "WinBoard.FEN"
+       
+       ContDelFEN:
+       
+       DeleteRegKey HKCU "Software\WinBoard"
+       
+       
+       IfFileExists "$INSTDIR\*.*" GoDirDel Continue
+
+       GoDirDel:
+       Call un.ForceDirectoryDelete
+
+       Continue:
+
+
+SectionEnd
diff --git a/winboard/install/installer/WinBoard-4.4.0beta1.exe b/winboard/install/installer/WinBoard-4.4.0beta1.exe
new file mode 100644 (file)
index 0000000..adfcafc
Binary files /dev/null and b/winboard/install/installer/WinBoard-4.4.0beta1.exe differ
diff --git a/winboard/install/installer/build.bat b/winboard/install/installer/build.bat
new file mode 100644 (file)
index 0000000..23e1165
--- /dev/null
@@ -0,0 +1,2 @@
+@ECHO OFF\r
+"%ProgramFiles%\NSIS\makensis.exe" wb440.nsi\r
diff --git a/winboard/install/installer/knight.ico b/winboard/install/installer/knight.ico
new file mode 100644 (file)
index 0000000..104eb73
Binary files /dev/null and b/winboard/install/installer/knight.ico differ
diff --git a/winboard/install/installer/modern-uninstall.ico b/winboard/install/installer/modern-uninstall.ico
new file mode 100644 (file)
index 0000000..6c7410c
Binary files /dev/null and b/winboard/install/installer/modern-uninstall.ico differ
diff --git a/winboard/install/installer/wb440.nsi b/winboard/install/installer/wb440.nsi
new file mode 100644 (file)
index 0000000..e2f6260
--- /dev/null
@@ -0,0 +1,691 @@
+; WinBoard-4.4.0 MUI\r
+;\r
+;\r
+\r
+!define FILES "..\..\"\r
+!define ROOT "${FILES}Chess\"\r
+!define FNTDIR "${FILES}Chess\RePackage\"\r
+\r
+; grab the FontName plugin from NSIS for these\r
+!include FontRegAdv.nsh\r
+!include FontName.nsh\r
+\r
+;--------------------------------\r
+;Include Modern UI\r
+!include "MUI.nsh"\r
+\r
+;--------------------------------\r
+\r
+!define InstName "WinBoard"\r
+!define InstVersion "4.4.0beta2"\r
+!define InstBaseDir "WinBoard-4.4.0"\r
+\r
+;--------------------------------\r
+; General\r
+;\r
+\r
+Name "${InstName} ${InstVersion}"\r
+Caption "WinBoard - Chessboard For Windows"\r
+OutFile "WinBoard-4.4.0beta2.exe"\r
+InstallDir $PROGRAMFILES\${InstBaseDir}\r
+\r
+SetCompressor lzma\r
+SetDateSave on\r
+SetDatablockOptimize on\r
+CRCCheck on\r
+SilentInstall normal\r
+;BGGradient 000000 4682b4 FFFFFF\r
+;XPStyle on\r
+\r
+;--------------------------------\r
+;Variables\r
+\r
+  Var INI_VALUE\r
+  Var START_MENU_FOLDER\r
+  Var MUI_TEMP\r
+\r
+;--------------------------------\r
+\r
+\r
+;!define MUI_ICON "knight.ico"\r
+;!define MUI_UNICON "wc_uninst.ico"\r
+!define MUI_WELCOMEFINISHPAGE_BITMAP "welcome_chess.bmp"\r
+\r
+;--------------------------------\r
+;Interface Settings\r
+\r
+    !define MUI_ABORTWARNING\r
+    ;!define MUI_COMPONENTSPAGE_NODESC\r
+    !define MUI_COMPONENTSPAGE_SMALLDESC\r
+    !define MUI_WELCOMEPAGE_TEXT "This wizard will guide you through the installation of ${InstName} ${InstVersion}.\n\n\n\n\nClick Next to continue."\r
+    !define MUI_LICENSEPAGE_TEXT_BOTTOM "$\nPress Continue to proceed with the installation."\r
+    !define MUI_LICENSEPAGE_BUTTON "Continue"\r
+\r
+;--------------------------------\r
+\r
+;--------------------------------\r
+; Pages\r
+\r
+    ; Install Section\r
+    ;--------------------------------------------------------------------\r
+    !insertmacro MUI_PAGE_WELCOME\r
+    !insertmacro MUI_PAGE_LICENSE "${ROOT}WinBoard\doc\COPYRIGHTS.txt"\r
+    !insertmacro MUI_PAGE_COMPONENTS\r
+    Page custom FileAssoc\r
+    !insertmacro MUI_PAGE_DIRECTORY\r
+\r
+    ;Start Menu Folder Page Configuration\r
+        !define MUI_STARTMENUPAGE_REGISTRY_ROOT "HKCU"\r
+        !define MUI_STARTMENUPAGE_REGISTRY_KEY "Software\WinBoard"\r
+        !define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "Start Menu Folder"\r
+    !insertmacro MUI_PAGE_STARTMENU Application $START_MENU_FOLDER\r
+\r
+    !insertmacro MUI_PAGE_INSTFILES\r
+    !insertmacro MUI_PAGE_FINISH\r
+    ;--------------------------------------------------------------------\r
+\r
+    ; Uninstall Section\r
+    ;\r
+    ;!define MUI_WELCOMEPAGE_TEXT "WARNING! THIS UNINSTALLER WILL COMPLETELY DELETE THE INSTALLATION DIRECTORY\n\n$INSTDIR !!!\n\nIF THERE ARE ANY FILES YOU WISH TO SAVE, MOVE THEM FROM THE INSTALLATION DIRECTORY FIRST!\n\n\n\nPress Next to Continue."\r
+    !define MUI_WELCOMEPAGE_TEXT "This will uninstall WinBoard from directory:\n\n$INSTDIR\n\n\n\nPress Next to Continue."\r
+    !insertmacro MUI_UNPAGE_WELCOME\r
+    !insertmacro MUI_UNPAGE_CONFIRM\r
+    !insertmacro MUI_UNPAGE_INSTFILES\r
+    !insertmacro MUI_UNPAGE_FINISH\r
+\r
+;--------------------------------\r
+;Languages\r
+\r
+  !insertmacro MUI_LANGUAGE "English"\r
+\r
+;--------------------------------\r
+\r
+;--------------------------------\r
+;Reserve Files\r
+\r
+  ;These files should be inserted before other files in the data block\r
+  ;Keep these lines before any File command\r
+  ;Only for solid compression (by default, solid compression is enabled for BZIP2 and LZMA)\r
+\r
+  ReserveFile "FA.ini"\r
+  !insertmacro MUI_RESERVEFILE_INSTALLOPTIONS\r
+\r
+;--------------------------------\r
+\r
+Section "WinBoard Core Components" Core\r
+\r
+SectionIn 1 RO\r
+\r
+\r
+    SetOutPath "$INSTDIR\WinBoard\doc"\r
+    File "${ROOT}WinBoard\doc\fonts.html"\r
+    File "${ROOT}WinBoard\doc\manual.html"\r
+    File "${ROOT}WinBoard\doc\UCIconfig.html"\r
+    File "${ROOT}WinBoard\doc\shortcuts.html"\r
+    File "${ROOT}WinBoard\doc\texture.html"\r
+    File "${ROOT}WinBoard\doc\engine-intf.html"\r
+    File "${ROOT}WinBoard\doc\FAQ.html"\r
+    File "${ROOT}WinBoard\doc\mini.gif"\r
+    File "${ROOT}WinBoard\doc\PG2fruit.png"\r
+    File "${ROOT}WinBoard\doc\zippy.README"\r
+    File "${ROOT}WinBoard\doc\README.html"\r
+    File "${ROOT}WinBoard\doc\COPYRIGHTS.txt"\r
+    File "${ROOT}WinBoard\doc\COPYRIGHT.txt"\r
+    File "${ROOT}WinBoard\doc\COPYING.txt"\r
+\r
+    ; logo bitmaps for ICS and users\r
+    SetOutPath "$INSTDIR\WinBoard\logos"\r
+    File "${ROOT}WinBoard\logos\chessclub.com.bmp"\r
+    File "${ROOT}WinBoard\logos\freechess.org.bmp"\r
+    File "${ROOT}WinBoard\logos\administrator.bmp"\r
+    File "${ROOT}WinBoard\logos\user.bmp"\r
+    File "${ROOT}WinBoard\logos\guest.bmp"\r
+    File "${ROOT}WinBoard\logos\README.txt"\r
+\r
+    ; Polyglot ini files; fruit.ini always supplied (even if Fruit not installed) as example\r
+    SetOutPath "$INSTDIR\WinBoard\PG"\r
+    File "${ROOT}WinBoard\PG\fruit.ini"\r
+\r
+    ; bitmaps for board squares; xqboard is an entire (even-colored) board grid\r
+    SetOutPath "$INSTDIR\Winboard\textures"\r
+    File "${ROOT}WinBoard\textures\marble_d.bmp"\r
+    File "${ROOT}WinBoard\textures\marble_l.bmp"\r
+    File "${ROOT}WinBoard\textures\wood_d.bmp"\r
+    File "${ROOT}WinBoard\textures\wood_l.bmp"\r
+    File "${ROOT}WinBoard\textures\xqboard.bmp"\r
+\r
+    StrCpy $FONT_DIR $FONTS\r
+    !insertmacro InstallTTF '${FNTDIR}MARKFONT.TTF'\r
+    SendMessage ${HWND_BROADCAST} ${WM_FONTCHANGE} 0 0 /TIMEOUT=5000\r
+\r
+    ; the small ini files contain the command-line options used by the shortcuts\r
+    SetOutPath "$INSTDIR\Winboard"\r
+    File "${ROOT}Winboard\winboard.ini"\r
+    File "${ROOT}Winboard\wood.ini"\r
+    File "${ROOT}Winboard\marble.ini"\r
+    File "${ROOT}WinBoard\ChessMark.ini"\r
+    File "${ROOT}Winboard\fairy.ini"\r
+    File "${ROOT}Winboard\FICS.ini"\r
+    File "${ROOT}Winboard\fruit.ini"\r
+    File "${ROOT}Winboard\Gothic.ini"\r
+    File "${ROOT}Winboard\ICC.ini"\r
+    File "${ROOT}Winboard\ICSbot.ini"\r
+    File "${ROOT}Winboard\viewer.ini"\r
+    File "${ROOT}Winboard\winboard.exe"\r
+    File "${ROOT}Winboard\polyglot.exe"\r
+    File "${ROOT}Winboard\timeseal.exe"\r
+    File "${ROOT}Winboard\timestamp.exe"\r
+    File "${ROOT}Winboard\winboard.chm"\r
+    File "${ROOT}Winboard\winboard.hlp"\r
+    File "${ROOT}Winboard\default_book.bin"\r
+\r
+    ;Create uninstaller\r
+    WriteUninstaller "$INSTDIR\UnInstall.exe"\r
+\r
+      ; create some shortcuts in the WinBoard folder\r
+       CreateShortCut "$INSTDIR\WinBoard\PGN Viewer.lnk" "$INSTDIR\WinBoard\winboard.exe" "@viewer" "$INSTDIR\WinBoard\winboard.exe" 0\r
+       CreateShortCut "$INSTDIR\WinBoard\ICC.lnk" "$INSTDIR\WinBoard\winboard.exe" "@ICC" "$INSTDIR\WinBoard\winboard.exe" 0\r
+       CreateShortCut "$INSTDIR\WinBoard\FICS.lnk" "$INSTDIR\WinBoard\winboard.exe" "@FICS" "$INSTDIR\WinBoard\winboard.exe" 0\r
+       CreateShortCut "$INSTDIR\WinBoard\Fairy-Max ICS bot.lnk" "$INSTDIR\WinBoard\winboard.exe" "@ICSbot" "$INSTDIR\WinBoard\winboard.exe" 0\r
+       CreateShortCut "$INSTDIR\WinBoard\my WinBoard.lnk" "$INSTDIR\WinBoard\winboard.exe" "@marble @ChessMark" "$INSTDIR\WinBoard\winboard.exe" 0\r
+       CreateShortCut "$INSTDIR\WinBoard\Fruit.lnk" "$INSTDIR\WinBoard\winboard.exe" "@fruit" "$INSTDIR\WinBoard\winboard.exe" 0\r
+       CreateShortCut "$INSTDIR\WinBoard\Fairy-Max.lnk" "$INSTDIR\WinBoard\winboard.exe" "@fairy" "$INSTDIR\WinBoard\winboard.exe" 0\r
+\r
+       !insertmacro MUI_STARTMENU_WRITE_BEGIN Application\r
+       CreateDirectory "$SMPROGRAMS\$START_MENU_FOLDER"\r
+       CreateShortCut "$SMPROGRAMS\$START_MENU_FOLDER\Game Viewer.lnk" "$INSTDIR\WinBoard\winboard.exe" "@viewer" "$INSTDIR\WinBoard\winboard.exe" 1\r
+       ;CreateShortCut "$SMPROGRAMS\$START_MENU_FOLDER\WinBoard Help.lnk" "$INSTDIR\WinBoard\winboard.hlp"\r
+       CreateShortCut "$SMPROGRAMS\$START_MENU_FOLDER\Frequently Asked Questions.lnk" "$INSTDIR\WinBoard\doc\FAQ.html"\r
+       CreateShortCut "$SMPROGRAMS\$START_MENU_FOLDER\WinBoard Gold Pack README.lnk" "$INSTDIR\WinBoard\doc\README.html"\r
+       CreateShortCut "$SMPROGRAMS\$START_MENU_FOLDER\WinBoard UnInstall.lnk" "$INSTDIR\UnInstall.exe"\r
+       CreateShortCut "$SMPROGRAMS\$START_MENU_FOLDER\WinBoard Files.lnk" "$INSTDIR\WinBoard"\r
+       CreateShortCut "$SMPROGRAMS\$START_MENU_FOLDER\Chess Server - chessclub.com.lnk" "$INSTDIR\WinBoard\winboard.exe"  "@ICC" "$INSTDIR\WinBoard\winboard.exe" 0\r
+       CreateShortCut "$SMPROGRAMS\$START_MENU_FOLDER\Chess Server - freechess.org.lnk" "$INSTDIR\WinBoard\winboard.exe"  "@FICS" "$INSTDIR\WinBoard\winboard.exe" 0\r
+       CreateShortCut "$SMPROGRAMS\$START_MENU_FOLDER\Fancy-Look WinBoard.lnk" "$INSTDIR\WinBoard\winboard.exe" "@marble @ChessMark" "$INSTDIR\WinBoard\winboard.exe" 2\r
+       CreateShortCut "$SMPROGRAMS\$START_MENU_FOLDER\WinBoard Startup Dialog.lnk" "$INSTDIR\WinBoard\winboard.exe" "" "$INSTDIR\WinBoard\winboard.exe" 2\r
+       !insertmacro MUI_STARTMENU_WRITE_END\r
+\r
+SectionEnd\r
+\r
+SectionGroup /e "Auxiliary Components and Engines" Profiles\r
+\r
+    Section "Fairy-Max Demo Engine" fmax\r
+        SectionIn 1 RO\r
+        ; Fairy-Max is so small it can always be included, to have at least one working engine\r
+        SetOutPath "$INSTDIR\Fairy-Max"\r
+        File "${ROOT}Fairy-Max\fmax.exe"\r
+        File "${ROOT}Fairy-Max\MaxQi.exe"\r
+        File "${ROOT}Fairy-Max\fmax.ini"\r
+        File "${ROOT}Fairy-Max\qmax.ini"\r
+        File "${ROOT}Fairy-Max\logo.bmp"\r
+\r
+        ; also create a menu item to play Xiangqi with MaxQi. It is put with the Chess Engines becase it uses western-style board\r
+         SetOutPath $INSTDIR\WinBoard\r
+        CreateDirectory "$SMPROGRAMS\$START_MENU_FOLDER\Chess Engines"\r
+        !insertmacro MUI_STARTMENU_WRITE_BEGIN Application\r
+        CreateShortCut "$SMPROGRAMS\$START_MENU_FOLDER\Chess Engines\Fairy-Max.lnk" "$INSTDIR\WinBoard\winboard.exe" "@fairy" "$INSTDIR\Fairy-Max\fmax.exe" 0\r
+        CreateShortCut "$SMPROGRAMS\$START_MENU_FOLDER\Chess Engines\MaxQi (XQ).lnk" "$INSTDIR\WinBoard\winboard.exe" "@fairy -fcp MaxQi -scp MaxQi -variant xiangqi" "$INSTDIR\Fairy-Max\MaxQi.exe" 0\r
+        !insertmacro MUI_STARTMENU_WRITE_END\r
+    SectionEnd\r
+\r
+    Section "Fruit 2.1" Fruit\r
+        ; we include no separate book for Fruit, as it can use the GUI book. It is mostly included to provide a UCI example\r
+        SetOutPath "$INSTDIR\Fruit"\r
+        File "${ROOT}Fruit\copying.txt"\r
+        File "${ROOT}Fruit\fruit_21.exe"\r
+        File "${ROOT}Fruit\logo.bmp"\r
+        File "${ROOT}Fruit\readme.txt"\r
+        File "${ROOT}Fruit\technical_10.txt"\r
+\r
+         SetOutPath $INSTDIR\WinBoard\r
+        CreateDirectory "$SMPROGRAMS\$START_MENU_FOLDER\Chess Engines"\r
+        !insertmacro MUI_STARTMENU_WRITE_BEGIN Application\r
+        CreateShortCut "$SMPROGRAMS\$START_MENU_FOLDER\Chess Engines\Fruit 2.1.lnk" "$INSTDIR\WinBoard\winboard.exe" "@fruit" "$INSTDIR\WinBoard\winboard.exe" 2\r
+        !insertmacro MUI_STARTMENU_WRITE_END\r
+    SectionEnd\r
+\r
+  Section "Tournament Manager" Tournaments\r
+    SetOutPath "$INSTDIR\PSWBTM\doc"\r
+    File "${ROOT}PSWBTM\doc\configure.html"\r
+    File "${ROOT}PSWBTM\doc\install.html"\r
+    File "${ROOT}PSWBTM\doc\running.html"\r
+    File "${ROOT}PSWBTM\doc\tourney.html"\r
+    File "${ROOT}PSWBTM\doc\menu.png"\r
+    File "${ROOT}PSWBTM\doc\conf.png"\r
+    File "${ROOT}PSWBTM\doc\eman.png"\r
+    File "${ROOT}PSWBTM\doc\pswbtm.png"\r
+    File "${ROOT}PSWBTM\doc\tour.png"\r
+\r
+    CreateDirectory "$INSTDIR\PSWBTM\games"\r
+\r
+    SetOutPath "$INSTDIR\PSWBTM\start positions"\r
+    File "${ROOT}PSWBTM\start positions\nunn.pgn"\r
+    File "${ROOT}PSWBTM\start positions\silver.epd"\r
+\r
+    SetOutPath "$INSTDIR\PSWBTM"\r
+    File "${ROOT}PSWBTM\config.pswbtm"\r
+    File "${ROOT}PSWBTM\engines.pswbtm"\r
+    File "${ROOT}PSWBTM\ntls.pswbtm"\r
+    File "${ROOT}PSWBTM\PSWBTM.exe"\r
+    File "${ROOT}PSWBTM\README.txt"\r
+  SectionEnd\r
+\r
+    SubSection "Xiangqi" Xiangqi\r
+\r
+      Section "Graphics (required!)" XQgraphics\r
+        ; the large bitmap of the wooden XQ board is optional, as is the XQ opening book\r
+        SetOutPath "$INSTDIR\WinBoard\textures"\r
+        File "${ROOT}WinBoard\textures\xqwood.bmp"\r
+        \r
+        StrCpy $FONT_DIR $FONTS\r
+        !insertmacro InstallTTF '${FNTDIR}XIANGQI.TTF'\r
+        SendMessage ${HWND_BROADCAST} ${WM_FONTCHANGE} 0 0 /TIMEOUT=5000\r
+\r
+        SetOutPath "$INSTDIR\WinBoard"\r
+        File "${ROOT}Winboard\xq.ini"\r
+        File "${ROOT}Winboard\xq_book.bin"\r
+        File "${ROOT}Winboard\UCCI2WB.exe"\r
+        File "${ROOT}Winboard\QH2WB.exe"\r
+\r
+        CreateDirectory "$SMPROGRAMS\$START_MENU_FOLDER\Xiangqi Engines"\r
+        !insertmacro MUI_STARTMENU_WRITE_BEGIN Application\r
+        CreateShortCut "$SMPROGRAMS\$START_MENU_FOLDER\WinBoard\Xiangqi.lnk" "$INSTDIR\WinBoard\winboard.exe" "@xq" "$INSTDIR\WinBoard\UCCI2WB.exe" 0\r
+        CreateShortCut "$SMPROGRAMS\$START_MENU_FOLDER\Xiangqi Engines\MaxQi.lnk" "$INSTDIR\WinBoard\winboard.exe" "@fairy @xq -fcp MaxQi -scp MaxQi" "$INSTDIR\Fairy-Max\MaxQi.exe" 0\r
+        CreateShortCut "$SMPROGRAMS\$START_MENU_FOLDER\WinBoard XQ Startup (oriental).lnk" "$INSTDIR\WinBoard\winboard.exe" "@xq" "$INSTDIR\WinBoard\winboard.exe" 2\r
+        !insertmacro MUI_STARTMENU_WRITE_END\r
+      SectionEnd\r
+\r
+      Section "HaQiKi D XQ-Engine" HaQi\r
+        SetOutPath "$INSTDIR\HaQi"\r
+        File "${ROOT}HaQi\haqikid.exe"\r
+        File "${ROOT}HaQi\logo.bmp"\r
+        CreateDirectory "$SMPROGRAMS\$START_MENU_FOLDER\Xiangqi Engines"\r
+\r
+        SetOutPath $INSTDIR\WinBoard\r
+        CreateDirectory "$SMPROGRAMS\$START_MENU_FOLDER\Xiangqi Engines"\r
+        !insertmacro MUI_STARTMENU_WRITE_BEGIN Application\r
+        CreateShortCut "$SMPROGRAMS\$START_MENU_FOLDER\Xiangqi Engines\HaQiKi D.lnk" "$INSTDIR\WinBoard\winboard.exe" "@fairy @xq -fcp haqikid -fd ..\HaQi -scp haqikid -sd ..\HaQi" "$INSTDIR\HaQi\haqikid.exe" 0\r
+        !insertmacro MUI_STARTMENU_WRITE_END\r
+      SectionEnd\r
+\r
+      Section "Elephant Eye XQ-Engine" EleEye\r
+        SetOutPath "$INSTDIR\EleEye"\r
+        File "${ROOT}EleEye\ATOM.DLL"\r
+        File "${ROOT}EleEye\BOOK.DAT"\r
+        File "${ROOT}EleEye\CCHESS.DLL"\r
+        File "${ROOT}EleEye\ELEEYE.EXE"\r
+        File "${ROOT}EleEye\EVALUATE.DLL"\r
+        File "${ROOT}EleEye\logo.bmp"\r
+\r
+        SetOutPath "$INSTDIR\WinBoard\QH"\r
+        File "${ROOT}WinBoard\QH\eleeye.ini"\r
+\r
+        CreateDirectory "$SMPROGRAMS\$START_MENU_FOLDER\Xiangqi Engines"\r
+        SetOutPath $INSTDIR\WinBoard\r
+        !insertmacro MUI_STARTMENU_WRITE_BEGIN Application\r
+        CreateShortCut "$SMPROGRAMS\$START_MENU_FOLDER\Xiangqi Engines\Elephant Eye.lnk" "$INSTDIR\WinBoard\winboard.exe" '@xq -cp -fcp "UCCI2WB QH\eleeye.ini" -firstLogo ..\EleEye\logo.bmp -scp "UCCI2WB QH\eleeye.ini -secondLogo ..\EleEye\logo.bmp"' "$INSTDIR\EleEye\ELEEYE.exe" 0\r
+        !insertmacro MUI_STARTMENU_WRITE_END\r
+      SectionEnd\r
+\r
+    SubSectionEnd\r
+\r
+\r
+    SubSection "Chess Variants" Variants\r
+\r
+      Section "Pulsar Variant Engine (Mike Adams)" Pulsar\r
+        SetOutPath "$INSTDIR\Pulsar"\r
+        File "${ROOT}Pulsar\pulsar2009-9b.exe"\r
+        File "${ROOT}Pulsar\bigbook.txt"\r
+        File "${ROOT}Pulsar\openbk.txt"\r
+        File "${ROOT}Pulsar\atomicBookBlack.txt"\r
+        File "${ROOT}Pulsar\atomicBookWhite.txt"\r
+        File "${ROOT}Pulsar\kingsBookBlack.txt"\r
+        File "${ROOT}Pulsar\kingsBookWhite.txt"\r
+        File "${ROOT}Pulsar\losersBlack.txt"\r
+        File "${ROOT}Pulsar\losersWhite.txt"\r
+        File "${ROOT}Pulsar\pulsarCrazyBlack.txt"\r
+        File "${ROOT}Pulsar\pulsarCrazyWhite.txt"\r
+        File "${ROOT}Pulsar\pulsarShatranjBlack.txt"\r
+        File "${ROOT}Pulsar\pulsarShatranjWhite.txt"\r
+        File "${ROOT}Pulsar\suicideBookBlack.txt"\r
+        File "${ROOT}Pulsar\suicideBookWhite.txt"\r
+        File "${ROOT}Pulsar\threeBookBlack.txt"\r
+        File "${ROOT}Pulsar\threeBookWhite.txt"\r
+        File "${ROOT}Pulsar\logo.bmp"\r
+\r
+        SetOutPath $INSTDIR\WinBoard\r
+        CreateDirectory "$SMPROGRAMS\$START_MENU_FOLDER\Chess Engines"\r
+        !insertmacro MUI_STARTMENU_WRITE_BEGIN Application\r
+        CreateShortCut "$SMPROGRAMS\$START_MENU_FOLDER\Chess Engines\Pulsar.lnk" "$INSTDIR\WinBoard\winboard.exe" '@fairy -fcp "pulsar2009-9b 2" -fd ..\Pulsar -scp "pulsar2009-9b 2" -sd ..\Pulsar -usePolyglotBook false -variant atomic' "$INSTDIR\WinBoard\winboard.exe" 2\r
+        !insertmacro MUI_STARTMENU_WRITE_END\r
+      SectionEnd\r
+\r
+      Section "Joker80 Variant Engine" Joker\r
+        SetOutPath "$INSTDIR\Joker"\r
+        File "${ROOT}Joker\joker80.exe"\r
+        File "${ROOT}Joker\jokerKM.exe"\r
+        File "${ROOT}Joker\logo.bmp"\r
+\r
+        SetOutPath $INSTDIR\WinBoard\r
+        CreateDirectory "$SMPROGRAMS\$START_MENU_FOLDER\Chess Engines"\r
+        !insertmacro MUI_STARTMENU_WRITE_BEGIN Application\r
+        CreateShortCut "$SMPROGRAMS\$START_MENU_FOLDER\Chess Engines\Joker80 (Gothic).lnk" "$INSTDIR\WinBoard\winboard.exe" "@fairy -fcp Joker80.exe -fd ..\Joker -variant gothic" "$INSTDIR\Joker\Joker80.exe" 0\r
+        CreateShortCut "$SMPROGRAMS\$START_MENU_FOLDER\Chess Engines\Joker Knightmate.lnk" "$INSTDIR\WinBoard\winboard.exe" "@fairy -fcp JokerKM.exe -fd ..\Joker -variant knightmate" "$INSTDIR\Joker\JokerKM.exe" 0\r
+        !insertmacro MUI_STARTMENU_WRITE_END\r
+      SectionEnd\r
+\r
+      Section "Adapter for SMIRF Engine" Smirf\r
+        SetOutPath $INSTDIR\SMIRF\r
+        File "${ROOT}SMIRF\Smirfoglot.exe"\r
+        File "${ROOT}SMIRF\logo.bmp"\r
+\r
+        SetOutPath $INSTDIR\WinBoard\r
+        CreateDirectory "$SMPROGRAMS\$START_MENU_FOLDER\Chess Engines"\r
+        !insertmacro MUI_STARTMENU_WRITE_BEGIN Application\r
+        CreateShortCut "$SMPROGRAMS\$START_MENU_FOLDER\Chess Engines\SMIRF.lnk" "$INSTDIR\WinBoard\winboard.exe" "@fairy -fcp Smirfoglot.exe -fd ..\SMIRF" "$INSTDIR\SMIRF\Smirfoglot.exe" 0\r
+        !insertmacro MUI_STARTMENU_WRITE_END\r
+      SectionEnd\r
+\r
+      Section "ShaMax Shatranj Engine" ShaMax\r
+        SetOutPath $INSTDIR\Fairy-Max\r
+        File ${ROOT}Fairy-Max\ShaMax.exe\r
+\r
+        SetOutPath $INSTDIR\WinBoard\r
+        !insertmacro MUI_STARTMENU_WRITE_BEGIN Application\r
+        CreateShortCut "$SMPROGRAMS\$START_MENU_FOLDER\Chess Engines\ShaMax.lnk" "$INSTDIR\WinBoard\winboard.exe" "@fairy -fcp ShaMax.exe -variant shatranj" "$INSTDIR\Fairy-Max\ShaMax.exe" 0\r
+        !insertmacro MUI_STARTMENU_WRITE_END\r
+      SectionEnd               \r
+\r
+    SubSectionEnd\r
+SectionGroupEnd\r
+\r
+;Section "un.Fonts"\r
+;    StrCpy $FONT_DIR $FONTS\r
+;    !insertmacro RemoveTTF 'MARKFONT.TTF'\r
+;    !insertmacro RemoveTTF 'XIANGI.TTF'\r
+;    SendMessage ${HWND_BROADCAST} ${WM_FONTCHANGE} 0 0 /TIMEOUT=5000\r
+;SectionEnd\r
+\r
+;--------------------------------\r
+;Installer Functions\r
+Function .onInit\r
+\r
+  ;Extract InstallOptions INI files\r
+  !insertmacro MUI_INSTALLOPTIONS_EXTRACT "FA.ini"\r
+\r
+FunctionEnd\r
+\r
+Function FileAssoc\r
+\r
+    !insertmacro MUI_HEADER_TEXT "Windows File Associations" "Do you want to use Winboard as your viewer for the following file types?"\r
+    !insertmacro MUI_INSTALLOPTIONS_DISPLAY "FA.ini"\r
+\r
+\r
+    ;Read a value from an InstallOptions INI file\r
+\r
+    !insertmacro MUI_INSTALLOPTIONS_READ $INI_VALUE "FA.ini" "Field 2" "State"\r
+\r
+    ;Display a messagebox if check box was checked\r
+    StrCmp $INI_VALUE "1" "" CheckFEN\r
+    WriteRegStr HKCR ".pgn" "" "WinBoard.PGN"\r
+    WriteRegStr HKCR ".pgn" "Content Type" "application/x-chess-pgn"\r
+    WriteRegStr HKCR "WinBoard.PGN" "" "Chess Game"\r
+    WriteRegStr HKCR "WinBoard.PGN\DefaultIcon" "" "$INSTDIR\WinBoard\WinBoard.exe,1"\r
+    WriteRegStr HKCR "WinBoard.PGN\Shell\Open" "" "Open"\r
+    WriteRegStr HKCR "WinBoard.PGN\Shell\Open\command" "" '"$INSTDIR\WinBoard\WinBoard.exe" -ini "$INSTDIR\WinBoard\WinBoard.ini" @viewer -lgf "%1"'\r
+\r
+    CheckFEN:\r
+    !insertmacro MUI_INSTALLOPTIONS_READ $INI_VALUE "FA.ini" "Field 3" "State"\r
+\r
+    ;Display a messagebox if check box was checked\r
+    StrCmp $INI_VALUE "1" "" Continue\r
+    WriteRegStr HKCR ".fen" "" "WinBoard.FEN"\r
+    WriteRegStr HKCR ".fen" "Content Type" "application/x-chess-fen"\r
+    WriteRegStr HKCR "WinBoard.FEN" "" "Chess Position"\r
+    WriteRegStr HKCR "WinBoard.FEN\DefaultIcon" "" "$INSTDIR\WinBoard\WinBoard.exe,1"\r
+    WriteRegStr HKCR "WinBoard.FEN\Shell\Open" "" "Open"\r
+    WriteRegStr HKCR "WinBoard.FEN\Shell\Open\command" "" '"$INSTDIR\WinBoard\WinBoard.exe" -ini "$INSTDIR\WinBoard\WinBoard.ini" @viewer -lpf "%1"'\r
+\r
+    Continue:\r
+\r
+FunctionEnd\r
+\r
+;--------------------------------\r
+;Descriptions\r
+\r
+  ;Language strings\r
+\r
+       LangString DESC_Core ${LANG_ENGLISH} "Winboard Core Components - Executable, Help Files, Protocol Adapters, Settings Files and Graphics"\r
+       LangString DESC_Profiles ${LANG_ENGLISH} "Components only of Interest to Specific User Profiles"\r
+       LangString DESC_Xiangqi ${LANG_ENGLISH} "Xiangqi (Chinese Chess) Engines and Graphics"\r
+       LangString DESC_fmax ${LANG_ENGLISH} "Small Chess engine, also plays Gothic, Cylinder, Berolina, Capablanca, Superchess, Knightmate, Great Shatranj"\r
+       LangString DESC_Fruit ${LANG_ENGLISH} "Very strong Chess engine suitable for analysis, by Fabien Letouzy"\r
+       LangString DESC_Variants ${LANG_ENGLISH} "Engines for Chess-Variant Afficionados (e.g. Crazyhouse, Chess960, Gothic Chess)"\r
+       LangString DESC_Tournaments ${LANG_ENGLISH} "PSWBTM Tournament Manager for running automated engine-engine tournaments with WinBoard"\r
+       LangString DESC_XQgraphics ${LANG_ENGLISH} "Oriental-style board and pieces for WinBoard (the XQ-engine shortcuts won't work without it!)"\r
+       LangString DESC_HaQi ${LANG_ENGLISH} "HaQiKi D 0.8, a strong Xiangqi engine by H.G. Muller"\r
+       LangString DESC_EleEye ${LANG_ENGLISH} "Elephant Eye 3.1, a very strong Xiangqi engine by Morning Yellow"\r
+       LangString DESC_Joker ${LANG_ENGLISH} "Joker80 Gothic-Chess engine and JokerKM Knightmate engine by H.G.Muller"\r
+       LangString DESC_Pulsar ${LANG_ENGLISH} "Plays Chess960, Crazyhouse, Losers, Suicide, Giveway, Atomic, 3Check, TwoKings, Shatranj and standard Chess"\r
+       LangString DESC_ShaMax ${LANG_ENGLISH} "A derivative of the Fairy-Max engine dedicated to playing Shatranj"\r
+       LangString DESC_Smirf ${LANG_ENGLISH} "Smirfoglot adapter for Reinhard Scharnagl's SMIRF 10x8 and 8x8 Chess engine"\r
+\r
+\r
+  ;Assign language strings to sections\r
+\r
+  !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN\r
+       !insertmacro MUI_DESCRIPTION_TEXT ${Core} $(DESC_Core)\r
+       !insertmacro MUI_DESCRIPTION_TEXT ${Profiles} $(DESC_Profiles)\r
+       !insertmacro MUI_DESCRIPTION_TEXT ${Xiangqi} $(DESC_Xiangqi)\r
+       !insertmacro MUI_DESCRIPTION_TEXT ${fmax} $(DESC_fmax)\r
+       !insertmacro MUI_DESCRIPTION_TEXT ${Fruit} $(DESC_Fruit)\r
+       !insertmacro MUI_DESCRIPTION_TEXT ${Variants} $(DESC_Variants)\r
+       !insertmacro MUI_DESCRIPTION_TEXT ${Tournaments} $(DESC_Tournaments)\r
+       !insertmacro MUI_DESCRIPTION_TEXT ${XQgraphics} $(DESC_XQgraphics)\r
+       !insertmacro MUI_DESCRIPTION_TEXT ${HaQi} $(DESC_HaQi)\r
+       !insertmacro MUI_DESCRIPTION_TEXT ${EleEye} $(DESC_EleEye)\r
+       !insertmacro MUI_DESCRIPTION_TEXT ${Joker} $(DESC_Joker)\r
+       !insertmacro MUI_DESCRIPTION_TEXT ${Pulsar} $(DESC_Pulsar)\r
+       !insertmacro MUI_DESCRIPTION_TEXT ${ShaMax} $(DESC_ShaMax)\r
+       !insertmacro MUI_DESCRIPTION_TEXT ${Smirf} $(DESC_Smirf)\r
+  !insertmacro MUI_FUNCTION_DESCRIPTION_END\r
+\r
+;--------------------------------\r
+\r
+;--------------------------------\r
+;Uninstaller Section\r
+\r
+; Function to delete install directory if non-empty on user request\r
+Function un.ForceDirectoryDelete\r
+\r
+         MessageBox MB_YESNO "The uninstaller was unable to delete the directory '$INSTDIR'. This is usually$\r$\ndue to user-created files such as WinBoard.ini, or other configuration files. If$\r$\nyou wish to keep your old configuration files, select No.$\r$\n$\r$\nForce deletion of install directory and all files in it?" IDNO End\r
+\r
+         RMDir /r "$INSTDIR"\r
+\r
+         End:\r
+\r
+FunctionEnd\r
+\r
+\r
+Section "Uninstall"\r
+\r
+       Delete "$INSTDIR\WinBoard\PG\fruit.ini"\r
+       Delete "$INSTDIR\WinBoard\logos\chessclub.com.bmp"\r
+       Delete "$INSTDIR\WinBoard\logos\freechess.org.bmp"\r
+       Delete "$INSTDIR\WinBoard\logos\administrator.bmp"\r
+       Delete "$INSTDIR\WinBoard\logos\guest.bmp"\r
+       Delete "$INSTDIR\WinBoard\logos\user.bmp"\r
+       Delete "$INSTDIR\WinBoard\logos\README.txt"\r
+       Delete "$INSTDIR\WinBoard\textures\marble_l.bmp"\r
+       Delete "$INSTDIR\WinBoard\textures\marble_d.bmp"\r
+       Delete "$INSTDIR\WinBoard\textures\wood_l.bmp"\r
+       Delete "$INSTDIR\WinBoard\textures\wood_d.bmp"\r
+       Delete "$INSTDIR\WinBoard\textures\xqboard.bmp"\r
+       Delete "$INSTDIR\Fairy-Max\fmax.exe"\r
+       Delete "$INSTDIR\Fairy-Max\MaxQi.exe"\r
+       Delete "$INSTDIR\Fairy-Max\fmax.ini"\r
+       Delete "$INSTDIR\Fairy-Max\qmax.ini"\r
+       Delete "$INSTDIR\Fairy-Max\logo.bmp"\r
+       Delete "$INSTDIR\WinBoard\doc\engine-intf.html"\r
+       Delete "$INSTDIR\WinBoard\doc\FAQ.html"\r
+       Delete "$INSTDIR\WinBoard\doc\fonts.html"\r
+       Delete "$INSTDIR\WinBoard\doc\manual.html"\r
+       Delete "$INSTDIR\WinBoard\doc\UCIconfig.html"\r
+       Delete "$INSTDIR\WinBoard\doc\shortcuts.html"\r
+       Delete "$INSTDIR\WinBoard\doc\texture.html"\r
+       Delete "$INSTDIR\WinBoard\doc\mini.gif"\r
+       Delete "$INSTDIR\WinBoard\doc\PG2fruit.png"\r
+       Delete "$INSTDIR\WinBoard\doc\zippy.README"\r
+       Delete "$INSTDIR\WinBoard\doc\COPYING.txt"\r
+       Delete "$INSTDIR\WinBoard\doc\COPYRIGHT.txt"\r
+       Delete "$INSTDIR\WinBoard\doc\COPYRIGHTS.txt"\r
+       Delete "$INSTDIR\WinBoard\doc\README.html"\r
+       ;Delete "$FONTS\ChessMark.ttf"\r
+       Delete "$INSTDIR\WinBoard\polyglot.exe"\r
+       Delete "$INSTDIR\WinBoard\UCCI2WB.exe"\r
+       Delete "$INSTDIR\WinBoard\timeseal.exe"\r
+       Delete "$INSTDIR\WinBoard\timestamp.exe"\r
+       Delete "$INSTDIR\WinBoard\winboard.exe"\r
+       Delete "$INSTDIR\WinBoard\winboard.hlp"\r
+       Delete "$INSTDIR\WinBoard\winboard.chm"\r
+       Delete "$INSTDIR\WinBoard\FICS.ini"\r
+       Delete "$INSTDIR\WinBoard\ICC.ini"\r
+       Delete "$INSTDIR\WinBoard\fairy.ini"\r
+       Delete "$INSTDIR\WinBoard\Gothic.ini"\r
+       Delete "$INSTDIR\WinBoard\viewer.ini"\r
+       Delete "$INSTDIR\WinBoard\marble.ini"\r
+       Delete "$INSTDIR\WinBoard\wood.ini"\r
+       Delete "$INSTDIR\WinBoard\ICSbot.ini"\r
+       Delete "$INSTDIR\WinBoard\fruit.ini"\r
+       Delete "$INSTDIR\WinBoard\winboard.ini"\r
+       Delete "$INSTDIR\WinBoard\ChessMark.ini"\r
+       Delete "$INSTDIR\WinBoard\default_book.bin"\r
+       Delete "$INSTDIR\WinBoard\zippy.lines"\r
+       Delete "$INSTDIR\WinBoard\textures\xqwood.bmp"\r
+       Delete "$INSTDIR\WinBoard\FICS.lnk"\r
+       Delete "$INSTDIR\WinBoard\ICC.lnk"\r
+       Delete "$INSTDIR\WinBoard\Fairy-Max.lnk"\r
+       Delete "$INSTDIR\WinBoard\PGN Viewer.lnk"\r
+       Delete "$INSTDIR\WinBoard\my WinBoard.lnk"\r
+       Delete "$INSTDIR\WinBoard\Fairy-Max ICS bot.lnk"\r
+       Delete "$INSTDIR\WinBoard\Fruit.lnk"\r
+       Delete "$INSTDIR\WinBoard\polyglot_1st.ini"\r
+       Delete "$INSTDIR\WinBoard\polyglot_2nd.ini"\r
+\r
+       Delete "$INSTDIR\Fruit\fruit_21.exe"\r
+       Delete "$INSTDIR\Fruit\copying.txt"\r
+       Delete "$INSTDIR\Fruit\readme.txt"\r
+       Delete "$INSTDIR\Fruit\technical_10.txt"\r
+       Delete "$INSTDIR\Fruit\logo.bmp"\r
+\r
+       Delete "$INSTDIR\HaQi\haqikid.exe"\r
+       Delete "$INSTDIR\HaQi\logo.bmp"\r
+       Delete "$INSTDIR\EleEye\ELEEYE.exe"\r
+       Delete "$INSTDIR\EleEye\ATOM.DLL"\r
+       Delete "$INSTDIR\EleEye\CCHESS.DLL"\r
+       Delete "$INSTDIR\EleEye\EVALUATE.DLL"\r
+       Delete "$INSTDIR\EleEye\BOOK.DAT"\r
+       Delete "$INSTDIR\EleEye\logo.bmp"\r
+       Delete "$INSTDIR\WinBoard\QH\eleeye.ini"\r
+       ;Delete "$FONTS\XIANGQI.ttf"\r
+       Delete "$INSTDIR\WinBoard\xq_book.bin"\r
+       Delete "$INSTDIR\WinBoard\QH2WB.exe"\r
+       Delete "$INSTDIR\WinBoard\xq.ini"\r
+\r
+       Delete "$INSTDIR\Pulsar\Pulsar2009-9b.exe"\r
+       Delete "$INSTDIR\Pulsar\atomicBookBlack.txt"\r
+       Delete "$INSTDIR\Pulsar\atomicBookWhite.txt"\r
+       Delete "$INSTDIR\Pulsar\kingsBookBlack.txt"\r
+       Delete "$INSTDIR\Pulsar\kingsBookWhite.txt"\r
+       Delete "$INSTDIR\Pulsar\losersBlack.txt"\r
+       Delete "$INSTDIR\Pulsar\losersWhite.txt"\r
+       Delete "$INSTDIR\Pulsar\pulsarCrazyBlack.txt"\r
+       Delete "$INSTDIR\Pulsar\pulsarCrazyWhite.txt"\r
+       Delete "$INSTDIR\Pulsar\pulsarShatranjBlack.txt"\r
+       Delete "$INSTDIR\Pulsar\pulsarShatranjWhite.txt"\r
+       Delete "$INSTDIR\Pulsar\suicideBookBlack.txt"\r
+       Delete "$INSTDIR\Pulsar\suicideBookWhite.txt"\r
+       Delete "$INSTDIR\Pulsar\threeBookBlack.txt"\r
+       Delete "$INSTDIR\Pulsar\threeBookWhite.txt"\r
+       Delete "$INSTDIR\Pulsar\bigbook.txt"\r
+       Delete "$INSTDIR\Pulsar\openbk.txt"\r
+       Delete "$INSTDIR\Pulsar\logo.bmp"\r
+       Delete "$INSTDIR\Joker\joker80.exe"\r
+       Delete "$INSTDIR\Joker\jokerKM.exe"\r
+       Delete "$INSTDIR\Joker\logo.bmp"\r
+       Delete "$INSTDIR\SMIRF\Smirfoglot.exe"\r
+       Delete "$INSTDIR\SMIRF\logo.bmp"\r
+       Delete "$INSTDIR\Fairy-Max\ShaMax.exe"\r
+\r
+       Delete "$INSTDIR\PSWBTM\PSWBTM.exe"\r
+       Delete "$INSTDIR\PSWBTM\README.txt"\r
+       Delete "$INSTDIR\PSWBTM\config.pswbtm"\r
+       Delete "$INSTDIR\PSWBTM\engines.pswbtm"\r
+       Delete "$INSTDIR\PSWBTM\ntls.pswbtm"\r
+       Delete "$INSTDIR\PSWBTM\start positions\nunn.pgn"\r
+       Delete "$INSTDIR\PSWBTM\start positions\silver.epd"\r
+       Delete "$INSTDIR\PSWBTM\doc\configure.html"\r
+       Delete "$INSTDIR\PSWBTM\doc\install.html"\r
+       Delete "$INSTDIR\PSWBTM\doc\running.html"\r
+       Delete "$INSTDIR\PSWBTM\doc\tourney.html"\r
+       Delete "$INSTDIR\PSWBTM\doc\conf.png"\r
+       Delete "$INSTDIR\PSWBTM\doc\eman.png"\r
+       Delete "$INSTDIR\PSWBTM\doc\menu.png"\r
+       Delete "$INSTDIR\PSWBTM\doc\pswbtm.png"\r
+       Delete "$INSTDIR\PSWBTM\doc\tour.png"\r
+\r
+       RMDir "$INSTDIR\WinBoard\doc"\r
+       RMDir "$INSTDIR\WinBoard\logos"\r
+       RMDir "$INSTDIR\WinBoard\textures"\r
+       RMDir "$INSTDIR\WinBoard\PG"\r
+       RMDir "$INSTDIR\WinBoard\QH"\r
+       RMDir "$INSTDIR\WinBoard"\r
+       RMDir "$INSTDIR\Fairy-Max"\r
+       RMDir "$INSTDIR\Pulsar"\r
+       RMDir "$INSTDIR\Joker"\r
+       RMDir "$INSTDIR\Fruit"\r
+       RMDir "$INSTDIR\PSWBTM\doc"\r
+       RMDir "$INSTDIR\PSWBTM\games"\r
+       RMDir "$INSTDIR\PSWBTM\start positions"\r
+       RMDir "$INSTDIR\PSWBTM"\r
+       RMDir "$INSTDIR\SMIRF"\r
+       RMDir "$INSTDIR\HaQi"\r
+       RMDir "$INSTDIR\EleEye"\r
+       Delete "$INSTDIR\uninstall.exe"\r
+       RMDir "$INSTDIR"\r
+\r
+\r
+    !insertmacro MUI_STARTMENU_GETFOLDER Application $MUI_TEMP\r
+\r
+    RMDir /r "$SMPROGRAMS\$MUI_TEMP"\r
+\r
+    ReadRegStr $1 HKCR ".pgn" ""\r
+    StrCmp $1 "WinBoard.PGN" "" DelFEN\r
+    ReadRegStr $1 HKCR "WinBoard.PGN\Shell\Open\command" ""\r
+    StrCmp $1 '"$INSTDIR\WinBoard\WinBoard.exe" -ini "$INSTDIR\WinBoard\WinBoard.ini" @viewer -lgf "%1"' "" DelFEN\r
+    DeleteRegKey HKCR ".pgn"\r
+    DeleteRegKey HKCR "WinBoard.PGN"\r
+\r
+    DelFEN:\r
+\r
+    ReadRegStr $1 HKCR ".fen" ""\r
+    StrCmp $1 "WinBoard.FEN" "" ContDelFEN\r
+    ReadRegStr $1 HKCR "WinBoard.FEN\Shell\Open\command" ""\r
+    StrCmp $1 '"$INSTDIR\WinBoard\WinBoard.exe" -ini "$INSTDIR\WinBoard\WinBoard.ini" @viewer -lpf "%1"' "" ContDelFEN\r
+    DeleteRegKey HKCR ".fen"\r
+    DeleteRegKey HKCR "WinBoard.FEN"\r
+\r
+    ContDelFEN:\r
+\r
+    DeleteRegKey HKCU "Software\WinBoard"\r
+\r
+\r
+    IfFileExists "$INSTDIR\*.*" GoDirDel Continue\r
+\r
+    GoDirDel:\r
+    Call un.ForceDirectoryDelete\r
+\r
+    Continue:\r
+\r
+\r
+SectionEnd\r
diff --git a/winboard/install/installer/wc_uninst.ico b/winboard/install/installer/wc_uninst.ico
new file mode 100644 (file)
index 0000000..1be63d2
Binary files /dev/null and b/winboard/install/installer/wc_uninst.ico differ
diff --git a/winboard/install/installer/welcome_chess.bmp b/winboard/install/installer/welcome_chess.bmp
new file mode 100644 (file)
index 0000000..da71667
Binary files /dev/null and b/winboard/install/installer/welcome_chess.bmp differ
diff --git a/winboard/install/todo.install.txt b/winboard/install/todo.install.txt
new file mode 100644 (file)
index 0000000..f6c3a73
--- /dev/null
@@ -0,0 +1,27 @@
+License:\r
+    !insertmacro MUI_PAGE_LICENSE "..\READ_ME.txt"\r
+\r
+empty mkdir:\r
+  bitbases\r
+  egtb\r
+  GNU4\r
+  GNU5\r
+\r
+Section Core:\r
+  links:\r
+    Fairy-Max.lnk       (fairy.ini)\r
+    FICS.lnk            (FICS.ini)\r
+    Fruit.lnk           (Fruit\fruit.ini)\r
+    ICC.lnk             (ICC.ini)\r
+    ICS bot.lnk         (ICSbot.ini)\r
+    my WinBoard.lnk     (???)\r
+    PGN viewer.lnk      (viewer.ini)\r
+    Xiangqi.lnk         (xq.ini)\r
+\r
+ChessMark.ini, Gothic.ini, marble.ini\r
+QH\eleeye.ini\r
+\r
+TODO: PSWTBTM (Tournament Manager)\r
+Smirfoglot?? doesn't this require an engine?\r
+\r
+\r
index 4502178..1891f07 100644 (file)
@@ -188,8 +188,8 @@ MenuItemDesc menuItemJAWS[] = {
 {"Say Board &Rank\tAlt+R",      IDM_ReadRow },\r
 {"Say Board &File\tAlt+F",      IDM_ReadColumn },\r
 {"-", 0 },\r
-{"Say &Upper Diagnols\tAlt+U",  IDM_SayUpperDiagnols },\r
-{"Say &Lower Diagnols\tAlt+L",  IDM_SayLowerDiagnols },\r
+{"Say &Upper Diagonals\tAlt+U",  IDM_SayUpperDiagnols },\r
+{"Say &Lower Diagonals\tAlt+L",  IDM_SayLowerDiagnols },\r
 {"Say K&night Moves\tAlt+N",    IDM_SayKnightMoves },\r
 {"Say Current &Square\tAlt+S",  IDM_SayCurrentPos },\r
 {"Say &Attacks\tAlt+A",         IDM_PossibleAttackMove },\r
index 2e78c0b..83dde19 100644 (file)
@@ -7,7 +7,7 @@ PROJ=winboard
 OBJS=backend.o book.o gamelist.o lists.o moves.o pgntags.o uci.o zippy.o\\r
  parser.o wbres.o wclipbrd.o wedittags.o wengineo.o wevalgraph.o\\r
  wgamelist.o whistory.o winboard.o wlayout.o woptions.o wsnap.o\\r
- wsockerr.o help.o\r
+ wsockerr.o help.o wsettings.o\r
 \r
 \r
 # make compiling less spammy\r
@@ -163,5 +163,8 @@ book.o: ../book.c ../common.h ../backend.h ../lists.h
 uci.o: ../uci.c ..//common.h ../backend.h ../frontend.h ../lists.h\r
        $(call compile, $<)\r
 \r
+wsettings.o: wsettings.c ..//common.h ../backend.h ../frontend.h ../lists.h\r
+       $(call compile, $<)\r
+\r
 %.o: %.c\r
        $(call compile, $<)\r
index 2e0b953..c78bbb4 100644 (file)
@@ -15,7 +15,7 @@ PROJ = winboard
 OBJS=backend.obj book.obj gamelist.obj lists.obj moves.obj pgntags.obj uci.obj\\r
  zippy.obj parser.obj wclipbrd.obj wedittags.obj wengineo.obj wevalgraph.obj\\r
  wgamelist.obj whistory.obj winboard.obj wlayout.obj woptions.obj wsnap.obj\\r
- wsockerr.obj help.obj\r
+ wsockerr.obj help.obj wsettings.obj\r
 \r
 \r
 # Debugging?\r
@@ -169,6 +169,10 @@ uci.obj: ../uci.c ..//common.h ../backend.h ../frontend.h ../lists.h
         $(CC) $(CFLAGS) ../uci.c\r
 \r
 \r
+wsettings.obj: wsettings.c ..//common.h ../backend.h ../frontend.h ../lists.h\r
+        $(CC) $(CFLAGS) wsettings.c\r
+\r
+\r
 $(PROJ).exe: $(OBJS) $(PROJ).res $(PROJ).hlp\r
     $(LINK) $(LFLAGS) $(OBJS) wsock32.lib comctl32.lib winmm.lib shell32.lib\\r
  oldnames.lib kernel32.lib advapi32.lib user32.lib gdi32.lib comdlg32.lib\\r
index 3a886d0..565fab6 100644 (file)
 #define IDC_SPECIFY_ENG_STATIC          1814\r
 #define IDC_SPECIFY_SERVER_STATIC       1815\r
 #define OPT_MESS                        1818\r
+#define IDM_Engine1Options             1890\r
+#define IDM_Engine2Options             1891\r
 #define IDC_STATIC                      -1\r
 \r
 // Next default values for new objects\r
index b562959..1c3238f 100644 (file)
@@ -547,7 +547,7 @@ void EngineOutputUpdate( FrontEndProgramStats * stats )
     if( clearMemo ) DoClearMemo(which);\r
 \r
     /* Update */\r
-    lastDepth[which] = depth;\r
+    lastDepth[which] = depth == 1 && ed.nodes == 0 ? 0 : depth; // [HGM] info-line kudge\r
     lastForwardMostMove[which] = forwardMostMove;\r
 \r
     if( ed.pv != 0 && ed.pv[0] == ' ' ) {\r
@@ -807,7 +807,8 @@ static void UpdateControls( EngineOutputData * ed )
         sprintf( s_time, "%d:%02d.%02d", time_secs / 60, time_secs % 60, time_cent );\r
 \r
         /* Put all together... */\r
-        sprintf( buf, "%3d\t%s\t%s\t%s\t", ed->depth, s_score, s_nodes, s_time );\r
+       if(ed->nodes == 0 && ed->score == 0 && ed->time == 0) sprintf( buf, "%3d\t", ed->depth ); else \r
+       sprintf( buf, "%3d\t%s\t%s\t%s\t", ed->depth, s_score, s_nodes, s_time );\r
 \r
         /* Add PV */\r
         buflen = strlen(buf);\r
index fb98336..d6f4a45 100644 (file)
@@ -449,6 +449,8 @@ VOID EngineOutputPopDown();
 BOOL EngineOutputIsUp();\r
 VOID EngineOutputUpdate( FrontEndProgramStats * stats );\r
 \r
+VOID EngineOptionsPopup(); // [HGM] settings\r
+\r
 VOID GothicPopUp(char *title, VariantClass variant);\r
 /*\r
  * Setting "frozen" should disable all user input other than deleting\r
@@ -856,7 +858,7 @@ InitInstance(HINSTANCE hInstance, int nCmdShow, LPSTR lpCmdLine)
   wp.rcNormalPosition.bottom = boardY + winHeight;\r
   SetWindowPlacement(hwndMain, &wp);\r
 \r
-  SetWindowPos(hwndMain, alwaysOnTop ? HWND_TOPMOST : HWND_NOTOPMOST,\r
+  if(!appData.noGUI) SetWindowPos(hwndMain, alwaysOnTop ? HWND_TOPMOST : HWND_NOTOPMOST,\r
                0, 0, 0, 0, SWP_NOMOVE|SWP_NOSIZE);\r
 \r
   if (hwndConsole) {\r
@@ -866,7 +868,7 @@ InitInstance(HINSTANCE hInstance, int nCmdShow, LPSTR lpCmdLine)
 #endif\r
     ShowWindow(hwndConsole, nCmdShow);\r
   }\r
-  UpdateWindow(hwnd);\r
+  if(!appData.noGUI)   UpdateWindow(hwnd);  else ShowWindow(hwnd, SW_MINIMIZE);\r
 \r
   return TRUE;\r
 \r
@@ -5094,7 +5096,7 @@ MouseEvent(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
                                                                         ) {\r
       /* Downclick on different square. */\r
       /* [HGM] if on holdings file, should count as new first click ! */\r
-      { /* [HGM] <sameColor> now always do UserMoveTest(), and check colors there */\r
+      /* [HGM] <sameColor> now always do UserMoveTest(), and check colors there */\r
        toX = x;\r
        toY = y;\r
         /* [HGM] <popupFix> UserMoveEvent requires two calls now,\r
@@ -5107,6 +5109,9 @@ MouseEvent(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
                break; \r
        } else \r
         if(moveType != ImpossibleMove) {\r
+         if(moveType == IllegalMove) {\r
+               ;\r
+         } else\r
           /* [HGM] We use PromotionToKnight in Shogi to indicate frorced promotion */\r
           if (moveType == WhitePromotionKnight || moveType == BlackPromotionKnight ||\r
             ((moveType == WhitePromotionQueen || moveType == BlackPromotionQueen) &&\r
@@ -5124,7 +5129,7 @@ MouseEvent(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
                      If promotion to Q is legal, all are legal! */\r
                  if(gameInfo.variant == VariantSuper || gameInfo.variant == VariantGreat)\r
                  { ChessSquare p = boards[currentMove][fromY][fromX], q = boards[currentMove][toY][toX];\r
-                   // kludge to temporarily execute move on display, wthout promotng yet\r
+                   // kludge to temporarily execute move on display, without promotng yet\r
                    promotionChoice = TRUE;\r
                    boards[currentMove][fromY][fromX] = EmptySquare; // move Pawn to 8th rank\r
                    boards[currentMove][toY][toX] = p;\r
@@ -5140,23 +5145,20 @@ MouseEvent(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
                  ClearHighlights();\r
              }\r
              FinishMove(moveType, fromX, fromY, toX, toY, NULLCHAR);\r
-            fromX = fromY = -1;\r
              if (appData.animate && !appData.highlightLastMove) {\r
                   ClearHighlights();\r
                   DrawPosition(forceFullRepaint || FALSE, NULL);\r
              }\r
           }\r
-          break;\r
+          fromX = fromY = -1;\r
+         break;\r
         }\r
         if (gotPremove) {\r
-            /* [HGM] it seemed that braces were missing here */\r
-            SetPremoveHighlights(fromX, fromY, toX, toY);\r
-            fromX = fromY = -1;\r
-            break;\r
-        }\r
-      }\r
-      ClearHighlights();\r
-      DrawPosition(forceFullRepaint || FALSE, NULL);\r
+           SetPremoveHighlights(fromX, fromY, toX, toY);\r
+            DrawPosition(forceFullRepaint || FALSE, NULL);\r
+       } else ClearHighlights();\r
+        fromX = fromY = -1;\r
+        DrawPosition(forceFullRepaint || FALSE, NULL);\r
     }\r
     /* First downclick, or restart on a square with same color piece */\r
     if (!frozen && OKToStartUserMove(x, y)) {\r
@@ -5652,7 +5654,7 @@ WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
     \r
     JAWS_ALT_INTERCEPT\r
 \r
-    if (appData.icsActive && (isalpha((char)wParam) || wParam == '0')) { \r
+    if (appData.icsActive && (char)wParam > ' ' && !((char)wParam >= '1' && (char)wParam <= '9')) { \r
        // [HGM] movenum: for non-zero digits we always do type-in dialog\r
        HWND h = GetDlgItem(hwndConsole, OPT_ConsoleInput);\r
        if (IsIconic(hwndConsole)) ShowWindow(hwndConsole, SW_RESTORE);\r
@@ -6127,6 +6129,14 @@ WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
       EnginePlayOptionsPopup(hwnd);\r
       break;\r
 \r
+    case IDM_Engine1Options:\r
+      EngineOptionsPopup(hwnd, &first);\r
+      break;\r
+\r
+    case IDM_Engine2Options:\r
+      EngineOptionsPopup(hwnd, &second);\r
+      break;\r
+\r
     case IDM_OptionsUCI:\r
       UciOptionsPopup(hwnd);\r
       break;\r
index 35842da..5db2925 100644 (file)
@@ -245,6 +245,10 @@ SOURCE=.\woptions.c
 # End Source File\r
 # Begin Source File\r
 \r
+SOURCE=.\wsettings.c\r
+# End Source File\r
+# Begin Source File\r
+\r
 SOURCE=.\wsnap.c\r
 # End Source File\r
 # Begin Source File\r
index 3037858..0e9cb38 100644 (file)
@@ -1142,11 +1142,13 @@ BEGIN
         MENUITEM "&General...",                 IDM_GeneralOptions\r
         MENUITEM "&Board...",                   IDM_BoardOptions\r
         MENUITEM "Adjudications...\tAlt+Shift+J",IDM_EnginePlayOptions\r
-        MENUITEM "Engine Settings...\tAlt+Shift+U",IDM_OptionsUCI\r
+        MENUITEM "Global Settings...\tAlt+Shift+U",IDM_OptionsUCI\r
+        MENUITEM "Engine #1 Settings...",       IDM_Engine1Options\r
+        MENUITEM "Engine #2 Settings...",       IDM_Engine2Options\r
         MENUITEM "&ICS...",                     IDM_IcsOptions, GRAYED\r
         MENUITEM "&Fonts...",                   IDM_Fonts\r
         MENUITEM "Soun&ds...",                  IDM_Sounds\r
-        MENUITEM "Game List...\tAlt+Shift+G",   IDM_GameListOptions\r
+        MENUITEM "Game List...",                IDM_GameListOptions\r
         MENUITEM SEPARATOR\r
         MENUITEM "Comm&unications...",          IDM_CommPort\r
         MENUITEM "&Load Game...\tAlt+Shift+L",  IDM_LoadOptions\r
index 4531eb9..3e9b86e 100644 (file)
@@ -218,7 +218,7 @@ footer;}{\s66\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cf11\cg
 {\listoverride\listid470094698\listoverridecount0\ls3}{\listoverride\listid1099714113\listoverridecount0\ls4}{\listoverride\listid1358388700\listoverridecount0\ls5}{\listoverride\listid2044863907\listoverridecount0\ls6}{\listoverride\listid640160996\r
 \listoverridecount0\ls7}{\listoverride\listid768165129\listoverridecount0\ls8}{\listoverride\listid903878531\listoverridecount0\ls9}{\listoverride\listid781152802\listoverridecount0\ls10}{\listoverride\listid1240552867\listoverridecount0\ls11}\r
 {\listoverride\listid640160996\listoverridecount0\ls12}{\listoverride\listid349260549\listoverridecount0\ls13}{\listoverride\listid1021513731\listoverridecount0\ls14}{\listoverride\listid1405952460\listoverridecount0\ls15}{\listoverride\listid1332292840\r
-\listoverridecount0\ls16}}{\*\revtbl {Unknown;}{Tim Mann;}}{\info{\title + $ # KWinBoard: Chessboard for Windows}{\author TRIO}{\operator hgm}{\creatim\yr2003\mo10\dy25\hr23\min40}{\revtim\yr2009\mo6\dy22\hr20\min30}{\printim\yr1997\mo4\dy22\hr23\min5}{\version42}{\edmins887}\r
+\listoverridecount0\ls16}}{\*\revtbl {Unknown;}{Tim Mann;}}{\info{\title + $ # KWinBoard: Chessboard for Windows}{\author TRIO}{\operator hgm}{\creatim\yr2003\mo10\dy25\hr23\min40}{\revtim\yr2009\mo8\dy13\hr7\min53}{\printim\yr1997\mo4\dy22\hr23\min5}{\version43}{\edmins888}\r
 {\nofpages78}{\nofwords17967}{\nofchars-32766}{\*\company DEC SRC}{\nofcharsws0}{\vern73}}\margl1417\margr1417\margt1417\margb1417 \r
 \widowctrl\endnotes\aendnotes\hyphhotz425\ftnnrlc\aftnnar\noxlattoyen\expshrtn\noultrlspc\dntblnsbdb\nospaceforul\hyphcaps0\viewkind4\viewscale100 \fet1{\*\aftnsep \pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\chftnsep \r
 \r
@@ -231,12 +231,12 @@ footer;}{\s66\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cf11\cg
 \par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\r
 \par }\pard\plain \s2\li119\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\f1\cf11 An updated description with the release of version 4.4.0.\r
 \par }\pard \s2\li119\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright {\f1\cf11 \tab \tab \tab \ldblquote For the ultimate WinBoard Experience\rdblquote \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf6 New features since WinBoard 4.2.7 that are implemented in Allessandro Scotti\rquote s Winboard_x are highlighted in red. }{\f1\cf11 New features in the WinBoard\r
- 4.3.xx series by H.G. Muller are highlighted in green}{\f1\cf2 , that in the unified 4.4 series in blue}{\f1\cf11 .}{\f1 \r
+\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf6 New features since WinBoard 4.2.7 that are implemented in Allessandro Scotti\rquote s Winboard_x are highlighted in red. }{\f1\cf11 \r
+New features in the WinBoard 4.3.xx series by H.G. Muller are highlighted in green}{\f1\cf2 , that in the unified 4.4 series in blue}{\f1\cf11 .}{\f1 \r
 \par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
  Description}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  Description}}}{\f1  Description\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\i\f1 WinBoard}{\f1  is a graphical user interface for chess. It displays a chessboard on the screen, accepts moves made with the\r
- mouse, and loads and saves game files in standard chess notation. WinBoard serves as a front-end for many different services, including:\r
+\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\i\f1 WinBoard}{\f1 \r
+ is a graphical user interface for chess. It displays a chessboard on the screen, accepts moves made with the mouse, and loads and saves game files in standard chess notation. WinBoard serves as a front-end for many different services, including:\r
 \par {\pntext\pard\plain\f3\fs20\lang1033\cgrid \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard\plain \fi-360\li480\sb80\sl-240\slmult0\nowidctlpar\jclisttab\tx480{\*\pn \pnlvlblt\ilvl0\ls3\pnrnot0\pnf3\pnstart1\pnindent360\pnhang{\pntxtb \'b7}}\ls3\adjustright \r
 \f5\fs20\cgrid {\b\i\f1 Chess engines}{\f1  that run on your PC. You can play a game against an engine, set up arbitrary positions, force variations, or watch a game between two engines. }{\i\f1\cf11 Fairy-Max}{\f1  is supplied with WinBoard }{\f1\cf11 \r
 4.3.14}{\f1 , and over 100 other free chess engines are available separately. Of these, Crafty is the most popular. See }{\f1\uldb Installing Chess Engines}{\v\f1 InstallingChessEngines}{\f1  for instructions on installing additional chess engines.\r
@@ -247,19 +247,19 @@ Chess servers}{\b\f1  }{\f1 on the Internet. You can play against other Internet
 The Web}{\f1  and your own saved games. You can use WinBoard as a helper application to view files in your Web browser or the Explorer. You can use it to keep track of email postal games, browse games off the net, or review games you have saved.\r
 \par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\super K}{ Getting Started}}\r
 #{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\super #}{ GettingStarted}}}{\f1 Getting Started\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 WinBoard starts up in one of three major modes: chess engine mode, ICS client mode, or game viewer mode. You cannot change modes while WinBoard is running, but \r
-you can access all the game viewer features directly from the other two modes. Also, you can start WinBoard several times to get multiple chessboard windows running in any combination of modes.\r
-\par }\pard\plain \s20\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {You will usually run WinBoard by choosing an item from the Win\r
-dows Start menu that runs it in the mode you want. If you just double-click on WinBoard.exe, you get a startup dialog asking which mode you want. If you choose chess engine mode, you can then select from the installed engines; if you choose ICS client mod\r
-e, you can then select from a list of known chess servers. More advanced users can }{\uldb customize}{\v icsNames}{ these lists or type in WinBoard }{\uldb command line options}{\v Options}{ directly.\r
+\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 \r
+WinBoard starts up in one of three major modes: chess engine mode, ICS client mode, or game viewer mode. You cannot change modes while WinBoard is running, but you can access all the game viewer features directly from the othe\r
+r two modes. Also, you can start WinBoard several times to get multiple chessboard windows running in any combination of modes.\r
+\par }\pard\plain \s20\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {You will usually run WinBoard by choosing an item from the Windows Start menu that runs it in the mode you want. If you just dou\r
+ble-click on WinBoard.exe, you get a startup dialog asking which mode you want. If you choose chess engine mode, you can then select from the installed engines; if you choose ICS client mode, you can then select from a list of known chess servers. More ad\r
+vanced users can }{\uldb customize}{\v icsNames}{ these lists or type in WinBoard }{\uldb command line options}{\v Options}{ directly.\r
 \par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 After starting WinBoard, you can make }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\r
 \cs58\f1\super K}{\f1  move}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  move}}}{\f1 \r
-moves in several different ways. To move by dragging, press the left mouse button while the cursor is on one of your pieces, move the cursor to another square, and release the button. You can also move by clicking the left mouse button once (press and rel\r
+moves in several different ways. To move by dragging, press the left mouse button while the cursor\r
+ is on one of your pieces, move the cursor to another square, and release the button. You can also move by clicking the left mouse button once (press and release) over one of your pieces, moving the cursor to another square, and clicking again. You drop n\r
 e\r
-ase) over one of your pieces, moving the cursor to another square, and clicking again. You drop new pieces on the board (when applicable) by selecting from a context menu. Press the right mouse button over a square to bring up the menu; no menu will come \r
-u\r
-p in modes where dropping a new piece is not permitted. You can also make moves by typing them in standard algebraic chess notation. Either a dialog box will pop up for you to type into, or in ICS mode, your typing will be redirected into the ICS interact\r
-ion window.\r
+w pieces on the board (when applicable) by selecting from a context menu. Press the right mouse button over a square to bring up the menu; no menu will come up in modes where dropping a new piece is not permitted. You can also make moves by typing them in\r
+ standard algebraic chess notation. Either a dialog box will pop up for you to type into, or in ICS mode, your typing will be redirected into the ICS interaction window.\r
 \par When WinBoard}{\i\f1  }{\f1 is iconized, its }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  icon}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\r
 \nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  icon}}}{\f1 icon is a white knight if it is White's turn to move, a black knight if it is Black's turn.\r
 \par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\f1 Additional Information\r
@@ -332,8 +332,8 @@ Event}{\f1  tag, by looking for the strings that the Internet Chess Servers put
 \par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  Save Game}\r
 }#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  SaveGame}}}{\f1  Save Game\r
 \par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 \r
-Appends a record of the current game to a file. A popup dialog prompts you for the filename. If the game did not begin with the standard starting position, the game file includes the starting position used. Game files are saved in the PGN (portable game n\r
-otation) format, unless the }{\f1\uldb oldSaveStyle}{\v\f1 oldSaveStyle}{\f1  option is True, in which case they are saved in an older format that is specific to WinBoard}{\i\f1 .}{\f1 \r
+Appends a record of the current game to a file. A popup dialog prompts you for the filename. If the game did not begin with the standard starting position, the game file includes the starting position used. Ga\r
+me files are saved in the PGN (portable game notation) format, unless the }{\f1\uldb oldSaveStyle}{\v\f1 oldSaveStyle}{\f1  option is True, in which case they are saved in an older format that is specific to WinBoard}{\i\f1 .}{\f1 \r
  Both formats are human-readable, and both can be read back by the Load Game command. Notation of the form }{\i\f1 P@f7}{\f1  is generated for piece-drops in bughouse games; this is a nonstandard extension to PGN.\r
 \par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
  Copy Game To Clipboard}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  CopyGameToClipboard}}}{\f1  Copy Game To Clipboard\r
@@ -344,13 +344,12 @@ otation) format, unless the }{\f1\uldb oldSaveStyle}{\v\f1 oldSaveStyle}{\f1  op
 \par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
  Load Position}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  LoadPosition}}}{\f1  Load Position\r
 \par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Sets up a position from a position file. A popup dialog prompts you for the filename. Position files must be in FEN (Forsythe-Edwards notation), or in the format that the }\r
-{\f1\uldb Save Position}{\f1  command writes when }{\f1\uldb oldSaveStyle}{\v\f1 oldSaveStyle}{\f1  is turned on. }{\f1\cf11 Note tha\r
-t many variants require an extension of the original FEN standard. WinBoard tries to be as universal as possible in understanding FENs when different standards are raound, but has to make a choice when writing them. In FRC is uses Shredder-FEN (Haha castl\r
-i\r
-ng notation) , but it understands KQkq as the outermost Rook, so it also reads X-FEN. In Crazyhouse / Bughouse it appends the holdings immediately behind the board info between brackets [], but on input it also understands bFEN (which puts it behind a sla\r
-s\r
-h / as if it were an extra board rank). It uses a tilde ~ behind a piece to indicate it is really a promoted Pawn (like bFEN). In Shogi the holdings are printed like in Crazyhouse, but promoted pieces are represented by a plus sign + before the letter of \r
-the original piece. Letters used for the pieces can be set with the /pieceToCharTable command-line option.}{\f1 \r
+{\f1\uldb Save Position}{\f1  command writes when }{\f1\uldb oldSaveStyle}{\v\f1 oldSaveStyle}{\f1  is turned on. }{\f1\cf11 \r
+Note that many variants require an extension of the original FEN standard. WinBoard tries to be as universal as possible in understanding FENs when different standards ar\r
+e raound, but has to make a choice when writing them. In FRC is uses Shredder-FEN (Haha castling notation) , but it understands KQkq as the outermost Rook, so it also reads X-FEN. In Crazyhouse / Bughouse it appends the holdings immediately behind the boa\r
+r\r
+d info between brackets [], but on input it also understands bFEN (which puts it behind a slash / as if it were an extra board rank). It uses a tilde ~ behind a piece to indicate it is really a promoted Pawn (like bFEN). In Shogi the holdings are printed \r
+like in Crazyhouse, but promoted pieces are represented by a plus sign + before the letter of the original piece. Letters used for the pieces can be set with the /pieceToCharTable command-line option.}{\f1 \r
 \par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
  Load Next Position}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  LoadNextPosition}}}{\f1  Load Next Position\r
 \par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Loads the next position from the last position file you loaded.\r
@@ -363,8 +362,8 @@ the original piece. Letters used for the pieces can be set with the /pieceToChar
 \par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
  Save Position}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  SavePosition}}}{\f1  Save Position\r
 \par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Appends a diagram of the current position to a file. A popup dialog prompts you for the filename. Positions are saved in FEN (Forsythe-Edwards notation) format, unless the \r
-}{\f1\uldb oldSaveStyle}{\v\f1 oldSaveStyle}{\f1  option is True, in which case they are saved in an older, human-readable format that is specific to WinBoard}{\i\f1 .}{\f1  Both formats can be read back by the Load Positio\r
-n command; however, currently Load Position can load only the first position in a file.\r
+}{\f1\uldb oldSaveStyle}{\v\f1 oldSaveStyle}{\f1  option is True, in which case they are saved in an older, human-readable format that is specific to WinBoard}{\i\f1 .}{\f1 \r
+ Both formats can be read back by the Load Position command; however, currently Load Position can load only the first position in a file.\r
 \par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf11\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
 \f1\cf11 Save Diagram}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf11 Save Diagram}}}{\f1\cf11  Save Diagram\r
 \par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf11 Writes the current board display as a bitmap file. With this command you can use WinBoard as a diagram generator.\r
@@ -378,8 +377,8 @@ n command; however, currently Load Position can load only the first position in
 \par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  Exit}}#\r
 {\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  Exit}}}{\f1  Exit\r
 \par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Exits from WinBoard.\r
-\par }\pard\plain \s1\li120\sb280\sa120\sl-320\slmult0\nowidctlpar\outlinelevel0\adjustright \b\f5\cgrid {\f1\fs20 \page }{\cs58\f1\fs20\super K{\footnote\ftnalt \pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\b\f1\super K}\r
-{\f1  Mode Menu}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  ModeMenu}}${\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\r
+\par }\pard\plain \s1\li120\sb280\sa120\sl-320\slmult0\nowidctlpar\outlinelevel0\adjustright \b\f5\cgrid {\f1\fs20 \page }{\cs58\f1\fs20\super K{\footnote\ftnalt \pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\r
+\f1  Mode Menu}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  ModeMenu}}${\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\r
 \cs58\f1\super $}{\f1  Mode Menu}}+{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super +}{\f1  main}}}{\f1\fs20  Mode Menu\r
 \par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
  Machine White}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  MachineWhite}}}{\f1  Machine White\r
@@ -392,17 +391,18 @@ n command; however, currently Load Position can load only the first position in
 \par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Starts a game between two chess engines.\r
 \par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf11\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
 \f1\cf11 Machine Both}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf11 Machine Both}}}{\f1\cf11  Machine Both\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf11 A single chess engine plays itself. Ma\r
-inly useful for pseudo-engines, that are in fact communication links to another machine, where you want to observe a game that is being played. (E.g. the gothic-chess.com server). This command is not implemented yet (version 4.3.14).\r
+\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf11 \r
+A single chess engine plays itself. Mainly useful for pseudo-engines, that are in fact communication links to another machine, where you want to observe a game that is being played. (E.g. t\r
+he gothic-chess.com server). This command is not implemented yet (version 4.3.14).\r
 \par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
  Analysis Mode}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  AnalysisMode}}}{\f1  Analysis Mode\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 \r
-In this mode, you can make moves for both sides on the board. After each move, the chess engine will think about possible replies and display its analysis in a separate window. Crafty was the first engine to support this feature, \r
-but by now there are many others that support it as well.\r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cf2 From WinBoard 4.4 on this function can also be invoked in \lquote zippy mode\rquote \r
-, i.e. when you are logged on to an ICS with an engine loaded. In that case it is not your own moves that the engine analyzes, b\r
-ut the moves that are played in a game on the ICS that you are observing. You must start observing before you start the analysis mode! See the file zippy.README for how to connect to an ICS and a chess engine running on your local computer at the same tim\r
-e. (Basically this amounts to adding the /zp command-line option in addition to all options you would need for connecting to the ICS, as well as those needed for running the chess engine.)\r
+\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 In this mode, you can make moves for both sides on the board. After each move, the chess engine will think about possible rep\r
+lies and display its analysis in a separate window. Crafty was the first engine to support this feature, but by now there are many others that support it as well.\r
+\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cf2 From WinBoard 4.4 on this function can also be invoked in \lquote zippy mode\rquote , i.e. when you are log\r
+ged on to an ICS with an engine loaded. In that case it is not your own moves that the engine analyzes, but the moves that are played in a game on the ICS that you are observing. You must start observing before you start the analysis mode! See the file zi\r
+p\r
+py.README for how to connect to an ICS and a chess engine running on your local computer at the same time. (Basically this amounts to adding the /zp command-line option in addition to all options you would need for connecting to the ICS, as well as those \r
+needed for running the chess engine.)\r
 \par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
  Analyze File}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  AnalyzeFile}}}{\f1  Analyze File\r
 \par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 \r
@@ -410,43 +410,43 @@ In this mode, you can load a game from a file, and the chess engine will analyze
 \par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  ICS Client\r
 }}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  ICSClient}}}{\f1  ICS Client\r
 \par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 This is the normal mode when WinBoard is connected to a chess server. If you have moved into Edit Game or Edit Position mode, you can select this option to get out.\r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 When you run WinBoard in ICS mode, it starts up a console window in which you can typ\r
-e commands and receive text responses from the chess server. You can use the standard Windows editing keys to edit your command line before pressing Enter. The console window keeps a history of the last few commands you typed. Press the up-arrow key to go\r
- back to a previous command; press the down-arrow key to go forward again to a later command. Press the right mouse button in the output area for a }{\f1\uldb context menu}{\v\f1 ICSInteractionContextMenu}{\f1 \r
- of editing commands and ICS command shortcuts.\r
+\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 \r
+When you run WinBoard in ICS mode, it starts up a console window in which you can type commands and receive text responses from the chess server. You can use the standard Windows editing keys to edit your command line before pressing Enter. The console wi\r
+ndow keeps a history of the last few commands you typed. Press the up-arrow key to go back to a previous command; press the down-arrow key to go forward again to a later command. Press the right mouse button in the output area for a }{\f1\uldb \r
+context menu}{\v\f1 ICSInteractionContextMenu}{\f1  of editing commands and ICS command shortcuts.\r
 \par Some useful ICS commands include }{\b\f1 who}{\f1  to see who is logged on, }{\b\f1 games}{\f1  to see what games are being played, }{\b\f1 match}{\f1  to challenge another player to a game, }{\b\f1 observe}{\f1  to observe an ongoing game, }{\b\f1 \r
 examine}{\f1  or }{\b\f1 smoves}{\f1  to review a recently completed game, and of course }{\b\f1 help}{\f1 . \r
 \par Whenever you ask to observe an ongoing game, review a completed game, or resume an adjourned game, WinBoard retrieves and parses the list of past moves from the ICS, so you can review them with }{\f1\uldb Forward}{\v\f1 Forward}{\f1  and }{\f1\uldb \r
 Backward}{\v\f1 Backward}{\f1  or save them with }{\f1\uldb Save Game}{\v\f1 SaveGame}{\f1 .\r
 \par Some special ICS Client features are activated when you are in }{\b\f1 examine}{\f1  or }{\b\f1 bsetup }{\f1 mode on ICS. See the descriptions of the menu commands }{\f1\uldb Forward}{\v\f1 Forward}{\f1 , }{\f1\uldb Backward}{\v\f1 Backward}{\f1 , }{\r
-\f1\uldb Pause}{\v\f1 Pause}{\f1 , and }{\f1\uldb Stop Examining}{\v\f1 StopExamining}{\f1  below. You can also issue the ICS position-editing\r
- commands with the mouse. Move pieces by dragging with the left mouse button, or by left-clicking once on the starting square and once on the ending square. Press the right mouse button over a square for a context menu that lets you drop a new piece, empt\r
-y\r
- the square, or clear the board. Click on the White or Black clock to set the side to play. You cannot set the side to play or drag pieces to arbitrary squares while examining on ICC, but you can do so in bsetup mode on FICS. You can also make moves by ty\r
-ping them into the ICS window; you may have to do this occasionally if you are playing a chess variant whose rules WinBoard does not understand, such as Fischer Random.\r
-\par If you are playing a bughouse game on the ICS, a list of the offboard pieces that each p\r
-layer holds is shown in the window title bar. To drop an offboard piece, press the right mouse button over an empty square to bring up a context menu. To observe your partner's games, start a second copy of WinBoard, log in as a guest, and use the ICS }{\r
-\b\f1 follow}{\f1  or }{\b\f1 pfollow}{\f1  command in the new window.\r
+\f1\uldb Pause}{\v\f1 Pause}{\f1 , and }{\f1\uldb Stop Examining}{\v\f1 StopExamining}{\f1 \r
+ below. You can also issue the ICS position-editing commands with the mouse. Move pieces by dragging with the left mouse button, or by left-clicking once on the starting square and once on the ending square. Press the righ\r
+t mouse button over a square for a context menu that lets you drop a new piece, empty the square, or clear the board. Click on the White or Black clock to set the side to play. You cannot set the side to play or drag pieces to arbitrary squares while exam\r
+ining on ICC, but you can do so in bsetup mode on FICS. You can also make moves by typing them into the ICS window; you may have to do this occasionally if you are playing a chess variant whose rules WinBoard does not understand, such as Fischer Random.\r
+\r
+\par If \r
+you are playing a bughouse game on the ICS, a list of the offboard pieces that each player holds is shown in the window title bar. To drop an offboard piece, press the right mouse button over an empty square to bring up a context menu. To observe your par\r
+tner's games, start a second copy of WinBoard, log in as a guest, and use the ICS }{\b\f1 follow}{\f1  or }{\b\f1 pfollow}{\f1  command in the new window.\r
 \par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  Edit Game}\r
 }#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  EditGame}}}{\f1  Edit Game\r
 \par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Allows you to make moves for both Black and White, and to change moves after backing up with the }{\f1\uldb Backward}{\v\f1 Backward}{\f1 \r
  command. The clocks do not run, but you can adjust their reading by clicking on them. A left-click subtracts one minute, a right-click adds one minute.\r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 In chess engine mode, the chess engine continues to check moves for legality but does not participate i\r
-n the game. You can bring the chess engine back into the game by selecting }{\f1\uldb Machine White}{\v\f1 MachineWhite}{\f1 , }{\f1\uldb Machine Black}{\v\f1 MachineBlack}{\f1 , or }{\f1\uldb Two Machines}{\v\f1 TwoMachines}{\f1 .\r
+\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 In chess engine mode, the chess engine continues to check moves for legality but doe\r
+s not participate in the game. You can bring the chess engine back into the game by selecting }{\f1\uldb Machine White}{\v\f1 MachineWhite}{\f1 , }{\f1\uldb Machine Black}{\v\f1 MachineBlack}{\f1 , or }{\f1\uldb Two Machines}{\v\f1 TwoMachines}{\f1 .\r
+\r
 \par In ICS mode, the moves are not sent to the ICS: Edit Game takes WinBoard out of ICS Client mode and lets you edit games locally. If you want to edit a game on ICS in a way that other ICS users can see, use the ICS }{\b\f1 examine}{\f1 \r
  command or start an ICS match against yourself.\r
 \par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
  Edit Position}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  EditPosition}}}{\f1  Edit Position\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Lets you set up an arbitrary board po\r
-sition. Use the left mouse button to drag pieces to new squares, or to delete a piece by dragging it off the board or dragging an empty square on top of it. To drop a new piece on a square, press the right mouse button over the square. This brings up a me\r
-nu of pieces. Additional menu choices let you empty the square or clear the board. You can set the side to play next by clicking on the White or Black indicator at the top of the screen. }{\f1\cf11 The pop-up menu also contains options to \lquote promote\r
-\rquote  or \lquote demote\rquote  the pie\r
-ce currently in the square. (In variants like Crazyhouse a piece has a different representation when it is a promoted Pawn rater than an original piece.) This allows you to create some of the not-so-common pieces (e.g. a Unicorn is a promoted King, a Comm\r
-oner is a demoted King).}{\f1 \r
+\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Lets you set up an\r
+ arbitrary board position. Use the left mouse button to drag pieces to new squares, or to delete a piece by dragging it off the board or dragging an empty square on top of it. To drop a new piece on a square, press the right mouse button over the square. \r
+This brings up a menu of pieces. Additional menu choices let you empty the square or clear the board. You can set the side to play next by clicking on the White or Black indicator at the top of the screen. }{\f1\cf11 \r
+The pop-up menu also contains options to \lquote promote\rquote  or \lquote demote\rquote \r
+ the piece currently in the square. (In variants like Crazyhouse a piece has a different representation when it is a promoted Pawn rater than an original piece.) This allows you to create some of the not-so-common pieces (e.g. a Unicorn is a pro\r
+moted King, a Commoner is a demoted King).}{\f1 \r
 \par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Selecting Edit Position causes WinBoard}{\i\f1  }{\f1 to discard all remembered moves in the current game.\r
-\par In ICS mode, change made to the position by Edit Position are not sent to the ICS: Edit Position takes WinBoard out of ICS Client mode and \r
-lets you edit positions locally. If you want to edit positions on ICS in a way that other ICS users can see, use the ICS }{\b\f1 examine}{\f1  command, or start an ICS match against yourself. (See also }{\f1\uldb ICS Client}{\v\f1 ICSClient}{\f1  above.)\r
-\r
+\par In ICS mode, change made to the position by Edit Position are not sent to the ICS: Edit Position takes WinBoard out of ICS Client mode and lets you edit positions locally. If you want to edit positions on ICS in a way that other ICS users can see, use the\r
+ ICS }{\b\f1 examine}{\f1  command, or start an ICS match against yourself. (See also }{\f1\uldb ICS Client}{\v\f1 ICSClient}{\f1  above.)\r
 \par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf6\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
 \f1\cf6 Show Engine Output}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf6 Show Engine Output}}}{\f1\cf6  Show Engine Output\r
 \par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cf6 Open a new window dedicated to showing the thinking output of the engine(s), as controlled by \ldblquote Show Thinking\rdblquote .\r
@@ -462,9 +462,9 @@ lets you edit positions locally. If you want to edit positions on ICS in a way t
 \par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cf6 Open a new window dedicated to showing the game currently in progress.\r
 \par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  Training}}\r
 #{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  Training}}}{\f1  Training\r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\r
-Training mode lets you interactively guess the moves of a game for one of the players. While in Training mode, the navigation buttons are disabled. You guess the next move of the game by playing the move on the board (or using the }{\uldb Type In Move}{\r
-\v\uldb TypeInMove}{ command). If the move played matches the next move of the game, the move is accepted and the opponent\rquote s response is autoplayed.  If the move played is incorrect, an error message is displayed. \r
+\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {Training mode lets you interactively guess the moves of a game for one of the players. While in Training mode, the navigation buttons are disabled. You\r
+ guess the next move of the game by playing the move on the board (or using the }{\uldb Type In Move}{\v\uldb TypeInMove}{ command). If the move played matches the next move of the game, the move is accepted and the opponent\rquote \r
+s response is autoplayed.  If the move played is incorrect, an error message is displayed. \r
 \par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  Edit Tags}\r
 }#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  EditTags}}}{\f1  Edit Tags\r
 \par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Lets you edit the PGN (portable game notation) tags for the current game. After editing, the tags must still conform to the PGN tag syntax:\r
@@ -473,11 +473,10 @@ Training mode lets you interactively guess the moves of a game for one of the pl
 \par }\pard\plain \s20\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 See the PGN Standard for full details. Here is an example:\r
 \par }\pard\plain \s43\li520\sa60\keep\nowidctlpar\tx520\tx920\tx1320\tx1720\tx2120\adjustright \f6\fs20\cgrid {\f2 \line [Event "Portoroz Interzonal"]\line [Site "Portoroz, Yugoslavia"]\line [Date "1958.08.16"]\line [Round "8"]\line \r
 [White "Robert J. Fischer"]\line [Black "Bent Larsen"]\line [Result "1-0"]\r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Any charac\r
-ters that do not match this syntax are silently ignored. Note that the PGN standard requires all games to have at least the seven tags shown above. Any that you omit will be filled in by WinBoard with }{\f2 "?"}{\f1  (unknown value) or }{\f2 "-"}{\f1 \r
- (inapplicable value).\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  Edi\r
-t Comment}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  EditComment}}}{\f1  Edit Comment\r
+\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Any characters that do not match this syntax are silently ignored. Note that the PGN standard requires all games to have at least the seven tags shown above. Any\r
+ that you omit will be filled in by WinBoard with }{\f2 "?"}{\f1  (unknown value) or }{\f2 "-"}{\f1  (inapplicable value).\r
+\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
+ Edit Comment}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  EditComment}}}{\f1  Edit Comment\r
 \par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Adds or modifies a comment on the current position. Comments are saved by }{\f1\uldb Save Game}{\v\f1 SaveGame}{\f1  and are displayed by }{\f1\uldb Load Game}{\v\f1 \r
 LoadGame}{\f1 , }{\f1\uldb Forward}{\v\f1 Forward}{\f1 , and }{\f1\uldb Backward}{\v\f1 Backward}{\f1 .\r
 \par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf11\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
@@ -485,14 +484,14 @@ LoadGame}{\f1 , }{\f1\uldb Forward}{\v\f1 Forward}{\f1 , and }{\f1\uldb Backward
 \par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cf11 Allows you to type the name of the human player, which will appear in the PGN header and in the window title.\r
 \par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  Pause}}#\r
 {\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  Pause}}}{\f1  Pause\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Pauses updates to the board, and if you are playing against a local chess engine, also pauses your clock.\r
- To continue, select Pause again, and the display will automatically update to the latest position. The }{\b\f1 P}{\f1  (or }{\b\f1 C}{\f1 ) button is equivalent to selecting Pause.\r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 If you select Pause when you are playing{\*\bkmkstart WHATSelSavT}{\*\bkmkend WHATSelSavT} {\*\bkmkstart fWHATtopic}against{\*\bkmkend fWHATtopic} a chess eng\r
-ine and it is not your move, the chess engine\rquote \r
-s clock will continue to run and it will eventually make a move, at which point both clocks will stop. Since board updates are paused, however, you will not see the move until you exit from Pause mode (or select }{\f1\uldb Forward}{\v\f1 Forward}{\f1 \r
-). This behavior is meant to simulate adjournment with a sealed move.\r
-\par If you select Pause while you are in }{\b\f1 examine}{\f1  mode on ICS, you can step backward and forward in the current history of the examined game without affecting the other examin\r
-ers or observers. Select Pause again to reconnect yourself to the current state of the game on ICS.\r
+\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 \r
+Pauses updates to the board, and if you are playing against a local chess engine, also pauses your clock. To continue, select Pause again, and the display will automatically update to the latest position. The }{\b\f1 P}{\f1  (or }{\b\f1 C}{\f1 \r
+) button is equivalent to selecting Pause.\r
+\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 If you select Pause when you are playing{\*\bkmkstart WHATSelSavT}{\*\bkmkend WHATSelSavT} {\*\bkmkstart fWHATtopic}against{\*\bkmkend fWHATtopic}\r
+ a chess engine and it is not your move, the chess engine\rquote s clock will continue to run and it will eventually make a move, at which point both clocks\r
+ will stop. Since board updates are paused, however, you will not see the move until you exit from Pause mode (or select }{\f1\uldb Forward}{\v\f1 Forward}{\f1 ). This behavior is meant to simulate adjournment with a sealed move.\r
+\par If you select Pause while you are in }{\b\f1 examine}{\f1  mode o\r
+n ICS, you can step backward and forward in the current history of the examined game without affecting the other examiners or observers. Select Pause again to reconnect yourself to the current state of the game on ICS.\r
 \par If you select Pause while you are loading a game, the game stops loading. You can load more moves one at a time by selecting }{\f1\uldb Forward}{\v\f1 Forward}{\f1 , or resume automatic loading by selecting Pause again.\r
 \par }\pard\plain \s1\li120\sb280\sa120\sl-320\slmult0\nowidctlpar\outlinelevel0\adjustright \b\f5\cgrid {\f1\fs20 \page }{\cs58\f1\fs20\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super \r
 K}{\f1  Action Menu}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  ActionMenu}}${\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \r
@@ -516,12 +515,12 @@ K}{\f1  Action Menu}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmul
 \par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Offers a draw to your opponent, accepts a pending draw offer from your opponent, or claims a draw by repetition or the 50-move rule, as appropriate.\r
 \par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  Adjourn}}#\r
 {\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  Adjourn}}}{\f1  Adjourn\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Asks your opponent to agree to adjourning the current gam\r
-e, or agrees to a pending adjournment offer from your opponent. You continue an adjourned ICS game by challenging the same player again with the ICS }{\b\f1 match}{\f1  command.\r
+\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Asks your opponent to agree to adjourning the current game, or agrees to a pending adjournment offer from your opponent. You continue an adjourne\r
+d ICS game by challenging the same player again with the ICS }{\b\f1 match}{\f1  command.\r
 \par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  Abort}}#\r
 {\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  Abort}}}{\f1  Abort\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Asks your opponent to agree to abort the current game, or agrees to\r
- a pending abort offer from your opponent. An aborted ICS game ends immediately without affecting either player's rating.\r
+\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Asks your opponent to agree to abort the current game, or agrees to a pending abort offer from your opponent. An aborted ICS game ends immediately without \r
+affecting either player's rating.\r
 \par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  Resign}}#\r
 {\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  Resign}}}{\f1  Resign\r
 \par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Resigns the game to your opponent.\r
@@ -545,14 +544,14 @@ e, or agrees to a pending adjournment offer from your opponent. You continue an
 \f5\fs20\cgrid {\cs58\f1\super $}{\f1  Step Menu}}+{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super +}{\f1  main}}}{\f1\fs20  Step Menu\r
 \par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
  Type In Move}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  TypeInMove}}}{\f1  Type In Move\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Pops up a dialog box, into which you can type moves in standa\r
-rd algebraic chess notation. (You can also get this dialog box by simply starting to type over the chessboard, except in ICS mode, where such typing is redirected into the ICS interaction window.)\r
+\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Pops up a dialog box, into which you can type moves in standard algebraic c\r
+hess notation. (You can also get this dialog box by simply starting to type over the chessboard, except in ICS mode, where such typing is redirected into the ICS interaction window.)\r
 \par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  Backward}}\r
 #{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  Backward}}}{\f1  Backward\r
 \par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Steps backward through a series of remembered moves. The }{\b\f1 <}{\f1  button is equivalent to selecting Backward}{\f1\cf2 , as is turning the mouse wheel towards you}{\r
-\f1 .In most modes, Backward only lets you look back at old positions; it does not retract moves. This is the case if you are playing against\r
- a chess engine, playing or observing a game on the ICS, or loading a game. If you select Backward in any of these situations, you will not be allowed to make a different move. Use }{\f1\uldb Retract Move}{\v\f1 RetractMove}{\f1  or }{\f1\uldb Edit Game}{\r
-\v\f1 EditGame}{\f1  if you want to change past moves.\r
+\f1 .In most modes, Backward only lets you look back at old positions; it does not retract moves. This is the case if you are playing against a chess engin\r
+e, playing or observing a game on the ICS, or loading a game. If you select Backward in any of these situations, you will not be allowed to make a different move. Use }{\f1\uldb Retract Move}{\v\f1 RetractMove}{\f1  or }{\f1\uldb Edit Game}{\v\f1 EditGame\r
+}{\f1  if you want to change past moves.\r
 \par If you are examining a game on the ICS, the behavior of Backward depends on whether WinBoard}{\i\f1  }{\f1 is in }{\f1\uldb Pause}{\v\f1 Pause}{\f1  mode. If Pause mode is off, Backward issues the ICS command}{\b\f1  backward}{\f1 \r
 , which backs up everyone's view of the game and allows you to make a different move. If Pause mode is on, Backward only backs up your local view.\r
 \par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  Forward}}#\r
@@ -560,14 +559,14 @@ rd algebraic chess notation. (You can also get this dialog box by simply startin
 \par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Steps forward through a series of remembered moves (undoing the effect of }{\f1\uldb Backward}{\v\f1\uldb Backward}{\f1 ) or through a game file. The }{\b\f1 >}{\f1 \r
  button is equivalent}{\f1\cf2 , as is turning the mouse wheel away from you}{\f1 .\r
 \par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 If you are examining a game on the ICS, the behavior of Forward depends on whether WinBoard}{\i\f1  }{\f1 is in }{\f1\uldb Pause}{\v\f1 Pause}{\f1 \r
- mode. If Pause mode is off, Forward issues the ICS command}{\b\f1  forward}{\f1 , which moves\r
- everyone's view of the game forward along the current line. If Pause mode is on, Forward only moves your local view forward, and it will not go past the position the game was in when you paused.\r
+ mode. If Pause mode is off, Forward issues the ICS command}{\b\f1  forward}{\f1 , which moves everyone's view of t\r
+he game forward along the current line. If Pause mode is on, Forward only moves your local view forward, and it will not go past the position the game was in when you paused.\r
 \par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
  Back to Start}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  BacktoStart}}}{\f1  Back to Start\r
 \par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Jumps backward to the first remembered position in the game. The }{\b\f1 << }{\f1 button is equivalent.\r
 \par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 \r
-In most modes, Back to Start only lets you look back at old positions; it does not retract moves. This is the case if you are playing against a chess engine, playing or observing \r
-a game on the ICS, or loading a game. If you select Back to Start in any of these situations, you will not be allowed to make a different move. Use }{\f1\uldb Retract Move}{\v\f1 RetractMove}{\f1  or }{\f1\uldb Edit Game}{\v\f1 EditGame}{\f1 \r
+In most modes, Back to Start only lets you look back at old positions; it does not retract moves. This is the case if you are playing against a chess engine, playing or observing a ga\r
+me on the ICS, or loading a game. If you select Back to Start in any of these situations, you will not be allowed to make a different move. Use }{\f1\uldb Retract Move}{\v\f1 RetractMove}{\f1  or }{\f1\uldb Edit Game}{\v\f1 EditGame}{\f1 \r
  if you want to change past moves; or use }{\f1\uldb New Game}{\v\f1 NewGame}{\f1  to start a new game.\r
 \par If you are examining a game on the ICS, the behavior of Back to Start depends on whether WinBoard}{\i\f1  }{\f1 is in }{\f1\uldb Pause}{\v\f1 Pause}{\f1  mode. If Pause mode is off, Backward issues the ICS command }{\b\f1 backward 999999}{\f1 \r
 , which backs up everyone's view of the game to the start and allows you to make different moves. If Pause mode is on, Back to Start only backs up your local view.\r
@@ -575,13 +574,13 @@ a game on the ICS, or loading a game. If you select Back to Start in any of thes
  Forward to End}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  ForwardtoEnd}}}{\f1  Forward to End\r
 \par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Jumps forward to the last position in the game. The }{\b\f1 >>}{\f1  button is equivalent.\r
 \par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 If you are examining a game on the ICS, the behavior of Forward to End depends on whether WinBoard}{\i\f1  }{\f1 is in }{\f1\uldb Pause}{\v\f1 Pause}{\f1 \r
- mode. If Pause mode is off, Forward to End issues the ICS command }{\b\f1 forward 999999}{\f1 , which moves everyone's view of the game forward to the end of the current \r
-line. If Pause mode is on, Forward to End only moves your local view forward, and it will not go past the position the game was in when you paused.\r
+ mode. If Pause mode is off, Forward to End issues the ICS command }{\b\f1 forward 999999}{\f1 , which moves everyone's view of the game forward to the end of the current line\r
+. If Pause mode is on, Forward to End only moves your local view forward, and it will not go past the position the game was in when you paused.\r
 \par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  Revert}}#\r
 {\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  Revert}}}{\f1  Revert\r
 \par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 If you are examining a game on the ICS, issues the ICS command }{\b\f1 revert}{\f1 .\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
- Truncate Game}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  TruncateGame}}}{\f1  Truncate Game\r
+\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  Truncate G\r
+ame}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  TruncateGame}}}{\f1  Truncate Game\r
 \par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Discards all remembered moves of the game beyond the current position. Puts WinBoard into }{\f1\uldb Edit Game}{\v\f1 EditGame}{\f1  mode if it was not there already.\r
 \r
 \par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  Move Now}}\r
@@ -604,35 +603,33 @@ If you are playing a game on the ICS, the board is always oriented at the start
 flipViewOption}{\f1  command line option.\r
 \par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf11\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
 \f1\ul\cf11 Swap Clocks}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\ul\cf11 Swap Clocks}}}{\f1\cf11  }{\f1\ul\cf11 Swap Clocks}{\f1\cf11 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf11 \r
-Interchanges the position of the white and black clocks on the screen. Intended for manually-operated computer-computer games, where the monitor is standing to the side of the playing board, to make sure that the operator sees the time of his own machine \r
-on his side of the table. Note that it is possible to adjust the clocks in steps of one minute, by left- (decrement) or right-clicking (increment) it with the mouse in \ldblquote Edit Game\rdblquote \r
- mode. (Clicking the clocks in other modes is interpreted as claiming the flag.)\r
+\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf11 Interchanges the position of the white and black clocks on the screen. Intended for manually-operated computer-computer games, where the monitor is standing to t\r
+he side of the playing board, to make sure that the operator sees the time of his own machine on his side of the table. Note that it is possible to adjust the clocks in steps of one minute, by left- (decrement) or right-clicking (increment) it with the mo\r
+use in \ldblquote Edit Game\rdblquote  mode. (Clicking the clocks in other modes is interpreted as claiming the flag.)\r
 \par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\ul\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\super K}{\r
  General Options}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\super #}{ GeneralOptions}}}{\f1\ul General}{\f1 \r
 \par }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  Always On Top}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \r
 \f5\fs20\cgrid {\cs58\f1\super #}{\f1  AlwaysOnTop}}}{\f1  Always On Top\r
 \par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 If this option is on, WinBoard sets its chessboard to be a }{\i\f1 topmost}{\f1  window, meaning that it always appears on top of all ordinary windows on the screen.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  Always\r
- Queen}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  AlwaysQueen}}}{\f1  Always Queen\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 \r
-If Always Queen is off, WinBoard brings up a dialog box whenever you move a pawn to the last rank, asking what piece you want to promote it to. If the option is on, your pawns are always promoted to queens. Your opponent can still underpromote, however.\r
-\r
+\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
+ Always Queen}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  AlwaysQueen}}}{\f1  Always Queen\r
+\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 If Always Queen is off, WinBoard brings up a dialog box whenever you move a pawn to the last rank, asking what piece you want\r
+ to promote it to. If the option is on, your pawns are always promoted to queens. Your opponent can still underpromote, however.\r
 \par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
  Animate Dragging}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  AnimateDragging}}}{\f1  Animate Dragging\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 \r
-If Animate Dragging is on while you are dragging a piece with the mouse, an image of the piece follows the mouse cursor. If Animate Dragging is off, there is no visual feedback while you are\r
+\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 If Animate Dragging is on while\r
+ you are dragging a piece with the mouse, an image of the piece follows the mouse cursor. If Animate Dragging is off, there is no visual feedback while you are\r
 \par dragging a piece, but if Animate Moving is on, the move will be animated when it is complete.\r
 \par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
  Animate Moving}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  AnimateMoving}}}{\f1  Animate Moving\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 If Animate Moving is on, all piece moves are animated.  An image of the piece is shown moving from the old square to the \r
-new square when the move is completed (unless the move was already animated by Animate Dragging). If Animate Moving is off, a moved piece instantly disappears from its old square and reappears on its new square when the move is complete.\r
+\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 \r
+If Animate Moving is on, all piece moves are animated.  An image of the piece is shown moving from the old square to the new square when the move is completed (unless the move was already animated by Animate\r
+ Dragging). If Animate Moving is off, a moved piece instantly disappears from its old square and reappears on its new square when the move is complete.\r
 \par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  Auto Flag}\r
 }#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  AutoflagCmd}}}{\f1  Auto Flag\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 \r
-If this option is on and one player runs out of time before the other, WinBoard will automatically call his flag, claiming a win on time. In ICS mode, Auto Flag will only call your opponent's flag, not yours, and the ICS may award you \r
-a draw instead of a win if you have insufficient mating material. On most chess servers, you can now do}{\b\f1  set autoflag 1 }{\f1 \r
-instead and have the server call the flag. In local chess engine mode, WinBoard may call either player's flag and will not take material into account.\r
+\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 If this option is on and one player runs out of time before the o\r
+ther, WinBoard will automatically call his flag, claiming a win on time. In ICS mode, Auto Flag will only call your opponent's flag, not yours, and the ICS may award you a draw instead of a win if you have insufficient mating material. On most chess serve\r
+rs, you can now do}{\b\f1  set autoflag 1 }{\f1 instead and have the server call the flag. In local chess engine mode, WinBoard may call either player's flag and will not take material into account.\r
 \par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\b\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\super K}{ Auto Flip View}}#{\footnote\ftnalt \r
 \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\super #}{ AutoFlipView}}}{\b  Auto Flip View\r
 \par }{If this option is on when you}{\f1  start a game, the board will be automatically oriented so that your pawns move from the bottom of the window towards the top.}{\r
@@ -641,17 +638,17 @@ instead and have the server call the flag. In local chess engine mode, WinBoard
 \par }{If this}{\v autoFlipViewOption}{ option is on, whenever a new game begins, the chessboard window will be deiconized (if necessary) and raised to the top of the stack of windows on your screen.\r
 \par }\pard\plain \s2\li120\sb80\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\super K}{ Blindfold}}#\r
 {\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\super #}{ BlindfoldCmd}}}{Blindfold\r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {If Blindfol\r
-d is on, WinBoard displays a blank board. Moves can still be entered with the mouse, either by dragging the (invisible) piece or clicking the starting and ending square. You can also enter your move by typing it on the keyboard}{\f1 .}{\r
+\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {If Blindfold is on, WinBoard displays a blank board. Moves can still be entered with the mouse, e\r
+ither by dragging the (invisible) piece or clicking the starting and ending square. You can also enter your move by typing it on the keyboard}{\f1 .}{\r
 \par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
  Highlight Dragging}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  HighlightDragging}}}{\f1  Highlight Dragging\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 \r
-If Highlight Dragging is on while you are dragging a piece with the mouse, the starting square and the square that the mouse cursor is over are highlighted. This option works even if Animate Dragging is off.\r
+\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 If Highlight Dragging is on while you are dragging\r
+ a piece with the mouse, the starting square and the square that the mouse cursor is over are highlighted. This option works even if Animate Dragging is off.\r
 \par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf6\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
 \f1\cf6 Extended PGN Info}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf6 ExtendedPGNInfo}}}{\f1\cf6  Extended PGN Info\r
 \par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf6 \r
-The PGN will contain the engine search depth, score and time for each move where the depth is non-zero, as a comment behind the move if this option is on. Works only when \ldblquote Show Thinking\rdblquote  is enabled. The rec\r
-orded time is the time reported by the engine.\r
+The PGN will contain the engine search depth, score and time for each move where the depth is non-zero, as a comment behind the move if this option is on. Works only when \ldblquote Show Thinking\rdblquote \r
+ is enabled. The recorded time is the time reported by the engine.\r
 \par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf6\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
 \f1\cf6 Extra Info In Move History}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf6 ExtraInfoInMoveHistory}}}{\f1\cf6  Extra Info In Move History\r
 \par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf6 Same as above, but in move-history window. \r
@@ -661,9 +658,8 @@ orded time is the time reported by the engine.
  or }{\f1\uldb Back to Start}{\v\f1 BackToStart}{\f1 , the starting and ending squares of the last move to be }{\i\f1 unmade}{\f1  are highlighted.\r
 \par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
  Periodic Updates}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  PeriodicUpdatesCmd}}}{\f1  Periodic Updates\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 \r
-If Periodic Updates is on, the Analysis window is updated every two seconds. If not, it is updated only when the best move found changes. The Analysis window currently works only with Crafty, and Periodic Updates may not work with all versions of Crafty.\r
-\r
+\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 If Per\r
+iodic Updates is on, the Analysis window is updated every two seconds. If not, it is updated only when the best move found changes. The Analysis window currently works only with Crafty, and Periodic Updates may not work with all versions of Crafty.\r
 \par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\pnrnot1\adjustright \f5\fs20\cgrid {\r
 \cs58\f1\revised\super\revauth1\revdttm-1506646559 K}{\f1\revised\revauth1\revdttm-1506646559  Ponder Next Move}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\pnrnot1\adjustright \f5\fs20\cgrid {\r
 \cs58\f1\revised\super\revauth1\revdttm-1506646559 #}{\f1\revised\revauth1\revdttm-1506646559  PonderNextMoveCmd}}}{\f1  Ponder Next Move\r
@@ -675,9 +671,9 @@ If this option is on, when WinBoard wants to display a message just before exiti
 \f1\uldb debugMode}{\v\f1 debugMode}{\f1  is on, however, the message will appear in the debug log.\r
 \par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
  Popup Move Errors}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  PopupMoveErrorsCmd}}}{\f1  Popup Move Errors\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 \r
-If this option is off, when you make an error in moving (such as attempting an illegal move or moving the wrong color piece), the error message is displayed in the message area. If the option is on, move errors are displayed in small popup windows like ot\r
-her errors. You can dismiss an error popup either by clicking its OK button or by clicking anywhere on the board, including downclicking to start a move.\r
+\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 If this option is off, when you make an error in moving (such as attempting an illegal move or mo\r
+ving the wrong color piece), the error message is displayed in the message area. If the option is on, move errors are displayed in small popup windows like other errors. You can dismiss an error popup either by clicking its OK button or by clicking anywhe\r
+re on the board, including downclicking to start a move.\r
 \par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
  Show Button Bar}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  ShowButtonBarCmd}}}{\f1  Show Button Bar\r
 \par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 If Show Button Bar is on, WinBoard displays on-screen }{\f1\uldb buttons}{\v\f1 BUTTONS}{\f1 \r
@@ -688,16 +684,16 @@ her errors. You can dismiss an error popup either by clicking its OK button or b
 \par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
  Show Thinking}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  ShowThinkingCmd}}}{\f1  Show Thinking\r
 \par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 If this option is set, WinBoard displays the chess engine\rquote \r
-s current search depth and its notion of the score and best line of play from the current position as it is thinking.\r
- The score indicates how many pawns ahead (or if negative, behind) the engine thinks it is. In matches between two machines, the score is prefixed by W or B to indicate whether it is showing White's thinking or Black's.\r
+s current search depth and its notion of the score and best line of play from the current position as it is thinking. The score indicates \r
+how many pawns ahead (or if negative, behind) the engine thinks it is. In matches between two machines, the score is prefixed by W or B to indicate whether it is showing White's thinking or Black's.\r
 \par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
  Test Legality}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  TestLegalityCmd}}}{\f1  Test Legality\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 \r
-If Test Legality is on, WinBoard tests whether the moves you enter with the mouse or read from game files are legal, and displays an error if they are not. Turn this option off if you are playing a chess variant that WinBoard does not unders\r
-tand. (Bughouse, suicide, and wild variants where the king may castle after starting on the }{\b\f1 d}{\f1  file are generally supported with Test Legality on. }{\f1\cf11 \r
-The same holds for variants with non-FIDE pieces, like shatranj, xangqi, shogi, gothic, capablanca, courier, k\r
-nightmate: WinBoard knows how all pieces occurring in those variants move. Falcon, cylinder and berolina are only partly supported, though, and the latter two should definitely be played with legality testing off, and falcon uses a wildcard piece for the \r
-Falcons, so it considers any move of them legal, but might miss checkmates that involve a Falcon. So you should not play it with claim verification switched on.}{\f1 )\r
+\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 If Tes\r
+t Legality is on, WinBoard tests whether the moves you enter with the mouse or read from game files are legal, and displays an error if they are not. Turn this option off if you are playing a chess variant that WinBoard does not understand. (Bughouse, sui\r
+cide, and wild variants where the king may castle after starting on the }{\b\f1 d}{\f1  file are generally supported with Test Legality on. }{\f1\cf11 \r
+The same holds for variants with non-FIDE pieces, like shatranj, xangqi, shogi, gothic, capablanca, courier, knightmate: WinBoard k\r
+nows how all pieces occurring in those variants move. Falcon, cylinder and berolina are only partly supported, though, and the latter two should definitely be played with legality testing off, and falcon uses a wildcard piece for the Falcons, so it consid\r
+ers any move of them legal, but might miss checkmates that involve a Falcon. So you should not play it with claim verification switched on.}{\f1 )\r
 \par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf6\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
 \f1\cf6 Hide Thinking From Human}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf6 HideThinkingFromHuman}}}{\f1\cf6  Hide Thinking From Human\r
 \par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf6 An alternative to suppressing the Thinking Output in the display above the board by switching \ldblquote Show Thinking\rdblquote \r
@@ -721,13 +717,12 @@ bishop, Chancellor and the wildcard Lance exist in all sizes from Petite to Bulk
 \par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Lets you change the colors WinBoard is using to draw the board and pieces.\r
 \par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf11\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
 \f1\cf11 All White}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf11 AllWhite}}}{\f1\cf11  All White\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf11 \r
-Uses the representation of the white pieces (a filled-in black outline) also for the black pieces (where you can fill them with another color to distinguish them). If you do not cho\r
-ose a very dark color for the black pieces, they look very ugly without outline, and using this option can fix that.\r
+\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf11 Uses the representation of the white pieces (a filled-in black outline) also for the black pieces (where you can fill them with another color to \r
+distinguish them). If you do not choose a very dark color for the black pieces, they look very ugly without outline, and using this option can fix that.\r
 \par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf11\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
 \f1\cf11 Flip Black}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf11 FlipBlack}}}{\f1\cf11  Flip Black\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf11 Displays the black pieces upside down (or the white pieces in \ldblquote Flip View\rdblquote ). This is useful in Shogi,\r
- when you want to use the traditional Japanese representation of the pieces.\r
+\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf11 Displays the black pieces upside down (or the white pieces in \ldblquote Flip View\rdblquote \r
+). This is useful in Shogi, when you want to use the traditional Japanese representation of the pieces.\r
 \par }\pard\plain \s5\li115\sb80\sl-240\slmult0\nowidctlpar\outlinelevel4\adjustright \f5\fs20\ul\cgrid {\b \r
 \par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\ul\cf6\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\super K}{ }{\r
 \f1\ul\cf6 Adjudications}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\super #}{ }{\f1\ul\cf6 Adjudications}}}{\f1\ul\cf6 Adjudications\r
@@ -741,8 +736,8 @@ ose a very dark color for the black pieces, they look very ugly without outline,
 \par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf6\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
 \f1\cf6 Adjudicate Draw Moves}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf6 AdjudicateDrawMoves}}}{\f1\cf6  Adjudicate Draw Moves\r
 \par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf6 \r
-Adjudicate a draw after the given number of moves, to prevent games from dragging on forever if two engines in a dead-drawn position, conspire to avoid 50-move draws. This and the folowing options are only active in \ldblquote Two Machines\rdblquote \r
- mode.\r
+Adjudicate a draw after the given number of moves, to prevent games from dragging on forever if two engines in a dead-drawn position, conspire to avoid 50-move draws. This and the folowing options are only active in \ldblquote Two Machines\rdblquote  m\r
+ode.\r
 \par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf6\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
 \f1\cf6 Adjudicate Loss Threshold}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf6 AdjudicateLossThreshold}}}{\f1\cf6  Adjudicate Loss Threshold\r
 \par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf6 Adjudicate the game as a loss when both engines agree that the (negative) score is  below the given threshold for the duration of 6 consecutive plies.\r
@@ -752,34 +747,34 @@ Adjudicate a draw after the given number of moves, to prevent games from draggin
 Test Legality\rdblquote  to be on in order to work.\r
 \par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf11\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
 \f1\cf11 Detect Mates}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf11 DetectMates}}}{\f1\cf11  Detect Mates\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf11 Let WinB\r
-oard detect checkmate and stalemate, even before the engine gets the chance to claim it. Useful with buggy engines, that exit without a claim, or just hang. Needs \ldblquote Test Legality\rdblquote  to be on in order to work.\r
+\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf11 \r
+Let WinBoard detect checkmate and stalemate, even before the engine gets the chance to claim it. Useful with buggy engines, that exit without a claim, or just hang. Needs \ldblquote Test Legality\rdblquote  to be on in order to work.\r
 \par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf11\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
 \f1\cf11 Draw If Insufficient Material}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf11 DrawIfInsufficientMaterial}}}{\f1\cf11  Draw If Insufficient Material\r
 \par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf11 \r
 If this option is on, WinBoard will recognize KBKB positions with equally colored Bishops, KBK, KNK, and KK positions as draws, even before the engine can claim them. Needs \ldblquote Test Legality\rdblquote  to be on in order to work.\r
 \par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf11\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
 \f1\cf11 Adjudicate Trivial Draws}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf11 AdjudicateTrivialDraws}}}{\f1\cf11  Adjudicate Trivial Draws\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf11 If this option is on, KBKB (with B on unlike color), KBKN, KNKN, KNNK, KRKR and KQKQ positions will be adjudicated \r
-draw after 6 ply. For KQKQ this is not really sound, and in the future it might be taken out of this option. But as long as tablebase adjudications are not implemented, it seems best to group this end-game with the trivial draws. Needs \ldblquote \r
-Test Legality\rdblquote  to be on in order to work.\r
+\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf11 If this option is on, KBKB (with B on unlike color), KBKN, KNKN, KNNK, KRKR and KQKQ positions will be adjudicated draw after 6 ply. For KQKQ this i\r
+s not really sound, and in the future it might be taken out of this option. But as long as tablebase adjudications are not implemented, it seems best to group this end-game with the trivial draws. Needs \ldblquote Test Legality\rdblquote \r
+ to be on in order to work.\r
 \par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf11\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
 \f1\cf11 N-Move Rule}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf11 N-MoveRule}}}{\f1\cf11  N-Move Rule\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf11 Here you can set the number of reversible moves (non-pawn, non-capture) after which WinBoard should adjudicate a g\r
-ame as draw. Engine draw claims are always consider ed valid after 50 moves (in the context of \ldblquote Verify Claims\rdblquote \r
+\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf11 \r
+Here you can set the number of reversible moves (non-pawn, non-capture) after which WinBoard should adjudicate a game as draw. Engine draw claims are always consider ed valid after 50 moves (in the context of \ldblquote Verify Claims\rdblquote \r
 ), but you can set a different value here to either give the engine more leeway if it wants to play on, or test its claiming capabilities, or set it to a smaller value if you are impatient.\r
 \par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf11\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
 \f1\cf11 N-Fold Repetition Rule}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf11 N-FoldRepetitionRule}}}{\f1\cf11  N-Fold Repetition Rule\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf11 Here you can set the number of repetitions of the same position that should occur in order for WinBoard to adjudicate the game as draw. En\r
-gine draw claims are always consider ed valid after 3 repetitions (in the context of \ldblquote Verify Claims\rdblquote \r
-) , but you can set a different value here to either give the engine more leeway if it wants to play on, or test its claiming capabilities, or set it to 2 if you are impatient. (Do not set it to 1!)\r
+\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf11 \r
+Here you can set the number of repetitions of the same position that should occur in order for WinBoard to adjudicate the game as draw. Engine draw claims are always consider ed valid after 3 repetitions (in the context of \ldblquote Verify Claims\r
+\rdblquote ) , but you can set a different value here to either give the engine more leeway if it wants to play on, or test its claiming capabilities, or set it to 2 if you are impatient. (Do not set it to 1!)\r
 \par }\pard\plain \s5\li115\sb80\sl-240\slmult0\nowidctlpar\outlinelevel4\adjustright \f5\fs20\ul\cgrid {\b \r
 \par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\ul\cf6\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\super K}{ }{\r
 \f1\ul\cf6 Engine Settings}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\super #}{ }{\f1\ul\cf6 Engine Settings}}}{\f1\ul\cf6 Engine Settings\r
 \par }{\cs58\f1\cf6\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\f1\cf6 Polyglot Directory}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\r
 \nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf6 PolyglotDirectory}}}{\f1\cf6  Polyglot Directory\r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf6 If WinBoard knows where to find Polyglot, you can install UCI engines as if they were WinBoard \r
-engines, and WinBoard will automatically invoke Polyglot as an adapter to run them.\r
+\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf6 \r
+If WinBoard knows where to find Polyglot, you can install UCI engines as if they were WinBoard engines, and WinBoard will automatically invoke Polyglot as an adapter to run them.\r
 \par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf6\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
 \f1\cf6 Hash Size}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf6 HashSize}}}{\f1\cf6  Hash Size, }{\cs58\f1\cf6\super K{\footnote\ftnalt \pard\plain \r
 \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\f1\cf6 EGTB Path}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf6 \r
@@ -788,41 +783,40 @@ EGTBPath}}}{\f1\cf6  EGTB Path, }{\cs58\f1\cf6\super K{\footnote\ftnalt \pard\pl
 \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\f1\cf6 Opening Book}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf6 OpeningBook}}}{\f1\cf6  Opening Book, }{\r
 \cs58\f1\cf6\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\f1\cf6 Number of CPUs}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\r
 \nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf6 Number of CPUs}}}{\f1\cf6  Number of CPUs\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf6 These are options that UCI engines expect to be specified. }{\f1\cf2 WinBoard protocol now also allows \r
-native WinBoard engines to request similar information, so it might be used for these engines as well. The memory size specified by the WinBoard-protocol \lquote memory\rquote \r
- command is the sum of the hash and EGTB cache sizes. The specified opening book, when enabled through the \lquote Use Book\rquote \r
+\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf6 These are options that UCI engines expect to be specified. }{\f1\cf2 \r
+WinBoard protocol now also allows native WinBoard engines to request similar information, so it might be used for these engines as well. The memory size specified by the WinBoard-protocol \lquote memory\rquote  \r
+command is the sum of the hash and EGTB cache sizes. The specified opening book, when enabled through the \lquote Use Book\rquote \r
  check box, will be used as GUI book for engines that do not have their own book (as indicated by the check boxes). It must be a book in Polyglot format.}{\f1\cf6 \r
 \par }\pard\plain \s5\li115\sb80\sl-240\slmult0\nowidctlpar\outlinelevel4\adjustright \f5\fs20\ul\cgrid {\b \r
 \par }{\cs58\b\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\super K}{ ICS Options}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\r
 \cs58\super #}{ ICSOptions}}}{\b ICS\r
 \par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
  Auto Comment}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  AutoCommentCmd}}}{\f1  Auto Comment\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 \r
-If Auto Comment is on, any remarks made on ICS while you are observing or playing a game are recorded as a comment on the current move. This includes remarks made with the ICS commands }{\b\f1 say, tell, whisper, }{\f1 and }{\b\f1 kibitz}{\f1 \r
-. Limitation: remarks that you type yourself are not \r
+\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 If Auto Comment is on, any remarks made on ICS while you are observing or playing a game are recorded as a comment on the current move.\r
+ This includes remarks made with the ICS commands }{\b\f1 say, tell, whisper, }{\f1 and }{\b\f1 kibitz}{\f1 . Limitation: remarks that you type yourself are not \r
 \par recognized; WinBoard scans only the output from ICS, not the input you type to it.\r
 \par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
  Auto Observe}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  AutobsCmd}}}{\f1  Auto Observe\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 If Auto Observe is on and you add a player to your }{\b\f1 gnotify}{\f1  list on ICS, WinBoard will automatically observe all of\r
- that player's games, unless you are doing something else (such as observing or playing a game of your own) when one starts. On most chess servers, you can now do }{\b\f1 follow }{\b\i\f1 player}{\f1 \r
- instead, and the server will automatically observe all of }{\b\i\f1 player\rquote s}{\f1  games.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  Ge\r
-t Move List}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  GetMoveListCmd}}}{\f1  Get Move List\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 If Get Move List is on, whenever WinBoard}{\i\f1  }{\f1 \r
-receives the first board of a new ICS game (or a different ICS game from the one it is currently displaying), it retrieves the list of past moves from the server. You ca\r
-n then review the moves with the Forward and Backward commands or save them with Save Game. You might want to turn off this option if you are observing several blitz games at once, to keep from wasting time and network bandwidth fetching the move lists ov\r
-er and over. If you turn this option on while a game is in progress, WinBoard}{\i\f1  }{\f1 immediately fetches the current move list.\r
+\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 If Auto Observe is on and you add a player to your }{\b\f1 gnotify}{\f1 \r
+ list on ICS, WinBoard will automatically observe all of that player's games, unless you are doing something else (such as observing or playing a game of your own) when one starts. On most chess servers, you can now do }{\b\f1 follow }{\b\i\f1 player}{\r
+\f1  instead, and the server will automatically observe all of }{\b\i\f1 player\rquote s}{\f1  games.\r
+\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
+ Get Move List}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  GetMoveListCmd}}}{\f1  Get Move List\r
+\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 If Get Move List is on, whenever WinBoard}{\i\f1  }{\f1 receives the first board of a new ICS game (or a di\r
+fferent ICS game from the one it is currently displaying), it retrieves the list of past moves from the server. You can then review the moves with the Forward and Backward commands or save them with Save Game. You might want to turn off this option if you\r
+ are observing several blitz games at once, to keep from wasting time and network bandwidth fetching the move lists over and over. If you turn this option on while a game is in progress, WinBoard}{\i\f1  }{\f1 immediately fetches the current move list.\r
+\r
 \par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
  Local Line Editing}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  LocalLineEditing}}}{\f1  Local Line Editing\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 If Local Line Editing is }{\b\f1 on}{\f1 , your machine handles echoing, backspacing, et\r
-c., for the characters that you type into the ICS Interaction window. Output is forwarded to the ICS only when you hit Enter.The Enter key produces a newline character, also known as Ctrl+J, \\\r
-n, LF, linefeed, or decimal ASCII code 10. In this mode you can force a control character into the edit buffer by preceding it with Ctrl+Q (\ldblquote quote\rdblquote \r
-); however, the edit buffer will not accept certain control characters even when they are quoted in this way. You can force a control character to be sent immediately to ICS, bypassing the edit buffer, by preceding it with Ctrl+S (\ldblquote send\r
-\rdblquote ).\r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 \r
-WinBoard keeps a history of lines you recently typed in Local Line Editing mode. You can bring back old lines by pressing the cursor up key in the text entry box. Press the cursor down key to go back down to newer lines.\r
-\par If Local Line Editing is }{\b\f1 off}{\f1 , all characters are sent to ICS as you type them. The Enter key produces a carriage return character, also known as Ctrl+M, \\r, CR, or decimal ASCII code 13. Use Ctrl+Backspace if you need the AS\r
-CII DEL character. You can enter any character code by holding down the Alt key and typing its decimal value (always beginning with 0) on the numeric keypad; this is a little-known standard feature of Windows.\r
+\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 If Local Line Editing is }{\b\f1 on}{\f1 \r
+, your machine handles echoing, backspacing, etc., for the characters that you type into the ICS Interaction window. Output is forwarded to the ICS only when you hit Enter.The Enter key produces a newline character, also known as Ctrl+J, \\\r
+n, LF, linefeed, or decimal ASCII code 10. In this mode you can force a control character into the edit buffer by preceding it with Ctrl+Q (\ldblquote quote\rdblquote ); however, the edit buffer will not accept certain con\r
+trol characters even when they are quoted in this way. You can force a control character to be sent immediately to ICS, bypassing the edit buffer, by preceding it with Ctrl+S (\ldblquote send\rdblquote ).\r
+\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 WinBoard keeps a history of lines you recently typed in Local Line Edit\r
+ing mode. You can bring back old lines by pressing the cursor up key in the text entry box. Press the cursor down key to go back down to newer lines.\r
+\par If Local Line Editing is }{\b\f1 off}{\f1 , all characters are sent to ICS as you type them. The Enter key produces a carriage return character, also known as Ctrl+M, \\\r
+r, CR, or decimal ASCII code 13. Use Ctrl+Backspace if you need the ASCII DEL character. You can enter any character code by holding down the Alt key and typing its decimal value (always beginning with 0) on \r
+the numeric keypad; this is a little-known standard feature of Windows.\r
 \par In both modes, if WinBoard}{\i\f1 \rquote s }{\f1 internal telnet protocol implementation is active, it translates all \\n characters to the standard telnet end-of-line sequence \\r\\n just before sending them out to ICS; see }{\f1\uldb telnetProgram}{\r
 \v\f1 telnetProgram}{\f1 .\r
 \par It is generally not a good idea to turn off this option while connected to ICS. If you are tempted to do so because everything you type is being echoed an extra time, see the paragraph about extra echoes under }{\f1\uldb LIMITATIONS}{\v\f1 LIMITATIONS}{\r
@@ -843,13 +837,13 @@ premoveBlackText}{.
  seconds.  For ICS games with time controls that include an increment, the alarm will sound each time the clock counts down to the }{\uldb icsAlarmTime}{\v icsAlarmTime}{.\r
 \par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
  ICS Interaction Colors}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  ICSInteractionColors}}}{\f1  ICS Interaction Colors\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Lets you change the colors and type styles that WinBoard uses t\r
-o distinguish between different types of messages in the ICS Interaction window. The types distinguished are: shout, sshout, channel 1 tell, other channel tell, kibitz (or whisper), personal tell (or new message notification), challenge, request (includin\r
-g abort, adjourn, draw, pause, and takeback), seek, and normal (all other messages).\r
+\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 \r
+Lets you change the colors and type styles that WinBoard uses to distinguish between different types of messages in the ICS Interaction window. The types distinguished are: shout, sshout, channel 1 tell, other channel tell, kibitz (or whi\r
+sper), personal tell (or new message notification), challenge, request (including abort, adjourn, draw, pause, and takeback), seek, and normal (all other messages).\r
 \par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  Fonts}}#\r
 {\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  Fonts}}}{\f1  }{\f1\ul Fonts}{\f1 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Lets you change the fonts WinBoard is using.  The clock font, message font and coordinates font are specific to each board size.  The tags font, co\r
-mments font and ICS Interaction font are not dependent on the current size of the board.  The \ldblquote Revert to Defaults\rdblquote \r
+\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Lets you change the fonts WinBoard is using.  The clock font, mess\r
+age font and coordinates font are specific to each board size.  The tags font, comments font and ICS Interaction font are not dependent on the current size of the board.  The \ldblquote Revert to Defaults\rdblquote \r
  button will reset the clock font, message font and coordinates font for the current board size, and will set the tags font, message font and Ics Interaction font for all board sizes.\r
 \par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  Sounds}}#\r
 {\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  Sounds}}}{\f1  }{\f1\ul Sounds}{\f1 \r
@@ -1002,12 +996,12 @@ Save Settings on Exit}{\v\f1 SaveSettingsOnExit}{\f1 , so most people will not n
 \par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Most options have two names, a long one that is easy to read and a short one that is easy to type. To turn on a boolean (true/false) option }{\i\f1 opt}{\f1 \r
 , you can just give its short name preceded by a minus sign or slash (-}{\i\f1 opt}{\f1  or /}{\i\f1 opt}{\f1 ); to turn one off, prefix the short name by an \ldblquote x\rdblquote  or an extra minus sign (-x}{\i\f1 opt}{\f1  or /-}{\i\f1 opt}{\f1 \r
 ). To set any other kind of option, or to set a boolean option using its long name, give the value after the name, separated by a space, colon, or equal sign. (-}{\i\f1 opt}{\f1  23 or /}{\i\f1 option}{\f1 \r
-:true). If a string option contains spaces or special characters, enclose it in double quotes and use the \\ quoting convention of C to name the special characters. Alternatively, you can enclose a string value in curly braces (/opt=\{string\}), a\r
-s long as the value does not contain a closing curly brace. If a filename option contains spaces, enclose it in either single or double quotes. In filename options, the \\\r
+:true). If a string option contains spaces or special characters, enclose it in double quotes and use the \\ quoting convention of C to name the special characters. Alternatively, you can enclose a string value in curly braces (/opt=\{string\}\r
+), as long as the value does not contain a closing curly brace. If a filename option contains spaces, enclose it in either single or double quotes. In filename options, the \\\r
  character is not treated specially, so use single quotes around the outside of the value if it has double quotes inside (and vice versa).\r
-\par When you start WinBoard, it will pop up the Startup dialog box unless you provide sufficient options on the command line for WinBoard to determine which major mode to be in and what engines to use or che\r
-ss server to connect to. To bypass this box, you must at minimum give one of the three options }{\f1\uldb /cp}{\v\f1 cp}{\f1 , /}{\f1\uldb ics}{\v\f1 ics}{\f1 , or /}{\f1\uldb ncp}{\v\f1 ncp}{\f1 .  If you give the /cp option, you must also give the /}{\r
-\f1\uldb fcp}{\v\f1 fcp}{\f1  and /}{\f1\uldb scp}{\v\f1 scp}{\f1  options. If you give the /ics option, you must also give the /}{\f1\uldb icshost}{\v\f1 icshost}{\f1  option.\r
+\par When you start WinBoard, it will pop up the Startup dialog box unless you provide sufficient options on the command line for WinBoard to determine which major mode to be in and what engines to use or chess server to\r
+ connect to. To bypass this box, you must at minimum give one of the three options }{\f1\uldb /cp}{\v\f1 cp}{\f1 , /}{\f1\uldb ics}{\v\f1 ics}{\f1 , or /}{\f1\uldb ncp}{\v\f1 ncp}{\f1 .  If you give the /cp option, you must also give the /}{\f1\uldb fcp}{\r
+\v\f1 fcp}{\f1  and /}{\f1\uldb scp}{\v\f1 scp}{\f1  options. If you give the /ics option, you must also give the /}{\f1\uldb icshost}{\v\f1 icshost}{\f1  option.\r
 \par }\pard\plain \s29\fi-240\li360\sb60\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\uldb Chess Engine Options}{\v\f1 ChessEngineOptions}{\f1 \r
 \par }{\f1\uldb UCI Engine Support                  !NEW!}{\v\f1 UCIEngineSupport}{\f1 \r
 \par }{\f1\uldb Internet Chess Server Options}{\v\f1 InternetChessServerOptions}{\f1 \r
@@ -1037,15 +1031,15 @@ moves}{\f1
 {\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  inc}}}{\f1 /inc }{\b0\f1 or}{\f1  }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\r
 \nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  timeIncrement}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  timeIncrement}}}{\f1 /timeIncrement }{\i\f1 seconds\r
 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 If this option is specified, movesPerSession is ignored. Instead, \r
-after each player's move, timeIncrement seconds are added to his clock. Use -timeIncrement 0 if you want to require the entire game to be played in one timeControl period, with no increment. Default: -1, which specifies movesPerSession mode.\r
+\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 If this option is specified, movesPerSession is ignored. Instead\r
+, after each player's move, timeIncrement seconds are added to his clock. Use -timeIncrement 0 if you want to require the entire game to be played in one timeControl period, with no increment. Default: -1, which specifies movesPerSession mode.\r
 \par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  clock }}#\r
 {\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  clock }}}{\f1  /clock }{\b0\f1 or }{\f1 /xclock}{\b0\f1 , or}{\f1  }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \r
 \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  clockMode}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  clockMode}}}{\f1 \r
  /clockMode }{\i\f1 true|false\r
 \par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 \r
-Determines whether or not to display the chess clocks. If clockMode is False, the clocks are not shown, but the side that is to play next is still highlighted. Also, unless searc\r
-hTime is set, the chess engine still keeps track of the clock time and uses it to determine how fast to make its moves.\r
+Determines whether or not to display the chess clocks. If clockMode is False, the clocks are not shown, but the side that is to play next is still highlighted. Also, unless sea\r
+rchTime is set, the chess engine still keeps track of the clock time and uses it to determine how fast to make its moves.\r
 \par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  st}}#\r
 {\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  st}}}{\f1  /st }{\b0\f1 or}{\f1  }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\r
 \nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  searchTime }}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  searchTime }}}{\f1  /searchTime }{\i\f1 \r
@@ -1111,8 +1105,9 @@ saveGameFile}{\v\f1 saveGameFile}{\f1  option is set, a move record for the matc
 \par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Provided for backward compatibility. If true and matchGames=0, sets matchGames=1.\r
 \par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf11\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
 \f1\cf11 matchPause}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf11 matchPause}}}{\f1\cf11  /matchPause }{\i\f1\cf11 number}{\f1\cf11 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf11 Sets the length of the pause between games in match mode to }{\i\f1\cf11 number}{\f1\cf11  msec. Default value is 10000, i.e. 10 sec. (If this pause i\r
-s too short, engines not implementing \lquote ping\rquote  will sometimes send the last move of their previous game only when a new game has started, at which time the move is illegal, and causes them to forfeit the game.)\r
+\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf11 Sets the length of the pause between games in match mode to }{\i\f1\cf11 number}{\f1\cf11 \r
+ msec. Default value is 10000, i.e. 10 sec. (If this pause is too short, engines not implementing \lquote ping\rquote \r
+ will sometimes send the last move of their previous game only when a new game has started, at which time the move is illegal, and causes them to forfeit the game.)\r
 \par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  fd}}#\r
 {\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  fd }}}{\f1  /fd }{\b0\f1 or}{\f1  }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\r
 \nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  firstDirectory}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  firstDirectory}}}{\f1  /firstDirectory }{\i\f1 dir\r
@@ -1126,26 +1121,25 @@ s too short, engines not implementing \lquote ping\rquote  will sometimes send t
 {\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\cf11\super K}{\f1\cf11  secondChessProgram }}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \r
 \f5\fs20\cgrid {\cs58\f1\cf11\super #}{\f1\cf11  secondChessProgram}{\f1  }}}{\f1  /secondChessProgram }{\i\f1 command}{\cs58\f1\super  }{\f1 \r
 \par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 \r
-Names of the chess engines and working directories in which they are to be run. The second chess engine is started only in Two Machines (match) mode. These arguments are parsed as filenames; that is, the \\\r
- character is interpreted literally, not as a C-style escape.\r
+Names of the chess engines and working directories in which they are to be run. The second chess engine is started only in Two Machines (match) mode. These arguments are parsed as filenames; that is, the \\ character is interpr\r
+eted literally, not as a C-style escape.\r
 \par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 The }{\i\f1 dir}{\f1 \r
- argument specifies the initial working directory for the chess engine. It should usually be the directory where the engine and its working files are installed. If }{\i\f1 dir}{\f1 \r
- is not an absolute pathname, it is interpreted relative to the directory from which WinBoard.exe itself was loaded. The }{\i\f1 dir}{\f1 \r
- argument is ignored if the chess engine is being run on a remote machine (see firstHost and secondHost below). The default value for }{\i\f1 dir }{\f1 "", meaning that the chess engine is expected to be installed in the same directory as WinBoard.\r
-\par The }{\i\f1 command}{\f1  argument is actually the command line to the chess engine, so if the engine itself needs command line arguments, you can include them by enclosing }{\i\f1 command}{\f1 \r
- in single or double quotes. If the engine name or an engine argument has a space in it, use single quotes around the whole }{\i\f1 command, }{\f1 and inside them use double quotes around each item that contains spaces. If the engine name has more than o\r
-ne period in it (for example, }{\f2 QChess1.5.exe}{\f1 ), you must include the "}{\f2 .exe}{\f1 " extension; otherwise you can leave it out. The default value for }{\i\f1 command}{\f1 \r
- is "", which brings up the startup dialog to ask which engines you want.\r
+ argument specifies the initial working directory for the chess engine. It should usually be the directory where the engine and its working files are installed. If }{\i\f1 dir}{\f1  is not an absolute pathname, it is inter\r
+preted relative to the directory from which WinBoard.exe itself was loaded. The }{\i\f1 dir}{\f1  argument is ignored if the chess engine is being run on a remote machine (see firstHost and secondHost below). The default value for }{\i\f1 dir }{\f1 \r
+"", meaning that the chess engine is expected to be installed in the same directory as WinBoard.\r
+\par The }{\i\f1 command}{\f1  argument is actually the command line to the chess engine, so if the engine itself needs command line arguments, you can include them by enclosing }{\i\f1 command}{\f1  in single or double quotes.\r
+ If the engine name or an engine argument has a space in it, use single quotes around the whole }{\i\f1 command, }{\f1 \r
+and inside them use double quotes around each item that contains spaces. If the engine name has more than one period in it (for example, }{\f2 QChess1.5.exe}{\f1 ), you must include the "}{\f2 .exe}{\f1 \r
+" extension; otherwise you can leave it out. The default value for }{\i\f1 command}{\f1  is "", which brings up the startup dialog to ask which engines you want.\r
 \par Examples:\r
 \par }\pard\plain \s19\fi-518\li1036\sb60\sl-240\slmult0\keep\nowidctlpar\tx520\tx920\tx1320\tx1720\tx2120\adjustright \f6\fs16\cgrid {\f2 WinBoard /cp /fd="C:\\Program Files\\Crafty" /fcp=WCrafty-15.12.exe /scp=GNUChess\r
 \par WinBoard /cp /fd="C:\\Miracle Games" /fcp='"Miracle Chess.exe" /wow' /scp=GNUChess\r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf11 The basic rule is thus that what is inside \r
-the quotes delimiting the argument to /fcp and /scp, all goes to the engine, and is ignored by WinBoard. WinBoard 4.3.13 and later, however, knows an exception to this: If, within the quotes, the word WBopt appears, everything that follows this word will \r
-b\r
-e interpreted as a WinBoard argument, in stead of being passed to the engine on startup of the latter. (The WBopt itself is also not passed to the engine.) This possibility of hiding WinBoard arguments in the engine command is provided in order to create \r
-o\r
-ptions that follow the engine in a tournament, when a tournament manager like PSWBTM is used to invoke WinBoard. Because, in order to apply to a given engine, some options need to know if they apply to first or second engine, which might vary during the t\r
-ournament, options hidden inside the engine command-line can contain \lquote %s\rquote  which will be replaced at the time the option is used by \lquote first\rquote  or \lquote second\rquote , as applicable.\r
+\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf11 The basic rule is thus that what is inside the quotes delimiting the argument to /fcp and /scp, all goes to the engine, and is ignored by WinBoard. WinBoard 4.3.13 \r
+and later, however, knows an exception to this: If, within the quotes, the word WBopt appears, everything that follows this word will be interpreted as a WinBoard argument, in stead of being passed to the engine on startup of the latter. (The WBopt itself\r
\r
+is also not passed to the engine.) This possibility of hiding WinBoard arguments in the engine command is provided in order to create options that follow the engine in a tournament, when a tournament manager like PSWBTM is used to invoke WinBoard. Because\r
+, in order to apply to a given engine, some options need to know if they apply to first or second engine, which might vary during the tournament, options hidden inside the engine command-line can contain \lquote %s\rquote \r
+ which will be replaced at the time the option is used by \lquote first\rquote  or \lquote second\rquote , as applicable.\r
 \par Examples:\r
 \par }\pard\plain \s19\fi-518\li1036\sb60\sl-240\slmult0\keep\nowidctlpar\tx520\tx920\tx1320\tx1720\tx2120\adjustright \f6\fs16\cgrid {\f2\cf11 WinBoard /cp /fd="C:\\Engines\\Crafty" /fcp=\rdblquote WCrafty-15.12 WBopt /%sTimeOdds=2\rdblquote  /scp=GNUChess\r
 \r
@@ -1158,8 +1152,9 @@ ournament, options hidden inside the engine command-line can contain \lquote %s\
 \cs58\f1\super #}{\f1  sh }}}{\f1  /sh }{\b0\f1 or}{\f1  }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  secondHost }}#{\footnote\ftnalt \pard\plain \r
 \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  secondHost }}}{\f1  /secondHost }{\i\f1 host}{\f1 \r
 \par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Hosts on which the chess engines are to run. The default for each is "localhost". If you specify another host, WinBoard}{\i\f1  }{\f1 uses }{\f1\uldb rsh}{\v\f1 rsh}{\f1 \r
- to run the chess program there. The /fd and /sd flags do not work in conjunction with these flags; if you need a remote chess engine to run somewhere other than your default login directory on the remote machine, you will have to include a "cd" command i\r
-n the argument to /fcp or /scp.\r
+ to run the \r
+chess program there. The /fd and /sd flags do not work in conjunction with these flags; if you need a remote chess engine to run somewhere other than your default login directory on the remote machine, you will have to include a "cd" command in the argume\r
+nt to /fcp or /scp.\r
 \par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  initString\r
 }}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  initString}}}{\f1  /firstInitString }{\b0\f1 or }{\f1 /initString }{\i\f1 string\line }{\cs58\f1\super K{\footnote\ftnalt \r
 \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  secondInitString}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1 \r
@@ -1175,11 +1170,11 @@ o the initString; see the GNU Chess documentati{\*\bkmkstart _Hlt386545814}o{\*\
 }}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  initString}}}{\f1  /firstComputerString }{\i\f1 string\line }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \r
 \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  secondInitString}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  secondInitString}}\r
 }{\f1  /secondComputerString }{\i\f1 string}{\f1 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 If the chess engine is playing against another computer program (whether locally or on a chess server), by default the command "computer\\n" is sent to it. Some c\r
-hess engines change their playing style when they receive this command. If you do not want the engine to know when it is playing another computer, you can set the string to "".\r
-\par }\pard\plain \s66\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cf11\cgrid {Note that the computer string is sent to the engine after most other initializa\r
-tion commands, and is thus ideal for hiding a WinBoard-protocol command in that should be sent only to one engine, when the WinBoard option that normally specifies this command cannot be differentiated by engine, but s always sent to both engines. E.g. if\r
- you want one of the engines to ponder, and the other not. Because it is sent last, in can overrule earlier commands.\r
+\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 If the chess engine is playing against another computer program (whether locally or on a chess server), by default the command "computer\\n" is sent to it. Some chess en\r
+gines change their playing style when they receive this command. If you do not want the engine to know when it is playing another computer, you can set the string to "".\r
+\par }\pard\plain \s66\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cf11\cgrid {Note that the computer string is sent to the engine after most other initialization co\r
+mmands, and is thus ideal for hiding a WinBoard-protocol command in that should be sent only to one engine, when the WinBoard option that normally specifies this command cannot be differentiated by engine, but s always sent to both engines. E.g. if you wa\r
+nt one of the engines to ponder, and the other not. Because it is sent last, in can overrule earlier commands.\r
 \par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  fb }}#\r
 {\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  fb }}}{\f1  /fb }{\b0\f1 or }{\f1 /xfb}{\b0\f1 , or}{\f1  }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \r
 \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  firstPlaysBlack }}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  firstPlaysBlack}}}\r
@@ -1207,14 +1202,13 @@ s. Other values for version-number are not supported.
 \f1\cf6 firstScoreAbs}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf6 firstScoreAbs}}}{\f1\cf6 /firstScoreAbs}{\i\f1\cf6  true|false\line }{\cs58\f1\cf6\super K\r
 {\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\f1\cf6 secondScoreAbs}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\r
 \cs58\f1\super #}{\f1  }{\f1\cf6 secondScoreAbs}}}{\f1\cf6 /secondScoreAbs}{\i\f1\cf6  true|false\r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf6 If this option is true, the score\r
- reported by the engine is taken to be that in favor of white, even when the engine plays black. Important when winboard uses the score for adjudications, or in PGN reporting. This can be a useful option in combination with WBopt in the engine command-lin\r
-e, see under /fcp.}{\cf6 \r
+\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf6 If this option is true, the score reported by the engine is taken to be that in\r
+ favor of white, even when the engine plays black. Important when winboard uses the score for adjudications, or in PGN reporting. This can be a useful option in combination with WBopt in the engine command-line, see under /fcp.}{\cf6 \r
 \par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf2\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
 \f1\cf6 niceEngines}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf6 niceEngines}}}{\f1\cf2 /niceEngines}{\i\f1\cf2  priority\r
 \par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf2 \r
-This option allows you to lower the priority of the engine processes, so that the generally insatiable hunger for CPU time of chess engines does not interfere so much with smooth operati\r
-on of WinBoard (or the rest of your system). Try priority = 10 or even 20 to lower the priority of the engines. Negative values could increase the engine priority, which is not recommended.}{\cf6 \r
+This option allows you to lower the priority of the engine processes, so that the generally insatiable hunger for CPU time of chess engines does not interfere so much with smooth operation of WinBoard (or the rest of your \r
+system). Try priority = 10 or even 20 to lower the priority of the engines. Negative values could increase the engine priority, which is not recommended.}{\cf6 \r
 \par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf2\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
 \f1\cf6 firstOptions}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf6 firstOptions}}}{\f1\cf2 /firstOptions}{\i\f1\cf2  string\line }{\cs58\f1\cf2\super K\r
 {\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\f1\cf6 secondOptions}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\r
@@ -1226,11 +1220,11 @@ on of WinBoard (or the rest of your system). Try priority = 10 or even 20 to low
 \f1\cf2  firstNeedsNoncompliantFEN}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\cf2\super #}{\f1\cf2  firstNeedsNoncompliantFEN}}}{\f1\cf2 /firstNeedsNoncompliantFEN}{\i\f1\cf2  string\r
 \line }{\cs58\f1\cf2\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\cf2\super K}{\f1\cf2  secondNeedsNoncompliantFEN}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\r
 \nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\cf2\super #}{\f1\cf2  secondNeedsNoncompliantFEN}}}{\f1\cf2 /secondNeedsNoncompliantFEN}{\i\f1\cf2  string\r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf2 The castling rights and e.p. fields \r
-of the FEN sent to the mentioned engine with the setboard command will be replaced by the given string. This can for instance be used to run engines that do not understand Chess960 FENs in variant fischerandom, to make them at least understand the opening\r
- position, through setting the string to \ldblquote KQkq -\rdblquote \r
-. (Note you also have to give the e.p. field!) Other possible applications are to provide work-arounds for engines that want to see castling and e.p. fields in variants that do not have castling or e.p. (shat\r
-ranj, courier, xiangqi, shogi) so that WinBoard would normally omit them (string = \ldblquote - -\ldblquote , or to add variant-specific fields that are not yet supported by WinBoard (e.g. to indicate the number of checks in 3check).\r
+\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf2 The castling rights and e.p. fields of the FEN sent to the mentioned engine with \r
+the setboard command will be replaced by the given string. This can for instance be used to run engines that do not understand Chess960 FENs in variant fischerandom, to make them at least understand the opening position, through setting the string to \r
+\ldblquote KQkq -\rdblquote \r
+. (Note you also have to give the e.p. field!) Other possible applications are to provide work-arounds for engines that want to see castling and e.p. fields in variants that do not have castling or e.p. (shatranj, courier, xiangqi, shogi) so that WinBoa\r
+rd would normally omit them (string = \ldblquote - -\ldblquote , or to add variant-specific fields that are not yet supported by WinBoard (e.g. to indicate the number of checks in 3check).\r
 \par }{\r
 \par }\pard\plain \s1\li120\sb280\sa120\sl-320\slmult0\nowidctlpar\outlinelevel0\adjustright \b\f5\cgrid {\f1\fs20 \page }{\cs58\f1\fs20\cf6\super +{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\r
 \cs58\f1\super +}{\f1  main}}K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\f1\cf6 UCI Engine Support}}${\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\r
@@ -1314,25 +1308,26 @@ The host name or numeric address of the Internet Chess Server to connect to when
 \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  useTelnet}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  useTelnet}}}{\f1 \r
 /useTelnet}{\i\f1  true|false}{\f1 \r
 \par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 This option is poorly named; it should be called }{\b\f1 /useHelper}{\f1 \r
-. If set to True, it instructs WinBoard to use an external helper program to communicate with the ICS, as specified by the telnetProgram option. The external program must be a pure console application that can communicate with WinBoard through pipes; the \r
-Windows telnet application is not suitable. If the option is False (the default), WinBoard communicates with the ICS by opening a Winsock TCP socket and using its own internal implementation of the telnet protocol.\r
+. If set to True, it instructs WinBoard to use an external helper program to communicate with the ICS, as specified by the telnetProgr\r
+am option. The external program must be a pure console application that can communicate with WinBoard through pipes; the Windows telnet application is not suitable. If the option is False (the default), WinBoard communicates with the ICS by opening a Wins\r
+ock TCP socket and using its own internal implementation of the telnet protocol.\r
 \par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  gateway}}#\r
 {\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  gateway}}}{\f1 /gateway }{\i\f1 hostname}{\f1 \r
 \par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 If this option is set to a host name, WinBoard uses }{\f1\uldb rsh}{\v\f1 rsh}{\f1 \r
- to run the telnetProgram remotely on the given host to communicate with the Internet Chess Server instead of using its own internal implementation of the telnet protocol. See the }{\f1\uldb FIREWALLS}{\v\f1 FIREWALLS}{\f1  s\r
-ection below for an explanation of when this option is useful.\r
+ to run the telnetProgram remotely on the given host to communicate with the Internet Chess Server instead of using its own internal implementation of the telnet protocol. See the }{\f1\uldb FIREWALLS}{\v\f1 FIREWALLS}{\f1 \r
+ section below for an explanation of when this option is useful.\r
 \par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
  telnetProgram}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  telnetProgram}}}{\f1 /telnetProgram }{\i\f1 program}{\f1 \r
 \par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 This option is poorly named; it should be called }{\b\f1 /helperProgram}{\f1 \r
-. It gives the name of the remote or external helper program to be used with the gateway or useTelnet option. The default is "telnet". The telnet program is invoked with the value of internetChessServer as the first argument and the value of internetChess\r
-ServerPort as the second argument on its command line.\r
+. It gives the name of the remote or external helper program to be used with the gateway or useTelnet option. The default is "tel\r
+net". The telnet program is invoked with the value of internetChessServer as the first argument and the value of internetChessServerPort as the second argument on its command line.\r
 \par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  icscom }}#\r
 {\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  icscom }}}{\f1 /icscom }{\b0\f1 or}{\f1  }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\r
 \nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  internetChessServerComPort }}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  internetChessServerComPort }}}{\f1 \r
 /internetChessServerComPort }{\i\f1 name}{\f1 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 If this option is set, WinBoard communicates with the Internet Chess Serve\r
-r using a serial communication port instead of a network connection. Use this option if your machine is not connected to a network (not even via SLIP or PPP), but you do have Internet access through another machine by dialing in using a modem or by connec\r
-ting directly to a serial terminal port. Example:\r
+\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 \r
+If this option is set, WinBoard communicates with the Internet Chess Server using a serial communication port instead of a network connection. Use this option if your machine is not connected to\r
+ a network (not even via SLIP or PPP), but you do have Internet access through another machine by dialing in using a modem or by connecting directly to a serial terminal port. Example:\r
 \par }\pard\plain \s19\li120\sb60\sl-240\slmult0\keep\nowidctlpar\tx520\tx920\tx1320\tx1720\tx2120\adjustright \f6\fs16\cgrid {\f2 WinBoard /ics /icscom:com1\r
 \par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 After you start WinBoard in this way, type whatever modem commands are necessary to dial out to your Internet provider and log in. You may need to turn off }{\f1\uldb \r
 Local Line Editing}{\v\f1 LocalLineEditing}{\f1  on the Options menu while typing commands to the modem, but turn it on again afterwards. Then telnet to the ICS, using a command like "telnet chessclub.com 5000". Important: See the paragraph in the }{\r
@@ -1431,10 +1426,11 @@ Load and Save Options
 filename}{\f1 \line }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  lgi }}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \r
 \f5\fs20\cgrid {\cs58\f1\super #}{\f1  lgi }}}{\f1  /lgi }{\b0\f1 or}{\f1  }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  loadGameIndex }}#{\footnote\ftnalt \r
 \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  loadGameIndex }}}{\f1  /loadGameIndex }{\i\f1 N}{\f1 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 If loadGameFile is set, WinBoard reads the specified game file at startup. You can leave out the name of this option and \r
-give just the file name, which is handy if you want to configure WinBoard as a game viewer with a browser such as the Windows Explorer or Netscape. The filename is interpreted relative to WinBoard's initial working directory. The filename "-" specifies th\r
-e standard input. If there is more than one game in the file, WinBoard pops up a menu of the available games, with entries based on their PGN tags. If loadGameIndex is set to }{\i\f1 N, }{\f1 the menu is suppressed and the }{\i\f1 N}{\f1 \r
-th game found in the file is loaded immediately.\r
+\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 If loadGameFile is set, Wi\r
+nBoard reads the specified game file at startup. You can leave out the name of this option and give just the file name, which is handy if you want to configure WinBoard as a game viewer with a browser such as the Windows Explorer or Netscape. The filename\r
\r
+is interpreted relative to WinBoard's initial working directory. The filename "-" specifies the standard input. If there is more than one game in the file, WinBoard pops up a menu of the available games, with entries based on their PGN tags. If loadGameIn\r
+dex is set to }{\i\f1 N, }{\f1 the menu is suppressed and the }{\i\f1 N}{\f1 th game found in the file is loaded immediately.\r
 \par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  td }}#\r
 {\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  td }}}{\f1  /td }{\b0\f1 or}{\f1  }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\r
 \nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  timeDelay }}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  timeDelay }}}{\f1  /timeDelay }{\i\f1 seconds}{\f1 \r
@@ -1445,8 +1441,8 @@ th game found in the file is loaded immediately.
 {\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  sgf }}}{\f1  /sgf }{\b0\f1 or}{\f1  }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\r
 \nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  saveGameFile }}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  saveGameFile }}}{\f1  /saveGameFile }{\i\f1 \r
 filename}{\f1 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 \r
-If this option is set, WinBoard appends a record of every game played to the specified file. The filename is interpreted relative to WinBoard's initial working directory. The filename "-" specifies the standard output.\r
+\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 If this option is set, Wi\r
+nBoard appends a record of every game played to the specified file. The filename is interpreted relative to WinBoard's initial working directory. The filename "-" specifies the standard output.\r
 \par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  autosave }\r
 }#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  autosave }}}{\f1  /autosave}{\b0\f1  or }{\f1 /xautosave}{\b0\f1 ,}{\f1  }{\b0\f1 or}{\f1  }{\cs58\f1\super K{\footnote\ftnalt \r
 \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  autoSaveGames }}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1 \r
@@ -1459,15 +1455,15 @@ If this option is True, at the end of every game WinBoard prompts you for a file
 \i\f1 filename}{\f1 \line }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  lpi }}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\r
 \nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  lpi }}}{\f1  /lpi }{\b0\f1 or}{\f1  }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
  loadPositionIndex }}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  loadPositionIndex }}}{\f1  /loadPositionIndex }{\i\f1 N}{\f1 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 If loadPositionFile is set, WinBoard loads the specified\r
- position file at startup. The filename is interpreted relative to WinBoard's initial working directory. The filename "-" specifies the standard input. If loadPositionIndex is set to }{\i\f1 N}{\f1 , the }{\i\f1 N}{\f1 \r
+\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 If loadPositionFile is set, WinBoard loads the specified position file at st\r
+artup. The filename is interpreted relative to WinBoard's initial working directory. The filename "-" specifies the standard input. If loadPositionIndex is set to }{\i\f1 N}{\f1 , the }{\i\f1 N}{\f1 \r
 th position found in the file is loaded; otherwise the first is loaded.\r
 \par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  spf }}#\r
 {\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  spf }}}{\f1  /spf }{\b0\f1 or}{\f1  }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\r
 \nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  savePositionFile }}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  savePositionFile }}}{\f1  /savePositionFile }{\r
 \i\f1 filename}{\f1 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 If this option is set, WinBoard appends the final position reached in every game played t\r
-o the specified file. The filename is interpreted relative to WinBoard's initial working directory. The file name "-" specifies the standard output.\r
+\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 If this option is set, WinBoard appends the final position reached in every game played to the specified file. The filename is interpreted relative to WinBoard's initial w\r
+orking directory. The file name "-" specifies the standard output.\r
 \par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf6\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
 \f1\cf6 pgnExtendedInfo}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf6 pgnExtendedInfo}{\f1  }}}{\f1\cf6  /pgnExtendedInfo }{\i\f1\cf6 true|false}{\f1\cf6 \r
 \par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf6 If this option is set, WinBoard saves depth, score and time used for each move that the engine found as a comment in the PGN file.\r
@@ -1482,15 +1478,15 @@ o the specified file. The filename is interpreted relative to WinBoard's initial
 #{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  oldsave }}}{\f1  /oldsave }{\b0\f1 or }{\f1 /xoldsave}{\b0\f1 , or}{\f1  }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \r
 \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  oldSaveStyle }}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  oldSaveStyle }}}{\f1 \r
  /oldSaveStyle}{\i\f1  true|false}{\f1 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 \r
-If this option is False (the default), WinBoard saves games in PGN (portable game notation) and positions in FEN (Forsythe-Edwards notation). If the option is True, a save style that is compatible with older versions of WinBoard (and of xboard)\r
- is used instead.\r
+\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 If this option is False\r
+ (the default), WinBoard saves games in PGN (portable game notation) and positions in FEN (Forsythe-Edwards notation). If the option is True, a save style that is compatible with older versions of WinBoard (and of xboard) is used instead.\r
 \par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  debug}}#\r
 {\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  debug}}}{\f1  /debug}{\b0\f1  or }{\f1 /xdebug}{\b0\f1 ,}{\f1  }{\b0\f1 or}{\f1  }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \r
 \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  debugMode}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  debugMode}}}{\f1 \r
  /debugMode}{\i\f1  true|false}{\f1 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Writes debugging information to the file \ldblquote WinBoard.debug\rdblquote , including all commands sent to the chess engine, all output received from it, and all com\r
-mands sent to ICS. You can press Ctrl+Alt+F12 to turn this option on or off while WinBoard is running. Each time you turn it on, any existing debug file is overwritten.\r
+\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Writes debugging information to the file \ldblquote WinBoard.debug\rdblquote \r
+, including all commands sent to the chess engine, all output received from it, and all commands sent to ICS. You can press Ct\r
+rl+Alt+F12 to turn this option on or off while WinBoard is running. Each time you turn it on, any existing debug file is overwritten.\r
 \par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf6\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
 \f1\cf6 debugFile}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf6 debugFile}{\f1  }}}{\f1\cf6  /debugFile}{\cs58\f1\cf6\super  }{\f1\cf6  }{\i\f1\cf6 filename}{\r
 \f1\cf6  }{\b0\f1\cf6 or}{\f1\cf6  }{\cs58\f1\cf6\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\f1\cf6 nameOfDebugFile}{\f1  }}#{\footnote\ftnalt \pard\plain \r
@@ -1502,9 +1498,8 @@ mands sent to ICS. You can press Ctrl+Alt+F12 to turn this option on or off whil
 \par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf11 Specifies how WinBoard should handle unsolicited output from the engine, with respect to saing it in the debug file. The output is further (hopefully) ignored. If }{\r
 \i\f1\cf11 numbe}{\f1\cf11 r=0, WinBoard refrains from writing such spurious output to the debug file. If}{\i\f1\cf11  numbe}{\f1\cf11 r=1, all engine output is written faithfully to the debug file. If }{\i\f1\cf11  numbe}{\f1\cf11 \r
 r=2, any protocol-violating line is prefixed with a \lquote #\rquote  character, as the engine itself should have done if it wanted to submit info for inclusion in the debug file.\r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cf11 \r
-This option is provided for the benefit of applications that use the debug file as a source of information, such as the broadcaster of live games TLCV / TLCS. Such applications can be protected from spurious engine output that might otherwise confuse them\r
-.\r
+\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cf11 This option is provided for the benefit of applications that use the debug file as a\r
+ source of information, such as the broadcaster of live games TLCV / TLCS. Such applications can be protected from spurious engine output that might otherwise confuse them.\r
 \par }{\r
 \par }\pard\plain \s1\li120\sb280\sa120\sl-320\slmult0\nowidctlpar\outlinelevel0\adjustright \b\f5\cgrid {\f1\fs20 \page }{\cs58\f1\fs20\super +{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super \r
 +}{\f1  main}}K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  User Interface Options}}${\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \r
@@ -1514,14 +1509,15 @@ User Interface Options
  firstLogo}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\cf2\super #}{\f1\cf2  firstLogo}}}{\f1\cf2  /firstLogo }{\i\f1\cf2 filename}{\f1\cf2 \r
 \par }\pard \s2\li119\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright {\cs58\f1\cf2\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\cf2\super K}{\f1\cf2  secondLogo}}#\r
 {\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\cf2\super #}{\f1\cf2  secondLogo}}}{\f1\cf2  /secondLogo }{\i\f1\cf2 filename}{\f1\cf2 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf2 The appearance of either of these options causes\r
- WinBoard to reserve space for displaying logos on both sides of the clocks. Normally the first logo goes left, the second right, unless the option \lquote swap clocks\rquote  is in effect. The }{\i\f1\cf2 filename}{\f1\cf2 \r
+\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf2 The appearance of either of these options causes WinBoard to reserve space for displaying logos on both sides of \r
+the clocks. Normally the first logo goes left, the second right, unless the option \lquote swap clocks\rquote  is in effect. The }{\i\f1\cf2 filename}{\f1\cf2 \r
  must refer to a bitmap file (.bmp) containing a logo for the particular player (usually a 130x65 or 100x50 bitmap, which will be scaled to the height of two clock lines.)\r
 \par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf2\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\cf2\super K}{\r
 \f1\cf2  autoLogo}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\cf2\super #}{\f1\cf2  autoLogo}}}{\f1\cf2  /autoLogo}{\i\f1\cf2  true|false}{\f1\cf2 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf2 When true, causes WinBoard to automatically supply a logo for the first and second chess program, by looki\r
-ng for a fie named logo.bmp in the engine directory (as specified by the /fd or /sd option), and then displays it like this file was given as an argument to the /firstLogo or /secondLogo option. In this mode it will also look in a sub-folder of its instal\r
-lation folder called \ldblquote logos\rdblquote , for finding logos with names corresponding to the ICS (e.g. \ldblquote chessclub.com.bmp\rdblquote ) or to the human user, should they be involved in a game.\r
+\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf2 \r
+When true, causes WinBoard to automatically supply a logo for the first and second chess program, by looking for a fie named logo.bmp in the engine directory (as specified\r
+ by the /fd or /sd option), and then displays it like this file was given as an argument to the /firstLogo or /secondLogo option. In this mode it will also look in a sub-folder of its installation folder called \ldblquote logos\rdblquote \r
+, for finding logos with names corresponding to the ICS (e.g. \ldblquote chessclub.com.bmp\rdblquote ) or to the human user, should they be involved in a game.\r
 \par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf6\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
 \f1\cf6 hideThinkingFromHuman}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf6 hideThinkingFromHuman}}}{\f1\cf6  /hideThinkingFromHuman}{\i\f1\cf6  true|false}{\f1\cf6 \r
 \r
@@ -1614,9 +1610,8 @@ t participating in a game, then the positioning of the board at the start of eac
 \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\super #}{ dsc}}}{\f1 /dsc }{\b0\f1 or}{\f1  }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\r
 \cs58\f1\super K}{\f1  darkSquareColor}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  darkSquareColor}}}{\f1  /darkSquareColor }{\i\f1 color}{\cs58\f1\super  }{\f1 \r
 \par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Color specifications for white pieces, black pieces, light squares, and dark squares. Colors can be specified only by red/green/blue intensity, either in hexadecimal (as }{\r
-\i\f1 #rrggbb}{\f1 ) or in decimal (as }{\i\f1 rrr,ggg,bbb}{\f1 ). In the latter format, yo\r
-u must enclose the string in quotation marks if you leave spaces after the commas. The defaults are respectively #FFFFCC, #202020, #C8C365, and #77A26D. Available on the }{\f1\uldb Board Colors}{\v\f1 BoardColors}{\f1  section of the }{\f1\uldb \r
-Board Options}{\v\f1 BoardOptions}{\f1  dialog.\r
+\i\f1 #rrggbb}{\f1 ) or in decimal (as }{\i\f1 rrr,ggg,bbb}{\f1 ). In the latter format, you must enclose the string in quotation marks\r
+ if you leave spaces after the commas. The defaults are respectively #FFFFCC, #202020, #C8C365, and #77A26D. Available on the }{\f1\uldb Board Colors}{\v\f1 BoardColors}{\f1  section of the }{\f1\uldb Board Options}{\v\f1 BoardOptions}{\f1  dialog.\r
 \par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 If you are using a }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  grayscale}\r
 }#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  grayscale}}}{\f1  grayscale monitor, try setting the colors to:\r
 \par }\pard\plain \s19\li520\sb60\sl-240\slmult0\keep\nowidctlpar\tx520\tx920\tx1320\tx1720\tx2120\adjustright \f6\fs16\cgrid {\f2\fs20 -whitePieceColor:#FFFFFF\line -blackPieceColor:#000000\line -lightSquareColor:#CCCCCC\line -darkSquareColor:#999999\r
@@ -1626,8 +1621,8 @@ Board Options}{\v\f1 BoardOptions}{\f1  dialog.
 \cs58\f1\super  }{\f1 \line }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\super K}{ phc}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \r
 \f5\fs20\cgrid {\cs58\super #}{ phc}}}{\f1 /phc }{\b0\f1 or }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  premoveHighlightColor}}#{\footnote\ftnalt \r
 \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  premoveHighlightColor}}}{\f1  /premoveHighlightColor }{\i\f1 color}{\cs58\f1\super  }{\f1 \r
-\par }{\b0\f1 Color specifications for the }{\b0\f1\uldb Highlight Last Move}{\b0\v\f1 HighlightLastMove}{\b0\f1  and }{\b0\f1\uldb Premove}{\b0\v\f1 PremoveCmd}{\b0\f1 \r
- options, respectively. Colors can be specified only by red/green/blue intensity, either in hexadecimal (as }{\b0\i\f1 #rrggbb}{\b0\f1 ) or in decimal (as }{\b0\i\f1 rrr,ggg,bbb}{\b0\f1 \r
+\par }{\b0\f1 Color specifications for the }{\b0\f1\uldb Highlight Last Move}{\b0\v\f1 HighlightLastMove}{\b0\f1  and }{\b0\f1\uldb Premove}{\b0\v\f1 PremoveCmd}{\b0\f1  options, respectively. Colors can be specified only by red/green/blue int\r
+ensity, either in hexadecimal (as }{\b0\i\f1 #rrggbb}{\b0\f1 ) or in decimal (as }{\b0\i\f1 rrr,ggg,bbb}{\b0\f1 \r
 ). In the latter format, you must enclose the string in quotation marks if you leave spaces after the commas. The defaults are respectively #FFFF00 and #FF0000, respectively.\r
 \par }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  mono }}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\r
 \cs58\f1\super #}{\f1  mono }}}{\f1  /mono}{\b0\f1  or }{\f1 /xmono}{\b0\f1 ,}{\f1  }{\b0\f1 or}{\f1  }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  monoMode}}#\r
@@ -1640,14 +1635,13 @@ BoardColors}{\f1  section of the }{\f1\uldb Board Options}{\v\f1 BoardOptions}{\
 Determines whether WinBoard displays the black pieces upside down (or the white pieces in Flip View). Useful with Shogi with the traditional Japanese pieces, which are not distinguished by color but by orientation.\r
 \par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf11\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
 \f1\cf11 allWhite}{\f1  }}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf11 allWhite}{\f1  }}}{\f1\cf11  /allWhite}{\i\f1\cf11  true|false}{\f1\cf11 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf11 \r
-Determines whether the white piece bitmaps will be used to display black pieces. The white pieces have a dark outline, which the black pieces lack. This makes the latter look vague if the color you give them is not very dark.\r
+\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf11 Determines whether the white piece bitmaps will be used to display black pieces. The white pieces have a dark outline, which the black pieces lack. This makes the l\r
+atter look vague if the color you give them is not very dark.\r
 \par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf6\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
 \f1\cf6 renderPiecesWithFont}{\f1  }}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf6 renderPiecesWithFont}{\f1  }}}{\f1\cf6  /renderPiecesWithFont }{\i\f1\cf6 fontname}\r
 {\f1\cf6 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf6 \r
-Uses the named true-type font to render the pieces, rather than the built-in bitmaps. The font must be installed on your computer. If the name starts with a *  it is ignored, allowing you to easily disable a font temporarily in the whinboard.ini file.\r
-\r
+\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf6 Uses the named true-type font to render the pieces, rather than the built-in bitmaps. The font must be installed\r
+ on your computer. If the name starts with a *  it is ignored, allowing you to easily disable a font temporarily in the whinboard.ini file.\r
 \par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf6\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
 \f1\cf6 fontPieceToCharTable}{\f1  }}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf6 fontPieceToCharTable}{\f1  }}}{\f1\cf6  /fontPieceToCharTable }{\i\f1\cf6 \r
 characterstring}{\f1\cf6 \r
@@ -1782,8 +1776,8 @@ The name of a }{\f2 .wav}{\f1  file. The filename is interpreted relative to Win
 \par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  icsMenu}}#\r
 {\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  icsMenu}}}{\f1 /icsMenu=\{}{\i\f1 entries}{\f1 \} }{\b0\f1 or }{\f1 /icsMenu=@}{\i\f1 filename\r
 \par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 This option lets you customize the right-button }{\f1\uldb context menu}{\v\f1 ICSInteractionContextMenu}{\f1 \r
- that is available in the upper (output) pane of the ICS Interaction window. It consists of a list of menu entries, one per line. If the option value starts with an @ \r
-sign, it is the name of a file that contains the entries. Each entry contains either four fields separated by commas or the single character }{\f2 "-"}{\f1 . The fields are:\r
+ that is available in the upper (output) pane of the ICS Interaction window. It consists of a list of menu entries, one per line. If the opt\r
+ion value starts with an @ sign, it is the name of a file that contains the entries. Each entry contains either four fields separated by commas or the single character }{\f2 "-"}{\f1 . The fields are:\r
 \par {\pntext\pard\plain\f5\fs20\lang1033\cgrid \hich\af5\dbch\af0\loch\f5 1.\tab}}\pard\plain \fi-360\li480\sb80\sl-240\slmult0\nowidctlpar\jclisttab\tx480{\*\pn \pnlvlbody\ilvl0\ls14\pnrnot0\pndec\pnstart1\pnindent360\pnhang{\pntxta .}}\ls14\adjustright \r
 \f5\fs20\cgrid {The menu text. If this field begins with }{\f2 "|"}{, the item begins a new column in the menu and the }{\f2 "|"}{ is not shown. If this field contains an }{\f2 "&"}{\r
 , the character after the ampersand is underlined in the menu and acts as a keyboard shortcut for the item when the menu is displayed. Do not assign the same shortcut key to two different menu items.\r
@@ -1796,23 +1790,22 @@ A flag (1 or 0) saying whether the result should be sent immediately to ICS or l
 \par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {The entry }{\f2 "-"}{ produces a separator line in the menu. The top three menu entries are always }{\b Copy and Paste}{, }{\b Copy}{, and }{\b Paste}{\r
 , but you have full control over the rest of the menu.\r
 \par }{\f1 The default menu is:\r
-\par }\pard\plain \s19\li520\sb60\sl-240\slmult0\keep\nowidctlpar\tx520\tx920\tx1320\tx1720\tx2120\adjustright \f6\fs16\cgrid {\f2\fs20 \endash \line &Who,who,0,1\line Playe&rs,players,0,1\line &Games,games,0,1\line &Sought,sought,0,1\line \r
-|&Tell (name),tell,1,0\line M&essage (name),message,1,0\line \endash \line &Finger (name),finger,1,1\line &Vars (name),vars,1,1\line &Observe (name),observe,1,1\line &Match (name),match,1,1\line Pl&ay (name),play,1,1\r
+\par }\pard\plain \s19\li520\sb60\sl-240\slmult0\keep\nowidctlpar\tx520\tx920\tx1320\tx1720\tx2120\adjustright \f6\fs16\cgrid {\f2\fs20 \endash \line &Who,who,0,1\line Playe&rs,players,0,1\line &Games,games,0,1\line &Sought,sought,0,1\line |&T\r
+ell (name),tell,1,0\line M&essage (name),message,1,0\line \endash \line &Finger (name),finger,1,1\line &Vars (name),vars,1,1\line &Observe (name),observe,1,1\line &Match (name),match,1,1\line Pl&ay (name),play,1,1\r
 \par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 There is no graphical user interface to set this option. To change it, edit your }{\f1\uldb settings}{\v\f1 settings}{\f1  file with a plain text editor such as Notepad.\r
 \r
 \par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  icsNames}}\r
 #{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  icsNames}}}{\f1 /icsNames=\{}{\i\f1 names}{\f1 \} }{\b0\f1 or }{\f1 /icsNames=@}{\i\f1 filename\r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 \r
-This option lets you customize the drop-down list of ICS names that appears in the WinBoard startup dialog. It consists of a list of strings, one per line. If the option value starts wit\r
-h an @ sign, it is the name of a file that contains the strings. When you select a string from the drop-down list, WinBoard prepends the text \rdblquote /ics /icsHost=\rdblquote \r
+\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 This option lets you customize the drop-down list of ICS names that appears in the WinBoard startup dialog. It consists of a list \r
+of strings, one per line. If the option value starts with an @ sign, it is the name of a file that contains the strings. When you select a string from the drop-down list, WinBoard prepends the text \rdblquote /ics /icsHost=\rdblquote \r
  and adds the result to the command-line options. There is no graphical user interface to set this option. To change it, edit your }{\f1\uldb settings}{\v\f1 settings}{\f1  file with a plain text editor such as Notepad.\r
 \par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 \r
 \par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
  firstChessProgramNames}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  firstChessProgramNames}}}{\f1 /firstChessProgramNames=\{}{\i\f1 names}{\f1 \} }{\b0\f1 or }{\f1 \r
 /firstChessProgramNames="@}{\i\f1 filename}{\f1 "\r
 \par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 \r
-This option lets you customize the first drop-down list of chess engine names that appears in the WinBoard startup dialog. It consists of a list of strings, one per line. If the option value starts with an @ sign, it is the name of a file that contains th\r
-e strings. When you select a string from the drop-down list, WinBoard prepends the text \rdblquote /cp /firstChessProgram=\rdblquote  and adds the result to the command-line options. \r
+This option lets you customize the first drop-down list of chess engine names that appears in the WinBoard startup dialog. It consists of a list of strings, one per line. If the option value starts with an @ sign, it is \r
+the name of a file that contains the strings. When you select a string from the drop-down list, WinBoard prepends the text \rdblquote /cp /firstChessProgram=\rdblquote  and adds the result to the command-line options. \r
 \par \r
 \par There is no graphical user interface to set this option. To change it, edit your }{\f1\uldb settings}{\v\f1 settings}{\f1  file with a plain text editor such as Notepad. Example:\r
 \par }\pard\plain \s19\li520\sb60\sl-240\slmult0\keep\nowidctlpar\tx520\tx920\tx1320\tx1720\tx2120\adjustright \f6\fs16\cgrid {\f2 /firstChessProgramNames=\{GNUChess\line WCrafty-15_11 /fd="C:\\Program Files\\Crafty"\line ArasanX /fd="C:\\Program Files\\Arasan\r
@@ -1820,9 +1813,9 @@ e strings. When you select a string from the drop-down list, WinBoard prepends t
 \par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
  secondChessProgramNames}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  secondChessProgramNames}}}{\f1 /secondChessProgramNames=\{}{\i\f1 names}{\f1 \}}{\b0\f1  or }{\f1 \r
 /secondChessProgramNames="@}{\i\f1 filename}{\f1 "}{\i\f1 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 This option lets you customize the second drop-down list of chess engine names that appears in the WinBoard startup dialog. It consists of a lis\r
-t of strings, one per line. If the option value starts with an @ sign, it is the name of a file that contains the strings. When you select a string from the drop-down list, WinBoard prepends the text \rdblquote /cp /secondChessProgram=\rdblquote \r
- and adds the result to the command-line options.\r
+\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 This option lets you customize the second drop-down list of chess engine names that appears in the WinBoard \r
+startup dialog. It consists of a list of strings, one per line. If the option value starts with an @ sign, it is the name of a file that contains the strings. When you select a string from the drop-down list, WinBoard prepends the text \rdblquote \r
+/cp /secondChessProgram=\rdblquote  and adds the result to the command-line options.\r
 \par \r
 \par There is no graphical user interface to set this option. To change it, edit your }{\f1\uldb settings}{\v\f1 settings}{\f1  file with a plain text editor such as Notepad. Example:\r
 \par }\pard\plain \s19\li520\sb60\sl-240\slmult0\keep\nowidctlpar\tx520\tx920\tx1320\tx1720\tx2120\adjustright \f6\fs16\cgrid {/secondChessProgramNames=\{GNUChess\line WCrafty-15_11 /sd="C:\\\\Program Files\\\\Crafty\\"\line ArasanX /sd="C:\\Program Files\\\r
@@ -1833,8 +1826,8 @@ Arasan\\Arasan 4.1"\line "EXchess xb" /sd=C:\\EXchess\line Comet-WB /sd=C:\\Come
 \par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
  xywh coordinates of Analysis window}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  xywh}}}{\f1 /analysisX=}{\i\f1 xcoord  }{\f1 /analysisY=}{\i\f1 ycoord}{\f1   /analysisW=}{\r
 \i\f1 width}{\f1   /analysisH=}{\i\f1 height\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf2 These options have been deprecated, as the analysis window is replaced by the more gener\r
-al engine-output window. They are recognized, but ignored, and no longer saved in the winboard.ini file.\r
+\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf2 These options have been deprecate\r
+d, as the analysis window is replaced by the more general engine-output window. They are recognized, but ignored, and no longer saved in the winboard.ini file.\r
 \par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
  xywh coordinates of Comment window}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  xywh}}}{\f1 /commentX=}{\i\f1 xcoord  }{\f1 /commentY=}{\i\f1 ycoord}{\f1   /commentW=}{\r
 \i\f1 width}{\f1   /commentH=}{\i\f1 height\r
@@ -1882,16 +1875,16 @@ engineOutputUp}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\no
 \f1\cf6 stickyWindows}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf6 stickyWindows}}}{\f1\cf6 /stickyWindows }{\i\f1\cf6 true|false\r
 \par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf6 Auxiliary windows touching the main window will stay attached to the latter when you move it.\r
 \par }\pard\plain \s2\li119\sb120\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf6\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\f1\cf6 \r
-autoDisplayComments}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf6 autoDisplayComments}}}{\f1\cf6 /autoDisplayComments }{\i\f1\cf6 true|false\r
+autoDisplayComment}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf6 autoDisplayComment}}}{\f1\cf6 /autoDisplayComment }{\i\f1\cf6 true|false\r
 \par }\pard \s2\li119\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright {\cs58\f1\cf6\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\f1\cf6 autoDisplayTags}}#\r
 {\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf6 autoDisplayTags}}}{\f1\cf6 /autoDisplayTags }{\i\f1\cf6 true|false\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf6 If set to True, these options cause the window with the move comments, and the window with PGN tags, respectively\r
-, to pop up automatically when such tags or comments are encountered during the replaying a stored or loaded game.\r
+\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf6 If set to True, these options cause the window with the move comments, and the window with PGN tags, respectively, to p\r
+op up automatically when such tags or comments are encountered during the replaying a stored or loaded game.\r
 \par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf6\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
 \f1\cf6 gameListTags}{\f1  }}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf6 gameListTags}{\f1  }}}{\f1\cf6  /gameListTags }{\i\f1\cf6 string}{\f1\cf6 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf6 The }{\i\f1\cf6 string}{\f1\cf6  contains single-character codes specifying the PGN tags that have to be li\r
-sted for each game in the game-list window, and their order. The meaning of the characters is a=out-of-book info, b=black Elo, e=event, d=date, o=round, p=players, r=result, w=white Elo, s=site, t=time control and v=variant, Default: \ldblquote eprd\r
-\rdblquote .\r
+\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf6 The }{\i\f1\cf6 string}{\f1\cf6  contains single-character codes specifying the PGN tags that have to be listed f\r
+or each game in the game-list window, and their order. The meaning of the characters is a=out-of-book info, b=black Elo, e=event, d=date, o=round, p=players, r=result, w=white Elo, s=site, t=time control and v=variant, Default: \ldblquote eprd\rdblquote .\r
+\r
 \par }\pard\plain \s1\li120\sb280\sa120\sl-320\slmult0\nowidctlpar\outlinelevel0\adjustright \b\f5\cgrid {\f1\fs20 \page }{\cs58\f1\fs20\cf6\super +{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\r
 \cs58\f1\super +}{\f1  main}}K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\f1\cf6 Adjudication Options}}${\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\r
 \nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super $}{\f1  }{\f1\cf6 Adjudication Options}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf6 AdjudicationOptions}}}{\r
@@ -1899,8 +1892,8 @@ sted for each game in the game-list window, and their order. The meaning of the
 \par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf6\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
 \f1\cf6 adjudicateLossThreshold}{\f1  }}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf6 adjudicateLossThreshold}{\f1  }}}{\f1\cf6  /adjudicateLossThreshold }{\i\f1\cf6 \r
 scorethreshold}{\f1\cf6 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf6 If the given value is non-zero, WinBoard adjudicates the game as a loss\r
- if both engines agree for a duration of 6 consecutive ply that the score is below the given score threshold for that engine. Make sure the score is interpreted properly by WinBoard, using /firstScoreAbs and /secondScoreAbs if needed.}{\cf6 \r
+\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf6 If the given value is non-zero, WinBoard adjudicates the game as a loss if bo\r
+th engines agree for a duration of 6 consecutive ply that the score is below the given score threshold for that engine. Make sure the score is interpreted properly by WinBoard, using /firstScoreAbs and /secondScoreAbs if needed.}{\cf6 \r
 \par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf6\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
 \f1\cf6 adjudicateDrawMoves}{\f1  }}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf6 adjudicateDrawMoves}{\f1  }}}{\f1\cf6  /adjudicateDrawMoves }{\i\f1\cf6 number}{\r
 \f1\cf6 \r
@@ -1911,8 +1904,8 @@ scorethreshold}{\f1\cf6
 {\r
 \par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf11\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
 \f1\cf11 testClaims}{\f1  }}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf11 testClaims}{\f1  }}}{\f1\cf11  /testClaims}{\i\f1\cf11  true|false}{\f1\cf11 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf11 \r
-If this option is True, WinBoard verifies all result claims made by engines, and those who send false claims will forfeit the game because of it. Legality-testing must be on for this option to work.}{\cf11 \r
+\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf11 If this option is True, WinBoard verifies all result clai\r
+ms made by engines, and those who send false claims will forfeit the game because of it. Legality-testing must be on for this option to work.}{\cf11 \r
 \par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf11\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
 \f1\cf11 materialDraws}{\f1  }}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf11 materialDraws}{\f1  }}}{\f1\cf11  /materialDraws}{\i\f1\cf11  true|false}{\f1\cf11 \r
 \r
@@ -1921,9 +1914,10 @@ If this option is True, WinBoard adjudicates games as draws when there is no suf
 \r
 \par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf11\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
 \f1\cf11 trivialDraws}{\f1  }}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf11 trivialDraws}{\f1  }}}{\f1\cf11  /trivialDraws}{\i\f1\cf11  true|false}{\f1\cf11 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf11 If this option is True, WinBoard adjudicates games as draws that cannot \r
-be usualy won without opponent assistance. This applies to KBKB with unlike bishops, and to KBKN, KNKN, KNNK, KRKR and KQKQ. The draw is called after 6 ply into these end-games, to allow quick mates that can occur in some positions. KQKQ does not really b\r
-elong in this category, and might be taken out in the future. (When bitbase-based adjudications are implemented.) Legality-testing must be on for this option to work.}{\cf11 \r
+\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf11 \r
+If this option is True, WinBoard adjudicates games as draws that cannot be usualy won without opponent assistance. This applies to KBKB with unlike bishops, and to KBKN, KNKN, KNNK, KRKR and KQKQ. The draw is c\r
+alled after 6 ply into these end-games, to allow quick mates that can occur in some positions. KQKQ does not really belong in this category, and might be taken out in the future. (When bitbase-based adjudications are implemented.) Legality-testing must be\r
+ on for this option to work.}{\cf11 \r
 \par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf11\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
 \f1\cf11 ruleMoves}{\f1  }}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf11 ruleMoves}{\f1  }}}{\f1\cf11  /ruleMoves }{\i\f1\cf11 number}{\f1\cf11 \r
 \par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf11 If the given value is non-zero, WinBoard adjudicates the game as a draw after the given }{\i\f1\cf11 number}{\f1\cf11 \r
@@ -1931,8 +1925,8 @@ elong in this category, and might be taken out in the future. (When bitbase-base
 \par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf11\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
 \f1\cf11 repeatsToDraw}{\f1  }}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf11 repeatsToDraw}{\f1  }}}{\f1\cf11  /repeatsToDraw }{\i\f1\cf11 number}{\f1\cf11 \r
 \par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf11 If the given value is non-zero, WinBoard adjudicates the game as a draw if a position is repeated the given }{\i\f1\cf11 number}{\f1\cf11 \r
- of times. Engines can claim draws after 3 repeats, (on the 3rd occurrence, actually), irrespective of the value of }{\i\f1\cf11 number}{\f1\cf11 . Beware that positions that have different castling or\r
- en-passant rights do not count as repeats, WinBoard is fully e.p. and castling aware!}{\cf11 \r
+ of times. Engines can claim draws after 3 repeats, (on the 3rd occurrence, actually), irrespective of the value of }{\i\f1\cf11 number}{\f1\cf11 . Beware that positions that have different castling or en-passant rights do not count as repeats, WinBoar\r
+d is fully e.p. and castling aware!}{\cf11 \r
 \par }\pard\plain \s1\li120\sb280\sa120\sl-320\slmult0\nowidctlpar\outlinelevel0\adjustright \b\f5\cgrid {\f1\fs20\cf11 \page }{\cs58\f1\fs20\super +{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\r
 \cs58\f1\super +}{\f1  main}}K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  Other Options}}${\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \r
 \f5\fs20\cgrid {\cs58\f1\super $}{\f1  Other Options}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  OtherOptions}}}{\b0\f1\fs18\up6  }{\f1\fs20 Other Options\r
@@ -1947,12 +1941,12 @@ If this option is True, WinBoard acts as a passive chessboard; it does not start
 \nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  initialMode}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  initialMode}}}{\f1  /initialMode }{\i\f1 modename\r
 \r
 \par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 If this option is given, WinBoard selects the given }{\i\f1 modename}{\f1  from the }{\f1\uldb Mode menu}{\v\f1 ModeMenu }{\f1 \r
-after starting and (if applicable) processing the }{\f1\uldb loadGameFile}{\v\f1 loadGameFile }{\f1 or }{\f1\uldb loadPositionFile}{\v\f1 loadPositionFile }{\f1 option. Default: "". Other supported values are \r
-TwoMachines, AnalyzeFile, Analysis, MachineWhite, MachineBlack, EditGame, EditPosition, and Training.\r
+after starting and (if applicable) processing the }{\f1\uldb loadGameFile}{\v\f1 loadGameFile }{\f1 or }{\f1\uldb loadPositionFile}{\v\f1 loadPositionFile }{\f1 option. Default: "". Other supported values are TwoMachin\r
+es, AnalyzeFile, Analysis, MachineWhite, MachineBlack, EditGame, EditPosition, and Training.\r
 \par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
 \f1\cf11 variant}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  variant}}}{\f1  /variant}{\b0\f1  }{\i\f1  varname}{\f1 \r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {Activates preliminary, partial support for playing chess variants against a local engine or editing variant games\r
-. This flag is not needed in ICS mode. Recognized variant names are:\r
+\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {Activates preliminary, partial support for playing chess variants against a local engine or editing variant games. This fl\r
+ag is not needed in ICS mode. Recognized variant names are:\r
 \par }\pard\plain \s20\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {normal\tab \tab Normal chess\line wildcastle\tab Shuffle chess, king can castle from d file\line nocastle\tab Shuffle chess, no castling allowed\line fischerandom\tab \r
 Fischer Random shuffle chess\line bughouse\tab Bughouse, ICC/FICS rules\line crazyhouse\tab Crazyhouse, ICC/FICS rules\line losers  \tab Lose all pieces or get mated (ICC wild 17)\line suicide\tab Lose all pieces including king (FICS)\line giveaway\tab \r
 Try to have no legal moves (ICC wild 26)\line twokings\tab Weird ICC wild 9\line kriegspiel\tab Opponent's pieces are invisible\line atomic   \tab Capturing piece explodes (ICC wild 27)\line 3check\tab Win by giving check 3 times (ICC wild 25)\r
@@ -1963,8 +1957,8 @@ A patented Chess variant with two Falcon pieces (10x8) board \line berolina\tab
 fairy\tab \tab A variant in which all pieces known to WinBoard can participate\line knightmate\tab King moves a Knight, and vice versa\line }{\cf2 super\tab \tab Superchess, a shuffle variant with B+N, R+N, K+N and Q+N compound\line great\tab \tab \r
 Great Shatranj, whithout sliders, on 10x8 board (legality testing off!)\line }{\r
 \par In the shuffle variants, WinBoard does now shuffle the pieces, although you can still do it by hand using Edit Position. }{\cf0 Some variants are supported only in ICS mode, including bughouse, and kriegspiel.}{ }{\cf0 \r
-The winning/drawing conditions in crazyhouse (offboard interposition on mate), losers, suicide, giveaway, atomic, and 3check are not fully understood. In crazyhouse,}{ WinBoard now does keep track of offboard pieces.In shat\r
-ranj it does implement the baring rule when mate detection is switched on.\r
+The winning/drawing conditions in crazyhouse (offboard interposition on mate), losers, suicide, giveaway, atomic, and 3check are not fully understood. In crazyhouse,}{ WinBoard now does keep track of offboard pieces.In shatranj it d\r
+oes implement the baring rule when mate detection is switched on.\r
 \par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf11\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
 \f1\cf11 boardHeight}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf11 boardHeight}}}{\f1\cf11  /boardHeight }{\i\f1\cf11 height}{\f1\cf11 \r
 \par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf11 Allows you to set a non-standard number of board ranks in any variant. If the height is given as \lquote -1\rquote , the default height for the variant is used.\r
@@ -2037,8 +2031,8 @@ option while reading settings (whether from the command line or a file), it read
 \par Warning: Because Save Settings overwrites the last settings file (usually WinBoard.ini) and only saves a subset of WinBoard's options, you should not add \r
 settings of more options to such a file with a text editor. If you do this, your additional options will be lost on the next Save Settings. You can change the values of existing settings freely, using Notepad or any plain text editor. Be careful not to do\r
  this while WinBoard is running, however, unless you know that Save Settings on Exit is off. Otherwise all your changes will be overwritten and lost when WinBoard exits.\r
-\par }\pard\plain \s66\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cf11\cgrid {\f1 Notice that tournament managers, like PSWBTM, usually call WinBoard with the option \r
-not to save settings on exit, so that the entire tournament uses the same settings. So it does make sense to edit \lquote volatile\rquote  options, such as /variant, into the settings file.\r
+\par }\pard\plain \s66\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cf11\cgrid {\f1 Notice that tournament managers, like PSWBTM, usually call WinBoard with the option not\r
+ to save settings on exit, so that the entire tournament uses the same settings. So it does make sense to edit \lquote volatile\rquote  options, such as /variant, into the settings file.\r
 \par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  ICS Logon}\r
 }#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  ICSLogon}}}{\f1  ICS Logon\r
 \par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Whenever WinBoard connects to the Internet Chess Server, if it finds a file called }{\i\f1 ICS.ini }{\f1 in its installation directory}{\i\f1 ,}{\f1 \r
@@ -2076,13 +2070,13 @@ mpt box and make sure it works before you go on.
 \r
 \par }\pard\plain \s63\fi-720\li1440\sb80\sl-240\slmult0\nowidctlpar\adjustright \f2\fs20\cgrid {WinBoard /cp /fcp=WCrafty-15.* /fd="C:\\Program Files\\Crafty" /scp=WCrafty-15.* /sd="C:\\Program Files\\Crafty"\r
 \par }\pard\plain \s16\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 WinBoard should start up, with Crafty running as its chess engine. Check that you can play chess against Crafty.\r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 4. To make a shortcut or Start menu entry for Crafty: Right-click on the desktop and select New/Shortcut. Use \r
-the Browse button to find your winboard.exe file and get its name into the Command Line box. (It usually will be "C:\\Program Files\\WinBoard\\\r
+\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 4. To make a shortcut or Start menu entry for Crafty: Right-click on the desktop and select New/Shortcut. Use the Bro\r
+wse button to find your winboard.exe file and get its name into the Command Line box. (It usually will be "C:\\Program Files\\WinBoard\\\r
 winboard.exe".) Click in the Command Line box and hit the End key to go to the end. Add the following to the end of the command line, }{\i\f1 after}{\f1  the closing quotation mark. Use the actual name of the wcrafty file you downloaded, not an }{\f2 *}{\r
 \f1 , and if your browser changed the first period to an underscore when you downloaded the file, make that change in the command line too.\r
 \par }\pard\plain \s63\fi-720\li1440\sb80\sl-240\slmult0\nowidctlpar\adjustright \f2\fs20\cgrid {/cp /fcp=WCrafty-15.* /fd="C:\\Program Files\\Crafty" \line /scp=WCrafty-15.* /sd="C:\\Program Files\\Crafty"\r
-\par }\pard\plain \s62\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Press Next, choose a name for the shortcut, and press Finish. You can now use this shortcut to run WinBoard with Crafty. Double-click it to check that it works\r
-. You can drag or copy the shortcut into your Start menu if you like.\r
+\par }\pard\plain \s62\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Press Next, choose a name for the shortcut, and press Finish. You can now use this shortcut to run WinBoard with Crafty. Double-click it to check that it works. You c\r
+an drag or copy the shortcut into your Start menu if you like.\r
 \par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 5. To add Crafty as an option in the WinBoard Startup dialog, edit your }{\f1\uldb WinBoard.ini file}{\v\f1 Settings}{\f1 \r
  with Notepad or another plain text editor, carefully following the example shown under }{\f1\uldb /firstChessProgramNames}{\v\f1 firstChessProgramNames}{\f1  above.\r
 \par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\f1 For more information\r
@@ -2117,8 +2111,8 @@ e scope of this document, but see the SOCKS Web site at http://www.socks.nec.com
 K}{\f1  Limitations}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  Limitations}}${\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \r
 \f5\fs20\cgrid {\cs58\f1\super $}{\f1  Limitations}}+{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super +}{\f1  main}}}{\f1\fs18\up6  }{\f1\fs20 LIMITATIONS }{\f1\fs20\cf11 \r
 AND NON-LIMITATIONS}{\f1\fs20 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 WinBoard}{\i\f1  }{\f1 is a Win32 application. It runs only on Windows NT and Windo\r
-ws 95. It does not work on Windows 3.11 or earlier, even with the Win32s compatibility package.\r
+\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 WinBoard}{\i\f1  }{\f1 is a Win32 application. It runs only on Windows NT and Window\r
+s 95. It does not work on Windows 3.11 or earlier, even with the Win32s compatibility package.\r
 \par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\i\f1 CMail, }{\f1 the companion program to xboard for playing electronic mail correspondence chess, has not been ported to Win32.\r
 \par There is no way for two people running copies of WinBoard}{\i\f1  }{\f1 to play each other without going through the Internet Chess Server.\r
 \par Under some circumstances, your ICS password may be echoed when you log on.\r
@@ -2163,7 +2157,7 @@ on he added most of the adjudication options, made WinBoard ore robust in dealin
 \par }\pard\plain \s66\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cf11\cgrid {\f1 The WinBoard 4.3.xx line is being developed by H.G. Muller independently of the GNU Savannah xboard project. Bug reports on this version, and suggestions for impr\r
 ovements and additions, are best posted in the WinBoard forum, development section (}{\field{\*\fldinst {\f1  HYPERLINK http://www.open-aurec.com/wbforum) }{\f1 {\*\datafield \r
 00d0c9ea79f9bace118c8200aa004ba90b02000000170000002300000068007400740070003a002f002f007700770077002e006f00700065006e002d00610075007200650063002e0063006f006d002f007700620066006f00720075006d0029000000e0c9ea79f9bace118c8200aa004ba90b460000006800740074007000\r
-3a002f002f007700770077002e006f00700065006e002d00610075007200650063002e0063006f006d002f007700620066006f00720075006d0029000000000000000000000000}}}{\fldrslt {\cs59\ul\cf2 http://www.open-aurec.com/wbforum)}}}{\f1 .\r
+3a002f002f007700770077002e006f00700065006e002d00610075007200650063002e0063006f006d002f007700620066006f00720075006d002900000000000000000000000000}}}{\fldrslt {\cs59\ul\cf2 http://www.open-aurec.com/wbforum)}}}{\f1 .\r
 \par }{\f1\cf2 Michel van den Bergh provided the code for reading Polyglot opening books.\r
 \par Arun Persaud worked with H.G. Muller to combine all the features of the never-released WinBoard 4.2.8 of the Savannah project (mainly by Daniel Mehrmann), and the never-released 4.3.16 into a unified WinBoard 4.4, which is now available both from the Sava\r
 nnah web site and the WinBoard forum.\r
@@ -2173,11 +2167,11 @@ K}{\f1  Copyright}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0
 \par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Copyright 1991 by Digital Equipment Corporation, Maynard, Massachusetts. \line Enhancements Copyright 1992-2009 Free Software Foundation, Inc.\r
 \par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 The following terms apply to Digital Equipment Corporation's copyright interest in WinBoard:\r
 \par All Rights Reserved\r
-\par Permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee is hereby granted, provided that the above copyri\r
-ght notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation, and that the name of Digital not be used in advertising or publicity pertaining to distribution of the software without spec\r
-ific, written prior permission.\r
-\par DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAM\r
-AGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\r
+\par Permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee is hereby granted, provided\r
+ that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation, and that the name of Digital not be used in advertising or publicity pertaining to distribution of the\r
+ software without specific, written prior permission.\r
+\par DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENT\r
+IAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\r
 \par The following terms apply to the enhanced version of WinBoard distributed by the Free Software Foundation:\r
 \par This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.\r
 \par This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more details.\r
diff --git a/winboard/wsettings.c b/winboard/wsettings.c
new file mode 100644 (file)
index 0000000..8907a3b
--- /dev/null
@@ -0,0 +1,674 @@
+/*\r
+ * Engine-settings dialog. The complexity come from an attempt to present the engine-defined options\r
+ * in a nicey formatted layout. To this end we first run a back-end pre-formatter, which will distribute\r
+ * the controls over two columns (the minimum required, as some are double width). It also takes care of \r
+ * grouping options that start with the same word (mainly for "Polyglot ..." options). It assigns relative\r
+ * suitability to break points between lines, and in the end decides if and where to break up the list\r
+ * for display in multiple (2*N) columns.\r
+ * The thus obtained list representing the topology of the layout is then passed to a front-end routine\r
+ * that generates the actual dialog box from it.\r
+ */\r
+\r
+//#include "config.h"\r
+#include "config.h"\r
+\r
+#include <stdio.h>\r
+#include <string.h>\r
+#include "common.h"\r
+#include "backend.h"\r
+#include "backendz.h"\r
+\r
+int layoutList[2*MAX_OPTIONS];\r
+int checkList[2*MAX_OPTIONS];\r
+int comboList[2*MAX_OPTIONS];\r
+int buttonList[2*MAX_OPTIONS];\r
+int boxList[2*MAX_OPTIONS];\r
+int groupNameList[2*MAX_OPTIONS];\r
+int breaks[MAX_OPTIONS];\r
+int checks, combos, buttons, layout, groups;\r
+\r
+void\r
+PrintOpt(int i, int right, ChessProgramState *cps)\r
+{\r
+    if(i<0) {\r
+       if(!right) fprintf(debugFP, "%30s", "");\r
+    } else {\r
+       Option opt = cps->option[i];\r
+       switch(opt.type) {\r
+           case Slider:\r
+           case Spin:\r
+               fprintf(debugFP, "%20.20s [    +/-]", opt.name);\r
+               break;\r
+           case TextBox:\r
+           case FileName:\r
+           case PathName:\r
+               fprintf(debugFP, "%20.20s [______________________________________]", opt.name);\r
+               break;\r
+           case CheckBox:\r
+               fprintf(debugFP, "[x] %-26.25s", opt.name);\r
+               break;\r
+           case ComboBox:\r
+               fprintf(debugFP, "%20.20s [ COMBO ]", opt.name);\r
+               break;\r
+           case Button:\r
+           case SaveButton:\r
+               fprintf(debugFP, "[ %26.26s ]", opt.name);\r
+           case Message:\r
+               break;\r
+       }\r
+    }\r
+    fprintf(debugFP, right ? "\n" : " ");\r
+}\r
+\r
+void\r
+CreateOptionDialogTest(int *list, int nr, ChessProgramState *cps)\r
+{\r
+    int line;\r
+\r
+    for(line = 0; line < nr; line+=2) {\r
+       PrintOpt(list[line+1], 0, cps);\r
+       PrintOpt(list[line], 1, cps);\r
+    }\r
+}\r
+\r
+void\r
+LayoutOptions(int firstOption, int endOption, char *groupName, Option *optionList)\r
+{\r
+    int i, b = strlen(groupName), stop, prefix, right, nextOption, firstButton = buttons;\r
+    Control lastType, nextType;\r
+\r
+    nextOption = firstOption;\r
+    while(nextOption < endOption) {\r
+       checks = combos = 0; stop = 0;\r
+       lastType = Button; // kludge to make sure leading Spin will not be prefixed\r
+       // first separate out buttons for later treatment, and collect consecutive checks and combos\r
+       while(nextOption < endOption && !stop) {\r
+           switch(nextType = optionList[nextOption].type) {\r
+               case CheckBox: checkList[checks++] = nextOption; lastType = CheckBox; break;\r
+               case ComboBox: comboList[combos++] = nextOption; lastType = ComboBox; break;\r
+               case SaveButton:\r
+               case Button:  buttonList[buttons++] = nextOption; lastType = Button; break;\r
+               case TextBox:\r
+               case FileName:\r
+               case PathName:\r
+               case Slider:\r
+               case Spin: stop++;\r
+               case Message: ; // cannot happen\r
+           }\r
+           nextOption++;\r
+       }\r
+       // We now must be at the end, or looking at a spin or textbox (in nextType)\r
+       if(!stop) \r
+           nextType = Button; // kudge to flush remaining checks and combos undistorted\r
+       // Take a new line if a spin follows combos or checks, or when we encounter a textbox\r
+       if((combos+checks || nextType == TextBox) && layout&1) {\r
+           layoutList[layout++] = -1;\r
+       }\r
+       // The last check or combo before a spin will be put on the same line as that spin (prefix)\r
+       // and will thus not be grouped with other checks and combos\r
+       prefix = -1;\r
+       if(nextType == Spin && lastType != Button) {\r
+           if(lastType == CheckBox) prefix = checkList[--checks]; else\r
+           if(lastType == ComboBox) prefix = comboList[--combos];\r
+       }\r
+       // if a combo is followed by a textbox, it must stay at the end of the combo/checks list to appear\r
+       // immediately above the textbox, so treat it as check. (A check would automatically be and remain there.)\r
+       if(nextType == TextBox && lastType == ComboBox)\r
+           checkList[checks++] = comboList[--combos];\r
+       // Now append the checks behind the (remaining) combos to treat them as one group\r
+       for(i=0; i< checks; i++) \r
+           comboList[combos++] = checkList[i];\r
+       // emit the consecutive checks and combos in two columns\r
+       right = combos/2; // rounded down if odd!\r
+       for(i=0; i<right; i++) {\r
+           breaks[layout/2] = 2;\r
+           layoutList[layout++] = comboList[i];\r
+           layoutList[layout++] = comboList[i + right];\r
+       }\r
+       // An odd check or combo (which could belong to following textBox) will be put in the left column\r
+       // If there was an even number of checks and combos the last one will automatically be in that position\r
+       if(combos&1) {\r
+           layoutList[layout++] = -1;\r
+           layoutList[layout++] = comboList[2*right];\r
+       }\r
+       if(nextType == TextBox) {\r
+           // A textBox is double width, so must be left-adjusted, and the right column remains empty\r
+           breaks[layout/2] = lastType == Button ? 0 : 100;\r
+           layoutList[layout++] = -1;\r
+           layoutList[layout++] = nextOption - 1;\r
+       } else if(nextType == Spin) {\r
+           // A spin will go in the next available position (right to left!). If it had to be prefixed with\r
+           // a check or combo, this next position must be to the right, and the prefix goes left to it.\r
+           layoutList[layout++] = nextOption - 1;\r
+           if(prefix >= 0) layoutList[layout++] = prefix;\r
+       }\r
+    }\r
+    // take a new line if needed\r
+    if(layout&1) layoutList[layout++] = -1;\r
+    // emit the buttons belonging in this group; loose buttons are saved for last, to appear at bottom of dialog\r
+    if(b) {\r
+       while(buttons > firstButton)\r
+           layoutList[layout++] = buttonList[--buttons];\r
+       if(layout&1) layoutList[layout++] = -1;\r
+    }\r
+}\r
+\r
+char *\r
+EndMatch(char *s1, char *s2)\r
+{\r
+       char *p, *q;\r
+       p = s1; while(*p) p++;\r
+       q = s2; while(*q) q++;\r
+       while(p > s1 && q > s2 && *p == *q) { p--; q--; }\r
+       if(p[1] == 0) return NULL;\r
+       return p+1;\r
+}\r
+\r
+void\r
+DesignOptionDialog(ChessProgramState *cps)\r
+{\r
+    int k=0, n=0;\r
+    char buf[MSG_SIZ];\r
+\r
+    layout = 0;\r
+    buttons = groups = 0;\r
+    while(k < cps->nrOptions) { // k steps through 'solitary' options\r
+       // look if we hit a group of options having names that start with the same word\r
+       int groupSize = 1, groupNameLength = 50;\r
+       sscanf(cps->option[k].name, "%s", buf); // get first word of option name\r
+       while(k + groupSize < cps->nrOptions &&\r
+             strstr(cps->option[k+groupSize].name, buf) == cps->option[k+groupSize].name) {\r
+               int j;\r
+               for(j=0; j<groupNameLength; j++) // determine common initial part of option names\r
+                   if( cps->option[k].name[j] != cps->option[k+groupSize].name[j]) break;\r
+               groupNameLength = j;\r
+               groupSize++;\r
+               \r
+       }\r
+       if(groupSize > 3) {\r
+               // We found a group to terminates the current section\r
+               LayoutOptions(n, k, "", cps->option); // flush all solitary options appearing before the group\r
+               groupNameList[groups] = groupNameLength;\r
+               boxList[groups++] = layout; // group start in even entries\r
+               LayoutOptions(k, k+groupSize, buf, cps->option); // flush the group\r
+               boxList[groups++] = layout; // group end in odd entries\r
+               k = n = k + groupSize;\r
+#if 0\r
+       } else {\r
+               // try to recognize "two-column groups" based on option suffix\r
+               int j = 1;\r
+               while((p = EndMatch(cps->option[k].name, EndMatch(cps->option[k+2*j].name)) &&\r
+                     (q = EndMatch(cps->option[k+1].name, EndMatch(cps->option[k+2*j+1].name)) ) j++;\r
+#endif\r
+       } else k += groupSize; // small groups are grouped with the solitary options\r
+    }\r
+    if(n != k) LayoutOptions(n, k, "", cps->option); // flush remaining solitary options\r
+    // decide if and where we break into two column pairs\r
+    \r
+    // Emit buttons and add OK and cancel\r
+//    for(k=0; k<buttons; k++) layoutList[layout++] = buttonList[k];\r
+    // Create the dialog window\r
+    if(appData.debugMode) CreateOptionDialogTest(layoutList, layout, cps);\r
+//    CreateOptionDialog(layoutList, layout, cps);\r
+}\r
+\r
+#include <windows.h>\r
+\r
+extern HINSTANCE hInst;\r
+\r
+typedef struct {\r
+    DLGITEMTEMPLATE item;\r
+    WORD code;\r
+    WORD controlType;\r
+    wchar_t d1, data;\r
+    WORD creationData;\r
+} Item;\r
+\r
+struct {\r
+    DLGTEMPLATE header;\r
+    WORD menu;\r
+    WORD winClass;\r
+    wchar_t title[20];\r
+    WORD pointSize;\r
+    wchar_t fontName[14];\r
+    Item control[MAX_OPTIONS];\r
+} template = {\r
+    { DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | DS_SETFONT, 0, 0, 0, 0, 295, 300 },\r
+    0x0000, 0x0000, L"Engine #1 Settings ", 8, L"MS Sans Serif"\r
+};\r
+\r
+ChessProgramState *activeCps;\r
+\r
+void\r
+SetOptionValues(HWND hDlg, ChessProgramState *cps)\r
+// Put all current option values in controls, and write option names next to them\r
+{\r
+    HANDLE hwndCombo;\r
+    int i, k;\r
+    char **choices, title[MSG_SIZ], *name;\r
+\r
+    for(i=0; i<layout+buttons; i++) {\r
+       int j=layoutList[i];\r
+       if(j == -2) SetDlgItemText( hDlg, 2000+2*i, ". . ." );\r
+       if(j<0) continue;\r
+       name = cps->option[j].name;\r
+       if(strstr(name, "Polyglot ") == name) name += 9;\r
+       SetDlgItemText( hDlg, 2000+2*i, name );\r
+//if(appData.debugMode) fprintf(debugFP, "# %s = %d\n",cps->option[j].name, cps->option[j].value );\r
+       switch(cps->option[j].type) {\r
+           case Spin:\r
+               SetDlgItemInt( hDlg, 2001+2*i, cps->option[j].value, TRUE );\r
+               break;\r
+           case TextBox:\r
+               SetDlgItemText( hDlg, 2001+2*i, cps->option[j].textValue );\r
+               break;\r
+           case CheckBox:\r
+               CheckDlgButton( hDlg, 2000+2*i, cps->option[j].value != 0);\r
+               break;\r
+           case ComboBox:\r
+               choices = (char**) cps->option[j].textValue;\r
+               hwndCombo = GetDlgItem(hDlg, 2001+2*i);\r
+               SendMessage(hwndCombo, CB_RESETCONTENT, 0, 0);\r
+               for(k=0; k<cps->option[j].max; k++) {\r
+                   SendMessage(hwndCombo, CB_ADDSTRING, 0, (LPARAM) choices[k]);\r
+               }\r
+               SendMessage(hwndCombo, CB_SELECTSTRING, (WPARAM) -1, (LPARAM) choices[cps->option[j].value]);\r
+               break;\r
+           case Button:\r
+           case SaveButton:\r
+           default:\r
+               break;\r
+       }\r
+    }\r
+    SetDlgItemText( hDlg, IDOK, "OK" );\r
+    SetDlgItemText( hDlg, IDCANCEL, "Cancel" );\r
+    sprintf(title, "%s Engine Settings (%s)", cps->which, cps->tidy); \r
+    title[0] &= ~32; // capitalize\r
+    SetWindowText( hDlg, title);\r
+    for(i=0; i<groups; i+=2) { \r
+       int id, p; char buf[MSG_SIZ];\r
+       id = k = boxList[i];\r
+       if(layoutList[k] < 0) k++;\r
+       if(layoutList[k] < 0) continue;\r
+       for(p=0; p<groupNameList[i]; p++) buf[p] = cps->option[layoutList[k]].name[p];\r
+       buf[p] = 0;\r
+       SetDlgItemText( hDlg, 2000+2*(id+MAX_OPTIONS), buf );\r
+    }\r
+}\r
+\r
+\r
+void\r
+GetOptionValues(HWND hDlg, ChessProgramState *cps)\r
+// read out all controls, and if value is altered, remember it and send it to the engine\r
+{\r
+    HANDLE hwndCombo;\r
+    int i, k, new=0, changed=0;\r
+    char **choices, newText[MSG_SIZ], buf[MSG_SIZ];\r
+    BOOL success;\r
+\r
+    for(i=0; i<layout; i++) {\r
+       int j=layoutList[i];\r
+       if(j<0) continue;\r
+       switch(cps->option[j].type) {\r
+           case Spin:\r
+               new = GetDlgItemInt( hDlg, 2001+2*i, &success, TRUE );\r
+               if(!success) break;\r
+               if(new < cps->option[j].min) new = cps->option[j].min;\r
+               if(new > cps->option[j].max) new = cps->option[j].max;\r
+               changed = 2*(cps->option[j].value != new);\r
+               cps->option[j].value = new;\r
+               break;\r
+           case TextBox:\r
+           case FileName:\r
+           case PathName:\r
+               success = GetDlgItemText( hDlg, 2001+2*i, newText, MSG_SIZ - strlen(cps->option[j].name) - 9 );\r
+               if(!success) break;\r
+               changed = strcmp(cps->option[j].textValue, newText) != 0;\r
+               strcpy(cps->option[j].textValue, newText);\r
+               break;\r
+           case CheckBox:\r
+               new = IsDlgButtonChecked( hDlg, 2000+2*i );\r
+               changed = 2*(cps->option[j].value != new);\r
+               cps->option[j].value = new;\r
+               break;\r
+           case ComboBox:\r
+               choices = (char**) cps->option[j].textValue;\r
+               hwndCombo = GetDlgItem(hDlg, 2001+2*i);\r
+               success = GetDlgItemText( hDlg, 2001+2*i, newText, MSG_SIZ );\r
+               if(!success) break;\r
+               new = -1;\r
+               for(k=0; k<cps->option[j].max; k++) {\r
+                   if(!strcmp(choices[k], newText)) new = k;\r
+               }\r
+               changed = new >= 0 && (cps->option[j].value != new);\r
+               if(changed) cps->option[j].value = new;\r
+               break;\r
+           case Button:\r
+           default:\r
+               break; // are treated instantly, so they have been sent already\r
+       }\r
+       if(changed == 2) sprintf(buf, "option %s=%d\n", cps->option[j].name, new); else\r
+       if(changed == 1) sprintf(buf, "option %s=%s\n", cps->option[j].name, newText);\r
+       if(changed) SendToProgram(buf, cps);\r
+    }\r
+}\r
+\r
+LRESULT CALLBACK SettingsProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)\r
+{\r
+    char buf[MSG_SIZ];\r
+    int i, j;\r
+\r
+    switch( message )\r
+    {\r
+    case WM_INITDIALOG:\r
+\r
+//        CenterWindow(hDlg, GetWindow(hDlg, GW_OWNER));\r
+       SetOptionValues(hDlg, activeCps);\r
+\r
+//        SetFocus(GetDlgItem(hDlg, IDC_NFG_Edit));\r
+\r
+        break;\r
+\r
+    case WM_COMMAND:\r
+        switch( LOWORD(wParam) ) {\r
+        case IDOK:\r
+           GetOptionValues(hDlg, activeCps);\r
+            EndDialog( hDlg, 0 );\r
+            return TRUE;\r
+\r
+        case IDCANCEL:\r
+            EndDialog( hDlg, 1 );   \r
+            return TRUE;\r
+\r
+       default:\r
+           // program-defined push buttons\r
+           i = LOWORD(wParam);\r
+           if( i>=2000 &&  i < 2000+2*(layout+buttons)) {\r
+               j = layoutList[(i - 2000)/2];\r
+               if(j == -2) {\r
+                         char filter[] = \r
+                               "All files\0*.*\0BIN Files\0*.bin\0LOG Files\0*.log\0INI Files\0*.ini\0\0";\r
+/*\r
+{ \r
+                             'A','l','l',' ','F','i','l','e','s', 0,\r
+                             '*','.','*', 0,\r
+                             'B','I','N',' ','F','i','l','e','s', 0,\r
+                             '*','.','b','i','n', 0,\r
+                             0 };\r
+*/\r
+                         OPENFILENAME ofn;\r
+\r
+                         strcpy( buf, "" );\r
+\r
+                         ZeroMemory( &ofn, sizeof(ofn) );\r
+\r
+                         ofn.lStructSize = sizeof(ofn);\r
+                         ofn.hwndOwner = hDlg;\r
+                         ofn.hInstance = hInst;\r
+                         ofn.lpstrFilter = filter;\r
+                         ofn.lpstrFile = buf;\r
+                         ofn.nMaxFile = sizeof(buf);\r
+                         ofn.lpstrTitle = "Choose Book";\r
+                         ofn.Flags = OFN_FILEMUSTEXIST | OFN_LONGNAMES | OFN_HIDEREADONLY;\r
+\r
+                         if( GetOpenFileName( &ofn ) ) {\r
+                             SetDlgItemText( hDlg, i+3, buf );\r
+                         }\r
+               }\r
+               if(j < 0) break;\r
+               if( activeCps->option[j].type  == SaveButton)\r
+                    GetOptionValues(hDlg, activeCps);\r
+               else if( activeCps->option[j].type  != Button) break;\r
+               sprintf(buf, "option %s\n", activeCps->option[j].name);\r
+               SendToProgram(buf, activeCps);\r
+           }\r
+           break;\r
+        }\r
+\r
+        break;\r
+    }\r
+\r
+    return FALSE;\r
+}\r
+\r
+#if 0\r
+// example copied from MS docs\r
+#define ID_HELP   150\r
+#define ID_TEXT   200\r
+\r
+LPWORD lpwAlign(LPWORD lpIn)\r
+{\r
+    ULONG ul;\r
+\r
+    ul = (ULONG)lpIn;\r
+    ul ++;\r
+    ul >>=1;\r
+    ul <<=1;\r
+    return (LPWORD)ul;\r
+}\r
+\r
+LRESULT DisplayMyMessage(HINSTANCE hinst, HWND hwndOwner, LPSTR lpszMessage)\r
+{\r
+    HGLOBAL hgbl;\r
+    LPDLGTEMPLATE lpdt;\r
+    LPDLGITEMTEMPLATE lpdit;\r
+    LPWORD lpw;\r
+    LPWSTR lpwsz;\r
+    LRESULT ret;\r
+    int nchar;\r
+\r
+    hgbl = GlobalAlloc(GMEM_ZEROINIT, 1024);\r
+    if (!hgbl)\r
+        return -1;\r
\r
+    lpdt = (LPDLGTEMPLATE)GlobalLock(hgbl);\r
\r
+    // Define a dialog box.\r
\r
+    lpdt->style = WS_POPUP | WS_BORDER | WS_SYSMENU | DS_MODALFRAME | WS_CAPTION;\r
+//               WS_POPUP |             WS_SYSMENU | DS_MODALFRAME | WS_CAPTION | DS_SETFONT\r
+    lpdt->cdit = 3;         // Number of controls\r
+    lpdt->x  = 10;  lpdt->y  = 10;\r
+    lpdt->cx = 100; lpdt->cy = 100;\r
+\r
+    lpw = (LPWORD)(lpdt + 1);\r
+    *lpw++ = 0;             // No menu\r
+    *lpw++ = 0;             // Predefined dialog box class (by default)\r
+\r
+    lpwsz = (LPWSTR)lpw;\r
+    nchar = 1 + MultiByteToWideChar(CP_ACP, 0, "My Dialog", -1, lpwsz, 50);\r
+    lpw += nchar;\r
+\r
+    //-----------------------\r
+    // Define an OK button.\r
+    //-----------------------\r
+    lpw = lpwAlign(lpw);    // Align DLGITEMTEMPLATE on DWORD boundary\r
+    lpdit = (LPDLGITEMTEMPLATE)lpw;\r
+    lpdit->x  = 10; lpdit->y  = 70;\r
+    lpdit->cx = 80; lpdit->cy = 20;\r
+    lpdit->id = IDOK;       // OK button identifier\r
+    lpdit->style = WS_CHILD | WS_VISIBLE | BS_DEFPUSHBUTTON;\r
+\r
+    lpw = (LPWORD)(lpdit + 1);\r
+    *lpw++ = 0xFFFF;\r
+    *lpw++ = 0x0080;        // Button class\r
+\r
+    lpwsz = (LPWSTR)lpw;\r
+    nchar = 1 + MultiByteToWideChar(CP_ACP, 0, "OK", -1, lpwsz, 50);\r
+    lpw += nchar;\r
+    lpw = lpwAlign(lpw);    // Align creation data on DWORD boundary\r
+    *lpw++ = 0;             // No creation data\r
+\r
+    //-----------------------\r
+    // Define a Help button.\r
+    //-----------------------\r
+    lpw = lpwAlign(lpw);    // Align DLGITEMTEMPLATE on DWORD boundary\r
+    lpdit = (LPDLGITEMTEMPLATE)lpw;\r
+    lpdit->x  = 55; lpdit->y  = 10;\r
+    lpdit->cx = 40; lpdit->cy = 20;\r
+    lpdit->id = ID_HELP;    // Help button identifier\r
+    lpdit->style = WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON;\r
+\r
+    lpw = (LPWORD)(lpdit + 1);\r
+    *lpw++ = 0xFFFF;\r
+    *lpw++ = 0x0080;        // Button class atom\r
+\r
+    lpwsz = (LPWSTR)lpw;\r
+    nchar = 1 + MultiByteToWideChar(CP_ACP, 0, "Help", -1, lpwsz, 50);\r
+    lpw += nchar;\r
+    lpw = lpwAlign(lpw);    // Align creation data on DWORD boundary\r
+    *lpw++ = 0;             // No creation data\r
+\r
+    //-----------------------\r
+    // Define a static text control.\r
+    //-----------------------\r
+    lpw = lpwAlign(lpw);    // Align DLGITEMTEMPLATE on DWORD boundary\r
+    lpdit = (LPDLGITEMTEMPLATE)lpw;\r
+    lpdit->x  = 10; lpdit->y  = 10;\r
+    lpdit->cx = 40; lpdit->cy = 20;\r
+    lpdit->id = ID_TEXT;    // Text identifier\r
+    lpdit->style = WS_CHILD | WS_VISIBLE | SS_LEFT;\r
+\r
+    lpw = (LPWORD)(lpdit + 1);\r
+    *lpw++ = 0xFFFF;\r
+    *lpw++ = 0x0082;        // Static class\r
+\r
+    for (lpwsz = (LPWSTR)lpw; *lpwsz++ = (WCHAR)*lpszMessage++;);\r
+    lpw = (LPWORD)lpwsz;\r
+    lpw = lpwAlign(lpw);    // Align creation data on DWORD boundary\r
+    *lpw++ = 0;             // No creation data\r
+\r
+    GlobalUnlock(hgbl); \r
+    ret = DialogBoxIndirect(hinst, \r
+                           (LPDLGTEMPLATE)hgbl, \r
+                           hwndOwner, \r
+                           (DLGPROC)DialogProc); \r
+    GlobalFree(hgbl); \r
+    return ret; \r
+}\r
+#endif\r
+\r
+void AddControl(int x, int y, int w, int h, int type, int style, int n)\r
+{\r
+    int i;\r
+\r
+    i = template.header.cdit++;\r
+    template.control[i].item.style = style;\r
+    template.control[i].item.dwExtendedStyle = 0;\r
+    template.control[i].item.x = x;\r
+    template.control[i].item.y = y;\r
+    template.control[i].item.cx = w;\r
+    template.control[i].item.cy = h;\r
+    template.control[i].item.id = 2000 + n;\r
+    template.control[i].code = 0xFFFF;\r
+    template.control[i].controlType = type;\r
+    template.control[i].d1 = ' ';\r
+    template.control[i].data = 0;\r
+    template.control[i].creationData = 0;\r
+}\r
+\r
+void AddOption(int x, int y, Control type, int i)\r
+{\r
+\r
+    switch(type) {\r
+       case Slider:\r
+       case Spin:\r
+           AddControl(x, y+1, 95, 9, 0x0082, SS_ENDELLIPSIS | WS_VISIBLE | WS_CHILD, i);\r
+           AddControl(x+95, y, 50, 11, 0x0081, ES_AUTOHSCROLL | ES_NUMBER | WS_BORDER | WS_VISIBLE | WS_CHILD | WS_TABSTOP, i+1);\r
+           break;\r
+//     case TextBox:\r
+           AddControl(x, y+1, 95, 9, 0x0082, SS_ENDELLIPSIS | WS_VISIBLE | WS_CHILD, i);\r
+           AddControl(x+95, y, 190, 11, 0x0081, ES_AUTOHSCROLL | WS_BORDER | WS_VISIBLE | WS_CHILD | WS_TABSTOP, i+1);\r
+           break;\r
+       case TextBox:  // For now all text edits get a browse button, as long as -file and -path options are not yet implemented\r
+       case FileName:\r
+       case PathName:\r
+           AddControl(x, y+1, 95, 9, 0x0082, SS_ENDELLIPSIS | WS_VISIBLE | WS_CHILD, i);\r
+           AddControl(x+95, y, 180, 11, 0x0081, ES_AUTOHSCROLL | WS_BORDER | WS_VISIBLE | WS_CHILD | WS_TABSTOP, i+1);\r
+           AddControl(x+275, y, 20, 12, 0x0080, BS_PUSHBUTTON | WS_VISIBLE | WS_CHILD | WS_TABSTOP, i-2);\r
+           layoutList[i/2-1] = -2;\r
+           break;\r
+       case CheckBox:\r
+           AddControl(x, y, 145, 11, 0x0080, BS_AUTOCHECKBOX | WS_VISIBLE | WS_CHILD | WS_TABSTOP, i);\r
+           break;\r
+       case ComboBox:\r
+           AddControl(x, y+1, 95, 9, 0x0082, SS_ENDELLIPSIS | WS_VISIBLE | WS_CHILD, i);\r
+           AddControl(x+95, y-1, 50, 500, 0x0085, CBS_AUTOHSCROLL | CBS_DROPDOWN | WS_VISIBLE | WS_CHILD | WS_TABSTOP, i+1);\r
+           break;\r
+       case Button:\r
+       case SaveButton:\r
+           AddControl(x-2, y, 65, 13, 0x0080, BS_PUSHBUTTON | WS_VISIBLE | WS_CHILD, i);\r
+       case Message:\r
+           break;\r
+    }\r
+    \r
+}\r
+\r
+void\r
+CreateDialogTemplate(int *layoutList, int nr, ChessProgramState *cps)\r
+{\r
+    int i, j, x=1, y=0, buttonRows, breakPoint = -1, k=0;\r
+\r
+    template.header.cdit = 0;\r
+    template.header.cx = 307;\r
+    buttonRows = (buttons + 1 + 3)/4; // 4 per row, rounded up\r
+    if(nr > 50) { \r
+       breakPoint = (nr+2*buttonRows+1)/2 & ~1;\r
+       template.header.cx = 625;\r
+    }\r
+\r
+    for(i=0; i<nr; i++) {\r
+       if(k < groups && i == boxList[k]) {\r
+           y += 10;\r
+           AddControl(x+2, y+13*(i>>1)-2, 301, 13*(boxList[k+1]-boxList[k]>>1)+8, \r
+                                               0x0082, WS_VISIBLE | WS_CHILD | SS_BLACKFRAME, 2400);\r
+           AddControl(x+60, y+13*(i>>1)-6, 10*groupNameList[k]/3, 10, \r
+                                               0x0082, SS_ENDELLIPSIS | WS_VISIBLE | WS_CHILD, 2*(i+MAX_OPTIONS));\r
+       }\r
+       j = layoutList[i];\r
+       if(j >= 0)\r
+           AddOption(x+155-150*(i&1), y+13*(i>>1)+5, cps->option[j].type, 2*i);\r
+       if(k < groups && i+1 == boxList[k+1]) {\r
+           k += 2; y += 4;\r
+       }\r
+       if(i+1 == breakPoint) { x += 318; y = -13*(breakPoint>>1); }\r
+    }\r
+    // add butons at the bottom of dialog window\r
+    y += 13*(nr>>1)+5;\r
+\r
+    AddControl(x+275, y+18*(buttonRows-1), 25, 15, 0x0080, BS_PUSHBUTTON | WS_VISIBLE | WS_CHILD, IDOK-2000);\r
+    AddControl(x+235, y+18*(buttonRows-1), 35, 15, 0x0080, BS_PUSHBUTTON | WS_VISIBLE | WS_CHILD, IDCANCEL-2000);\r
+    for(i=0; i<buttons; i++) {\r
+       AddControl(x+70*(i%4)+5, y+18*(i/4), 65, 15, 0x0080, BS_PUSHBUTTON | WS_VISIBLE | WS_CHILD, 2*(nr+i));\r
+       layoutList[nr+i] = buttonList[i];\r
+    }\r
+    template.title[8] = cps == &first ? '1' :  '2';\r
+    template.header.cy = y += 18*buttonRows+2;\r
+    template.header.style &= ~WS_VSCROLL;\r
+#if 0\r
+    if(y > 300) {\r
+       template.header.cx = 295;\r
+       template.header.cy = 300;\r
+       template.header.style |= WS_VSCROLL;\r
+    }\r
+#endif\r
+}\r
+\r
+void \r
+EngineOptionsPopup(HWND hwnd, ChessProgramState *cps)\r
+{\r
+    FARPROC lpProc = MakeProcInstance( (FARPROC) SettingsProc, hInst );\r
+\r
+    activeCps = cps;\r
+    DesignOptionDialog(cps);\r
+    CreateDialogTemplate(layoutList, layout, cps);\r
+\r
+\r
+    DialogBoxIndirect( hInst, &template.header, hwnd, (DLGPROC)lpProc );\r
+\r
+    FreeProcInstance(lpProc);\r
+\r
+    return;\r
+}\r
+\r
+\r
index d5de474..147f584 100644 (file)
--- a/xboard.c
+++ b/xboard.c
@@ -1050,7 +1050,7 @@ XtResource clientResources[] = {
     { "localLineEditing", "localLineEditing", XtRBoolean,
        sizeof(Boolean), XtOffset(AppDataPtr, localLineEditing),
        XtRImmediate, (XtPointer) True }, /* not implemented, must be True */
-#ifdef ZIPPY
+#if ZIPPY
     { "zippyTalk", "zippyTalk", XtRBoolean,
        sizeof(Boolean), XtOffset(AppDataPtr, zippyTalk),
        XtRImmediate, (XtPointer) ZIPPY_TALK },
@@ -1257,6 +1257,9 @@ XtResource clientResources[] = {
     { "adjudicateLossThreshold", "adjudicateLossThreshold", XtRInt,
        sizeof(int), XtOffset(AppDataPtr, adjudicateLossThreshold),
        XtRImmediate, (XtPointer) 0},
+    { "adjudicateDrawMoves", "adjudicateDrawMoves", XtRInt,
+       sizeof(int), XtOffset(AppDataPtr, adjudicateDrawMoves),
+       XtRImmediate, (XtPointer) 0},
     { "pgnEventHeader", "pgnEventHeader", XtRString,
         sizeof(String), XtOffset(AppDataPtr, pgnEventHeader),
        XtRImmediate, (XtPointer) "Computer Chess Game" },
@@ -1725,6 +1728,7 @@ XrmOptionDescRec shellOptions[] = {
     { "-pgnExtendedInfo", "pgnExtendedInfo", XrmoptionSepArg, NULL },
     { "-hideThinkingFromHuman", "hideThinkingFromHuman", XrmoptionSepArg, NULL },
     { "-adjudicateLossThreshold", "adjudicateLossThreshold", XrmoptionSepArg, NULL },
+    { "-adjudicateDrawMoves", "adjudicateDrawMoves", XrmoptionSepArg, NULL },
     { "-pgnEventHeader", "pgnEventHeader", XrmoptionSepArg, NULL },
     { "-firstIsUCI", "firstIsUCI", XrmoptionSepArg, NULL },
     { "-secondIsUCI", "secondIsUCI", XrmoptionSepArg, NULL },
@@ -2114,6 +2118,19 @@ void InitDrawingSizes(BoardSize boardSize, int flags)
 }
 #endif
 
+void EscapeExpand(char *p, char *q)
+{      // [HGM] initstring: routine to shape up string arguments
+       while(*p++ = *q++) if(p[-1] == '\\')
+           switch(*q++) {
+               case 'n': p[-1] = '\n'; break;
+               case 'r': p[-1] = '\r'; break;
+               case 't': p[-1] = '\t'; break;
+               case '\\': p[-1] = '\\'; break;
+               case 0: *p = 0; return;
+               default: p[-1] = q[-1]; break;
+           }
+}
+
 int
 main(argc, argv)
      int argc;
@@ -2173,7 +2190,6 @@ main(argc, argv)
 #endif
 #endif
 
-
     setbuf(stdout, NULL);
     setbuf(stderr, NULL);
     debugFP = stderr;
@@ -2273,6 +2289,28 @@ main(argc, argv)
                              clientResources, XtNumber(clientResources),
                              NULL, 0);
 
+    { // [HGM] initstring: kludge to fix bad bug. expand '\n' characters in init string and computer string.
+       static char buf[MSG_SIZ];
+       EscapeExpand(buf, appData.initString);
+       appData.initString = strdup(buf);
+       EscapeExpand(buf, appData.secondInitString);
+       appData.secondInitString = strdup(buf);
+       EscapeExpand(buf, appData.firstComputerString);
+       appData.firstComputerString = strdup(buf);
+       EscapeExpand(buf, appData.secondComputerString);
+       appData.secondComputerString = strdup(buf);
+    }
+
+    if ((chessDir = (char *) getenv("CHESSDIR")) == NULL) {
+       chessDir = ".";
+    } else {
+       if (chdir(chessDir) != 0) {
+           fprintf(stderr, _("%s: can't cd to CHESSDIR: "), programName);
+           perror(chessDir);
+           exit(1);
+       }
+    }
+
     if (appData.debugMode && appData.nameOfDebugFile && strcmp(appData.nameOfDebugFile, "stderr")) {
        /* [DM] debug info to file [HGM] make the filename a command-line option, and allow it to remain stderr */
         if ((debugFP = fopen(appData.nameOfDebugFile, "w")) == NULL)  {
@@ -4120,14 +4158,18 @@ void HandleUserMove(w, event, prms, nprms)
        x >= 0 && y >= 0) {
        ChessSquare fromP;
        ChessSquare toP;
+       int frc;
 
        /* Check if clicking again on the same color piece */
        fromP = boards[currentMove][fromY][fromX];
        toP = boards[currentMove][y][x];
-       if ((WhitePawn <= fromP && fromP < WhiteKing && // [HGM] this test should go, as UserMoveTest now does it.
-            WhitePawn <= toP && toP <= WhiteKing) ||   //       For now I made it less critical by exempting King
-           (BlackPawn <= fromP && fromP < BlackKing && //       moves, to not interfere with FRC castlings.
-            BlackPawn <= toP && toP <= BlackKing)) {
+       frc = gameInfo.variant == VariantFischeRandom || gameInfo.variant == VariantCapaRandom;
+       if ((WhitePawn <= fromP && fromP <= WhiteKing && // [HGM] this test should go, as UserMoveTest now does it.
+            WhitePawn <= toP && toP <= WhiteKing &&
+            !(fromP == WhiteKing && toP == WhiteRook && frc)) ||   
+           (BlackPawn <= fromP && fromP <= BlackKing && 
+            BlackPawn <= toP && toP <= BlackKing &&
+            !(fromP == BlackKing && toP == BlackRook && frc))) {
            /* Clicked again on same color piece -- changed his mind */
            second = (x == fromX && y == fromY);
            if (appData.highlightDragging) {
index 0657847..e964ab3 100644 (file)
@@ -183,6 +183,7 @@ and XBoard adapts automatically.) If you play with an engine, the engine must
 be able to play the selected variant, or the command will be ignored.
 XBoard supports all major variants, such as xiangqi, shogi, chess, chess960,
 Capablanca Chess, shatranj, crazyhouse, bughouse.
+(But not every board size has built-in bitmaps for un-orthodox pieces!)
 @item Load Game
 @cindex Load Game, Menu Item
 Plays a game from a record file. The @kbd{g} key is a keyboard equivalent.
@@ -2201,12 +2202,21 @@ fairy         A catchall variant in which all piece types
 unknown       Catchall for other unknown variants
 @end example
 
+NOT ALL BOARDSIZES PROVIDE A COMPLETE SET OF BUILT-IN BITMAPS FOR ALL
+UN-ORTHODOX PIECES, though. Only in @code{boardSize} middling and bulky
+all 22 piece types are provided, while -boardSize petite has most
+of them. Archbishop, Chancellor and Amazon are supported in every
+size from petite to bulky. Kings or Amazons are substituted for
+missing bitmaps. You can still play variants needing un-orthodox
+pieces in other board sizes providing your own bitmaps through the
+@code{bitmapDirectory} or @code{pixmapDirectory} options.
+
 In the shuffle variants, XBoard now does shuffle the pieces, although
 you can still do it by hand using Edit Position.  Some variants are
 supported only in ICS mode, including bughouse, and
 kriegspiel.  The winning/drawing conditions in crazyhouse (off-board
-interposition on mate), losers, suicide, giveaway, atomic, and 3check
-are not fully understood.  
+interposition on mate) are not fully understood, but losers, suicide, 
+giveaway, atomic, and 3check should be OK.
 Berolina and cylinder chess can only be played with legality testing off.
 In crazyhouse, XBoard now does keep
 track of off-board pieces.  In shatranj it does implement the baring
index eea9818..c7e1e92 100644 (file)
@@ -661,7 +661,7 @@ void EngineOutputUpdate( FrontEndProgramStats * stats )
     if( clearMemo ) DoClearMemo(which);
 
     /* Update */
-    lastDepth[which] = depth;
+    lastDepth[which] = depth == 1 && ed.nodes == 0 ? 0 : depth; // [HGM] info-line kudge
     lastForwardMostMove[which] = forwardMostMove;
 
     if( ed.pv != 0 && ed.pv[0] == ' ' ) {
@@ -917,6 +917,7 @@ static void UpdateControls( EngineOutputData * ed )
         sprintf( s_time, "%d:%02d.%02d", time_secs / 60, time_secs % 60, time_cent );
 
         /* Put all together... */
+       if(ed->nodes == 0 && ed->score == 0 && ed->time == 0) sprintf( buf, "%3d\t", ed->depth ); else 
         sprintf( buf, "%3d  %s  %s\t%s\t", ed->depth, s_score, s_nodes, s_time );
 
         /* Add PV */
index 22737c1..da6a825 100644 (file)
@@ -1065,6 +1065,20 @@ void NewVariantPopUp()
     b_ok= XtCreateManagedWidget(_("  OK  "), commandWidgetClass, form, args, j);   
     XtAddCallback(b_ok, XtNcallback, NewVariantCallback, (XtPointer) 0);
 
+    j=0;
+    XtSetArg(args[j], XtNfromVert, buttonDesc[14].handle);  j++;
+//    XtSetArg(args[j], XtNheight, 70); j++;
+    XtSetArg(args[j], XtNbottom, XtChainBottom);  j++;
+    XtSetArg(args[j], XtNtop, XtChainBottom);  j++;
+    XtSetArg(args[j], XtNleft, XtChainLeft);  j++;
+    XtSetArg(args[j], XtNright, XtChainRight);  j++;
+    XtSetArg(args[j], XtNlabel, _("WARNING: variants with un-orthodox\n"
+                                 "pieces only have built-in bitmaps\n"
+                                 "for -boardSize middling, bulky and\n"
+                                 "petite, and substitute king or amazon\n"
+                                 "for missing bitmaps. (See manual.)")); j++;
+    XtCreateManagedWidget("warning", labelWidgetClass, form, args, j);
+
     XtRealizeWidget(popup);
     CatchDeleteWindow(popup, "NewVariantPopDown");
     
@@ -1459,17 +1473,20 @@ void CreateComboPopup(parent, name, n, mb)
 void SettingsPopUp(ChessProgramState *cps)
 {
     Arg args[16];
-    Widget popup, layout, dialog, edit, form, oldform, last, b_ok, b_cancel;
+    Widget popup, layout, dialog, edit, form, oldform, last, b_ok, b_cancel, leftMargin = NULL;
     Window root, child;
-    int x, y, i, j;
+    int x, y, i, j, height, width, h, c;
     int win_x, win_y;
     unsigned int mask;
     char def[80], *p, *q;
+    static char pane[6] = "paneX";
 
     // to do: start up second engine if needed
     if(!cps->initDone || !cps->nrOptions) return; // nothing to be done
     currentCps = cps;
 
+    if(cps->nrOptions > 50) width = 4; else if(cps->nrOptions>24) width = 2; else width = 1;
+    height = cps->nrOptions / width + 1;
     i = 0;
     XtSetArg(args[i], XtNresizable, True); i++;
     SettingsShell = popup =
@@ -1479,12 +1496,20 @@ void SettingsPopUp(ChessProgramState *cps)
     layout =
       XtCreateManagedWidget(layoutName, formWidgetClass, popup,
                            layoutArgs, XtNumber(layoutArgs));
-  
+  for(c=0; c<width; c++) {
+    pane[4] = 'A'+c;
     form =
-      XtCreateManagedWidget(layoutName, formWidgetClass, layout,
+      XtCreateManagedWidget(pane, formWidgetClass, layout,
                            formArgs, XtNumber(formArgs));
+    j=0;
+    XtSetArg(args[j], XtNfromHoriz, leftMargin);  j++;
+    XtSetValues(form, args, j);
+    leftMargin = form;
+
     last = NULL;
-    for(i=0; i<cps->nrOptions; i++) {
+    for(h=0; h<height; h++) {
+       i = h + c*height;
+        if(i >= cps->nrOptions) break;
        switch(cps->option[i].type) {
          case Spin:
            sprintf(def, "%d", cps->option[i].value);
@@ -1572,7 +1597,7 @@ void SettingsPopUp(ChessProgramState *cps)
            break;
        }
     }
-
+  }
     j=0;
     XtSetArg(args[j], XtNfromVert, last);  j++;
     XtSetArg(args[j], XtNbottom, XtChainBottom);  j++;
@@ -1724,5 +1749,4 @@ void XXXMenuProc(w, event, prms, nprms)
 {
    XXXPopUp();
 }
-#endif
-
+#endif
\ No newline at end of file