Merge branch 'v4.8.x'
authorArun Persaud <arun@nubati.net>
Sun, 6 Mar 2016 00:32:37 +0000 (16:32 -0800)
committerArun Persaud <arun@nubati.net>
Sun, 6 Mar 2016 00:32:37 +0000 (16:32 -0800)
98 files changed:
Makefile.am
args.h
backend.c
backend.h
board.c
book.c
common.h
dialogs.c
dialogs.h
draw.c
engineoutput.c
frontend.h
gtk/xboard.c
gtk/xoptions.c
gtk/xtimer.c
menus.c
moves.c
moves.h
parser.c
parser.h
pgntags.c
svg/BlackAxe.svg [new file with mode: 0644]
svg/BlackButterfly.svg [new file with mode: 0644]
svg/BlackCamel.svg [new file with mode: 0644]
svg/BlackCopper.svg [new file with mode: 0644]
svg/BlackCub.svg [new file with mode: 0644]
svg/BlackDragon.svg [new file with mode: 0644]
svg/BlackDuck.svg [new file with mode: 0644]
svg/BlackFlag.svg [new file with mode: 0644]
svg/BlackGnu.svg [new file with mode: 0644]
svg/BlackHat.svg [new file with mode: 0644]
svg/BlackIron.svg [new file with mode: 0644]
svg/BlackLShield.svg [new file with mode: 0644]
svg/BlackLeft.svg [new file with mode: 0644]
svg/BlackPegasus.svg [new file with mode: 0644]
svg/BlackRShield.svg [new file with mode: 0644]
svg/BlackRight.svg [new file with mode: 0644]
svg/BlackTower.svg [new file with mode: 0644]
svg/BlackUnicorn.svg
svg/BlackViking.svg [new file with mode: 0644]
svg/BlackWizard.svg [new file with mode: 0644]
svg/BlackWolf.svg [new file with mode: 0644]
svg/BlackZebra.svg [new file with mode: 0644]
svg/WhiteAxe.svg [new file with mode: 0644]
svg/WhiteButterfly.svg [new file with mode: 0644]
svg/WhiteCamel.svg [new file with mode: 0644]
svg/WhiteClaw.svg
svg/WhiteCopper.svg [new file with mode: 0644]
svg/WhiteCub.svg [new file with mode: 0644]
svg/WhiteDolphin.svg
svg/WhiteDragon.svg [new file with mode: 0644]
svg/WhiteDuck.svg [new file with mode: 0644]
svg/WhiteFlag.svg [new file with mode: 0644]
svg/WhiteGnu.svg [new file with mode: 0644]
svg/WhiteHSword.svg
svg/WhiteHat.svg [new file with mode: 0644]
svg/WhiteIron.svg [new file with mode: 0644]
svg/WhiteLShield.svg [new file with mode: 0644]
svg/WhiteLeft.svg [new file with mode: 0644]
svg/WhiteLeopard.svg
svg/WhiteLion.svg
svg/WhitePegasus.svg [new file with mode: 0644]
svg/WhitePromoHSword.svg
svg/WhitePromoSword.svg
svg/WhiteRShield.svg [new file with mode: 0644]
svg/WhiteRight.svg [new file with mode: 0644]
svg/WhiteSword.svg
svg/WhiteTower.svg [new file with mode: 0644]
svg/WhiteUnicorn.svg
svg/WhiteViking.svg [new file with mode: 0644]
svg/WhiteWizard.svg [new file with mode: 0644]
svg/WhiteWolf.svg [new file with mode: 0644]
svg/WhiteZebra.svg [new file with mode: 0644]
winboard/bitmaps/camel49o.bmp [new file with mode: 0644]
winboard/bitmaps/camel49s.bmp [new file with mode: 0644]
winboard/bitmaps/camel49w.bmp [new file with mode: 0644]
winboard/bitmaps/camel72o.bmp [new file with mode: 0644]
winboard/bitmaps/camel72s.bmp [new file with mode: 0644]
winboard/bitmaps/camel72w.bmp [new file with mode: 0644]
winboard/bitmaps/wolf49o.bmp [new file with mode: 0644]
winboard/bitmaps/wolf49s.bmp [new file with mode: 0644]
winboard/bitmaps/wolf49w.bmp [new file with mode: 0644]
winboard/bitmaps/wolf72o.bmp [new file with mode: 0644]
winboard/bitmaps/wolf72s.bmp [new file with mode: 0644]
winboard/bitmaps/wolf72w.bmp [new file with mode: 0644]
winboard/bitmaps/zebra49o.bmp [new file with mode: 0644]
winboard/bitmaps/zebra49s.bmp [new file with mode: 0644]
winboard/bitmaps/zebra72o.bmp [new file with mode: 0644]
winboard/bitmaps/zebra72s.bmp [new file with mode: 0644]
winboard/defaults.h
winboard/jaws.c
winboard/winboard.c
winboard/winboard.rc
winboard/woptions.c
winboard/wsettings.c
xaw/xboard.c
xaw/xoptions.c
xboard.texi

index 7378e7c..f202a12 100644 (file)
@@ -145,6 +145,27 @@ dist_svg_DATA = svg/icon_white.svg         svg/icon_black.svg      \
            svg/BlackHCrown.svg     svg/WhiteHCrown.svg       \
            svg/BlackDolphin.svg            svg/WhiteDolphin.svg      \
            svg/BlackClaw.svg       svg/WhiteClaw.svg         \
+           svg/BlackWolf.svg       svg/WhiteWolf.svg         \
+           svg/BlackCamel.svg      svg/WhiteCamel.svg        \
+           svg/BlackZebra.svg      svg/WhiteZebra.svg        \
+           svg/BlackGnu.svg        svg/WhiteGnu.svg          \
+           svg/BlackWizard.svg     svg/WhiteWizard.svg       \
+           svg/BlackViking.svg     svg/WhiteViking.svg       \
+           svg/BlackIron.svg       svg/WhiteIron.svg         \
+           svg/BlackCopper.svg     svg/WhiteCopper.svg       \
+           svg/BlackTower.svg      svg/WhiteTower.svg        \
+           svg/BlackDragon.svg     svg/WhiteDragon.svg       \
+           svg/BlackCub.svg        svg/WhiteCub.svg          \
+           svg/BlackButterfly.svg   svg/WhiteButterfly.svg    \
+           svg/BlackLeft.svg       svg/WhiteLeft.svg         \
+           svg/BlackRight.svg      svg/WhiteRight.svg        \
+           svg/BlackHat.svg        svg/WhiteHat.svg          \
+           svg/BlackRShield.svg            svg/WhiteRShield.svg      \
+           svg/BlackLShield.svg            svg/WhiteLShield.svg      \
+           svg/BlackAxe.svg        svg/WhiteAxe.svg          \
+           svg/BlackFlag.svg       svg/WhiteFlag.svg         \
+           svg/BlackDuck.svg       svg/WhiteDuck.svg         \
+           svg/BlackPegasus.svg            svg/WhitePegasus.svg      \
            svg/eo_Analyzing.svg     svg/eo_Black.svg          \
            svg/eo_Clear.svg         svg/eo_Ponder.svg         \
            svg/eo_Thinking.svg      svg/eo_Unknown.svg        \
diff --git a/args.h b/args.h
index 0cd2226..56d9916 100644 (file)
--- a/args.h
+++ b/args.h
@@ -517,6 +517,7 @@ ArgDescriptor argDescriptors[] = {
   { "themeNames", ArgString, (void *) &appData.themeNames, TRUE, (ArgIniType) "native -upf false -ub false -ubt false -pid \"\"\n" },
   { "addMasterOption", ArgMaster, NULL, FALSE, INVALID },
   { "installEngine", ArgInstall, (void *) &firstChessProgramNames, FALSE, (ArgIniType) "" },
+  { "installTheme", ArgInstall, (void *) &appData.themeNames, FALSE, (ArgIniType) "" },
   { "initialMode", ArgString, (void *) &appData.initialMode, FALSE, (ArgIniType) "" },
   { "mode", ArgString, (void *) &appData.initialMode, FALSE, INVALID },
   { "variant", ArgString, (void *) &appData.variant, FALSE, (ArgIniType) "normal" },
@@ -610,7 +611,8 @@ ArgDescriptor argDescriptors[] = {
   { "ub", ArgBoolean, (void *) &appData.useBorder, FALSE, INVALID },
   { "border", ArgFilename, (void *) &appData.border, TRUE, (ArgIniType) "" },
   { "finger", ArgFilename, (void *) &appData.finger, FALSE, (ArgIniType) "" },
-  { "inscriptions", ArgString, (void *) &appData.inscriptions, XBOARD, (ArgIniType) "" },
+  { "epd", ArgTrue, (void *) &appData.epd, FALSE, INVALID },
+  { "inscriptions", ArgString, (void *) &appData.inscriptions, FALSE, (ArgIniType) "" },
   { "autoInstall", ArgString, (void *) &appData.autoInstall, XBOARD, (ArgIniType) "" },
   { "fixedSize", ArgBoolean, (void *) &appData.fixedSize, TRUE, (ArgIniType) FALSE },
 
index 1b16f75..f2fc3f3 100644 (file)
--- a/backend.c
+++ b/backend.c
@@ -193,7 +193,6 @@ void GameEnds P((ChessMove result, char *resultDetails, int whosays));
 void EditPositionDone P((Boolean fakeRights));
 void PrintOpponents P((FILE *fp));
 void PrintPosition P((FILE *fp, int move));
-void StartChessProgram P((ChessProgramState *cps));
 void SendToProgram P((char *message, ChessProgramState *cps));
 void SendMoveToProgram P((int moveNum, ChessProgramState *cps));
 void ReceiveFromProgram P((InputSourceRef isr, VOIDSTAR closure,
@@ -297,6 +296,8 @@ int promoDefaultAltered;
 int keepInfo = 0; /* [HGM] to protect PGN tags in auto-step game analysis */
 static int initPing = -1;
 int border;       /* [HGM] width of board rim, needed to size seek graph  */
+char bestMove[MSG_SIZ];
+int solvingTime, totalTime;
 
 /* States for ics_getting_history */
 #define H_FALSE 0
@@ -442,6 +443,7 @@ char *currentDebugFile; // [HGM] debug split: to remember name
 char cmailMove[CMAIL_MAX_GAMES][MOVE_LEN], cmailMsg[MSG_SIZ];
 char bookOutput[MSG_SIZ*10], thinkOutput[MSG_SIZ*10], lastHint[MSG_SIZ];
 char thinkOutput1[MSG_SIZ*10];
+char promoRestrict[MSG_SIZ];
 
 ChessProgramState first, second, pairing;
 
@@ -514,7 +516,7 @@ AppData appData;
 Board boards[MAX_MOVES];
 /* [HGM] Following 7 needed for accurate legality tests: */
 signed char  castlingRank[BOARD_FILES]; // and corresponding ranks
-signed char  initialRights[BOARD_FILES];
+unsigned char initialRights[BOARD_FILES];
 int   nrCastlingRights; // For TwoKings, or to implement castling-unknown status
 int   initialRulePlies, FENrulePlies;
 FILE  *serverMoves = NULL; // next two for broadcasting (/serverMoves option)
@@ -1739,6 +1741,7 @@ InitBackEnd3 P((void))
             if(!blackPlaysFirst) {
                 startedFromPositionFile = TRUE;
                 CopyBoard(filePosition, boards[0]);
+                CopyBoard(initialPosition, boards[0]);
             }
        }
        if (initialMode == AnalyzeMode) {
@@ -2126,7 +2129,7 @@ StringToVariant (char *e)
     } else
     for (i=0; i<sizeof(variantNames)/sizeof(char*); i++) {
       if (p = StrCaseStr(e, variantNames[i])) {
-       if(p && i >= VariantShogi && (p != e || isalpha(p[strlen(variantNames[i])]))) continue;
+       if(p && i >= VariantShogi && (p != e && !appData.icsActive || isalpha(p[strlen(variantNames[i])]))) continue;
        v = (VariantClass) i;
        found = TRUE;
        break;
@@ -4160,6 +4163,7 @@ read_from_ics (InputSourceRef isr, VOIDSTAR closure, char *data, int count, int
                          fprintf(debugFP, "Sending premove:\n");
                        SendToICS(str);
                      } else if (gotPremove) {
+                       int oldFMM = forwardMostMove;
                        gotPremove = 0;
                        ClearPremoveHighlights();
                        if (appData.debugMode)
@@ -4167,6 +4171,13 @@ read_from_ics (InputSourceRef isr, VOIDSTAR closure, char *data, int count, int
                           UserMoveEvent(premoveFromX, premoveFromY,
                                        premoveToX, premoveToY,
                                         premovePromoChar);
+                       if(forwardMostMove == oldFMM) { // premove was rejected, highlight last opponent move
+                         if(moveList[oldFMM-1][1] != '@')
+                           SetHighlights(moveList[oldFMM-1][0]-AAA, moveList[oldFMM-1][1]-ONE,
+                                         moveList[oldFMM-1][2]-AAA, moveList[oldFMM-1][3]-ONE);
+                         else // (drop)
+                           SetHighlights(-1, -1, moveList[oldFMM-1][2]-AAA, moveList[oldFMM-1][3]-ONE);
+                       }
                      }
                    }
 
@@ -4887,13 +4898,13 @@ ParseBoard12 (char *string)
                   if(fromY == DROP_RANK && k==toY && j==toX) continue; // dropped pieces always stand for themselves
                   old = (k==toY && j==toX) ? boards[moveNum-1][fromY][fromX] : boards[moveNum-1][k][j]; // trace back mover
                   if(old == new) continue;
-                  if(old == PROMOTED new) boards[moveNum][k][j] = old; // prevent promoted pieces to revert to primordial ones
+                  if(old == PROMOTED(new)) boards[moveNum][k][j] = old;// prevent promoted pieces to revert to primordial ones
                   else if(new == WhiteWazir || new == BlackWazir) {
                       if(old < WhiteCannon || old >= BlackPawn && old < BlackCannon)
-                           boards[moveNum][k][j] = PROMOTED old; // choose correct type of Gold in promotion
+                           boards[moveNum][k][j] = PROMOTED(old); // choose correct type of Gold in promotion
                       else boards[moveNum][k][j] = old; // preserve type of Gold
                   } else if((old == WhitePawn || old == BlackPawn) && new != EmptySquare) // Pawn promotions (but not e.p.capture!)
-                      boards[moveNum][k][j] = PROMOTED new; // use non-primordial representation of chosen piece
+                      boards[moveNum][k][j] = PROMOTED(new); // use non-primordial representation of chosen piece
               }
          } else {
            /* Move from ICS was illegal!?  Punt. */
@@ -5143,16 +5154,18 @@ SendMoveToProgram (int moveNum, ChessProgramState *cps)
       } else
       if(moveList[moveNum][4] == ';') { // [HGM] lion: move is double-step over intermediate square
        char *m = moveList[moveNum];
+       static char c[2];
+       *c = m[7]; // promoChar
        if((boards[moveNum][m[6]-ONE][m[5]-AAA] < BlackPawn) == (boards[moveNum][m[1]-ONE][m[0]-AAA] < BlackPawn)) // move is kludge to indicate castling
          snprintf(buf, MSG_SIZ, "%c%d%c%d,%c%d%c%d\n", m[0], m[1] - '0', // convert to two moves
                                               m[2], m[3] - '0',
                                               m[5], m[6] - '0',
                                               m[2] + (m[0] > m[5] ? 1 : -1), m[3] - '0');
        else
-         snprintf(buf, MSG_SIZ, "%c%d%c%d,%c%d%c%d\n", m[0], m[1] - '0', // convert to two moves
+         snprintf(buf, MSG_SIZ, "%c%d%c%d,%c%d%c%d%s\n", m[0], m[1] - '0', // convert to two moves
                                               m[5], m[6] - '0',
                                               m[5], m[6] - '0',
-                                              m[2], m[3] - '0');
+                                              m[2], m[3] - '0', c);
          SendToProgram(buf, cps);
       } else
       if(BOARD_HEIGHT > 10) { // [HGM] big: convert ranks to double-digit where needed
@@ -5335,7 +5348,7 @@ UploadGameEvent ()
     SendToICS(ics_type == ICS_ICC ? "tag result Game in progress\n" : "commit\n");
 }
 
-int killX = -1, killY = -1, kill2X, kill2Y; // [HGM] lion: used for passing e.p. capture square to MakeMove
+int killX = -1, killY = -1, kill2X = -1, kill2Y = -1; // [HGM] lion: used for passing e.p. capture square to MakeMove
 int legNr = 1;
 
 void
@@ -5356,6 +5369,10 @@ CoordsToComputerAlgebraic (int rf, int ff, int rt, int ft, char promoChar, char
        } else {
            sprintf(move, "%c%c%c%c%c\n",
                     AAA + ff, ONE + rf, AAA + ft, ONE + rt, promoChar);
+         if(killX >= 0 && killY >= 0) {
+           sprintf(move+4, ";%c%c\n", AAA + killX, ONE + killY);
+           if(kill2X >= 0 && kill2Y >= 0) sprintf(move+7, "%c%c%c\n", AAA + killX, ONE + killY, promoChar);
+         }
        }
     }
 }
@@ -5378,12 +5395,22 @@ int dragging;
 static ClickType lastClickType;
 
 int
+PieceInString (char *s, ChessSquare piece)
+{
+  char *p, ID = ToUpper(PieceToChar(piece)), suffix = PieceSuffix(piece);
+  while((p = strchr(s, ID))) {
+    if(!suffix || p[1] == suffix) return TRUE;
+    s = p;
+  }
+  return FALSE;
+}
+
+int
 Partner (ChessSquare *p)
 { // change piece into promotion partner if one shogi-promotes to the other
-  int stride = gameInfo.variant == VariantChu ? 22 : 11;
-  ChessSquare partner;
-  partner = (*p/stride & 1 ? *p - stride : *p + stride);
+  ChessSquare partner = promoPartner[*p];
   if(PieceToChar(*p) != '+' && PieceToChar(partner) != '+') return 0;
+  if(PieceToChar(*p) == '+') partner = boards[currentMove][fromY][fromX];
   *p = partner;
   return 1;
 }
@@ -5406,8 +5433,10 @@ Sweep (int step)
        else if(promoSweep == BlackPawn && step < 0 && !toggleFlag) promoSweep = WhitePawn;
        else if(promoSweep == WhiteKing && step > 0 && !toggleFlag) promoSweep = BlackKing;
        if(!step) step = -1;
-    } while(PieceToChar(promoSweep) == '.' || PieceToChar(promoSweep) == '~' || promoSweep == pawn ||
+    } while(PieceToChar(promoSweep) == '.' || PieceToChar(promoSweep) == '~' ||
            !toggleFlag && PieceToChar(promoSweep) == '+' || // skip promoted versions of other
+           promoRestrict[0] ? !PieceInString(promoRestrict, promoSweep) : // if choice set available, use it 
+           promoSweep == pawn ||
            appData.testLegality && (promoSweep == king || gameInfo.variant != VariantChuChess &&
             (promoSweep == WhiteLion || promoSweep == BlackLion)));
     if(toX >= 0) {
@@ -5542,6 +5571,7 @@ ParseOneMove (char *move, int moveNum, ChessMove *moveType, int *fromX, int *fro
         *toX = currentMoveString[2] - AAA;
         *toY = currentMoveString[3] - ONE;
        *promoChar = currentMoveString[4];
+       if(*promoChar == ';') *promoChar = currentMoveString[7];
         if (*fromX < BOARD_LEFT || *fromX >= BOARD_RGHT || *fromY < 0 || *fromY >= BOARD_HEIGHT ||
             *toX < BOARD_LEFT || *toX >= BOARD_RGHT || *toY < 0 || *toY >= BOARD_HEIGHT) {
     if (appData.debugMode) {
@@ -5659,21 +5689,26 @@ ParsePV (char *pv, Boolean storeComments, Boolean atEnd)
 }
 
 int
-MultiPV (ChessProgramState *cps)
+MultiPV (ChessProgramState *cps, int kind)
 {      // check if engine supports MultiPV, and if so, return the number of the option that sets it
        int i;
-       for(i=0; i<cps->nrOptions; i++)
-           if(!strcmp(cps->option[i].name, "MultiPV") && cps->option[i].type == Spin)
-               return i;
+       for(i=0; i<cps->nrOptions; i++) {
+           char *s = cps->option[i].name;
+           if((kind & 1) && !StrCaseCmp(s, "MultiPV") && cps->option[i].type == Spin) return i;
+           if((kind & 2) && StrCaseStr(s, "multi") && StrCaseStr(s, "PV")
+                         && StrCaseStr(s, "margin") && cps->option[i].type == Spin) return -i-2;
+       }
        return -1;
 }
 
 Boolean extendGame; // signals to UnLoadPV() if walked part of PV has to be appended to game
+static int multi, pv_margin;
+static ChessProgramState *activeCps;
 
 Boolean
 LoadMultiPV (int x, int y, char *buf, int index, int *start, int *end, int pane)
 {
-       int startPV, multi, lineStart, origIndex = index;
+       int startPV, lineStart, origIndex = index;
        char *p, buf2[MSG_SIZ];
        ChessProgramState *cps = (pane ? &second : &first);
 
@@ -5687,14 +5722,22 @@ LoadMultiPV (int x, int y, char *buf, int index, int *start, int *end, int pane)
        do{ while(buf[index] && buf[index] != '\n') index++;
        } while(buf[index] == '\n' && buf[index+1] == '\\' && buf[index+2] == ' ' && index++); // join kibitzed PV continuation line
        buf[index] = 0;
-       if(lineStart == 0 && gameMode == AnalyzeMode && (multi = MultiPV(cps)) >= 0) {
-               int n = cps->option[multi].value;
-               if(origIndex > 17 && origIndex < 24) { if(n>1) n--; } else if(origIndex > index - 6) n++;
+       if(lineStart == 0 && gameMode == AnalyzeMode) {
+           int n = 0;
+           if(origIndex > 17 && origIndex < 24) n--; else if(origIndex > index - 6) n++;
+           if(n == 0) { // click not on "fewer" or "more"
+               if((multi = -2 - MultiPV(cps, 2)) >= 0) {
+                   pv_margin = cps->option[multi].value;
+                   activeCps = cps; // non-null signals margin adjustment
+               }
+           } else if((multi = MultiPV(cps, 1)) >= 0) {
+               n += cps->option[multi].value; if(n < 1) n = 1;
                snprintf(buf2, MSG_SIZ, "option MultiPV=%d\n", n);
                if(cps->option[multi].value != n) SendToProgram(buf2, cps);
                cps->option[multi].value = n;
                *start = *end = 0;
                return FALSE;
+           }
        } else if(strstr(buf+lineStart, "exclude:") == buf+lineStart) { // exclude moves clicked
                ExcludeClick(origIndex - lineStart);
                return FALSE;
@@ -5742,6 +5785,16 @@ void
 UnLoadPV ()
 {
   int oldFMM = forwardMostMove; // N.B.: this was currentMove before PV was loaded!
+  if(activeCps) {
+    if(pv_margin != activeCps->option[multi].value) {
+      char buf[MSG_SIZ];
+      snprintf(buf, MSG_SIZ, "option %s=%d\n", "Multi-PV Margin", pv_margin);
+      SendToProgram(buf, activeCps);
+      activeCps->option[multi].value = pv_margin;
+    }
+    activeCps = NULL;
+    return;
+  }
   if(endPV < 0) return;
   if(appData.autoCopyPV) CopyFENToClipboard();
   endPV = -1;
@@ -5770,6 +5823,17 @@ MovePV (int x, int y, int h)
 { // step through PV based on mouse coordinates (called on mouse move)
   int margin = h>>3, step = 0, threshold = (pieceSweep == EmptySquare ? 10 : 15);
 
+  if(activeCps) { // adjusting engine's multi-pv margin
+    if(x > lastX) pv_margin++; else
+    if(x < lastX) pv_margin -= (pv_margin > 0);
+    if(x != lastX) {
+      char buf[MSG_SIZ];
+      snprintf(buf, MSG_SIZ, "margin = %d", pv_margin);
+      DisplayMessage(buf, "");
+    }
+    lastX = x;
+    return;
+  }
   // we must somehow check if right button is still down (might be released off board!)
   if(endPV < 0 && pieceSweep == EmptySquare) return; // needed in XBoard because lastX/Y is shared :-(
   if(abs(x - lastX) < threshold && abs(y - lastY) < threshold) return;
@@ -5955,7 +6019,7 @@ ptclen (const char *s, char *escapes)
 {
     int n = 0;
     if(!*escapes) return strlen(s);
-    while(*s) n += (*s != ':' && !strchr(escapes, *s)), s++;
+    while(*s) n += (*s != '/' && *s != '-' && *s != '^' && *s != '*' && !strchr(escapes, *s)) - 2*(*s == '='), s++;
     return n;
 }
 
@@ -5965,27 +6029,57 @@ SetCharTableEsc (unsigned char *table, const char * map, char * escapes)
 /*       Basically a safe strcpy that uses the last character as King */
 {
     int result = FALSE; int NrPieces;
+    unsigned char partner[EmptySquare];
 
     if( map != NULL && (NrPieces=ptclen(map, escapes)) <= (int) EmptySquare
                     && NrPieces >= 12 && !(NrPieces&1)) {
-        int i, j = 0; /* [HGM] Accept even length from 12 to 88 */
+        int i, ii, offs, j = 0; /* [HGM] Accept even length from 12 to 88 */
 
         for( i=0; i<(int) EmptySquare; i++ ) table[i] = '.';
-        for( i=0; i<NrPieces/2-1; i++ ) {
-            char *p;
-            if(map[j] == ':' && *escapes) i = CHUPROMOTED WhitePawn, j++;
-            table[i] = map[j++];
-            if(p = strchr(escapes, map[j])) j++, table[i] += 64*(p - escapes + 1);
+        for( i=offs=0; i<NrPieces/2-1; i++ ) {
+            char *p, c=0;
+            if(map[j] == '/') offs = WhitePBishop - i, j++;
+            if(*escapes && (map[j] == '*' || map[j] == '-' || map[j] == '^')) c = map[j++];
+            table[i+offs] = map[j++];
+            if(p = strchr(escapes, map[j])) j++, table[i+offs] += 64*(p - escapes + 1);
+            if(c) partner[i+offs] = table[i+offs], table[i+offs] = c;
+            if(*escapes && map[j] == '=') pieceNickName[i+offs] = map[++j], j++;
         }
         table[(int) WhiteKing]  = map[j++];
-        for( i=0; i<NrPieces/2-1; i++ ) {
-            char *p;
-            if(map[j] == ':' && *escapes) i = CHUPROMOTED WhitePawn, j++;
-            table[WHITE_TO_BLACK i] = map[j++];
-            if(p = strchr(escapes, map[j])) j++, table[WHITE_TO_BLACK i] += 64*(p - escapes + 1);
+        for( ii=offs=0; ii<NrPieces/2-1; ii++ ) {
+            char *p, c=0;
+            if(map[j] == '/') offs = WhitePBishop - ii, j++;
+            i = WHITE_TO_BLACK ii;
+            if(*escapes && (map[j] == '*' || map[j] == '-' || map[j] == '^')) c = map[j++];
+            table[i+offs] = map[j++];
+            if(p = strchr(escapes, map[j])) j++, table[i+offs] += 64*(p - escapes + 1);
+            if(c) partner[i+offs] = table[i+offs], table[i+offs] = c;
+            if(*escapes && map[j] == '=') pieceNickName[i+offs] = map[++j], j++;
         }
         table[(int) BlackKing]  = map[j++];
 
+
+        if(*escapes) { // set up promotion pairing
+            for( i=0; i<(int) EmptySquare; i++ ) promoPartner[i] = (i%BlackPawn < 11 ? i + 11 : i%BlackPawn < 22 ? i - 11 : i); // default
+            // pieceToChar entirely filled, so we can look up specified partners
+            for(i=0; i<EmptySquare; i++) { // adjust promotion pairing
+                int c = table[i];
+                if(c == '^' || c == '-') { // has specified partner
+                    int p;
+                    for(p=0; p<EmptySquare; p++) if(table[p] == partner[i]) break;
+                    if(c == '^') table[i] = '+';
+                    if(p < EmptySquare) {
+                        if(promoPartner[promoPartner[p]] == p) promoPartner[promoPartner[p]] = promoPartner[p]; // divorce old partners
+                        if(promoPartner[promoPartner[i]] == i) promoPartner[promoPartner[i]] = promoPartner[i];
+                        promoPartner[p] = i, promoPartner[i] = p; // and marry this couple
+                    }
+                } else if(c == '*') {
+                    table[i] = partner[i];
+                    promoPartner[i] = (i < BlackPawn ? WhiteTokin : BlackTokin); // promotes to Tokin
+                }
+            }
+        }
+
         result = TRUE;
     }
 
@@ -6078,7 +6172,7 @@ InitPosition (int redraw)
       initialPosition[CASTLING][i] = initialRights[i] = NoRights; /* but no rights yet */
     initialPosition[EP_STATUS] = EP_NONE;
     initialPosition[TOUCHED_W] = initialPosition[TOUCHED_B] = 0;
-    SetCharTable(pieceToChar, "PNBRQ...........Kpnbrq...........k");
+    SetCharTableEsc(pieceToChar, "PNBRQ...........Kpnbrq...........k", SUFFIXES);
     if(startVariant == gameInfo.variant) // [HGM] nicks: enable nicknames in original variant
          SetCharTable(pieceNickName, appData.pieceNickNames);
     else SetCharTable(pieceNickName, "............");
@@ -6171,8 +6265,8 @@ InitPosition (int redraw)
       gameInfo.boardWidth  = 12;
       gameInfo.boardHeight = 12;
       nrCastlingRights = 0;
-      SetCharTableEsc(pieceToChar, "P.BRQSEXOGCATHD.VMLIFN:+.++.++++++++++.+++++K"
-                                   "p.brqsexogcathd.vmlifn:+.++.++++++++++.+++++k", SUFFIXES);
+      SetCharTableEsc(pieceToChar, "P.BRQSEXOGCATHD.VMLIFN.........^T..^L......^A^H/^F^G^M.^E^X^O^I.^P.^B^R..^D^S^C^VK"
+                                   "p.brqsexogcathd.vmlifn.........^t..^l......^a^h/^f^g^m.^e^x^o^i.^p.^b^r..^d^s^c^vk", SUFFIXES);
       break;
     case VariantCourier:
       pieces = CourierArray;
@@ -6398,11 +6492,11 @@ SendBoard (ChessProgramState *cps, int moveNum)
          if ((int) *bp < (int) BlackPawn) {
            if(j == BOARD_RGHT+1)
                 snprintf(message, MSG_SIZ, "%c@%d\n", PieceToChar(*bp), bp[-1]);
-           else snprintf(message, MSG_SIZ, "%c%c%c\n", PieceToChar(*bp), AAA + j, ONE + i);
+           else snprintf(message, MSG_SIZ, "%c%c%d\n", PieceToChar(*bp), AAA + j, ONE + i - '0');
             if(message[0] == '+' || message[0] == '~') {
-             snprintf(message, MSG_SIZ,"%c%c%c+\n",
-                        PieceToChar((ChessSquare)(DEMOTED *bp)),
-                        AAA + j, ONE + i);
+             snprintf(message, MSG_SIZ,"%c%c%d+\n",
+                        PieceToChar((ChessSquare)(DEMOTED(*bp))),
+                        AAA + j, ONE + i - '0');
             }
             if(cps->alphaRank) { /* [HGM] shogi: translate coords */
                 message[1] = BOARD_RGHT   - 1 - j + '1';
@@ -6422,12 +6516,12 @@ SendBoard (ChessProgramState *cps, int moveNum)
              && ((int) *bp >= (int) BlackPawn)) {
            if(j == BOARD_LEFT-2)
                 snprintf(message, MSG_SIZ, "%c@%d\n", ToUpper(PieceToChar(*bp)), bp[1]);
-           else snprintf(message,MSG_SIZ, "%c%c%c\n", ToUpper(PieceToChar(*bp)),
-                    AAA + j, ONE + i);
+           else snprintf(message,MSG_SIZ, "%c%c%d\n", ToUpper(PieceToChar(*bp)),
+                    AAA + j, ONE + i - '0');
             if(message[0] == '+' || message[0] == '~') {
-             snprintf(message, MSG_SIZ,"%c%c%c+\n",
-                        PieceToChar((ChessSquare)(DEMOTED *bp)),
-                        AAA + j, ONE + i);
+             snprintf(message, MSG_SIZ,"%c%c%d+\n",
+                        PieceToChar((ChessSquare)(DEMOTED(*bp))),
+                        AAA + j, ONE + i - '0');
             }
             if(cps->alphaRank) { /* [HGM] shogi: translate coords */
                 message[1] = BOARD_RGHT   - 1 - j + '1';
@@ -6591,9 +6685,8 @@ HasPromotionChoice (int fromX, int fromY, int toX, int toY, char *promoChoice, i
 
     piece = boards[currentMove][fromY][fromX];
     if(gameInfo.variant == VariantChu) {
-        int p = piece >= BlackPawn ? BLACK_TO_WHITE piece : piece;
         promotionZoneSize = BOARD_HEIGHT/3;
-        highestPromotingPiece = (p >= WhiteLion || PieceToChar(piece + 22) == '.') ? WhitePawn : WhiteLion;
+        highestPromotingPiece = (PieceToChar(piece) == '+' || PieceToChar(CHUPROMOTED(piece)) != '+') ? WhitePawn : WhiteKing;
     } else if(gameInfo.variant == VariantShogi) {
         promotionZoneSize = BOARD_HEIGHT/3 +(BOARD_HEIGHT == 8);
         highestPromotingPiece = (int)WhiteAlfil;
@@ -6658,7 +6751,7 @@ HasPromotionChoice (int fromX, int fromY, int toX, int toY, char *promoChoice, i
            *promoChoice = PieceToChar(p++);
            if(*promoChoice != '.') break;
        }
-       return FALSE;
+       if(!*engineVariant) return FALSE; // if used as parent variant there might be promotion choice
     }
     // no sense asking what we must promote to if it is going to explode...
     if(gameInfo.variant == VariantAtomic && boards[currentMove][toY][toX] != EmptySquare) {
@@ -6875,7 +6968,7 @@ int doubleClick;
 Boolean addToBookFlag;
 
 void
-UserMoveEvent(int fromX, int fromY, int toX, int toY, int promoChar)
+UserMoveEvent (int fromX, int fromY, int toX, int toY, int promoChar)
 {
     ChessMove moveType;
     ChessSquare pup;
@@ -6959,6 +7052,7 @@ UserMoveEvent(int fromX, int fromY, int toX, int toY, int promoChar)
                            "fromY %d, toX %d, toY %d\n",
                            fromX, fromY, toX, toY);
            }
+            DrawPosition(TRUE, boards[currentMove]); // [HGM] repair animation damage done by premove (in particular emptying from-square)
             return;
        }
        break;
@@ -6980,6 +7074,7 @@ UserMoveEvent(int fromX, int fromY, int toX, int toY, int promoChar)
                            "fromY %d, toX %d, toY %d\n",
                            fromX, fromY, toX, toY);
            }
+            DrawPosition(TRUE, boards[currentMove]);
             return;
        }
        break;
@@ -6996,11 +7091,9 @@ UserMoveEvent(int fromX, int fromY, int toX, int toY, int promoChar)
            return;
        } else if (toX >= 0 && toY >= 0) {
            if(!appData.pieceMenu && toX == fromX && toY == fromY && boards[0][rf][ff] != EmptySquare) {
-               ChessSquare q, p = boards[0][rf][ff];
-               if(p >= BlackPawn) p = BLACK_TO_WHITE p;
-               if(CHUPROMOTED p < BlackPawn) p = q = CHUPROMOTED boards[0][rf][ff];
-               else p = CHUDEMOTED (q = boards[0][rf][ff]);
-               if(PieceToChar(q) == '+') gatingPiece = p;
+               ChessSquare p = boards[0][rf][ff];
+               if(PieceToChar(p) == '+') gatingPiece = CHUDEMOTED(p); else
+               if(PieceToChar(CHUPROMOTED(p)) =='+') gatingPiece = CHUPROMOTED(p); 
            }
            boards[0][toY][toX] = boards[0][fromY][fromX];
            if(fromX == BOARD_LEFT-2) { // handle 'moves' out of holdings
@@ -7016,6 +7109,7 @@ UserMoveEvent(int fromX, int fromY, int toX, int toY, int promoChar)
                }
            } else
            boards[0][fromY][fromX] = gatingPiece;
+           ClearHighlights();
            DrawPosition(FALSE, boards[currentMove]);
            return;
        }
@@ -7044,6 +7138,8 @@ UserMoveEvent(int fromX, int fromY, int toX, int toY, int promoChar)
 
     if(fromY == DROP_RANK && fromX == EmptySquare && (gameMode == AnalyzeMode || gameMode == EditGame || PosFlags(0) & F_NULL_MOVE)) moveType = NormalMove;
 
+    if(moveType == IllegalMove && legal[toY][toX] > 1) moveType = NormalMove; // someone explicitly told us this move is legal
+
     /* [HGM] but possibly ignore an IllegalMove result */
     if (appData.testLegality) {
        if (moveType == IllegalMove || moveType == ImpossibleMove) {
@@ -7062,7 +7158,8 @@ UserMoveEvent(int fromX, int fromY, int toX, int toY, int promoChar)
     if(addToBookFlag) { // adding moves to book
        char buf[MSG_SIZ], move[MSG_SIZ];
         CoordsToAlgebraic(boards[currentMove], PosFlags(currentMove), fromY, fromX, toY, toX, promoChar, move);
-       if(killX >= 0) snprintf(move, MSG_SIZ, "%c%dx%c%d-%c%d", fromX + AAA, fromY + ONE - '0', killX + AAA, killY + ONE - '0', toX + AAA, toY + ONE - '0');
+       if(killX >= 0) snprintf(move, MSG_SIZ, "%c%dx%c%d-%c%d%c", fromX + AAA, fromY + ONE - '0',
+                                                                  killX + AAA, killY + ONE - '0', toX + AAA, toY + ONE - '0', promoChar);
        snprintf(buf, MSG_SIZ, "  0.0%%     1  %s\n", move);
        AddBookMove(buf);
        addToBookFlag = FALSE;
@@ -7279,7 +7376,7 @@ MarkByFEN(char *fen)
            int s = 0;
            marker[r][f] = 0;
            if(*fen == 'M') legal[r][f] = 2; else // request promotion choice
-           if(*fen >= 'A' && *fen <= 'Z') legal[r][f] = 1; else
+           if(*fen >= 'A' && *fen <= 'Z') legal[r][f] = 3; else
            if(*fen >= 'a' && *fen <= 'z') *fen += 'A' - 'a';
            if(*fen == '/' && f > BOARD_LEFT) f = BOARD_LEFT, r--; else
            if(*fen == 'T') marker[r][f++] = 0; else
@@ -7311,8 +7408,8 @@ Mark (Board board, int flags, ChessMove kind, int rf, int ff, int rt, int ft, VO
     if(rf == fromY && ff == fromX && (killX < 0 ? !(rt == rf && ft == ff) && legNr & 1 : rt == killY && ft == killX || legNr & 2))
        (*m)[rt][ft] = 1 + (board[rt][ft] != EmptySquare
                         || kind == WhiteCapturesEnPassant
-                        || kind == BlackCapturesEnPassant) + 3*(kind == FirstLeg && killX < 0), legal[rt][ft] = 1;
-    else if(flags & F_MANDATORY_CAPTURE && board[rt][ft] != EmptySquare) (*m)[rt][ft] = 3, legal[rt][ft] = 1;
+                        || kind == BlackCapturesEnPassant) + 3*(kind == FirstLeg && killX < 0), legal[rt][ft] = 3;
+    else if(flags & F_MANDATORY_CAPTURE && board[rt][ft] != EmptySquare) (*m)[rt][ft] = 3, legal[rt][ft] = 3;
 }
 
 static int hoverSavedValid;
@@ -7363,8 +7460,8 @@ CanPromote (ChessSquare piece, int y)
        // some variants have fixed promotion piece, no promotion at all, or another selection mechanism
        if(IS_SHOGI(gameInfo.variant)          || gameInfo.variant == VariantXiangqi ||
           gameInfo.variant == VariantSuper    || gameInfo.variant == VariantGreat   ||
-          gameInfo.variant == VariantShatranj || gameInfo.variant == VariantCourier ||
-         gameInfo.variant == VariantMakruk) return FALSE;
+         (gameInfo.variant == VariantShatranj || gameInfo.variant == VariantCourier ||
+           gameInfo.variant == VariantMakruk) && !*engineVariant) return FALSE;
        return (piece == BlackPawn && y <= zone ||
                piece == WhitePawn && y >= BOARD_HEIGHT-1-zone ||
                piece == BlackLance && y <= zone ||
@@ -7526,7 +7623,7 @@ LeftClick (ClickType clickType, int xPix, int yPix)
                DragPieceBegin(xPix, yPix, FALSE); dragging = 1;
                if(appData.sweepSelect && CanPromote(piece = boards[currentMove][fromY][fromX], fromY)) {
                    promoSweep = defaultPromoChoice;
-                   selectFlag = 0; lastX = xPix; lastY = yPix;
+                   selectFlag = 0; lastX = xPix; lastY = yPix; *promoRestrict = 0;
                    Sweep(0); // Pawn that is going to promote: preview promotion piece
                    DisplayMessage("", _("Pull pawn backwards to under-promote"));
                }
@@ -7539,7 +7636,7 @@ LeftClick (ClickType clickType, int xPix, int yPix)
            return;
        }
     }
-printf("to click %d,%d\n",x,y);
+
     /* fromX != -1 */
     if (clickType == Press && gameMode != EditPosition) {
        ChessSquare fromP;
@@ -7591,7 +7688,7 @@ printf("to click %d,%d\n",x,y);
                DragPieceBegin(xPix, yPix, FALSE);
                if(appData.sweepSelect && CanPromote(piece = boards[currentMove][y][x], y)) {
                    promoSweep = defaultPromoChoice;
-                   selectFlag = 0; lastX = xPix; lastY = yPix;
+                   selectFlag = 0; lastX = xPix; lastY = yPix; *promoRestrict = 0;
                    Sweep(0); // Pawn that is going to promote: preview promotion piece
                }
            }
@@ -7602,10 +7699,10 @@ printf("to click %d,%d\n",x,y);
        // ignore clicks on holdings
        if(x < BOARD_LEFT || x >= BOARD_RGHT) return;
     }
-printf("A type=%d\n",clickType);
 
-    if(x == fromX && y == fromY && gameMode == EditPosition && SubtractTimeMarks(&lastClickTime, &prevClickTime) < 200) {
+    if(x == fromX && y == fromY && clickType == Press && gameMode == EditPosition && SubtractTimeMarks(&lastClickTime, &prevClickTime) < 200) {
        gatingPiece = boards[currentMove][fromY][fromX]; // prepare to copy rather than move
+       DragPieceBegin(xPix, yPix, FALSE); dragging = 1;
        return;
     }
 
@@ -7640,7 +7737,7 @@ printf("A type=%d\n",clickType);
     }
 
     clearFlag = 0;
-printf("B\n");
+
     if(gameMode != EditPosition && !appData.testLegality && !legal[y][x] &&
        fromX >= BOARD_LEFT && fromX < BOARD_RGHT && (x != killX || y != killY) && !sweepSelecting) {
        if(dragging) DragPieceEnd(xPix, yPix), dragging = 0;
@@ -7648,7 +7745,7 @@ printf("B\n");
        DrawPosition(TRUE, NULL);
        return; // ignore to-click
     }
-printf("(%d,%d)-(%d,%d) %d %d\n",fromX,fromY,toX,toY,x,y);
+
     /* we now have a different from- and (possibly off-board) to-square */
     /* Completed move */
     if(!sweepSelecting) {
@@ -7677,8 +7774,9 @@ printf("(%d,%d)-(%d,%d) %d %d\n",fromX,fromY,toX,toY,x,y);
        if(legal[y][x] == 2 || HasPromotionChoice(fromX, fromY, toX, toY, &promoChoice, FALSE)) {
          if(appData.sweepSelect) {
            promoSweep = defaultPromoChoice;
-           if(gameInfo.variant != VariantChuChess && PieceToChar(CHUPROMOTED piece) == '+') promoSweep = CHUPROMOTED piece;
+           if(gameInfo.variant != VariantChuChess && PieceToChar(CHUPROMOTED(piece)) == '+') promoSweep = CHUPROMOTED(piece);
            selectFlag = 0; lastX = xPix; lastY = yPix;
+           ReportClick("put", x, y); // extra put to prompt engine for 'choice' command
            Sweep(0); // Pawn that is going to promote: preview promotion piece
            sweepSelecting = 1;
            DisplayMessage("", _("Pull pawn backwards to under-promote"));
@@ -7694,6 +7792,7 @@ printf("(%d,%d)-(%d,%d) %d %d\n",fromX,fromY,toX,toY,x,y);
        }
     } else if(sweepSelecting) { // this must be the up-click corresponding to the down-click that started the sweep
        sweepSelecting = 0; appData.animate = FALSE; // do not animate, a selected piece already on to-square
+        *promoRestrict = 0;
        if (appData.animate || appData.highlightLastMove) {
            SetHighlights(fromX, fromY, toX, toY);
        } else {
@@ -7709,6 +7808,8 @@ printf("(%d,%d)-(%d,%d) %d %d\n",fromX,fromY,toX,toY,x,y);
            ClearHighlights();
        }
 #endif
+       if(PieceToChar(CHUPROMOTED(boards[currentMove][fromY][fromX])) == '+')
+         defaultPromoChoice = CHUPROMOTED(boards[currentMove][fromY][fromX]);
        if(gameInfo.variant == VariantChuChess && piece != WhitePawn && piece != BlackPawn) defaultPromoChoice = piece;
        if(marker[y][x] == 5) { // [HGM] lion: this was the release of a to-click or drag on a cyan square
          dragging *= 2;            // flag button-less dragging if we are dragging
@@ -7891,6 +7992,23 @@ RightClick (ClickType action, int x, int y, int *fromX, int *fromY)
 }
 
 void
+Wheel (int dir, int x, int y)
+{
+    if(gameMode == EditPosition) {
+       int xSqr = EventToSquare(x, BOARD_WIDTH);
+       int ySqr = EventToSquare(y, BOARD_HEIGHT);
+       if(ySqr < 0 || xSqr < BOARD_LEFT || xSqr >= BOARD_RGHT) return;
+       if(flipView) xSqr = BOARD_WIDTH - 1 - xSqr; else ySqr = BOARD_HEIGHT - 1 - ySqr;
+       do {
+           boards[currentMove][ySqr][xSqr] += dir;
+           if((int) boards[currentMove][ySqr][xSqr] < WhitePawn) boards[currentMove][ySqr][xSqr] = BlackKing;
+           if((int) boards[currentMove][ySqr][xSqr] > BlackKing) boards[currentMove][ySqr][xSqr] = WhitePawn;
+       } while(PieceToChar(boards[currentMove][ySqr][xSqr]) == '.');
+       DrawPosition(FALSE, boards[currentMove]);
+    } else if(dir > 0) ForwardEvent(); else BackwardEvent();
+}
+
+void
 SendProgramStatsToFrontend (ChessProgramState * cps, ChessProgramStats * cpstats)
 {
 //    char * hint = lastHint;
@@ -8108,7 +8226,7 @@ Adjudicate (ChessProgramState *cps)
        // most tests only when we understand the game, i.e. legality-checking on
            if( appData.testLegality )
            {   /* [HGM] Some more adjudications for obstinate engines */
-               int nrW, nrB, bishopColor, staleW, staleB, nr[EmptySquare+1], i;
+               int nrW, nrB, bishopColor, staleW, staleB, nr[EmptySquare+2], i;
                static int moveCount = 6;
                ChessMove result;
                char *reason = NULL;
@@ -8550,7 +8668,7 @@ DeferredBookMove (void)
 
 static int savedWhitePlayer, savedBlackPlayer, pairingReceived;
 static ChessProgramState *stalledEngine;
-static char stashedInputMove[MSG_SIZ];
+static char stashedInputMove[MSG_SIZ], abortEngineThink;
 
 void
 HandleMachineMove (char *message, ChessProgramState *cps)
@@ -8562,7 +8680,7 @@ HandleMachineMove (char *message, ChessProgramState *cps)
     ChessMove moveType;
     char promoChar, roar;
     char *p, *pv=buf1;
-    int machineWhite, oldError;
+    int oldError;
     char *bookHit;
 
     if(cps == &pairing && sscanf(message, "%d-%d", &savedWhitePlayer, &savedBlackPlayer) == 2) {
@@ -8633,24 +8751,29 @@ FakeBookMove: // [HGM] book: we jump here to simulate machine moves after book h
            return;
        }
 
+      if(cps->usePing) {
+
         /* This method is only useful on engines that support ping */
+        if(abortEngineThink) {
+           if (appData.debugMode) {
+               fprintf(debugFP, "Undoing move from aborted think of %s\n", cps->which);
+           }
+            SendToProgram("undo\n", cps);
+           return;
+       }
+
         if (cps->lastPing != cps->lastPong) {
-         if (gameMode == BeginningOfGame) {
            /* Extra move from before last new; ignore */
            if (appData.debugMode) {
                fprintf(debugFP, "Ignoring extra move from %s\n", cps->which);
            }
-         } else {
-           if (appData.debugMode) {
-               fprintf(debugFP, "Undoing extra move from %s, gameMode %d\n",
-                       cps->which, gameMode);
-           }
-
-            SendToProgram("undo\n", cps);
-         }
          return;
        }
 
+      } else {
+
+       int machineWhite = FALSE;
+
        switch (gameMode) {
          case BeginningOfGame:
            /* Extra move from before last reset; ignore */
@@ -8696,6 +8819,7 @@ FakeBookMove: // [HGM] book: we jump here to simulate machine moves after book h
            }
            return;
        }
+      }
 
         if(cps->alphaRank) AlphaRank(machineMove, 4);
 
@@ -8731,7 +8855,7 @@ FakeBookMove: // [HGM] book: we jump here to simulate machine moves after book h
             snprintf(buf1, MSG_SIZ*10, "Xboard: Forfeit due to invalid move: %s (%c%c%c%c via %c%c, %c%c) res=%d",
                     machineMove, fromX+AAA, fromY+ONE, toX+AAA, toY+ONE, killX+AAA, killY+ONE, kill2X+AAA, kill2Y+ONE, moveType);
            if (gameMode == TwoMachinesPlay) {
-             GameEnds(machineWhite ? BlackWins : WhiteWins,
+             GameEnds(cps->twoMachinesColor[0] == 'w' ? BlackWins : WhiteWins,
                        buf1, GE_XBOARD);
            }
            return;
@@ -8749,7 +8873,7 @@ FakeBookMove: // [HGM] book: we jump here to simulate machine moves after book h
             if(moveType == IllegalMove) {
              snprintf(buf1, MSG_SIZ*10, "Xboard: Forfeit due to illegal move: %s (%c%c%c%c)%c",
                         machineMove, fromX+AAA, fromY+ONE, toX+AAA, toY+ONE, 0);
-                GameEnds(machineWhite ? BlackWins : WhiteWins,
+                GameEnds(cps->twoMachinesColor[0] == 'w' ? BlackWins : WhiteWins,
                            buf1, GE_XBOARD);
                return;
            } else if(!appData.fischerCastling)
@@ -8794,6 +8918,17 @@ FakeBookMove: // [HGM] book: we jump here to simulate machine moves after book h
            free(fen);
            GameEnds(GameUnfinished, NULL, GE_XBOARD);
         }
+        if(appData.epd) {
+           if(solvingTime >= 0) {
+              snprintf(buf1, MSG_SIZ, "%d. %4.2fs\n", matchGame, solvingTime/100.);
+              totalTime += solvingTime; first.matchWins++;
+           } else {
+              snprintf(buf1, MSG_SIZ, "%d. wrong (%s)\n", matchGame, parseList[backwardMostMove]);
+              second.matchWins++;
+           }
+           OutputKibitz(2, buf1);
+           GameEnds(GameUnfinished, NULL, GE_XBOARD);
+        }
 
         /* [AS] Adjudicate game if needed (note: remember that forwardMostMove now points past the last move) */
         if( gameMode == TwoMachinesPlay && appData.adjudicateLossThreshold != 0 && forwardMostMove >= adjudicateLossPlies ) {
@@ -8968,10 +9103,10 @@ FakeBookMove: // [HGM] book: we jump here to simulate machine moves after book h
     }
     if(sscanf(message, "piece %s %s", buf2, buf1) == 2) {
       ChessSquare piece = WhitePawn;
-      char *p=buf2, *q, *s = SUFFIXES, ID = *p;
-      if(*p == '+') piece = CHUPROMOTED WhitePawn, ID = *++p;
+      char *p=message+6, *q, *s = SUFFIXES, ID = *p;
+      if(*p == '+') piece = CHUPROMOTED(WhitePawn), ID = *++p;
       if(q = strchr(s, p[1])) ID += 64*(q - s + 1), p++;
-      piece += CharToPiece(ID) - WhitePawn;
+      piece += CharToPiece(ID & 255) - WhitePawn;
       if(cps != &first || appData.testLegality && *engineVariant == NULLCHAR
       /* always accept definition of  */       && piece != WhiteFalcon && piece != BlackFalcon
       /* wild-card pieces.            */       && piece != WhiteCobra  && piece != BlackCobra
@@ -8983,10 +9118,15 @@ FakeBookMove: // [HGM] book: we jump here to simulate machine moves after book h
       if(piece < EmptySquare) {
         pieceDefs = TRUE;
         ASSIGN(pieceDesc[piece], buf1);
-        if(isupper(*p) && p[1] == '&') { ASSIGN(pieceDesc[WHITE_TO_BLACK piece], buf1); }
+        if((ID & 32) == 0 && p[1] == '&') { ASSIGN(pieceDesc[WHITE_TO_BLACK piece], buf1); }
       }
       return;
     }
+    if(sscanf(message, "choice %s", promoRestrict) == 1 && promoSweep != EmptySquare) {
+      promoSweep = CharToPiece(currentMove&1 ? ToLower(*promoRestrict) : ToUpper(*promoRestrict));
+      Sweep(0);
+      return;
+    }
     /* [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.
      */
@@ -9103,6 +9243,11 @@ FakeBookMove: // [HGM] book: we jump here to simulate machine moves after book h
            }
            initPing = -1;
         }
+       if(cps->lastPing == cps->lastPong && abortEngineThink) {
+           abortEngineThink = FALSE;
+           DisplayMessage("", "");
+           ThawUI();
+       }
        return;
     }
     if(!strncmp(message, "highlight ", 10)) {
@@ -9521,6 +9666,7 @@ FakeBookMove: // [HGM] book: we jump here to simulate machine moves after book h
            buf1[0] = NULLCHAR;
            if (sscanf(message, "%d%c %d %d " u64Display " %[^\n]\n",
                       &plylev, &plyext, &curscore, &time, &nodes, buf1) >= 5) {
+               char score_buf[MSG_SIZ];
 
                if(nodes>>32 == u64Const(0xFFFFFFFF))   // [HGM] negative node count read
                    nodes += u64Const(0x100000000);
@@ -9543,6 +9689,14 @@ FakeBookMove: // [HGM] book: we jump here to simulate machine moves after book h
 
                if(appData.pvSAN[cps==&second]) pv = PvToSAN(buf1);
 
+               if(*bestMove) { // rememer time best EPD move was first found
+                   int ff1, tf1, fr1, tr1, ff2, tf2, fr2, tr2; char pp1, pp2;
+                   ChessMove mt;
+                   int ok = ParseOneMove(bestMove, forwardMostMove, &mt, &ff1, &fr1, &tf1, &tr1, &pp1);
+                   ok    &= ParseOneMove(pv, forwardMostMove, &mt, &ff2, &fr2, &tf2, &tr2, &pp2);
+                   solvingTime = (ok && ff1==ff2 && fr1==fr2 && tf1==tf2 && tr1==tr2 && pp1==pp2 ? time : -1);
+               }
+
                if(serverMoves && (time > 100 || time == 0 && plylev > 7)) {
                        char buf[MSG_SIZ];
                        FILE *f;
@@ -9613,11 +9767,18 @@ FakeBookMove: // [HGM] book: we jump here to simulate machine moves after book h
                     [AS] Protect the thinkOutput buffer from overflow... this
                     is only useful if buf1 hasn't overflowed first!
                 */
-               snprintf(thinkOutput, sizeof(thinkOutput)/sizeof(thinkOutput[0]), "[%d]%c%+.2f %s%s",
+               if((gameMode == AnalyzeMode && appData.whitePOV || appData.scoreWhite) && !WhiteOnMove(forwardMostMove)) curscore *= -1;
+               if(curscore >= MATE_SCORE) 
+                   snprintf(score_buf, MSG_SIZ, "#%d", curscore - MATE_SCORE);
+               else if(curscore <= -MATE_SCORE) 
+                   snprintf(score_buf, MSG_SIZ, "#%d", curscore + MATE_SCORE);
+               else
+                   snprintf(score_buf, MSG_SIZ, "%+.2f", ((double) curscore) / 100.0);
+               snprintf(thinkOutput, sizeof(thinkOutput)/sizeof(thinkOutput[0]), "[%d]%c%s %s%s",
                         plylev,
                         (gameMode == TwoMachinesPlay ?
                          ToUpper(cps->twoMachinesColor[0]) : ' '),
-                        ((double) curscore) / 100.0,
+                        score_buf,
                         prefixHint ? lastHint : "",
                         prefixHint ? " " : "" );
 
@@ -10064,6 +10225,11 @@ ApplyMove (int fromX, int fromY, int toX, int toY, int promoChar, Board board)
        board[toY][toX + (killX < fromX ? 1 : -1)] = killed;
         board[EP_STATUS] = EP_NONE; // capture was fake!
     } else
+    if(nrCastlingRights == 0 && board[toY][toX] < EmptySquare && (piece < BlackPawn) == (board[toY][toX] < BlackPawn)) {
+        board[fromY][fromX] = board[toY][toX]; // capture own will lead to swapping
+        board[toY][toX] = piece;
+        board[EP_STATUS] = EP_NONE; // capture was fake!
+    } else
     /* Code added by Tord: */
     /* FRC castling assumed when king captures friendly rook. [HGM] or RxK for S-Chess */
     if (board[fromY][fromX] == WhiteKing && board[toY][toX] == WhiteRook ||
@@ -10088,6 +10254,9 @@ ApplyMove (int fromX, int fromY, int toX, int toY, int promoChar, Board board)
       }
     /* End of code added by Tord */
 
+    } else if (pieceDesc[piece] && piece == king && !strchr(pieceDesc[piece], 'O') && strchr(pieceDesc[piece], 'i')) {
+       board[fromY][fromX] = EmptySquare; // never castle if King has virgin moves defined on it other than castling
+       board[toY][toX] = piece;
     } else if (board[fromY][fromX] == king
         && fromX != BOARD_LEFT && fromX != BOARD_RGHT-1 // [HGM] cylinder */
         && toY == fromY && toX > fromX+1) {
@@ -10110,8 +10279,8 @@ ApplyMove (int fromX, int fromY, int toX, int toY, int promoChar, Board board)
                ) {
        /* white pawn promotion */
         board[toY][toX] = CharToPiece(ToUpper(promoChar));
-        if(board[toY][toX] < WhiteCannon && PieceToChar(PROMOTED board[toY][toX]) == '~') /* [HGM] use shadow piece (if available) */
-            board[toY][toX] = (ChessSquare) (PROMOTED board[toY][toX]);
+        if(board[toY][toX] < WhiteCannon && PieceToChar(PROMOTED(board[toY][toX])) == '~') /* [HGM] use shadow piece (if available) */
+            board[toY][toX] = (ChessSquare) (PROMOTED(board[toY][toX]));
        board[fromY][fromX] = EmptySquare;
     } else if ((fromY >= BOARD_HEIGHT>>1)
               && (oldEP == toX || oldEP == EP_UNKNOWN || appData.testLegality || abs(toX - fromX) > 4)
@@ -10175,8 +10344,8 @@ ApplyMove (int fromX, int fromY, int toX, int toY, int promoChar, Board board)
                ) {
        /* black pawn promotion */
        board[toY][toX] = CharToPiece(ToLower(promoChar));
-        if(board[toY][toX] < BlackCannon && PieceToChar(PROMOTED board[toY][toX]) == '~') /* [HGM] use shadow piece (if available) */
-            board[toY][toX] = (ChessSquare) (PROMOTED board[toY][toX]);
+        if(board[toY][toX] < BlackCannon && PieceToChar(PROMOTED(board[toY][toX])) == '~') /* [HGM] use shadow piece (if available) */
+            board[toY][toX] = (ChessSquare) (PROMOTED(board[toY][toX]));
        board[fromY][fromX] = EmptySquare;
     } else if ((fromY < BOARD_HEIGHT>>1)
               && (oldEP == toX || oldEP == EP_UNKNOWN || appData.testLegality || abs(toX - fromX) > 4)
@@ -10250,10 +10419,10 @@ ApplyMove (int fromX, int fromY, int toX, int toY, int promoChar, Board board)
         p = (int) captured;
         if (p >= (int) BlackPawn) {
           p -= (int)BlackPawn;
-          if(DEMOTED p >= 0 && PieceToChar(p) == '+') {
+          if(DEMOTED(p) >= 0 && PieceToChar(p) == '+') {
                   /* Restore shogi-promoted piece to its original  first */
-                  captured = (ChessSquare) (DEMOTED captured);
-                  p = DEMOTED p;
+                  captured = (ChessSquare) (DEMOTED(captured));
+                  p = DEMOTED(p);
           }
           p = PieceToNumber((ChessSquare)p);
           if(p >= gameInfo.holdingsSize) { p = 0; captured = BlackPawn; }
@@ -10261,9 +10430,9 @@ ApplyMove (int fromX, int fromY, int toX, int toY, int promoChar, Board board)
           board[p][BOARD_WIDTH-1] = BLACK_TO_WHITE captured;
        } else {
           p -= (int)WhitePawn;
-          if(DEMOTED p >= 0 && PieceToChar(p) == '+') {
-                  captured = (ChessSquare) (DEMOTED captured);
-                  p = DEMOTED p;
+          if(DEMOTED(p) >= 0 && PieceToChar(p) == '+') {
+                  captured = (ChessSquare) (DEMOTED(captured));
+                  p = DEMOTED(p);
           }
           p = PieceToNumber((ChessSquare)p);
           if(p >= gameInfo.holdingsSize) { p = 0; captured = WhitePawn; }
@@ -10291,13 +10460,13 @@ ApplyMove (int fromX, int fromY, int toX, int toY, int promoChar, Board board)
     } else
     if(promoChar == '+') {
         /* [HGM] Shogi-style promotions, to piece implied by original (Might overwrite ordinary Pawn promotion) */
-        board[toY][toX] = (ChessSquare) (CHUPROMOTED piece);
+        board[toY][toX] = (ChessSquare) (CHUPROMOTED(piece));
         if(gameInfo.variant == VariantChuChess && (piece == WhiteKnight || piece == BlackKnight))
           board[toY][toX] = piece + WhiteLion - WhiteKnight; // adjust Knight promotions to Lion
     } else if(!appData.testLegality && promoChar != NULLCHAR && promoChar != '=') { // without legality testing, unconditionally believe promoChar
         ChessSquare newPiece = CharToPiece(piece < BlackPawn ? ToUpper(promoChar) : ToLower(promoChar));
-       if((newPiece <= WhiteMan || newPiece >= BlackPawn && newPiece <= BlackMan) // unpromoted piece specified
-          && pieceToChar[PROMOTED newPiece] == '~') newPiece = PROMOTED newPiece; // but promoted version available
+       if((newPiece <= WhiteMan || newPiece >= BlackPawn && newPiece <= BlackMan)  // unpromoted piece specified
+          && pieceToChar[PROMOTED(newPiece)] == '~') newPiece = PROMOTED(newPiece);// but promoted version available
         board[toY][toX] = newPiece;
     }
     if((gameInfo.variant == VariantSuper || gameInfo.variant == VariantGreat || gameInfo.variant == VariantGrand)
@@ -10326,10 +10495,10 @@ MakeMove (int fromX, int fromY, int toX, int toY, int promoChar)
     if(killX >= 0 && killY >= 0) x = killX, y = killY; // [HGM] lion: make SAN move to intermediate square, if there is one
     (void) CoordsToAlgebraic(boards[forwardMostMove],
                             PosFlags(forwardMostMove),
-                            fromY, fromX, y, x, promoChar,
+                            fromY, fromX, y, x, (killX < 0)*promoChar,
                             s);
     if(killX >= 0 && killY >= 0)
-        sprintf(s + strlen(s), "%c%c%d", p == EmptySquare || toX == fromX && toY == fromY ? '-' : 'x', toX + AAA, toY + ONE - '0');
+        sprintf(s + strlen(s), "%c%c%d%c", p == EmptySquare || toX == fromX && toY == fromY ? '-' : 'x', toX + AAA, toY + ONE - '0', promoChar);
 
     if(serverMoves != NULL) { /* [HGM] write moves on file for broadcasting (should be separate routine, really) */
         int timeLeft; static int lastLoadFlag=0; int king, piece;
@@ -11393,16 +11562,17 @@ GameEnds (ChessMove result, char *resultDetails, int whosays)
               && gameInfo.variant != VariantLosers && gameInfo.variant != VariantGiveaway
               && gameInfo.variant != VariantSuicide // [HGM] losers: except in losers, of course...
               && result != GameIsDrawn)
-           {   int i, j, k=0, color = (result==WhiteWins ? (int)WhitePawn : (int)BlackPawn);
+           {   int i, j, k=0, oppoKings = 0, color = (result==WhiteWins ? (int)WhitePawn : (int)BlackPawn);
                for(j=BOARD_LEFT; j<BOARD_RGHT; j++) for(i=0; i<BOARD_HEIGHT; i++) {
                        int p = (signed char)boards[forwardMostMove][i][j] - color;
                        if(p >= 0 && p <= (int)WhiteKing) k++;
+                       oppoKings += (p + color == WhiteKing + BlackPawn - color);
                }
                if (appData.debugMode) {
                     fprintf(debugFP, "GE(%d, %s, %d) bare king k=%d color=%d\n",
                        result, resultDetails ? resultDetails : "(null)", whosays, k, color);
                }
-               if(k <= 1) {
+               if(k <= 1 && oppoKings > 0) { // the latter needed in Atomic, where bare K wins if opponent King already destroyed
                        result = GameIsDrawn;
                        snprintf(buf, MSG_SIZ, "%s but bare king", resultDetails);
                        resultDetails = buf;
@@ -11989,13 +12159,13 @@ LoadGameOneMove (ChessMove readAhead)
       case BlackASideCastleFR:
       /* POP Fabien */
        if (appData.debugMode)
-         fprintf(debugFP, "Parsed %s into %s\n", yy_text, currentMoveString);
+         fprintf(debugFP, "Parsed %s into %s virgin=%x,%x\n", yy_text, currentMoveString, boards[forwardMostMove][TOUCHED_W], boards[forwardMostMove][TOUCHED_B]);
         fromX = currentMoveString[0] - AAA;
         fromY = currentMoveString[1] - ONE;
         toX = currentMoveString[2] - AAA;
         toY = currentMoveString[3] - ONE;
        promoChar = currentMoveString[4];
-       if(promoChar == ';') promoChar = NULLCHAR;
+       if(promoChar == ';') promoChar = currentMoveString[7];
        break;
 
       case WhiteDrop:
@@ -12949,7 +13119,7 @@ LoadGame (FILE *f, int gameNumber, char *title, int useList)
        gameInfo.event = StrSave(yy_text);
     }
 
-    startedFromSetupPosition = FALSE;
+    startedFromSetupPosition = startedFromPositionFile; // [HGM]
     while (cm == PGNTag) {
        if (appData.debugMode)
          fprintf(debugFP, "Parsed PGNTag: %s\n", yy_text);
@@ -12976,7 +13146,7 @@ LoadGame (FILE *f, int gameNumber, char *title, int useList)
            return FALSE;
          }
          CopyBoard(boards[0], initial_position);
-         if(*engineVariant) // [HGM] for now, assume FEN in engine-defined variant game is default initial position
+         if(*engineVariant || gameInfo.variant == VariantFairy) // [HGM] for now, assume FEN in engine-defined variant game is default initial position
            CopyBoard(initialPosition, initial_position);
          if (blackPlaysFirst) {
            currentMove = forwardMostMove = backwardMostMove = 1;
@@ -13313,10 +13483,14 @@ LoadPosition (FILE *f, int positionNumber, char *title)
     }
 
     if (fenMode) {
+       char *p;
        if (!ParseFEN(initial_position, &blackPlaysFirst, line, TRUE)) {
            DisplayError(_("Bad FEN position in file"), 0);
            return FALSE;
        }
+       if((p = strstr(line, ";")) && (p = strstr(p+1, "bm "))) { // EPD with best move
+           sscanf(p+3, "%s", bestMove);
+       } else *bestMove = NULLCHAR;
     } else {
        (void) fgets(line, MSG_SIZ, f);
        (void) fgets(line, MSG_SIZ, f);
@@ -14939,6 +15113,16 @@ EditGameEvent ()
       case MachinePlaysBlack:
       case BeginningOfGame:
        SendToProgram("force\n", &first);
+       if(gameMode == (forwardMostMove & 1 ? MachinePlaysBlack : MachinePlaysWhite)) { // engine is thinking
+           if (first.usePing) { // [HGM] always send ping when we might interrupt machine thinking
+               char buf[MSG_SIZ];
+               abortEngineThink = TRUE;
+               snprintf(buf, MSG_SIZ, "ping %d\n", initPing = ++first.lastPing);
+               SendToProgram(buf, &first);
+               DisplayMessage("Aborting engine think", "");
+               FreezeUI();
+           }
+       }
        SetUserThinkingEnables();
        break;
       case PlayFromGameFile:
@@ -15272,7 +15456,7 @@ EditPositionMenuEvent (ChessSquare selection, int x, int y)
       case PromotePiece:
         if(piece >= (int)WhitePawn && piece < (int)WhiteMan ||
            piece >= (int)BlackPawn && piece < (int)BlackMan   ) {
-            selection = (ChessSquare) (PROMOTED piece);
+            selection = (ChessSquare) (PROMOTED(piece));
         } else if(piece == EmptySquare) selection = WhiteSilver;
         else selection = (ChessSquare)((int)piece - 1);
         goto defaultlabel;
@@ -15280,7 +15464,7 @@ EditPositionMenuEvent (ChessSquare selection, int x, int y)
       case DemotePiece:
         if(piece > (int)WhiteMan && piece <= (int)WhiteKing ||
            piece > (int)BlackMan && piece <= (int)BlackKing   ) {
-            selection = (ChessSquare) (DEMOTED piece);
+            selection = (ChessSquare) (DEMOTED(piece));
         } else if(piece == EmptySquare) selection = BlackSilver;
         else selection = (ChessSquare)((int)piece + 1);
         goto defaultlabel;
@@ -16132,7 +16316,7 @@ PrintPosition (FILE *fp, int move)
     for (i = BOARD_HEIGHT - 1; i >= 0; i--) {
         for (j = BOARD_LEFT; j < BOARD_RGHT; j++) {
            char c = PieceToChar(boards[move][i][j]);
-           fputc(c == 'x' ? '.' : c, fp);
+           fputc(c == '?' ? '.' : c, fp);
             fputc(j == BOARD_RGHT - 1 ? '\n' : ' ', fp);
        }
     }
@@ -16849,6 +17033,7 @@ ParseOption (Option *opt, ChessProgramState *cps)
        char *p, *q, buf[MSG_SIZ];
        int n, min = (-1)<<31, max = 1<<31, def;
 
+       opt->target = &opt->value;   // OK for spin/slider and checkbox
        if(p = strstr(opt->name, " -spin ")) {
            if((n = sscanf(p, " -spin %d %d %d", &def, &min, &max)) < 3 ) return FALSE;
            if(max < min) max = min; // enforce consistency
@@ -16871,14 +17056,17 @@ ParseOption (Option *opt, ChessProgramState *cps)
        } else if((p = strstr(opt->name, " -string "))) {
            opt->textValue = p+9;
            opt->type = TextBox;
+           opt->target = &opt->textValue;
        } 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->target = opt->textValue = p+7;
            opt->type = FileName; // FileName;
+           opt->target = &opt->textValue;
        } 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->target = opt->textValue = p+7;
            opt->type = PathName; // PathName;
+           opt->target = &opt->textValue;
        } else if(p = strstr(opt->name, " -check ")) {
            if(sscanf(p, " -check %d", &def) < 1) return FALSE;
            opt->value = (def != 0);
@@ -16942,9 +17130,9 @@ FeatureDone (ChessProgramState *cps, int val)
       (cb == TwoMachinesEventIfReady)) {
     CancelDelayedEvent();
     ScheduleDelayedEvent(cb, val ? 1 : 3600000);
-  }
+  } else if(!val && !cps->reload) ClearOptions(cps); // let 'spurious' done=0 clear engine's option list
   cps->initDone = val;
-  if(val) cps->reload = FALSE;
+  if(val) cps->reload = FALSE,  RefreshSettingsDialog(cps, val);
 }
 
 /* Parse feature command from engine */
@@ -17859,7 +18047,7 @@ char *
 PositionToFEN (int move, char *overrideCastling, int moveCounts)
 {
     int i, j, fromX, fromY, toX, toY;
-    int whiteToPlay;
+    int whiteToPlay, haveRights = nrCastlingRights;
     char buf[MSG_SIZ];
     char *p, *q;
     int emptycount;
@@ -17886,13 +18074,13 @@ PositionToFEN (int move, char *overrideCastling, int moveCounts)
                 if(PieceToChar(piece) == '+') {
                     /* [HGM] write promoted pieces as '+<unpromoted>' (Shogi) */
                     *p++ = '+';
-                    piece = (ChessSquare)(CHUDEMOTED piece);
+                    piece = (ChessSquare)(CHUDEMOTED(piece));
                 }
                 *p++ = (piece == DarkSquare ? '*' : PieceToChar(piece));
                 if(*p = PieceSuffix(piece)) p++;
                 if(p[-1] == '~') {
                     /* [HGM] flag promoted pieces as '<promoted>~' (Crazyhouse) */
-                    p[-1] = PieceToChar((ChessSquare)(CHUDEMOTED piece));
+                    p[-1] = PieceToChar((ChessSquare)(CHUDEMOTED(piece)));
                     *p++ = '~';
                 }
            }
@@ -17933,10 +18121,28 @@ PositionToFEN (int move, char *overrideCastling, int moveCounts)
     *p++ = whiteToPlay ? 'w' : 'b';
     *p++ = ' ';
 
+  if(pieceDesc[WhiteKing] && strchr(pieceDesc[WhiteKing], 'i') && !strchr(pieceDesc[WhiteKing], 'O')) { // redefined without castling
+    haveRights = 0; q = p;
+    for(i=BOARD_RGHT-1; i>=BOARD_LEFT; i--) {
+      piece = boards[move][0][i];
+      if(piece >= WhitePawn && piece <= WhiteKing && pieceDesc[piece] && strchr(pieceDesc[piece], 'i')) { // piece with initial move
+        if(!(boards[move][TOUCHED_W] & 1<<i)) *p++ = 'A' + i; // print file ID if it has not moved
+      }
+    }
+    for(i=BOARD_RGHT-1; i>=BOARD_LEFT; i--) {
+      piece = boards[move][BOARD_HEIGHT-1][i];
+      if(piece >= BlackPawn && piece <= BlackKing && pieceDesc[piece] && strchr(pieceDesc[piece], 'i')) { // piece with initial move
+        if(!(boards[move][TOUCHED_B] & 1<<i)) *p++ = 'a' + i; // print file ID if it has not moved
+      }
+    }
+    if(p == q) *p++ = '-';
+    *p++ = ' ';
+  }
+
   if(q = overrideCastling) { // [HGM] FRC: override castling & e.p fields for non-compliant engines
     while(*p++ = *q++); if(q != overrideCastling+1) p[-1] = ' '; else --p;
   } else {
-  if(nrCastlingRights) {
+  if(haveRights) {
      int handW=0, handB=0;
      if(gameInfo.variant == VariantSChess) { // for S-Chess, all virgin backrank pieces must be listed
        for(i=0; i<BOARD_HEIGHT; i++) handW += boards[move][i][BOARD_RGHT]; // count white held pieces
@@ -17972,9 +18178,9 @@ PositionToFEN (int move, char *overrideCastling, int moveCounts)
         /* [HGM] write true castling rights */
         if( nrCastlingRights == 6 ) {
             int q, k=0;
-            if(boards[move][CASTLING][0] == BOARD_RGHT-1 &&
+            if(boards[move][CASTLING][0] != NoRights &&
                boards[move][CASTLING][2] != NoRights  ) k = 1, *p++ = 'K';
-            q = (boards[move][CASTLING][1] == BOARD_LEFT &&
+            q = (boards[move][CASTLING][1] != NoRights &&
                  boards[move][CASTLING][2] != NoRights  );
             if(handW) { // for S-Chess with pieces in hand, list virgin pieces between K and Q
                 for(i=BOARD_RGHT-1-k; i>=BOARD_LEFT+q; i--)
@@ -17983,9 +18189,9 @@ PositionToFEN (int move, char *overrideCastling, int moveCounts)
             }
            if(q) *p++ = 'Q';
             k = 0;
-            if(boards[move][CASTLING][3] == BOARD_RGHT-1 &&
+            if(boards[move][CASTLING][3] != NoRights &&
                boards[move][CASTLING][5] != NoRights  ) k = 1, *p++ = 'k';
-            q = (boards[move][CASTLING][4] == BOARD_LEFT &&
+            q = (boards[move][CASTLING][4] != NoRights &&
                  boards[move][CASTLING][5] != NoRights  );
             if(handB) {
                 for(i=BOARD_RGHT-1-k; i>=BOARD_LEFT+q; i--)
@@ -18062,7 +18268,7 @@ ParseFEN (Board board, int *blackPlaysFirst, char *fen, Boolean autoSize)
     int i, j, k, w=0, subst=0, shuffle=0, wKingRank = -1, bKingRank = -1;
     char *p, c;
     int emptycount, virgin[BOARD_FILES];
-    ChessSquare piece;
+    ChessSquare piece, king = (gameInfo.variant == VariantKnightmate ? WhiteUnicorn : WhiteKing);
 
     p = fen;
 
@@ -18076,7 +18282,7 @@ ParseFEN (Board board, int *blackPlaysFirst, char *fen, Boolean autoSize)
                 while (emptycount--)
                         board[i][(j++)+gameInfo.holdingsWidth] = EmptySquare;
                 if (*p == '/') p++;
-               else if(autoSize) { // we stumbled unexpectedly into end of board
+               else if(autoSize && i != BOARD_HEIGHT-1) { // we stumbled unexpectedly into end of board
                     for(k=i; k<BOARD_HEIGHT; k++) { // too few ranks; shift towards bottom
                        for(j=0; j<BOARD_WIDTH; j++) board[k-i][j] = board[k][j];
                     }
@@ -18116,7 +18322,7 @@ ParseFEN (Board board, int *blackPlaysFirst, char *fen, Boolean autoSize)
                     if(q = strchr(s, p[1])) p++;
                     piece = CharToPiece(c + (q ? 64*(q - s + 1) : 0));
                     if(piece == EmptySquare) return FALSE; /* unknown piece */
-                    piece = (ChessSquare) (CHUPROMOTED piece ); p++;
+                    piece = (ChessSquare) (CHUPROMOTED(piece)); p++;
                     if(PieceToChar(piece) != '+') return FALSE; /* unpromotable piece */
                 } else {
                     char c = *p++;
@@ -18126,13 +18332,13 @@ ParseFEN (Board board, int *blackPlaysFirst, char *fen, Boolean autoSize)
 
                 if(piece==EmptySquare) return FALSE; /* unknown piece */
                 if(*p == '~') { /* [HGM] make it a promoted piece for Crazyhouse */
-                    piece = (ChessSquare) (PROMOTED piece);
+                    piece = (ChessSquare) (PROMOTED(piece));
                     if(PieceToChar(piece) != '~') return FALSE; /* cannot be a promoted piece */
                     p++;
                 }
                 board[i][(j++)+gameInfo.holdingsWidth] = piece;
-                if(piece == WhiteKing) wKingRank = i;
-                if(piece == BlackKing) bKingRank = i;
+                if(piece == king) wKingRank = i;
+                if(piece == WHITE_TO_BLACK king) bKingRank = i;
            } else {
                return FALSE;
            }
@@ -18140,7 +18346,7 @@ ParseFEN (Board board, int *blackPlaysFirst, char *fen, Boolean autoSize)
     }
     while (*p == '/' || *p == ' ') p++;
 
-    if(autoSize) appData.NrFiles = w, InitPosition(TRUE);
+    if(autoSize && w != 0) appData.NrFiles = w, InitPosition(TRUE);
 
     /* [HGM] by default clear Crazyhouse holdings, if present */
     if(gameInfo.holdingsWidth) {
@@ -18241,6 +18447,7 @@ ParseFEN (Board board, int *blackPlaysFirst, char *fen, Boolean autoSize)
 
     /* set defaults in case FEN is incomplete */
     board[EP_STATUS] = EP_UNKNOWN;
+    board[TOUCHED_W] = board[TOUCHED_B] = 0;
     for(i=0; i<nrCastlingRights; i++ ) {
         board[CASTLING][i] =
             appData.fischerCastling ? NoRights : initialRights[i];
@@ -18255,6 +18462,21 @@ ParseFEN (Board board, int *blackPlaysFirst, char *fen, Boolean autoSize)
                                  && board[castlingRank[5]][initialRights[5]] != BlackKing) board[CASTLING][5] = NoRights;
     FENrulePlies = 0;
 
+    if(pieceDesc[WhiteKing] && strchr(pieceDesc[WhiteKing], 'i') && !strchr(pieceDesc[WhiteKing], 'O')) { // redefined without castling
+      char *q = p;
+      int w=0, b=0;
+      while(isalpha(*p)) {
+        if(isupper(*p)) w |= 1 << (*p++ - 'A');
+        if(islower(*p)) b |= 1 << (*p++ - 'a');
+      }
+      if(*p == '-') p++;
+      if(p != q) {
+        board[TOUCHED_W] = ~w;
+        board[TOUCHED_B] = ~b;
+        while(*p == ' ') p++;
+      }
+    } else
+
     if(nrCastlingRights) {
       int fischer = 0;
       if(gameInfo.variant == VariantSChess) for(i=0; i<BOARD_FILES; i++) virgin[i] = 0;
@@ -18276,10 +18498,10 @@ ParseFEN (Board board, int *blackPlaysFirst, char *fen, Boolean autoSize)
         }
         if(gameInfo.variant == VariantTwoKings || gameInfo.variant == VariantKnightmate)
             whiteKingFile = blackKingFile = BOARD_WIDTH >> 1; // for these variant scanning fails
-        if(whiteKingFile == NoRights || board[0][whiteKingFile] != WhiteUnicorn
-                                     && board[0][whiteKingFile] != WhiteKing) whiteKingFile = NoRights;
-        if(blackKingFile == NoRights || board[BOARD_HEIGHT-1][blackKingFile] != BlackUnicorn
-                                     && board[BOARD_HEIGHT-1][blackKingFile] != BlackKing) blackKingFile = NoRights;
+        if(whiteKingFile == NoRights || board[castlingRank[2]][whiteKingFile] != WhiteUnicorn
+                                     && board[castlingRank[2]][whiteKingFile] != WhiteKing) whiteKingFile = NoRights;
+        if(blackKingFile == NoRights || board[castlingRank[5]][blackKingFile] != BlackUnicorn
+                                     && board[castlingRank[5]][blackKingFile] != BlackKing) blackKingFile = NoRights;
         switch(c) {
           case'K':
               for(i=BOARD_RGHT-1; board[castlingRank[2]][i]!=WhiteRook && i>whiteKingFile; i--);
index 33b6e95..be1906e 100644 (file)
--- a/backend.h
+++ b/backend.h
@@ -218,6 +218,8 @@ void ics_printf P((char *format, ...));
 int GetEngineLine P((char *nick, int engine));
 void AddGameToBook P((int always));
 void FlushBook P((void));
+char PieceToChar P((ChessSquare p));
+int LoadPieceDesc P((char *s));
 
 char *StrStr P((char *string, char *match));
 char *StrCaseStr P((char *string, char *match));
@@ -417,13 +419,15 @@ char *EngineDefinedVariant P((ChessProgramState *cps, int n));
 void SettingsPopUp P((ChessProgramState *cps)); // [HGM] really in front-end, but CPS not known in frontend.h
 int WaitForEngine P((ChessProgramState *cps, DelayedEventCallback x));
 void Load P((ChessProgramState *cps, int n));
-int MultiPV P((ChessProgramState *cps));
+int MultiPV P((ChessProgramState *cps, int kind));
 void MoveHistorySet P(( char movelist[][2*MOVE_LEN], int first, int last, int current, ChessProgramStats_Move * pvInfo ));
 void MakeEngineOutputTitle P((void));
 void LoadTheme P((void));
 void CreateBookEvent P((void));
 char *SupportedVariant P((char *list, VariantClass v, int w, int h, int s, int proto, char *engine));
 char *CollectPieceDescriptors P((void));
+void RefreshSettingsDialog P((ChessProgramState *cps, int val));
+void StartChessProgram P((ChessProgramState *cps));
 
 
 /* A point in time */
diff --git a/board.c b/board.c
index baf0680..f0cb1c6 100644 (file)
--- a/board.c
+++ b/board.c
@@ -671,6 +671,7 @@ ChangeDragPiece (ChessSquare piece)
 {
   anims[Player].dragPiece = piece;
   SetDragPiece(Player, piece);
+  damage[0][fromY][fromX] = True;
 }
 
 void
@@ -1190,10 +1191,10 @@ ArrowDamage (int s_col, int s_row, int d_col, int d_row)
     int hor, vert, i, n = partnerUp * twoBoards;
     hor = 64*s_col + 32; vert = 64*s_row + 32;
     for(i=0; i<= 64; i++) {
-            damage[n][vert+6>>6][hor+6>>6] |= 2;
-            damage[n][vert-6>>6][hor+6>>6] |= 2;
-            damage[n][vert+6>>6][hor-6>>6] |= 2;
-            damage[n][vert-6>>6][hor-6>>6] |= 2;
+            damage[n][vert+8>>6][hor+8>>6] |= 2;
+            damage[n][vert-8>>6][hor+8>>6] |= 2;
+            damage[n][vert+8>>6][hor-8>>6] |= 2;
+            damage[n][vert-8>>6][hor-8>>6] |= 2;
             hor += d_col - s_col; vert += d_row - s_row;
     }
 }
@@ -1212,20 +1213,20 @@ DrawArrowBetweenSquares (int s_col, int s_row, int d_col, int d_row)
     SquareToPos( s_row, s_col, &s_x, &s_y);
     SquareToPos( d_row, d_col, &d_x, &d_y);
 
-    if( d_y > s_y ) {
+    if( d_y > s_y && d_y - s_y > abs(d_x - s_x)/2) {
         d_y += squareSize / 2 - squareSize / 4; // [HGM] round towards same centers on all sides!
     }
-    else if( d_y < s_y ) {
+    else if( d_y < s_y && s_y - d_y > abs(d_x - d_y)/2) {
         d_y += squareSize / 2 + squareSize / 4;
     }
     else {
         d_y += squareSize / 2;
     }
 
-    if( d_x > s_x ) {
+    if( d_x > s_x && d_x - s_x > abs(d_y - s_y)/2) {
         d_x += squareSize / 2 - squareSize / 4;
     }
-    else if( d_x < s_x ) {
+    else if( d_x < s_x && s_x - d_x > abs(d_y - s_y)/2) {
         d_x += squareSize / 2 + squareSize / 4;
     }
     else {
diff --git a/book.c b/book.c
index 090ae1b..cfc25c8 100644 (file)
--- a/book.c
+++ b/book.c
@@ -315,7 +315,7 @@ hash (int moveNr)
             if(p != EmptySquare){
                    int j = (int)p, promoted = 0;
                    j -= (j >= (int)BlackPawn) ? (int)BlackPawn :(int)WhitePawn;
-                   if(j >= CHUPROMOTED WhitePawn) promoted++, j -= CHUPROMOTED WhitePawn;
+                   if(j >= WhitePBishop && j != WhiteKing) promoted++, j -= WhiteTokin;
                    if(j > (int)WhiteQueen) j++;  // make space for King
                    if(j > (int) WhiteKing) j = (int)WhiteQueen + 1;
                    p_enc = 2*j + ((int)p < (int)BlackPawn);
index 40232dd..b4f6c3e 100644 (file)
--- a/common.h
+++ b/common.h
@@ -227,6 +227,7 @@ typedef char *String;
 #define BELLCHAR                '\007'
 #define NULLCHAR                '\000'
 #define FEATURE_TIMEOUT         10000 /*ms*/
+#define MATE_SCORE              100000
 
 #define CLOCK_FONT 0
 #define MESSAGE_FONT 1
@@ -294,18 +295,26 @@ typedef enum {
     WhiteFerz, WhiteAlfil, WhiteAngel, WhiteMarshall, WhiteWazir, WhiteMan,
     WhiteCannon, WhiteNightrider, WhiteCardinal, WhiteDragon, WhiteGrasshopper,
     WhiteSilver, WhiteFalcon, WhiteLance, WhiteCobra, WhiteUnicorn, WhiteLion,
-    WhiteTokin, WhiteClaw, WhitePCardinal, WhitePDragon, WhiteCat,
-    WhitePSword, WhiteMonarch, WhiteMother, WhiteNothing, WhitePRook, WhitePDagger,
-    WhiteDolphin, WhiteStag, WhiteHorned, WhiteEagle, WhiteSword,
-    WhiteCrown, WhiteHCrown, WhiteHorse, WhiteDrunk, WhitePBishop, WhiteKing,
+    WhiteSword, WhiteZebra, WhiteCamel, WhiteTower, WhiteWolf,
+    WhiteHat, WhiteDuck, WhiteAmazon, WhiteFlying, WhiteGnu, WhiteCub,
+    WhiteShield, WhiteHorse, WhiteWizard, WhiteCopper, WhiteIron,
+    WhiteViking, WhiteFlag, WhiteAxe, WhiteDolphin, WhiteCat, WhiteClaw,
+    WhiteWheel, WhiteButterfly, WhitePBishop, WhitePRook, WhiteHCrown,
+    WhiteShierd, WhiteMonarch, WhiteMother, WhiteNothing, WhiteDrunk, WhiteWheer,
+    WhiteTokin, WhitePKnight, WhitePCardinal, WhitePDragon, WhitePLance,
+    WhitePSilver, WhiteDagger, WhitePSword, WhitePDagger, WhiteCrown, WhiteKing,
     BlackPawn, BlackKnight, BlackBishop, BlackRook, BlackQueen,
     BlackFerz, BlackAlfil, BlackAngel, BlackMarshall, BlackWazir, BlackMan,
     BlackCannon, BlackNightrider, BlackCardinal, BlackDragon, BlackGrasshopper,
     BlackSilver, BlackFalcon, BlackLance, BlackCobra, BlackUnicorn, BlackLion,
-    BlackTokin, BlackClaw, BlackPCardinal, BlackPDragon, BlackCat,
-    BlackPSword, BlackMonarch, BlackMother, BlackNothing, BlackPRook, BlackPDagger,
-    BlackDolphin, BlackStag, BlackHorned, BlackEagle, BlackSword,
-    BlackCrown, BlackHCrown, BlackHorse, BlackDrunk, BlackPBishop, BlackKing,
+    BlackSword, BlackZebra, BlackCamel, BlackTower, BlackWolf,
+    BlackHat, BlackDuck, BlackAmazon, BlackFlying, BlackGnu, BlackCub,
+    BlackShield, BlackHorse, BlackWizard, BlackCopper, BlackIron,
+    BlackViking, BlackFlag, BlackAxe, BlackDolphin, BlackCat, BlackClaw,
+    BlackWheel, BlackButterfly, BlackPBishop, BlackPRook, BlackHCrown,
+    BlackShierd, BlackMonarch, BlackMother, BlackNothing, BlackDrunk, BlackWheer,
+    BlackTokin, BlackPKnight, BlackPCardinal, BlackPDragon, BlackPLance,
+    BlackPSilver, BlackDagger, BlackPSword, BlackPDagger, BlackCrown, BlackKing,
     EmptySquare, DarkSquare,
     NoRights, // [HGM] gamestate: for castling rights hidden in board[CASTLING]
     ClearBoard, WhitePlay, BlackPlay, PromotePiece, DemotePiece /*for use on EditPosition menus*/
@@ -314,11 +323,12 @@ typedef enum {
 /* [HGM] some macros that can be used as prefixes to convert piece types */
 #define WHITE_TO_BLACK (int)BlackPawn - (int)WhitePawn + (int)
 #define BLACK_TO_WHITE (int)WhitePawn - (int)BlackPawn + (int)
-#define PROMOTED       (int)WhiteDragon - (int)WhiteRook + (int)
-#define DEMOTED        (int)WhiteRook - (int)WhiteDragon + (int)
+#define PROMO          (int)WhiteDragon - (int)WhiteRook + (int)
+#define PROMOTED(X)    (promoPartner[X])
+#define DEMOTED(X)     (promoPartner[X])
 #define SHOGI          (int)EmptySquare + (int)
-#define CHUPROMOTED    ((int)WhitePDragon - (int)WhiteDragon)*(gameInfo.variant == VariantChu) + PROMOTED
-#define CHUDEMOTED     ((int)WhiteDragon - (int)WhitePDragon)*(gameInfo.variant == VariantChu) + DEMOTED
+#define CHUPROMOTED(X) (promoPartner[X])
+#define CHUDEMOTED(X)  (promoPartner[X])
 #define IS_SHOGI(V)    ((V) == VariantShogi || (V) == VariantChu)
 #define IS_LION(V)     ((V) == WhiteLion || (V) == BlackLion)
 
@@ -523,6 +533,7 @@ typedef struct {
     Boolean fischerCastling;/* [HGM] fischer: allow Fischr castling in any variant */
     Boolean matchMode;
     int matchGames;
+    Boolean epd;
     Boolean monoMode;
     Boolean debugMode;
     Boolean clockMode;
index 8a6a4dd..d19a769 100644 (file)
--- a/dialogs.c
+++ b/dialogs.c
@@ -93,11 +93,13 @@ int
 SetCurrentComboSelection (Option *opt)
 {
     int j;
+    if(currentCps) ; else
     if(!opt->textValue) opt->value = *(int*)opt->target; /* numeric */else {
        for(j=0; opt->choice[j]; j++) // look up actual value in list of possible values, to get selection nr
            if(*(char**)opt->target && !strcmp(*(char**)opt->target, ((char**)opt->textValue)[j])) break;
        opt->value = j + (opt->choice[j] == NULL);
     }
+    SetComboChoice(opt, opt->value);
     return opt->value;
 }
 
@@ -331,8 +333,10 @@ UpgradeParticipant ()
 static void
 PseudoOK ()
 {
+    if(matchMode) return;
     GenericReadout(matchOptions, -2); // read all, but suppress calling of MatchOK
     ASSIGN(appData.participants, engineName);
+    ASSIGN(appData.tourneyFile, tfName);
     PopDown(MasterDlg); // early popdown to prevent FreezeUI called through MatchEvent from causing XtGrab warning
 }
 
@@ -1458,6 +1462,22 @@ SecondSettingsProc ()
    SettingsPopUp(&second);
 }
 
+void
+RefreshSettingsDialog (ChessProgramState *cps, int val)
+{
+   if(val == 1) { // option values changed
+      if(shellUp[TransientDlg] && cps == currentCps) {
+         GenericUpdate(cps->option, -1); // normally update values when dialog is up
+      }
+      return; // and be done
+   }
+   if(val == 2) { // option list changed
+      if(!shellUp[TransientDlg] || cps != currentCps) return; // our dialog is not up, so nothing to do
+   }
+   PopDown(TransientDlg); // make sure any other dialog closes first
+   SettingsPopUp(cps);    // and popup new one
+}
+
 //----------------------------------------------- Load Engine --------------------------------------
 
 char *engineDir, *engineLine, *nickName, *params;
@@ -1669,6 +1689,10 @@ SetTcType (int n)
 void
 TimeControlProc ()
 {
+   if(gameMode != BeginningOfGame) {
+       DisplayError(_("Changing time control during a game is not implemented"), 0);
+       return;
+   }
    tmpMoves = appData.movesPerSession;
    tmpInc = appData.timeIncrement; if(tmpInc < 0) tmpInc = 0;
    tmpOdds1 = tmpOdds2 = 1; tcType = 0;
@@ -1771,7 +1795,7 @@ PromotionPopUp (char choice)
 { // choice depends on variant: prepare dialog acordingly
   count = 8;
   SetPromo(_("Cancel"), --count, -1); // Beware: GenericPopUp cannot handle user buttons named "cancel" (lowe case)!
-  if(choice != '+') {
+  if(choice != '+' && !IS_SHOGI(gameInfo.variant)) {
     if (!appData.testLegality || gameInfo.variant == VariantSuicide ||
         gameInfo.variant == VariantSpartan && !WhiteOnMove(currentMove) ||
         gameInfo.variant == VariantGiveaway) {
@@ -1944,6 +1968,7 @@ OutputChatMessage (int partner, char *mess)
     char *p = texts[partner];
     int len = strlen(mess) + 1;
 
+    if(!DialogExists(ChatDlg)) return;
     if(p) len += strlen(p);
     texts[partner] = (char*) malloc(len);
     snprintf(texts[partner], len, "%s%s", p ? p : "", mess);
@@ -2261,8 +2286,8 @@ ErrorPopUp (char *title, char *label, int modal)
 {
     errorUp = True;
     errorOptions[1].name = label;
-    if(dialogError = shellUp[TransientDlg])
-       GenericPopUp(errorOptions+1, title, FatalDlg, TransientDlg, MODAL, 0); // pop up as daughter of the transient dialog
+    if(dialogError = shellUp[MasterDlg])
+       GenericPopUp(errorOptions+1, title, FatalDlg, MasterDlg, MODAL, 0); // pop up as daughter of the transient dialog
     else
        GenericPopUp(errorOptions+modal, title, modal ? FatalDlg: ErrorDlg, BoardWindow, modal, 0); // kludge: option start address indicates modality
 }
@@ -2554,7 +2579,7 @@ MenuCallback (int n)
 static Option *
 Exp (int n, int x, int y)
 {
-    static int but1, but3, oldW, oldH;
+    static int but1, but3, oldW, oldH, oldX, oldY;
     int menuNr = -3, sizing, f, r;
     TimeMark now;
     extern Boolean right;
@@ -2565,6 +2590,7 @@ Exp (int n, int x, int y)
     }
 
     if(n == 0) { // motion
+       oldX = x; oldY = y;
        if(SeekGraphClick(Press, x, y, 1)) return NULL;
        if((but1 || dragging == 2) && !PromoScroll(x, y)) DragPieceMove(x, y);
        if(but3) MovePV(x, y, lineGap + BOARD_HEIGHT * (squareSize + lineGap));
@@ -2587,8 +2613,8 @@ Exp (int n, int x, int y)
        case  3: menuNr = RightClick(Press,   x, y, &pmFromX, &pmFromY), but3 = 1; break;
        case -2: shiftKey = !shiftKey;
        case -3: menuNr = RightClick(Release, x, y, &pmFromX, &pmFromY), but3 = 0; break;
-       case  4: BackwardEvent(); break;
-       case  5: ForwardEvent(); break;
+       case  4: Wheel(-1, oldX, oldY); break;
+       case  5: Wheel(1, oldX, oldY); break;
        case 10:
            sizing = (oldW != x || oldH != y);
            oldW = x; oldH = y;
index 3a7fc2e..9468d52 100644 (file)
--- a/dialogs.h
+++ b/dialogs.h
@@ -154,6 +154,7 @@ void SetWidgetText  P((Option *opt, char *buf, int n));
 void GetWidgetState  P((Option *opt, int *state));
 void SetWidgetState  P((Option *opt, int state));
 void SetWidgetLabel P((Option *opt, char *buf));
+void SetComboChoice  P((Option *opt, int choice));
 void SetDialogTitle  P((DialogClass dlg, char *title));
 void LoadListBox P((Option *opt, char *emptyText, int n1, int n2));
 void HighlightListBoxItem P((Option *opt, int nr));
diff --git a/draw.c b/draw.c
index cd5881d..fca16eb 100644 (file)
--- a/draw.c
+++ b/draw.c
@@ -55,9 +55,9 @@
 #include <stdio.h>
 #include <math.h>
 #include <cairo/cairo.h>
-#include <cairo/cairo-xlib.h>
 #include <librsvg/rsvg.h>
 #include <librsvg/rsvg-cairo.h>
+#include <pango/pangocairo.h>
 
 #if STDC_HEADERS
 # include <stdlib.h>
@@ -106,9 +106,9 @@ extern char *getenv();
 Boolean cairoAnimate;
 Option *currBoard;
 cairo_surface_t *csBoardWindow;
-static cairo_surface_t *pngPieceImages[2][(int)BlackPawn+4];   // png 256 x 256 images
-static cairo_surface_t *pngPieceBitmaps[2][(int)BlackPawn];    // scaled pieces as used
-static cairo_surface_t *pngPieceBitmaps2[2][(int)BlackPawn+4]; // scaled pieces in store
+static cairo_surface_t *pngPieceImages[2][(int)BlackPawn];   // png 256 x 256 images
+static cairo_surface_t *pngPieceBitmaps[2][(int)BlackPawn];  // scaled pieces as used
+static cairo_surface_t *pngPieceBitmaps2[2][(int)BlackPawn]; // scaled pieces in store
 static RsvgHandle *svgPieces[2][(int)BlackPawn+4]; // vector pieces in store
 static cairo_surface_t *pngBoardBitmap[2], *pngOriginalBoardBitmap[2];
 int useTexture, textureW[2], textureH[2];
@@ -144,9 +144,9 @@ SelectPieces(VariantClass v)
           pngPieceBitmaps[i][p] = pngPieceBitmaps2[i][p]; // defaults
        if(v == VariantShogi && BOARD_HEIGHT != 7) { // no exceptions in Tori Shogi
           pngPieceBitmaps[i][(int)WhiteCannon] = pngPieceBitmaps2[i][(int)WhiteTokin];
-          pngPieceBitmaps[i][(int)WhiteNightrider] = pngPieceBitmaps2[i][(int)WhiteKing+2];
-          pngPieceBitmaps[i][(int)WhiteGrasshopper] = pngPieceBitmaps2[i][(int)WhiteKing+3];
-          pngPieceBitmaps[i][(int)WhiteSilver] = pngPieceBitmaps2[i][(int)WhiteKing+4];
+          pngPieceBitmaps[i][(int)WhiteNightrider] = pngPieceBitmaps2[i][(int)WhitePKnight];
+          pngPieceBitmaps[i][(int)WhiteGrasshopper] = pngPieceBitmaps2[i][(int)WhitePLance];
+          pngPieceBitmaps[i][(int)WhiteSilver] = pngPieceBitmaps2[i][(int)WhitePSilver];
           pngPieceBitmaps[i][(int)WhiteQueen] = pngPieceBitmaps2[i][(int)WhiteLance];
           pngPieceBitmaps[i][(int)WhiteFalcon] = pngPieceBitmaps2[i][(int)WhiteMonarch]; // for Sho Shogi
        }
@@ -165,12 +165,16 @@ SelectPieces(VariantClass v)
        if(v == VariantChu) {
           pngPieceBitmaps[i][(int)WhiteNightrider] = pngPieceBitmaps2[i][(int)WhiteClaw];
           pngPieceBitmaps[i][(int)WhiteClaw]    = pngPieceBitmaps2[i][(int)WhiteNightrider];
-          pngPieceBitmaps[i][(int)WhiteUnicorn] = pngPieceBitmaps2[i][(int)WhiteHorned];
-          pngPieceBitmaps[i][(int)WhiteSilver]  = pngPieceBitmaps2[i][(int)WhiteStag];
-          pngPieceBitmaps[i][(int)WhiteFalcon]  = pngPieceBitmaps2[i][(int)WhiteEagle];
-          pngPieceBitmaps[i][(int)WhiteHorned]  = pngPieceBitmaps2[i][(int)WhiteUnicorn];
-          pngPieceBitmaps[i][(int)WhiteStag]    = pngPieceBitmaps2[i][(int)WhiteSilver];
-          pngPieceBitmaps[i][(int)WhiteEagle]   = pngPieceBitmaps2[i][(int)WhiteFalcon];
+          pngPieceBitmaps[i][(int)WhiteUnicorn] = pngPieceBitmaps2[i][(int)WhiteCat];
+          pngPieceBitmaps[i][(int)WhiteSilver]  = pngPieceBitmaps2[i][(int)WhiteSword];
+          pngPieceBitmaps[i][(int)WhiteFalcon]  = pngPieceBitmaps2[i][(int)WhiteDagger];
+          pngPieceBitmaps[i][(int)WhiteCat]     = pngPieceBitmaps2[i][(int)WhiteUnicorn];
+          pngPieceBitmaps[i][(int)WhiteSword]   = pngPieceBitmaps2[i][(int)WhiteSilver];
+          pngPieceBitmaps[i][(int)WhiteDagger]  = pngPieceBitmaps2[i][(int)WhiteFalcon];
+          pngPieceBitmaps[i][(int)WhiteMan]     = pngPieceBitmaps2[i][(int)WhiteCopper];
+          pngPieceBitmaps[i][(int)WhiteCopper]  = pngPieceBitmaps2[i][(int)WhiteMan];
+          pngPieceBitmaps[i][(int)WhiteAxe]     = pngPieceBitmaps2[i][(int)WhiteCannon];
+          pngPieceBitmaps[i][(int)WhiteCannon]  = pngPieceBitmaps2[i][(int)WhiteAxe];
        }
     }
 }
@@ -249,7 +253,7 @@ CreatePNGBoard (char *s, int kind)
     textureW[kind] = 0; // prevents bitmap from being used if not succesfully loaded
     if(strstr(s, ".png")) {
        cairo_surface_t *img = cairo_image_surface_create_from_png (s);
-       if(img) {
+       if(cairo_surface_status(img) == CAIRO_STATUS_SUCCESS) {
            char c, *p = s, *q;
            int r, f;
            if(pngOriginalBoardBitmap[kind]) cairo_surface_destroy(pngOriginalBoardBitmap[kind]);
@@ -288,13 +292,19 @@ CreatePNGBoard (char *s, int kind)
 char *pngPieceNames[] = // must be in same order as internal piece encoding
 { "Pawn", "Knight", "Bishop", "Rook", "Queen", "Advisor", "Elephant", "Archbishop", "Marshall", "Gold", "Commoner",
   "Canon", "Nightrider", "CrownedBishop", "CrownedRook", "Crown", "Chancellor", "Hawk", "Lance", "Cobra", "Unicorn", "Lion",
-  "GoldPawn", "Claw", "PromoHorse", "PromoDragon", "GoldLance", "PromoSword", "Prince", "Phoenix", "Kylin", "PromoRook", "PromoHSword",
-  "Dolphin", "Sword", "Leopard", "HSword", "GoldSilver", "Princess", "HCrown", "Knight", "Elephant", "PromoBishop", "King",
-  "Claw", "GoldKnight", "GoldLance", "GoldSilver", NULL
+  "Sword", "Zebra", "Camel", "Tower", "Wolf", "Hat", "Duck", "Lance", "Dragon", "Gnu", "Cub",
+  "LShield", "Pegasus", "Wizard", "Copper", "Iron", "Viking", "Flag", "Axe", "Dolphin", "Leopard", "Claw",
+  "Left", "Butterfly", "PromoBishop", "PromoRook", "HCrown", "RShield", "Prince", "Phoenix", "Kylin", "Drunk", "Right",
+  "GoldPawn", "GoldKnight", "PromoHorse", "PromoDragon", "GoldLance", "GoldSilver", "HSword", "PromoSword", "PromoHSword", "Princess", "King",
+  NULL
 };
 
-char *backupPiece[] = { "Princess", NULL, NULL, NULL, NULL, NULL, NULL,
-                       NULL, NULL, NULL, NULL, NULL, NULL, "King", "Queen", "Lion" }; // pieces that map on other when not kanji
+char *backupPiece[] = { // pieces that map on other in default theme ("Crown" - "Drunk")
+  "Princess", NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, "Chancellor", NULL,
+  NULL, "Knight", NULL, "Commoner", NULL, NULL, NULL, "Canon", NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, NULL, NULL, "King", "Queen", "Lion", "Elephant"
+};
 
 RsvgHandle *
 LoadSVG (char *dir, int color, int piece, int retry)
@@ -311,8 +321,15 @@ LoadSVG (char *dir, int color, int piece, int retry)
 
     snprintf(buf, MSG_SIZ, "%s/%s%s.svg", dir, color ? "Black" : "White", name);
 
-    if(svg || *dir && (svg = rsvg_handle_new_from_file(buf, &svgerror))) {
+    if(!svg && *dir) {
+      svg = rsvg_handle_new_from_file(buf, &svgerror);
+      if(!svg && *appData.inscriptions) { // if there is no piece-specific SVG, but we make inscriptions, try general background
+       snprintf(buf, MSG_SIZ, "%s/%sTile.svg", dir, color ? "Black" : "White");
+       svg = rsvg_handle_new_from_file(buf, &svgerror);
+      }
+    }
 
+    if(svg) {
       rsvg_handle_get_dimensions(svg, &svg_dimensions);
       img = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, squareSize,  squareSize);
 
@@ -327,7 +344,7 @@ LoadSVG (char *dir, int color, int piece, int retry)
 
       return svg;
     }
-    if(!retry && piece >= WhiteGrasshopper && piece <= WhiteNothing) // pieces that are only different in kanji sets
+    if(!retry && piece >= WhiteGrasshopper && piece <= WhiteDrunk) // pieces that are only different in kanji sets
         return LoadSVG(dir, color, piece, 1);
     if(svgerror)
        g_error_free(svgerror);
@@ -358,9 +375,10 @@ ScaleOnePiece (int color, int piece)
 
   if(!pngPieceImages[color][piece]) { // we still did not manage to acquire a piece bitmap
     static int warned = 0;
-    if(!(svgPieces[color][piece] = LoadSVG(svgDir, color, piece, 0)) && !warned) { // try to fall back on installed svg 
+    if(!(svgPieces[color][piece] = LoadSVG(svgDir, color, piece, 0)) // try to fall back on installed svg 
+       && !warned && strcmp(pngPieceNames[piece], "Tile")) {         // but do not complain about missing 'Tile'
       char *msg = _("No default pieces installed!\nSelect your own using '-pieceImageDirectory'.");
-      printf("%s\n", msg); // give up
+      printf("%s (%s)\n", msg, pngPieceNames[piece]); // give up
       DisplayError(msg, 0);
       warned = 1; // prevent error message being repeated for each piece type
     }
@@ -646,18 +664,25 @@ DrawLogo (Option *opt, void *logo)
     cairo_t *cr;
     int w, h;
 
-    if(!logo || !opt) return;
-    img = cairo_image_surface_create_from_png (logo);
-    w = cairo_image_surface_get_width (img);
-    h = cairo_image_surface_get_height (img);
+    if(!opt) return;
     cr = cairo_create(DRAWABLE(opt));
-//    cairo_scale(cr, (float)appData.logoSize/w, appData.logoSize/(2.*h));
-    cairo_scale(cr, (float)opt->max/w, (float)opt->value/h);
-    cairo_set_source_surface (cr, img, 0, 0);
-    cairo_paint (cr);
+    cairo_rectangle (cr, 0, 0, opt->max, opt->value);
+    cairo_set_source_rgba(cr, 0.5, 0.5, 0.5, 1.0);
+    cairo_fill(cr); // paint background in case logo does not exist
+    if(logo) {
+        img = cairo_image_surface_create_from_png (logo);
+        if(cairo_surface_status(img) == CAIRO_STATUS_SUCCESS) {
+           w = cairo_image_surface_get_width (img);
+           h = cairo_image_surface_get_height (img);
+//        cairo_scale(cr, (float)appData.logoSize/w, appData.logoSize/(2.*h));
+           cairo_scale(cr, (float)opt->max/w, (float)opt->value/h);
+           cairo_set_source_surface (cr, img, 0, 0);
+           cairo_paint (cr);
+        }
+       cairo_surface_destroy (img);
+    }
     cairo_destroy (cr);
-    cairo_surface_destroy (img);
-    GraphExpose(opt, 0, 0, appData.logoSize, appData.logoSize/2);
+    GraphExpose(opt, 0, 0, opt->max, opt->value);
 }
 
 static void
@@ -739,6 +764,34 @@ DrawDot (int marker, int x, int y, int r)
 }
 
 static void
+DrawUnicode (cairo_surface_t *canvas, char *string, int x, int y, char id, int flip)
+{
+//     cairo_text_extents_t te;
+       cairo_t *cr;
+       int s = 1 - 2*flip;
+       PangoLayout *layout;
+       PangoFontDescription *desc;
+       PangoRectangle r;
+       char fontName[MSG_SIZ];
+
+       cr = cairo_create (canvas);
+       layout = pango_cairo_create_layout(cr);
+       pango_layout_set_text(layout, string, -1);
+       snprintf(fontName, MSG_SIZ, "Sans Normal %dpx", 5*squareSize/8);
+       desc = pango_font_description_from_string(fontName);
+       pango_layout_set_font_description(layout, desc);
+       pango_font_description_free(desc);
+        pango_layout_get_pixel_extents(layout, NULL, &r);
+       cairo_translate(cr, x + squareSize/2 - s*r.width/2, y + (8+s)*squareSize/16 - s*r.height/2);
+       if(s < 0) cairo_rotate(cr, G_PI);
+       cairo_set_source_rgb(cr, (id == '+' ? 1.0 : 0.0), 0.0, 0.0);
+       pango_cairo_update_layout(cr, layout);
+       pango_cairo_show_layout(cr, layout);
+       g_object_unref(layout);
+       cairo_destroy(cr);
+}
+
+static void
 DrawText (char *string, int x, int y, int align)
 {
        int xx = x, yy = y;
@@ -764,12 +817,9 @@ DrawText (char *string, int x, int y, int align)
            yy += -te.y_bearing + 3;
        } else if (align == 4) {
            xx += te.x_bearing + 1, yy += -te.y_bearing + 3;
-       } else if (align < 0) {
-           xx += squareSize/2 - te.width/2, yy += 9*squareSize/16 - te.y_bearing/2;
        }
 
        cairo_move_to (cr, xx-1, yy);
-       if(align == -2) cairo_set_source_rgb (cr, 1.0, 0.0, 0.0); else
        if(align < 3) cairo_set_source_rgb (cr, 0.0, 0.0, 0.0);
        else          cairo_set_source_rgb (cr, 1.0, 1.0, 1.0);
        cairo_show_text (cr, string);
@@ -777,10 +827,10 @@ DrawText (char *string, int x, int y, int align)
 }
 
 void
-InscribeKanji (ChessSquare piece, int x, int y)
+InscribeKanji (cairo_surface_t *canvas, ChessSquare piece, int x, int y)
 {
     char *p, *q, buf[10];
-    int n;
+    int n, flip = appData.upsideDown && flipView == (piece < BlackPawn);
     if(piece == EmptySquare) return;
     if(piece >= BlackPawn) piece = BLACK_TO_WHITE piece;
     p = appData.inscriptions;
@@ -798,7 +848,7 @@ InscribeKanji (ChessSquare piece, int x, int y)
     strncpy(buf, p, 10);
     for(q=buf; (*++q & 0xC0) == 0x80;);
     *q = NULLCHAR;
-    DrawText(buf, x, y, n > WhiteLion ? -2 : -1);
+    DrawUnicode(canvas, buf, x, y, PieceToChar(n), flip);
 }
 
 void
@@ -810,7 +860,7 @@ DrawOneSquare (int x, int y, ChessSquare piece, int square_color, int marker, ch
        BlankSquare(csBoardWindow, x, y, square_color, piece, 1);
     } else {
        pngDrawPiece(csBoardWindow, piece, square_color, x, y);
-        if(appData.inscriptions[0]) InscribeKanji(piece, x, y);
+        if(appData.inscriptions[0]) InscribeKanji(csBoardWindow, piece, x, y);
     }
 
     if(align) { // square carries inscription (coord or piece count)
@@ -859,6 +909,7 @@ CairoOverlayPiece (ChessSquare piece, cairo_surface_t *dest)
   if(doubleClick) cairo_paint_with_alpha (pieceSource, 0.6);
   else cairo_paint(pieceSource);
   cairo_destroy (pieceSource);
+  if(appData.inscriptions[0]) InscribeKanji(dest, piece, 0, 0);
 }
 
 void
index 9a92dd0..ac1103e 100644 (file)
@@ -232,11 +232,14 @@ SetProgramStats (FrontEndProgramStats * stats) // now directly called by back-en
         header[which][0] = NULLCHAR;
         if(gameMode == AnalyzeMode) {
           ChessProgramState *cps = (which ? &second : &first);
-          if((multi = MultiPV(cps)) >= 0) {
-            snprintf(header[which], MSG_SIZ, "\t%s viewpoint\t\tfewer / Multi-PV setting = %d / more\n",
-                                       appData.whitePOV || appData.scoreWhite ? "white" : "mover", cps->option[multi].value);
+          char *exclu = cps->excludeMoves ? exclusionHeader : "";
+          if((multi = MultiPV(cps, 3)) != -1) {
+            char *s = "setting";
+            if(multi < -1) multi = -2 - multi, s = "margin";
+            snprintf(header[which], MSG_SIZ, "\t%s viewpoint\t\tfewer / Multi-PV %s = %d / more\n",
+                                       appData.whitePOV || appData.scoreWhite ? "white" : "mover", s, cps->option[multi].value);
          }
-          if(!which) snprintf(header[which]+strlen(header[which]), MSG_SIZ-strlen(header[which]), "%s%s", exclusionHeader, columnHeader);
+          if(!which) snprintf(header[which]+strlen(header[which]), MSG_SIZ-strlen(header[which]), "%s%s", exclu, columnHeader);
           InsertIntoMemo( which, header[which], 0);
         } else {
           snprintf(header[which], MSG_SIZ, "%s", columnHeader);
@@ -402,6 +405,14 @@ SetEngineColorIcon (int which)
 // [HGM] multivar: sort Thinking Output within one depth on score
 
 static int
+MateFlip (int n)
+{   // map mate-score to monotonous scale, so sorting compares them correctly
+    if(n >=  MATE_SCORE) return 2*MATE_SCORE - n;
+    if(n <= -MATE_SCORE) return -2*MATE_SCORE - n;
+    return n;
+}
+
+static int
 InsertionPoint (int len, EngineOutputData *ed)
 {
        int i, offs = 0, newScore = ed->score, n = ed->which;
@@ -425,7 +436,7 @@ InsertionPoint (int len, EngineOutputData *ed)
                keys[i+n+2] = ed->moveKey;
                fail[i+n+2] = failType;
                if(ed->moveKey != keys[i+n] && // same move always tops previous one (as a higher score must be a fail low)
-                  newScore < scores[i+n] && fail[i+n] == ' ') break;
+                  MateFlip(newScore) < MateFlip(scores[i+n]) && fail[i+n] == ' ') break;
                // if it had higher score as previous, move previous in stead
                scores[i+n+2] = ed->moveKey == keys[i+n] ? newScore : scores[i+n]; // correct scores of fail-low/high searches
                textEnd[i+n+2] = textEnd[i+n] + len;
@@ -443,7 +454,6 @@ InsertionPoint (int len, EngineOutputData *ed)
       return offs + strlen(header[ed->which]);
 }
 
-#define MATE_SCORE 100000
 static char spaces[] = "            "; // [HGM] align: spaces for padding
 
 static void
index b6ed686..bd0f071 100644 (file)
@@ -137,6 +137,7 @@ void DragPieceEnd P((int x, int y));
 void DragPieceMove P((int x, int y));
 void LeftClick P((ClickType c, int x, int y));
 int  RightClick P((ClickType c, int x, int y, int *col, int *row));
+void Wheel P((int dir, int x, int y));
 
 int StartChildProcess P((char *cmdLine, char *dir, ProcRef *pr));
 void DestroyChildProcess P((ProcRef pr, int/*boolean*/ signal));
index c6df31a..de5da12 100644 (file)
@@ -63,7 +63,6 @@
 #include <pwd.h>
 #include <math.h>
 #include <cairo/cairo.h>
-#include <cairo/cairo-xlib.h>
 #include <gtk/gtk.h>
 
 #if !OMIT_SOCKETS
@@ -213,11 +212,13 @@ RETSIGTYPE CmailSigHandler P((int sig));
 RETSIGTYPE IntSigHandler P((int sig));
 RETSIGTYPE TermSizeSigHandler P((int sig));
 char *InsertPxlSize P((char *pattern, int targetPxlSize));
+#ifdef TODO_GTK
 #if ENABLE_NLS
 XFontSet CreateFontSet P((char *base_fnt_lst));
 #else
 char *FindFont P((char *pattern, int targetPxlSize));
 #endif
+#endif
 void DelayedDrag P((void));
 void ICSInputBoxPopUp P((void));
 void MoveTypeInProc P((GdkEventKey *eventkey));
@@ -1022,8 +1023,6 @@ main (int argc, char **argv)
                    programName, appData.boardSize);
            exit(2);
        }
-       if(BOARD_WIDTH > 8)
-           squareSize = (squareSize*8 + BOARD_WIDTH/2)/BOARD_WIDTH; // scale height
        if (i < 7) {
            /* Find some defaults; use the nearest known size */
            SizeDefaults *szd, *nearest;
@@ -1075,6 +1074,10 @@ main (int argc, char **argv)
        tinyLayout = szd->tinyLayout;
        // [HGM] font: use defaults from settings file if available and not overruled
     }
+    if(BOARD_WIDTH != 8) {
+       squareSize = (squareSize*8 + BOARD_WIDTH/2)/BOARD_WIDTH; // keep width the same
+       lineGap = (squareSize < 37 ? 1 : squareSize < 59 ? 2 : squareSize < 116 ? 3 : 4);
+    }
 
     defaultLineGap = lineGap;
     if(appData.overrideLineGap >= 0) lineGap = appData.overrideLineGap;
@@ -1775,7 +1778,7 @@ void
 ModeHighlight ()
 {
     static int oldPausing = FALSE;
-    static GameMode oldmode = (GameMode) -1;
+    static GameMode oldMode = (GameMode) -1;
     char *wname;
     if (!boardWidget) return;
 
@@ -1793,7 +1796,7 @@ ModeHighlight ()
        }
     }
 
-    wname = ModeToWidgetName(oldmode);
+    wname = ModeToWidgetName(oldMode);
     if (wname != NULL) {
        MarkMenuItem(wname, False);
     }
@@ -1801,8 +1804,9 @@ ModeHighlight ()
     if (wname != NULL) {
        MarkMenuItem(wname, True);
     }
-    oldmode = gameMode;
+    if(oldMode == TwoMachinesPlay) EnableNamedMenuItem("Mode.MachineMatch", True);
     MarkMenuItem("Mode.MachineMatch", matchMode && matchGame < appData.matchGames);
+    oldMode = gameMode;
 
     /* Maybe all the enables should be handled here, not just this one */
     EnableNamedMenuItem("Mode.Training", gameMode == Training || gameMode == PlayFromGameFile);
index 7e91a24..525d00b 100644 (file)
@@ -48,7 +48,6 @@ extern char *getenv();
 #include <stdint.h>
 
 #include <cairo/cairo.h>
-#include <cairo/cairo-xlib.h>
 #include <gtk/gtk.h>
 #include <gdk/gdkkeysyms.h>
 #ifdef OSXAPP
@@ -244,6 +243,12 @@ SetWidgetLabel (Option *opt, char *buf)
 }
 
 void
+SetComboChoice (Option *opt, int n)
+{
+    gtk_combo_box_set_active(opt->handle, n);
+}
+
+void
 SetDialogTitle (DialogClass dlg, char *title)
 {
     gtk_window_set_title(GTK_WINDOW(shells[dlg]), title);
@@ -544,11 +549,11 @@ HighlightText (Option *opt, int from, int to, Boolean highlight)
     if(!(opt->min & INIT)) {
        opt->min |= INIT; // each memo its own init flag!
        gtk_text_buffer_create_tag(opt->handle, "highlight", "background", "yellow", NULL);
-       gtk_text_buffer_create_tag(opt->handle, "normal", "background", "white", NULL);
     }
     gtk_text_buffer_get_iter_at_offset(opt->handle, &start, from);
     gtk_text_buffer_get_iter_at_offset(opt->handle, &end, to);
-    gtk_text_buffer_apply_tag_by_name(opt->handle, highlight ? "highlight" : "normal", &start, &end);
+    if(highlight) gtk_text_buffer_apply_tag_by_name(opt->handle, "highlight", &start, &end);
+    else gtk_text_buffer_remove_tag_by_name(opt->handle, "highlight", &start, &end);
 }
 
 static char **names;
@@ -1465,10 +1470,12 @@ if(appData.debugMode) printf("n=%d, h=%d, w=%d\n",n,height,width);
             /* set button color on new variant dialog */
             if(option[i].textValue) {
                 static char *b = "Bold";
+                char *v, *p = NULL, n = option[i].value;
+                if(n >= 0) v = VariantName(n), p = strstr(first.variants, v);
                 gdk_color_parse( option[i].textValue, &color );
                 gtk_widget_modify_bg ( GTK_WIDGET(button), GTK_STATE_NORMAL, &color );
                 gtk_widget_set_sensitive(button, option[i].value >= 0 && (appData.noChessProgram
-                                        || strstr(first.variants, VariantName(option[i].value))));
+                                        || p && (!*v || strlen(p) == strlen(v) || p[strlen(v)] == ',')));
                 if(engineVariant[100] ? !strcmp(engineVariant+100, option[i].name) : 
                    gameInfo.variant ? option[i].value == gameInfo.variant : !strcmp(option[i].name, "Normal"))
                     SetWidgetFont(gtk_bin_get_child(GTK_BIN(button)), &b);
index e0e0a75..162a265 100644 (file)
@@ -184,13 +184,14 @@ StartLoadGameTimer (long millisec)
 
 guint analysisClockTag = 0;
 
-void
+int
 AnalysisClockCallback(gpointer data)
 {
     if (gameMode == AnalyzeMode || gameMode == AnalyzeFile
          || appData.icsEngineAnalyze) { // [DM]
        AnalysisPeriodicEvent(0);
     }
+    return 1;
 }
 
 void
diff --git a/menus.c b/menus.c
index 863f2a0..03a2d3c 100644 (file)
--- a/menus.c
+++ b/menus.c
@@ -258,6 +258,8 @@ QuitProc ()
 void
 MatchProc ()
 {
+    static Enables matchOff[] = { { "Mode.MachineMatch", False }, { NULL, False } };
+    if(matchMode) SetMenuEnables(matchOff);
     MatchEvent(2);
 }
 
@@ -699,6 +701,7 @@ MenuItem engineMenu[100] = {
   {"----",                         NULL,      NULL,              NothingProc},
   {N_("Engine #1 Settings..."),    NULL,     "Engine#1Settings", FirstSettingsProc},
   {N_("Engine #2 Settings..."),    NULL,     "Engine#2Settings", SecondSettingsProc},
+  {N_("Common Settings..."), "<Alt><Shift>u","CommonEngine",     UciMenuProc},
   {"----",                         NULL,      NULL,              NothingProc},
   {N_("Hint"),                     NULL,     "Hint",             HintEvent},
   {N_("Book"),                     NULL,     "Book",             BookEvent},
@@ -713,7 +716,6 @@ MenuItem optionsMenu[] = {
   {N_("General..."),              NULL,             "General",             OptionsProc},
 #endif
   {N_("Time Control..."),        "<Alt><Shift>t",   "TimeControl",         TimeControlProc},
-  {N_("Common Engine..."),       "<Alt><Shift>u",   "CommonEngine",        UciMenuProc},
   {N_("Adjudications..."),       "<Alt><Shift>j",   "Adjudications",       EngineMenuProc},
   {N_("ICS..."),                  NULL,             "ICS",                 IcsOptionsProc},
   {N_("Tournament..."),           NULL,             "Match",               MatchOptionsProc},
diff --git a/moves.c b/moves.c
index e0ad2e1..867a940 100644 (file)
--- a/moves.c
+++ b/moves.c
@@ -72,7 +72,6 @@ int BlackPiece P((ChessSquare));
 int SameColor P((ChessSquare, ChessSquare));
 int PosFlags(int index);
 
-extern signed char initialRights[BOARD_FILES]; /* [HGM] all rights enabled, set in InitPosition */
 int quickFlag;
 char *pieceDesc[EmptySquare];
 char *defaultDesc[EmptySquare] = {
@@ -122,12 +121,13 @@ unsigned char pieceToChar[EmptySquare+1] = {
                         'o', 'h', 'i', 'j', 'g', 'd', 'v', 'l', 's', 'u', 'k',
                         'x' };
 unsigned char pieceNickName[EmptySquare];
+int promoPartner[EmptySquare];
 
 char
 PieceToChar (ChessSquare p)
 {
     int c;
-    if((int)p < 0 || (int)p >= (int)EmptySquare) return('x'); /* [HGM] for safety */
+    if((int)p < 0 || (int)p >= (int)EmptySquare) return('?'); /* [HGM] for safety */
     c = pieceToChar[(int) p];
     if(c & 128) c = c & 63 | 64;
     return c;
@@ -205,7 +205,7 @@ CollectPieceDescriptors ()
     // dump all engine defined pieces, and pieces with non-standard names,
     // but suppress black pieces that are the same as their white counterpart
     ChessSquare p;
-    static char buf[MSG_SIZ];
+    static char buf[MSG_SIZ], s[2];
     char *m, c, d, *pieceName = defaultName;
     int len;
     *buf = NULLCHAR;
@@ -215,22 +215,56 @@ CollectPieceDescriptors ()
     if(gameInfo.variant == VariantXiangqi) pieceName = xqName;
     for(p=WhitePawn; p<EmptySquare; p++) {
        if((c = pieceToChar[p]) == '.' || c == '~') continue;  // does not participate
-       m = pieceDesc[p]; d = (c == '+' ? pieceToChar[DEMOTED p] : c);
-       if(p >= BlackPawn && pieceToChar[BLACK_TO_WHITE p] == toupper(c)
-             && (c != '+' || pieceToChar[DEMOTED BLACK_TO_WHITE p] == d)) { // black member of normal pair
+       m = pieceDesc[p]; d = (c == '+' ? pieceToChar[DEMOTED(p)] : c);
+       if(p >= BlackPawn && pieceToChar[BLACK_TO_WHITE p] == (c & ~32)
+             && (c != '+' || pieceToChar[DEMOTED(BLACK_TO_WHITE p)] == d)) {// black member of normal pair
            char *wm = pieceDesc[BLACK_TO_WHITE p];
            if(!m && !wm || m && wm && !strcmp(wm, m)) continue;            // moves as a white piece
        } else                                                              // white or unpaired black
-       if((p < BlackPawn || CharToPiece(toupper(d)) != EmptySquare) &&     // white or lone black
+       if((p < BlackPawn || CharToPiece(d & ~32) != EmptySquare) &&        // white or lone black
           !pieceDesc[p] /*&& pieceName[p] == c*/) continue; // orthodox piece known by its usual name
 // TODO: listing pieces because of unusual name can only be done if we have accurate Betza of all defaults
        if(!m) m = defaultDesc[p];
+       if(!m) continue;
        len = strlen(buf);
-       snprintf(buf+len, MSG_SIZ-len, "%s%s%c:%s", len ? ";" : "", c == '+' ? "+" : "", d, m);
+       *s = (d > 128 ? SUFFIXES[d-128>>6] : 0); d = 64 + (d & 63);
+       snprintf(buf+len, MSG_SIZ-len, "%s%s%c%s:%s", len ? ";" : "", c == '+' ? "+" : "", d, s, m);
     }
     return buf;
 }
 
+int
+LoadPieceDesc (char *s)
+{
+    ChessSquare piece;
+    static char suf[] = SUFFIXES;
+    char *r, *p, *q = s;
+    int ok = TRUE, promoted, c;
+    while(q && *s) {
+       p = s;
+       q = strchr(s, ';');
+       if(q) *q = 0, s = q+1;
+       if(*p == '+') promoted = 1, p++; else promoted = 0;
+       c = *p++;
+       if(!c) { ok = FALSE; continue; } // bad syntax
+       if(*p && (r = strchr(suf, *p))) c += 64*(r - suf + 1), p++;
+       if(*p++ != ':') { ok = FALSE; continue; } // bad syntax
+       if(!strcmp(p, "(null)")) continue; // handle bug in writing of XBoard 4.8.0
+        piece = CharToPiece(c);
+       if(piece >= EmptySquare) { ok = FALSE; continue; } // non-existent piece
+       if(promoted) {
+           piece = promoPartner[piece];
+           if(pieceToChar[piece] != '+') { ok = FALSE; continue; } // promoted form does not exist
+       }
+       ASSIGN(pieceDesc[piece], p);
+       if(piece < BlackPawn && (pieceToChar[WHITE_TO_BLACK piece] == pieceToChar[piece] + 32 || promoted)) {
+           ASSIGN(pieceDesc[WHITE_TO_BLACK piece], p);
+       }
+       pieceDefs = TRUE;
+    }
+    return ok;
+}
+
 // [HGM] gen: configurable move generation from Betza notation sent by engine.
 // Some notes about two-leg moves: GenPseudoLegal() works in two modes, depending on whether a 'kill-
 // square has been set: without one is generates all moves, and a global int legNr flags in bits 0 and 1
@@ -286,9 +320,9 @@ MovesFromString (Board board, int flags, int f, int r, int tx, int ty, int angle
     if(pc == WhitePawn || pc == WhiteLance) promo = WhitePromotion, promoRank = BOARD_HEIGHT-1; else
     if(pc == BlackPawn || pc == BlackLance) promo = BlackPromotion, promoRank = 0;
     while(*p) {                  // more moves to go
-       int expo = 1, dx, dy, x, y, mode, dirSet, ds2=0, retry=0, initial=0, jump=1, skip = 0, all = 0;
+       int expo = -1, dx, dy, x, y, mode, dirSet, ds2=0, retry=0, initial=0, jump=1, skip = 0, all = 0;
        char *cont = NULL;
-       if(*p == 'i') initial = 1, desc = ++p;
+       while(*p == 'i') initial++, desc = ++p;
        while(islower(*p)) p++;  // skip prefixes
        if(!isupper(*p)) return; // syntax error: no atom
        dx = xStep[*p-'A'] - '0';// step vector of atom
@@ -373,12 +407,14 @@ MovesFromString (Board board, int flags, int f, int r, int tx, int ty, int angle
        if(isdigit(*++p)) expo = atoi(p++);           // read exponent
        if(expo > 9) p++;                             // allow double-digit
        desc = p;                                     // this is start of next move
+       if(initial == 2) { if(board[r][f] != initialPosition[r-2*his+3][f]) continue; } else
        if(initial && (board[r][f] != initialPosition[r][f] ||
                       r == 0              && board[TOUCHED_W] & 1<<f ||
                       r == BOARD_HEIGHT-1 && board[TOUCHED_B] & 1<<f   ) ) continue;
-       if(expo > 1 && dx == 0 && dy == 0) {          // castling indicated by O + number
+       if(expo > 0 && dx == 0 && dy == 0) {          // castling indicated by O + number
            mode |= 1024; dy = 1;
        }
+       if(expo < 0) expo = 1;                        // use 1 for default
         if(!cont) {
            if(!(mode & 15)) mode |= his + 4;         // no mode spec, use default = mc
        } else {
@@ -409,8 +445,8 @@ MovesFromString (Board board, int flags, int f, int r, int tx, int ty, int angle
                if(y < 0 || y >= BOARD_HEIGHT) break; // vertically off-board: always done
                if(x <  BOARD_LEFT) { if(mode & 128) x += BOARD_RGHT - BOARD_LEFT, loop++; else break; }
                if(x >= BOARD_RGHT) { if(mode & 128) x -= BOARD_RGHT - BOARD_LEFT, loop++; else break; }
-               if(board[y][x] == DarkSquare) break;  // black squares are supposed to be off board
                if(j) { j--; continue; }              // skip irrespective of occupation
+               if(board[y][x] == DarkSquare) break;  // black squares are supposed to be off board
                if(!jump    && board[y - vy + vy/2][x - vx + vx/2] != EmptySquare) break; // blocked
                if(jump > 1 && board[y - vy + vy/2][x - vx + vx/2] == EmptySquare) break; // no hop
                if(x == f && y == r && !loop) occup = 4;     else // start square counts as empty (if not around cylinder!)
@@ -449,7 +485,7 @@ MovesFromString (Board board, int flags, int f, int r, int tx, int ty, int angle
                    if(occup == 4) continue; // skip empty squares
                    if((x == BOARD_LEFT + skip || x > BOARD_LEFT + skip && vx < 0 && board[y][x-1-skip] == DarkSquare)
                                                                    && board[y][x] == initialPosition[y][x]) { // reached initial corner piece
-                     if(pc != WhiteKing && pc != BlackKing) { // non-royal castling (to be entered as two-leg move via 'Rook')
+                     if(pc != WhiteKing && pc != BlackKing || expo == 1) { // non-royal castling (to be entered as two-leg move via 'Rook')
                        if(killX < 0) cb(board, flags, FirstLeg,   r, f, y, x, cl); if(killX < f)
                        legNr <<= 1,  cb(board, flags, NormalMove, r, f, y, f - expo, cl), legNr >>= 1;
                      } else
@@ -457,7 +493,7 @@ MovesFromString (Board board, int flags, int f, int r, int tx, int ty, int angle
                    }
                    if((x == BOARD_RGHT-1-skip || x < BOARD_RGHT-1-skip && vx > 0 && board[y][x+1+skip] == DarkSquare)
                                                                    && board[y][x] == initialPosition[y][x]) {
-                     if(pc != WhiteKing && pc != BlackKing) {
+                     if(pc != WhiteKing && pc != BlackKing || expo == 1) {
                        if(killX < 0) cb(board, flags, FirstLeg,   r, f, y, x, cl); if(killX > f)
                        legNr <<= 1,  cb(board, flags, NormalMove, r, f, y, f + expo, cl), legNr >>= 1;
                      } else
@@ -709,7 +745,7 @@ GenPseudoLegal (Board board, int flags, MoveCallback callback, VOIDSTAR closure,
          if ((flags & F_WHITE_ON_MOVE) != (board[rf][ff] < BlackPawn)) continue; // [HGM] speed: wrong color
           m = 0; piece = board[rf][ff];
           if(PieceToChar(piece) == '~')
-                 piece = (ChessSquare) ( DEMOTED piece );
+                 piece = (ChessSquare) ( DEMOTED(piece) );
           if(filter != EmptySquare && piece != filter) continue;
           if(pieceDefs && pieceDesc[piece]) { // [HGM] gen: use engine-defined moves
               MovesFromString(board, flags, ff, rf, -1, -1, 0, pieceDesc[piece], callback, closure);
@@ -885,14 +921,14 @@ GenPseudoLegal (Board board, int flags, MoveCallback callback, VOIDSTAR closure,
 
             /* Gold General (and all its promoted versions) . First do the */
             /* diagonal forward steps, then proceed as normal Wazir        */
-            case SHOGI (PROMOTED WhitePawn):
+            case SHOGI (PROMO WhitePawn):
                if(gameInfo.variant == VariantShogi) goto WhiteGold;
-            case SHOGI (PROMOTED BlackPawn):
+            case SHOGI (PROMO BlackPawn):
                if(gameInfo.variant == VariantShogi) goto BlackGold;
                SlideVertical(board, flags, rf, ff, callback, closure);
                break;
 
-            case SHOGI (PROMOTED WhiteKnight):
+            case SHOGI (PROMO WhiteKnight):
                if(gameInfo.variant == VariantShogi) goto WhiteGold;
             case SHOGI BlackDrunk:
             case SHOGI BlackAlfil:
@@ -901,7 +937,7 @@ GenPseudoLegal (Board board, int flags, MoveCallback callback, VOIDSTAR closure,
                StepBackward(board, flags, rf, ff, callback, closure);
                break;
 
-            case SHOGI (PROMOTED BlackKnight):
+            case SHOGI (PROMO BlackKnight):
                if(gameInfo.variant == VariantShogi) goto BlackGold;
             case SHOGI WhiteDrunk:
             case SHOGI WhiteAlfil:
@@ -911,15 +947,15 @@ GenPseudoLegal (Board board, int flags, MoveCallback callback, VOIDSTAR closure,
                break;
 
 
-            case SHOGI WhiteStag:
-            case SHOGI BlackStag:
+            case SHOGI WhiteGnu:
+            case SHOGI BlackGnu:
                if(gameInfo.variant == VariantShogi) goto BlackGold;
                SlideVertical(board, flags, rf, ff, callback, closure);
                Ferz(board, flags, rf, ff, callback, closure);
                StepSideways(board, flags, rf, ff, callback, closure);
                break;
 
-            case SHOGI (PROMOTED WhiteQueen):
+            case SHOGI (PROMO WhiteQueen):
             case SHOGI WhiteTokin:
             case SHOGI WhiteWazir:
            WhiteGold:
@@ -927,7 +963,7 @@ GenPseudoLegal (Board board, int flags, MoveCallback callback, VOIDSTAR closure,
                Wazir(board, flags, rf, ff, callback, closure);
                break;
 
-            case SHOGI (PROMOTED BlackQueen):
+            case SHOGI (PROMO BlackQueen):
             case SHOGI BlackTokin:
             case SHOGI BlackWazir:
             BlackGold:
@@ -1238,9 +1274,9 @@ GenPseudoLegal (Board board, int flags, MoveCallback callback, VOIDSTAR closure,
                StepVertical(board, flags, rf, ff, callback, closure);
                break;
 
-            case SHOGI (PROMOTED WhiteFerz):
+            case SHOGI (PROMO WhiteFerz):
                if(gameInfo.variant == VariantShogi) goto WhiteGold;
-            case SHOGI (PROMOTED BlackFerz):
+            case SHOGI (PROMO BlackFerz):
                if(gameInfo.variant == VariantShogi) goto BlackGold;
             case SHOGI WhitePSword:
             case SHOGI BlackPSword:
@@ -1276,7 +1312,7 @@ GenPseudoLegal (Board board, int flags, MoveCallback callback, VOIDSTAR closure,
                SlideVertical(board, flags, rf, ff, callback, closure);
                break;
 
-            case SHOGI WhiteHorned:
+            case SHOGI WhiteCat:
                Sting(board, flags, rf, ff, 1, 0, callback, closure);
                callback(board, flags, NormalMove, rf, ff, rf, ff, closure);
                if(killX >= 0) break;
@@ -1285,7 +1321,7 @@ GenPseudoLegal (Board board, int flags, MoveCallback callback, VOIDSTAR closure,
                SlideBackward(board, flags, rf, ff, callback, closure);
                break;
 
-            case SHOGI BlackHorned:
+            case SHOGI BlackCat:
                Sting(board, flags, rf, ff, -1, 0, callback, closure);
                callback(board, flags, NormalMove, rf, ff, rf, ff, closure);
                if(killX >= 0) break;
@@ -1294,7 +1330,7 @@ GenPseudoLegal (Board board, int flags, MoveCallback callback, VOIDSTAR closure,
                SlideForward(board, flags, rf, ff, callback, closure);
                break;
 
-            case SHOGI WhiteEagle:
+            case SHOGI WhiteDagger:
                Sting(board, flags, rf, ff, 1,  1, callback, closure);
                Sting(board, flags, rf, ff, 1, -1, callback, closure);
                callback(board, flags, NormalMove, rf, ff, rf, ff, closure);
@@ -1303,7 +1339,7 @@ GenPseudoLegal (Board board, int flags, MoveCallback callback, VOIDSTAR closure,
                SlideDiagBackward(board, flags, rf, ff, callback, closure);
                break;
 
-            case SHOGI BlackEagle:
+            case SHOGI BlackDagger:
                Sting(board, flags, rf, ff, -1,  1, callback, closure);
                Sting(board, flags, rf, ff, -1, -1, callback, closure);
                callback(board, flags, NormalMove, rf, ff, rf, ff, closure);
@@ -1674,10 +1710,11 @@ CheckTest (Board board, int flags, int rf, int ff, int rt, int ft, int enPassant
        }
        ep = board[EP_STATUS];
        if( captured == WhiteLion || captured == BlackLion ) { // [HGM] lion: Chu Lion-capture rules
-           ChessSquare victim = killX < 0 ? EmptySquare : trampled;
+           ChessSquare victim = saveKill < 0 ? EmptySquare : trampled;
            if( (board[rt][ft] == WhiteLion || board[rt][ft] == BlackLion) &&           // capturer is Lion
                (ff - ft > 1 || ft - ff > 1 || rf - rt > 1 || rt - rf > 1) &&           // captures from a distance
-               (victim == EmptySquare || victim == WhitePawn || victim == BlackPawn) ) // no or worthless 'bridge'
+               (victim == EmptySquare || victim == WhitePawn || victim == BlackPawn    // no or worthless 'bridge'
+                                    || victim == WhiteCobra || victim == BlackCobra) ) // (Pawn or Go Between)
                     board[EP_STATUS] = EP_ROYAL_LION; // on distant Lion x Lion victim must not be pseudo-legally protected
        }
     }
@@ -1790,7 +1827,7 @@ LegalityTest (Board board, int flags, int rf, int ff, int rt, int ft, int promoC
     if(quickFlag) flags = flags & ~1 | quickFlag & 1; // [HGM] speed: in quick mode quickFlag specifies side-to-move.
     if(rf == DROP_RANK) return LegalDrop(board, flags, ff, rt, ft);
     piece = filterPiece = board[rf][ff];
-    if(PieceToChar(piece) == '~') filterPiece = DEMOTED piece;
+    if(PieceToChar(piece) == '~') filterPiece = DEMOTED(piece);
 
     /* [HGM] Cobra and Falcon are wildcard pieces; consider all their moves legal */
     /* (perhaps we should disallow moves that obviously leave us in check?)              */
@@ -1830,7 +1867,7 @@ LegalityTest (Board board, int flags, int rf, int ff, int rt, int ft, int promoC
         if(cl.kind != NormalMove || promoChar == NULLCHAR || promoChar == '=') return cl.kind;
         if(promoChar != '+')
             return CharToPiece(promoChar) == EmptySquare ? ImpossibleMove : IllegalMove;
-        if(PieceToChar(CHUPROMOTED board[rf][ff]) != '+') {
+        if(PieceToChar(CHUPROMOTED(board[rf][ff])) != '+') {
            if(PieceToChar(CHUPROMOTED (board[rf][ff] < BlackPawn ? WhitePawn : BlackPawn)) != '.')
            return ImpossibleMove;
        }
@@ -1877,7 +1914,7 @@ if(appData.debugMode)fprintf(debugFP,"SHOGI promoChar = %c\n", promoChar ? promo
             // should test if in zone, really
             if(gameInfo.variant == VariantChuChess && (piece == WhiteKnight || piece == BlackKnight) && HasLion(board, flags))
                 return IllegalMove;
-            if(PieceToChar(PROMOTED piece) == '+') return flags & F_WHITE_ON_MOVE ? WhitePromotion : BlackPromotion;
+            if(PieceToChar(PROMOTED(piece)) == '+') return flags & F_WHITE_ON_MOVE ? WhitePromotion : BlackPromotion;
         } else
        if(promoChar == '=') cl.kind = IllegalMove; else // [HGM] shogi: no deferred promotion outside Shogi
        if (cl.kind == WhitePromotion || cl.kind == BlackPromotion) {
@@ -1999,7 +2036,7 @@ DisambiguateCallback (Board board, int flags, ChessMove kind, int rf, int ff, in
 
     if ((cl->pieceIn == EmptySquare || cl->pieceIn == board[rf][ff]
          || PieceToChar(board[rf][ff]) == '~'
-              && cl->pieceIn == (ChessSquare)(DEMOTED board[rf][ff])
+              && cl->pieceIn == (ChessSquare)(DEMOTED(board[rf][ff]))
                                                                       ) &&
        (cl->rfIn == -1 || cl->rfIn == rf) &&
        (cl->ffIn == -1 || cl->ffIn == ff) &&
@@ -2155,7 +2192,7 @@ Disambiguate (Board board, int flags, DisambiguateClosure *closure)
         else if(c == 'l' && gameInfo.variant == VariantChuChess && HasLion(board, flags)) closure->kind = IllegalMove;
     } else if (c == '+') { // '+' outside shogi, check if pieceToCharTable enabled it
         ChessSquare p = closure->piece;
-        if(p > WhiteMan && p < BlackPawn || p > BlackMan || PieceToChar(PROMOTED p) != '+')
+        if(p > WhiteMan && p < BlackPawn || p > BlackMan || PieceToChar(PROMOTED(p)) != '+')
             closure->kind = ImpossibleMove; // used on non-promotable piece
         else if(gameInfo.variant == VariantChuChess && HasLion(board, flags)) closure->kind = IllegalMove;
     } else if (c != NULLCHAR) closure->kind = IllegalMove;
@@ -2200,7 +2237,7 @@ CoordsToAlgebraicCallback (Board board, int flags, ChessMove kind, int rf, int f
     if ((rt == cl->rt && ft == cl->ft || rt == rf && ft == ff) && // [HGM] null move matches any toSquare
         (board[rf][ff] == cl->piece
          || PieceToChar(board[rf][ff]) == '~' &&
-            (ChessSquare) (DEMOTED board[rf][ff]) == cl->piece)
+            (ChessSquare) (DEMOTED(board[rf][ff])) == cl->piece)
                                      ) {
        if (rf == cl->rf) {
            if (ff == cl->ff) {
@@ -2244,7 +2281,7 @@ CoordsToAlgebraic (Board board, int flags, int rf, int ff, int rt, int ft, int p
 
     if (promoChar == 'x') promoChar = NULLCHAR;
     piece = board[rf][ff];
-    if(PieceToChar(piece)=='~') piece = (ChessSquare)(DEMOTED piece);
+    if(PieceToChar(piece)=='~') piece = (ChessSquare)(DEMOTED(piece));
 
     switch (piece) {
       case WhitePawn:
@@ -2336,13 +2373,13 @@ CoordsToAlgebraic (Board board, int flags, int rf, int ff, int rt, int ft, int p
        cl.kind = IllegalMove;
        cl.rank = cl.file = cl.either = 0;
         c = PieceToChar(piece) ;
-        GenLegal(board, flags, CoordsToAlgebraicCallback, (VOIDSTAR) &cl, c!='~' ? piece : (DEMOTED piece)); // [HGM] speed
+        GenLegal(board, flags, CoordsToAlgebraicCallback, (VOIDSTAR) &cl, c!='~' ? piece : (DEMOTED(piece))); // [HGM] speed
 
        if (cl.kind == IllegalMove && !(flags&F_IGNORE_CHECK)) {
            /* Generate pretty moves for moving into check, but
               still return IllegalMove.
            */
-            GenLegal(board, flags|F_IGNORE_CHECK, CoordsToAlgebraicCallback, (VOIDSTAR) &cl, c!='~' ? piece : (DEMOTED piece));
+            GenLegal(board, flags|F_IGNORE_CHECK, CoordsToAlgebraicCallback, (VOIDSTAR) &cl, c!='~' ? piece : (DEMOTED(piece)));
            if (cl.kind == IllegalMove) break;
            cl.kind = IllegalMove;
        }
@@ -2354,7 +2391,7 @@ CoordsToAlgebraic (Board board, int flags, int rf, int ff, int rt, int ft, int p
        */
         if( c == '~' || c == '+') {
            /* [HGM] print nonexistent piece as its demoted version */
-           piece = (ChessSquare) (DEMOTED piece - 11*(gameInfo.variant == VariantChu));
+           piece = (ChessSquare) (CHUDEMOTED(piece));
         }
         if(c=='+') *outp++ = c;
         *outp++ = ToUpper(PieceToChar(piece));
@@ -2412,7 +2449,10 @@ CoordsToAlgebraic (Board board, int flags, int rf, int ff, int rt, int ft, int p
        int r, f;
       for(r=0; r<BOARD_HEIGHT; r++) for(f=BOARD_LEFT; f<=BOARD_RGHT; f++)
                c += (board[r][f] == piece); // count on-board pieces of given type
-       *outp++ = ToUpper(PieceToChar(piece));
+        *outp = PieceToChar(piece);
+        if(*outp == '+') outp++, piece = CHUDEMOTED(piece);
+        *outp++ = ToUpper(PieceToChar(piece));
+        if(*outp = PieceSuffix(piece)) outp++;
     }
   if(c != 1) { // [HGM] but if there is only one piece of the mentioned type, no from-square, thank you!
     *outp++ = ff + AAA;
diff --git a/moves.h b/moves.h
index 2004c80..5ace504 100644 (file)
--- a/moves.h
+++ b/moves.h
@@ -56,7 +56,6 @@
 
 extern ChessSquare PromoPiece P((ChessMove moveType));
 extern ChessMove PromoCharToMoveType P((int whiteOnMove, int promoChar));
-extern char PieceToChar P((ChessSquare p));
 extern char PieceSuffix P((ChessSquare p));
 extern ChessSquare CharToPiece P((int c));
 extern int PieceToNumber P((ChessSquare p));
@@ -65,6 +64,7 @@ extern void CopyBoard P((Board to, Board from));
 extern int CompareBoards P((Board board1, Board board2));
 extern unsigned char pieceToChar[(int)EmptySquare+1];
 extern unsigned char pieceNickName[(int)EmptySquare];
+extern int promoPartner[(int)EmptySquare];
 extern char *pieceDesc[(int)EmptySquare];
 extern Board initialPosition;
 extern Boolean pieceDefs;
index 4924bbd..1d18403 100644 (file)
--- a/parser.c
+++ b/parser.c
@@ -22,6 +22,7 @@
 
 #include "config.h"
 #include <stdio.h>
+#include <stdlib.h>
 #include <ctype.h>
 #include <string.h>
 #include "common.h"
@@ -380,6 +381,7 @@ char
 PromoSuffix (char **p)
 {
     char *start = *p;
+    if(**p == ' ') return NULLCHAR; // common case, test explicitly for speed
     if(**p == 'e' && (Match("ep", p) || Match("e.p.", p))) { *p = start; return NULLCHAR; } // non-compliant e.p. suffix is no promoChar!
     if(**p == '+' && IS_SHOGI(gameInfo.variant)) { (*p)++; return '+'; }
     if(**p == '=' || (gameInfo.variant == VariantSChess) && **p == '/') (*p)++; // optional = (or / for Seirawan gating)
@@ -494,7 +496,7 @@ NextUnit (char **p)
            if(piece) {
                cl.pieceIn = CharToPiece(wom ? piece : piece + 'a' - 'A');
                if(cl.pieceIn == EmptySquare) return ImpossibleMove; // non-existent piece
-               if(promoted) cl.pieceIn = (ChessSquare) (CHUPROMOTED cl.pieceIn);
+               if(promoted) cl.pieceIn = (ChessSquare) (CHUPROMOTED(cl.pieceIn));
            } else cl.pieceIn = EmptySquare;
            if(separator == '@' || separator == '*') { // drop move. We only get here without from-square or promoted piece
                fromY = DROP_RANK; fromX = cl.pieceIn;
@@ -526,11 +528,11 @@ NextUnit (char **p)
                    ChessSquare realPiece = boards[yyboardindex][fromY][fromX];
                    // Note that Disambiguate does not work for illegal moves, but flags them as impossible
                    if(piece) { // check if correct piece indicated
-                       if(PieceToChar(realPiece) == '~') realPiece = (ChessSquare) (DEMOTED realPiece);
+                       if(PieceToChar(realPiece) == '~') realPiece = (ChessSquare) (DEMOTED(realPiece));
                        if(!(appData.icsActive && PieceToChar(realPiece) == '+') && // trust ICS if it moves promoted pieces
                           piece && realPiece != cl.pieceIn) return ImpossibleMove;
                    } else if(!separator && **p == '+') { // could be a protocol move, where bare '+' suffix means shogi-style promotion
-                       if(realPiece < (wom ?  WhiteCannon : BlackCannon) && PieceToChar(PROMOTED realPiece) == '+') // seems to be that
+                       if(realPiece < (wom ?  WhiteCannon : BlackCannon) && PieceToChar(PROMOTED(realPiece)) == '+') // seems to be that
                           currentMoveString[4] = cl.promoCharIn = *(*p)++; // append promochar after all
                    }
                    result = LegalityTest(boards[yyboardindex], PosFlags(yyboardindex), fromY, fromX, toY, toX, cl.promoCharIn);
@@ -619,12 +621,12 @@ badMove:// we failed to find algebraic move
                if (yyskipmoves) return (int) AmbiguousMove; /* not disambiguated */
 
                if (wom) {
-                   rf = 0;
-                   rt = 0;
+                   rf = castlingRank[0];
+                   rt = castlingRank[0];
                    king = WhiteKing;
                } else {
-                   rf = BOARD_HEIGHT-1;
-                   rt = BOARD_HEIGHT-1;
+                   rf = castlingRank[3];
+                   rt = castlingRank[3];
                    king = BlackKing;
                }
                ff = (BOARD_WIDTH-1)>>1; // this would be d-file
@@ -632,8 +634,12 @@ badMove:// we failed to find algebraic move
                    /* ICS wild castling */
                    ft = castlingType == 1 ? BOARD_LEFT+1 : (gameInfo.variant == VariantJanus ? BOARD_RGHT-2 : BOARD_RGHT-3);
                } else {
+                   char *q;
                    ff = BOARD_WIDTH>>1; // e-file
                    ft = castlingType == 1 ? BOARD_RGHT-2 : BOARD_LEFT+2;
+                   if(pieceDesc[king] && (q = strchr(pieceDesc[king], 'O'))) { // redefined to non-default King stride
+                       ft = (castlingType == 1 ? ff + atoi(q+1) : ff - atoi(q+1));
+                   }
                }
                if(PosFlags(0) & F_FRC_TYPE_CASTLING) {
                    if (wom) {
index 1892fbe..9ffacc9 100644 (file)
--- a/parser.h
+++ b/parser.h
@@ -63,4 +63,6 @@ extern int yyskipmoves;  /* If TRUE, all moves are reported as AmbiguousMove
 extern char *yy_text;  /* Needed because yytext can be either a char[]
                          or a (non-constant) char* */
 extern int yyoffset P((void));
-extern signed char initialRights[BOARD_FILES];
+extern unsigned char initialRights[BOARD_FILES];
+extern signed char  castlingRank[BOARD_FILES];
+
index b40c198..9833d10 100644 (file)
--- a/pgntags.c
+++ b/pgntags.c
@@ -119,9 +119,7 @@ ParsePGNTag (char *tag, GameInfo *gameInfo)
         if(*value && strcmp(value, engineVariant)) // keep current engine-defined variant if it matches
             gameInfo->variant = StringToVariant(value);
     } else if (StrCaseCmp(name, "VariantMen") == 0) {
-        /* for now ignore this tag, as we have no method yet */
-        /* for assigning the pieces to XBoard pictograms     */
-        success = TRUE;
+        success = LoadPieceDesc(value);
     } else if (StrCaseCmp(name, PGN_OUT_OF_BOOK) == 0) {
         /* [AS] Out of book annotation */
         success = StrSavePtr(value, &gameInfo->outOfBook) != NULL;
diff --git a/svg/BlackAxe.svg b/svg/BlackAxe.svg
new file mode 100644 (file)
index 0000000..f0bdb80
--- /dev/null
@@ -0,0 +1,107 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.0"
+   width="100"
+   height="100"
+   id="svg2833"
+   inkscape:version="0.47 r22583"
+   sodipodi:docname="WhiteAxe.svg">
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="640"
+     inkscape:window-height="504"
+     id="namedview11"
+     showgrid="false"
+     inkscape:zoom="2.36"
+     inkscape:cx="75.319014"
+     inkscape:cy="50"
+     inkscape:window-x="0"
+     inkscape:window-y="24"
+     inkscape:window-maximized="0"
+     inkscape:current-layer="svg2833" />
+  <defs
+     id="defs2835">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 50 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="100 : 50 : 1"
+       inkscape:persp3d-origin="50 : 33.333333 : 1"
+       id="perspective13" />
+    <inkscape:perspective
+       id="perspective3624"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3656"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3656-7"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+  </defs>
+  <metadata
+     id="metadata2838">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="g3679">
+    <path
+       sodipodi:nodetypes="cccccc"
+       id="path2840"
+       d="m 48.138015,93.958837 -0.571429,-76.90138 2.857143,-9.3213798 2.857142,8.8553108 0,77.367449 -5.142856,0 z"
+       style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.21791804px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+    <path
+       sodipodi:nodetypes="ccccc"
+       id="path3614"
+       d="m 52.171527,28.547284 -0.422564,27.129474 c 13.381193,-0.708012 23.381874,4.740107 32.537428,14.608178 8.519692,-16.91018 9.276668,-37.188251 0,-55.824109 -9.134433,7.92724 -19.603362,13.10841 -32.114864,14.086457 z"
+       style="fill:#000000;stroke:#000000;stroke-width:2.20000004999999987;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;fill-opacity:1" />
+    <path
+       sodipodi:nodetypes="ccccc"
+       id="path3614-0"
+       d="m 47.998035,28.123555 0.422564,27.129474 c -13.381193,-0.708012 -23.381874,4.740107 -32.537428,14.608178 -8.519692,-16.91018 -9.276668,-37.188251 0,-55.824109 9.134433,7.92724 19.603362,13.10841 32.114864,14.086457 z"
+       style="fill:#000000;stroke:#000000;stroke-width:2.20000004999999987;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;fill-opacity:1" />
+    <path
+       id="path3646"
+       d="m 46.610169,30.084746 0,23.728814 0,-0.423729"
+       style="fill:none;stroke:#ffffcc;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+    <path
+       id="path3646-2"
+       d="m 54.661017,29.661016 0,23.728814 0,-0.423729"
+       style="fill:none;stroke:#ffffcc;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+  </g>
+</svg>
diff --git a/svg/BlackButterfly.svg b/svg/BlackButterfly.svg
new file mode 100644 (file)
index 0000000..8045abf
--- /dev/null
@@ -0,0 +1,173 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="100"
+   height="100"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.47 r22583"
+   sodipodi:docname="WhiteButterfly.svg">
+  <defs
+     id="defs4">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       id="perspective10" />
+    <inkscape:perspective
+       id="perspective2824"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective2838"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="2.8"
+     inkscape:cx="34.72545"
+     inkscape:cy="44.67371"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     inkscape:window-width="792"
+     inkscape:window-height="583"
+     inkscape:window-x="62"
+     inkscape:window-y="24"
+     inkscape:window-maximized="0" />
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(366.71429,-981.93367)">
+    <path
+       style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       d="m -316.35715,1009.7908 -6.07143,-6.4286 -5.71428,-3.2142 -4.64286,-0.71433 -6.78572,1.07143 -4.64285,2.8571 -3.57143,4.2858 -1.78572,5 -0.35714,6.7857 1.78572,6.0714 3.21428,4.2857 3.92857,4.6429 3.57143,3.9286 -5,6.0714 -2.85714,4.2857 -2.5,5 -0.71429,5.7143 2.14286,6.0714 3.92857,3.9286 5.35714,1.4286 6.42858,-0.7143 5.35714,-3.2143 5.35714,-3.5714 3.57143,-4.6429 0,-48.9286 z"
+       id="path2820"
+       sodipodi:nodetypes="ccccccccccccccccccccccccc" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#path2820"
+       id="use3594"
+       transform="matrix(-1,0,0,1,-632.35714,0)"
+       width="100"
+       height="100"
+       style="stroke:#00000f;stroke-width:2;stroke-miterlimit:4;stroke-opacity:0.94117647000000004;stroke-dasharray:none;fill:#000000;fill-opacity:1" />
+    <path
+       sodipodi:type="arc"
+       style="fill:#000000;fill-opacity:1;stroke:#ffffcf;stroke-width:2.09999989999999981;stroke-miterlimit:4;stroke-opacity:0.94117647;stroke-dasharray:none"
+       id="path3596"
+       sodipodi:cx="52.142857"
+       sodipodi:cy="51.607143"
+       sodipodi:rx="2.1428571"
+       sodipodi:ry="35.535713"
+       d="m 54.285714,51.607143 a 2.1428571,35.535713 0 1 1 -4.285714,0 2.1428571,35.535713 0 1 1 4.285714,0 z"
+       transform="matrix(1.7388004,0,0,0.81842011,-407.02318,992.91164)" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:2.13795257;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       d="m -317.70232,1006.4186 c -0.97812,-5.5615 -2.38084,-11.35415 -5.16682,-17.89855"
+       id="path3598"
+       sodipodi:nodetypes="cc" />
+    <path
+       sodipodi:nodetypes="cc"
+       id="path3600"
+       d="m -314.65485,1006.7757 c 0.97812,-5.5615 2.38084,-11.35411 5.16682,-17.89851"
+       style="fill:none;stroke:#000000;stroke-width:2.13795257;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+    <path
+       sodipodi:type="arc"
+       style="fill:#000000;fill-opacity:1;stroke:#ffffcc;stroke-width:2;stroke-miterlimit:4;stroke-opacity:0.94117647000000004;stroke-dasharray:none"
+       id="path3630"
+       sodipodi:cx="-55.535713"
+       sodipodi:cy="41.607143"
+       sodipodi:rx="6.25"
+       sodipodi:ry="7.6785712"
+       d="m -49.285713,41.607143 a 6.25,7.6785712 0 1 1 -12.5,0 6.25,7.6785712 0 1 1 12.5,0 z"
+       transform="translate(-244.92858,977.64795)" />
+    <path
+       transform="translate(-278.50001,977.29081)"
+       d="m -49.285713,41.607143 a 6.25,7.6785712 0 1 1 -12.5,0 6.25,7.6785712 0 1 1 12.5,0 z"
+       sodipodi:ry="7.6785712"
+       sodipodi:rx="6.25"
+       sodipodi:cy="41.607143"
+       sodipodi:cx="-55.535713"
+       id="path3632"
+       style="fill:#000000;fill-opacity:1;stroke:#ffffcc;stroke-width:2;stroke-miterlimit:4;stroke-opacity:0.94117647000000004;stroke-dasharray:none"
+       sodipodi:type="arc" />
+    <path
+       sodipodi:type="arc"
+       style="fill:#000000;fill-opacity:1;stroke:#ffffcc;stroke-width:2;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       id="path3634"
+       sodipodi:cx="34.464287"
+       sodipodi:cy="71.071426"
+       sodipodi:rx="5.5357141"
+       sodipodi:ry="3.5714285"
+       d="m 40.000001,71.071426 a 5.5357141,3.5714285 0 1 1 -11.071428,0 5.5357141,3.5714285 0 1 1 11.071428,0 z"
+       transform="matrix(0.8660254,-0.5,0.5,0.8660254,-395.84695,1009.0448)" />
+    <path
+       transform="matrix(-0.8660254,-0.5,-0.5,0.8660254,-236.51019,1007.9733)"
+       d="m 40.000001,71.071426 a 5.5357141,3.5714285 0 1 1 -11.071428,0 5.5357141,3.5714285 0 1 1 11.071428,0 z"
+       sodipodi:ry="3.5714285"
+       sodipodi:rx="5.5357141"
+       sodipodi:cy="71.071426"
+       sodipodi:cx="34.464287"
+       id="path3636"
+       style="fill:#000000;fill-opacity:1;stroke:#ffffcc;stroke-width:2;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       sodipodi:type="arc" />
+    <path
+       sodipodi:type="arc"
+       style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       id="path3686"
+       sodipodi:cx="-67.5"
+       sodipodi:cy="65.178574"
+       sodipodi:rx="1.0714285"
+       sodipodi:ry="1.25"
+       d="m -66.428571,65.178574 a 1.0714285,1.25 0 1 1 -2.142858,0 1.0714285,1.25 0 1 1 2.142858,0 z"
+       transform="matrix(1.6584523,0,0,0.85010194,-204.23305,1009.2038)" />
+    <path
+       transform="matrix(1.6584523,0,0,0.85010194,-204.59019,950.63237)"
+       d="m -66.428571,65.178574 a 1.0714285,1.25 0 1 1 -2.142858,0 1.0714285,1.25 0 1 1 2.142858,0 z"
+       sodipodi:ry="1.25"
+       sodipodi:rx="1.0714285"
+       sodipodi:cy="65.178574"
+       sodipodi:cx="-67.5"
+       id="path3688"
+       style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       sodipodi:type="arc" />
+  </g>
+</svg>
diff --git a/svg/BlackCamel.svg b/svg/BlackCamel.svg
new file mode 100644 (file)
index 0000000..cc2b4b2
--- /dev/null
@@ -0,0 +1,109 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.0"
+   width="100"
+   height="100"
+   id="svg2833"
+   inkscape:version="0.47 r22583"
+   sodipodi:docname="WhiteCamel.svg">
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="640"
+     inkscape:window-height="504"
+     id="namedview14"
+     showgrid="false"
+     inkscape:zoom="2.36"
+     inkscape:cx="50"
+     inkscape:cy="48.339441"
+     inkscape:window-x="0"
+     inkscape:window-y="25"
+     inkscape:window-maximized="0"
+     inkscape:current-layer="svg2833" />
+  <defs
+     id="defs2835">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 50 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="100 : 50 : 1"
+       inkscape:persp3d-origin="50 : 33.333333 : 1"
+       id="perspective16" />
+    <inkscape:perspective
+       id="perspective2846"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+  </defs>
+  <metadata
+     id="metadata2838">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="g3687">
+    <path
+       sodipodi:nodetypes="cccccccccccccccccccccccccccccccccccccc"
+       id="path2852"
+       d="m 31.355932,94.491525 5.084746,-2.966101 4.661017,-2.966102 c 3.248588,-1.964951 6.497175,-5.530423 9.745763,-9.745763 l 3.38983,-8.050847 -0.423729,-4.661017 2.542373,-5.508475 c 3.64729,-1.744968 6.369422,-5.340252 8.898305,-9.322034 3.03946,-1.166622 7.854587,-3.221078 13.135594,-5.508474 l 5.932203,1.271186 4.237288,1.694916 4.237288,-4.661017 2.118644,-2.542373 -0.847457,-2.966102 -2.542373,-2.966102 -0.847458,-4.661017 -1.271186,-2.966101 -5.932204,-3.81356 -6.779661,-2.118644 -8.898305,-1.271186 -8.050847,0.423729 C 57.719679,19.7546 55.86882,19.866442 53.813559,20.762712 l -5.084745,-4.237288 -4.237288,-1.694915 -4.661018,-0.847458 -7.627118,1.694915 -3.81356,2.118644 -2.966101,3.389831 c -1.428287,3.13906 -2.65664,5.878251 -2.966102,6.779661 l -3.813559,4.661017 -3.389831,4.661016 -2.118644,5.508476 c -0.489507,3.37517 -1.075868,6.652922 -0.42373,8.898304 0.0046,2.820271 -0.198015,3.72909 -1.271185,7.627119 l -2.118644,2.542373 -4.237288,2.542373 0.847457,30.084745 25.423729,0 z"
+       style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:2.20000004999999987;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+    <path
+       id="path2856"
+       d="m 59.621925,28.718371 -2.418535,-0.628431 -2.418535,1.256862 2.720852,1.885292 2.116218,-2.513723 z"
+       style="fill:#ffffcc;fill-opacity:1;stroke:#ffffcc;stroke-width:1.60021948999999997;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+    <path
+       sodipodi:nodetypes="cccc"
+       id="path2860"
+       d="m 93.220339,43.644068 c -5.932203,0.41879 -11.864407,-3.645219 -17.79661,-6.355932 l 0.423729,0.423728 0,0"
+       style="fill:#ffffcc;fill-opacity:1;stroke:#ffffcc;stroke-width:2.20000004999999987;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+    <path
+       sodipodi:nodetypes="ccc"
+       id="path2862"
+       d="m 88.347093,30.719973 c -2.384724,-1.81183 -3.815498,-1.755981 -5.084015,-1.382457 l 0,0"
+       style="fill:#ffffcc;fill-opacity:1;stroke:#ffffcc;stroke-width:1.77700316999999997;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+    <path
+       sodipodi:nodetypes="ccc"
+       id="path2866"
+       d="m 41.525424,25.000001 c -4.759069,-1.824488 -8.061031,-8.020296 -14.830508,-3.81356 -0.595434,8.79514 4.922629,9.948409 8.474576,13.559323"
+       style="fill:none;fill-opacity:1;stroke:#ffffcc;stroke-width:2.20000004999999987;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+    <path
+       sodipodi:nodetypes="cc"
+       id="path2868"
+       d="M 36.440678,46.186441 C 40.180849,56.796264 45.176224,59.874859 50,63.983051"
+       style="fill:#ffffcc;fill-opacity:1;stroke:#ffffcc;stroke-width:2.20000004999999987;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+    <path
+       sodipodi:nodetypes="ccc"
+       id="path2872"
+       d="m 10.135572,70.728792 3.845694,10.656195 c 0.87345,5.850458 2.260331,9.804002 4.272993,11.445542"
+       style="fill:#ffffcc;fill-opacity:1;stroke:#ffffcc;stroke-width:2.1321609;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+    <path
+       sodipodi:nodetypes="ccc"
+       id="path2874"
+       d="m 30.084746,36.864407 c 0.788913,9.673303 2.321115,14.886867 4.237288,17.79661 l 0,-0.423729"
+       style="fill:#ffffcc;fill-opacity:1;stroke:#ffffcc;stroke-width:2.20000004999999987;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+  </g>
+</svg>
diff --git a/svg/BlackCopper.svg b/svg/BlackCopper.svg
new file mode 100644 (file)
index 0000000..f5bb595
--- /dev/null
@@ -0,0 +1,109 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="100"
+   height="100"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.47 r22583"
+   sodipodi:docname="BlackCopper.svg">
+  <defs
+     id="defs4">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       id="perspective10" />
+    <inkscape:perspective
+       id="perspective2824"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective2838"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="2"
+     inkscape:cx="52.657835"
+     inkscape:cy="23.437927"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     inkscape:window-width="792"
+     inkscape:window-height="583"
+     inkscape:window-x="62"
+     inkscape:window-y="24"
+     inkscape:window-maximized="0" />
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(366.71429,-981.93367)">
+    <g
+       id="g4595"
+       transform="matrix(1.193104,0,0,1.1895412,60.079489,-197.12824)">
+      <path
+         sodipodi:nodetypes="ccccc"
+         id="path4556"
+         d="m -340.71429,1033.9337 38.5,19.5 c 3.01591,-8.0302 5.53577,-16.1595 2,-25.5 -5.67437,-10.3102 -10.49692,-12.6759 -21.5,-10 -9.23894,1.4277 -15.38171,7.9516 -19,16 z"
+         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         sodipodi:nodetypes="ccccccccccccc"
+         id="path4558"
+         d="m -302.21429,1053.9337 c -3.77949,3.707 -6.5534,8.7933 -5,16.5 -4.914,-2.3656 -5.08463,-8.9701 -6,-18 l -5.89231,-2.5616 -5.58645,10.1118 c -6.2666,6.0928 -14.06738,2.4806 -21.52124,1.4498 l 7.93396,-15.0189 7.86793,0.962 -5.30189,-9.9434 -9,10.5 4,-14.5 38.5,20.5 0,3e-4 z"
+         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         sodipodi:nodetypes="cccccccccc"
+         id="path4560"
+         d="m -331.71429,1021.9337 c -1.82138,-7.0429 -9.12785,-10.1977 -17,-12 7.69257,-8.3204 21.08495,-13.54089 33.5,-13.50003 10.16892,1.33108 19.97487,7.02513 23.5,18.50003 4.66667,10.3333 0.55357,14.3869 3,26.5 0.87539,8.9369 6.48901,15.5165 10,20.5 -15.80415,-2.9875 -14.276,-20.3662 -21.5,-14 2.22195,-6.9556 2.89971,-14.2201 -1.5,-22.5 -1.83061,-5.3689 -6.506,-8.4619 -15,-8.5 -5.62111,-0.1967 -10.71096,1.2004 -15,5 z"
+         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         sodipodi:nodetypes="cc"
+         transform="translate(-366.71429,981.93367)"
+         id="path4591"
+         d="M 26.5,51.5 64,71.5"
+         style="fill:none;stroke:#ffffcc;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         sodipodi:nodetypes="ccccc"
+         transform="translate(-366.71429,981.93367)"
+         id="path4593"
+         d="m 36,38.5 c 6.927536,-3.557971 11.714719,-3.905411 16,-3.5 7.022722,1.310611 10.295992,4.370675 14,11 2.162062,5.833333 2.831994,11.666667 1,17.5 l 0,0"
+         style="fill:none;stroke:#ffffff;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+    </g>
+  </g>
+</svg>
diff --git a/svg/BlackCub.svg b/svg/BlackCub.svg
new file mode 100644 (file)
index 0000000..f0b6324
--- /dev/null
@@ -0,0 +1,172 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="100"
+   height="100"
+   id="svg3738"
+   version="1.1"
+   inkscape:version="0.47 r22583"
+   sodipodi:docname="BlackLion.svg">
+  <defs
+     id="defs3740">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       id="perspective3746" />
+    <inkscape:perspective
+       id="perspective3800"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="2.3532769"
+     inkscape:cx="40.467173"
+     inkscape:cy="50.142845"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     inkscape:window-width="716"
+     inkscape:window-height="504"
+     inkscape:window-x="3"
+     inkscape:window-y="71"
+     inkscape:window-maximized="0"
+     showguides="true"
+     inkscape:guide-bbox="true">
+    <sodipodi:guide
+       position="0.17142614,0.85712"
+       orientation="0,744.09448"
+       id="guide4498" />
+    <sodipodi:guide
+       position="744.26591,0.85712"
+       orientation="-1052.3622,0"
+       id="guide4500" />
+    <sodipodi:guide
+       position="744.26591,1053.2193"
+       orientation="0,-744.09448"
+       id="guide4502" />
+    <sodipodi:guide
+       position="0.17142614,1053.2193"
+       orientation="1052.3622,0"
+       id="guide4504" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata3743">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0.17142614,-953.2193)">
+    <g
+       id="g4569"
+       transform="matrix(0.82495667,0,0,0.82495667,9.169993,176.05919)">
+      <path
+         id="path3888"
+         d="m 18.200002,987.30504 2.742858,-6.85715 -1.828571,-4.11428 5.942856,-8.22857 9.142858,-6.4 12.342857,-0.45715 2.285714,-7.31428 7.771429,0 7.314286,4.11428 10.971427,1.82858 -1.371427,5.94285 11.885713,3.2 -1.371428,4.57143 6.857142,6.85714 -2.285713,2.28572 7.314286,10.97143 -2.742858,2.74285 4.571429,10.05711 -0.457144,6.4 0,11.4286 -6.4,-8.2286 0.457144,16.9143 -2.285715,3.2 -6.4,-5.9428 0,9.1428 -5.028571,3.6572 0.914286,-10.0572 -7.314286,12.3429 -4.114285,-5.0286 -4.571429,10.5143 -10.514286,1.3714 -10.057143,-1.3714 -8.685715,-6.8571 -4.571427,-2.2858 -10.971429,6.8572 -0.457144,-12.8 -2.285713,-7.7714 -3.2,2.7428 -5.0285719,-4.1143 0.9142856,-9.1428 -2.2857142,-4.1143 0.9142858,-5.4857 -5.0285716,-3.6572 1.3714287,-3.6571 15.5428566,-13.25716 z"
+         style="fill:#000000;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         sodipodi:nodetypes="ccccccc"
+         id="path3890"
+         d="m 36.94286,989.59075 -8.685715,-1.82857 3.657144,1.37143 -5.485715,4.57143 5.485715,-2.74286 3.857141,0.2 1.17143,-1.57143 z"
+         style="fill:#000000;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         id="path3892"
+         d="m 59.34286,988.21932 0,-6.4 -0.457144,-7.77143 -1.828571,-5.02857 -3.2,-2.28571 -6.857143,0.91428 -3.657142,4.11429 -1.828571,3.65714"
+         style="fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         id="path3894"
+         d="m 54.771431,984.10504 -0.914286,-4.57143 -2.742856,-3.65714 -3.2,0 -1.828573,4.11428 0,0 0.914286,0.45714 -0.914286,-0.45714"
+         style="fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         id="path3896"
+         d="m 12.714289,1003.7622 0,0 z"
+         style="fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         sodipodi:nodetypes="cc"
+         id="path3898"
+         d="M 11.471431,1004.3764 0.82857386,1002.8479"
+         style="fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         id="path3900"
+         d="m 6.3142883,1010.1622 2.2857142,-2.7429 2.2857135,-0.4571 0.457144,-2.7429 0,0"
+         style="fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         sodipodi:nodetypes="ccccccc"
+         id="path3902"
+         d="m 8.9220373,1018.1269 2.8308047,3.1321 5.565079,0.2674 6.824939,1.4358 5.028571,0.4571 0.457143,0 0,0.4572"
+         style="fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         id="path3904"
+         d="m 43.34286,1003.305 -0.457144,8.6858 -3.657142,6.4 -0.914285,7.3142 -5.485715,6.4 -4.114285,6.8572"
+         style="fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         id="path3906"
+         d="m 72.600003,997.36218 -3.200001,13.71432 -5.942857,10.9714 -6.857142,8.6857 -5.028572,13.7143"
+         style="fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         sodipodi:nodetypes="cccccc"
+         id="path3908"
+         d="m 66.557145,1040.7193 -0.357143,-7.2428 4.114287,-9.1429 4.571427,-10.0571 2.285715,-10.9715 -0.457142,-7.31425"
+         style="fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         id="path3910"
+         d="m 80.371431,996.44789 0,7.31431 0,5.4857 0.914285,7.7714 -4.571427,6.8572 -2.742858,5.4857 -1.371428,6.4"
+         style="fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         sodipodi:nodetypes="ccccc"
+         id="path3912"
+         d="m 72.14286,976.79075 6.857143,7.31429 8.228571,5.94285 -0.1,20.97141 3.185714,4.0572"
+         style="fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         id="path3914"
+         d="m 72.14286,971.30504 7.771429,0.91428 5.028571,2.74286 0,0"
+         style="fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         sodipodi:nodetypes="ccc"
+         id="path3916"
+         d="m 19.114289,986.99075 11.885713,-8.37143 4.571429,-2.74285"
+         style="fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         id="path4508"
+         d="m 14.471431,1011.0764 c 8.571429,-1.7857 8.214286,-1.7857 8.214286,-1.7857"
+         style="fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         id="path4510"
+         d="m 15.185717,1013.9336 c 11.785714,-0.3572 11.785714,-0.3572 11.785714,-0.3572"
+         style="fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         id="path4512"
+         d="m 15.542859,1016.4336 c 11.071429,4.2857 11.071429,4.2857 11.071429,4.2857"
+         style="fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+    </g>
+  </g>
+</svg>
diff --git a/svg/BlackDragon.svg b/svg/BlackDragon.svg
new file mode 100644 (file)
index 0000000..aa84c5b
--- /dev/null
@@ -0,0 +1,119 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="100"
+   height="100"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.47 r22583"
+   sodipodi:docname="BlackFlyingDragon2.svg">
+  <defs
+     id="defs4">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       id="perspective10" />
+    <inkscape:perspective
+       id="perspective2824"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective2838"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="2"
+     inkscape:cx="80.674579"
+     inkscape:cy="55.693807"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     inkscape:window-width="792"
+     inkscape:window-height="583"
+     inkscape:window-x="62"
+     inkscape:window-y="24"
+     inkscape:window-maximized="0" />
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(366.71429,-981.93367)">
+    <g
+       id="g3630">
+      <path
+         sodipodi:nodetypes="cccccccccccccccccccccccccccccccccsccccccc"
+         id="path2834"
+         d="m -324.3447,1018.1361 7.38041,2.8188 5.53531,3.9462 5.53531,5.6375 5.53531,9.02 3.07517,10.1475 3.07517,8.4562 4.92027,6.2012 6.76538,3.9463 0,-2.8188 7.38041,6.765 -10.14806,-1.1275 1.53758,-1.6912 -7.38041,-2.255 -4.92027,-5.6375 -4.92028,-5.0737 -6.15034,-7.3288 -4.92028,-3.9462 -5.5353,-3.3825 -5.53531,-3.9462 -5.53531,-5.6375 -4.92028,-8.4563 -1.23006,-5.0737 -3.69021,-6.765 -4.92028,-6.2012 -3.6902,-1.1275 -9.22552,3.9462 -2.46013,-3.3825 0,-3.3825 2.46013,0.5638 6.15035,-1.1275 1.23007,-4.51 3.6902,-2.25501 c 5.40259,-7.58194 -2.48944,1.18601 4.52818,1.77851 3.1683,0.2676 2.0104,-3.34798 3.77478,-4.0335 l -0.92255,7.3287 1.23007,3.9463 1.84511,3.3825 2.46013,4.51 3.69021,3.3825 4.30524,3.3824 z"
+         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:2.35533404;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         id="path2840"
+         d="m -305.46429,1045.4337 -5.5,-1.5 -5,2 -3,3 4,4.5 3.5,2 -4.5,3.5 -0.5,2 2,2.5 0.5,-3.5 3,-1.5 -0.5,1 4.5,-2 -3,-7.5 4,0 2,-1.5 -1.5,-3 z"
+         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         id="path3621"
+         d="m -345.71429,997.9337 c 0.66667,0 -0.0833,-0.083 0.25,0.25 0.0589,0.059 0.25,-0.083 0.25,0 0,0.083 -0.33333,0 -0.25,0 1.11111,0 0.22222,0 0,0"
+         style="fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         sodipodi:nodetypes="ccccc"
+         id="path3656"
+         d="m -327.33598,1034.0094 4.94975,-6.8943 3.35876,7.0711 -4.06587,5.4801 0.17678,-0.1768"
+         style="fill:none;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+      <path
+         sodipodi:nodetypes="cccccc"
+         id="path3658"
+         d="m -313.81516,1044.0302 3.18197,-1.4142 6.36397,1.7678 1.59099,4.0659 -1.94455,1.9445 -2.82842,0"
+         style="fill:none;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+      <path
+         sodipodi:nodetypes="ccccccccccccccccccccc"
+         id="path2831"
+         d="m -327.46429,1034.1837 -9.75,-1 -8.75,1.5 -8.75,3.25 -7,4 -0.5,9.5 1.5,12 3.25,11.75 3.75,-5.25 3.75,-3 4.75,-2.5 6.5,-0.75 5.25,1.5 -2.5,-6.5 -0.5,-5.25 1.5,-6 2.75,-4.25 3.75,-2 4,-1 1.5,-0.5 -4.5,-5.5 z"
+         style="fill:#000000;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1" />
+      <path
+         sodipodi:nodetypes="ccccccccccccccccccccc"
+         transform="translate(-366.71429,981.93367)"
+         id="path2833"
+         d="M 49.75,43.75 49,35.75 49,29 51,21.75 55.25,14 60,9 l 8.25,-1.5 9.25,0 7,2 7,2.5 -8,4.5 -3.25,4.25 -2.5,5 -1,4.25 c -0.333333,-0.08333 2.336328,8.000998 1,6 L 71,35 l -6.5,1.5 -5.25,2.75 -2.5,3.5 -1.5,6 -5.5,-5 z"
+         style="fill:#000000;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1" />
+      <path
+         id="path3607"
+         d="m -317.96429,1020.1837 4.25,2.25 2.75,2 1.25,0.75 0,0"
+         style="fill:none;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+    </g>
+  </g>
+</svg>
diff --git a/svg/BlackDuck.svg b/svg/BlackDuck.svg
new file mode 100644 (file)
index 0000000..99e729b
--- /dev/null
@@ -0,0 +1,112 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.0"
+   width="100"
+   height="100"
+   id="svg2833"
+   inkscape:version="0.47 r22583"
+   sodipodi:docname="WhiteDuck.svg">
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="736"
+     inkscape:window-height="583"
+     id="namedview11"
+     showgrid="false"
+     inkscape:zoom="2.36"
+     inkscape:cx="50"
+     inkscape:cy="51.123439"
+     inkscape:window-x="0"
+     inkscape:window-y="24"
+     inkscape:window-maximized="0"
+     inkscape:current-layer="svg2833" />
+  <defs
+     id="defs2835">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 50 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="100 : 50 : 1"
+       inkscape:persp3d-origin="50 : 33.333333 : 1"
+       id="perspective13" />
+    <inkscape:perspective
+       id="perspective3624"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective2884"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+  </defs>
+  <metadata
+     id="metadata2838">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="g3728">
+    <path
+       sodipodi:nodetypes="cccccccccccccccccc"
+       id="path2890"
+       d="M 94.067797,83.474577 C 84.604585,65.112995 85.394968,49.081921 76.483052,32.627119 73.446329,28.379692 65.536724,20.421132 59.745764,17.372882 53.389832,14.3407 46.398306,15.397508 40.042374,18.008475 34.045286,20.909692 32.400261,26.891786 29.661018,33.050848 21.446493,45.072299 14.814696,46.014649 7.62712,50.847458 4.823917,52.536959 4.941692,53.496216 4.237289,54.661017 4.66472,57.619714 6.086467,58.589781 7.62712,59.322034 l 1.906779,-1.906779 4.872881,0.211864 c -1.879531,1.836158 -3.793952,3.672317 -6.77966,5.508475 l -10e-7,2.542372 c 0.884399,1.515739 10.080498,0.313524 30.508475,-6.77966 2.917376,-0.842524 5.695066,-1.265989 8.050848,-0.423729 3.672316,5.347741 7.344633,8.070064 11.016949,11.228813 2.079697,4.09851 3.805321,7.577391 8.050847,15.466102 1.152692,3.298838 1.318265,2.495304 1.90678,8.050847 11.262673,0.192033 20.163671,-3.158448 26.906779,-9.745762 z"
+       style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:2.20000004999999987;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+    <path
+       transform="matrix(-1,0,0,1,96.398306,-0.63559318)"
+       d="m 40.677967,29.449152 a 0.84745765,1.059322 0 1 1 -1.694915,0 0.84745765,1.059322 0 1 1 1.694915,0 z"
+       sodipodi:ry="1.059322"
+       sodipodi:rx="0.84745765"
+       sodipodi:cy="29.449152"
+       sodipodi:cx="39.830509"
+       id="path2892"
+       style="fill:#ffffcc;fill-opacity:1;stroke:#ffffcc;stroke-width:3.50000000000000000;stroke-linecap:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       sodipodi:type="arc" />
+    <path
+       sodipodi:nodetypes="cccccccccccccc"
+       id="path3666"
+       d="m 29.449153,33.050848 c 3.933055,3.476594 6.949231,-1.298733 10.381356,-2.330509 -0.553916,4.006697 -1.549974,7.350181 -1.059322,12.923729 0.109812,1.887184 1.659758,3.054302 4.025424,3.81356 0.842525,2.449855 1.265989,5.039397 0.423729,8.050847 l -5.084746,2.966102 C 18.618726,66.199274 13.334759,66.138727 8.898306,66.101695 6.792408,64.621831 7.640244,63.8804 7.627119,62.923729 c 2.672496,-1.534212 3.542239,-1.714453 6.991526,-5.508474 l -5.29661,0 -1.90678,1.906779 C 5.879161,58.845569 5.63687,57.03007 4.661018,54.872882 4.615418,54.012911 5.494985,52.690361 6.567797,51.271187 14.49455,46.396278 23.088611,44.190603 29.449153,33.050848 z"
+       style="fill:#ffffcc;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;fill-opacity:1" />
+    <path
+       sodipodi:nodetypes="ccc"
+       id="path3668"
+       d="m 14.618645,57.415255 c 2.471751,0.369524 5.155367,0.949571 8.262711,0.423728 8.510908,-5.215089 17.141878,-5.267041 19.491526,-10.169491"
+       style="fill:none;stroke:#000000;stroke-width:2.20000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+    <path
+       sodipodi:nodetypes="cc"
+       id="path3675"
+       d="m 31.355933,41.949153 -1.271186,0"
+       style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+    <path
+       sodipodi:nodetypes="cccccccc"
+       id="path3677"
+       d="m 41.737289,50.000001 c -4.057517,4.352872 -14.509012,8.591608 -25,14.830508 l -8.262712,1.059322 -0.635593,-2.542373 7.20339,-5.29661 7.627118,0.211864 c 11.490336,-5.72558 14.908063,-6.054057 19.70339,-9.745762 l -0.635593,1.483051 z"
+       style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+  </g>
+</svg>
diff --git a/svg/BlackFlag.svg b/svg/BlackFlag.svg
new file mode 100644 (file)
index 0000000..16953d0
--- /dev/null
@@ -0,0 +1,139 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.0"
+   width="100"
+   height="100"
+   id="svg2833"
+   inkscape:version="0.47 r22583"
+   sodipodi:docname="BlackFlag.svg">
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="640"
+     inkscape:window-height="504"
+     id="namedview11"
+     showgrid="false"
+     inkscape:zoom="1.668772"
+     inkscape:cx="50"
+     inkscape:cy="58.860988"
+     inkscape:window-x="0"
+     inkscape:window-y="24"
+     inkscape:window-maximized="0"
+     inkscape:current-layer="svg2833" />
+  <defs
+     id="defs2835">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 50 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="100 : 50 : 1"
+       inkscape:persp3d-origin="50 : 33.333333 : 1"
+       id="perspective13" />
+    <inkscape:perspective
+       id="perspective3624"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3716"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3716-2"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3747"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+  </defs>
+  <metadata
+     id="metadata2838">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="g3779">
+    <path
+       sodipodi:nodetypes="ccccc"
+       id="path3619"
+       d="m 12.711864,21.186441 c 21.074722,13.738473 51.147584,-16.5165456 75,0 l 0,43.644067 C 65.073347,47.717811 33.988516,77.130498 13.559322,63.983051 l -0.847458,-42.79661 z"
+       style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:2.20000004999999987;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+    <path
+       sodipodi:nodetypes="cccccc"
+       id="path2840"
+       d="m 10.849879,93.958837 -0.571429,-76.90138 2.857143,-9.3213798 2.857142,8.8553108 0,77.367449 -5.142856,0 z"
+       style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.21791804px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+    <path
+       transform="matrix(0.84498804,0,0,0.87421513,1.3857655,2.2865217)"
+       d="m 21.610169,11.440678 a 7.2033896,5.5084743 0 1 1 -14.4067794,0 7.2033896,5.5084743 0 1 1 14.4067794,0 z"
+       sodipodi:ry="5.5084743"
+       sodipodi:rx="7.2033896"
+       sodipodi:cy="11.440678"
+       sodipodi:cx="14.406779"
+       id="path3615"
+       style="fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:2.55969501;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       sodipodi:type="arc" />
+    <g
+       id="g3773">
+      <path
+         style="fill:none;stroke:#ffffcc;stroke-width:2.19999981;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+         d="m 32.746075,31.419753 c 6.787115,0.726186 11.768429,-0.924235 17.565405,-2.574656 l -1e-6,10.100579 c -5.5142,1.614965 -10.578656,3.012199 -17.370232,2.772707 l -0.195172,-10.29863 z"
+         id="path3706"
+         sodipodi:nodetypes="ccccc" />
+      <path
+         style="fill:none;stroke:#ffffcc;stroke-width:2.19999981;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+         d="m 32.941246,46.755238 c 6.787115,0.726185 11.768429,-0.924235 17.565405,-2.574655 l -10e-7,10.100577 c -5.5142,1.614966 -10.578657,3.012199 -17.370232,2.772708 l -0.195172,-10.29863 z"
+         id="path3706-2"
+         sodipodi:nodetypes="ccccc" />
+      <path
+         style="fill:none;stroke:#ffffcc;stroke-width:2.19999981;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+         d="m 72.560993,35.097122 c -6.787115,-0.726186 -11.768429,0.924235 -17.565405,2.574656 l 1e-6,-10.100579 c 5.5142,-1.614965 10.578657,-3.012199 17.370232,-2.772707 l 0.195172,10.29863 z"
+         id="path3706-8"
+         sodipodi:nodetypes="ccccc" />
+      <path
+         style="fill:none;stroke:#ffffcc;stroke-width:2.19999981;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+         d="m 72.756164,50.545066 c -6.787116,-0.726185 -11.76843,0.924236 -17.565406,2.574657 l 10e-7,-10.100578 c 5.5142,-1.614966 10.578657,-3.012199 17.370233,-2.772707 l 0.195172,10.298628 z"
+         id="path3706-8-5"
+         sodipodi:nodetypes="ccccc" />
+    </g>
+    <path
+       sodipodi:nodetypes="cc"
+       id="path3767"
+       d="m 17.512045,25.423729 0.423729,38.135593"
+       style="fill:none;stroke:#ffffcc;stroke-width:2.20000005;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+  </g>
+</svg>
diff --git a/svg/BlackGnu.svg b/svg/BlackGnu.svg
new file mode 100644 (file)
index 0000000..c87489c
--- /dev/null
@@ -0,0 +1,154 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="100"
+   height="100"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.47 r22583"
+   sodipodi:docname="WhiteGnu.svg">
+  <defs
+     id="defs4">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       id="perspective10" />
+    <inkscape:perspective
+       id="perspective2824"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective2838"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective2903"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="4"
+     inkscape:cx="27.529211"
+     inkscape:cy="32.918578"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     inkscape:window-width="792"
+     inkscape:window-height="583"
+     inkscape:window-x="62"
+     inkscape:window-y="24"
+     inkscape:window-maximized="0" />
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(366.71429,-981.93367)">
+    <path
+       style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       d="m -302.96429,994.68367 c 1.18904,-0.20023 2.49888,-0.58165 5,-2.75 5.3829,-2.46514 10.19974,-2.94909 14.25,-0.75 5.63429,0.8759 8.13122,4.26169 10.5,7.75 1.81376,2.60943 2.68608,6.47413 2.5,11.75003 0.92296,5.9217 -1.14375,9.4516 -3.5,12.75 -4.79245,4.5849 -7.43638,6.1227 -10.25,6.75 0.69782,2.4377 1.6676,3.0815 3,4.25 -1.57788,1.7554 -5.60684,1.0598 -10.5,-0.5 -2.54218,-1.1647 -5.10631,-2.2415 -7,-6 l -2.5,1 5.5,8 4.5,1 c 1.42915,1.495 2.36512,3.1873 0.5,6 l -4.5,4.5 2.75,2 c 0.28652,2.2465 -1.61353,3.0354 -3.25,4 l -0.5,4.75 c -0.7137,1.8696 -3.61319,1.5535 -6.25,1.5 l 0.75,5.25 c 0.16554,1.2914 0.42751,2.6069 -2,3.25 0.34049,1.9797 -0.80291,3.0349 1.86014,5.9567 1.84757,2.0271 0.98558,2.7166 -2.16413,3.1577 -1.04577,0.1464 -3.23349,-2.6263 -4.47453,-1.5404 -2.13998,1.8726 -5.15094,1.4284 -6.57717,-1.2045 -0.82526,-1.5235 -0.77287,-4.2725 -1.14431,-5.8695 l -4.75,-3.75 0.75,4.25 -14,-3.5 c -5.9902,-5.8732 -7.83367,-14.4685 -8.5,-25 -3.5,1.4715 -6.25,1.8528 -9,1.75 2.1486,-3.3695 5.53611,-4.2612 5.25,-12.5 -5.52081,-0.031 -10.05501,-4.5025 -14.25,-10.5 -1.60532,-4.173 -2.60846,-10.2654 -1.25,-16.75 4.20219,-8.93028 10.4286,-12.54 13.82322,-13.39648 6.76706,-1.09064 9.60682,-0.67493 13.25,-0.25 l 5.17678,2.39645 4.5,1.5 c -0.3773,1.45603 -1.80005,1.86661 -3.5,2 l -10.75,0 c -4.6297,0.65727 -8.61975,2.84384 -11.25,7.50003 -1.82016,4.8267 -1.67981,8.6732 0.5,11.5 2,1.75 4,3.0418 6,1.5 8.16782,-6.2817 8.78546,-10.1411 15.5,-14.75 3.55433,-1.2174 6.86131,-1.4453 9.75,0 l 6.5,3.5 c 3.07889,-3.6765 6.62838,-6.31758 13,-2.75 2.41667,1.6301 4.83333,3.0403 7.25,7.25 l 3.75,4.5 c 4.2709,4.4793 6.36926,2.4411 8,-1 1.97363,-3.8553 2.15959,-8.0681 -2.5,-13.25003 -2.26099,-2.95605 -5.08,-3.68 -8,-4 l -7.75,1 c -2.9764,-0.58566 -3.65476,-1.00741 -4,-2.25 z"
+       id="path2911"
+       sodipodi:nodetypes="cccccccccccccccccccccssssccccccccccccccccccccccccccccc" />
+    <path
+       style="fill:none;stroke:#ffffcc;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       d="m -346.96429,1031.1837 c 3.4576,-7.7924 6.93425,-15.5658 16.25,-17.5 5.69119,0.2034 10.64177,-0.704 15,-2.5 2.34977,3.3345 4.98389,5.2472 8,5.25 0.15853,-2.1748 1.26384,-3.4029 2.75,-4.25 l 4.5,1.25 c 4.64607,0.8623 8.17876,2.3927 9.5,5.25 l 6.75,11.75"
+       id="path3592"
+       sodipodi:nodetypes="cccccccc" />
+    <path
+       style="fill:none;stroke:#ffffcc;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       d="m -343.46429,1041.6837 c 6.97482,-1.7752 11.93979,-5.5602 14.25,-12"
+       id="path3594"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;stroke:#ffffcc;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       d="m -335.46429,1038.1837 c 0.18076,3.4307 0.74164,7.2416 2.25,12 1.89866,2.0293 3.75583,3.9341 5,4 -0.37492,1.3646 -1.61742,2.5123 0.5,4.5 2.51817,1.628 5.12699,3.2711 3.75,4.25 l -1,2 4,4"
+       id="path3596"
+       sodipodi:nodetypes="ccccccc" />
+    <path
+       style="fill:none;stroke:#ffffcc;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       d="m -295.46429,1053.9337 -11.25,0.75 c -4.14768,0.731 -5.70663,-1.1267 -7.25,-3 l -4.75,-7.25"
+       id="path3598"
+       sodipodi:nodetypes="cccc" />
+    <path
+       style="fill:none;stroke:#ffffcc;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       d="m -302.96429,1060.9337 -6.75,0"
+       id="path3600" />
+    <path
+       style="fill:none;stroke:#ffffcc;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       d="m -330.46429,1021.9337 c 4.14618,-6.1257 9.64535,-7.7074 5.75,-2"
+       id="path3602"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;stroke:#ffffcc;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       d="m -318.71429,1020.1837 c 1.90011,0.3457 3.48006,0.9316 2.75,3.25 l -5.25,1 c -1.30367,0.4694 -2.32376,1.0452 -1,2.5 l 1.75,1.75"
+       id="path3604"
+       sodipodi:nodetypes="ccccc" />
+    <path
+       style="fill:none;stroke:#ffffcc;stroke-width:1.50000000000000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       d="m -300.58929,1040.0587 -6.75,-4 c -2.01023,-1.0179 -5.30846,-0.9148 -6.75,0.75 l 0.125,4.5 c 0.51551,-2.2791 1.31812,-3.5533 2.5,-3.5"
+       id="path3606"
+       sodipodi:nodetypes="ccccc" />
+    <path
+       style="fill:none;stroke:#ffffcc;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       d="m -304.96429,1043.3087 c -1.83333,-2.9408 -3.66667,-3.2391 -5.5,-2.875 0.0951,0.7441 -0.0134,1.0275 1.375,1.125"
+       id="path3608"
+       sodipodi:nodetypes="ccc" />
+    <path
+       style="fill:none;stroke:#ffffcc;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       d="m -321.08929,1024.4337 c 0.875,1.0356 2.25,2.1402 3.125,1.75 l 0.83155,-1.4505 1.04345,-1.2995"
+       id="path3610"
+       sodipodi:nodetypes="cccc" />
+    <path
+       style="fill:none;stroke:#ffffcc;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       d="m -300.58929,1013.3087 c -0.13434,1.0379 -0.58126,1.9508 0.875,3.625 0.68599,1.3445 1.10507,3.9474 1.125,5.625 1.11722,3.5465 -1.86338,1.8826 -2.75,4.25 -0.16588,-1.9423 -1.09411,-3.7247 -2.25,-2.75 -0.83267,-2.9906 0.33125,-5.4867 1.375,-6.375"
+       id="path3612"
+       sodipodi:nodetypes="cccccc" />
+    <path
+       style="fill:#ffffcc;fill-opacity:1;stroke:#ffffcc;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m -304.66567,1069.9129 -1.94454,-0.5304 c -1.9721,1.1196 -4.03366,2.2392 -4.5962,3.3588 l 0.17678,2.8284 -2.82843,-3.182 c -1.0902,-2.3864 -2.5097,-4.4435 -3.18198,-7.2478 -1.94289,-0.737 -1.81308,-1.9922 -1.94454,-3.182 l -2.2981,2.8284 5.83363,4.2427 c 0.59062,11.3644 4.83619,6.9864 7.6014,6.5407 3.76134,1.7846 7.68641,3.7239 3.18198,-2.2981 l 0,-3.3587 z"
+       id="path3614"
+       sodipodi:nodetypes="cccccccccccc" />
+    <path
+       style="fill:none;stroke:#ffffcc;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       d="m -312.7974,1005.2126 c 2.71175,1.9509 4.06339,3.7 4.41942,5.6568"
+       id="path3616"
+       sodipodi:nodetypes="cc" />
+  </g>
+</svg>
diff --git a/svg/BlackHat.svg b/svg/BlackHat.svg
new file mode 100644 (file)
index 0000000..b00a0af
--- /dev/null
@@ -0,0 +1,112 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="100"
+   height="100"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.47 r22583"
+   sodipodi:docname="BlackHat.svg">
+  <defs
+     id="defs4">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       id="perspective10" />
+    <inkscape:perspective
+       id="perspective2824"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective2838"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="1.979899"
+     inkscape:cx="23.076122"
+     inkscape:cy="72.984153"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     inkscape:window-width="792"
+     inkscape:window-height="583"
+     inkscape:window-x="62"
+     inkscape:window-y="24"
+     inkscape:window-maximized="0" />
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(366.71429,-981.93367)">
+    <g
+       id="g3652"
+       transform="matrix(1.1,0,0,1.1,30.484244,-106.6056)">
+      <path
+         sodipodi:nodetypes="cccc"
+         id="path3592"
+         d="m -337.92495,1051.6291 -0.50507,-44.4467 c -0.98602,-13.25383 46.77924,-13.34001 45.45686,-0.5051 l 0,44.9517"
+         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:2.20000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         sodipodi:nodetypes="ccccc"
+         id="path3596"
+         d="m -338.89231,1061.6879 0.50508,-19.6124 c -1.82895,-11.4208 45.85254,-11.3027 44.86621,0 l 1.01015,19.1073 -46.38144,0.5051 z"
+         style="fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:2.28557611;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         transform="translate(-365.70414,979.91336)"
+         d="m 89.903576,82.069794 c 0,6.834175 -17.525102,12.374368 -39.14341,12.374368 -21.618308,0 -39.14341,-5.540193 -39.14341,-12.374368 0,-6.834175 17.525102,-12.374369 39.14341,-12.374369 21.618308,0 39.14341,5.540194 39.14341,12.374369 z"
+         sodipodi:ry="12.374369"
+         sodipodi:rx="39.14341"
+         sodipodi:cy="82.069794"
+         sodipodi:cx="50.760166"
+         id="path2818"
+         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:2.20000005;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+         sodipodi:type="arc" />
+      <path
+         transform="matrix(0.90342936,0,0,0.85120259,-360.41906,1055.2591)"
+         d="m 74.246212,9.0862713 c 0,4.1841887 -11.080387,7.5761447 -24.748737,7.5761447 -13.668351,0 -24.748738,-3.391956 -24.748738,-7.5761447 0,-4.1841889 11.080387,-7.5761442 24.748738,-7.5761442 13.66835,0 24.748737,3.3919553 24.748737,7.5761442 z"
+         sodipodi:ry="7.5761442"
+         sodipodi:rx="24.748737"
+         sodipodi:cy="9.0862713"
+         sodipodi:cx="49.497475"
+         id="path3594"
+         style="fill:#000000;fill-opacity:1;stroke:#ffffcc;stroke-width:2.50875998;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+         sodipodi:type="arc" />
+    </g>
+  </g>
+</svg>
diff --git a/svg/BlackIron.svg b/svg/BlackIron.svg
new file mode 100644 (file)
index 0000000..6b42471
--- /dev/null
@@ -0,0 +1,163 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="100"
+   height="100"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.47 r22583"
+   sodipodi:docname="BlackIronsvg.svg">
+  <defs
+     id="defs4">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       id="perspective10" />
+    <inkscape:perspective
+       id="perspective2824"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective2838"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="2"
+     inkscape:cx="52.657835"
+     inkscape:cy="23.437927"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     inkscape:window-width="792"
+     inkscape:window-height="583"
+     inkscape:window-x="62"
+     inkscape:window-y="24"
+     inkscape:window-maximized="0" />
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(366.71429,-981.93367)">
+    <g
+       id="g4403">
+      <path
+         sodipodi:nodetypes="cc"
+         id="path2847"
+         d="m -351.1696,1043.9436 c 10.55752,-49.108 57.80389,-49.87413 69.93337,0"
+         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         transform="matrix(0.99166208,0,0,0.99790237,-365.54493,978.102)"
+         d="m 86,80.25 a 36,7.75 0 1 1 -72,0 36,7.75 0 1 1 72,0 z"
+         sodipodi:ry="7.75"
+         sodipodi:rx="36"
+         sodipodi:cy="80.25"
+         sodipodi:cx="50"
+         id="path2845"
+         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:2.54580927;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+         sodipodi:type="arc" />
+      <rect
+         y="1043.9337"
+         x="-351.71429"
+         height="13"
+         width="71.5"
+         id="rect3879"
+         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:2.5;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         sodipodi:nodetypes="cccc"
+         id="path3637"
+         d="m -352.69154,1058.414 c -0.84832,-10.4606 73.32148,-10.3129 72.93384,0.4972 l 0.52095,0 0,0"
+         style="fill:none;stroke:#ffffff;stroke-width:2.54491472;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         style="fill:none;stroke:#ffffff;stroke-width:2.54491472;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+         d="m -352.69154,1041.914 c -0.84832,-10.4606 73.32148,-10.3129 72.93384,0.4972 l 0.52095,0 0,0"
+         id="path4391"
+         sodipodi:nodetypes="cccc" />
+      <path
+         transform="matrix(1.032667,0,0,0.85783357,-367.85581,1009.836)"
+         d="m 52.5,38 a 2.25,3 0 1 1 -4.5,0 2.25,3 0 1 1 4.5,0 z"
+         sodipodi:ry="3"
+         sodipodi:rx="2.25"
+         sodipodi:cy="38"
+         sodipodi:cx="50.25"
+         id="path4393"
+         style="fill:#ffffcc;fill-opacity:1;stroke:#ffffcc;stroke-width:2.5;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+         sodipodi:type="arc" />
+      <path
+         sodipodi:type="arc"
+         style="fill:#ffffcc;fill-opacity:1;stroke:#ffffcc;stroke-width:2.5;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+         id="path4395"
+         sodipodi:cx="50.25"
+         sodipodi:cy="38"
+         sodipodi:rx="2.25"
+         sodipodi:ry="3"
+         d="m 52.5,38 a 2.25,3 0 1 1 -4.5,0 2.25,3 0 1 1 4.5,0 z"
+         transform="matrix(0.67341665,0,0,0.92172914,-376.80348,1009.9079)" />
+      <path
+         transform="matrix(1.032667,0,0,0.85783357,-382.85581,1010.336)"
+         d="m 52.5,38 a 2.25,3 0 1 1 -4.5,0 2.25,3 0 1 1 4.5,0 z"
+         sodipodi:ry="3"
+         sodipodi:rx="2.25"
+         sodipodi:cy="38"
+         sodipodi:cx="50.25"
+         id="path4397"
+         style="fill:#ffffcc;fill-opacity:1;stroke:#ffffcc;stroke-width:2.5;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+         sodipodi:type="arc" />
+      <path
+         sodipodi:type="arc"
+         style="fill:#ffffcc;fill-opacity:1;stroke:#ffffcc;stroke-width:2.5;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+         id="path4399"
+         sodipodi:cx="50.25"
+         sodipodi:cy="38"
+         sodipodi:rx="2.25"
+         sodipodi:ry="3"
+         d="m 52.5,38 a 2.25,3 0 1 1 -4.5,0 2.25,3 0 1 1 4.5,0 z"
+         transform="matrix(1.032667,0,0,0.85783357,-353.35581,1010.336)" />
+      <path
+         transform="matrix(0.67341665,0,0,0.92172914,-322.80348,1009.908)"
+         d="m 52.5,38 a 2.25,3 0 1 1 -4.5,0 2.25,3 0 1 1 4.5,0 z"
+         sodipodi:ry="3"
+         sodipodi:rx="2.25"
+         sodipodi:cy="38"
+         sodipodi:cx="50.25"
+         id="path4401"
+         style="fill:#ffffcc;fill-opacity:1;stroke:#ffffcc;stroke-width:2.5;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+         sodipodi:type="arc" />
+    </g>
+  </g>
+</svg>
diff --git a/svg/BlackLShield.svg b/svg/BlackLShield.svg
new file mode 100644 (file)
index 0000000..630921f
--- /dev/null
@@ -0,0 +1,176 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="100"
+   height="100"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.47 r22583"
+   sodipodi:docname="BlackLShield.svg">
+  <defs
+     id="defs4">
+    <marker
+       inkscape:stockid="Arrow2Lstart"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow2Lstart"
+       style="overflow:visible">
+      <path
+         id="path3648"
+         style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round"
+         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+         transform="scale(1.1) translate(1,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow2Lend"
+       style="overflow:visible;">
+      <path
+         id="path3651"
+         style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;"
+         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+         transform="scale(1.1) rotate(180) translate(1,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Lend"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow1Lend"
+       style="overflow:visible;">
+      <path
+         id="path3633"
+         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;"
+         transform="scale(0.8) rotate(180) translate(12.5,0)" />
+    </marker>
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       id="perspective10" />
+    <inkscape:perspective
+       id="perspective2824"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective2838"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="2"
+     inkscape:cx="52.657835"
+     inkscape:cy="51.138761"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     inkscape:window-width="792"
+     inkscape:window-height="583"
+     inkscape:window-x="62"
+     inkscape:window-y="24"
+     inkscape:window-maximized="0" />
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(366.71429,-981.93367)">
+    <g
+       id="g3626">
+      <path
+         transform="matrix(-0.82853394,0,0,0.86611144,-274.22532,989.39587)"
+         d="m 74.5,52 a 26.5,43.5 0 1 1 -53,0 26.5,43.5 0 1 1 53,0 z"
+         sodipodi:ry="43.5"
+         sodipodi:rx="26.5"
+         sodipodi:cy="52"
+         sodipodi:cx="48"
+         id="path2843"
+         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:2.5;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+         sodipodi:type="arc" />
+      <path
+         transform="matrix(-0.90196078,0,0,0.92814371,-266.41652,978.03247)"
+         d="m 59,78 -1.6665,6.376488 4.308035,4.987752 -6.579378,0.385507 -3.412378,5.638485 L 49.25,89.25 42.833,87.747023 47.929233,83.56788 47.375686,77.000505 52.92511,80.555885 59,78 z"
+         inkscape:randomized="0"
+         inkscape:rounded="0"
+         inkscape:flatsided="false"
+         sodipodi:arg2="-0.2283871"
+         sodipodi:arg1="-0.85670563"
+         sodipodi:r2="4.962358"
+         sodipodi:r1="9.9247169"
+         sodipodi:cy="85.5"
+         sodipodi:cx="52.5"
+         sodipodi:sides="5"
+         id="path3621"
+         style="fill:#000000;fill-opacity:1;stroke:#ffffcc;stroke-width:2.5;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+         sodipodi:type="star" />
+      <path
+         sodipodi:type="star"
+         style="fill:#000000;fill-opacity:1;stroke:#ffffcc;stroke-width:2.5;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+         id="path3623"
+         sodipodi:sides="5"
+         sodipodi:cx="52.5"
+         sodipodi:cy="85.5"
+         sodipodi:r1="9.9247169"
+         sodipodi:r2="4.962358"
+         sodipodi:arg1="-0.85670563"
+         sodipodi:arg2="-0.2283871"
+         inkscape:flatsided="false"
+         inkscape:rounded="0"
+         inkscape:randomized="0"
+         d="m 59,78 -1.6665,6.376488 4.308035,4.987752 -6.579378,0.385507 -3.412378,5.638485 L 49.25,89.25 42.833,87.747023 47.929233,83.56788 47.375686,77.000505 52.92511,80.555885 59,78 z"
+         transform="matrix(0.90196078,0,0,-0.92814371,-360.74649,1090.1238)" />
+      <path
+         id="path3625"
+         d="m -280.30613,1074.8834 -68.34698,-84.36431"
+         style="fill:none;stroke:#000000;stroke-width:1.60083961;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:url(#Arrow2Lstart);marker-end:url(#Arrow2Lend)" />
+      <path
+         id="path4460"
+         d="m -286.24495,1067.9337 -55.5,-69.00003 56.5,69.50003"
+         style="fill:none;stroke:#000000;stroke-width:3.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         sodipodi:nodetypes="cc"
+         transform="translate(-366.71429,981.93367)"
+         id="path3624"
+         d="M 35.75,30 70,73"
+         style="fill:none;stroke:#ffffcc;stroke-width:3.50000000000000000;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" />
+    </g>
+  </g>
+</svg>
diff --git a/svg/BlackLeft.svg b/svg/BlackLeft.svg
new file mode 100644 (file)
index 0000000..8e3a64a
--- /dev/null
@@ -0,0 +1,173 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.0"
+   width="100"
+   height="100"
+   id="svg2833"
+   inkscape:version="0.47 r22583"
+   sodipodi:docname="BlackRWheel.svg">
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="783"
+     inkscape:window-height="583"
+     id="namedview13"
+     showgrid="false"
+     inkscape:zoom="2.36"
+     inkscape:cx="50"
+     inkscape:cy="50"
+     inkscape:window-x="0"
+     inkscape:window-y="24"
+     inkscape:window-maximized="0"
+     inkscape:current-layer="svg2833" />
+  <defs
+     id="defs2835">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 50 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="100 : 50 : 1"
+       inkscape:persp3d-origin="50 : 33.333333 : 1"
+       id="perspective15" />
+  </defs>
+  <metadata
+     id="metadata2838">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="g3822"
+     transform="matrix(-1,0,0,1,100,0)">
+    <path
+       d="m 89.830509,52.966103 c 0,21.997782 -17.832726,39.830509 -39.830509,39.830509 -21.997783,0 -39.830509,-17.832727 -39.830509,-39.830509 0,-21.997783 17.832726,-39.83051 39.830509,-39.83051 21.997783,0 39.830509,17.832727 39.830509,39.83051 z"
+       sodipodi:ry="39.830509"
+       sodipodi:rx="39.830509"
+       sodipodi:cy="52.966103"
+       sodipodi:cx="50"
+       id="path2996"
+       style="fill:#000000;fill-opacity:1"
+       sodipodi:type="arc" />
+    <path
+       transform="translate(-0.84745759,-1.6949153)"
+       d="m 79.661016,54.661018 c 0,15.67927 -12.710559,28.38983 -28.389829,28.38983 -15.67927,0 -28.38983,-12.71056 -28.38983,-28.38983 0,-15.67927 12.71056,-28.389829 28.38983,-28.389829 15.67927,0 28.389829,12.710559 28.389829,28.389829 z"
+       sodipodi:ry="28.38983"
+       sodipodi:rx="28.38983"
+       sodipodi:cy="54.661018"
+       sodipodi:cx="51.271187"
+       id="path3000"
+       style="fill:#ffd5d5;fill-opacity:1"
+       sodipodi:type="arc" />
+    <path
+       id="path3002"
+       d="M 46.243953,80.908729 C 32.40633,78.759847 22.288136,66.95775 22.288136,52.966102 c 0,-12.884964 8.725542,-24.167037 21.18644,-27.393938 3.655681,-0.946683 10.349268,-0.933664 13.983051,0.0272 4.997001,1.32133 8.775865,3.49985 12.541576,7.230235 3.741081,3.705987 5.852229,7.071822 7.447577,11.873794 0.820665,2.470178 0.985423,3.85168 0.985423,8.262712 0,5.997318 -0.751987,9.013508 -3.48622,13.983051 -2.216652,4.028834 -7.539123,9.143072 -11.556152,11.104038 -5.405403,2.638716 -11.74413,3.69439 -17.145878,2.855538 l 0,0 z"
+       style="fill:#ffffc0;fill-opacity:1" />
+    <path
+       id="path3776"
+       d="M 45.754776,80.95836 C 21.490926,77.11264 13.355848,46.181383 32.566798,30.814925 37.632197,26.763213 43.219601,24.85892 50.042373,24.85892 c 8.129525,0 13.918542,2.402561 19.753623,8.198159 2.974012,2.953889 3.979004,4.302955 5.413889,7.267422 4.035297,8.336912 4.028187,17.138268 -0.02047,25.353465 -1.417741,2.876754 -2.506686,4.329674 -5.410173,7.218479 -3.950094,3.930119 -7.684875,6.121674 -12.533471,7.354593 -3.216135,0.817809 -8.674162,1.153776 -11.490987,0.707322 l -1.2e-5,0 z"
+       style="fill:#ffffcc;fill-opacity:1" />
+    <path
+       transform="translate(0.84745763,-0.84745763)"
+       d="m 75,53.81356 c 0,14.041138 -11.382591,25.423729 -25.423729,25.423729 -14.041138,0 -25.423729,-11.382591 -25.423729,-25.423729 0,-14.041137 11.382591,-25.423728 25.423729,-25.423728 C 63.617409,28.389832 75,39.772423 75,53.81356 z"
+       sodipodi:ry="25.423729"
+       sodipodi:rx="25.423729"
+       sodipodi:cy="53.81356"
+       sodipodi:cx="49.576271"
+       id="path3782"
+       style="fill:#000000;fill-opacity:1"
+       sodipodi:type="arc" />
+    <path
+       transform="translate(-1.2711864,-1.2711864)"
+       d="m 58.050848,54.237289 c 0,3.744304 -3.035358,6.779662 -6.779661,6.779662 -3.744304,0 -6.779661,-3.035358 -6.779661,-6.779662 0,-3.744303 3.035357,-6.779661 6.779661,-6.779661 3.744303,0 6.779661,3.035358 6.779661,6.779661 z"
+       sodipodi:ry="6.7796612"
+       sodipodi:rx="6.7796612"
+       sodipodi:cy="54.237289"
+       sodipodi:cx="51.271187"
+       id="path3784"
+       style="fill:#ffffcc;fill-opacity:1"
+       sodipodi:type="arc" />
+    <path
+       sodipodi:nodetypes="cc"
+       id="path3804"
+       d="M 50.423729,52.542373 C 42.931172,42.654339 42.803294,33.899333 50,26.271186"
+       style="fill:none;stroke:#ffffcc;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+    <use
+       height="100"
+       width="100"
+       transform="matrix(-1,0,0,1,98.938737,26.694916)"
+       id="use3808"
+       xlink:href="#path3804"
+       y="0"
+       x="0" />
+    <use
+       height="100"
+       width="100"
+       transform="matrix(0,1,-1,0,102.64734,3.7085987)"
+       id="use3810"
+       xlink:href="#use3808"
+       y="0"
+       x="0" />
+    <use
+       height="100"
+       width="100"
+       transform="matrix(1,0,0,-1,27.118644,105.93221)"
+       id="use3812"
+       xlink:href="#use3810"
+       y="0"
+       x="0" />
+    <use
+       height="100"
+       width="100"
+       transform="matrix(0.70710678,-0.70710678,0.70710678,0.70710678,-21.96877,50.588293)"
+       id="use3814"
+       xlink:href="#use3812"
+       y="0"
+       x="0" />
+    <use
+       height="100"
+       width="100"
+       transform="matrix(1,0,0,-1,-20.338983,86.37377)"
+       id="use3816"
+       xlink:href="#use3814"
+       y="0"
+       x="0" />
+    <use
+       height="100"
+       width="100"
+       transform="matrix(-1,0,0,1,80.651479,18.220339)"
+       id="use3818"
+       xlink:href="#use3816"
+       y="0"
+       x="0" />
+    <use
+       height="100"
+       width="100"
+       transform="matrix(1,0,0,-1,19.067796,124.50936)"
+       id="use3820"
+       xlink:href="#use3818"
+       y="0"
+       x="0" />
+  </g>
+</svg>
diff --git a/svg/BlackPegasus.svg b/svg/BlackPegasus.svg
new file mode 100644 (file)
index 0000000..1740e67
--- /dev/null
@@ -0,0 +1,142 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.0"
+   width="100"
+   height="100"
+   id="svg2833"
+   inkscape:version="0.47 r22583"
+   sodipodi:docname="BlackKnight.svg">
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="640"
+     inkscape:window-height="504"
+     id="namedview3697"
+     showgrid="false"
+     inkscape:zoom="2.36"
+     inkscape:cx="50"
+     inkscape:cy="50"
+     inkscape:window-x="0"
+     inkscape:window-y="24"
+     inkscape:window-maximized="0"
+     inkscape:current-layer="svg2833" />
+  <defs
+     id="defs2835">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 50 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="100 : 50 : 1"
+       inkscape:persp3d-origin="50 : 33.333333 : 1"
+       id="perspective3699" />
+    <inkscape:perspective
+       id="perspective3631"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective4253"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective4253-1"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective4286"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective4286-6"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+  </defs>
+  <metadata
+     id="metadata2838">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="g4309">
+    <g
+       id="layer1"
+       transform="matrix(-0.8,0,0,0.8,152.11717,-26.252821)">
+      <g
+         style="display:inline"
+         id="g4342"
+         transform="matrix(1.3469552,0,0,1.3439388,-44.362081,70.37686)">
+        <path
+           style="opacity:0.98999999;fill:#ffffcc;fill-opacity:1;stroke:#ffffcc;stroke-width:0.55262244px;stroke-opacity:1"
+           id="path4298"
+           inkscape:connector-curvature="0"
+           d="m 117.59375,-7.4375 c -1.30079,1.9412559 -3.1617,3.8683596 -3.4375,6.28125 -0.71269,0.61140495 -1.73255,0.033211 -2.56825,0.20879963 -0.84476,-0.022977 -1.81964,-0.33376403 -2.01445,-1.23204893 C 108.7962,-3.3806014 107.73122,-4.4820808 106.375,-5 c -0.47032,-0.573274 -1.25306,-0.7390597 -1.9375,-0.96875 -0.56725,1.2034126 0.28172,2.455042 0.072,3.6997736 0.0902,1.6379763 -0.10305,3.3499997 -0.67872,4.8658443 -1.92524,1.7500119 -3.78467,3.7082271 -4.64329,6.2156321 -1.054746,2.32796 -0.766695,5.022024 -1.844496,7.345987 -1.26018,3.964917 -4.333914,6.987395 -6.035323,10.73697 -1.212364,2.312367 -1.847669,5.158078 -0.745181,7.635793 0.516567,1.113146 1.509792,2.021725 2.658078,2.466909 1.526212,0.512976 3.193014,0.250139 4.685672,-0.216909 0.683142,0.03748 0.906835,0.665657 1.1875,1.125 0.757752,0.923474 2.58957,0.71881 3.0625,-0.28125 1.08568,-1.10138 1.7524,-2.410544 2.79217,-3.521923 1.62508,-1.924274 3.31525,-3.817699 5.27033,-5.415577 1.01179,-0.61385 2.21118,-1.304256 3.36208,-1.821664 2.98365,-1.40635 5.80474,-3.17807 8.54417,-4.990836 0.29772,0.113851 -0.0225,0.795021 0.0625,1.125 0.0241,3.217614 -0.75935,6.506936 -2.4295,9.271344 -0.91428,1.473789 -1.92908,2.722948 -3.13041,4.000434 -1.90645,2.084583 -3.5835,4.373058 -5.31039,6.622324 -1.80989,2.544262 -3.47089,5.316642 -4.0672,8.418398 0.0515,0.551026 -0.44634,1.44308 0.28035,1.662139 0.77911,0.296598 1.64514,-0.05573 2.45715,0.08694 13.49374,-0.05798 26.98775,-0.0344 40.48125,0.06342 -0.19928,-8.043633 -0.82306,-16.129846 -2.71613,-23.968918 -0.951,-4.235615 -2.14069,-8.436776 -3.9344,-12.400099 -1.53489,-3.567605 -3.54947,-6.9266578 -5.99655,-9.9503074 -1.80834,-2.176648 -4.30652,-3.6193381 -6.72792,-5.0556756 -2.95331,-1.62225506 -6.28012,-2.73798817 -9.6875,-2.65625 -0.82226,0.0225076 -1.47434,-0.737092 -1.39716,-1.5350133 -0.38036,-1.8547307 -1.14974,-3.6301209 -2.32159,-5.1212367 l -0.06,0.08 -0.0337,0.045 z" />
+        <path
+           style="opacity:0.98999999;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.55262244px;stroke-opacity:1"
+           id="BlackKnight-0"
+           inkscape:connector-curvature="0"
+           d="m 110.90718,-1.7155471 2.55401,0.0595 c -0.11306,-2.7134211 4.44555,-7.1531665 4.44555,-7.1531665 0,0 2.6311,2.9526263 3.05622,7.1168654 5.9381,-0.2374968 11.03878,2.8990232 13.00056,4.1073952 12.42868,7.655546 17.29364,32.448756 17.26817,51.469126 l -44.90277,-0.141002 c -0.20729,-13.073379 15.56269,-17.974522 15.10098,-30.390825 -3.98486,3.099334 -8.42701,3.94292 -11.94512,6.90514 -2.79351,2.352109 -4.23289,5.107136 -7.01819,8.412488 -1.02679,1.218501 -3.76823,0.678355 -4.65375,-1.092696 -4.427625,1.32829 -8.682129,0.01778 -8.582077,-6.302259 0.08857,-5.594944 5.715124,-10.651222 7.649496,-15.901883 0.833895,-2.263527 0.717276,-5.7619951 2.034753,-8.280479 1.022986,-1.9555369 3.325448,-4.2204556 4.380568,-4.9644989 0.81951,-2.78858391 0.63978,-7.5122594 -0.71693,-9.3212068 1.97854,-0.5652961 6.51958,2.1987846 8.32853,5.4775016 z m 10.31016,2.15728625 0,2.75643355 c 3.82599,-0.00343 8.78656,2.0292307 12.33721,5.2785342 7.09848,6.4960211 10.28111,22.5102581 11.70795,37.0869221 0.40176,3.407421 0.78101,6.189899 3.94795,6.426135 C 149.36102,40.316206 145.57141,16.191978 137.82161,8.1193493 132.89174,2.9841219 127.3968,0.70498929 121.21734,0.44173915 z M 97.972952,35.127872 l 1.32829,0.442761 1.328288,-4.427625 -0.44277,0 z M 94.234058,32.85876 c 2.613538,-0.122981 3.817853,-5.736082 1.162266,-5.663706 -2.933316,0.07995 -3.417431,5.769824 -1.162266,5.663706 z m 28.007832,-11.419621 0.88552,0 c 1.35907,-0.439698 1.84793,-4.310779 1.32829,-4.870393 -0.77174,0.20599 -1.25447,3.099342 -2.21381,4.870393 z m -18.79589,-7.330175 0.88552,-2.213813 c 2.65658,0.442761 3.98486,-0.885522 3.5421,-3.5421016 l 2.21381,-0.442761 0,-0.442761 C 106.10257,6.5819984 102.56047,10.1241 103.446,14.108964 z m 3.38221,-10.8600077 c 0.88552,0 3.9097,-0.1130592 4.79522,-0.5558192 8.4125,-2.65657404 -3.9097,-4.3145658 -4.79522,0.5558192 z" />
+      </g>
+    </g>
+    <path
+       sodipodi:nodetypes="ccccccccccccc"
+       id="path2819"
+       d="M 41.591812,76.98675 C 43.988755,70.626654 46.922572,56.999007 43.964694,47.495225 41.869727,40.228969 38.20436,34.687612 32.778253,29.529124 30.166002,26.618033 24.768874,23.174999 21.252829,22.071496 16.316909,20.34075 14.095685,19.963103 7.3545254,20.037598 c -7.63552799,2.315823 -5.875104,5.258043 0,8.474576 -6.187216,2.59887 -7.19832799,6.553673 1.016952,9.152542 -6.3848,3.765177 -4.896864,7.645983 2.0338876,8.474576 -4.0651596,4.570711 -6.2049436,8.252783 1.355936,7.457628 3.62856,1.349562 5.006272,2.129633 8.474578,5.423729 2.895052,3.498831 5.345164,8.3042 5.42373,12.542372 l 0.338983,14.915255 15.59322,-9.491526 z"
+       style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.75999999000000007;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+    <path
+       sodipodi:nodetypes="ccc"
+       id="path3731"
+       d="m 41.949153,41.525424 c 5.120025,14.749762 3.751009,23.112537 -1.694916,36.016949 l -12.711864,7.627118"
+       style="fill:none;stroke:#ffffcc;stroke-width:2.20000000000000018;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" />
+    <path
+       sodipodi:nodetypes="cc"
+       id="path4276"
+       d="M 7.2033898,28.389831 C 15.677983,27.96598 23.149767,28.205863 30.508474,36.864406"
+       style="fill:none;stroke:#ffffcc;stroke-width:2.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" />
+    <path
+       sodipodi:nodetypes="cc"
+       id="path4276-4"
+       d="m 9.11017,37.076272 c 10.593237,0.423606 15.946377,2.358405 22.457626,12.711863"
+       style="fill:none;stroke:#ffffcc;stroke-width:2.20000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+    <path
+       sodipodi:nodetypes="cc"
+       id="path4276-49"
+       d="M 11.652542,46.398306 C 21.398322,47.66937 25.904004,53.417728 30.720338,62.5"
+       style="fill:none;stroke:#ffffcc;stroke-width:2.20000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+  </g>
+</svg>
diff --git a/svg/BlackRShield.svg b/svg/BlackRShield.svg
new file mode 100644 (file)
index 0000000..eb95edb
--- /dev/null
@@ -0,0 +1,177 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="100"
+   height="100"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.47 r22583"
+   sodipodi:docname="BlackLShield.svg">
+  <defs
+     id="defs4">
+    <marker
+       inkscape:stockid="Arrow2Lstart"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow2Lstart"
+       style="overflow:visible">
+      <path
+         id="path3648"
+         style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round"
+         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+         transform="scale(1.1) translate(1,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow2Lend"
+       style="overflow:visible;">
+      <path
+         id="path3651"
+         style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;"
+         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+         transform="scale(1.1) rotate(180) translate(1,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Lend"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow1Lend"
+       style="overflow:visible;">
+      <path
+         id="path3633"
+         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;"
+         transform="scale(0.8) rotate(180) translate(12.5,0)" />
+    </marker>
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       id="perspective10" />
+    <inkscape:perspective
+       id="perspective2824"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective2838"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="2"
+     inkscape:cx="52.657835"
+     inkscape:cy="51.138761"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     inkscape:window-width="792"
+     inkscape:window-height="583"
+     inkscape:window-x="62"
+     inkscape:window-y="24"
+     inkscape:window-maximized="0" />
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(366.71429,-981.93367)">
+    <g
+       id="g3626"
+       transform="matrix(-1,0,0,1,-628.95924,0)">
+      <path
+         transform="matrix(-0.82853394,0,0,0.86611144,-274.22532,989.39587)"
+         d="M 74.5,52 C 74.5,76.024387 62.635546,95.5 48,95.5 33.364454,95.5 21.5,76.024387 21.5,52 21.5,27.975613 33.364454,8.5 48,8.5 62.635546,8.5 74.5,27.975613 74.5,52 z"
+         sodipodi:ry="43.5"
+         sodipodi:rx="26.5"
+         sodipodi:cy="52"
+         sodipodi:cx="48"
+         id="path2843"
+         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:2.5;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+         sodipodi:type="arc" />
+      <path
+         transform="matrix(-0.90196078,0,0,0.92814371,-266.41652,978.03247)"
+         d="m 59,78 -1.6665,6.376488 4.308035,4.987752 -6.579378,0.385507 -3.412378,5.638485 L 49.25,89.25 42.833,87.747023 47.929233,83.56788 47.375686,77.000505 52.92511,80.555885 59,78 z"
+         inkscape:randomized="0"
+         inkscape:rounded="0"
+         inkscape:flatsided="false"
+         sodipodi:arg2="-0.2283871"
+         sodipodi:arg1="-0.85670563"
+         sodipodi:r2="4.962358"
+         sodipodi:r1="9.9247169"
+         sodipodi:cy="85.5"
+         sodipodi:cx="52.5"
+         sodipodi:sides="5"
+         id="path3621"
+         style="fill:#000000;fill-opacity:1;stroke:#ffffcc;stroke-width:2.5;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+         sodipodi:type="star" />
+      <path
+         sodipodi:type="star"
+         style="fill:#000000;fill-opacity:1;stroke:#ffffcc;stroke-width:2.5;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+         id="path3623"
+         sodipodi:sides="5"
+         sodipodi:cx="52.5"
+         sodipodi:cy="85.5"
+         sodipodi:r1="9.9247169"
+         sodipodi:r2="4.962358"
+         sodipodi:arg1="-0.85670563"
+         sodipodi:arg2="-0.2283871"
+         inkscape:flatsided="false"
+         inkscape:rounded="0"
+         inkscape:randomized="0"
+         d="m 59,78 -1.6665,6.376488 4.308035,4.987752 -6.579378,0.385507 -3.412378,5.638485 L 49.25,89.25 42.833,87.747023 47.929233,83.56788 47.375686,77.000505 52.92511,80.555885 59,78 z"
+         transform="matrix(0.90196078,0,0,-0.92814371,-360.74649,1090.1238)" />
+      <path
+         id="path3625"
+         d="m -280.30613,1074.8834 -68.34698,-84.36431"
+         style="fill:none;stroke:#000000;stroke-width:1.60083961;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:url(#Arrow2Lstart);marker-end:url(#Arrow2Lend)" />
+      <path
+         id="path4460"
+         d="m -286.24495,1067.9337 -55.5,-69.00003 56.5,69.50003"
+         style="fill:none;stroke:#000000;stroke-width:3.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         sodipodi:nodetypes="cc"
+         transform="translate(-366.71429,981.93367)"
+         id="path3624"
+         d="M 35.75,30 70,73"
+         style="fill:none;stroke:#ffffcc;stroke-width:3.5;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+    </g>
+  </g>
+</svg>
diff --git a/svg/BlackRight.svg b/svg/BlackRight.svg
new file mode 100644 (file)
index 0000000..e33fa9b
--- /dev/null
@@ -0,0 +1,172 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.0"
+   width="100"
+   height="100"
+   id="svg2833"
+   inkscape:version="0.47 r22583"
+   sodipodi:docname="BlackPromoRook.svg">
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="783"
+     inkscape:window-height="583"
+     id="namedview13"
+     showgrid="false"
+     inkscape:zoom="2.36"
+     inkscape:cx="50"
+     inkscape:cy="50"
+     inkscape:window-x="0"
+     inkscape:window-y="24"
+     inkscape:window-maximized="0"
+     inkscape:current-layer="svg2833" />
+  <defs
+     id="defs2835">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 50 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="100 : 50 : 1"
+       inkscape:persp3d-origin="50 : 33.333333 : 1"
+       id="perspective15" />
+  </defs>
+  <metadata
+     id="metadata2838">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="g3822">
+    <path
+       d="m 89.830509,52.966103 c 0,21.997782 -17.832726,39.830509 -39.830509,39.830509 -21.997783,0 -39.830509,-17.832727 -39.830509,-39.830509 0,-21.997783 17.832726,-39.83051 39.830509,-39.83051 21.997783,0 39.830509,17.832727 39.830509,39.83051 z"
+       sodipodi:ry="39.830509"
+       sodipodi:rx="39.830509"
+       sodipodi:cy="52.966103"
+       sodipodi:cx="50"
+       id="path2996"
+       style="fill:#000000;fill-opacity:1"
+       sodipodi:type="arc" />
+    <path
+       transform="translate(-0.84745759,-1.6949153)"
+       d="m 79.661016,54.661018 c 0,15.67927 -12.710559,28.38983 -28.389829,28.38983 -15.67927,0 -28.38983,-12.71056 -28.38983,-28.38983 0,-15.67927 12.71056,-28.389829 28.38983,-28.389829 15.67927,0 28.389829,12.710559 28.389829,28.389829 z"
+       sodipodi:ry="28.38983"
+       sodipodi:rx="28.38983"
+       sodipodi:cy="54.661018"
+       sodipodi:cx="51.271187"
+       id="path3000"
+       style="fill:#ffd5d5;fill-opacity:1"
+       sodipodi:type="arc" />
+    <path
+       id="path3002"
+       d="M 46.243953,80.908729 C 32.40633,78.759847 22.288136,66.95775 22.288136,52.966102 c 0,-12.884964 8.725542,-24.167037 21.18644,-27.393938 3.655681,-0.946683 10.349268,-0.933664 13.983051,0.0272 4.997001,1.32133 8.775865,3.49985 12.541576,7.230235 3.741081,3.705987 5.852229,7.071822 7.447577,11.873794 0.820665,2.470178 0.985423,3.85168 0.985423,8.262712 0,5.997318 -0.751987,9.013508 -3.48622,13.983051 -2.216652,4.028834 -7.539123,9.143072 -11.556152,11.104038 -5.405403,2.638716 -11.74413,3.69439 -17.145878,2.855538 l 0,0 z"
+       style="fill:#ffffc0;fill-opacity:1" />
+    <path
+       id="path3776"
+       d="M 45.754776,80.95836 C 21.490926,77.11264 13.355848,46.181383 32.566798,30.814925 37.632197,26.763213 43.219601,24.85892 50.042373,24.85892 c 8.129525,0 13.918542,2.402561 19.753623,8.198159 2.974012,2.953889 3.979004,4.302955 5.413889,7.267422 4.035297,8.336912 4.028187,17.138268 -0.02047,25.353465 -1.417741,2.876754 -2.506686,4.329674 -5.410173,7.218479 -3.950094,3.930119 -7.684875,6.121674 -12.533471,7.354593 -3.216135,0.817809 -8.674162,1.153776 -11.490987,0.707322 l -1.2e-5,0 z"
+       style="fill:#ffffcc;fill-opacity:1" />
+    <path
+       transform="translate(0.84745763,-0.84745763)"
+       d="m 75,53.81356 c 0,14.041138 -11.382591,25.423729 -25.423729,25.423729 -14.041138,0 -25.423729,-11.382591 -25.423729,-25.423729 0,-14.041137 11.382591,-25.423728 25.423729,-25.423728 C 63.617409,28.389832 75,39.772423 75,53.81356 z"
+       sodipodi:ry="25.423729"
+       sodipodi:rx="25.423729"
+       sodipodi:cy="53.81356"
+       sodipodi:cx="49.576271"
+       id="path3782"
+       style="fill:#000000;fill-opacity:1"
+       sodipodi:type="arc" />
+    <path
+       transform="translate(-1.2711864,-1.2711864)"
+       d="m 58.050848,54.237289 c 0,3.744304 -3.035358,6.779662 -6.779661,6.779662 -3.744304,0 -6.779661,-3.035358 -6.779661,-6.779662 0,-3.744303 3.035357,-6.779661 6.779661,-6.779661 3.744303,0 6.779661,3.035358 6.779661,6.779661 z"
+       sodipodi:ry="6.7796612"
+       sodipodi:rx="6.7796612"
+       sodipodi:cy="54.237289"
+       sodipodi:cx="51.271187"
+       id="path3784"
+       style="fill:#ffffcc;fill-opacity:1"
+       sodipodi:type="arc" />
+    <path
+       sodipodi:nodetypes="cc"
+       id="path3804"
+       d="M 50.423729,52.542373 C 42.931172,42.654339 42.803294,33.899333 50,26.271186"
+       style="fill:none;stroke:#ffffcc;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+    <use
+       height="100"
+       width="100"
+       transform="matrix(-1,0,0,1,98.938737,26.694916)"
+       id="use3808"
+       xlink:href="#path3804"
+       y="0"
+       x="0" />
+    <use
+       height="100"
+       width="100"
+       transform="matrix(0,1,-1,0,102.64734,3.7085987)"
+       id="use3810"
+       xlink:href="#use3808"
+       y="0"
+       x="0" />
+    <use
+       height="100"
+       width="100"
+       transform="matrix(1,0,0,-1,27.118644,105.93221)"
+       id="use3812"
+       xlink:href="#use3810"
+       y="0"
+       x="0" />
+    <use
+       height="100"
+       width="100"
+       transform="matrix(0.70710678,-0.70710678,0.70710678,0.70710678,-21.96877,50.588293)"
+       id="use3814"
+       xlink:href="#use3812"
+       y="0"
+       x="0" />
+    <use
+       height="100"
+       width="100"
+       transform="matrix(1,0,0,-1,-20.338983,86.37377)"
+       id="use3816"
+       xlink:href="#use3814"
+       y="0"
+       x="0" />
+    <use
+       height="100"
+       width="100"
+       transform="matrix(-1,0,0,1,80.651479,18.220339)"
+       id="use3818"
+       xlink:href="#use3816"
+       y="0"
+       x="0" />
+    <use
+       height="100"
+       width="100"
+       transform="matrix(1,0,0,-1,19.067796,124.50936)"
+       id="use3820"
+       xlink:href="#use3818"
+       y="0"
+       x="0" />
+  </g>
+</svg>
diff --git a/svg/BlackTower.svg b/svg/BlackTower.svg
new file mode 100644 (file)
index 0000000..e1fd144
--- /dev/null
@@ -0,0 +1,135 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="100"
+   height="100"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.47 r22583"
+   sodipodi:docname="BlackTower.svg">
+  <defs
+     id="defs4">
+    <marker
+       inkscape:stockid="Arrow2Lstart"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow2Lstart"
+       style="overflow:visible">
+      <path
+         id="path3648"
+         style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round"
+         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+         transform="scale(1.1) translate(1,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow2Lend"
+       style="overflow:visible;">
+      <path
+         id="path3651"
+         style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;"
+         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+         transform="scale(1.1) rotate(180) translate(1,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Lend"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow1Lend"
+       style="overflow:visible;">
+      <path
+         id="path3633"
+         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;"
+         transform="scale(0.8) rotate(180) translate(12.5,0)" />
+    </marker>
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       id="perspective10" />
+    <inkscape:perspective
+       id="perspective2824"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective2838"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="2"
+     inkscape:cx="52.657835"
+     inkscape:cy="53.731013"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     inkscape:window-width="792"
+     inkscape:window-height="583"
+     inkscape:window-x="62"
+     inkscape:window-y="24"
+     inkscape:window-maximized="0" />
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(366.71429,-981.93367)">
+    <g
+       id="g4711">
+      <path
+         sodipodi:nodetypes="ccccccccccccc"
+         id="path4655"
+         d="m -343.68303,1073.4024 0,-81.93747 12.98599,0 0,10.17157 9.48976,0 0,-10.17157 13.98491,0 0,10.73667 9.48975,0 0,-10.73667 11.98707,0 0,81.93747 -57.93748,0 z"
+         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:2.20000004999999987;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         sodipodi:nodetypes="cccc"
+         id="path4657"
+         d="m -326.72695,1071.4583 0,-24.4033 c -0.15783,-19.9377 25.73524,-19.99 25.0253,0 l 0,24.8914"
+         style="fill:#000000;fill-opacity:1;stroke:#ffffcc;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         sodipodi:nodetypes="cc"
+         id="path4659"
+         d="m -314.21429,1031.4349 0,39.9976"
+         style="fill:#000000;fill-opacity:1;stroke:#ffffcc;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+    </g>
+  </g>
+</svg>
index 22933d7..bdd8ade 100644 (file)
@@ -7,13 +7,44 @@
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:svg="http://www.w3.org/2000/svg"
    xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
    xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
    version="1.0"
    width="100"
    height="100"
-   id="svg2833">
+   id="svg2833"
+   inkscape:version="0.47 r22583"
+   sodipodi:docname="BlackUnicorn.svg">
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="640"
+     inkscape:window-height="504"
+     id="namedview12"
+     showgrid="false"
+     inkscape:zoom="2.36"
+     inkscape:cx="50"
+     inkscape:cy="50"
+     inkscape:window-x="0"
+     inkscape:window-y="24"
+     inkscape:window-maximized="0"
+     inkscape:current-layer="svg2833" />
   <defs
-     id="defs2835" />
+     id="defs2835">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 50 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="100 : 50 : 1"
+       inkscape:persp3d-origin="50 : 33.333333 : 1"
+       id="perspective14" />
+  </defs>
   <metadata
      id="metadata2838">
     <rdf:RDF>
@@ -27,7 +58,7 @@
     </rdf:RDF>
   </metadata>
   <g
-     transform="translate(-67.582896,-53.165653)"
+     transform="matrix(-1,0,0,1,167.58289,-53.165653)"
      id="layer1">
     <g
        transform="matrix(1.2820296,0,0,1.3229667,-689.7888,-95.709672)"
diff --git a/svg/BlackViking.svg b/svg/BlackViking.svg
new file mode 100644 (file)
index 0000000..9b63ea8
--- /dev/null
@@ -0,0 +1,113 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="100"
+   height="100"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.47 r22583"
+   sodipodi:docname="BlackViking.svg">
+  <defs
+     id="defs4">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       id="perspective10" />
+    <inkscape:perspective
+       id="perspective2824"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective2838"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="2"
+     inkscape:cx="52.657835"
+     inkscape:cy="23.437927"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     inkscape:window-width="792"
+     inkscape:window-height="583"
+     inkscape:window-x="62"
+     inkscape:window-y="24"
+     inkscape:window-maximized="0" />
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(366.71429,-981.93367)">
+    <g
+       id="g3639"
+       style="stroke-width:2.5;stroke-miterlimit:4;stroke-dasharray:none">
+      <path
+         sodipodi:nodetypes="cc"
+         id="path2847"
+         d="m -351.1696,1062.4436 c 13.05752,-62.108 57.80389,-62.87413 69.93337,0"
+         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         transform="matrix(0.96433588,0,0,1,-364.17862,982.43367)"
+         d="M 86,80.25 C 86,84.530207 69.882251,88 50,88 30.117749,88 14,84.530207 14,80.25 14,75.969793 30.117749,72.5 50,72.5 c 19.882251,0 36,3.469793 36,7.75 z"
+         sodipodi:ry="7.75"
+         sodipodi:rx="36"
+         sodipodi:cy="80.25"
+         sodipodi:cx="50"
+         id="path2845"
+         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:2.54580917;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+         sodipodi:type="arc" />
+      <path
+         sodipodi:nodetypes="cccc"
+         id="path3623"
+         d="m -288.96042,1036.4337 c 15.42289,-3.7073 12.1925,-20.7388 17.35804,-31.5 -2.67718,15.3298 12.46664,29.6692 -13.01853,45 -3.94443,-3.6366 -4.16435,-8.5606 -4.33951,-13.5 z"
+         style="fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         style="fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+         d="m -342.83029,1036.4337 c -15.42289,-3.7073 -12.19251,-20.7388 -17.35805,-31.5 2.67718,15.3298 -12.46663,29.6692 13.01854,45 3.94443,-3.6366 4.16435,-8.5606 4.33951,-13.5 z"
+         id="path3625"
+         sodipodi:nodetypes="cccc" />
+      <path
+         sodipodi:nodetypes="cccc"
+         transform="translate(-366.71429,981.93367)"
+         id="path3637"
+         d="M 15.5,80.5 C 14.685799,69.982352 85.872048,70.130797 85.5,81 l 0.5,0 0,0"
+         style="fill:none;stroke:#ffffff;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" />
+    </g>
+  </g>
+</svg>
diff --git a/svg/BlackWizard.svg b/svg/BlackWizard.svg
new file mode 100644 (file)
index 0000000..c872615
--- /dev/null
@@ -0,0 +1,164 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="100"
+   height="100"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.47 r22583"
+   sodipodi:docname="BlackWizard.svg">
+  <defs
+     id="defs4">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       id="perspective10" />
+    <inkscape:perspective
+       id="perspective2824"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective2838"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="2"
+     inkscape:cx="52.657835"
+     inkscape:cy="23.437927"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     inkscape:window-width="792"
+     inkscape:window-height="583"
+     inkscape:window-x="62"
+     inkscape:window-y="24"
+     inkscape:window-maximized="0" />
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(366.71429,-981.93367)">
+    <path
+       style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:2.85478044;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       d="m -349.95821,1066.1618 33.81708,-71.66247 33.2439,71.09377"
+       id="path3613" />
+    <path
+       sodipodi:type="arc"
+       style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:2.5;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       id="path3615"
+       sodipodi:cx="50"
+       sodipodi:cy="18.25"
+       sodipodi:rx="5.5"
+       sodipodi:ry="5.25"
+       d="m 55.5,18.25 a 5.5,5.25 0 1 1 -11,0 5.5,5.25 0 1 1 11,0 z"
+       transform="matrix(1.1463415,0,0,1.1375,-373.45821,972.31805)" />
+    <path
+       sodipodi:type="arc"
+       style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:2.5;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       id="path2839"
+       sodipodi:cx="52"
+       sodipodi:cy="82.25"
+       sodipodi:rx="27"
+       sodipodi:ry="7.25"
+       d="m 79,82.25 a 27,7.25 0 1 1 -54,0 27,7.25 0 1 1 54,0 z"
+       transform="matrix(1.2399213,0,0,1.1302987,-380.90363,974.04786)" />
+    <path
+       sodipodi:type="star"
+       style="fill:#ffffcc;fill-opacity:1;stroke:#ffffcc;stroke-width:2.5;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       id="path3619"
+       sodipodi:sides="5"
+       sodipodi:cx="46.5"
+       sodipodi:cy="46.5"
+       sodipodi:r1="2.8284271"
+       sodipodi:r2="1.4142137"
+       sodipodi:arg1="0.78539816"
+       sodipodi:arg2="1.4137167"
+       inkscape:flatsided="false"
+       inkscape:rounded="0"
+       inkscape:randomized="0"
+       d="m 48.5,48.5 -1.778768,-0.603198 -1.505311,1.123345 0.024,-1.878107 -1.53353,-1.084503 L 45.5,45.5 l 0.557537,-1.793604 1.084503,1.53353 1.878107,-0.024 -1.123345,1.505311 L 48.5,48.5 z"
+       transform="matrix(1.5009809,0,0,1.6803304,-385.18093,937.87565)" />
+    <path
+       sodipodi:type="star"
+       style="fill:#ffffcc;fill-opacity:1;stroke:#ffffcc;stroke-width:2.5;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       id="path3621"
+       sodipodi:sides="5"
+       sodipodi:cx="58"
+       sodipodi:cy="62"
+       sodipodi:r1="2.8284271"
+       sodipodi:r2="1.4142137"
+       sodipodi:arg1="0.78539816"
+       sodipodi:arg2="1.4137167"
+       inkscape:flatsided="false"
+       inkscape:rounded="0"
+       inkscape:randomized="0"
+       d="m 60,64 -1.778768,-0.603198 -1.505311,1.123345 0.024,-1.878107 -1.53353,-1.084503 L 57,61 l 0.557537,-1.793604 1.084503,1.53353 1.878107,-0.024 -1.123345,1.505311 L 60,64 z"
+       transform="matrix(1.1541742,0,0,1.5217147,-367.07607,951.86802)" />
+    <path
+       sodipodi:type="star"
+       style="fill:#ffffcc;fill-opacity:1;stroke:#ffffcc;stroke-width:2.5;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       id="path3623"
+       sodipodi:sides="5"
+       sodipodi:cx="34.5"
+       sodipodi:cy="68"
+       sodipodi:r1="2.6925824"
+       sodipodi:r2="1.3462912"
+       sodipodi:arg1="0.38050638"
+       sodipodi:arg2="1.0088249"
+       inkscape:flatsided="false"
+       inkscape:rounded="0"
+       inkscape:randomized="0"
+       d="M 37,69 35.217379,69.13924 34.321486,70.686658 33.638201,69.034312 31.889672,68.660446 33.25,67.5 33.065243,65.72152 34.589257,66.656671 36.223599,65.931376 35.805164,67.669777 37,69 z"
+       transform="matrix(1.0454393,0,0,1.7385621,-368.48265,928.07316)" />
+    <path
+       style="fill:#ffffcc;fill-opacity:1;stroke:#ffffcc;stroke-width:1.51347899;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       d="m -313.36111,1030.0247 c -5.0189,3.5022 -4.65818,10.586 0,14.4461 -4.57553,-0.097 -8.11904,-3.4078 -8.01997,-7.6408 -0.12183,-3.8231 3.6197,-6.8614 8.01997,-6.8053 z"
+       id="path3627"
+       sodipodi:nodetypes="cccc" />
+    <path
+       style="fill:none;stroke:#ffffcc;stroke-width:2.85478044;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       d="m -350.53138,1066.1618 c 3.29116,-9.8896 64.72407,-9.6231 67.63415,0.5688"
+       id="path3645"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;stroke:#ffffcc;stroke-width:2.85478044;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       d="m -318.43382,1000.1868 4.58537,0.5687 0,0"
+       id="path3649" />
+  </g>
+</svg>
diff --git a/svg/BlackWolf.svg b/svg/BlackWolf.svg
new file mode 100644 (file)
index 0000000..8161662
--- /dev/null
@@ -0,0 +1,86 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.47 r22583"
+   width="196"
+   height="196"
+   sodipodi:docname="bwolf.png">
+  <metadata
+     id="metadata8">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs6">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       id="perspective10" />
+  </defs>
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="640"
+     inkscape:window-height="504"
+     id="namedview4"
+     showgrid="false"
+     inkscape:zoom="1.2040816"
+     inkscape:cx="98"
+     inkscape:cy="98"
+     inkscape:window-x="0"
+     inkscape:window-y="24"
+     inkscape:window-maximized="0"
+     inkscape:current-layer="svg2" />
+  <g
+     id="g3604"
+     transform="translate(3.3220339,6.6440678)">
+    <g
+       transform="translate(-129.55932,-2.4915254)"
+       id="g3596">
+      <rect
+         style="fill:#ffffcc;fill-opacity:1;stroke:#ffffcc;stroke-width:1.90918028;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+         id="rect2820"
+         width="104.83488"
+         height="105.66541"
+         x="176.80289"
+         y="52.22662" />
+      <rect
+         style="fill:#ffffcc;fill-opacity:1;stroke:#ffffcc;stroke-width:2.0999999;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+         id="rect3594"
+         width="73.084747"
+         height="58.135593"
+         x="191.84746"
+         y="115.44068" />
+    </g>
+    <path
+       style="fill:#000000"
+       d="m 80.194908,180.72816 c -10.56053,-1.67238 -24.16245,-5.78987 -28.64128,-8.67011 -9.14803,-5.88291 -10.47395,-7.67436 -20.87347,-28.20211 -9.54567,-18.84233 -10.1642,-20.43516 -10.68569,-27.51793 -0.4201,-5.70567 -0.0633,-9.44207 1.48025,-15.5 1.11857,-4.390148 2.35662,-11.346441 2.75121,-15.45844 0.39459,-4.111999 1.33653,-9.231076 2.09321,-11.375727 0.75668,-2.14465 1.37577,-5.867787 1.37577,-8.273638 0,-2.40585 0.41394,-4.374273 0.91985,-4.374273 0.50592,0 1.64741,-3.2625 2.53664,-7.25 1.50318,-6.740499 2.17811,-9.220574 5.56943,-20.465293 0.69921,-2.318412 2.36701,-5.243412 3.70623,-6.5 1.33921,-1.256589 3.99063,-5.650178 5.89204,-9.763531 3.72758,-8.0638989 6.79222,-12.0211758 9.30958,-12.0211758 2.3617,0 13.84337,11.8328998 16.49538,16.9999998 2.63783,5.139459 8.57103,22.905022 8.57051,25.662403 -3.1e-4,1.70444 1.12282,1.837597 15.49942,1.837597 13.651812,0 15.499832,-0.194083 15.500342,-1.627876 7e-4,-1.956921 2.12933,-7.257407 6.17333,-15.372124 3.09423,-6.208901 11.24135,-15.5 13.59154,-15.5 0.73671,0 3.08704,-1.00577 5.22295,-2.235044 l 3.88347,-2.235044 2.66661,2.485044 c 4.14011,3.858212 10.04661,16.576116 11.37145,24.485044 2.61217,15.593953 11.02491,52.735467 12.11802,53.5 0.77106,0.53929 1.01221,1.83983 3.41581,18.421788 1.7475,12.0557 1.60239,13.13898 -2.60264,19.42925 -1.59976,2.39306 -4.03885,6.58135 -5.42019,9.3073 -6.12733,12.09169 -15.88916,24.99911 -20.84388,27.56047 -1.69174,0.87455 -4.65089,2.82724 -6.57589,4.3393 -1.925,1.51207 -6.425,3.93154 -10,5.37661 -5.97053,2.41338 -7.92549,2.65938 -24,3.02 -9.625002,0.21593 -18.850002,0.17881 -20.500002,-0.0825 z m 36.041052,-13.37222 c 8.44743,-8.29003 14.25917,-21.5 9.45895,-21.5 -0.83391,0 -1.65452,1.09541 -1.84796,2.46681 -0.19138,1.35675 -1.20388,3.55493 -2.25,4.88486 -1.04612,1.32993 -1.90204,3.13071 -1.90204,4.00174 0,0.87104 -2.34713,3.96035 -5.21584,6.86514 l -5.21584,5.28145 -13.940092,0 -13.94009,0 -4.83792,-5.25 c -2.66086,-2.8875 -4.84069,-5.93737 -4.84407,-6.77749 -0.003,-0.84013 -0.72834,-2.55857 -1.61102,-3.81878 -0.88269,-1.26021 -1.92756,-3.49783 -2.32195,-4.97251 -0.84524,-3.16048 -3.44469,-3.57941 -3.86756,-0.62329 -0.77696,5.43153 12.39171,23.26349 18.29438,24.77278 1.1,0.28126 7.94824,0.43442 15.21831,0.34034 l 13.218312,-0.17105 5.60443,-5.5 z m -11.34577,-4.68709 c 2.28149,-2.1858 2.80472,-3.55006 2.80472,-7.31291 0,-3.76285 -0.52323,-5.12711 -2.80472,-7.31291 -2.45659,-2.35357 -3.61252,-2.68709 -9.312912,-2.68709 -5.82524,0 -6.79015,0.29431 -9.19527,2.80472 -2.08224,2.17339 -2.6871,3.79301 -2.6871,7.19528 0,3.40227 0.60486,5.02189 2.6871,7.19528 2.40512,2.51041 3.37003,2.80472 9.19527,2.80472 5.700392,0 6.856322,-0.33352 9.312912,-2.68709 z M 87.386448,139.71741 c 0.68946,-1.79671 -4.45626,-18.36147 -5.70385,-18.36147 -2.01748,0 -1.76135,3.91534 0.75664,11.56635 2.77191,8.42255 3.78745,9.81741 4.94721,6.79512 z m 21.581442,-6.78236 c 2.52849,-7.81371 2.74265,-11.57911 0.65858,-11.57911 -0.46996,0 -1.32978,1.76515 -1.91071,3.92256 -0.58093,2.15741 -1.5273,4.07959 -2.10305,4.27151 -1.24805,0.41601 -2.42034,8.05395 -1.57446,10.25827 1.14546,2.98502 2.22795,1.47574 4.92964,-6.87323 z M 73.221728,106.32331 c 7.63102,-7.696084 7.65105,-8.922034 0.14626,-8.952064 -5.17642,-0.0207 -9.67308,4.314594 -9.67308,9.325984 0,3.78045 0.81429,6.65871 1.88381,6.65871 0.36841,0 3.80776,-3.16468 7.64301,-7.03263 z m 49.866192,5.45084 c 2.64632,-6.89619 -2.09643,-14.430794 -9.06609,-14.402904 -7.50479,0.03 -7.48476,1.25598 0.14626,8.952064 3.83525,3.86795 7.2746,7.03263 7.64301,7.03263 0.36841,0 0.94298,-0.7118 1.27682,-1.58179 z M 58.159178,65.39176 c 7.74364,-7.763869 12.93508,-12.184266 14.78734,-12.591089 3.50905,-0.770718 3.08943,-2.827613 -0.66705,-3.269684 -2.37003,-0.278911 -4.59037,1.484939 -15.67288,12.450594 -12.11638,11.988634 -14.68106,15.374351 -11.64604,15.374351 0.69609,0 6.63548,-5.383877 13.19863,-11.964172 z m 81.535732,10.658854 c 0,-1.599996 -22.23621,-23.694682 -23.84645,-23.694682 -2.69097,0 -0.528,2.941129 10.04113,13.653548 10.57089,10.714196 13.80532,13.066724 13.80532,10.041134 z"
+       id="use3600" />
+  </g>
+</svg>
diff --git a/svg/BlackZebra.svg b/svg/BlackZebra.svg
new file mode 100644 (file)
index 0000000..ec780ba
--- /dev/null
@@ -0,0 +1,118 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.0"
+   width="100"
+   height="100"
+   id="svg2833"
+   inkscape:version="0.47 r22583"
+   sodipodi:docname="BlackKnight.svg">
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="640"
+     inkscape:window-height="504"
+     id="namedview9"
+     showgrid="false"
+     inkscape:zoom="2.36"
+     inkscape:cx="71.856813"
+     inkscape:cy="50.308226"
+     inkscape:window-x="0"
+     inkscape:window-y="24"
+     inkscape:window-maximized="0"
+     inkscape:current-layer="svg2833" />
+  <defs
+     id="defs2835">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 50 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="100 : 50 : 1"
+       inkscape:persp3d-origin="50 : 33.333333 : 1"
+       id="perspective11" />
+  </defs>
+  <metadata
+     id="metadata2838">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="g3609">
+    <g
+       id="layer1"
+       transform="translate(-67.582896,-53.165653)">
+      <g
+         style="display:inline"
+         id="g4342"
+         transform="matrix(1.3469552,0,0,1.3439388,-44.362081,70.37686)">
+        <path
+           style="opacity:0.98999999;fill:#ffffcc;fill-opacity:1;stroke:#ffffcc;stroke-width:0.55262244px;stroke-opacity:1"
+           id="path4298"
+           inkscape:connector-curvature="0"
+           d="m 117.59375,-7.4375 c -1.30079,1.9412559 -3.1617,3.8683596 -3.4375,6.28125 -0.71269,0.61140495 -1.73255,0.033211 -2.56825,0.20879963 -0.84476,-0.022977 -1.81964,-0.33376403 -2.01445,-1.23204893 C 108.7962,-3.3806014 107.73122,-4.4820808 106.375,-5 c -0.47032,-0.573274 -1.25306,-0.7390597 -1.9375,-0.96875 -0.56725,1.2034126 0.28172,2.455042 0.072,3.6997736 0.0902,1.6379763 -0.10305,3.3499997 -0.67872,4.8658443 -1.92524,1.7500119 -3.78467,3.7082271 -4.64329,6.2156321 -1.054746,2.32796 -0.766695,5.022024 -1.844496,7.345987 -1.26018,3.964917 -4.333914,6.987395 -6.035323,10.73697 -1.212364,2.312367 -1.847669,5.158078 -0.745181,7.635793 0.516567,1.113146 1.509792,2.021725 2.658078,2.466909 1.526212,0.512976 3.193014,0.250139 4.685672,-0.216909 0.683142,0.03748 0.906835,0.665657 1.1875,1.125 0.757752,0.923474 2.58957,0.71881 3.0625,-0.28125 1.08568,-1.10138 1.7524,-2.410544 2.79217,-3.521923 1.62508,-1.924274 3.31525,-3.817699 5.27033,-5.415577 1.01179,-0.61385 2.21118,-1.304256 3.36208,-1.821664 2.98365,-1.40635 5.80474,-3.17807 8.54417,-4.990836 0.29772,0.113851 -0.0225,0.795021 0.0625,1.125 0.0241,3.217614 -0.75935,6.506936 -2.4295,9.271344 -0.91428,1.473789 -1.92908,2.722948 -3.13041,4.000434 -1.90645,2.084583 -3.5835,4.373058 -5.31039,6.622324 -1.80989,2.544262 -3.47089,5.316642 -4.0672,8.418398 0.0515,0.551026 -0.44634,1.44308 0.28035,1.662139 0.77911,0.296598 1.64514,-0.05573 2.45715,0.08694 13.49374,-0.05798 26.98775,-0.0344 40.48125,0.06342 -0.19928,-8.043633 -0.82306,-16.129846 -2.71613,-23.968918 -0.951,-4.235615 -2.14069,-8.436776 -3.9344,-12.400099 -1.53489,-3.567605 -3.54947,-6.9266578 -5.99655,-9.9503074 -1.80834,-2.176648 -4.30652,-3.6193381 -6.72792,-5.0556756 -2.95331,-1.62225506 -6.28012,-2.73798817 -9.6875,-2.65625 -0.82226,0.0225076 -1.47434,-0.737092 -1.39716,-1.5350133 -0.38036,-1.8547307 -1.14974,-3.6301209 -2.32159,-5.1212367 l -0.06,0.08 -0.0337,0.045 z" />
+        <path
+           style="opacity:0.98999999;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.55262244px;stroke-opacity:1"
+           id="BlackKnight-0"
+           inkscape:connector-curvature="0"
+           d="m 110.90718,-1.7155471 2.55401,0.0595 c -0.11306,-2.7134211 4.44555,-7.1531665 4.44555,-7.1531665 0,0 2.6311,2.9526263 3.05622,7.1168654 5.9381,-0.2374968 11.03878,2.8990232 13.00056,4.1073952 12.42868,7.655546 17.29364,32.448756 17.26817,51.469126 l -44.90277,-0.141002 c -0.20729,-13.073379 15.56269,-17.974522 15.10098,-30.390825 -3.98486,3.099334 -8.42701,3.94292 -11.94512,6.90514 -2.79351,2.352109 -4.23289,5.107136 -7.01819,8.412488 -1.02679,1.218501 -3.76823,0.678355 -4.65375,-1.092696 -4.427625,1.32829 -8.682129,0.01778 -8.582077,-6.302259 0.08857,-5.594944 5.715124,-10.651222 7.649496,-15.901883 0.833895,-2.263527 0.717276,-5.7619951 2.034753,-8.280479 1.022986,-1.9555369 3.325448,-4.2204556 4.380568,-4.9644989 0.81951,-2.78858391 0.63978,-7.5122594 -0.71693,-9.3212068 1.97854,-0.5652961 6.51958,2.1987846 8.32853,5.4775016 z m 10.31016,2.15728625 0,2.75643355 c 3.82599,-0.00343 8.78656,2.0292307 12.33721,5.2785342 7.09848,6.4960211 10.28111,22.5102581 11.70795,37.0869221 0.40176,3.407421 0.78101,6.189899 3.94795,6.426135 C 149.36102,40.316206 145.57141,16.191978 137.82161,8.1193493 132.89174,2.9841219 127.3968,0.70498929 121.21734,0.44173915 z M 97.972952,35.127872 l 1.32829,0.442761 1.328288,-4.427625 -0.44277,0 z M 94.234058,32.85876 c 2.613538,-0.122981 3.817853,-5.736082 1.162266,-5.663706 -2.933316,0.07995 -3.417431,5.769824 -1.162266,5.663706 z m 28.007832,-11.419621 0.88552,0 c 1.35907,-0.439698 1.84793,-4.310779 1.32829,-4.870393 -0.77174,0.20599 -1.25447,3.099342 -2.21381,4.870393 z m -18.79589,-7.330175 0.88552,-2.213813 c 2.65658,0.442761 3.98486,-0.885522 3.5421,-3.5421016 l 2.21381,-0.442761 0,-0.442761 C 106.10257,6.5819984 102.56047,10.1241 103.446,14.108964 z m 3.38221,-10.8600077 c 0.88552,0 3.9097,-0.1130592 4.79522,-0.5558192 8.4125,-2.65657404 -3.9097,-4.3145658 -4.79522,0.5558192 z" />
+      </g>
+    </g>
+    <path
+       id="path2817"
+       d="m 22.033899,51.271187 13.559322,4.661017 2.118644,-1.694915 -15.677966,-2.966102 z"
+       style="fill:#ffffcc;fill-opacity:1;stroke:#ffffcc;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+    <path
+       id="path3591"
+       d="m 26.694915,45.762712 18.644068,4.661017 2.966102,-1.694915 -21.61017,-2.966102 z"
+       style="fill:#ffffcc;stroke:#ffffcc;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1" />
+    <path
+       id="path3593"
+       d="m 25.847458,38.559322 24.576271,5.508475 7.627118,5.508474"
+       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+    <path
+       id="path3597"
+       d="M 33.474576,40.254237 50,42.372881 l 13.983051,-2.118644 11.440678,-4.237288 -2.542373,-2.542373 -9.745763,3.81356 -8.898305,2.118644 -20.762712,0.847457 z"
+       style="fill:#ffffcc;stroke:#ffffcc;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1" />
+    <path
+       id="path3599"
+       d="m 54.661017,49.576271 11.440678,-3.38983 11.440678,-5.508475 0.847458,3.813559 -8.050848,4.237289 -5.932203,1.694915 -10.593221,3.38983 0.847458,-4.237288 z"
+       style="fill:#ffffcc;stroke:#ffffcc;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1" />
+    <path
+       id="path3601"
+       d="m 50.423729,61.864406 13.559322,-3.38983 11.864407,-4.661017 3.813559,-2.118644 1.271187,5.084746 -9.322034,2.966101 -12.288136,3.389831 -10.59322,2.118644 1.694915,-3.389831 z"
+       style="fill:#ffffcc;fill-opacity:1;stroke:#ffffcc;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+    <path
+       id="path3603"
+       d="m 84.322034,64.830508 -13.983051,2.542373 -12.711864,2.966102 -9.322034,2.542373 -5.932204,0.423729 -4.237288,3.813559 6.355932,-0.847458 9.322034,-1.694915 10.593221,-2.542373 12.288135,-2.542373 8.474577,0 -0.847458,-4.661017 z"
+       style="fill:#ffffcc;stroke:#ffffcc;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1" />
+    <path
+       id="path3605"
+       d="m 85.59322,75.423729 -19.491525,4.237288 -13.135593,3.81356 -9.322034,3.38983 11.016949,0.423729 10.169491,-3.389831 12.288136,-2.118644 10.169492,0 -1.694916,-6.355932 z"
+       style="fill:#ffffcc;fill-opacity:1;stroke:#ffffcc;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+    <path
+       id="path3607"
+       d="M 58.898305,21.610169 55.084746,27.966102 50,33.050847 l 8.050847,-2.966101 3.389831,-3.389831 2.542373,-3.813559 -5.084746,-1.271187 z"
+       style="fill:#ffffcc;stroke:#ffffcc;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1" />
+  </g>
+</svg>
diff --git a/svg/WhiteAxe.svg b/svg/WhiteAxe.svg
new file mode 100644 (file)
index 0000000..d0739a4
--- /dev/null
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.0"
+   width="100"
+   height="100"
+   id="svg2833"
+   inkscape:version="0.47 r22583"
+   sodipodi:docname="WhiteAxe.svg">
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="640"
+     inkscape:window-height="504"
+     id="namedview11"
+     showgrid="false"
+     inkscape:zoom="2.36"
+     inkscape:cx="50"
+     inkscape:cy="56.38403"
+     inkscape:window-x="0"
+     inkscape:window-y="24"
+     inkscape:window-maximized="0"
+     inkscape:current-layer="svg2833" />
+  <defs
+     id="defs2835">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 50 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="100 : 50 : 1"
+       inkscape:persp3d-origin="50 : 33.333333 : 1"
+       id="perspective13" />
+    <inkscape:perspective
+       id="perspective3624"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+  </defs>
+  <metadata
+     id="metadata2838">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="g3766">
+    <path
+       sodipodi:nodetypes="ccccc"
+       id="path3614"
+       d="m 52.171527,28.547284 -0.422564,27.129474 c 13.381193,-0.708012 23.381874,4.740107 32.537428,14.608178 8.519692,-16.91018 9.276668,-37.188251 0,-55.824109 -9.134433,7.92724 -19.603362,13.10841 -32.114864,14.086457 z"
+       style="fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:2.20000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+    <path
+       sodipodi:nodetypes="ccccc"
+       id="path3614-0"
+       d="m 47.998035,28.123555 0.422564,27.129474 c -13.381193,-0.708012 -23.381874,4.740107 -32.537428,14.608178 -8.519692,-16.91018 -9.276668,-37.188251 0,-55.824109 9.134433,7.92724 19.603362,13.10841 32.114864,14.086457 z"
+       style="fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:2.20000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+    <path
+       sodipodi:nodetypes="cccccc"
+       id="path2840"
+       d="m 48.138015,93.958837 -0.571429,-76.90138 2.857143,-9.3213798 2.857142,8.8553108 0,77.367449 -5.142856,0 z"
+       style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.21791804000000004px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+  </g>
+</svg>
diff --git a/svg/WhiteButterfly.svg b/svg/WhiteButterfly.svg
new file mode 100644 (file)
index 0000000..83b686f
--- /dev/null
@@ -0,0 +1,157 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="100"
+   height="100"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.47 r22583"
+   sodipodi:docname="WhitePrButterfly.svg">
+  <defs
+     id="defs4">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       id="perspective10" />
+    <inkscape:perspective
+       id="perspective2824"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective2838"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="2.8"
+     inkscape:cx="34.72545"
+     inkscape:cy="44.67371"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     inkscape:window-width="792"
+     inkscape:window-height="583"
+     inkscape:window-x="62"
+     inkscape:window-y="24"
+     inkscape:window-maximized="0" />
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(366.71429,-981.93367)">
+    <g
+       id="g3645"
+       transform="translate(0,1.7857143)">
+      <path
+         sodipodi:nodetypes="ccccccccccccccccccccccccc"
+         id="path2820"
+         d="m -316.35715,1008.0051 -6.07143,-6.4286 -5.71428,-3.21426 -4.64286,-0.71428 -6.78572,1.07143 -4.64285,2.85711 -3.57143,4.2858 -1.78572,5 -0.35714,6.7857 1.78572,6.0714 3.21428,4.2857 3.92857,4.6429 3.57143,3.9286 -5,6.0714 -2.85714,4.2857 -2.5,5 -0.71429,5.7143 2.14286,6.0714 3.92857,3.9286 5.35714,1.4286 6.42858,-0.7143 5.35714,-3.2143 5.35714,-3.5714 3.57143,-4.6429 0,-48.9286 z"
+         style="fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <use
+         style="stroke:#00000f;stroke-width:2;stroke-miterlimit:4;stroke-opacity:0.94117647;stroke-dasharray:none"
+         height="100"
+         width="100"
+         transform="matrix(-1,0,0,1,-632.35714,0)"
+         id="use3594"
+         xlink:href="#path2820"
+         y="0"
+         x="0" />
+      <path
+         transform="matrix(1.7388004,0,0,0.81842011,-407.02318,991.12593)"
+         d="m 54.285714,51.607143 c 0,19.625833 -0.95939,35.535714 -2.142857,35.535714 C 50.959389,87.142857 50,71.232976 50,51.607143 50,31.981311 50.959389,16.07143 52.142857,16.07143 c 1.183467,0 2.142857,15.909881 2.142857,35.535713 z"
+         sodipodi:ry="35.535713"
+         sodipodi:rx="2.1428571"
+         sodipodi:cy="51.607143"
+         sodipodi:cx="52.142857"
+         id="path3596"
+         style="fill:#ffffcc;fill-opacity:1;stroke:#00000f;stroke-width:2.0999999;stroke-miterlimit:4;stroke-opacity:0.94117647;stroke-dasharray:none"
+         sodipodi:type="arc" />
+      <path
+         sodipodi:nodetypes="cc"
+         id="path3598"
+         d="m -317.70232,1004.6329 c -0.97812,-5.56156 -2.38084,-11.35416 -5.16682,-17.89856"
+         style="fill:none;stroke:#000000;stroke-width:2.13795257;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         style="fill:none;stroke:#000000;stroke-width:2.13795257;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+         d="m -314.65485,1004.99 c 0.97812,-5.56152 2.38084,-11.35412 5.16682,-17.89852"
+         id="path3600"
+         sodipodi:nodetypes="cc" />
+      <path
+         transform="translate(-244.92858,975.86224)"
+         d="m -49.285713,41.607143 c 0,4.240758 -2.798221,7.678572 -6.25,7.678572 -3.45178,0 -6.25,-3.437814 -6.25,-7.678572 0,-4.240757 2.79822,-7.678571 6.25,-7.678571 3.451779,0 6.25,3.437814 6.25,7.678571 z"
+         sodipodi:ry="7.6785712"
+         sodipodi:rx="6.25"
+         sodipodi:cy="41.607143"
+         sodipodi:cx="-55.535713"
+         id="path3630"
+         style="fill:#ffffcc;fill-opacity:1;stroke:#00000f;stroke-width:2;stroke-miterlimit:4;stroke-opacity:0.94117647;stroke-dasharray:none"
+         sodipodi:type="arc" />
+      <path
+         sodipodi:type="arc"
+         style="fill:#ffffcc;fill-opacity:1;stroke:#00000f;stroke-width:2;stroke-miterlimit:4;stroke-opacity:0.94117647;stroke-dasharray:none"
+         id="path3632"
+         sodipodi:cx="-55.535713"
+         sodipodi:cy="41.607143"
+         sodipodi:rx="6.25"
+         sodipodi:ry="7.6785712"
+         d="m -49.285713,41.607143 c 0,4.240758 -2.798221,7.678572 -6.25,7.678572 -3.45178,0 -6.25,-3.437814 -6.25,-7.678572 0,-4.240757 2.79822,-7.678571 6.25,-7.678571 3.451779,0 6.25,3.437814 6.25,7.678571 z"
+         transform="translate(-278.50001,975.5051)" />
+      <path
+         transform="matrix(0.8660254,-0.5,0.5,0.8660254,-395.84695,1007.2591)"
+         d="m 40.000001,71.071426 c 0,1.972446 -2.478424,3.571429 -5.535714,3.571429 -3.057291,0 -5.535714,-1.598983 -5.535714,-3.571429 0,-1.972445 2.478423,-3.571428 5.535714,-3.571428 3.05729,0 5.535714,1.598983 5.535714,3.571428 z"
+         sodipodi:ry="3.5714285"
+         sodipodi:rx="5.5357141"
+         sodipodi:cy="71.071426"
+         sodipodi:cx="34.464287"
+         id="path3634"
+         style="fill:#ffffcc;fill-opacity:1;stroke:#00000f;stroke-width:2;stroke-miterlimit:4;stroke-opacity:0.94117647;stroke-dasharray:none"
+         sodipodi:type="arc" />
+      <path
+         sodipodi:type="arc"
+         style="fill:#ffffcc;fill-opacity:1;stroke:#00000f;stroke-width:2;stroke-miterlimit:4;stroke-opacity:0.94117647;stroke-dasharray:none"
+         id="path3636"
+         sodipodi:cx="34.464287"
+         sodipodi:cy="71.071426"
+         sodipodi:rx="5.5357141"
+         sodipodi:ry="3.5714285"
+         d="m 40.000001,71.071426 c 0,1.972446 -2.478424,3.571429 -5.535714,3.571429 -3.057291,0 -5.535714,-1.598983 -5.535714,-3.571429 0,-1.972445 2.478423,-3.571428 5.535714,-3.571428 3.05729,0 5.535714,1.598983 5.535714,3.571428 z"
+         transform="matrix(-0.8660254,-0.5,-0.5,0.8660254,-236.51019,1006.1876)" />
+    </g>
+  </g>
+</svg>
diff --git a/svg/WhiteCamel.svg b/svg/WhiteCamel.svg
new file mode 100644 (file)
index 0000000..01281b8
--- /dev/null
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.0"
+   width="100"
+   height="100"
+   id="svg2833"
+   inkscape:version="0.47 r22583"
+   sodipodi:docname="WhiteCamel.svg">
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="640"
+     inkscape:window-height="504"
+     id="namedview14"
+     showgrid="false"
+     inkscape:zoom="2.36"
+     inkscape:cx="50"
+     inkscape:cy="49.168872"
+     inkscape:window-x="0"
+     inkscape:window-y="25"
+     inkscape:window-maximized="0"
+     inkscape:current-layer="svg2833" />
+  <defs
+     id="defs2835">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 50 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="100 : 50 : 1"
+       inkscape:persp3d-origin="50 : 33.333333 : 1"
+       id="perspective16" />
+    <inkscape:perspective
+       id="perspective2846"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+  </defs>
+  <metadata
+     id="metadata2838">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="g3648"
+     transform="matrix(-1,0,0,1,100,0)">
+    <path
+       sodipodi:nodetypes="cccccccccccccccccccccccccccccccccccccc"
+       id="path2852"
+       d="M 68.644068,94.491525 63.559322,91.525424 58.898305,88.559322 C 55.649717,86.594371 52.40113,83.028899 49.152542,78.813559 l -3.38983,-8.050847 0.423729,-4.661017 -2.542373,-5.508475 c -3.64729,-1.744968 -6.369422,-5.340252 -8.898305,-9.322034 -3.03946,-1.166622 -7.854587,-3.221078 -13.135594,-5.508474 l -5.932203,1.271186 -4.237288,1.694916 -4.2372882,-4.661017 -2.118644,-2.542373 0.8474576,-2.966102 2.5423729,-2.966102 0.8474581,-4.661017 1.2711856,-2.966101 5.932204,-3.81356 6.779661,-2.118644 8.898305,-1.271186 8.050847,0.423729 c 2.026084,-1.431841 3.876943,-1.319999 5.932204,-0.423729 l 5.084745,-4.237288 4.237288,-1.694915 4.661018,-0.847458 7.627118,1.694915 3.81356,2.118644 2.966101,3.389831 c 1.428287,3.13906 2.65664,5.878251 2.966102,6.779661 l 3.813559,4.661017 3.389831,4.661016 2.118644,5.508476 c 0.489507,3.37517 1.075868,6.652922 0.42373,8.898304 -0.0046,2.820271 0.198015,3.72909 1.271185,7.627119 l 2.118644,2.542373 4.237288,2.542373 -0.847457,30.084745 -25.423729,0 z"
+       style="fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:2.20000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+    <path
+       id="path2856"
+       d="m 40.378075,28.718371 2.418535,-0.628431 2.418535,1.256862 -2.720852,1.885292 -2.116218,-2.513723 z"
+       style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60021949;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+    <path
+       sodipodi:nodetypes="cccc"
+       id="path2860"
+       d="m 6.779661,43.644068 c 5.932203,0.41879 11.864407,-3.645219 17.79661,-6.355932 l -0.423729,0.423728 0,0"
+       style="fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:2.20000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+    <path
+       sodipodi:nodetypes="ccc"
+       id="path2862"
+       d="m 11.652907,30.719973 c 2.384724,-1.81183 3.815498,-1.755981 5.084015,-1.382457 l 0,0"
+       style="fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:1.77700317;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+    <path
+       sodipodi:nodetypes="ccc"
+       id="path2866"
+       d="m 58.474576,25.000001 c 4.759069,-1.824488 8.061031,-8.020296 14.830508,-3.81356 0.595434,8.79514 -4.922629,9.948409 -8.474576,13.559323"
+       style="fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:2.20000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+    <path
+       sodipodi:nodetypes="cc"
+       id="path2868"
+       d="M 63.559322,46.186441 C 59.819151,56.796264 54.823776,59.874859 50,63.983051"
+       style="fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:2.20000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+    <path
+       sodipodi:nodetypes="ccc"
+       id="path2872"
+       d="M 89.830508,70.762712 86.016949,82.20339 c -0.866152,6.281154 -2.241444,10.525748 -4.237288,12.288135"
+       style="fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:2.20000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+    <path
+       sodipodi:nodetypes="ccc"
+       id="path2874"
+       d="m 69.915254,36.864407 c -0.788913,9.673303 -2.321115,14.886867 -4.237288,17.79661 l 0,-0.423729"
+       style="fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:2.20000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+  </g>
+</svg>
index 99c4a68..238623d 100644 (file)
@@ -14,7 +14,7 @@
    id="svg2"
    version="1.1"
    inkscape:version="0.47 r22583"
-   sodipodi:docname="New document 1">
+   sodipodi:docname="WhiteClaw.svg">
   <defs
      id="defs4">
     <inkscape:perspective
      inkscape:pageshadow="2"
      inkscape:zoom="4.8704322"
      inkscape:cx="26.42854"
-     inkscape:cy="46.467809"
+     inkscape:cy="36.240771"
      inkscape:document-units="px"
      inkscape:current-layer="layer1"
      showgrid="false"
-     inkscape:window-width="1280"
-     inkscape:window-height="726"
+     inkscape:window-width="1366"
+     inkscape:window-height="588"
      inkscape:window-x="0"
-     inkscape:window-y="25"
+     inkscape:window-y="24"
      inkscape:window-maximized="1" />
   <metadata
      id="metadata7">
         <dc:format>image/svg+xml</dc:format>
         <dc:type
            rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
+        <dc:title />
       </cc:Work>
     </rdf:RDF>
   </metadata>
      id="layer1"
      transform="translate(0,-952.36218)">
     <g
-       id="g3788">
+       id="g3610">
       <path
          sodipodi:nodetypes="cccccccccccccccccccc"
          id="path2816"
          d="m 49.667863,1012.1206 2.166994,9.0012 -0.333383,6.3344 -2.333687,8.3346 -4.167298,4.5007 -5.167449,2.5004 -5.334142,0.3334 -6.334292,-3.3339 -3.500529,-4.8341 -1.000152,-7.5011 -2.166995,-4.334 -5.334141,-4.1672 -2.500379,-6.001 2.000304,-6.1675 5.000756,-3.1672 5.500834,-0.8335 6.500984,0.3334 7.667828,1.0002 5.834217,3.0004 3.50053,5.0008 z"
-         style="fill:#ffffff;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+         style="fill:#ffffcc;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;fill-opacity:1" />
       <path
          sodipodi:nodetypes="cccccccccccc"
          id="path2818"
          d="m 39.626874,999.80011 -1.847886,-3.07981 0.821283,-5.95429 2.874488,-5.33834 5.338336,-3.07981 5.338334,0.61596 3.901092,3.49045 0,5.74898 -2.669167,5.13301 -4.517054,3.28514 -4.517053,1.0266 -4.722373,-1.84789 z"
-         style="fill:#ffffff;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+         style="fill:#ffffcc;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;fill-opacity:1" />
       <path
          sodipodi:nodetypes="cccccccccccc"
          id="path2818-3"
          d="m 70.11698,997.5416 1.847886,3.0798 -0.821283,5.9543 -2.874488,5.3383 -5.338336,3.0798 -5.748975,-0.2053 -3.490451,-3.9011 0,-5.749 2.258526,-5.54356 4.927695,-2.87454 4.517053,-1.0266 4.722373,1.8479 z"
-         style="fill:#ffffff;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+         style="fill:#ffffcc;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;fill-opacity:1" />
       <path
          sodipodi:nodetypes="cccccccccccc"
          id="path2818-3-2"
          d="m 33.569916,981.32129 1.847886,3.07984 -0.821283,5.9543 -2.874488,5.33826 -5.338336,3.0798 -5.748975,-0.2053 -3.490451,-3.9011 0,-5.74896 2.258526,-5.5436 4.927695,-2.87454 4.517053,-1.0266 4.722373,1.8479 z"
-         style="fill:#ffffff;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+         style="fill:#ffffcc;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;fill-opacity:1" />
       <path
          sodipodi:nodetypes="cccccccccccc"
          id="path2818-3-6"
          d="m 72.375506,1019.9215 2.463848,4.5171 -0.410642,4.7223 -4.106412,4.9277 -5.133015,2.0532 -5.748975,-0.2053 -3.490451,-3.9011 0,-5.749 2.669167,-4.7223 4.722375,-2.4639 4.722373,-0.8213 4.311732,1.6426 z"
-         style="fill:#ffffff;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+         style="fill:#ffffcc;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;fill-opacity:1" />
       <path
          sodipodi:nodetypes="ccccccccc"
          id="path2908"
diff --git a/svg/WhiteCopper.svg b/svg/WhiteCopper.svg
new file mode 100644 (file)
index 0000000..d59e291
--- /dev/null
@@ -0,0 +1,100 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="100"
+   height="100"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.47 r22583"
+   sodipodi:docname="WhiteCopper.svg">
+  <defs
+     id="defs4">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       id="perspective10" />
+    <inkscape:perspective
+       id="perspective2824"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective2838"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="2"
+     inkscape:cx="52.657835"
+     inkscape:cy="23.437927"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     inkscape:window-width="792"
+     inkscape:window-height="583"
+     inkscape:window-x="62"
+     inkscape:window-y="24"
+     inkscape:window-maximized="0" />
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(366.71429,-981.93367)">
+    <g
+       id="g4562"
+       transform="matrix(1.193104,0,0,1.1895413,59.079489,-196.62832)">
+      <path
+         sodipodi:nodetypes="ccccc"
+         transform="translate(-366.71429,981.93367)"
+         id="path4556"
+         d="M 26,52 64.5,71.5 C 67.515912,63.469849 70.035767,55.340487 66.5,46 60.825627,35.689785 56.003077,33.324102 45,36 35.761059,37.427726 29.618288,43.951622 26,52 z"
+         style="fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         sodipodi:nodetypes="cccccccccccc"
+         transform="translate(-366.71429,981.93367)"
+         id="path4558"
+         d="m 64.5,72 c -3.779495,3.707045 -6.553395,8.793287 -5,16.5 -4.913998,-2.365558 -5.084633,-8.970056 -6,-18 L 47.607692,67.938462 42.02124,78.050221 C 35.754635,84.142996 27.953864,80.53078 20.5,79.5 L 27.933962,63.481132 34.801887,63.443396 29.5,57 22,66 26,51.5 64.5,72 z"
+         style="fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         sodipodi:nodetypes="cccccccccc"
+         transform="translate(-366.71429,981.93367)"
+         id="path4560"
+         d="M 35,40 C 33.178622,32.957102 25.872149,29.802281 18,28 25.69257,19.679618 39.084953,14.459143 51.5,14.5 61.668917,15.831083 71.474869,21.525131 75,33 79.666667,43.333333 75.553573,47.386906 78,59.5 78.875389,68.436916 84.489005,75.016492 88,80 72.19585,77.012538 73.724002,59.633782 66.5,66 68.721953,59.044391 69.399712,51.779942 65,43.5 63.169388,38.131156 58.494001,35.038133 50,35 44.378886,34.803323 39.289044,36.200466 35,40 z"
+         style="fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+    </g>
+  </g>
+</svg>
diff --git a/svg/WhiteCub.svg b/svg/WhiteCub.svg
new file mode 100644 (file)
index 0000000..605b9ff
--- /dev/null
@@ -0,0 +1,171 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="100"
+   height="100"
+   id="svg3738"
+   version="1.1"
+   inkscape:version="0.47 r22583"
+   sodipodi:docname="WhiteLion.svg">
+  <defs
+     id="defs3740">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       id="perspective3746" />
+    <inkscape:perspective
+       id="perspective3800"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="2.8"
+     inkscape:cx="104.93845"
+     inkscape:cy="49.899824"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     inkscape:window-width="716"
+     inkscape:window-height="504"
+     inkscape:window-x="3"
+     inkscape:window-y="71"
+     inkscape:window-maximized="0"
+     showguides="true"
+     inkscape:guide-bbox="true">
+    <sodipodi:guide
+       position="0.17142614,0.85712"
+       orientation="0,744.09448"
+       id="guide4498" />
+    <sodipodi:guide
+       position="744.26591,0.85712"
+       orientation="-1052.3622,0"
+       id="guide4500" />
+    <sodipodi:guide
+       position="744.26591,1053.2193"
+       orientation="0,-744.09448"
+       id="guide4502" />
+    <sodipodi:guide
+       position="0.17142614,1053.2193"
+       orientation="1052.3622,0"
+       id="guide4504" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata3743">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0.17142614,-953.2193)">
+    <g
+       id="g3626"
+       transform="matrix(0.85,0,0,0.85,7.4742861,150.53307)">
+      <path
+         id="path3888"
+         d="m 19.658729,988.24705 2.662046,-6.65512 -1.774696,-3.99306 5.767763,-7.98613 8.873485,-6.21144 11.979202,-0.44368 2.218371,-7.09878 7.542461,0 7.098787,3.99306 10.648179,1.77471 -1.331021,5.76775 11.535527,3.10572 -1.331022,4.43674 6.655112,6.65511 -2.21837,2.21838 7.098788,10.64818 -2.662046,2.66204 4.436742,9.76077 -0.443675,6.2115 0,11.0919 -6.211439,-7.9862 0.443675,16.4159 -2.218371,3.1058 -6.211439,-5.7677 0,8.8734 -4.880415,3.5494 0.887348,-9.7609 -7.098787,11.9793 -3.993067,-4.8805 -4.436742,10.2046 -10.204506,1.331 -9.760832,-1.331 -8.42981,-6.6551 -4.43674,-2.2185 -10.648181,6.6552 -0.443675,-12.4229 -2.21837,-7.5424 -3.105719,2.662 -4.8804165,-3.9931 0.8873482,-8.8734 -2.2183708,-3.9931 0.8873485,-5.3241 -4.8804161,-3.5494 1.3310226,-3.5494 15.0849211,-12.86655 z"
+         style="fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:1.94107449;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         sodipodi:nodetypes="ccccccc"
+         id="path3890"
+         d="m 37.849371,990.46542 -8.42981,-1.77469 3.549395,1.33102 -5.324091,4.43674 5.324091,-2.66205 3.743499,0.19411 1.136916,-1.52513 z"
+         style="fill:#000000;stroke:#000000;stroke-width:1.94107449;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         id="path3892"
+         d="m 59.589406,989.1344 0,-6.21144 -0.443675,-7.54246 -1.774697,-4.88042 -3.105719,-2.21837 -6.655113,0.88735 -3.549392,3.99307 -1.774696,3.54939"
+         style="fill:none;stroke:#000000;stroke-width:1.94107449;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         id="path3894"
+         d="m 55.152664,985.14134 -0.887349,-4.43675 -2.662044,-3.54939 -3.105719,0 -1.774698,3.99306 0,0 0.887348,0.44367 -0.887348,-0.44367"
+         style="fill:none;stroke:#000000;stroke-width:1.94107449;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         id="path3896"
+         d="m 14.334641,1004.2193 0,0 z"
+         style="fill:none;stroke:#000000;stroke-width:1.94107449;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         sodipodi:nodetypes="cc"
+         id="path3898"
+         d="M 13.128401,1004.8154 2.7991111,1003.332"
+         style="fill:none;stroke:#000000;stroke-width:1.94107449;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         id="path3900"
+         d="m 8.1232014,1010.4308 2.2183706,-2.6621 2.21837,-0.4436 0.443676,-2.6621 0,0"
+         style="fill:none;stroke:#000000;stroke-width:1.94107449;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         id="path3902"
+         d="m 8.1232014,1017.5296 3.1057196,-0.8874 3.549393,3.9931 4.436742,0 6.211438,2.2184 4.880416,0.4436 0.443674,0 0,0.4437"
+         style="fill:none;stroke:#000000;stroke-width:1.94107449;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         id="path3904"
+         d="m 44.06081,1003.7756 -0.443675,8.4299 -3.549393,6.2114 -0.887348,7.0987 -5.32409,6.2115 -3.993067,6.6552"
+         style="fill:none;stroke:#000000;stroke-width:1.94107449;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         id="path3906"
+         d="m 72.455957,998.00788 -3.10572,13.31022 -5.767764,10.6482 -6.655112,8.4298 -4.880416,13.3102"
+         style="fill:none;stroke:#000000;stroke-width:1.94107449;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         sodipodi:nodetypes="cccccc"
+         id="path3908"
+         d="m 66.591138,1040.0876 -0.34662,-7.0294 3.993069,-8.8735 4.43674,-9.7608 2.218371,-10.6483 -0.443673,-7.09874"
+         style="fill:none;stroke:#000000;stroke-width:1.94107449;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         id="path3910"
+         d="m 79.998418,997.12053 0,7.09877 0,5.3241 0.887347,7.5425 -4.43674,6.6551 -2.662046,5.3241 -1.331022,6.2114"
+         style="fill:none;stroke:#000000;stroke-width:1.94107449;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         sodipodi:nodetypes="ccccc"
+         id="path3912"
+         d="m 72.012283,978.04254 6.655113,7.0988 7.986135,5.76775 -0.09705,20.35351 3.091854,3.9377"
+         style="fill:none;stroke:#000000;stroke-width:1.94107449;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         id="path3914"
+         d="m 72.012283,972.71846 7.542461,0.88734 4.880416,2.66205 0,0"
+         style="fill:none;stroke:#000000;stroke-width:1.94107449;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         sodipodi:nodetypes="ccc"
+         id="path3916"
+         d="m 20.546079,987.94202 11.535527,-8.12478 4.436742,-2.66204"
+         style="fill:none;stroke:#000000;stroke-width:1.94107449;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         id="path4508"
+         d="m 16.040012,1011.3181 c 8.318891,-1.7331 7.972271,-1.7331 7.972271,-1.7331"
+         style="fill:none;stroke:#000000;stroke-width:1.94107449;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         id="path4510"
+         d="m 16.733253,1014.091 c 11.438475,-0.3466 11.438475,-0.3466 11.438475,-0.3466"
+         style="fill:none;stroke:#000000;stroke-width:1.94107449;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         id="path4512"
+         d="m 17.079873,1016.5174 c 10.745234,4.1594 10.745234,4.1594 10.745234,4.1594"
+         style="fill:none;stroke:#000000;stroke-width:1.94107449;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+    </g>
+  </g>
+</svg>
index c01d573..c990494 100644 (file)
      inkscape:pageshadow="2"
      inkscape:zoom="4.5167464"
      inkscape:cx="49.318911"
-     inkscape:cy="45.354981"
+     inkscape:cy="67.128756"
      inkscape:document-units="px"
      inkscape:current-layer="layer1"
      showgrid="false"
-     inkscape:window-width="1280"
-     inkscape:window-height="726"
+     inkscape:window-width="1366"
+     inkscape:window-height="588"
      inkscape:window-x="0"
-     inkscape:window-y="25"
+     inkscape:window-y="24"
      inkscape:window-maximized="1" />
   <metadata
      id="metadata7">
      id="layer1"
      transform="translate(0,-952.36218)">
     <g
-       id="g2848"
-       transform="matrix(0.94718127,0,0,1,5.1441209,0)">
+       id="g3597">
       <path
          sodipodi:nodetypes="cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
          id="path2832"
-         d="m 21.409187,1009.2837 3.850594,-5.9885 4.312974,-6.56537 6.026858,-7.19404 5.068076,-5.25188 5.537733,-4.27474 5.365827,-3.5041 2.054647,-0.99064 1.756897,-2.73841 1.016083,-3.52748 -0.668156,-2.14233 -0.710106,-2.98178 -0.568906,-1.55972 1.997345,-0.73376 3.051262,0.70676 3.23441,2.96828 1.935928,3.65165 1.664774,3.8397 0.397,2.33037 5.388307,2.56023 5.857963,3.53738 4.189076,3.8262 4.502182,4.47761 3.532159,4.71602 2.306336,4.04622 2.229452,4.21583 1.142041,4.303 0.416051,2.7853 -0.817318,3.9553 -1.401312,3.8618 0.378064,6.9663 0.232905,4.9517 -2.142125,1.0799 -1.867388,-2.6475 -3.791542,-8.7269 -2.693276,-1.9435 -2.96748,-3.6758 -3.158704,-3.2423 -0.150072,2.7315 c -1.183588,2.1006 -0.727662,2.1788 -1.669419,2.8704 l -2.845485,1.7911 -3.100755,0.2938 -3.715192,-1.444 3.05035,-3.0578 1.211269,-2.2168 0.283726,-3.0564 -1.499497,-3.2124 -5.594617,-2.2551 -6.430984,-0.9685 -8.157173,-0.423 -6.889401,1.0865 -6.163943,2.972 -6.121994,3.8114 -4.796918,5.0637 -4.369212,5.2015 5.722332,1.0098 4.306198,2.9434 3.564587,4.809 -1.40554,3.3423 -5.630626,-3.9007 -5.512971,-1.6086 -5.433305,0.3486 0.122418,-3.7133 -4.005019,4.6365 -4.1082286,0.1834 -4.5703428,0.8646 -5.8450126,2.5972 -0.4249251,-1.0225 2.37411703,-3.6566 4.76621177,-3.314 5.0069263,-2.0465 4.289125,-1.1241 3.763766,-4.871 3.320975,-5.7562 z"
-         style="fill:#ffffff;stroke:#000000;stroke-width:2.19197774;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+         d="m 25.422502,1009.2837 3.64721,-5.9885 4.085169,-6.56537 5.708527,-7.19404 4.800386,-5.25188 5.245237,-4.27474 5.082411,-3.5041 1.946123,-0.99064 1.6641,-2.73841 0.962415,-3.52748 -0.632865,-2.14233 -0.672599,-2.98178 -0.538857,-1.55972 1.891848,-0.73376 2.890098,0.70676 3.063572,2.96828 1.833675,3.65165 1.576843,3.8397 0.376031,2.33037 5.103703,2.56023 5.548553,3.53738 3.967814,3.8262 4.264383,4.47761 3.345595,4.71602 2.184518,4.04622 2.111695,4.21583 1.08172,4.303 0.394076,2.7853 -0.774149,3.9553 -1.327296,3.8618 0.358095,6.9663 0.220603,4.9517 -2.02898,1.0799 -1.768755,-2.6475 -3.591278,-8.7269 -2.55102,-1.9435 -2.810742,-3.6758 -2.991865,-3.2423 -0.142145,2.7315 c -1.121073,2.1006 -0.689228,2.1788 -1.581243,2.8704 l -2.69519,1.7911 -2.936977,0.2938 -3.51896,-1.444 2.889234,-3.0578 1.147291,-2.2168 0.26874,-3.0564 -1.420295,-3.2124 -5.299117,-2.2551 -6.091307,-0.9685 -7.726322,-0.423 -6.525511,1.0865 -5.838372,2.972 -5.798638,3.8114 -4.543551,5.0637 -4.138435,5.2015 5.420085,1.0098 4.07875,2.9434 3.376311,4.809 -1.331302,3.3423 -5.333223,-3.9007 -5.221783,-1.6086 -5.146325,0.3486 0.115952,-3.7133 -3.793479,4.6365 -3.891237,0.1834 -4.328943,0.8646 -5.5362864,2.5972 -0.4024811,-1.0225 2.2487192,-3.6566 4.5144665,-3.314 4.7424668,-2.0465 4.062579,-1.1241 3.564969,-4.871 3.145565,-5.7562 z"
+         style="fill:#ffffcc;stroke:#000000;stroke-width:2.13330363999999983;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;fill-opacity:1" />
       <path
          id="path2834"
-         d="m 72.150568,1000.6302 -5.147858,-0.5555 -4.063233,-1.30775 -4.418286,-2.79866 -3.975221,-3.75745 -3.261004,-4.90406 6.885287,3.04205 3.765482,-0.43998 3.750128,0.65635"
-         style="fill:none;stroke:#000000;stroke-width:2.19197774;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+         d="m 73.483788,1000.6302 -4.875955,-0.5555 -3.848618,-1.30775 -4.184918,-2.79866 -3.765255,-3.75745 -3.088762,-4.90406 6.521615,3.04205 3.566594,-0.43998 3.552051,0.65635"
+         style="fill:none;stroke:#000000;stroke-width:2.13330364;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
       <path
          id="path2842"
-         d="m 82.427881,1002.246 1.21047,1.7662"
-         style="fill:none;stroke:#000000;stroke-width:2.19197774;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+         d="m 83.218266,1002.246 1.146534,1.7662"
+         style="fill:none;stroke:#000000;stroke-width:2.13330364;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
       <path
          sodipodi:nodetypes="cccc"
          id="path2844"
-         d="m 53.83975,975.58326 5.434369,-0.72881 4.135888,-0.0454 3.051264,0.70675"
-         style="fill:none;stroke:#000000;stroke-width:2.19197774;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+         d="m 56.140124,975.58326 5.147332,-0.72881 3.917436,-0.0454 2.8901,0.70675"
+         style="fill:none;stroke:#000000;stroke-width:2.13330364;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
       <path
          sodipodi:nodetypes="cc"
          id="path2860"
-         d="m 70.183263,1005.0426 7.527542,4.6075"
-         style="fill:none;stroke:#000000;stroke-width:2.19197774;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+         d="m 71.620393,1005.0426 7.129947,4.6075"
+         style="fill:none;stroke:#000000;stroke-width:2.13330364;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
     </g>
   </g>
 </svg>
diff --git a/svg/WhiteDragon.svg b/svg/WhiteDragon.svg
new file mode 100644 (file)
index 0000000..69c48eb
--- /dev/null
@@ -0,0 +1,105 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="100"
+   height="100"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.47 r22583"
+   sodipodi:docname="WhiteFlyingDragon2.svg">
+  <defs
+     id="defs4">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       id="perspective10" />
+    <inkscape:perspective
+       id="perspective2824"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective2838"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="2"
+     inkscape:cx="52.657835"
+     inkscape:cy="23.437927"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     inkscape:window-width="792"
+     inkscape:window-height="583"
+     inkscape:window-x="62"
+     inkscape:window-y="24"
+     inkscape:window-maximized="0" />
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(366.71429,-981.93367)">
+    <g
+       id="g3669">
+      <path
+         sodipodi:nodetypes="ccccccccccccccccccccc"
+         id="path2833"
+         d="m -316.96429,1025.6837 -0.75,-8 0,-6.75 2,-7.25 4.25,-7.75003 4.75,-5 8.25,-1.5 9.25,0 7,2 7,2.5 -8,4.5 -3.25,4.25003 -2.5,5 -1,4.25 c -0.33333,-0.083 2.33633,8.001 1,6 l -6.75,-1 -6.5,1.5 -5.25,2.75 -2.5,3.5 -1.5,6 -5.5,-5 z"
+         style="fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" />
+      <path
+         sodipodi:nodetypes="cccccccccccccccccccccccccccccccccsccccccc"
+         id="path2834"
+         d="m -324.3447,1018.1361 7.38041,2.8188 5.53531,3.9462 5.53531,5.6375 5.53531,9.02 3.07517,10.1475 3.07517,8.4562 4.92027,6.2012 6.23505,3.0624 0.53033,-1.9349 7.38041,6.765 -10.32484,-0.5972 1.00725,-1.5144 -6.6733,-2.9621 -4.92027,-5.6375 -4.92028,-5.0737 -6.15034,-7.3288 -4.92028,-3.9462 -5.5353,-3.3825 -5.53531,-3.9462 -5.53531,-5.6375 -4.92028,-8.4563 -1.23006,-5.0737 -3.69021,-6.765 -4.92028,-6.2012 -3.6902,-1.1275 -9.22552,3.9462 -2.46013,-3.3825 0,-3.3825 2.46013,0.5638 6.15035,-1.1275 1.23007,-4.51 3.6902,-2.25501 c 5.40259,-7.58194 -2.48944,1.18601 4.52818,1.77851 3.1683,0.2676 2.0104,-3.34798 3.77478,-4.0335 l -0.92255,7.3287 1.23007,3.9463 1.84511,3.3825 2.46013,4.51 3.69021,3.3825 4.30524,3.3824 z"
+         style="fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:2.35533403999999980;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         sodipodi:nodetypes="ccccccccccccccccc"
+         id="path2840"
+         d="m -305.46429,1045.4337 -5.5,-1.5 -5,2 -3,3 4,4.5 3.5,2 -4.85355,2.9697 -0.14645,2.5303 2,2.5 1.20711,-2.9697 2.29289,-2.0303 -0.5,1 4.5,-2 -3,-7.5 4,0 2,-1.5 -1.5,-3 z"
+         style="fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         id="path3621"
+         d="m -345.71429,997.9337 c 0.66667,0 -0.0833,-0.083 0.25,0.25 0.0589,0.059 0.25,-0.083 0.25,0 0,0.083 -0.33333,0 -0.25,0 1.11111,0 0.22222,0 0,0"
+         style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         sodipodi:nodetypes="ccccccccccccccccccccccc"
+         id="path2831"
+         d="m -327.46429,1034.1837 -9.75,-1 -8.75,1.5 -8.75,3.25 -7,4 -0.5,9.5 1.5,12 3.25,11.75 3.75,-5.25 3.75,-3 4.75,-2.5 6.5,-0.75 5.25,1.5 -2.5,-6.5 -0.5,-5.25 1.5,-6 2.75,-4.25 3.75,-2 4,-1 1.5,-0.5 5.46504,-6.8785 c -0.15238,0.059 -5.63008,-5.2082 -5.5283,-5.1607 l -4.43674,6.5392 z"
+         style="fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" />
+    </g>
+  </g>
+</svg>
diff --git a/svg/WhiteDuck.svg b/svg/WhiteDuck.svg
new file mode 100644 (file)
index 0000000..f19e88a
--- /dev/null
@@ -0,0 +1,112 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.0"
+   width="100"
+   height="100"
+   id="svg2833"
+   inkscape:version="0.47 r22583"
+   sodipodi:docname="WhiteDuck.svg">
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="736"
+     inkscape:window-height="583"
+     id="namedview11"
+     showgrid="false"
+     inkscape:zoom="2.36"
+     inkscape:cx="50"
+     inkscape:cy="36.518733"
+     inkscape:window-x="0"
+     inkscape:window-y="24"
+     inkscape:window-maximized="0"
+     inkscape:current-layer="svg2833" />
+  <defs
+     id="defs2835">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 50 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="100 : 50 : 1"
+       inkscape:persp3d-origin="50 : 33.333333 : 1"
+       id="perspective13" />
+    <inkscape:perspective
+       id="perspective3624"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective2884"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+  </defs>
+  <metadata
+     id="metadata2838">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="g3714">
+    <path
+       sodipodi:nodetypes="cccccccccccccccccc"
+       id="path2890"
+       d="M 94.067797,83.474577 C 84.604585,65.112995 85.394968,49.081921 76.483052,32.627119 73.446329,28.379692 65.536724,20.421132 59.745764,17.372882 53.389832,14.3407 46.398306,15.397508 40.042374,18.008475 34.045286,20.909692 32.400261,26.891786 29.661018,33.050848 21.446493,45.072299 14.814696,46.014649 7.62712,50.847458 4.823917,52.536959 4.941692,53.496216 4.237289,54.661017 4.66472,57.619714 6.086467,58.589781 7.62712,59.322034 l 1.906779,-1.906779 4.872881,0.211864 c -1.879531,1.836158 -3.793952,3.672317 -6.77966,5.508475 l -10e-7,2.542372 c 0.884399,1.515739 10.080498,0.313524 30.508475,-6.77966 2.917376,-0.842524 5.695066,-1.265989 8.050848,-0.423729 3.672316,5.347741 7.344633,8.070064 11.016949,11.228813 2.079697,4.09851 3.805321,7.577391 8.050847,15.466102 1.152692,3.298838 1.318265,2.495304 1.90678,8.050847 11.262673,0.192033 20.163671,-3.158448 26.906779,-9.745762 z"
+       style="fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:2.20000005;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+    <path
+       transform="matrix(-1,0,0,1,96.398306,-0.63559318)"
+       d="m 40.677967,29.449152 a 0.84745765,1.059322 0 1 1 -1.694915,0 0.84745765,1.059322 0 1 1 1.694915,0 z"
+       sodipodi:ry="1.059322"
+       sodipodi:rx="0.84745765"
+       sodipodi:cy="29.449152"
+       sodipodi:cx="39.830509"
+       id="path2892"
+       style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:3.5;stroke-linecap:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       sodipodi:type="arc" />
+    <path
+       sodipodi:nodetypes="cccccccccccccc"
+       id="path3666"
+       d="m 29.449153,33.050848 c 3.933055,3.476594 6.949231,-1.298733 10.381356,-2.330509 -0.553916,4.006697 -1.549974,7.350181 -1.059322,12.923729 0.109812,1.887184 1.659758,3.054302 4.025424,3.81356 0.842525,2.449855 1.265989,5.039397 0.423729,8.050847 l -5.084746,2.966102 C 18.618726,66.199274 13.334759,66.138727 8.898306,66.101695 6.792408,64.621831 7.640244,63.8804 7.627119,62.923729 c 2.672496,-1.534212 3.542239,-1.714453 6.991526,-5.508474 l -5.29661,0 -1.90678,1.906779 C 5.879161,58.845569 5.63687,57.03007 4.661018,54.872882 4.615418,54.012911 5.494985,52.690361 6.567797,51.271187 14.49455,46.396278 23.088611,44.190603 29.449153,33.050848 z"
+       style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+    <path
+       sodipodi:nodetypes="ccc"
+       id="path3668"
+       d="m 14.618645,57.415255 c 2.471751,0.369524 5.155367,0.949571 8.262711,0.423728 8.510908,-5.215089 17.141878,-5.267041 19.491526,-10.169491"
+       style="fill:none;stroke:#000000;stroke-width:2.20000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+    <path
+       sodipodi:nodetypes="cc"
+       id="path3675"
+       d="m 31.355933,41.949153 -1.271186,0"
+       style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+    <path
+       sodipodi:nodetypes="cccccccc"
+       id="path3677"
+       d="M 41.737289,50.000001 C 37.679772,54.352873 30.618108,56.684829 20.12712,62.923729 l -11.652543,2.966102 -0.635593,-2.542373 7.20339,-5.29661 7.627118,0.211864 c 11.490336,-5.72558 14.908063,-6.054057 19.70339,-9.745762 l -0.635593,1.483051 z"
+       style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+  </g>
+</svg>
diff --git a/svg/WhiteFlag.svg b/svg/WhiteFlag.svg
new file mode 100644 (file)
index 0000000..bf734b1
--- /dev/null
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.0"
+   width="100"
+   height="100"
+   id="svg2833"
+   inkscape:version="0.47 r22583"
+   sodipodi:docname="WhiteFlag.svg">
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="640"
+     inkscape:window-height="504"
+     id="namedview11"
+     showgrid="false"
+     inkscape:zoom="2.36"
+     inkscape:cx="50"
+     inkscape:cy="45.018323"
+     inkscape:window-x="0"
+     inkscape:window-y="24"
+     inkscape:window-maximized="0"
+     inkscape:current-layer="svg2833" />
+  <defs
+     id="defs2835">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 50 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="100 : 50 : 1"
+       inkscape:persp3d-origin="50 : 33.333333 : 1"
+       id="perspective13" />
+    <inkscape:perspective
+       id="perspective3624"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+  </defs>
+  <metadata
+     id="metadata2838">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="g2851">
+    <path
+       sodipodi:nodetypes="ccccc"
+       id="path3619"
+       d="m 12.711864,21.186441 c 21.074722,13.738473 51.147584,-16.5165456 75,0 l 0,43.644067 C 65.073347,47.717811 33.988516,77.130498 13.559322,63.983051 l -0.847458,-42.79661 z"
+       style="fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:2.20000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+    <path
+       sodipodi:nodetypes="cccccc"
+       id="path2840"
+       d="m 10.849879,93.958837 -0.571429,-76.90138 2.857143,-9.3213798 2.857142,8.8553108 0,77.367449 -5.142856,0 z"
+       style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.21791804px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+    <path
+       transform="matrix(0.84498804,0,0,0.87421513,1.3857655,2.2865217)"
+       d="m 21.610169,11.440678 a 7.2033896,5.5084743 0 1 1 -14.4067794,0 7.2033896,5.5084743 0 1 1 14.4067794,0 z"
+       sodipodi:ry="5.5084743"
+       sodipodi:rx="7.2033896"
+       sodipodi:cy="11.440678"
+       sodipodi:cx="14.406779"
+       id="path3615"
+       style="fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:2.55969501;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       sodipodi:type="arc" />
+    <g
+       id="g2847">
+      <path
+         style="fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:2.20000005;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+         d="m 47.924522,29.803428 c 2.352292,2.373978 2.989775,5.60536 3.097095,9.101824 -2.705019,-3.431121 -4.339313,-2.610637 -6.067326,-2.162295 -2.493738,1.049561 -6.3046,4.414643 -5.308911,10.467465 1.321421,5.024014 3.218749,6.109577 6.535483,7.357756 3.794112,1.043053 8.576448,-0.390949 11.287289,-2.193919 2.420062,-1.818195 5.475347,-5.939611 5.688118,-10.683341 -0.43097,-5.309502 -3.127393,-8.272321 -6.825742,-7.482172 -3.382743,0.952451 -3.811636,2.929208 -5.308911,4.673169"
+         id="path3623"
+         sodipodi:nodetypes="ccccccccc" />
+      <path
+         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.9676736;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+         d="m 50.60902,32.085634 c 0.72498,-1.936039 0.639786,-3.96007 2.790433,-5.626932 1.987149,-1.672051 5.016574,-2.018442 7.878871,-2.046157 -0.389945,1.97951 -1.155458,3.812714 -3.282863,5.115393 -2.758084,2.005397 -5.051044,2.198889 -7.386441,2.557696 z"
+         id="path3625"
+         sodipodi:nodetypes="ccccc" />
+    </g>
+  </g>
+</svg>
diff --git a/svg/WhiteGnu.svg b/svg/WhiteGnu.svg
new file mode 100644 (file)
index 0000000..878c5d0
--- /dev/null
@@ -0,0 +1,176 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="100"
+   height="100"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.47 r22583"
+   sodipodi:docname="WhiteGnu.svg">
+  <defs
+     id="defs4">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       id="perspective10" />
+    <inkscape:perspective
+       id="perspective2824"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective2838"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective2903"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="2"
+     inkscape:cx="27.529211"
+     inkscape:cy="24.54468"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     inkscape:window-width="792"
+     inkscape:window-height="583"
+     inkscape:window-x="62"
+     inkscape:window-y="24"
+     inkscape:window-maximized="0" />
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(366.71429,-981.93367)">
+    <g
+       id="g3620">
+      <path
+         sodipodi:nodetypes="cccccccccccccccccccccssssccccccccccccccccccccccccccccc"
+         id="path2911"
+         d="m -302.96429,994.68367 c 1.18904,-0.20023 2.49888,-0.58165 5,-2.75 5.3829,-2.46514 10.19974,-2.94909 14.25,-0.75 5.63429,0.8759 8.13122,4.26169 10.5,7.75 1.81376,2.60943 2.68608,6.47413 2.5,11.75003 0.92296,5.9217 -1.14375,9.4516 -3.5,12.75 -4.79245,4.5849 -7.43638,6.1227 -10.25,6.75 0.69782,2.4377 1.6676,3.0815 3,4.25 -1.57788,1.7554 -5.60684,1.0598 -10.5,-0.5 -2.54218,-1.1647 -5.10631,-2.2415 -7,-6 l -2.5,1 5.5,8 4.5,1 c 1.42915,1.495 2.36512,3.1873 0.5,6 l -4.5,4.5 2.75,2 c 0.28652,2.2465 -1.61353,3.0354 -3.25,4 l -0.5,4.75 c -0.7137,1.8696 -3.61319,1.5535 -6.25,1.5 l 0.75,5.25 c 0.16554,1.2914 0.42751,2.6069 -2,3.25 0.34049,1.9797 -0.80291,3.0349 1.86014,5.9567 1.84757,2.0271 0.98558,2.7166 -2.16413,3.1577 -1.04577,0.1464 -3.23349,-2.6263 -4.47453,-1.5404 -2.13998,1.8726 -5.15094,1.4284 -6.57717,-1.2045 -0.82526,-1.5235 -0.77287,-4.2725 -1.14431,-5.8695 l -4.75,-3.75 0.75,4.25 -14,-3.5 c -5.9902,-5.8732 -7.83367,-14.4685 -8.5,-25 -3.5,1.4715 -6.25,1.8528 -9,1.75 2.1486,-3.3695 5.53611,-4.2612 5.25,-12.5 -5.52081,-0.031 -10.05501,-4.5025 -14.25,-10.5 -1.60532,-4.173 -2.60846,-10.2654 -1.25,-16.75 4.20219,-8.93028 10.4286,-12.54 13.82322,-13.39648 6.76706,-1.09064 9.60682,-0.67493 13.25,-0.25 l 5.17678,2.39645 4.5,1.5 c -0.3773,1.45603 -1.80005,1.86661 -3.5,2 l -10.75,0 c -4.6297,0.65727 -8.61975,2.84384 -11.25,7.50003 -1.82016,4.8267 -1.67981,8.6732 0.5,11.5 2,1.75 4,3.0418 6,1.5 8.16782,-6.2817 8.78546,-10.1411 15.5,-14.75 3.55433,-1.2174 6.86131,-1.4453 9.75,0 l 6.5,3.5 c 3.07889,-3.6765 6.62838,-6.31758 13,-2.75 2.41667,1.6301 4.83333,3.0403 7.25,7.25 l 3.75,4.5 c 4.2709,4.4793 6.36926,2.4411 8,-1 1.97363,-3.8553 2.15959,-8.0681 -2.5,-13.25003 -2.26099,-2.95605 -5.08,-3.68 -8,-4 l -7.75,1 c -2.9764,-0.58566 -3.65476,-1.00741 -4,-2.25 z"
+         style="fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         sodipodi:nodetypes="cccccccc"
+         transform="translate(-366.71429,981.93367)"
+         id="path3592"
+         d="m 19.75,49.25 c 3.457604,-7.792396 6.934246,-15.565754 16.25,-17.5 5.691185,0.203445 10.64177,-0.704012 15,-2.5 2.349769,3.334487 4.983894,5.247199 8,5.25 0.158534,-2.174799 1.263839,-3.402827 2.75,-4.25 l 4.5,1.25 c 4.646068,0.862359 8.17876,2.392744 9.5,5.25 L 82.5,48.5"
+         style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" />
+      <path
+         sodipodi:nodetypes="cc"
+         transform="translate(-366.71429,981.93367)"
+         id="path3594"
+         d="m 23.25,59.75 c 6.974821,-1.775179 11.939794,-5.560206 14.25,-12"
+         style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" />
+      <path
+         sodipodi:nodetypes="ccccccc"
+         transform="translate(-366.71429,981.93367)"
+         id="path3596"
+         d="m 31.25,56.25 c 0.180763,3.430763 0.74164,7.24164 2.25,12 1.898655,2.0293 3.755831,3.934161 5,4 -0.374919,1.364604 -1.617419,2.512312 0.5,4.5 2.518168,1.628028 5.126986,3.271164 3.75,4.25 l -1,2 4,4"
+         style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" />
+      <path
+         sodipodi:nodetypes="cccc"
+         transform="translate(-366.71429,981.93367)"
+         id="path3598"
+         d="M 71.25,72 60,72.75 c -4.147681,0.731014 -5.706629,-1.126704 -7.25,-3 L 48,62.5"
+         style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" />
+      <path
+         transform="translate(-366.71429,981.93367)"
+         id="path3600"
+         d="M 63.75,79 57,79"
+         style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" />
+      <path
+         sodipodi:nodetypes="cc"
+         transform="translate(-366.71429,981.93367)"
+         id="path3602"
+         d="M 36.25,40 C 40.396177,33.874313 45.895347,32.29264 42,38"
+         style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" />
+      <path
+         sodipodi:nodetypes="ccccc"
+         transform="translate(-366.71429,981.93367)"
+         id="path3604"
+         d="m 48,38.25 c 1.900105,0.345755 3.480059,0.931622 2.75,3.25 l -5.25,1 c -1.303666,0.469459 -2.323763,1.045256 -1,2.5 l 1.75,1.75"
+         style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" />
+      <path
+         sodipodi:nodetypes="ccccc"
+         transform="translate(-366.71429,981.93367)"
+         id="path3606"
+         d="m 66.125,58.125 -6.75,-4 c -2.010232,-1.017906 -5.308457,-0.9148 -6.75,0.75 l 0.125,4.5 c 0.51551,-2.279048 1.318117,-3.553258 2.5,-3.5"
+         style="fill:none;stroke:#000000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" />
+      <path
+         sodipodi:nodetypes="ccc"
+         transform="translate(-366.71429,981.93367)"
+         id="path3608"
+         d="m 61.75,61.375 c -1.833333,-2.940792 -3.666667,-3.239079 -5.5,-2.875 0.09507,0.744132 -0.01335,1.027511 1.375,1.125"
+         style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" />
+      <path
+         sodipodi:nodetypes="cccc"
+         transform="translate(-366.71429,981.93367)"
+         id="path3610"
+         d="m 45.625,42.5 c 0.875,1.035668 2.25,2.140221 3.125,1.75 L 49.581547,42.799511 50.625,41.5"
+         style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" />
+      <path
+         sodipodi:nodetypes="cccccc"
+         transform="translate(-366.71429,981.93367)"
+         id="path3612"
+         d="M 66.125,31.375 C 65.990664,32.412932 65.543737,33.325828 67,35 c 0.685993,1.344503 1.105066,3.947467 1.125,5.625 1.117219,3.546507 -1.863384,1.882612 -2.75,4.25 -0.16588,-1.942296 -1.09411,-3.724712 -2.25,-2.75 -0.832671,-2.990606 0.331254,-5.486661 1.375,-6.375"
+         style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" />
+      <path
+         sodipodi:nodetypes="cccccccccccc"
+         transform="translate(-366.71429,981.93367)"
+         id="path3614"
+         d="m 62.04862,87.979184 -1.944544,-0.530329 c -1.972098,1.119586 -4.033655,2.239171 -4.596194,3.358757 l 0.176777,2.828427 -2.828427,-3.181981 c -1.090206,-2.386403 -2.509702,-4.443514 -3.181981,-7.247844 -1.942896,-0.736982 -1.813084,-1.99214 -1.944543,-3.181981 l -2.298097,2.828428 5.833631,4.24264 c 0.590616,11.364474 4.836187,6.9864 7.601398,6.540738 3.761341,1.784611 7.686414,3.723857 3.18198,-2.298097 l 0,-3.358758 z"
+         style="fill:#000000;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1" />
+      <path
+         sodipodi:nodetypes="cc"
+         transform="translate(-366.71429,981.93367)"
+         id="path3616"
+         d="m 53.916892,23.278914 c 2.711749,1.950966 4.063392,3.70002 4.419418,5.656854"
+         style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" />
+      <path
+         sodipodi:nodetypes="cc"
+         transform="translate(-366.71429,981.93367)"
+         id="path3618"
+         d="m 32.880465,84.973981 15.202796,3.889086"
+         style="fill:none;stroke:#ffffcc;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" />
+    </g>
+  </g>
+</svg>
index 90df377..e835915 100644 (file)
@@ -53,9 +53,9 @@
      inkscape:current-layer="layer1"
      showgrid="false"
      inkscape:window-width="792"
-     inkscape:window-height="655"
+     inkscape:window-height="583"
      inkscape:window-x="62"
-     inkscape:window-y="25"
+     inkscape:window-y="24"
      inkscape:window-maximized="0" />
   <metadata
      id="metadata7">
          d="m -282.35544,1041.779 -52.24134,0"
          style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
     </g>
+    <path
+       style="fill:#ffffcc;fill-opacity:1"
+       d="m 5.852954,56.651039 0,-4.017857 8.482143,0 8.482143,0 0,4.017857 0,4.017857 -8.482143,0 -8.482143,0 0,-4.017857 z"
+       id="path2819"
+       transform="translate(-366.71429,981.93367)" />
+    <path
+       style="fill:#ffffcc;fill-opacity:1"
+       d="m 25.31724,57.186753 0,-21.160714 2.5,0 2.5,0 0,21.160714 0,21.160714 -2.5,0 -2.5,0 0,-21.160714 z"
+       id="path2821"
+       transform="translate(-366.71429,981.93367)" />
+    <path
+       style="fill:#ffffcc;fill-opacity:1"
+       d="m 32.81724,62.543896 0,-4.196429 25.803571,0 25.803572,0 0,-1.071428 0,-1.071429 -25.803572,0 -25.803571,0 -3e-5,-4.241071 -2.9e-5,-4.241072 24.419673,0.03979 c 13.43082,0.02189 25.322702,0.09002 26.426404,0.151407 l 2.006732,0.111614 4.466482,4.551724 c 2.456566,2.503448 4.466482,4.612908 4.466482,4.687689 0,0.07478 -2.126332,2.23739 -4.725184,4.805797 l -4.725184,4.669832 -26.167673,0 -26.167673,0 0,-4.196428 z"
+       id="path2823"
+       transform="translate(-366.71429,981.93367)" />
   </g>
 </svg>
diff --git a/svg/WhiteHat.svg b/svg/WhiteHat.svg
new file mode 100644 (file)
index 0000000..362c03b
--- /dev/null
@@ -0,0 +1,112 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="100"
+   height="100"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.47 r22583"
+   sodipodi:docname="WhiteHat.svg">
+  <defs
+     id="defs4">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       id="perspective10" />
+    <inkscape:perspective
+       id="perspective2824"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective2838"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="1.979899"
+     inkscape:cx="23.076122"
+     inkscape:cy="73.006915"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     inkscape:window-width="792"
+     inkscape:window-height="583"
+     inkscape:window-x="62"
+     inkscape:window-y="24"
+     inkscape:window-maximized="0" />
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(366.71429,-981.93367)">
+    <g
+       id="g3600"
+       transform="matrix(1.1,0,0,1.1,29.979168,-106.6056)">
+      <path
+         sodipodi:nodetypes="cccc"
+         id="path3592"
+         d="m -337.92495,1051.6291 -0.50507,-44.4467 c -0.98602,-13.25383 46.77924,-13.34001 45.45686,-0.5051 l 0,44.9517"
+         style="fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:2.20000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         sodipodi:nodetypes="ccccc"
+         id="path3596"
+         d="m -338.89231,1061.6879 0.50508,-19.6124 c -1.82895,-11.4208 45.85254,-11.3027 44.86621,0 l 1.01015,19.1073 -46.38144,0.5051 z"
+         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:2.28557611;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         transform="translate(-365.70414,979.91336)"
+         d="m 89.903576,82.069794 c 0,6.834175 -17.525102,12.374368 -39.14341,12.374368 -21.618308,0 -39.14341,-5.540193 -39.14341,-12.374368 0,-6.834175 17.525102,-12.374369 39.14341,-12.374369 21.618308,0 39.14341,5.540194 39.14341,12.374369 z"
+         sodipodi:ry="12.374369"
+         sodipodi:rx="39.14341"
+         sodipodi:cy="82.069794"
+         sodipodi:cx="50.760166"
+         id="path2818"
+         style="fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:2.20000005;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+         sodipodi:type="arc" />
+      <path
+         transform="matrix(0.90342936,0,0,0.85120259,-360.41906,1055.2591)"
+         d="m 74.246212,9.0862713 c 0,4.1841887 -11.080387,7.5761447 -24.748737,7.5761447 -13.668351,0 -24.748738,-3.391956 -24.748738,-7.5761447 0,-4.1841889 11.080387,-7.5761442 24.748738,-7.5761442 13.66835,0 24.748737,3.3919553 24.748737,7.5761442 z"
+         sodipodi:ry="7.5761442"
+         sodipodi:rx="24.748737"
+         sodipodi:cy="9.0862713"
+         sodipodi:cx="49.497475"
+         id="path3594"
+         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:2.50875998;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+         sodipodi:type="arc" />
+    </g>
+  </g>
+</svg>
diff --git a/svg/WhiteIron.svg b/svg/WhiteIron.svg
new file mode 100644 (file)
index 0000000..7da0d27
--- /dev/null
@@ -0,0 +1,171 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="100"
+   height="100"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.47 r22583"
+   sodipodi:docname="WhiteIron.svg">
+  <defs
+     id="defs4">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       id="perspective10" />
+    <inkscape:perspective
+       id="perspective2824"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective2838"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="4"
+     inkscape:cx="52.657835"
+     inkscape:cy="39.751147"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     inkscape:window-width="792"
+     inkscape:window-height="583"
+     inkscape:window-x="62"
+     inkscape:window-y="24"
+     inkscape:window-maximized="0" />
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(366.71429,-981.93367)">
+    <g
+       id="g2828">
+      <path
+         sodipodi:nodetypes="cc"
+         id="path2847"
+         d="m -350.1696,1038.9436 c 11.05752,-46.108 56.80389,-45.87413 68.93337,1"
+         style="fill:#ffffcc;fill-opacity:0.94117647;stroke:#000000;stroke-width:2.50000000000000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         transform="matrix(1.0121613,0,0,0.99635065,-366.8199,978.22652)"
+         d="m 86,80.25 a 36,7.75 0 1 1 -72,0 36,7.75 0 1 1 72,0 z"
+         sodipodi:ry="7.75"
+         sodipodi:rx="36"
+         sodipodi:cy="80.25"
+         sodipodi:cx="50"
+         id="path2845"
+         style="fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:2.54580927;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+         sodipodi:type="arc" />
+      <rect
+         y="1040.0736"
+         x="-350.57452"
+         height="16.720404"
+         width="68.720406"
+         id="rect3879"
+         style="fill:#ffffcc;fill-opacity:1;stroke:#ffffcc;stroke-width:2.77959538;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         sodipodi:nodetypes="cccc"
+         id="path3637"
+         d="m -352.69154,1058.414 c -0.84832,-10.4606 73.32148,-10.3129 72.93384,0.4972 l 0.52095,0 0,0"
+         style="fill:none;stroke:#000000;stroke-width:2.54491471999999996;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         style="fill:none;stroke:#000000;stroke-width:2.54491471999999996;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+         d="m -352.69154,1041.914 c -0.84832,-10.4606 73.32148,-10.3129 72.93384,0.4972 l 0.52095,0 0,0"
+         id="path4391"
+         sodipodi:nodetypes="cccc" />
+      <path
+         transform="matrix(1.032667,0,0,0.85783357,-367.85581,1009.836)"
+         d="m 52.5,38 c 0,1.656854 -1.007359,3 -2.25,3 C 49.007359,41 48,39.656854 48,38 c 0,-1.656854 1.007359,-3 2.25,-3 1.242641,0 2.25,1.343146 2.25,3 z"
+         sodipodi:ry="3"
+         sodipodi:rx="2.25"
+         sodipodi:cy="38"
+         sodipodi:cx="50.25"
+         id="path4393"
+         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:2.50000000000000000;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+         sodipodi:type="arc" />
+      <path
+         sodipodi:type="arc"
+         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:2.50000000000000000;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+         id="path4395"
+         sodipodi:cx="50.25"
+         sodipodi:cy="38"
+         sodipodi:rx="2.25"
+         sodipodi:ry="3"
+         d="m 52.5,38 c 0,1.656854 -1.007359,3 -2.25,3 C 49.007359,41 48,39.656854 48,38 c 0,-1.656854 1.007359,-3 2.25,-3 1.242641,0 2.25,1.343146 2.25,3 z"
+         transform="matrix(0.67341665,0,0,0.92172914,-376.80348,1009.9079)" />
+      <path
+         transform="matrix(1.032667,0,0,0.85783357,-382.85581,1010.336)"
+         d="m 52.5,38 c 0,1.656854 -1.007359,3 -2.25,3 C 49.007359,41 48,39.656854 48,38 c 0,-1.656854 1.007359,-3 2.25,-3 1.242641,0 2.25,1.343146 2.25,3 z"
+         sodipodi:ry="3"
+         sodipodi:rx="2.25"
+         sodipodi:cy="38"
+         sodipodi:cx="50.25"
+         id="path4397"
+         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:2.50000000000000000;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+         sodipodi:type="arc" />
+      <path
+         sodipodi:type="arc"
+         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:2.50000000000000000;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+         id="path4399"
+         sodipodi:cx="50.25"
+         sodipodi:cy="38"
+         sodipodi:rx="2.25"
+         sodipodi:ry="3"
+         d="m 52.5,38 c 0,1.656854 -1.007359,3 -2.25,3 C 49.007359,41 48,39.656854 48,38 c 0,-1.656854 1.007359,-3 2.25,-3 1.242641,0 2.25,1.343146 2.25,3 z"
+         transform="matrix(1.032667,0,0,0.85783357,-353.35581,1010.336)" />
+      <path
+         transform="matrix(0.67341665,0,0,0.92172914,-322.80348,1009.908)"
+         d="m 52.5,38 c 0,1.656854 -1.007359,3 -2.25,3 C 49.007359,41 48,39.656854 48,38 c 0,-1.656854 1.007359,-3 2.25,-3 1.242641,0 2.25,1.343146 2.25,3 z"
+         sodipodi:ry="3"
+         sodipodi:rx="2.25"
+         sodipodi:cy="38"
+         sodipodi:cx="50.25"
+         id="path4401"
+         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:2.50000000000000000;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+         sodipodi:type="arc" />
+      <path
+         id="path4425"
+         d="m -352.71429,1041.4184 c 0,17.7805 0,17.7805 0,17.7805 l 0,0"
+         style="fill:none;stroke:#000000;stroke-width:2.48470926;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         id="path4429"
+         d="m -279.71429,1041.838 c 0,17.4414 0,17.4414 0,17.4414"
+         style="fill:none;stroke:#000000;stroke-width:2.65195179;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+    </g>
+  </g>
+</svg>
diff --git a/svg/WhiteLShield.svg b/svg/WhiteLShield.svg
new file mode 100644 (file)
index 0000000..b37f88f
--- /dev/null
@@ -0,0 +1,170 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="100"
+   height="100"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.47 r22583"
+   sodipodi:docname="WhiteLShield.svg">
+  <defs
+     id="defs4">
+    <marker
+       inkscape:stockid="Arrow2Lstart"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow2Lstart"
+       style="overflow:visible">
+      <path
+         id="path3648"
+         style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round"
+         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+         transform="scale(1.1) translate(1,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow2Lend"
+       style="overflow:visible;">
+      <path
+         id="path3651"
+         style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;"
+         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+         transform="scale(1.1) rotate(180) translate(1,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Lend"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow1Lend"
+       style="overflow:visible;">
+      <path
+         id="path3633"
+         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;"
+         transform="scale(0.8) rotate(180) translate(12.5,0)" />
+    </marker>
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       id="perspective10" />
+    <inkscape:perspective
+       id="perspective2824"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective2838"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="2"
+     inkscape:cx="52.657835"
+     inkscape:cy="23.437927"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     inkscape:window-width="792"
+     inkscape:window-height="583"
+     inkscape:window-x="62"
+     inkscape:window-y="24"
+     inkscape:window-maximized="0" />
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(366.71429,-981.93367)">
+    <g
+       id="g3621">
+      <path
+         transform="matrix(-0.82853394,0,0,0.86611144,-274.22532,989.39587)"
+         d="m 74.5,52 a 26.5,43.5 0 1 1 -53,0 26.5,43.5 0 1 1 53,0 z"
+         sodipodi:ry="43.5"
+         sodipodi:rx="26.5"
+         sodipodi:cy="52"
+         sodipodi:cx="48"
+         id="path2843"
+         style="fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:2.5;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+         sodipodi:type="arc" />
+      <path
+         transform="matrix(-0.90196078,0,0,0.92814371,-266.41652,977.03247)"
+         d="m 59,78 -1.6665,6.376488 4.308035,4.987752 -6.579378,0.385507 -3.412378,5.638485 L 49.25,89.25 42.833,87.747023 47.929233,83.56788 47.375686,77.000505 52.92511,80.555885 59,78 z"
+         inkscape:randomized="0"
+         inkscape:rounded="0"
+         inkscape:flatsided="false"
+         sodipodi:arg2="-0.2283871"
+         sodipodi:arg1="-0.85670563"
+         sodipodi:r2="4.962358"
+         sodipodi:r1="9.9247169"
+         sodipodi:cy="85.5"
+         sodipodi:cx="52.5"
+         sodipodi:sides="5"
+         id="path3621"
+         style="fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:2.5;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+         sodipodi:type="star" />
+      <path
+         sodipodi:type="star"
+         style="fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:2.5;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+         id="path3623"
+         sodipodi:sides="5"
+         sodipodi:cx="52.5"
+         sodipodi:cy="85.5"
+         sodipodi:r1="9.9247169"
+         sodipodi:r2="4.962358"
+         sodipodi:arg1="-0.85670563"
+         sodipodi:arg2="-0.2283871"
+         inkscape:flatsided="false"
+         inkscape:rounded="0"
+         inkscape:randomized="0"
+         d="m 59,78 -1.6665,6.376488 4.308035,4.987752 -6.579378,0.385507 -3.412378,5.638485 L 49.25,89.25 42.833,87.747023 47.929233,83.56788 47.375686,77.000505 52.92511,80.555885 59,78 z"
+         transform="matrix(0.90196078,0,0,-0.92814371,-360.74649,1091.1238)" />
+      <path
+         id="path3625"
+         d="m -280.30613,1074.8834 -68.34698,-84.36431"
+         style="fill:none;stroke:#000000;stroke-width:1.60083961;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:url(#Arrow2Lstart);marker-end:url(#Arrow2Lend)" />
+      <path
+         id="path4460"
+         d="m -286.24495,1067.9337 -55.5,-69.00003 56.5,69.50003"
+         style="fill:none;stroke:#000000;stroke-width:3.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+    </g>
+  </g>
+</svg>
diff --git a/svg/WhiteLeft.svg b/svg/WhiteLeft.svg
new file mode 100644 (file)
index 0000000..4c8e7df
--- /dev/null
@@ -0,0 +1,185 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.0"
+   width="100"
+   height="100"
+   id="svg2833"
+   inkscape:version="0.47 r22583"
+   sodipodi:docname="BlackLWheel.svg">
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="783"
+     inkscape:window-height="583"
+     id="namedview13"
+     showgrid="false"
+     inkscape:zoom="2.36"
+     inkscape:cx="50"
+     inkscape:cy="50"
+     inkscape:window-x="0"
+     inkscape:window-y="24"
+     inkscape:window-maximized="0"
+     inkscape:current-layer="svg2833" />
+  <defs
+     id="defs2835">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 50 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="100 : 50 : 1"
+       inkscape:persp3d-origin="50 : 33.333333 : 1"
+       id="perspective15" />
+  </defs>
+  <metadata
+     id="metadata2838">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="g3914">
+    <path
+       transform="matrix(-1,0,0,1,100,0)"
+       d="m 89.830509,52.966103 a 39.830509,39.830509 0 1 1 -79.661018,0 39.830509,39.830509 0 1 1 79.661018,0 z"
+       sodipodi:ry="39.830509"
+       sodipodi:rx="39.830509"
+       sodipodi:cy="52.966103"
+       sodipodi:cx="50"
+       id="path2996"
+       style="fill:#ffffcc;fill-opacity:1"
+       sodipodi:type="arc" />
+    <g
+       id="g3900">
+      <path
+         sodipodi:type="arc"
+         style="fill:#000000;fill-opacity:1"
+         id="path3000"
+         sodipodi:cx="51.271187"
+         sodipodi:cy="54.661018"
+         sodipodi:rx="28.38983"
+         sodipodi:ry="28.38983"
+         d="m 79.661016,54.661018 a 28.38983,28.38983 0 1 1 -56.779659,0 28.38983,28.38983 0 1 1 56.779659,0 z"
+         transform="matrix(-1,0,0,1,100.84746,-1.6949153)" />
+      <path
+         sodipodi:type="arc"
+         style="fill:#ffffcc;fill-opacity:0.94117647"
+         id="path3782"
+         sodipodi:cx="49.576271"
+         sodipodi:cy="53.81356"
+         sodipodi:rx="25.423729"
+         sodipodi:ry="25.423729"
+         d="m 75,53.81356 a 25.423729,25.423729 0 1 1 -50.847458,0 25.423729,25.423729 0 1 1 50.847458,0 z"
+         transform="matrix(-1,0,0,1,99.152542,-0.84745763)" />
+      <path
+         sodipodi:type="arc"
+         style="fill:#ffffcc;fill-opacity:1"
+         id="path3784"
+         sodipodi:cx="51.271187"
+         sodipodi:cy="54.237289"
+         sodipodi:rx="6.7796612"
+         sodipodi:ry="6.7796612"
+         d="m 58.050848,54.237289 a 6.7796612,6.7796612 0 1 1 -13.559322,0 6.7796612,6.7796612 0 1 1 13.559322,0 z"
+         transform="matrix(-1,0,0,1,101.27119,-1.2711864)" />
+      <path
+         style="fill:none;stroke:#ffffcc;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+         d="M 49.576271,52.542373 C 57.068828,42.654339 57.196706,33.899333 50,26.271186"
+         id="path3804"
+         sodipodi:nodetypes="cc" />
+      <use
+         x="0"
+         y="0"
+         xlink:href="#path3804"
+         id="use3808"
+         transform="matrix(-1,0,0,1,101.06126,26.694916)"
+         width="100"
+         height="100" />
+      <use
+         x="0"
+         y="0"
+         xlink:href="#use3808"
+         id="use3810"
+         transform="matrix(0,-1,1,0,-2.64734,103.7086)"
+         width="100"
+         height="100" />
+      <use
+         x="0"
+         y="0"
+         xlink:href="#use3810"
+         id="use3812"
+         transform="matrix(1,0,0,-1,-27.118644,105.93221)"
+         width="100"
+         height="100"
+         style="fill:#000000;stroke:#000000;stroke-opacity:1;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none" />
+      <use
+         x="0"
+         y="0"
+         xlink:href="#use3812"
+         id="use3814"
+         transform="matrix(0.70710678,0.70710678,-0.70710678,0.70710678,51.258092,-20.122385)"
+         width="100"
+         height="100" />
+      <use
+         x="0"
+         y="0"
+         xlink:href="#use3814"
+         id="use3816"
+         transform="matrix(1,0,0,-1,20.338983,86.37377)"
+         width="100"
+         height="100" />
+      <use
+         x="0"
+         y="0"
+         xlink:href="#use3816"
+         id="use3818"
+         transform="matrix(-1,0,0,1,119.34852,18.220339)"
+         width="100"
+         height="100"
+         style="fill:#000000" />
+      <use
+         x="0"
+         y="0"
+         xlink:href="#use3818"
+         id="use3820"
+         transform="matrix(1,0,0,-1,-19.067796,124.50936)"
+         width="100"
+         height="100"
+         style="fill:#000000" />
+      <path
+         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.84745765;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+         d="m 49.408565,77.911284 c -3.818473,-5.243047 -5.436213,-11.906062 -4.095989,-16.870226 0.610481,-2.261211 0.601939,-2.333595 -0.435994,-3.694395 l -1.058675,-1.387995 -2.024779,1.026033 c -3.924025,1.988454 -6.930877,6.434761 -8.340517,12.333329 -0.795232,3.327606 -1.009628,3.693707 -1.951447,3.332301 -0.507941,-0.194916 -0.620638,-0.642928 -0.456495,-1.814742 0.332482,-2.373568 1.792481,-6.664732 3.023356,-8.886113 1.42486,-2.571468 4.940556,-6.018087 7.159242,-7.018575 1.39057,-0.627059 1.783587,-1.052867 1.953441,-2.116422 0.257515,-1.612448 -0.341758,-2.169178 -3.271439,-3.0392 -4.775746,-1.418244 -9.620957,-0.51803 -13.826075,2.56881 -1.96981,1.445974 -2.222994,1.528217 -2.831451,0.919761 -0.608457,-0.608458 -0.542257,-0.774785 0.740332,-1.860097 5.106323,-4.32091 11.643708,-5.4535 17.903771,-3.101794 l 2.446694,0.919144 0.786718,-0.971556 c 0.707741,-0.874022 0.729428,-1.133936 0.216035,-2.589048 C 44.303287,42.70714 41.831326,39.5114 39.2614,37.795269 37.05634,36.322786 34.916511,35.6184 30.974576,35.067422 c -1.150128,-0.160758 -1.443842,-2.016575 -0.319157,-2.016575 2.030763,0 6.005395,1.031942 8.155979,2.117553 3.249265,1.640224 5.630525,4.160916 7.551005,7.993143 l 1.622068,3.236762 2.088273,-0.03332 2.088273,-0.03332 0.940372,-2.297184 c 1.907329,-4.65931 1.057136,-10.44155 -2.211191,-15.038523 -1.302052,-1.831365 -1.399305,-2.143016 -0.842497,-2.699824 0.556808,-0.556809 0.778839,-0.460069 1.923443,0.838049 4.011268,4.549259 5.226395,11.024757 3.200464,17.055504 l -1.10853,3.299847 1.061681,1.144975 c 0.583925,0.629737 1.061682,1.293145 1.061682,1.474241 0,0.647334 4.055991,-1.749568 5.669535,-3.350432 1.998607,-1.982899 4.15416,-6.312987 5.134914,-10.315043 0.476631,-1.944927 0.935546,-2.96869 1.330763,-2.96869 1.021258,0 1.139809,1.199641 0.41058,4.154689 -1.586169,6.427599 -5.062902,11.361854 -9.630231,13.667435 -2.156558,1.088626 -2.412738,1.362363 -2.574895,2.751355 -0.155403,1.331137 -0.03143,1.608781 0.904885,2.026606 0.596726,0.266284 2.896398,0.486174 5.110381,0.488644 4.360623,0.0049 6.503322,-0.703023 11.151284,-3.684079 1.871521,-1.200336 2.097474,-1.252742 2.719479,-0.630738 0.622004,0.622004 0.593241,0.749206 -0.346195,1.530948 -1.760136,1.464675 -6.501966,3.795175 -9.097577,4.471245 -3.29398,0.857973 -6.347293,0.817735 -9.371492,-0.123502 -2.404478,-0.748357 -2.50206,-0.747934 -3.304964,0.01434 -0.81957,0.7781 -0.81755,0.803569 0.215303,2.714376 1.500753,2.776434 3.59055,5.089159 5.733298,6.344893 2.011524,1.178832 5.612796,2.277595 7.491542,2.285705 0.95911,0.0042 1.165254,0.192432 1.165254,1.064351 0,1.283488 -0.552407,1.329318 -4.687209,0.388878 -5.016661,-1.141017 -9.162036,-4.465834 -11.456668,-9.188878 -0.953764,-1.963135 -1.0153,-2.005084 -2.941283,-2.005084 -1.916512,0 -1.97977,0.04216 -2.457938,1.638144 -1.1875,3.963521 -0.119209,9.144987 2.926693,14.195161 1.562167,2.59011 1.683485,2.976127 1.114236,3.545377 -0.569248,0.56925 -0.785654,0.437161 -1.987571,-1.213161 l 0,0 z"
+         id="path3894" />
+    </g>
+    <path
+       transform="matrix(1.0498008,0,0,1.0498008,-6.7053818,-2.8707203)"
+       d="m 91.101696,53.389832 a 37.288136,37.288136 0 1 1 -74.576271,0 37.288136,37.288136 0 1 1 74.576271,0 z"
+       sodipodi:ry="37.288136"
+       sodipodi:rx="37.288136"
+       sodipodi:cy="53.389832"
+       sodipodi:cx="53.81356"
+       id="path3898"
+       style="fill:#000000;fill-opacity:0;stroke:#000000;stroke-width:2.0003795;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       sodipodi:type="arc" />
+  </g>
+</svg>
index 62e318c..069f384 100644 (file)
@@ -14,7 +14,7 @@
    id="svg2"
    version="1.1"
    inkscape:version="0.47 r22583"
-   sodipodi:docname="WhiteKnight.svg">
+   sodipodi:docname="WhiteLeopard.svg">
   <defs
      id="defs4">
     <inkscape:perspective
      borderopacity="1.0"
      inkscape:pageopacity="0.0"
      inkscape:pageshadow="2"
-     inkscape:zoom="5.6"
-     inkscape:cx="48.583075"
-     inkscape:cy="56.642455"
+     inkscape:zoom="0.98994949"
+     inkscape:cx="246.14185"
+     inkscape:cy="-2.6387301"
      inkscape:document-units="px"
      inkscape:current-layer="layer1"
      showgrid="false"
      inkscape:window-width="792"
-     inkscape:window-height="678"
+     inkscape:window-height="583"
      inkscape:window-x="62"
-     inkscape:window-y="25"
+     inkscape:window-y="24"
      inkscape:window-maximized="0" />
   <metadata
      id="metadata7">
      id="layer1"
      transform="translate(366.71429,-981.93367)">
     <g
-       id="g2853"
-       transform="matrix(0.86365412,0,0,0.86365412,-43.631762,139.94886)">
+       id="g3625">
       <path
          sodipodi:nodetypes="cccccccccccccccccccccccccccccccccccccccccccccccccccccc"
          id="path2844"
-         d="m -315.51293,998.27067 11.63134,1.59646 9.12262,4.33327 1.82452,-4.33327 3.87712,-4.10518 3.64904,-1.36839 5.70164,-0.45613 2.73679,3.19292 0.45613,5.24555 -1.82453,4.3332 -1.82452,3.1929 -3.64905,1.3684 1.59646,3.421 -1.14033,3.1929 -1.36839,1.5965 1.59646,6.8419 0.68419,5.2455 -0.45613,6.1578 -1.82452,5.7016 -3.42098,6.3859 -4.56131,4.1051 -3.87711,0.2281 -4.10518,2.5087 -1.14033,5.7017 -1.59646,7.7542 -4.33324,4.5613 -4.78937,1.8245 -5.01745,-0.228 -5.9297,-3.6491 -2.73678,-2.9648 0.45613,-3.421 -2.05259,-4.1052 -2.05259,-4.7894 -0.91226,-2.7368 -4.78938,-4.5613 -5.01744,-3.1929 -4.78937,-6.8419 0,-8.4385 0.91226,-6.8419 1.59646,-5.9297 -2.96485,-3.6491 -0.22807,-6.1577 -2.73678,-3.6491 -1.14033,-4.7894 1.82452,-5.70161 2.28066,-3.19291 2.05259,0.68419 3.42098,3.19292 3.64905,4.33324 1.14032,2.73677 2.96486,0.6842 4.78937,-3.1929 6.6139,-1.36839 5.70163,-0.45614 z"
-         style="fill:#ffffff;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+         d="m -316.1258,1002.1094 10.04545,1.3788 7.87879,3.7425 1.57575,-3.7425 3.34849,-3.54543 3.15151,-1.18182 4.92425,-0.39393 2.36364,2.75758 0.39394,4.5303 -1.57577,3.7424 -1.57575,2.7576 -3.15152,1.1818 1.37879,2.9546 -0.98485,2.7575 -1.18182,1.3789 1.37879,5.909 0.59091,4.5303 -0.39394,5.3182 -1.57576,4.9242 -2.95454,5.5152 -3.93939,3.5454 -3.34849,0.197 -3.54545,2.1666 -0.98485,4.9243 -1.37879,6.697 -3.74242,3.9394 -4.13636,1.5757 -4.33334,-0.1969 -5.12121,-3.1516 -2.36363,-2.5605 0.39394,-2.9546 -1.77273,-3.5455 -1.77273,-4.1363 -0.78788,-2.3637 -4.13636,-3.9394 -4.33334,-2.7575 -4.13636,-5.9091 0,-7.2879 0.78788,-5.909 1.37879,-5.1213 -2.56061,-3.1515 -0.19697,-5.3181 -2.36363,-3.1516 -0.98485,-4.1364 1.57575,-4.92421 1.9697,-2.75757 1.77273,0.59091 2.95455,2.75758 3.15151,3.74239 0.98485,2.3636 2.56061,0.591 4.13636,-2.7576 5.71212,-1.1818 4.92424,-0.394 z"
+         style="fill:#ffffcc;stroke:#000000;stroke-width:1.72730826999999998;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;fill-opacity:1" />
       <path
          sodipodi:nodetypes="ccccccccc"
          id="path2846"
-         d="m -297.03962,1022.4456 -6.6634,0.3076 -1.54696,0.8628 -5.2261,5.0368 4.18476,-2.0826 4.64089,0.5358 2.42914,-1.0113 0.81327,-3.193 1.3684,-0.4561 z"
-         style="fill:#000000;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+         d="m -300.17125,1022.9882 -5.75488,0.2657 -1.33603,0.7451 -4.51355,4.3501 3.61419,-1.7987 4.00812,0.4628 2.09794,-0.8734 0.70238,-2.7577 1.18183,-0.3939 z"
+         style="fill:#000000;stroke:#000000;stroke-width:1.72730827;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
       <path
          sodipodi:nodetypes="ccccccccccc"
          id="path2848"
-         d="m -335.35462,1021.9895 6.6139,0.5357 2.78628,1.3684 2.23116,3.3414 -3.06384,0.099 -3.09393,0.049 -2.02249,-1.0414 -1.04135,-1.5664 -0.35714,-2.102 1.65663,0.1786 -3.70922,-0.8628 z"
-         style="fill:#000000;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+         d="m -333.26216,1022.5943 5.71212,0.4627 2.40638,1.1818 1.92695,2.8858 -2.64609,0.085 -2.67209,0.042 -1.74673,-0.8994 -0.89937,-1.3528 -0.30844,-1.8154 1.43075,0.1542 -3.20348,-0.7451 z"
+         style="fill:#000000;stroke:#000000;stroke-width:1.72730827;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
       <path
          sodipodi:nodetypes="cccccccccc"
          id="path2850"
-         d="m -316.47468,1041.6827 3.74804,-1.1898 1.64595,1.0908 -1.59646,3.7675 -2.15158,2.7368 -2.40973,0.049 -2.52813,-2.6572 -1.77503,-3.8771 1.18982,-1.1898 3.87712,1.2694 z"
-         style="fill:#000000;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+         d="m -316.95642,1039.6024 3.23701,-1.0276 1.42153,0.9421 -1.37879,3.2538 -1.85822,2.3637 -2.08118,0.042 -2.18342,-2.2949 -1.53302,-3.3485 1.0276,-1.0276 3.34849,1.0964 z"
+         style="fill:#000000;stroke:#000000;stroke-width:1.72730827;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
       <path
          sodipodi:nodetypes="ccccccccccccccccccccc"
          id="path2852"
-         d="m -315.642,1050.9344 3.50928,0.9811 4.17435,0.9479 3.62065,-0.01 c 0.74016,-0.5709 1.30175,-0.1746 1.68476,-0.6346 l -1.66536,7.8725 -0.73369,2.7669 -0.86277,4.3031 -1.98369,1.547 -3.91591,0.4561 -5.89962,0.099 -2.96485,-0.9619 -1.81383,-1.9041 -1.17043,-2.726 -1.38779,-3.9267 -2.76688,-6.1082 2.26997,0.2775 5.24551,-1.5964 4.6603,-1.3878 0,-10e-5 0,10e-5 z"
-         style="fill:#000000;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+         d="m -316.23728,1047.5927 3.03081,0.8473 3.60519,0.8187 3.12699,-0.01 c 0.63924,-0.493 1.12426,-0.1508 1.45505,-0.548 l -1.43829,6.7991 -0.63366,2.3896 -0.74513,3.7164 -1.71322,1.3361 -3.382,0.3939 -5.09523,0.086 -2.5606,-0.8307 -1.56652,-1.6445 -1.01085,-2.3544 -1.19857,-3.3913 -2.38963,-5.2753 1.96047,0.2396 4.53031,-1.3787 4.02488,-1.1986 0,-10e-5 0,10e-5 z"
+         style="fill:#000000;stroke:#000000;stroke-width:1.72730827;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
       <path
          sodipodi:nodetypes="ccccc"
          id="path2854"
-         d="m -304.76376,1053.2151 -3.3026,9.9767 -1.72553,-10.7405 5.38527,0.9429 -0.35714,-0.1791 z"
-         style="fill:#ffffff;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+         d="m -306.84224,1049.5624 -2.8523,8.6164 -1.49026,-9.276 4.65101,0.8143 -0.30845,-0.1547 z"
+         style="fill:#ffffff;stroke:#000000;stroke-width:1.72730827;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
       <path
          sodipodi:nodetypes="ccccc"
          id="path2856"
-         d="m -320.19263,1052.5997 -2.13217,10.0068 -2.21175,-3.4617 -0.81328,-5.0971 5.1572,-1.448 z"
-         style="fill:#ffffff;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+         d="m -320.16745,1049.0309 -1.84145,8.6424 -1.91019,-2.9897 -0.70239,-4.4021 4.45403,-1.2506 z"
+         style="fill:#ffffff;stroke:#000000;stroke-width:1.72730827;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
       <path
          sodipodi:nodetypes="ccccccccc"
          id="path2858"
-         d="m -308.23424,1068.4159 c 1.22995,-0.8464 1.98419,-1.8111 2.08268,-2.7174 l 1.07144,-5.1767 c -1.20342,1.0414 -2.22826,2.2613 -3.43167,3.3027 l -1.39849,0.5852 c -0.91365,-0.8155 -3.17893,-0.7127 -2.39033,-1.9537 l -0.55511,3.6297 1.67604,2.5883 2.94544,-0.2581 z"
-         style="fill:#ffffff;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+         d="m -309.83953,1062.6907 c 1.06225,-0.731 1.71365,-1.5642 1.79871,-2.3469 l 0.92536,-4.4709 c -1.03934,0.8994 -1.92445,1.953 -2.96378,2.8524 l -1.20781,0.5054 c -0.78908,-0.7043 -2.7455,-0.6155 -2.06442,-1.6873 l -0.47942,3.1348 1.44752,2.2354 2.54384,-0.2229 z"
+         style="fill:#ffffff;stroke:#000000;stroke-width:1.72730827;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
       <path
          sodipodi:nodetypes="ccccccccc"
          id="path2860"
-         d="m -316.72215,1062.1484 -2.43982,1.8051 -0.91227,0 -2.81636,-2.0332 -0.0796,3.5802 2.16226,2.6679 2.73679,0.7336 1.98369,-2.231 -0.6347,-4.5226 z"
-         style="fill:#ffffff;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+         d="m -317.17015,1057.2777 -2.10716,1.559 -0.78789,0 -2.43236,-1.756 -0.0687,3.0921 1.86745,2.3041 2.36364,0.6336 1.71322,-1.9268 -0.54816,-3.906 z"
+         style="fill:#ffffff;stroke:#000000;stroke-width:1.72730827;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
       <path
          sodipodi:nodetypes="cccccccccc"
          id="path2862"
-         d="m -291.33799,1006.253 1.64596,-4.6303 3.79752,-3.93723 5.09703,-0.0796 1.09083,3.40163 -1.21991,4.1546 -1.41788,2.5583 -3.06385,1.0413 -3.87711,-0.2281 -2.05259,-2.2806 z"
-         style="fill:#000000;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+         d="m -295.24702,1009.0034 1.42154,-3.999 3.27975,-3.4004 4.40207,-0.069 0.9421,2.9378 -1.05358,3.5881 -1.22456,2.2095 -2.64611,0.8994 -3.34848,-0.197 -1.77273,-1.9697 z"
+         style="fill:#000000;stroke:#000000;stroke-width:1.72730827;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
       <path
          sodipodi:nodetypes="cccccccccc"
          id="path2864"
-         d="m -344.47724,996.21809 3.47048,3.09392 2.05259,2.80569 0.6347,4.1353 -3.19292,1.8245 -2.78628,-1.9041 -2.37964,-3.7975 0,-2.75624 1.23931,-3.04443 0.96176,-0.35714 z"
-         style="fill:#000000;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+         d="m -341.14095,1000.3367 2.99729,2.6721 1.77273,2.4231 0.54816,3.5715 -2.75757,1.5757 -2.40639,-1.6444 -2.05518,-3.2798 0,-2.3804 1.07033,-2.6293 0.83063,-0.3085 z"
+         style="fill:#000000;stroke:#000000;stroke-width:1.72730827;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
       <path
          id="path2866"
-         d="m -301.829,1037.726 14.36813,-10.7191 11.63133,-7.2981 6.6139,-5.2455"
-         style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+         d="m -304.30762,1036.1852 12.40909,-9.2576 10.04545,-6.303 5.71212,-4.5303"
+         style="fill:none;stroke:#000000;stroke-width:1.72730827;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
       <path
          id="path2868"
-         d="m -301.60093,1040.9189 14.14006,-4.1052 10.03488,-1.1403 10.491,0 2.50873,0.6842"
-         style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+         d="m -304.11065,1038.9428 12.21212,-3.5455 8.66667,-0.9848 9.06059,0 2.16668,0.5909"
+         style="fill:none;stroke:#000000;stroke-width:1.72730827;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
       <path
          id="path2870"
-         d="m -300.68867,1045.0241 10.26294,-2.7368 10.26295,-0.9123 6.84196,0.6842 10.03488,2.0526"
-         style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+         d="m -303.32277,1042.4882 8.86363,-2.3636 8.86364,-0.7879 5.90909,0.5909 8.66666,1.7727"
+         style="fill:none;stroke:#000000;stroke-width:1.72730827;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
       <path
          id="path2872"
-         d="m -301.829,1047.7609 10.03488,0.6842 8.43842,3.8771"
-         style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+         d="m -304.30762,1044.8519 8.66666,0.5909 7.28788,3.3485"
+         style="fill:none;stroke:#000000;stroke-width:1.72730827;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
       <path
          id="path2874"
-         d="m -331.70557,1039.5505 -10.26295,-5.0174 -7.75422,-2.9649 -8.66649,-1.3684 -10.03488,-0.4561"
-         style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+         d="m -330.11064,1037.7609 -8.86364,-4.3333 -6.69697,-2.5606 -7.48485,-1.1818 -8.66666,-0.394"
+         style="fill:none;stroke:#000000;stroke-width:1.72730827;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
       <path
          id="path2876"
-         d="m -332.1617,1043.1996 -13.912,-2.0526 -9.12262,0.228 -12.31553,3.8772 -9.12262,4.3332"
-         style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+         d="m -330.50458,1040.9125 -12.01516,-1.7727 -7.87879,0.1969 -10.63636,3.3485 -7.87878,3.7424"
+         style="fill:none;stroke:#000000;stroke-width:1.72730827;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
       <path
          id="path2878"
-         d="m -332.38977,1046.8486 -7.29809,0.9123 -10.03488,3.649 -8.66649,4.5613 c 0,0 -4.33325,3.8771 -5.24551,3.6491"
-         style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+         d="m -330.70156,1044.064 -6.30302,0.7879 -8.66667,3.1515 -7.48485,3.9393 c 0,0 -3.74243,3.3485 -4.5303,3.1516"
+         style="fill:none;stroke:#000000;stroke-width:1.72730827;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
       <path
          id="path2880"
-         d="m -327.6004,1049.5854 -6.61389,2.7368 -6.84197,4.1052 -4.78937,4.5613"
-         style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+         d="m -326.5652,1046.4276 -5.71211,2.3637 -5.9091,3.5454 -4.13636,3.9394"
+         style="fill:none;stroke:#000000;stroke-width:1.72730827;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
     </g>
   </g>
 </svg>
index e5af5af..e959c70 100644 (file)
@@ -14,7 +14,7 @@
    id="svg3738"
    version="1.1"
    inkscape:version="0.47 r22583"
-   sodipodi:docname="WhiteQueen.svg">
+   sodipodi:docname="WhiteLion.svg">
   <defs
      id="defs3740">
     <inkscape:perspective
      inkscape:pageopacity="0.0"
      inkscape:pageshadow="2"
      inkscape:zoom="2.8"
-     inkscape:cx="64.212367"
-     inkscape:cy="62.923419"
+     inkscape:cx="104.93845"
+     inkscape:cy="49.899824"
      inkscape:document-units="px"
      inkscape:current-layer="layer1"
      showgrid="false"
      inkscape:window-width="716"
-     inkscape:window-height="487"
+     inkscape:window-height="504"
      inkscape:window-x="3"
      inkscape:window-y="71"
      inkscape:window-maximized="0"
      id="layer1"
      transform="translate(0.17142614,-953.2193)">
     <g
-       id="g4531"
-       transform="matrix(0.97053726,0,0,0.97053726,1.9949493,30.030726)">
+       id="g3626">
       <path
          id="path3888"
-         d="m 18.200002,987.30504 2.742858,-6.85715 -1.828571,-4.11428 5.942856,-8.22857 9.142858,-6.4 12.342857,-0.45715 2.285714,-7.31428 7.771429,0 7.314286,4.11428 10.971427,1.82858 -1.371427,5.94285 11.885713,3.2 -1.371428,4.57143 6.857142,6.85714 -2.285713,2.28572 7.314286,10.97143 -2.742858,2.74285 4.571429,10.05711 -0.457144,6.4 0,11.4286 -6.4,-8.2286 0.457144,16.9143 -2.285715,3.2 -6.4,-5.9428 0,9.1428 -5.028571,3.6572 0.914286,-10.0572 -7.314286,12.3429 -4.114285,-5.0286 -4.571429,10.5143 -10.514286,1.3714 -10.057143,-1.3714 -8.685715,-6.8571 -4.571427,-2.2858 -10.971429,6.8572 -0.457144,-12.8 -2.285713,-7.7714 -3.2,2.7428 -5.0285719,-4.1143 0.9142856,-9.1428 -2.2857142,-4.1143 0.9142858,-5.4857 -5.0285716,-3.6572 1.3714287,-3.6571 15.5428566,-13.25716 z"
-         style="fill:#f9f9f9;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+         d="m 19.658729,988.24705 2.662046,-6.65512 -1.774696,-3.99306 5.767763,-7.98613 8.873485,-6.21144 11.979202,-0.44368 2.218371,-7.09878 7.542461,0 7.098787,3.99306 10.648179,1.77471 -1.331021,5.76775 11.535527,3.10572 -1.331022,4.43674 6.655112,6.65511 -2.21837,2.21838 7.098788,10.64818 -2.662046,2.66204 4.436742,9.76077 -0.443675,6.2115 0,11.0919 -6.211439,-7.9862 0.443675,16.4159 -2.218371,3.1058 -6.211439,-5.7677 0,8.8734 -4.880415,3.5494 0.887348,-9.7609 -7.098787,11.9793 -3.993067,-4.8805 -4.436742,10.2046 -10.204506,1.331 -9.760832,-1.331 -8.42981,-6.6551 -4.43674,-2.2185 -10.648181,6.6552 -0.443675,-12.4229 -2.21837,-7.5424 -3.105719,2.662 -4.8804165,-3.9931 0.8873482,-8.8734 -2.2183708,-3.9931 0.8873485,-5.3241 -4.8804161,-3.5494 1.3310226,-3.5494 15.0849211,-12.86655 z"
+         style="fill:#ffffcc;stroke:#000000;stroke-width:1.94107449000000010;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;fill-opacity:1" />
       <path
          sodipodi:nodetypes="ccccccc"
          id="path3890"
-         d="m 36.94286,989.59075 -8.685715,-1.82857 3.657144,1.37143 -5.485715,4.57143 5.485715,-2.74286 3.857141,0.2 1.17143,-1.57143 z"
-         style="fill:#000000;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+         d="m 37.849371,990.46542 -8.42981,-1.77469 3.549395,1.33102 -5.324091,4.43674 5.324091,-2.66205 3.743499,0.19411 1.136916,-1.52513 z"
+         style="fill:#000000;stroke:#000000;stroke-width:1.94107449;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
       <path
          id="path3892"
-         d="m 59.34286,988.21932 0,-6.4 -0.457144,-7.77143 -1.828571,-5.02857 -3.2,-2.28571 -6.857143,0.91428 -3.657142,4.11429 -1.828571,3.65714"
-         style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+         d="m 59.589406,989.1344 0,-6.21144 -0.443675,-7.54246 -1.774697,-4.88042 -3.105719,-2.21837 -6.655113,0.88735 -3.549392,3.99307 -1.774696,3.54939"
+         style="fill:none;stroke:#000000;stroke-width:1.94107449;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
       <path
          id="path3894"
-         d="m 54.771431,984.10504 -0.914286,-4.57143 -2.742856,-3.65714 -3.2,0 -1.828573,4.11428 0,0 0.914286,0.45714 -0.914286,-0.45714"
-         style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+         d="m 55.152664,985.14134 -0.887349,-4.43675 -2.662044,-3.54939 -3.105719,0 -1.774698,3.99306 0,0 0.887348,0.44367 -0.887348,-0.44367"
+         style="fill:none;stroke:#000000;stroke-width:1.94107449;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
       <path
          id="path3896"
-         d="m 12.714289,1003.7622 0,0 z"
-         style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+         d="m 14.334641,1004.2193 0,0 z"
+         style="fill:none;stroke:#000000;stroke-width:1.94107449;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
       <path
          sodipodi:nodetypes="cc"
          id="path3898"
-         d="M 11.471431,1004.3764 0.82857386,1002.8479"
-         style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+         d="M 13.128401,1004.8154 2.7991111,1003.332"
+         style="fill:none;stroke:#000000;stroke-width:1.94107449;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
       <path
          id="path3900"
-         d="m 6.3142883,1010.1622 2.2857142,-2.7429 2.2857135,-0.4571 0.457144,-2.7429 0,0"
-         style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+         d="m 8.1232014,1010.4308 2.2183706,-2.6621 2.21837,-0.4436 0.443676,-2.6621 0,0"
+         style="fill:none;stroke:#000000;stroke-width:1.94107449;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
       <path
          id="path3902"
-         d="m 6.3142883,1017.4765 3.2000006,-0.9143 3.6571421,4.1143 4.571429,0 6.4,2.2857 5.028571,0.4571 0.457143,0 0,0.4572"
-         style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+         d="m 8.1232014,1017.5296 3.1057196,-0.8874 3.549393,3.9931 4.436742,0 6.211438,2.2184 4.880416,0.4436 0.443674,0 0,0.4437"
+         style="fill:none;stroke:#000000;stroke-width:1.94107449;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
       <path
          id="path3904"
-         d="m 43.34286,1003.305 -0.457144,8.6858 -3.657142,6.4 -0.914285,7.3142 -5.485715,6.4 -4.114285,6.8572"
-         style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+         d="m 44.06081,1003.7756 -0.443675,8.4299 -3.549393,6.2114 -0.887348,7.0987 -5.32409,6.2115 -3.993067,6.6552"
+         style="fill:none;stroke:#000000;stroke-width:1.94107449;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
       <path
          id="path3906"
-         d="m 72.600003,997.36218 -3.200001,13.71432 -5.942857,10.9714 -6.857142,8.6857 -5.028572,13.7143"
-         style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+         d="m 72.455957,998.00788 -3.10572,13.31022 -5.767764,10.6482 -6.655112,8.4298 -4.880416,13.3102"
+         style="fill:none;stroke:#000000;stroke-width:1.94107449;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
       <path
          sodipodi:nodetypes="cccccc"
          id="path3908"
-         d="m 66.557145,1040.7193 -0.357143,-7.2428 4.114287,-9.1429 4.571427,-10.0571 2.285715,-10.9715 -0.457142,-7.31425"
-         style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+         d="m 66.591138,1040.0876 -0.34662,-7.0294 3.993069,-8.8735 4.43674,-9.7608 2.218371,-10.6483 -0.443673,-7.09874"
+         style="fill:none;stroke:#000000;stroke-width:1.94107449;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
       <path
          id="path3910"
-         d="m 80.371431,996.44789 0,7.31431 0,5.4857 0.914285,7.7714 -4.571427,6.8572 -2.742858,5.4857 -1.371428,6.4"
-         style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+         d="m 79.998418,997.12053 0,7.09877 0,5.3241 0.887347,7.5425 -4.43674,6.6551 -2.662046,5.3241 -1.331022,6.2114"
+         style="fill:none;stroke:#000000;stroke-width:1.94107449;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
       <path
          sodipodi:nodetypes="ccccc"
          id="path3912"
-         d="m 72.14286,976.79075 6.857143,7.31429 8.228571,5.94285 -0.1,20.97141 3.185714,4.0572"
-         style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+         d="m 72.012283,978.04254 6.655113,7.0988 7.986135,5.76775 -0.09705,20.35351 3.091854,3.9377"
+         style="fill:none;stroke:#000000;stroke-width:1.94107449;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
       <path
          id="path3914"
-         d="m 72.14286,971.30504 7.771429,0.91428 5.028571,2.74286 0,0"
-         style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+         d="m 72.012283,972.71846 7.542461,0.88734 4.880416,2.66205 0,0"
+         style="fill:none;stroke:#000000;stroke-width:1.94107449;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
       <path
          sodipodi:nodetypes="ccc"
          id="path3916"
-         d="m 19.114289,986.99075 11.885713,-8.37143 4.571429,-2.74285"
-         style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+         d="m 20.546079,987.94202 11.535527,-8.12478 4.436742,-2.66204"
+         style="fill:none;stroke:#000000;stroke-width:1.94107449;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
       <path
-         transform="translate(-0.17142614,952.93361)"
          id="path4508"
-         d="m 14.642857,58.142833 c 8.571429,-1.785714 8.214286,-1.785714 8.214286,-1.785714"
-         style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+         d="m 16.040012,1011.3181 c 8.318891,-1.7331 7.972271,-1.7331 7.972271,-1.7331"
+         style="fill:none;stroke:#000000;stroke-width:1.94107449;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
       <path
-         transform="translate(-0.17142614,952.93361)"
          id="path4510"
-         d="M 15.357143,60.999976 C 27.142857,60.642833 27.142857,60.642833 27.142857,60.642833"
-         style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+         d="m 16.733253,1014.091 c 11.438475,-0.3466 11.438475,-0.3466 11.438475,-0.3466"
+         style="fill:none;stroke:#000000;stroke-width:1.94107449;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
       <path
          id="path4512"
-         d="m 15.542859,1016.4336 c 11.071429,4.2857 11.071429,4.2857 11.071429,4.2857"
-         style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+         d="m 17.079873,1016.5174 c 10.745234,4.1594 10.745234,4.1594 10.745234,4.1594"
+         style="fill:none;stroke:#000000;stroke-width:1.94107449;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
     </g>
   </g>
 </svg>
diff --git a/svg/WhitePegasus.svg b/svg/WhitePegasus.svg
new file mode 100644 (file)
index 0000000..b0175ef
--- /dev/null
@@ -0,0 +1,112 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.0"
+   width="100"
+   height="100"
+   id="svg2833"
+   inkscape:version="0.47 r22583"
+   sodipodi:docname="WhitePegasus.svg">
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="640"
+     inkscape:window-height="504"
+     id="namedview11"
+     showgrid="false"
+     inkscape:zoom="2.36"
+     inkscape:cx="51.30464"
+     inkscape:cy="40.036647"
+     inkscape:window-x="0"
+     inkscape:window-y="24"
+     inkscape:window-maximized="0"
+     inkscape:current-layer="svg2833" />
+  <defs
+     id="defs2835">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 50 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="100 : 50 : 1"
+       inkscape:persp3d-origin="50 : 33.333333 : 1"
+       id="perspective13" />
+  </defs>
+  <metadata
+     id="metadata2838">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="g3608">
+    <g
+       id="layer1"
+       transform="matrix(-0.8,0,0,0.8,155.55044,-25.041921)">
+      <g
+         style="display:inline"
+         id="g4602"
+         transform="matrix(1.3645649,0,0,1.3439387,-220.19479,70.376866)">
+        <path
+           style="opacity:0.98999999;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.54904515px;stroke-opacity:1"
+           id="path4350"
+           inkscape:connector-curvature="0"
+           d="m 238.21185,-1.7155471 2.55401,0.0595 c -0.11306,-2.7134211 4.44555,-7.1531665 4.44555,-7.1531665 0,0 2.6311,2.9526263 3.05622,7.1168654 5.9381,-0.2374968 11.03878,2.8990232 13.00056,4.1073952 12.42868,7.655546 17.29364,32.448756 17.26817,51.469126 l -44.90277,-0.141002 c -0.20729,-13.073379 15.56269,-17.974522 15.10098,-30.390825 -3.98486,3.099334 -8.42701,3.94292 -11.94512,6.90514 -2.79351,2.352109 -4.23289,5.107136 -7.01819,8.412488 -1.02679,1.218501 -3.76823,0.678355 -4.65375,-1.092696 -4.42762,1.32829 -8.68213,0.01778 -8.58207,-6.302259 0.0886,-5.594944 5.71512,-10.651222 7.64949,-15.901883 0.8339,-2.263527 0.71728,-5.7619951 2.03476,-8.280479 1.02298,-1.9555369 3.32544,-4.2204556 4.38056,-4.9644989 0.81951,-2.78858391 0.63978,-7.5122594 -0.71693,-9.3212068 1.97854,-0.5652961 6.51958,2.1987846 8.32853,5.4775016 z" />
+        <path
+           style="opacity:0.98999999;fill:#ffffcc;fill-opacity:1;stroke:#fdfdca;stroke-width:0.54904515px;stroke-opacity:1"
+           id="path4352"
+           inkscape:connector-curvature="0"
+           d="m 242.81689,-0.58069936 c -0.072,0.79486254 -0.32711,1.42135025 -0.73002,2.28035536 -2.11721,4.5138671 -1.19455,-0.1716813 -1.14905,-1.19710158 -1.50976,0.47874748 -4.00517,2.26532638 -5.07373,3.22990388 0.2262,-0.822523 1.59457,-2.91401608 1.19879,-4.37258378 -0.53461,-1.97018662 -2.39735,-3.30685752 -4.38274,-4.27768712 0.61573,2.305974 0.97448,5.12831401 -0.52388,8.1053126 -0.963,1.1263746 -1.94758,1.992982 -2.75,3.125 -0.68313,0.9637262 -1.34296,1.9556425 -1.73503,3.090079 -0.83217,1.95126 -0.86757,4.102469 -1.47299,6.117007 -1.0152,3.389738 -2.8013,6.466007 -4.8023,9.361167 -1.33288,2.142142 -2.90703,4.397401 -2.85563,7.031336 0.074,1.299767 0.66114,2.59601 1.56989,3.430555 1.07494,0.869977 2.59231,0.82959 3.80468,0.430633 1.76617,-0.581196 3.02202,-3.3374 4.47311,-5.629934 0.0475,0.474451 -0.10089,1.848603 -0.28033,3.228551 -0.22412,1.723516 -0.4967,3.456074 -0.4967,3.456074 3.78439,-2.467212 6.29028,-7.057025 10.07655,-9.827968 2.63561,-1.928841 6.46629,-2.181126 8.64217,-4.616774 2.70726,-3.030455 3.36645,-3.372936 4.50035,-11.329732 1.23577,7.754431 0.26208,17.297222 -3.06808,22.364697 -0.94356,1.435812 -2.64098,3.136326 -3.94944,4.706809 -2.35937,2.831831 -5.02065,5.234162 -6.63424,8.423218 -0.82438,1.629293 -1.38054,3.845243 -1.45951,5.27993 13.88505,0.05216 27.62654,-0.03393 39.71316,0 0.13389,-5.249005 -0.48174,-10.005913 -1.26011,-14.943931 -0.75657,-4.799697 -1.81449,-9.572366 -3.30276,-14.197788 -1.25479,-3.899783 -2.30537,-8.037609 -4.71838,-11.348224 -3.01163,-4.1319023 -7.09257,-7.6856654 -11.68081,-9.9418973 -1.89015,-0.92946742 -3.84424,-1.22768185 -5.87614,-1.42411251 -0.67664,2.63979221 -1.13781,0.36144826 -1.51273,-0.14218972 -1.03671,-1.94459497 -1.88857,-2.71395277 -2.04236,-4.94441567 -1.31768,1.7707756 -2.11286,3.3322909 -2.22174,4.53371084 z" />
+        <path
+           style="opacity:0.98999999;fill:#000000;fill-opacity:1"
+           id="path4348"
+           inkscape:connector-curvature="0"
+           d="m 221.53873,32.85876 c 2.61354,-0.122981 3.81785,-5.736082 1.16227,-5.663706 -2.93332,0.07995 -3.41743,5.769824 -1.16227,5.663706 z" />
+        <path
+           style="opacity:0.98999999;fill:#000000;fill-opacity:1"
+           id="path4340"
+           inkscape:connector-curvature="0"
+           d="m 230.75067,14.108964 0.88552,-2.213813 c 2.65658,0.442761 3.98486,-0.885522 3.5421,-3.5421016 l 2.21381,-0.442761 0,-0.442761 c -3.98486,-0.885529 -7.52696,2.6565726 -6.64143,6.6414366 z" />
+      </g>
+    </g>
+    <path
+       sodipodi:nodetypes="ccccccccccccc"
+       id="path2819"
+       d="M 44.534967,78.846533 C 46.93191,72.486437 49.865727,58.85879 46.907849,49.355008 44.812882,42.088752 41.147515,36.547395 35.721408,31.388907 33.109157,28.477816 27.712029,25.034782 24.195984,23.931279 19.260064,22.200533 17.03884,21.822886 10.29768,21.897381 c -7.635528,2.315823 -5.875104,5.258043 0,8.474576 -6.187216,2.59887 -7.198328,6.553673 1.016952,9.152542 -6.3848,3.765177 -4.896864,7.645983 2.033888,8.474576 -4.06516,4.570711 -6.204944,8.252783 1.355936,7.457628 3.62856,1.349562 5.006272,2.129633 8.474578,5.423729 2.895052,3.498831 5.345164,8.3042 5.42373,12.542372 l 0.338983,14.915255 15.59322,-9.491526 z"
+       style="fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:1.75999999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+    <path
+       sodipodi:nodetypes="cc"
+       id="path2830"
+       d="m 13.559322,48.305085 c 8.361599,-0.900435 16.346724,4.154766 20.338983,14.40678"
+       style="fill:none;stroke:#000000;stroke-width:2.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" />
+    <path
+       sodipodi:nodetypes="cc"
+       id="path2832"
+       d="M 11.440678,39.40678 C 20.821441,39.159238 28.6278,41.815603 34.322034,50"
+       style="fill:none;stroke:#000000;stroke-width:2.20000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+    <path
+       sodipodi:nodetypes="cc"
+       id="path2834"
+       d="m 10.169491,30.508475 c 7.92937,-0.624989 16.380331,1.911593 22.033899,8.050847"
+       style="fill:none;stroke:#000000;stroke-width:2.20000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+  </g>
+</svg>
index 09fe10a..5ff2149 100644 (file)
@@ -14,7 +14,7 @@
    id="svg2"
    version="1.1"
    inkscape:version="0.47 r22583"
-   sodipodi:docname="WhiteHSword.svg">
+   sodipodi:docname="WhitePromoHSword.svg">
   <defs
      id="defs4">
     <inkscape:perspective
      inkscape:pageshadow="2"
      inkscape:zoom="5.6"
      inkscape:cx="53.102954"
-     inkscape:cy="37.188247"
+     inkscape:cy="41.158463"
      inkscape:document-units="px"
      inkscape:current-layer="layer1"
      showgrid="false"
      inkscape:window-width="792"
-     inkscape:window-height="655"
+     inkscape:window-height="583"
      inkscape:window-x="62"
-     inkscape:window-y="25"
+     inkscape:window-y="24"
      inkscape:window-maximized="0" />
   <metadata
      id="metadata7">
@@ -65,7 +65,7 @@
         <dc:format>image/svg+xml</dc:format>
         <dc:type
            rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
+        <dc:title />
       </cc:Work>
     </rdf:RDF>
   </metadata>
      id="layer1"
      transform="translate(366.71429,-981.93367)">
     <g
-       id="g2823">
+       id="g3593">
       <path
          sodipodi:nodetypes="cccccc"
          id="path3687"
          d="m -270.42482,1039.19 -10.32341,-10.4581 -54.35055,-0.2008 0,21.3174 53.89325,0 10.78071,-10.6585 z"
-         style="fill:#ffffff;stroke:#000000;stroke-width:2.12071395;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+         style="fill:#ffffcc;stroke:#000000;stroke-width:2.12071394999999985;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;fill-opacity:1" />
       <rect
          transform="matrix(0,1,-1,0,0,0)"
          y="335.26187"
@@ -88,7 +88,7 @@
          height="7.3214288"
          width="44.572716"
          id="rect3689"
-         style="fill:#ffffff;stroke:#000000;stroke-width:2.12071395;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+         style="fill:#ffffcc;stroke:#000000;stroke-width:2.12071394999999985;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;fill-opacity:1" />
       <rect
          transform="matrix(0,1,-1,0,0,0)"
          y="342.71426"
@@ -96,7 +96,7 @@
          height="19.202518"
          width="10.146134"
          id="rect3693"
-         style="fill:#ffffff;stroke:#000000;stroke-width:2.12071395;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+         style="fill:#ffffcc;stroke:#000000;stroke-width:2.12071394999999985;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;fill-opacity:1" />
     </g>
   </g>
 </svg>
index cefeb40..f91d252 100644 (file)
@@ -14,7 +14,7 @@
    id="svg2"
    version="1.1"
    inkscape:version="0.47 r22583"
-   sodipodi:docname="WhiteSword.svg">
+   sodipodi:docname="WhitePromoSword.svg">
   <defs
      id="defs4">
     <inkscape:perspective
      inkscape:pageshadow="2"
      inkscape:zoom="5.6"
      inkscape:cx="35.248447"
-     inkscape:cy="51.239847"
+     inkscape:cy="221.30085"
      inkscape:document-units="px"
      inkscape:current-layer="layer1"
      showgrid="false"
      inkscape:window-width="792"
-     inkscape:window-height="655"
+     inkscape:window-height="583"
      inkscape:window-x="62"
-     inkscape:window-y="25"
+     inkscape:window-y="24"
      inkscape:window-maximized="0" />
   <metadata
      id="metadata7">
@@ -65,7 +65,7 @@
         <dc:format>image/svg+xml</dc:format>
         <dc:type
            rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
+        <dc:title />
       </cc:Work>
     </rdf:RDF>
   </metadata>
      id="layer1"
      transform="translate(366.71429,-981.93367)">
     <g
-       id="g2823">
+       id="g3593">
       <path
          sodipodi:nodetypes="cccccc"
          id="path3687"
          d="m -316.26765,986.20384 -10.45897,10.32341 -0.20079,54.35055 21.31911,0 0,-53.89325 -10.65935,-10.78071 z"
-         style="fill:#ffffff;stroke:#000000;stroke-width:2.12079835;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+         style="fill:#ffffcc;stroke:#000000;stroke-width:2.12079834999999983;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;fill-opacity:1" />
       <rect
          y="1051.0409"
          x="-338.556"
          height="7.3214288"
          width="44.576263"
          id="rect3689"
-         style="fill:#ffffff;stroke:#000000;stroke-width:2.12079835;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+         style="fill:#ffffcc;stroke:#000000;stroke-width:2.12079834999999983;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;fill-opacity:1" />
       <rect
          y="1058.4933"
          x="-321.94376"
          height="19.202518"
          width="10.146942"
          id="rect3693"
-         style="fill:#ffffff;stroke:#000000;stroke-width:2.12079835;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+         style="fill:#ffffcc;stroke:#000000;stroke-width:2.12079834999999983;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;fill-opacity:1" />
     </g>
   </g>
 </svg>
diff --git a/svg/WhiteRShield.svg b/svg/WhiteRShield.svg
new file mode 100644 (file)
index 0000000..1dbf7d0
--- /dev/null
@@ -0,0 +1,171 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="100"
+   height="100"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.47 r22583"
+   sodipodi:docname="WhiteLShield.svg">
+  <defs
+     id="defs4">
+    <marker
+       inkscape:stockid="Arrow2Lstart"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow2Lstart"
+       style="overflow:visible">
+      <path
+         id="path3648"
+         style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round"
+         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+         transform="scale(1.1) translate(1,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow2Lend"
+       style="overflow:visible;">
+      <path
+         id="path3651"
+         style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;"
+         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+         transform="scale(1.1) rotate(180) translate(1,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Lend"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow1Lend"
+       style="overflow:visible;">
+      <path
+         id="path3633"
+         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;"
+         transform="scale(0.8) rotate(180) translate(12.5,0)" />
+    </marker>
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       id="perspective10" />
+    <inkscape:perspective
+       id="perspective2824"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective2838"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="2"
+     inkscape:cx="52.657835"
+     inkscape:cy="23.437927"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     inkscape:window-width="792"
+     inkscape:window-height="583"
+     inkscape:window-x="62"
+     inkscape:window-y="24"
+     inkscape:window-maximized="0" />
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(366.71429,-981.93367)">
+    <g
+       id="g3621"
+       transform="matrix(-1,0,0,1,-628.95924,0)">
+      <path
+         transform="matrix(-0.82853394,0,0,0.86611144,-274.22532,989.39587)"
+         d="M 74.5,52 C 74.5,76.024387 62.635546,95.5 48,95.5 33.364454,95.5 21.5,76.024387 21.5,52 21.5,27.975613 33.364454,8.5 48,8.5 62.635546,8.5 74.5,27.975613 74.5,52 z"
+         sodipodi:ry="43.5"
+         sodipodi:rx="26.5"
+         sodipodi:cy="52"
+         sodipodi:cx="48"
+         id="path2843"
+         style="fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:2.5;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+         sodipodi:type="arc" />
+      <path
+         transform="matrix(-0.90196078,0,0,0.92814371,-266.41652,977.03247)"
+         d="m 59,78 -1.6665,6.376488 4.308035,4.987752 -6.579378,0.385507 -3.412378,5.638485 L 49.25,89.25 42.833,87.747023 47.929233,83.56788 47.375686,77.000505 52.92511,80.555885 59,78 z"
+         inkscape:randomized="0"
+         inkscape:rounded="0"
+         inkscape:flatsided="false"
+         sodipodi:arg2="-0.2283871"
+         sodipodi:arg1="-0.85670563"
+         sodipodi:r2="4.962358"
+         sodipodi:r1="9.9247169"
+         sodipodi:cy="85.5"
+         sodipodi:cx="52.5"
+         sodipodi:sides="5"
+         id="path3621"
+         style="fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:2.5;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+         sodipodi:type="star" />
+      <path
+         sodipodi:type="star"
+         style="fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:2.5;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+         id="path3623"
+         sodipodi:sides="5"
+         sodipodi:cx="52.5"
+         sodipodi:cy="85.5"
+         sodipodi:r1="9.9247169"
+         sodipodi:r2="4.962358"
+         sodipodi:arg1="-0.85670563"
+         sodipodi:arg2="-0.2283871"
+         inkscape:flatsided="false"
+         inkscape:rounded="0"
+         inkscape:randomized="0"
+         d="m 59,78 -1.6665,6.376488 4.308035,4.987752 -6.579378,0.385507 -3.412378,5.638485 L 49.25,89.25 42.833,87.747023 47.929233,83.56788 47.375686,77.000505 52.92511,80.555885 59,78 z"
+         transform="matrix(0.90196078,0,0,-0.92814371,-360.74649,1091.1238)" />
+      <path
+         id="path3625"
+         d="m -280.30613,1074.8834 -68.34698,-84.36431"
+         style="fill:none;stroke:#000000;stroke-width:1.60083961;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:url(#Arrow2Lstart);marker-end:url(#Arrow2Lend)" />
+      <path
+         id="path4460"
+         d="m -286.24495,1067.9337 -55.5,-69.00003 56.5,69.50003"
+         style="fill:none;stroke:#000000;stroke-width:3.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+    </g>
+  </g>
+</svg>
diff --git a/svg/WhiteRight.svg b/svg/WhiteRight.svg
new file mode 100644 (file)
index 0000000..a0e9e25
--- /dev/null
@@ -0,0 +1,186 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.0"
+   width="100"
+   height="100"
+   id="svg2833"
+   inkscape:version="0.47 r22583"
+   sodipodi:docname="WhiteLWheel.svg">
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="783"
+     inkscape:window-height="583"
+     id="namedview13"
+     showgrid="false"
+     inkscape:zoom="2.36"
+     inkscape:cx="50"
+     inkscape:cy="50"
+     inkscape:window-x="0"
+     inkscape:window-y="24"
+     inkscape:window-maximized="0"
+     inkscape:current-layer="svg2833" />
+  <defs
+     id="defs2835">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 50 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="100 : 50 : 1"
+       inkscape:persp3d-origin="50 : 33.333333 : 1"
+       id="perspective15" />
+  </defs>
+  <metadata
+     id="metadata2838">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="g3914"
+     transform="matrix(-1,0,0,1,99.576274,0)">
+    <path
+       transform="matrix(-1,0,0,1,100,0)"
+       d="m 89.830509,52.966103 c 0,21.997782 -17.832726,39.830509 -39.830509,39.830509 -21.997783,0 -39.830509,-17.832727 -39.830509,-39.830509 0,-21.997783 17.832726,-39.83051 39.830509,-39.83051 21.997783,0 39.830509,17.832727 39.830509,39.83051 z"
+       sodipodi:ry="39.830509"
+       sodipodi:rx="39.830509"
+       sodipodi:cy="52.966103"
+       sodipodi:cx="50"
+       id="path2996"
+       style="fill:#ffffcc;fill-opacity:1"
+       sodipodi:type="arc" />
+    <g
+       id="g3900">
+      <path
+         sodipodi:type="arc"
+         style="fill:#000000;fill-opacity:1"
+         id="path3000"
+         sodipodi:cx="51.271187"
+         sodipodi:cy="54.661018"
+         sodipodi:rx="28.38983"
+         sodipodi:ry="28.38983"
+         d="m 79.661016,54.661018 c 0,15.67927 -12.710559,28.38983 -28.389829,28.38983 -15.67927,0 -28.38983,-12.71056 -28.38983,-28.38983 0,-15.67927 12.71056,-28.389829 28.38983,-28.389829 15.67927,0 28.389829,12.710559 28.389829,28.389829 z"
+         transform="matrix(-1,0,0,1,100.84746,-1.6949153)" />
+      <path
+         sodipodi:type="arc"
+         style="fill:#ffffcc;fill-opacity:0.94117647"
+         id="path3782"
+         sodipodi:cx="49.576271"
+         sodipodi:cy="53.81356"
+         sodipodi:rx="25.423729"
+         sodipodi:ry="25.423729"
+         d="m 75,53.81356 c 0,14.041138 -11.382591,25.423729 -25.423729,25.423729 -14.041138,0 -25.423729,-11.382591 -25.423729,-25.423729 0,-14.041137 11.382591,-25.423728 25.423729,-25.423728 C 63.617409,28.389832 75,39.772423 75,53.81356 z"
+         transform="matrix(-1,0,0,1,99.152542,-0.84745763)" />
+      <path
+         sodipodi:type="arc"
+         style="fill:#ffffcc;fill-opacity:1"
+         id="path3784"
+         sodipodi:cx="51.271187"
+         sodipodi:cy="54.237289"
+         sodipodi:rx="6.7796612"
+         sodipodi:ry="6.7796612"
+         d="m 58.050848,54.237289 c 0,3.744304 -3.035358,6.779662 -6.779661,6.779662 -3.744304,0 -6.779661,-3.035358 -6.779661,-6.779662 0,-3.744303 3.035357,-6.779661 6.779661,-6.779661 3.744303,0 6.779661,3.035358 6.779661,6.779661 z"
+         transform="matrix(-1,0,0,1,101.27119,-1.2711864)" />
+      <path
+         style="fill:none;stroke:#ffffcc;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+         d="M 49.576271,52.542373 C 57.068828,42.654339 57.196706,33.899333 50,26.271186"
+         id="path3804"
+         sodipodi:nodetypes="cc" />
+      <use
+         x="0"
+         y="0"
+         xlink:href="#path3804"
+         id="use3808"
+         transform="matrix(-1,0,0,1,101.06126,26.694916)"
+         width="100"
+         height="100" />
+      <use
+         x="0"
+         y="0"
+         xlink:href="#use3808"
+         id="use3810"
+         transform="matrix(0,-1,1,0,-2.64734,103.7086)"
+         width="100"
+         height="100" />
+      <use
+         x="0"
+         y="0"
+         xlink:href="#use3810"
+         id="use3812"
+         transform="matrix(1,0,0,-1,-27.118644,105.93221)"
+         width="100"
+         height="100"
+         style="fill:#000000;stroke:#000000;stroke-width:2;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <use
+         x="0"
+         y="0"
+         xlink:href="#use3812"
+         id="use3814"
+         transform="matrix(0.70710678,0.70710678,-0.70710678,0.70710678,51.258092,-20.122385)"
+         width="100"
+         height="100" />
+      <use
+         x="0"
+         y="0"
+         xlink:href="#use3814"
+         id="use3816"
+         transform="matrix(1,0,0,-1,20.338983,86.37377)"
+         width="100"
+         height="100" />
+      <use
+         x="0"
+         y="0"
+         xlink:href="#use3816"
+         id="use3818"
+         transform="matrix(-1,0,0,1,119.34852,18.220339)"
+         width="100"
+         height="100"
+         style="fill:#000000" />
+      <use
+         x="0"
+         y="0"
+         xlink:href="#use3818"
+         id="use3820"
+         transform="matrix(1,0,0,-1,-19.067796,124.50936)"
+         width="100"
+         height="100"
+         style="fill:#000000" />
+      <path
+         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.84745765;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+         d="m 49.408565,77.911284 c -3.818473,-5.243047 -5.436213,-11.906062 -4.095989,-16.870226 0.610481,-2.261211 0.601939,-2.333595 -0.435994,-3.694395 l -1.058675,-1.387995 -2.024779,1.026033 c -3.924025,1.988454 -6.930877,6.434761 -8.340517,12.333329 -0.795232,3.327606 -1.009628,3.693707 -1.951447,3.332301 -0.507941,-0.194916 -0.620638,-0.642928 -0.456495,-1.814742 0.332482,-2.373568 1.792481,-6.664732 3.023356,-8.886113 1.42486,-2.571468 4.940556,-6.018087 7.159242,-7.018575 1.39057,-0.627059 1.783587,-1.052867 1.953441,-2.116422 0.257515,-1.612448 -0.341758,-2.169178 -3.271439,-3.0392 -4.775746,-1.418244 -9.620957,-0.51803 -13.826075,2.56881 -1.96981,1.445974 -2.222994,1.528217 -2.831451,0.919761 -0.608457,-0.608458 -0.542257,-0.774785 0.740332,-1.860097 5.106323,-4.32091 11.643708,-5.4535 17.903771,-3.101794 l 2.446694,0.919144 0.786718,-0.971556 c 0.707741,-0.874022 0.729428,-1.133936 0.216035,-2.589048 C 44.303287,42.70714 41.831326,39.5114 39.2614,37.795269 37.05634,36.322786 34.916511,35.6184 30.974576,35.067422 c -1.150128,-0.160758 -1.443842,-2.016575 -0.319157,-2.016575 2.030763,0 6.005395,1.031942 8.155979,2.117553 3.249265,1.640224 5.630525,4.160916 7.551005,7.993143 l 1.622068,3.236762 2.088273,-0.03332 2.088273,-0.03332 0.940372,-2.297184 c 1.907329,-4.65931 1.057136,-10.44155 -2.211191,-15.038523 -1.302052,-1.831365 -1.399305,-2.143016 -0.842497,-2.699824 0.556808,-0.556809 0.778839,-0.460069 1.923443,0.838049 4.011268,4.549259 5.226395,11.024757 3.200464,17.055504 l -1.10853,3.299847 1.061681,1.144975 c 0.583925,0.629737 1.061682,1.293145 1.061682,1.474241 0,0.647334 4.055991,-1.749568 5.669535,-3.350432 1.998607,-1.982899 4.15416,-6.312987 5.134914,-10.315043 0.476631,-1.944927 0.935546,-2.96869 1.330763,-2.96869 1.021258,0 1.139809,1.199641 0.41058,4.154689 -1.586169,6.427599 -5.062902,11.361854 -9.630231,13.667435 -2.156558,1.088626 -2.412738,1.362363 -2.574895,2.751355 -0.155403,1.331137 -0.03143,1.608781 0.904885,2.026606 0.596726,0.266284 2.896398,0.486174 5.110381,0.488644 4.360623,0.0049 6.503322,-0.703023 11.151284,-3.684079 1.871521,-1.200336 2.097474,-1.252742 2.719479,-0.630738 0.622004,0.622004 0.593241,0.749206 -0.346195,1.530948 -1.760136,1.464675 -6.501966,3.795175 -9.097577,4.471245 -3.29398,0.857973 -6.347293,0.817735 -9.371492,-0.123502 -2.404478,-0.748357 -2.50206,-0.747934 -3.304964,0.01434 -0.81957,0.7781 -0.81755,0.803569 0.215303,2.714376 1.500753,2.776434 3.59055,5.089159 5.733298,6.344893 2.011524,1.178832 5.612796,2.277595 7.491542,2.285705 0.95911,0.0042 1.165254,0.192432 1.165254,1.064351 0,1.283488 -0.552407,1.329318 -4.687209,0.388878 -5.016661,-1.141017 -9.162036,-4.465834 -11.456668,-9.188878 -0.953764,-1.963135 -1.0153,-2.005084 -2.941283,-2.005084 -1.916512,0 -1.97977,0.04216 -2.457938,1.638144 -1.1875,3.963521 -0.119209,9.144987 2.926693,14.195161 1.562167,2.59011 1.683485,2.976127 1.114236,3.545377 -0.569248,0.56925 -0.785654,0.437161 -1.987571,-1.213161 l 0,0 z"
+         id="path3894" />
+    </g>
+    <path
+       transform="matrix(1.0498008,0,0,1.0498008,-6.7053818,-2.8707203)"
+       d="m 91.101696,53.389832 c 0,20.593668 -16.694467,37.288135 -37.288136,37.288135 -20.593668,0 -37.288135,-16.694467 -37.288135,-37.288135 0,-20.593669 16.694467,-37.288136 37.288135,-37.288136 20.593669,0 37.288136,16.694467 37.288136,37.288136 z"
+       sodipodi:ry="37.288136"
+       sodipodi:rx="37.288136"
+       sodipodi:cy="53.389832"
+       sodipodi:cx="53.81356"
+       id="path3898"
+       style="fill:#000000;fill-opacity:0;stroke:#000000;stroke-width:2.00037956;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       sodipodi:type="arc" />
+  </g>
+</svg>
index cdcc108..bbb707f 100644 (file)
      inkscape:pageshadow="2"
      inkscape:zoom="5.6"
      inkscape:cx="35.248447"
-     inkscape:cy="51.239847"
+     inkscape:cy="148.73641"
      inkscape:document-units="px"
      inkscape:current-layer="layer1"
      showgrid="false"
      inkscape:window-width="792"
-     inkscape:window-height="655"
+     inkscape:window-height="583"
      inkscape:window-x="62"
-     inkscape:window-y="25"
+     inkscape:window-y="24"
      inkscape:window-maximized="0" />
   <metadata
      id="metadata7">
      id="layer1"
      transform="translate(366.71429,-981.93367)">
     <g
-       id="g3595"
-       transform="matrix(1.1244463,0,0,1,39.257968,0)">
+       id="g3595">
       <path
          sodipodi:nodetypes="cccccc"
          id="path3687"
-         d="m -316.17839,986.20384 -9.30144,10.32341 -0.17857,54.35055 18.95966,0 0,-53.89325 -9.47965,-10.78071 z"
-         style="fill:#ffffff;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+         d="m -316.26765,986.20384 -10.45897,10.32341 -0.20079,54.35055 21.31911,0 0,-53.89325 -10.65935,-10.78071 z"
+         style="fill:#ffffcc;stroke:#000000;stroke-width:2.12079834999999983;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;fill-opacity:1" />
       <rect
          y="1051.0409"
-         x="-336"
+         x="-338.556"
          height="7.3214288"
-         width="39.642857"
+         width="44.576263"
          id="rect3689"
-         style="fill:#ffffff;stroke:#000000;stroke-width:2;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+         style="fill:#ffffcc;stroke:#000000;stroke-width:2.12079834999999983;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;fill-opacity:1" />
       <rect
          y="1058.4933"
-         x="-321.22629"
+         x="-321.94376"
          height="19.202518"
-         width="9.0239458"
+         width="10.146942"
          id="rect3693"
-         style="fill:#ffffff;stroke:#000000;stroke-width:2;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+         style="fill:#ffffcc;stroke:#000000;stroke-width:2.12079834999999983;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;fill-opacity:1" />
       <path
          id="path3701"
-         d="m -316.17857,998.13446 0,52.24134"
-         style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+         d="m -316.26786,998.13446 0,52.24134"
+         style="fill:none;stroke:#000000;stroke-width:2.12079835;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
     </g>
   </g>
 </svg>
diff --git a/svg/WhiteTower.svg b/svg/WhiteTower.svg
new file mode 100644 (file)
index 0000000..07c8095
--- /dev/null
@@ -0,0 +1,138 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="100"
+   height="100"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.47 r22583"
+   sodipodi:docname="WhiteTower.svg">
+  <defs
+     id="defs4">
+    <marker
+       inkscape:stockid="Arrow2Lstart"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow2Lstart"
+       style="overflow:visible">
+      <path
+         id="path3648"
+         style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round"
+         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+         transform="scale(1.1) translate(1,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow2Lend"
+       style="overflow:visible;">
+      <path
+         id="path3651"
+         style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;"
+         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+         transform="scale(1.1) rotate(180) translate(1,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Lend"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow1Lend"
+       style="overflow:visible;">
+      <path
+         id="path3633"
+         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;"
+         transform="scale(0.8) rotate(180) translate(12.5,0)" />
+    </marker>
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       id="perspective10" />
+    <inkscape:perspective
+       id="perspective2824"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective2838"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="2"
+     inkscape:cx="52.657835"
+     inkscape:cy="53.731013"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     inkscape:window-width="792"
+     inkscape:window-height="583"
+     inkscape:window-x="62"
+     inkscape:window-y="24"
+     inkscape:window-maximized="0" />
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(366.71429,-981.93367)">
+    <g
+       id="g4661"
+       transform="translate(-0.5,5)"
+       style="fill:#ffffcc;fill-opacity:1">
+      <path
+         sodipodi:nodetypes="ccccccccccccc"
+         id="path4655"
+         d="m -343.18303,1068.4024 0,-81.93747 12.98599,0 0,10.17155 9.48976,0 0,-10.17155 13.98491,0 0,10.73664 9.48975,0 0,-10.73664 11.98707,0 0,81.93747 -57.93748,0 z"
+         style="fill:#ffffcc;stroke:#000000;stroke-width:2.20000004999999987;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;fill-opacity:1" />
+      <path
+         sodipodi:nodetypes="cccc"
+         id="path4657"
+         d="m -326.21429,1067.4337 0,-25 c -0.15767,-20.4251 25.70922,-20.4787 25,0 l 0,25.5"
+         style="fill:#ffffcc;stroke:#000000;stroke-width:2.20000004999999987;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;fill-opacity:1" />
+      <path
+         sodipodi:nodetypes="cc"
+         transform="translate(-366.71429,981.93367)"
+         id="path4659"
+         d="m 53,46.5 0,40"
+         style="fill:#ffffcc;stroke:#000000;stroke-width:2.20000004999999987;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;fill-opacity:1" />
+    </g>
+  </g>
+</svg>
index f386f0d..0327395 100644 (file)
@@ -7,13 +7,44 @@
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:svg="http://www.w3.org/2000/svg"
    xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
    xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
    version="1.0"
    width="100"
    height="100"
-   id="svg2833">
+   id="svg2833"
+   inkscape:version="0.47 r22583"
+   sodipodi:docname="WhiteUnicorn.svg">
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="640"
+     inkscape:window-height="504"
+     id="namedview15"
+     showgrid="false"
+     inkscape:zoom="2.36"
+     inkscape:cx="50"
+     inkscape:cy="50"
+     inkscape:window-x="0"
+     inkscape:window-y="24"
+     inkscape:window-maximized="0"
+     inkscape:current-layer="svg2833" />
   <defs
-     id="defs2835" />
+     id="defs2835">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 50 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="100 : 50 : 1"
+       inkscape:persp3d-origin="50 : 33.333333 : 1"
+       id="perspective17" />
+  </defs>
   <metadata
      id="metadata2838">
     <rdf:RDF>
@@ -27,7 +58,7 @@
     </rdf:RDF>
   </metadata>
   <g
-     transform="translate(-67.582896,-53.165653)"
+     transform="matrix(-1,0,0,1,167.58289,-53.165653)"
      id="layer1">
     <g
        transform="matrix(1.2825234,0,0,1.3229667,-854.50326,-95.709669)"
diff --git a/svg/WhiteViking.svg b/svg/WhiteViking.svg
new file mode 100644 (file)
index 0000000..3361b03
--- /dev/null
@@ -0,0 +1,109 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="100"
+   height="100"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.47 r22583"
+   sodipodi:docname="WhiteViking.svg">
+  <defs
+     id="defs4">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       id="perspective10" />
+    <inkscape:perspective
+       id="perspective2824"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective2838"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="2"
+     inkscape:cx="52.657835"
+     inkscape:cy="23.437927"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     inkscape:window-width="792"
+     inkscape:window-height="583"
+     inkscape:window-x="62"
+     inkscape:window-y="24"
+     inkscape:window-maximized="0" />
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(366.71429,-981.93367)">
+    <g
+       id="g3627"
+       transform="matrix(0.96433588,0,0,1,-10.542877,0.5)"
+       style="stroke-width:2.54580917;stroke-miterlimit:4;stroke-dasharray:none">
+      <path
+         sodipodi:nodetypes="cc"
+         id="path2847"
+         d="m -353.22415,1061.9436 c 13.54043,-62.108 59.94165,-62.87413 72.51972,0"
+         style="fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:2.54580917;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         transform="translate(-366.71429,981.93367)"
+         d="M 86,80.25 C 86,84.530207 69.882251,88 50,88 30.117749,88 14,84.530207 14,80.25 14,75.969793 30.117749,72.5 50,72.5 c 19.882251,0 36,3.469793 36,7.75 z"
+         sodipodi:ry="7.75"
+         sodipodi:rx="36"
+         sodipodi:cy="80.25"
+         sodipodi:cx="50"
+         id="path2845"
+         style="fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:2.54580917;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+         sodipodi:type="arc" />
+      <path
+         sodipodi:nodetypes="cccc"
+         transform="translate(-366.71429,981.93367)"
+         id="path3623"
+         d="M 78,54 C 93.993275,50.292766 90.643418,33.261191 96,22.5 93.223807,37.829803 108.92769,52.169258 82.5,67.5 78.409688,63.863437 78.181641,58.939453 78,54 z"
+         style="fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:2.54580917;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         style="fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:2.54580917;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+         d="m -344.57643,1035.9337 c -15.99327,-3.7073 -12.64342,-20.7388 -18,-31.5 2.77619,15.3298 -12.92769,29.6692 13.5,45 4.09031,-3.6366 4.31836,-8.5606 4.5,-13.5 z"
+         id="path3625"
+         sodipodi:nodetypes="cccc" />
+    </g>
+  </g>
+</svg>
diff --git a/svg/WhiteWizard.svg b/svg/WhiteWizard.svg
new file mode 100644 (file)
index 0000000..bc1c674
--- /dev/null
@@ -0,0 +1,158 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="100"
+   height="100"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.47 r22583"
+   sodipodi:docname="WhiteWizard.svg">
+  <defs
+     id="defs4">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       id="perspective10" />
+    <inkscape:perspective
+       id="perspective2824"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective2838"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="2"
+     inkscape:cx="52.657835"
+     inkscape:cy="23.437927"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     inkscape:window-width="792"
+     inkscape:window-height="583"
+     inkscape:window-x="62"
+     inkscape:window-y="24"
+     inkscape:window-maximized="0" />
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(366.71429,-981.93367)">
+    <g
+       id="g2829">
+      <path
+         id="path3613"
+         d="m -348.5606,1067.104 33.12705,-72.05627 32.56557,71.48437"
+         style="fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:2.83325672;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         transform="matrix(1.1229508,0,0,1.14375,-371.58109,972.74461)"
+         d="m 55.5,18.25 a 5.5,5.25 0 1 1 -11,0 5.5,5.25 0 1 1 11,0 z"
+         sodipodi:ry="5.25"
+         sodipodi:rx="5.5"
+         sodipodi:cy="18.25"
+         sodipodi:cx="50"
+         id="path3615"
+         style="fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:2.5;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+         sodipodi:type="arc" />
+      <path
+         transform="matrix(1.2146211,0,0,1.1365091,-378.87459,974.48392)"
+         d="m 79,82.25 a 27,7.25 0 1 1 -54,0 27,7.25 0 1 1 54,0 z"
+         sodipodi:ry="7.25"
+         sodipodi:rx="27"
+         sodipodi:cy="82.25"
+         sodipodi:cx="52"
+         id="path2839"
+         style="fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:2.5;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+         sodipodi:type="arc" />
+      <path
+         transform="matrix(1.4139303,0,0,1.6229205,-381.63742,945.4912)"
+         d="m 48.5,48.5 -1.778768,-0.603198 -1.505311,1.123345 0.024,-1.878107 -1.53353,-1.084503 L 45.5,45.5 l 0.557537,-1.793604 1.084503,1.53353 1.878107,-0.024 -1.123345,1.505311 L 48.5,48.5 z"
+         inkscape:randomized="0"
+         inkscape:rounded="0"
+         inkscape:flatsided="false"
+         sodipodi:arg2="1.4137167"
+         sodipodi:arg1="0.78539816"
+         sodipodi:r2="1.4142137"
+         sodipodi:r1="2.8284271"
+         sodipodi:cy="46.5"
+         sodipodi:cx="46.5"
+         sodipodi:sides="5"
+         id="path3619"
+         style="fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:2.5;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+         sodipodi:type="star" />
+      <path
+         transform="matrix(1.0198606,0,0,1.7934237,-360.62416,934.62554)"
+         d="m 60,64 -1.778768,-0.603198 -1.505311,1.123345 0.024,-1.878107 -1.53353,-1.084503 L 57,61 l 0.557537,-1.793604 1.084503,1.53353 1.878107,-0.024 -1.123345,1.505311 L 60,64 z"
+         inkscape:randomized="0"
+         inkscape:rounded="0"
+         inkscape:flatsided="false"
+         sodipodi:arg2="1.4137167"
+         sodipodi:arg1="0.78539816"
+         sodipodi:r2="1.4142137"
+         sodipodi:r1="2.8284271"
+         sodipodi:cy="62"
+         sodipodi:cx="58"
+         sodipodi:sides="5"
+         id="path3621"
+         style="fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:2.5;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+         sodipodi:type="star" />
+      <path
+         transform="matrix(1.0360811,0,0,1.6585528,-365.58888,934.63295)"
+         d="M 37,69 35.217379,69.13924 34.321486,70.686658 33.638201,69.034312 31.889672,68.660446 33.25,67.5 33.065243,65.72152 34.589257,66.656671 36.223599,65.931376 35.805164,67.669777 37,69 z"
+         inkscape:randomized="0"
+         inkscape:rounded="0"
+         inkscape:flatsided="false"
+         sodipodi:arg2="1.0088249"
+         sodipodi:arg1="0.38050638"
+         sodipodi:r2="1.3462912"
+         sodipodi:r1="2.6925824"
+         sodipodi:cy="68"
+         sodipodi:cx="34.5"
+         sodipodi:sides="5"
+         id="path3623"
+         style="fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:2.5;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+         sodipodi:type="star" />
+      <path
+         sodipodi:nodetypes="cccc"
+         id="path3627"
+         d="m -311.63899,1033.7911 c -5.25461,3.2753 -4.87696,9.9001 0,13.5102 -4.79041,-0.091 -8.50035,-3.1871 -8.39663,-7.1459 -0.12752,-3.5753 3.7897,-6.4169 8.39663,-6.3643 z"
+         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.49760211;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+    </g>
+  </g>
+</svg>
diff --git a/svg/WhiteWolf.svg b/svg/WhiteWolf.svg
new file mode 100644 (file)
index 0000000..7334c85
--- /dev/null
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   id="svg2873"
+   version="1.1"
+   inkscape:version="0.47 r22583"
+   width="196"
+   height="196"
+   sodipodi:docname="wolf4Wt.svg">
+  <metadata
+     id="metadata2879">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs2877">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       id="perspective2881" />
+  </defs>
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="640"
+     inkscape:window-height="504"
+     id="namedview2875"
+     showgrid="false"
+     inkscape:zoom="1.2040816"
+     inkscape:cx="97.999997"
+     inkscape:cy="107.76409"
+     inkscape:window-x="0"
+     inkscape:window-y="24"
+     inkscape:window-maximized="0"
+     inkscape:current-layer="svg2873" />
+  <g
+     id="g3606">
+    <path
+       id="path3598"
+       d="m 57.30509,13.288135 -9.96611,11.627119 -7.47457,15.779662 -7.47458,30.728813 -5.81356,27.406785 -3.32203,22.423736 4.15254,14.94915 19.9322,38.20339 10.79661,5.81356 20.76272,4.98305 16.61017,0 24.91525,0.83051 11.62712,-4.98305 16.61017,-11.62712 12.45763,-20.76271 10.79661,-14.94915 -1.66102,-13.28814 -9.13559,-41.525434 -4.98305,-20.762712 -0.83051,-14.118644 -7.47458,-11.627119 -6.64407,-9.966103 -9.13559,4.152543 -8.30508,9.966102 -6.64407,14.118644 -2.49153,9.135594 L 79.72882,58.135594 76.40678,39.864407 69.76271,26.576271 63.94915,18.271186 57.30509,13.288135 z"
+       style="fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+    <path
+       style="fill:#000000"
+       d="m 72.830503,186.31495 c -4.125,-1.3456 -8.85,-2.45744 -10.5,-2.47076 -1.65,-0.0133 -4.167948,-0.80934 -5.59544,-1.76894 -1.42749,-0.95961 -5.10172,-3.42158 -8.16495,-5.47106 -3.06322,-2.04948 -6.21718,-4.97448 -7.0088,-6.5 -0.79161,-1.52552 -2.96739,-5.47368 -4.83505,-8.77368 -1.86767,-3.3 -6.07049,-11.56011 -9.3396,-18.35581 -7.2687,-15.10986 -7.78473,-19.11709 -4.6346,-35.99001 3.81785,-20.44945 6.18056,-31.383088 9.10934,-42.154182 1.57029,-5.775 3.58045,-14.1 4.46702,-18.5 1.18296,-5.870934 3.07748,-10.661332 7.11871,-18 5.93974,-10.786277 10.09875,-15.5 13.675966,-15.5 3.746136,0 15.215735,12.395866 17.580247,19 3.292987,9.197389 4.965537,15.255893 5.659362,20.5 l 0.661529,5 15.903488,0 c 15.494255,0 15.903475,-0.05409 15.903135,-2.102035 -2e-4,-1.156119 2.42264,-7.03904 5.38408,-13.073159 5.57137,-11.352008 9.87938,-16.32399 17.1219,-19.76079 4.27028,-2.026379 6.78534,-1.976288 9.33823,0.185984 3.00468,2.544939 10.9439,19.000638 11.70116,24.253108 1.43416,9.947538 12.47904,63.815654 13.92448,67.912454 3.62367,10.27058 2.88876,19.68976 -1.95715,25.08444 -1.23513,1.375 -4.36229,6.325 -6.94924,11 -2.58695,4.675 -5.68461,9.91286 -6.88368,11.63969 -1.19908,1.72682 -2.94368,4.53404 -3.87689,6.23825 -0.93321,1.70421 -3.85821,4.41454 -6.5,6.02297 -2.64179,1.60842 -6.21901,4.09219 -7.94938,5.5195 -1.73037,1.42731 -6.68037,3.80077 -11,5.27436 -7.23256,2.4673 -9.31738,2.70128 -26.353867,2.95773 -17.329649,0.26087 -18.974467,0.12371 -26,-2.16806 z m 51.499997,-3.86311 c 3.4077,-1.01011 7.29615,-3.01881 9,-4.64924 1.65,-1.5789 4.575,-3.53168 6.5,-4.3395 4.14941,-1.7413 8.48912,-6.14252 9.49797,-9.63259 0.39746,-1.375 1.93774,-3.85 3.42284,-5.5 1.4851,-1.65 4.42123,-6.375 6.52473,-10.5 2.1035,-4.125 4.87087,-8.75075 6.14971,-10.27944 4.36022,-5.21207 4.27556,-9.43662 -0.5455,-27.22056 -1.19279,-4.4 -4.81507,-21.280644 -8.0495,-37.51254 -6.56699,-32.95631 -6.01077,-30.832111 -10.66722,-40.737462 -2.14697,-4.567092 -4.00135,-7.25 -5.01108,-7.25 -3.00186,0 -10.36809,4.371717 -12.85078,7.626683 -3.37146,4.420218 -11.47117,21.236775 -11.47117,23.816369 0,1.336674 4.31874,6.395704 12,14.056948 11.28468,11.25528 13.69348,14.5 10.76444,14.5 -0.67956,0 -6.64206,-5.380177 -13.25,-11.955948 L 114.3305,60.918611 92.984434,60.735404 71.638364,60.552197 59.469993,72.691353 c -6.6926,6.676535 -12.72437,12.139155 -13.40393,12.139155 -2.94227,0 -0.49593,-3.264775 11.01444,-14.699372 10.024803,-9.958811 12.931183,-12.292323 16,-12.846285 3.525344,-0.636371 3.749278,-0.894913 3.737944,-4.315634 C 76.804817,48.855903 71.910335,33.489446 69.239495,29.174752 66.35064,24.507858 58.534162,16.830508 56.671549,16.830508 c -1.906426,0 -6.871236,7.038179 -11.639286,16.5 -1.66296,3.3 -4.01062,10.5 -5.21702,16 -1.20641,5.5 -3.68315,16.075 -5.50388,23.5 -1.82072,7.425 -4.25578,19.575 -5.41123,27 -1.15546,7.425002 -2.59813,16.330342 -3.20594,19.789662 -1.36068,7.74419 -0.99212,8.83672 11.28003,33.43666 8.01702,16.07039 9.20028,17.90853 12.66659,19.67691 2.10292,1.07283 4.43561,2.68816 5.18375,3.58962 2.000486,2.41043 6.510731,4.5066 9.70628,4.51105 1.539813,0.002 5.72466,0.87694 9.29966,1.94399 5.601492,1.67189 9.126409,1.90634 25.5,1.69601 14.745237,-0.1894 20.343607,-0.64233 24.999997,-2.02257 z m -39.999997,-2.278 c -3.582053,-0.57629 -14.054587,-10.43253 -14.973027,-14.09188 -0.338488,-1.34865 -1.553397,-3.72075 -2.699797,-5.27134 -1.485903,-2.00979 -1.893294,-3.58054 -1.418889,-5.47072 0.791712,-3.15443 2.867597,-2.82783 3.642642,0.57311 1.213656,5.32558 4.372604,10.67592 9.250412,15.6675 l 5.130339,5.25 13.56832,0 13.568317,0 5.1449,-5.25 c 3.49846,-3.56993 6.02444,-7.4101 7.89332,-12 2.93027,-7.1966 4.00309,-8.15355 4.9429,-4.40903 0.82979,3.30612 -5.25191,13.96627 -11.44444,20.0601 l -4.98045,4.90107 -12.312274,0.26192 c -6.77175,0.14406 -13.662273,0.0447 -15.312273,-0.22073 z m 3.957386,-9.62633 c -1.936808,-1.66597 -2.796382,-3.54495 -3.180434,-6.95225 -0.474863,-4.21297 -0.228462,-4.96709 2.521454,-7.717 2.736652,-2.73665 3.675896,-3.04775 9.201594,-3.04775 5.468287,0 6.479487,0.32564 9.076917,2.92308 2.2925,2.29249 2.92308,3.81916 2.92308,7.07692 0,3.25776 -0.63058,4.78443 -2.92308,7.07692 -2.58348,2.58348 -3.6226,2.92308 -8.94423,2.92308 -4.828238,0 -6.547002,-0.45231 -8.675301,-2.283 z m -2.905366,-22.967 c -4.376569,-14.20188 -4.995989,-18.75 -2.553611,-18.75 1.723452,0 6.611879,15.96723 5.653246,18.46539 -0.709789,1.84968 -2.564839,2.02001 -3.099635,0.28461 z m 19.907877,0.18511 c -1.31092,-2.12111 3.57737,-18.93511 5.50496,-18.93511 2.02356,0 1.85218,3.81062 -0.52136,11.59224 -2.4581,8.05884 -3.54833,9.66519 -4.9836,7.34287 z M 65.931494,119.01921 c -3.266004,-6.10258 1.367814,-14.1887 8.130956,-14.1887 1.862187,0 4.157307,0.56414 5.100268,1.25365 1.541083,1.12687 1.014393,1.94837 -5.207879,8.12297 -6.513118,6.46321 -6.987441,6.74769 -8.023345,4.81208 z m 49.465476,-5.12172 -6.92622,-6.9797 2.74497,-1.04364 c 1.50974,-0.574 3.41303,-1.04364 4.22954,-1.04364 2.40177,0 7.24237,2.86454 8.3556,4.94461 1.40651,2.62809 1.29478,7.31054 -0.22401,9.3876 -1.12672,1.54088 -1.95498,1.00774 -8.17988,-5.26523 z"
+       id="use3602" />
+  </g>
+</svg>
diff --git a/svg/WhiteZebra.svg b/svg/WhiteZebra.svg
new file mode 100644 (file)
index 0000000..6d3e626
--- /dev/null
@@ -0,0 +1,126 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.0"
+   width="100"
+   height="100"
+   id="svg2833"
+   inkscape:version="0.47 r22583"
+   sodipodi:docname="WhiteKnight.svg">
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="640"
+     inkscape:window-height="504"
+     id="namedview11"
+     showgrid="false"
+     inkscape:zoom="2.36"
+     inkscape:cx="50"
+     inkscape:cy="50"
+     inkscape:window-x="0"
+     inkscape:window-y="24"
+     inkscape:window-maximized="0"
+     inkscape:current-layer="svg2833" />
+  <defs
+     id="defs2835">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 50 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="100 : 50 : 1"
+       inkscape:persp3d-origin="50 : 33.333333 : 1"
+       id="perspective13" />
+  </defs>
+  <metadata
+     id="metadata2838">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     transform="translate(-67.582896,-53.165653)"
+     id="layer1">
+    <g
+       transform="matrix(1.3645649,0,0,1.3439387,-220.19479,70.376866)"
+       id="g4602"
+       style="display:inline">
+      <path
+         d="m 238.21185,-1.7155471 2.55401,0.0595 c -0.11306,-2.7134211 4.44555,-7.1531665 4.44555,-7.1531665 0,0 2.6311,2.9526263 3.05622,7.1168654 5.9381,-0.2374968 11.03878,2.8990232 13.00056,4.1073952 12.42868,7.655546 17.29364,32.448756 17.26817,51.469126 l -44.90277,-0.141002 c -0.20729,-13.073379 15.56269,-17.974522 15.10098,-30.390825 -3.98486,3.099334 -8.42701,3.94292 -11.94512,6.90514 -2.79351,2.352109 -4.23289,5.107136 -7.01819,8.412488 -1.02679,1.218501 -3.76823,0.678355 -4.65375,-1.092696 -4.42762,1.32829 -8.68213,0.01778 -8.58207,-6.302259 0.0886,-5.594944 5.71512,-10.651222 7.64949,-15.901883 0.8339,-2.263527 0.71728,-5.7619951 2.03476,-8.280479 1.02298,-1.9555369 3.32544,-4.2204556 4.38056,-4.9644989 0.81951,-2.78858391 0.63978,-7.5122594 -0.71693,-9.3212068 1.97854,-0.5652961 6.51958,2.1987846 8.32853,5.4775016 z"
+         inkscape:connector-curvature="0"
+         id="path4350"
+         style="opacity:0.98999999;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.54904515px;stroke-opacity:1" />
+      <path
+         d="m 242.81689,-0.58069936 c -0.072,0.79486254 -0.32711,1.42135025 -0.73002,2.28035536 -2.11721,4.5138671 -1.19455,-0.1716813 -1.14905,-1.19710158 -1.50976,0.47874748 -4.00517,2.26532638 -5.07373,3.22990388 0.2262,-0.822523 1.59457,-2.91401608 1.19879,-4.37258378 -0.53461,-1.97018662 -2.39735,-3.30685752 -4.38274,-4.27768712 0.61573,2.305974 0.97448,5.12831401 -0.52388,8.1053126 -0.963,1.1263746 -1.94758,1.992982 -2.75,3.125 -0.68313,0.9637262 -1.34296,1.9556425 -1.73503,3.090079 -0.83217,1.95126 -0.86757,4.102469 -1.47299,6.117007 -1.0152,3.389738 -2.8013,6.466007 -4.8023,9.361167 -1.33288,2.142142 -2.90703,4.397401 -2.85563,7.031336 0.074,1.299767 0.66114,2.59601 1.56989,3.430555 1.07494,0.869977 2.59231,0.82959 3.80468,0.430633 1.76617,-0.581196 3.02202,-3.3374 4.47311,-5.629934 0.0475,0.474451 -0.10089,1.848603 -0.28033,3.228551 -0.22412,1.723516 -0.4967,3.456074 -0.4967,3.456074 3.78439,-2.467212 6.29028,-7.057025 10.07655,-9.827968 2.63561,-1.928841 6.46629,-2.181126 8.64217,-4.616774 2.70726,-3.030455 3.36645,-3.372936 4.50035,-11.329732 1.23577,7.754431 0.26208,17.297222 -3.06808,22.364697 -0.94356,1.435812 -2.64098,3.136326 -3.94944,4.706809 -2.35937,2.831831 -5.02065,5.234162 -6.63424,8.423218 -0.82438,1.629293 -1.38054,3.845243 -1.45951,5.27993 13.88505,0.05216 27.62654,-0.03393 39.71316,0 0.13389,-5.249005 -0.48174,-10.005913 -1.26011,-14.943931 -0.75657,-4.799697 -1.81449,-9.572366 -3.30276,-14.197788 -1.25479,-3.899783 -2.30537,-8.037609 -4.71838,-11.348224 -3.01163,-4.1319023 -7.09257,-7.6856654 -11.68081,-9.9418973 -1.89015,-0.92946742 -3.84424,-1.22768185 -5.87614,-1.42411251 -0.67664,2.63979221 -1.13781,0.36144826 -1.51273,-0.14218972 -1.03671,-1.94459497 -1.88857,-2.71395277 -2.04236,-4.94441567 -1.31768,1.7707756 -2.11286,3.3322909 -2.22174,4.53371084 z"
+         inkscape:connector-curvature="0"
+         id="path4352"
+         style="opacity:0.98999999;fill:#ffffcc;fill-opacity:1;stroke:#fdfdca;stroke-width:0.54904515px;stroke-opacity:1" />
+      <path
+         d="m 221.53873,32.85876 c 2.61354,-0.122981 3.81785,-5.736082 1.16227,-5.663706 -2.93332,0.07995 -3.41743,5.769824 -1.16227,5.663706 z"
+         inkscape:connector-curvature="0"
+         id="path4348"
+         style="opacity:0.98999999;fill:#000000;fill-opacity:1" />
+      <path
+         d="m 230.75067,14.108964 0.88552,-2.213813 c 2.65658,0.442761 3.98486,-0.885522 3.5421,-3.5421016 l 2.21381,-0.442761 0,-0.442761 c -3.98486,-0.885529 -7.52696,2.6565726 -6.64143,6.6414366 z"
+         inkscape:connector-curvature="0"
+         id="path4340"
+         style="opacity:0.98999999;fill:#000000;fill-opacity:1" />
+    </g>
+  </g>
+  <path
+     style="fill:#000000;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1"
+     d="M 32.627119,58.474576 21.186441,53.813559 35.59322,56.355932 32.627119,58.474576 z"
+     id="path2819" />
+  <path
+     style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+     d="M 41.949152,52.966102 25.423728,48.305085 47.457627,50 41.949152,52.966102 z"
+     id="path3593" />
+  <path
+     style="fill:#000000;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1"
+     d="m 32.627119,42.79661 20.762712,2.542373 13.559322,-1.271186 8.474576,-2.542373 5.084746,-3.81356 -2.118644,-3.813559 -6.355933,4.661017 -9.322034,2.542373 -9.745762,0.847458 -20.338983,0.847457 z"
+     id="path3595" />
+  <path
+     style="fill:#000000;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1"
+     d="m 83.050847,46.186441 -11.440678,4.237288 -8.898305,2.118644 -10.169491,1.694915 -1.271187,3.389831 11.440678,-0.847458 9.322034,-1.694915 13.983051,-4.237288 -2.966102,-4.661017 z"
+     id="path3597" />
+  <path
+     style="fill:#000000;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1"
+     d="m 86.864407,57.627119 -15.254238,2.542373 -11.440677,2.966101 -9.322034,2.542373 -5.932204,1.694915 -2.966101,2.966102 -1.271187,1.271186 15.254237,-3.813559 12.288136,-2.118644 16.101695,-1.694915 4.661017,0 -2.118644,-6.355932 z"
+     id="path3599" />
+  <path
+     style="fill:#000000;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1"
+     d="m 89.830508,70.338983 -14.406779,1.271186 -14.40678,2.118645 -12.288135,4.237288 -8.050848,4.237288 -4.661017,5.084746 5.508475,0.847457 8.898305,-5.932203 8.898305,-3.813559 11.016949,-2.542373 13.135593,-1.694916 6.355932,0.423729 0,-4.237288 z"
+     id="path3601" />
+  <path
+     style="fill:#000000;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1"
+     d="m 89.40678,80.084746 c -4.237288,1.694915 -12.711865,1.271186 -12.711865,1.271186 l -10.59322,2.118644 -8.898305,4.237288 12.288135,0.423729 10.177963,-3.77205 10.584749,-0.465238 c 0,0 -0.423729,-5.932203 -0.847457,-3.813559 z"
+     id="path3603"
+     sodipodi:nodetypes="cccccccc" />
+  <path
+     style="fill:#000000;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1"
+     d="m 70.762712,26.694915 -7.20339,5.932204 -6.355932,2.966101 5.932203,-6.355932 2.966102,-8.474576 4.661017,5.932203 z"
+     id="path3605" />
+  <path
+     style="fill:#000000;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1"
+     d="m 57.627119,17.79661 -2.118644,5.932204 -2.966102,8.898305 -0.847458,-10.169492 1.694916,-6.779661 4.237288,2.118644 z"
+     id="path3607" />
+</svg>
diff --git a/winboard/bitmaps/camel49o.bmp b/winboard/bitmaps/camel49o.bmp
new file mode 100644 (file)
index 0000000..220d53b
Binary files /dev/null and b/winboard/bitmaps/camel49o.bmp differ
diff --git a/winboard/bitmaps/camel49s.bmp b/winboard/bitmaps/camel49s.bmp
new file mode 100644 (file)
index 0000000..2a47e99
Binary files /dev/null and b/winboard/bitmaps/camel49s.bmp differ
diff --git a/winboard/bitmaps/camel49w.bmp b/winboard/bitmaps/camel49w.bmp
new file mode 100644 (file)
index 0000000..c9a0501
Binary files /dev/null and b/winboard/bitmaps/camel49w.bmp differ
diff --git a/winboard/bitmaps/camel72o.bmp b/winboard/bitmaps/camel72o.bmp
new file mode 100644 (file)
index 0000000..a2f4068
Binary files /dev/null and b/winboard/bitmaps/camel72o.bmp differ
diff --git a/winboard/bitmaps/camel72s.bmp b/winboard/bitmaps/camel72s.bmp
new file mode 100644 (file)
index 0000000..fe26272
Binary files /dev/null and b/winboard/bitmaps/camel72s.bmp differ
diff --git a/winboard/bitmaps/camel72w.bmp b/winboard/bitmaps/camel72w.bmp
new file mode 100644 (file)
index 0000000..cb2f223
Binary files /dev/null and b/winboard/bitmaps/camel72w.bmp differ
diff --git a/winboard/bitmaps/wolf49o.bmp b/winboard/bitmaps/wolf49o.bmp
new file mode 100644 (file)
index 0000000..efc9df9
Binary files /dev/null and b/winboard/bitmaps/wolf49o.bmp differ
diff --git a/winboard/bitmaps/wolf49s.bmp b/winboard/bitmaps/wolf49s.bmp
new file mode 100644 (file)
index 0000000..4797b18
Binary files /dev/null and b/winboard/bitmaps/wolf49s.bmp differ
diff --git a/winboard/bitmaps/wolf49w.bmp b/winboard/bitmaps/wolf49w.bmp
new file mode 100644 (file)
index 0000000..9c00fbe
Binary files /dev/null and b/winboard/bitmaps/wolf49w.bmp differ
diff --git a/winboard/bitmaps/wolf72o.bmp b/winboard/bitmaps/wolf72o.bmp
new file mode 100644 (file)
index 0000000..4b6bb05
Binary files /dev/null and b/winboard/bitmaps/wolf72o.bmp differ
diff --git a/winboard/bitmaps/wolf72s.bmp b/winboard/bitmaps/wolf72s.bmp
new file mode 100644 (file)
index 0000000..2e5c6ce
Binary files /dev/null and b/winboard/bitmaps/wolf72s.bmp differ
diff --git a/winboard/bitmaps/wolf72w.bmp b/winboard/bitmaps/wolf72w.bmp
new file mode 100644 (file)
index 0000000..a0858ef
Binary files /dev/null and b/winboard/bitmaps/wolf72w.bmp differ
diff --git a/winboard/bitmaps/zebra49o.bmp b/winboard/bitmaps/zebra49o.bmp
new file mode 100644 (file)
index 0000000..0608b95
Binary files /dev/null and b/winboard/bitmaps/zebra49o.bmp differ
diff --git a/winboard/bitmaps/zebra49s.bmp b/winboard/bitmaps/zebra49s.bmp
new file mode 100644 (file)
index 0000000..303533a
Binary files /dev/null and b/winboard/bitmaps/zebra49s.bmp differ
diff --git a/winboard/bitmaps/zebra72o.bmp b/winboard/bitmaps/zebra72o.bmp
new file mode 100644 (file)
index 0000000..963ecb2
Binary files /dev/null and b/winboard/bitmaps/zebra72o.bmp differ
diff --git a/winboard/bitmaps/zebra72s.bmp b/winboard/bitmaps/zebra72s.bmp
new file mode 100644 (file)
index 0000000..6446c77
Binary files /dev/null and b/winboard/bitmaps/zebra72s.bmp differ
index 10c2cd1..ce6ed8e 100644 (file)
@@ -57,8 +57,8 @@
 #define GAME_FILT     "Game files (*.pgn,*.gam)\0*.pgn;*.gam\0All files (*.*)\0*.*\0"\r
 #define DIAGRAM_FILT  "bitmap files (*.bmp)\0*.bmp\0All files (*.*)\0*.*\0"\r
 #define SOUND_FILT    "Wave files (*.wav)\0*.wav\0All files (*.*)\0*.*\0"\r
-#define OUTER_MARGIN (tinyLayout ? 0 : 4)\r
-#define INNER_MARGIN (tinyLayout ? 0 : 2)\r
+#define OUTER_MARGIN (tinyLayout == 2 ? 0 : 4)\r
+#define INNER_MARGIN (tinyLayout == 2 ? 0 : 2)\r
 #define MESSAGE_LINE_LEFTMARGIN 2\r
 #define MESSAGE_TEXT_MAX 256\r
 /*#define COLOR_ECHOOFF RGB(192,192,192)*/\r
index f8a5c9a..aa843ad 100644 (file)
@@ -271,7 +271,7 @@ InitJAWS()
 \r
                AdaptMenu();\r
                menuBarText[0][8] = menuBarText[0][7]; menuBarText[0][7] = "&JAWS";\r
-               for(i=0; i<9; i++) menuBarText[1][i] = menuBarText[0][i];\r
+               for(i=0; i<9; i++) menuBarText[2][i] = menuBarText[1][i] = menuBarText[0][i];\r
        }\r
 \r
        hAccelJAWS = CreateAcceleratorTable(acceleratorsJAWS, 14);\r
index 2183232..ca901bf 100644 (file)
@@ -535,12 +535,12 @@ typedef struct {
 \r
 SizeInfo sizeInfo[] = \r
 {\r
-  { "tiny",     21, 0, 1, 1, 0, 0 },\r
-  { "teeny",    25, 1, 1, 1, 0, 0 },\r
-  { "dinky",    29, 1, 1, 1, 0, 0 },\r
-  { "petite",   33, 1, 1, 1, 0, 0 },\r
-  { "slim",     37, 2, 1, 0, 0, 0 },\r
-  { "small",    40, 2, 1, 0, 0, 0 },\r
+  { "tiny",     21, 0, 1, 2, 0, 0 },\r
+  { "teeny",    25, 1, 1, 2, 0, 0 },\r
+  { "dinky",    29, 1, 1, 2, 0, 0 },\r
+  { "petite",   33, 1, 1, 2, 0, 0 },\r
+  { "slim",     37, 2, 1, 1, 0, 0 },\r
+  { "small",    40, 2, 1, 1, 0, 0 },\r
   { "mediocre", 45, 2, 1, 0, 0, 0 },\r
   { "middling", 49, 2, 0, 0, 0, 0 },\r
   { "average",  54, 2, 0, 0, 0, 0 },\r
@@ -588,7 +588,7 @@ typedef struct {
   WNDPROC wndproc;\r
 } MyButtonDesc;\r
 \r
-#define BUTTON_WIDTH (tinyLayout ? 16 : 32)\r
+#define BUTTON_WIDTH (tinyLayout == 2 ? 16 : 32)\r
 #define N_BUTTONS 5\r
 \r
 MyButtonDesc buttonDesc[N_BUTTONS] =\r
@@ -602,8 +602,9 @@ MyButtonDesc buttonDesc[N_BUTTONS] =
 \r
 int tinyLayout = 0, smallLayout = 0;\r
 #define MENU_BAR_ITEMS 9\r
-char *menuBarText[2][MENU_BAR_ITEMS+1] = {\r
+char *menuBarText[3][MENU_BAR_ITEMS+1] = {\r
   { N_("&File"), N_("&Edit"), N_("&View"), N_("&Mode"), N_("&Action"), N_("E&ngine"), N_("&Options"), N_("&Help"), NULL },\r
+  { N_("&Fil"), N_("&Ed"), N_("&Vw"), N_("&Mod"), N_("&Act"), N_("E&ng"), N_("&Opt"), N_("&Hlp"), NULL },\r
   { N_("&F"), N_("&E"), N_("&V"), N_("&M"), N_("&A"), N_("&N"), N_("&O"), N_("&H"), NULL },\r
 };\r
 \r
@@ -1106,6 +1107,8 @@ InitGeometry()
   screenGeometry.bottom = screenGeometry.top + screenHeight;\r
 }\r
 \r
+ChessProgramState broadcast;\r
+\r
 BOOL\r
 InitInstance(HINSTANCE hInstance, int nCmdShow, LPSTR lpCmdLine)\r
 {\r
@@ -1138,7 +1141,18 @@ InitInstance(HINSTANCE hInstance, int nCmdShow, LPSTR lpCmdLine)
     appData.ringBellAfterMoves = TRUE;\r
   }\r
   if (appData.debugMode) {\r
-    debugFP = fopen(appData.nameOfDebugFile, "w");\r
+    char *c = appData.nameOfDebugFile;\r
+    if(strstr(c, "///") == c) {\r
+      broadcast.which = "broadcaster";\r
+      broadcast.pr   = NoProc;\r
+      broadcast.isr  = NULL;\r
+      broadcast.program = c + 3;\r
+      broadcast.dir  = ".";\r
+      broadcast.host = "localhost";\r
+      StartChessProgram(&broadcast);\r
+      debugFP = (FILE*) _fdopen(_open_osfhandle((long)(((ChildProc*)(broadcast.pr))->hTo), _O_WRONLY), "w");\r
+    } else\r
+    debugFP = fopen(c, "w");\r
     setbuf(debugFP, NULL);\r
   }\r
 \r
@@ -1284,6 +1298,8 @@ LFfromMFP(LOGFONT* lf, MyFontParams *mfp)
   lf->lfCharSet = mfp->charset;\r
   lf->lfOutPrecision = OUT_DEFAULT_PRECIS;\r
 \r
+\r
+\r
   lf->lfClipPrecision = CLIP_DEFAULT_PRECIS;\r
   lf->lfQuality = DEFAULT_QUALITY;\r
   lf->lfPitchAndFamily = DEFAULT_PITCH|FF_DONTCARE;\r
@@ -2351,13 +2367,17 @@ InitDrawingSizes(BoardSize boardSize, int flags)
   minorSize = 0; /* [HGM] Kludge to see if demagnified pieces need to be shifted  */\r
   border = appData.useBorder && appData.border[0] ? squareSize/2 : 0;\r
 \r
+  // [HGM] decide on tininess based on total board width rather than square size\r
+  tinyLayout = squareSize * (BOARD_WIDTH);\r
+  tinyLayout = tinyLayout < 35*8 ? 2 : tinyLayout < 43*8 ? 1 : 0;\r
+\r
   if( appData.overrideLineGap >= 0 && appData.overrideLineGap <= 5 ) {\r
       lineGap = appData.overrideLineGap;\r
   }\r
 \r
   if (tinyLayout != oldTinyLayout) {\r
     long style = GetWindowLongPtr(hwndMain, GWL_STYLE);\r
-    if (tinyLayout) {\r
+    if (tinyLayout == 2) {\r
       style &= ~WS_SYSMENU;\r
       InsertMenu(hmenu, IDM_Exit, MF_BYCOMMAND, IDM_Minimize,\r
                 "&Minimize\tCtrl+F4");\r
@@ -2393,7 +2413,7 @@ InitDrawingSizes(BoardSize boardSize, int flags)
   ReleaseDC(hwndMain, hdc);\r
 \r
   /* Compute where everything goes */\r
-  if((first.programLogo || second.programLogo) && !tinyLayout) {\r
+  if((first.programLogo || second.programLogo) && tinyLayout != 2) {\r
         /* [HGM] logo: if either logo is on, reserve space for it */\r
        logoHeight =  2*clockSize.cy;\r
        leftLogoRect.left   = OUTER_MARGIN;\r
@@ -2514,7 +2534,7 @@ InitDrawingSizes(BoardSize boardSize, int flags)
                     messageRect.top, BUTTON_WIDTH, messageSize.cy, hwndMain,\r
                     (HMENU) buttonDesc[i].id,\r
                     (HINSTANCE) GetWindowLongPtr(hwndMain, GWLP_HINSTANCE), NULL);\r
-      if (tinyLayout) {\r
+      if (tinyLayout == 2) {\r
        SendMessage(buttonDesc[i].hwnd, WM_SETFONT, \r
                    (WPARAM)font[boardSize][MESSAGE_FONT]->hf,\r
                    MAKELPARAM(FALSE, 0));\r
@@ -2583,10 +2603,12 @@ InitDrawingSizes(BoardSize boardSize, int flags)
         piece = (ChessSquare) ((int) piece + 1)) {\r
       if (pieceBitmap[i][piece] != NULL)\r
        DeleteObject(pieceBitmap[i][piece]);\r
+      pieceBitmap[i][piece] = NULL;\r
     }\r
   }\r
 \r
   fontBitmapSquareSize = 0; /* [HGM] render: make sure pieces will be recreated, as we might need others now */\r
+\r
   // Orthodox Chess pieces\r
   pieceBitmap[0][WhitePawn] = DoLoadBitmap(hInst, "p", squareSize, "s");\r
   pieceBitmap[0][WhiteKnight] = DoLoadBitmap(hInst, "n", squareSize, "s");\r
@@ -2684,12 +2706,27 @@ InitDrawingSizes(BoardSize boardSize, int flags)
     pieceBitmap[0][WhiteLance] = DoLoadBitmap(hInst, "l", squareSize, "s");\r
     pieceBitmap[1][WhiteLance] = DoLoadBitmap(hInst, "l", squareSize, "o");\r
     pieceBitmap[2][WhiteLance] = DoLoadBitmap(hInst, "l", squareSize, "w");\r
+    pieceBitmap[0][WhiteAmazon] = DoLoadBitmap(hInst, "l", squareSize, "s");\r
+    pieceBitmap[1][WhiteAmazon] = DoLoadBitmap(hInst, "l", squareSize, "o");\r
+    pieceBitmap[2][WhiteAmazon] = DoLoadBitmap(hInst, "l", squareSize, "w");\r
     pieceBitmap[0][WhiteUnicorn] = DoLoadBitmap(hInst, "u", squareSize, "s");\r
     pieceBitmap[1][WhiteUnicorn] = DoLoadBitmap(hInst, "u", squareSize, "o");\r
     pieceBitmap[2][WhiteUnicorn] = DoLoadBitmap(hInst, "u", squareSize, "w");\r
     pieceBitmap[0][WhiteLion] = DoLoadBitmap(hInst, "ln", squareSize, "s");\r
     pieceBitmap[1][WhiteLion] = DoLoadBitmap(hInst, "ln", squareSize, "o");\r
     pieceBitmap[2][WhiteLion] = DoLoadBitmap(hInst, "ln", squareSize, "w");\r
+    pieceBitmap[0][WhiteCub] = DoLoadBitmap(hInst, "ln", squareSize, "s");\r
+    pieceBitmap[1][WhiteCub] = DoLoadBitmap(hInst, "ln", squareSize, "o");\r
+    pieceBitmap[2][WhiteCub] = DoLoadBitmap(hInst, "ln", squareSize, "w");\r
+    pieceBitmap[0][WhiteWolf] = DoLoadBitmap(hInst, "wolf", squareSize, "s");\r
+    pieceBitmap[1][WhiteWolf] = DoLoadBitmap(hInst, "wolf", squareSize, "o");\r
+    pieceBitmap[2][WhiteWolf] = DoLoadBitmap(hInst, "wolf", squareSize, "w");\r
+    pieceBitmap[0][WhiteCamel] = DoLoadBitmap(hInst, "camel", squareSize, "s");\r
+    pieceBitmap[1][WhiteCamel] = DoLoadBitmap(hInst, "camel", squareSize, "o");\r
+    pieceBitmap[2][WhiteCamel] = DoLoadBitmap(hInst, "camel", squareSize, "w");\r
+    pieceBitmap[0][WhiteZebra] = DoLoadBitmap(hInst, "zebra", squareSize, "s");\r
+    pieceBitmap[1][WhiteZebra] = DoLoadBitmap(hInst, "zebra", squareSize, "o");\r
+    pieceBitmap[2][WhiteZebra] = DoLoadBitmap(hInst, "n", squareSize, "w");\r
 \r
     if(gameInfo.variant == VariantShogi && BOARD_HEIGHT != 7) { /* promoted Gold representations (but not in Tori!)*/\r
       pieceBitmap[0][WhiteCannon] = DoLoadBitmap(hInst, "wp", squareSize, "s");\r
@@ -2791,6 +2828,15 @@ InitDrawingSizes(BoardSize boardSize, int flags)
   pieceBitmap[2][WhiteSilver] = DoLoadBitmap(hInst, "sw", squareSize, "w");\r
   minorSize = 0;\r
   }\r
+\r
+  if(appData.pieceDirectory[0]) for(i=WhitePawn; i<BlackPawn; i++) { // try for all missing pieces with new naming convention\r
+    char buf[MSG_SIZ];\r
+    if(pieceBitmap[0][i]) continue;\r
+    snprintf(buf, MSG_SIZ, "piece%d_", i);\r
+    pieceBitmap[0][i] = DoLoadBitmap(hInst, buf, squareSize, "s");\r
+    pieceBitmap[1][i] = DoLoadBitmap(hInst, buf, squareSize, "o");\r
+    pieceBitmap[2][i] = DoLoadBitmap(hInst, buf, squareSize, "w");\r
+  }\r
 }\r
 \r
 HBITMAP\r
@@ -3991,6 +4037,7 @@ HDCDrawPosition(HDC hdc, BOOLEAN repaint, Board board)
   }\r
 \r
   if( appData.highlightMoveWithArrow ) {\r
+\r
     DrawArrowHighlight(hdcmem);\r
   }\r
 \r
@@ -4511,6 +4558,7 @@ static int promoStyle;
 LRESULT CALLBACK\r
 Promotion(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)\r
 {\r
+\r
   char promoChar;\r
 \r
   switch (message) {\r
@@ -4612,7 +4660,7 @@ PromotionPopup(HWND hwnd)
 void\r
 PromotionPopUp(char choice)\r
 {\r
-  promoStyle = (choice == '+');\r
+  promoStyle = (choice == '+' || IS_SHOGI(gameInfo.variant));\r
   DrawPosition(TRUE, NULL);\r
   PromotionPopup(hwndMain);\r
 }\r
@@ -5083,12 +5131,14 @@ WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
       break;\r
 \r
     case IDM_Match: // [HGM] match: flows into next case, after setting Match Mode and nr of Games\r
+      if(matchMode) EnableMenuItem(GetMenu(hwndMain), IDM_Match, MF_BYCOMMAND|MF_GRAYED);\r
       MatchEvent(2); // distinguish from command-line-triggered case (matchMode=1)\r
       break;\r
 \r
     case IDM_TwoMachines:\r
       TwoMachinesEvent();\r
       /*\r
+\r
        * refresh the tags dialog only if it's visible\r
        */\r
       if (gameMode == TwoMachinesPlay && IsWindowVisible(editTagsDialog)) {\r
@@ -5688,6 +5738,7 @@ WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
             ReattachAfterMove( &rcMain, lpwp->x, lpwp->y, hwndConsole, &wpConsole );\r
            wpMain.x = lpwp->x;\r
             wpMain.y = lpwp->y;\r
+\r
         }\r
     }\r
     break;\r
@@ -6705,7 +6756,7 @@ TypeInNameDialog(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
     case IDOK:\r
       GetDlgItemText(hDlg, OPT_Name, move, sizeof(move));\r
       appData.userName = strdup(move);\r
-      SetUserLogo();\r
+      SetUserLogo(); DisplayLogos();\r
       SetGameInfo();\r
       if(gameMode == MachinePlaysWhite || gameMode == MachinePlaysBlack) {\r
        snprintf(move, MSG_SIZ, "%s vs. %s", gameInfo.white, gameInfo.black);\r
@@ -7645,7 +7696,7 @@ DisplayAClock(HDC hdc, int timeRemaining, int highlight,
 \r
   if (twoBoards && partnerUp) return;\r
   if (appData.clockMode) {\r
-    if (tinyLayout)\r
+    if (tinyLayout == 2)\r
       snprintf(buf, sizeof(buf)/sizeof(buf[0]), "%c %s %s", color[0], TimeString(timeRemaining), flagFell);\r
     else\r
       snprintf(buf, sizeof(buf)/sizeof(buf[0]), "%s:%c%s %s", color, (logoHeight>0 ? 0 : ' '), TimeString(timeRemaining), flagFell);\r
@@ -7661,6 +7712,7 @@ DisplayAClock(HDC hdc, int timeRemaining, int highlight,
     oldFg = SetTextColor(hdc, RGB(0, 0, 0)); /* black */\r
     oldBg = SetBkColor(hdc, RGB(255, 255, 255)); /* white */\r
   }\r
+\r
   oldFont = SelectObject(hdc, font[boardSize][CLOCK_FONT]->hf);\r
 \r
   JAWS_SILENCE\r
@@ -7977,6 +8029,7 @@ Enables gnuEnables[] = {
   { IDM_Annotate, MF_BYCOMMAND|MF_GRAYED },\r
   { IDM_NewChat, MF_BYCOMMAND|MF_GRAYED },\r
 \r
+\r
   // Needed to switch from ncp to GNU mode on Engine Load\r
   { ACTION_POS, MF_BYPOSITION|MF_ENABLED },\r
   { IDM_MachineWhite, MF_BYCOMMAND|MF_ENABLED },\r
@@ -8206,6 +8259,8 @@ ModeHighlight()
     nowChecked = 0;\r
     break;\r
   }\r
+  if(prevChecked == IDM_TwoMachines) // [HGM] 'Machine Match' might have gotten disabled when stopping match\r
+    EnableMenuItem(GetMenu(hwndMain), IDM_Match, MF_BYCOMMAND|MF_ENABLED);\r
   CheckMark(prevChecked, MF_UNCHECKED);\r
   CheckMark(nowChecked, MF_CHECKED);\r
   CheckMark(IDM_Match, matchMode && matchGame < appData.matchGames ? MF_CHECKED : MF_UNCHECKED);\r
index 7567c2d..c55c6da 100644 (file)
@@ -696,7 +696,7 @@ BEGIN
     PUSHBUTTON      "Cancel",IDCANCEL,140,244,50,14\r
 END\r
 \r
-DLG_NewVariant DIALOG DISCARDABLE  0, 0, 224, 250\r
+DLG_NewVariant DIALOG DISCARDABLE  0, 0, 224, 270\r
 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
 CAPTION "Variants"\r
 FONT 8, "MS Sans Serif"\r
@@ -774,20 +774,27 @@ BEGIN
     CONTROL         "",OPT_EngineVariant+4,"Button",BS_AUTORADIOBUTTON,80,144,70,10\r
     CONTROL         "",OPT_EngineVariant+5,"Button",BS_AUTORADIOBUTTON,154,144,70,10\r
     CONTROL         "",OPT_EngineVariant+6,"Button",BS_AUTORADIOBUTTON,9,154,70,10\r
+\r
     CONTROL         "",OPT_EngineVariant+7,"Button",BS_AUTORADIOBUTTON,80,154,70,10\r
     CONTROL         "",OPT_EngineVariant+8,"Button",BS_AUTORADIOBUTTON,154,154,70,10\r
-    GROUPBOX        "Variant",GPB_Variant,4,4,215,165\r
-    LTEXT           "Board size:",GPB_Board,10,183,40,8,WS_TABSTOP\r
-    LTEXT           "ranks",IDC_Height,77,183,38,8\r
-    EDITTEXT        IDC_Ranks,60,179,14,14,ES_AUTOHSCROLL\r
-    LTEXT           "files",IDC_Width,133,183,80,8\r
-    EDITTEXT        IDC_Files,116,179,14,14,ES_AUTOHSCROLL\r
-    LTEXT           "Holdings with room for:",IDC_Hand,10,201,90,8\r
-    EDITTEXT        IDC_Holdings,93,197,14,14,ES_AUTOHSCROLL\r
-    LTEXT           "pieces",IDC_Pieces,110,201,100,8\r
-    LTEXT           "('-1' means defaults for selected variant)",IDC_Def,10,217,210,8\r
-    DEFPUSHBUTTON   "OK",IDOK,114,232,50,14\r
-    PUSHBUTTON      "Cancel",IDCANCEL,170,232,50,14\r
+    CONTROL         "",OPT_EngineVariant+9,"Button",BS_AUTORADIOBUTTON,9,164,70,10\r
+    CONTROL         "",OPT_EngineVariant+10,"Button",BS_AUTORADIOBUTTON,80,164,70,10\r
+    CONTROL         "",OPT_EngineVariant+11,"Button",BS_AUTORADIOBUTTON,154,164,70,10\r
+    CONTROL         "",OPT_EngineVariant+12,"Button",BS_AUTORADIOBUTTON,9,174,70,10\r
+    CONTROL         "",OPT_EngineVariant+13,"Button",BS_AUTORADIOBUTTON,80,174,70,10\r
+    CONTROL         "",OPT_EngineVariant+14,"Button",BS_AUTORADIOBUTTON,154,174,70,10\r
+    GROUPBOX        "Variant",GPB_Variant,4,4,215,185\r
+    LTEXT           "Board size:",GPB_Board,10,203,40,8,WS_TABSTOP\r
+    LTEXT           "ranks",IDC_Height,77,203,38,8\r
+    EDITTEXT        IDC_Ranks,60,199,14,14,ES_AUTOHSCROLL\r
+    LTEXT           "files",IDC_Width,133,203,80,8\r
+    EDITTEXT        IDC_Files,116,199,14,14,ES_AUTOHSCROLL\r
+    LTEXT           "Holdings with room for:",IDC_Hand,10,221,90,8\r
+    EDITTEXT        IDC_Holdings,93,217,14,14,ES_AUTOHSCROLL\r
+    LTEXT           "pieces",IDC_Pieces,110,221,100,8\r
+    LTEXT           "('-1' means defaults for selected variant)",IDC_Def,10,237,210,8\r
+    DEFPUSHBUTTON   "OK",IDOK,114,252,50,14\r
+    PUSHBUTTON      "Cancel",IDCANCEL,170,252,50,14\r
 END\r
 \r
 DLG_Fonts DIALOG DISCARDABLE  0, 0, 266, 274\r
@@ -1285,10 +1292,11 @@ BEGIN
     END\r
     POPUP "E&ngine"\r
     BEGIN\r
-        MENUITEM "Edit Engine List...",         IDM_EditProgs1\r
+        MENUITEM "&Edit Engine List...",        IDM_EditProgs1\r
         MENUITEM "Load &First Engine...",       IDM_LoadProg1\r
         MENUITEM "Load &Second Engine...",      IDM_LoadProg2\r
         MENUITEM SEPARATOR\r
+        MENUITEM "&Common Settings...\tAlt+Shift+U",IDM_OptionsUCI\r
         MENUITEM "Engine #&1 Settings...",      IDM_Engine1Options\r
         MENUITEM "Engine #&2 Settings...",      IDM_Engine2Options\r
         MENUITEM SEPARATOR\r
@@ -1304,7 +1312,6 @@ BEGIN
         MENUITEM SEPARATOR\r
         MENUITEM "&General...",                 IDM_GeneralOptions\r
         MENUITEM "&Time Control...\tAlt+Shift+T",IDM_TimeControl\r
-        MENUITEM "Common &Engine...\tAlt+Shift+U",IDM_OptionsUCI\r
         MENUITEM "Ad&judications...\tAlt+Shift+J",IDM_EnginePlayOptions\r
         MENUITEM "Tournament...",               IDM_Tourney\r
         MENUITEM SEPARATOR\r
@@ -1930,6 +1937,9 @@ S72O                    BITMAP  MOVEABLE PURE   "bitmaps/s72o.bmp"
 L72O                    BITMAP  MOVEABLE PURE   "bitmaps/l72o.bmp"\r
 DK72O                   BITMAP  MOVEABLE PURE   "bitmaps/dk72o.bmp"\r
 LN72O                   BITMAP  MOVEABLE PURE   "bitmaps/ln72o.bmp"\r
+WOLF72O                 BITMAP  MOVEABLE PURE   "bitmaps/wolf72o.bmp"\r
+CAMEL72O                BITMAP  MOVEABLE PURE   "bitmaps/camel72o.bmp"\r
+ZEBRA72O                BITMAP  MOVEABLE PURE   "bitmaps/zebra72o.bmp"\r
 WP72O                   BITMAP  MOVEABLE PURE   "bitmaps/wp72o.bmp"\r
 WN72O                   BITMAP  MOVEABLE PURE   "bitmaps/wn72o.bmp"\r
 WL72O                   BITMAP  MOVEABLE PURE   "bitmaps/wl72o.bmp"\r
@@ -1951,6 +1961,9 @@ S72S                    BITMAP  MOVEABLE PURE   "bitmaps/s72s.bmp"
 L72S                    BITMAP  MOVEABLE PURE   "bitmaps/l72s.bmp"\r
 DK72S                   BITMAP  MOVEABLE PURE   "bitmaps/dk72s.bmp"\r
 LN72S                   BITMAP  MOVEABLE PURE   "bitmaps/ln72s.bmp"\r
+WOLF72S                 BITMAP  MOVEABLE PURE   "bitmaps/wolf72s.bmp"\r
+CAMEL72S                BITMAP  MOVEABLE PURE   "bitmaps/camel72s.bmp"\r
+ZEBRA72S                BITMAP  MOVEABLE PURE   "bitmaps/zebra72s.bmp"\r
 WP72S                   BITMAP  MOVEABLE PURE   "bitmaps/wp72s.bmp"\r
 WN72S                   BITMAP  MOVEABLE PURE   "bitmaps/wn72s.bmp"\r
 WL72S                   BITMAP  MOVEABLE PURE   "bitmaps/wl72s.bmp"\r
@@ -1972,6 +1985,8 @@ S72W                    BITMAP  MOVEABLE PURE   "bitmaps/s72w.bmp"
 L72W                    BITMAP  MOVEABLE PURE   "bitmaps/l72w.bmp"\r
 DK72W                   BITMAP  MOVEABLE PURE   "bitmaps/dk72w.bmp"\r
 LN72W                   BITMAP  MOVEABLE PURE   "bitmaps/ln72w.bmp"\r
+WOLF72W                 BITMAP  MOVEABLE PURE   "bitmaps/wolf72w.bmp"\r
+CAMEL72W                BITMAP  MOVEABLE PURE   "bitmaps/camel72w.bmp"\r
 E49O                    BITMAP  MOVEABLE PURE   "bitmaps/e49o.bmp"\r
 A49O                    BITMAP  MOVEABLE PURE   "bitmaps/a49o.bmp"\r
 AA49O                   BITMAP  MOVEABLE PURE   "bitmaps/as49o.bmp"\r
@@ -1989,6 +2004,9 @@ S49O                    BITMAP  MOVEABLE PURE   "bitmaps/s49o.bmp"
 L49O                    BITMAP  MOVEABLE PURE   "bitmaps/l49o.bmp"\r
 DK49O                   BITMAP  MOVEABLE PURE   "bitmaps/dk49o.bmp"\r
 LN49O                   BITMAP  MOVEABLE PURE   "bitmaps/ln49o.bmp"\r
+WOLF49O                 BITMAP  MOVEABLE PURE   "bitmaps/wolf49o.bmp"\r
+CAMEL49O                BITMAP  MOVEABLE PURE   "bitmaps/camel49o.bmp"\r
+ZEBRA49O                BITMAP  MOVEABLE PURE   "bitmaps/zebra49o.bmp"\r
 WP49O                   BITMAP  MOVEABLE PURE   "bitmaps/wp49o.bmp"\r
 WN49O                   BITMAP  MOVEABLE PURE   "bitmaps/wn49o.bmp"\r
 WL49O                   BITMAP  MOVEABLE PURE   "bitmaps/wl49o.bmp"\r
@@ -1999,6 +2017,7 @@ AA49S                   BITMAP  MOVEABLE PURE   "bitmaps/as49s.bmp"
 C49S                    BITMAP  MOVEABLE PURE   "bitmaps/c49s.bmp"\r
 CV49S                   BITMAP  MOVEABLE PURE   "bitmaps/cv49s.bmp"\r
 F49S                    BITMAP  MOVEABLE PURE   "bitmaps/f49s.bmp"\r
+\r
 M49S                    BITMAP  MOVEABLE PURE   "bitmaps/m49s.bmp"\r
 W49S                    BITMAP  MOVEABLE PURE   "bitmaps/w49s.bmp"\r
 O49S                    BITMAP  MOVEABLE PURE   "bitmaps/o49s.bmp"\r
@@ -2010,6 +2029,9 @@ S49S                    BITMAP  MOVEABLE PURE   "bitmaps/s49s.bmp"
 L49S                    BITMAP  MOVEABLE PURE   "bitmaps/l49s.bmp"\r
 DK49S                   BITMAP  MOVEABLE PURE   "bitmaps/dk49s.bmp"\r
 LN49S                   BITMAP  MOVEABLE PURE   "bitmaps/ln49s.bmp"\r
+WOLF49S                 BITMAP  MOVEABLE PURE   "bitmaps/wolf49s.bmp"\r
+CAMEL49S                BITMAP  MOVEABLE PURE   "bitmaps/camel49s.bmp"\r
+ZEBRA49S                BITMAP  MOVEABLE PURE   "bitmaps/zebra49s.bmp"\r
 WP49S                   BITMAP  MOVEABLE PURE   "bitmaps/wp49s.bmp"\r
 WN49S                   BITMAP  MOVEABLE PURE   "bitmaps/wn49s.bmp"\r
 WL49S                   BITMAP  MOVEABLE PURE   "bitmaps/wl49s.bmp"\r
@@ -2031,6 +2053,8 @@ S49W                    BITMAP  MOVEABLE PURE   "bitmaps/s49w.bmp"
 L49W                    BITMAP  MOVEABLE PURE   "bitmaps/l49w.bmp"\r
 DK49W                   BITMAP  MOVEABLE PURE   "bitmaps/dk49w.bmp"\r
 LN49W                   BITMAP  MOVEABLE PURE   "bitmaps/ln49w.bmp"\r
+WOLF49W                 BITMAP  MOVEABLE PURE   "bitmaps/wolf49w.bmp"\r
+CAMEL49W                BITMAP  MOVEABLE PURE   "bitmaps/camel49w.bmp"\r
 A33O                    BITMAP  MOVEABLE PURE   "bitmaps/a33o.bmp"\r
 AA33O                   BITMAP  MOVEABLE PURE   "bitmaps/as33o.bmp"\r
 C33O                    BITMAP  MOVEABLE PURE   "bitmaps/c33o.bmp"\r
index a512423..0d22012 100644 (file)
@@ -884,7 +884,7 @@ VariantWhichRadio(HWND hDlg)
        if(IsDlgButtonChecked(hDlg, j) &&\r
           (appData.noChessProgram || strstr(first.variants, VariantName(i-1)))) return (VariantClass) i-1;\r
   }\r
-  for(i=0; i<9; i++) { // check for engine-defined variants\r
+  for(i=0; i<15; i++) { // check for engine-defined variants\r
     if(IsDlgButtonChecked(hDlg, OPT_EngineVariant+i) ) {\r
        GetDlgItemText(hDlg, OPT_EngineVariant+i, engineVariant, MSG_SIZ); // remember name, so we can resolve it later\r
        return VariantUnknown;\r
@@ -905,7 +905,7 @@ VariantShowRadio(HWND hDlg)
        EnableWindow(GetDlgItem(hDlg, j), appData.noChessProgram || strstr(first.variants, VariantName(i-1)));\r
   }\r
   *engineVariant = c;\r
-  for(i=0; i<9; i++) { // initialize engine-defined variants\r
+  for(i=0; i<15; i++) { // initialize engine-defined variants\r
     char *v = EngineDefinedVariant(&first, i); // get name of #i\r
     if(v) { // there is such a variant\r
        EnableWindow(GetDlgItem(hDlg, OPT_EngineVariant+i), TRUE);     // and enable the button\r
index bbf9003..c825d24 100644 (file)
@@ -456,6 +456,7 @@ GetOptionValues(HWND hDlg, ChessProgramState *cps, Option *optionList)
 }\r
 \r
 char *defaultExt[] = { NULL, "pgn", "fen", "exe", "trn", "bin", "log", "ini" };\r
+HWND settingsDlg;\r
 \r
 LRESULT CALLBACK SettingsProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)\r
 {\r
@@ -468,7 +469,7 @@ LRESULT CALLBACK SettingsProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lPa
 \r
 //        CenterWindow(hDlg, GetWindow(hDlg, GW_OWNER));\r
        SetOptionValues(hDlg, activeCps, activeList);\r
-\r
+       settingsDlg = hDlg;\r
         SetFocus(GetDlgItem(hDlg, IDCANCEL));\r
 \r
         break;\r
@@ -478,12 +479,12 @@ LRESULT CALLBACK SettingsProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lPa
         case IDOK:\r
            if(!GetOptionValues(hDlg, activeCps, activeList)) return FALSE;\r
             EndDialog( hDlg, 0 );\r
-           comboCallback = NULL; activeCps = NULL;\r
+           comboCallback = NULL; activeCps = NULL; settingsDlg = NULL;\r
             return TRUE;\r
 \r
         case IDCANCEL:\r
             EndDialog( hDlg, 1 );\r
-           comboCallback = NULL; activeCps = NULL;\r
+           comboCallback = NULL; activeCps = NULL; settingsDlg = NULL;\r
             return TRUE;\r
 \r
        default:\r
@@ -692,6 +693,19 @@ EngineOptionsPopup(HWND hwnd, ChessProgramState *cps)
     return;\r
 }\r
 \r
+void\r
+RefreshSettingsDialog (ChessProgramState *cps, int val)\r
+{\r
+    int isUp = (settingsDlg != NULL);\r
+    if(val == 1) {\r
+       if(activeCps == cps && isUp) SetOptionValues(settingsDlg, cps, activeList);\r
+       return;\r
+    }\r
+    if(settingsDlg) EndDialog(settingsDlg, 1);\r
+    comboCallback = NULL; activeCps = NULL; settingsDlg = NULL;\r
+    if(val == 3 || isUp) EngineOptionsPopup(hwndMain, cps);\r
+}\r
+\r
 int EnterGroup P((HWND hDlg));\r
 \r
 static int engineNr, selected;\r
@@ -887,6 +901,7 @@ int MatchOK()
 \r
 void PseudoOK(HWND hDlg)\r
 {\r
+    if(matchMode) return;\r
     okFunc = 0;\r
     GetOptionValues(hDlg, activeCps, activeList);\r
     EndDialog( hDlg, 0 );\r
@@ -894,7 +909,12 @@ void PseudoOK(HWND hDlg)
 \r
     if(autoinc) appData.loadGameIndex = appData.loadPositionIndex = -(twice + 1); else\r
     if(!appData.loadGameFile[0]) appData.loadGameIndex = -2*twice; // kludge to pass value of "twice" for use in GUI book\r
+    if(!autoinc && !twice) { // prevent auto-inc being remembered in index value if checkboxes not ticked\r
+       if(appData.loadGameIndex < 0) appData.loadGameIndex = 0;\r
+       if(appData.loadPositionIndex < 0) appData.loadPositionIndex = 0;\r
+    }\r
     if(swiss) { appData.defaultMatchGames = 1; appData.tourneyType = -1; }\r
+    ASSIGN(appData.tourneyFile, tfName);\r
 }\r
 \r
 char *GetParticipants(HWND hDlg)\r
index 4bca0c1..f1e991d 100644 (file)
@@ -149,6 +149,7 @@ extern char *getenv();
 #include <locale.h>
 #endif
 
+#include <X11/keysym.h>
 #include <X11/Intrinsic.h>
 #include <X11/StringDefs.h>
 #include <X11/Shell.h>
@@ -1818,7 +1819,7 @@ ModeHighlight ()
 {
     Arg args[16];
     static int oldPausing = FALSE;
-    static GameMode oldmode = (GameMode) -1;
+    static GameMode oldMode = (GameMode) -1;
     char *wname;
 
     if (!boardWidget || !XtIsRealized(boardWidget)) return;
@@ -1844,7 +1845,7 @@ ModeHighlight ()
        }
     }
 
-    wname = ModeToWidgetName(oldmode);
+    wname = ModeToWidgetName(oldMode);
     if (wname != NULL) {
        MarkMenuItem(wname, False);
     }
@@ -1852,8 +1853,9 @@ ModeHighlight ()
     if (wname != NULL) {
        MarkMenuItem(wname, True);
     }
-    oldmode = gameMode;
+    if(oldMode == TwoMachinesPlay) EnableNamedMenuItem("Mode.MachineMatch", True);
     MarkMenuItem("Mode.MachineMatch", matchMode && matchGame < appData.matchGames);
+    oldMode = gameMode;
 
     /* Maybe all the enables should be handled here, not just this one */
     EnableNamedMenuItem("Mode.Training", gameMode == Training || gameMode == PlayFromGameFile);
index 28fe260..502aed1 100644 (file)
@@ -189,6 +189,12 @@ SetWidgetLabel (Option *opt, char *buf)
 }
 
 void
+SetComboChoice (Option *opt, char *n)
+{
+    SetWidgetText(opt, opt->choice[n]);
+}
+
+void
 SetDialogTitle (DialogClass dlg, char *title)
 {
     Arg args[16];
@@ -1130,8 +1136,10 @@ GenericPopUp (Option *option, char *title, DialogClass dlgNr, DialogClass parent
                                   option[i].max /* w */, shrink ? textHeight : 0 /* h */, option[i].min & 0xE | chain /* chain */);
            XtSetArg(args[j], XtNlabel, _(option[i].name));  j++;
            if(option[i].textValue && *option[i].textValue == '#') { // special for buttons of New Variant dialog
+               char *p, *v, n = option[i].value;
+               if(n) v = VariantName(n), p = strstr(first.variants, v);
                XtSetArg(args[j], XtNsensitive, option[i].value >= 0 && (appData.noChessProgram
-                                        || strstr(first.variants, VariantName(option[i].value)))); j++;
+                                        || p && (!*v || strlen(p) == strlen(v) || p[strlen(v)] == ','))); j++;
                XtSetArg(args[j], XtNborderWidth, (gameInfo.variant == option[i].value)+1); j++;
            }
            option[i].handle = (void*)
index 464c756..26bebf2 100644 (file)
@@ -90,8 +90,10 @@ As an interface to GNU Chess or another chess engine running on your
 machine, XBoard lets you play a game against the machine,
 set up arbitrary positions, force variations, watch a game between two
 chess engines, interactively analyze your stored games or set up and
-analyze arbitrary positions.  (Note: Not all chess engines support
-analysis.)
+analyze arbitrary positions.
+To run engines that use the UCI standard XBoard will draw upon
+the Polyglot adapter fully transparently, but you will need to have
+the polyglot package installed for this to work.
 @item xboard -ics -icshost hostname [options]
 As Internet Chess Server (ICS) interface, XBoard
 lets you play against other ICS users, observe games
@@ -120,7 +122,15 @@ instructions.
 
 To move a piece, you can drag it with the left mouse button, or you
 can click the left mouse button once on the piece, then once more on
-the destination square. In crazyhouse, bughouse or shogi you can
+the destination square. To under-promote a Pawn you can drag it backwards
+until it morphs into the piece you want to promote to, after which you
+drag that forward to the promotion square.
+Or after selecting the pawn with a first click you can then click
+the promotion square and move the mouse while keeping the button down
+until the piece that you want appears in the promotion square.
+To castle you move the King to its destination or, in Chess960,
+on top of the Rook you want to castle with.
+In crazyhouse, bughouse or shogi you can
 drag and drop pieces to the board from the holdings squares 
 displayed next to the board.
 
@@ -140,14 +150,14 @@ Lines of play displayed in the engine-output window,
 or PGN variations in the comment window can similarly
 be played out on the board, by right-clicking on them.
 Only in Analysis mode, when you walk along a PV, 
-releasing the mouse button will forward the game upto that point,
+releasing the mouse button might forward the game upto that point,
 like you entered all previous PV moves.
 As the display of the PV in that case starts after the first move
 a simple right-click will play the move the engine indicates.
 
 In Analysis mode you can also make a move by grabbing the piece
 with a double-click of the left mouse button
-(or while keeping the Ctrl key pressed).
+(or while keeping the @kbd{Ctrl} key pressed).
 In this case the move you enter will not be played,
 but will be excluded from the analysis of the current position.
 (Or included if it was already excluded; it is a toggle.)
@@ -171,7 +181,7 @@ frequently used commands also have shortcut keys or on-screen buttons.
 These shortcut keystrokes are mostly non-printable characters.
 Typing a letter or digit while the board window has focus
 will bring up a type-in box with the typed letter already in it.
-You can use that to type a move in siuations where it is your
+You can use that to type a move in situations where it is your
 turn to enter a move,
 type a move number to call up the position after that move
 in the display,
@@ -184,6 +194,11 @@ the settings that are made through menus or command-line options,
 so they will still apply when you restart XBoard for another session.
 The settings can be saved into this file automatically when XBoard exits,
 or on explicit request of the user.
+Note that the board window can be sized by the user, but that this
+will not affect the size of the clocks above it, and won't be remembered
+in the settings file.
+To persistently change the size of the clocks, use the @code{size}
+command-line option when starting XBoard.
 The default name for the settings file is /etc/xboard/xboard.conf,
 but in a standard install this file is only used as a master settings
 file that determines the system-wide default settings,
@@ -244,19 +259,14 @@ Allows you to select a new chess variant in non-ICS mode.
 (In ICS play, the ICS is responsible for deciding which variant will be played,
 and XBoard adapts automatically.)  The shifted @kbd{Alt+V} key is a 
 keyboard equivalent. If you play with an engine, the engine must
-be able to play the selected variant, or the command will be ignored.
+be able to play the selected variant, or the corresponding choice will be disabled.
 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!
-Only sizes bulky (72) and middling (49) have all pieces,
-while size petite (33) has most.
-These sizes would have to be set at startup through the @code{size}
-command-line option when you start up XBoard for such variants to be playable.
+makruk, Capablanca Chess, shatranj, crazyhouse, bughouse.
 
 You can overrule the default board format of the selected variant,
 (e.g. to play suicide chess on a 6 x 6 board),
 in this dialog, but normally you would not do that, 
-and leave them at '-1', which means 'default'.
+and leave them at '-1', which means 'default' for the chosen variant.
 @item Load Game
 @cindex Load Game, Menu Item
 Plays a game from a record file. The @kbd{Ctrl-O} key is a keyboard equivalent.
@@ -267,7 +277,7 @@ any), and you can select the one you want. Alternatively, you can load the
 Nth game in the file directly, by typing the number @kbd{N} after the
 file name, separated by a space.
 
-The game file parser will accept PGN (portable game notation),
+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 @samp{P@@f7}
@@ -423,6 +433,11 @@ Lets you set up an arbitrary board position.
 The shifted @kbd{Ctrl-E} key is a keyboard equivalent.
 Use mouse button 1 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.
+When you do this keeping the @kbd{Ctrl} key pressed,
+or start dragging with a double-click,
+you will move a copy of the piece, leaving the piece itself where it was.
+In variants where pieces can promote (such as Shogi),
+left-clicking an already selected piece promotes or demotes it.
 To drop a new piece on a square, press mouse button 2 or 3 over the
 square.
 This puts a white or black pawn in the square, respectively,
@@ -432,13 +447,27 @@ You will then see the piece on the originally clicked square
 cycle through the available pieces
 (including those of opposite color),
 and can release the button when you see the piece you want.
+(Note you can swap the function of button 2 and 3 by pressing
+the shift key, and that there is an option @code{monoMouse}
+to combine al functions in one button, which then acts as
+button 3 over an empty square, and as button 1 over a piece.)
 To alter the side to move, you can click the clock 
 (the words White and Black above the board)
 of the side you want to give the move to.
 To clear the board you can click the clock of the side that
-alread has the move (which is highlighted in black).
+already has the move (which is highlighted in black).
+If you repeat this the board will cycle from empty to a
+@code{pallette board} containing every piece once to the initial
+position to the one before clearing.
+The quickest way to set up a position is usually to start
+with the pallette board, and move the pieces to were you
+want them, duplicating them where necessary by using the
+@kbd{Ctrl} key, dragging those you don't want off board,
+and use static button 2 or 3 clicks to place the Pawns.
 The old behavior with a piece menu can still be configured
 with the aid of the @code{pieceMenu} option.
+Dragging empty squares off board can create boards with
+holes (inaccessible black squares) in them.
 Selecting @samp{Edit Position} causes XBoard to discard
 all remembered moves in the current game.
 
@@ -492,9 +521,12 @@ Pops up a window listing the moves available in the GUI book
 from the currently displayed position, 
 together with their weights and (optionally in braces) learn info. 
 You can then edit this list, and the new list will be stored
-back into the book when you press OK.
+back into the book when you press 'save changes'.
+When you press the button 'add next move', and play a move
+on the board, that move will be added to the list with weight 1.
 Note that the listed percentages are neither used, nor updated when 
 you change the weights; they are just there as an optical aid.
+When you right-click a move in the list it will be played.
 @item Revert
 @itemx Annotate
 @cindex Revert, Menu Item
@@ -531,7 +563,7 @@ The @kbd{End} key is a keyboard equivalent.
 Steps backward through a series of remembered moves.
 The @samp{[<]} button and the @kbd{Alt+LeftArrow} key are equivalents,
 as is turning the mouse wheel towards you.
-In addition, pressing the Control key steps back one move, and releasing
+In addition, pressing the ??? key steps back one move, and releasing
 it steps forward again.
 
 In most modes, @samp{Backward} only lets you look back at old positions;
@@ -625,10 +657,16 @@ right button kept down, will make XBoard play through the PV listed there.
 The use of the board window as 'variation board' will normally end when
 you release the right button,
 or when the opponent plays a move.
-But beware: in Analysis mode, moves thus played out will be added to the game.
+But beware: in Analysis mode, moves thus played out might be added to the game,
+depending on the setting of the option 'Play moves of clicked PV',
+when you initiate the click left of the PV in the score area.
 The Engine-Output pane for each engine will contain a header displaying the
 multi-PV status and a list of excluded moves in Analysis mode,
-which are also responsive to right-clicking.
+which are also responsive to right-clicking:
+Clicking the words 'fewer' or 'more' will alter the number of variations
+shown at each depth, through the engine's MultiPV option,
+while clicking in between those and moving the mouse horizontally adjust
+the option 'Multi-PV Margin'. (In so far the engines support those.)
 @item Show Move History
 @cindex Show Move History, Menu Item
 Shows or hides a list of moves of the current game.
@@ -640,12 +678,34 @@ by clicking on the corresponding move.
 Shows or hides a window which displays a graph of how the engine score(s)
 evolved as a function of the move number. 
 The shifted @kbd{Alt+E} key is a keyboard equivalent.
+The title bar shows the score (and search depth at which it was obtained)
+of the currently displayed position numerically.
 Clicking on the graph will bring
 the corresponding position in the board display.
+A button 3 click will toggle the display mode between plain and differential
+(showing the difference in score between successive half moves).
+Using the mouse wheel over the window will change the scale of the
+low-score region (from -1 to +1).
 @item Show Game List
 @cindex Show Game List, Menu Item
 Shows or hides the list of games generated by the last @samp{Load Game}
 command. The shifted @kbd{Alt+G} key is a keyboard equivalent.
+The line describing each game is built from a selection of the PGN tags.
+Which tags contribute, and in what order, can be changed by the @samp{Game list tags}
+menu dialog, which can be popped up through the @samp{Tags} button below the Game List.
+Display can be restricted to a sub-set of the games meeting certain criteria.
+A text entry below the game list allows you to type a text that the game lines
+must contain in order to be displayed.
+Games can also be selected based on their Elo PGN tag,
+as set in the @samp{Load Game Options} dialog, which can be popped up through the
+@samp{Thresholds} button below the Game List.
+Finally they can be selected based on containing a position similar to the one
+currently displayed in the main window, by pressing the 'Position' button below
+the Game List, (which searches the entire list for the position), or the 'Narrow'
+button (which only searches the already-selected games).
+What counts as similar enough to be selected can also be set in the
+@samp{Load Game Options} dialog, and ranges from an exact match to just the
+same material.
 @item Tags
 @cindex Tags, Menu Item
 Pops up a window which shows the PGN (portable game notation)
@@ -663,19 +723,45 @@ creates an extra window that you can use for typing in ICS commands.
 The input box is especially useful if you want to type in something long or do
 some editing on your input, because output from ICS doesn't get mixed
 in with your typing as it would in the main terminal window.
-@item Open Chat Window
-@cindex Open Chat Window, Menu Item
-This menu item opens a window in which you can conduct upto 5 chats
-with other ICS users (or channels).
+@item ICS Chat/Console
+@cindex ICS Chat/Console, Menu Item
+This menu item opens a window in which you can interact with the ICS,
+and conduct upto 5 chats with other ICS users (or channels),
+so you don't have to use the messy xterm from which you launched XBoard
+for that.
+The window has a text entry at the bottom where you can type your
+commands and messages unhindered by the stream of ICS output.
+The latter will be displayed in a large pane above the input field,
+the ICS Console.
+This pane can be vertically split into two, however, where half of it
+is then used to display selected ICS output, belonging to a chat with
+another user, or output from an ICS channel.
+Such output will then not appear in the Console pane.
+
 To use the window, write the name of your chat partner, the channel number,
 or the words 'shouts', 'whispers', 'cshouts' in the upper field
-(closing with <Enter>).
+(ending with <Enter>).
 Everything you type in the lowest field will then automatically be sent to
 the mentioned party, while everything that party sends to you will
-appear in the central text box, rather than appear in the ICS console.
+appear in the central text pane, rather than appear in the ICS console.
 The row of buttons allow you to choose between chat;
 to start a new chat, just select an empty button,
 and complete the @samp{Chat partner} field.
+There are several keyboard accelerators to control this window:
+Ctrl-H will hide the private chat, and dedicates the input field to
+giving ICS commands.
+Ctrl-E will erase the current chat and chat partner.
+Ctrl-N will open a new chat with a yet unspecified partner.
+Ctrl-O will open a new chat with the last person from which you received
+a tell in the ICS console pane.
+<Esc> will transfer keyboard focus to the board window,
+allowing you to invoke menu items through accelerator keys;
+typing a printable character there transfers focus back to the input field
+of the chat window.
+<Tab> will switch to another busy chat,
+giving priority to those with content you have not seen yet.
+(The buttons for selecting such chats turn orange.)
+Up and down arrow keys can be used to recall previous input lines.
 @item Board
 @cindex Board, Menu Item
 Summons a dialog where you can customize the look of the chess board.
@@ -685,6 +771,11 @@ when you don't want to use the built-in piece images
 external images to be used for the board squares
 (@code{liteBackTextureFile} and @code{darkBackTextureFile} options),
 and square and piece colors for the default pieces.
+The current combination of these settings can be assigned a 'theme' name
+by typing one in the text entry in the lower-left of the dialog,
+and closing the latter with OK.
+It will then appear in the themes listbox next time you open the dialog,
+where you can recall the complete settings combination with a double-click.
 @item Game List Tags
 @cindex Game List Tags, Menu Item
 a duplicate of the Game List dialog in the Options menu.
@@ -710,6 +801,7 @@ The @kbd{Ctrl-T} key is a keyboard equivalent.
 @item Analysis Mode
 @cindex Analysis Mode, Menu Item
 @cindex null move
+@cindex move exclusion
 XBoard tells the chess engine to start analyzing the current game/position
 and shows you the analysis as you move pieces around.
 The @kbd{Ctrl-A} key is a keyboard equivalent.
@@ -717,15 +809,10 @@ Note: Some chess engines do not support Analysis mode.
 
 To set up a position to analyze, you do the following:
 
-1. Select Edit Position from the Mode Menu
-
-2. Set up the position.  Use the middle and right buttons to
-bring up the white and black piece menus.
-
-3. When you are finished, click on either the Black or White
-clock to tell XBoard which side moves first.
+1. Set up the position by any means. (E.g. using @samp{Edit Position}
+mode, pasing a FEN or loading a game and stepping to the position.)
 
-4. Select Analysis Mode from the Mode Menu to start the analysis.
+2. Select Analysis Mode from the Mode Menu to start the analysis.
 
 You can now play legal moves to create follow-up positions for the
 engine to analyze, while the moves will be remembered as a stored game,
@@ -757,7 +844,7 @@ toggle the participation of the second engine in the analysis.
 The output of this engine will then be shown in the lower pane
 of the Engine Output window.
 The analysis function can also be used when observing games on an ICS
-with an engine loaded (zippy mode); the engine then will analyse
+with an engine loaded (zippy mode); the engine then will analyze
 the positions as they occur in the observed game.
 
 @item Analyze Game
@@ -826,7 +913,7 @@ have special functions in this mode; see below.
 @cindex Machine match, Menu Item
 Starts a match between two chess programs,
 with a number of games and other parameters set through
-the @samp{Match Options} menu dialog.
+the @samp{Tournament Options} menu dialog.
 When a match is already running, selecting this item will make
 XBoard drop out of match mode after the current game finishes.
 @item Pause
@@ -933,17 +1020,23 @@ by the comment "user adjudication".
 @cindex Engine Menu
 @cindex Menu, Engine
 @table @asis
-@item Load Engine
+@item Edit Engine List
+@cindex Edit Engine List, Menu Item
+Opens a window that shows the list of engines registered for use
+by XBoard, together with the options that would be used with them
+when you would select them from the @samp{Load Engine} dialogs.
+You can then edit this list, e.g. for re-ordering the engines,
+or adding uncommon options needed by this engine
+(e.g. to cure non-compliant behavior).
+@item Load New 1st Engine
+@itemx Load New 2nd Engine
 @cindex Load Engine, Menu Item
 Pops up a dialog where you can select or specify an engine to be loaded.
-You will always have to indicate whether you want to load the engine 
-as first or second engine, through the â€˜Load menitioned engine as’ 
-drop-down list at the bottom of the dialog. 
 You can even replace engines during a game, without disturbing that game.
 (Beware that after loading an engine, XBoard will always be in Edit Game mode, 
 so you will have to tell the new engine what to do before it does anything!)
 When you select an already installed engine from the â€˜Select Engine from List’ 
-drop-down list, 
+listbox, 
 all other fields of the dialog will be ignored. 
 In other cases, you have to specify the engine executable, 
 possible arguments on the engine command line 
@@ -954,7 +1047,7 @@ You will also have to specify (with the aid of checkboxes) if the engine is UCI.
 If â€˜Add this engine to the list’ is ticked (which it is by default), 
 the engine will be added to the list of installed engines in your settings file, 
 (provided you save the settings!),
-so that next time you can select it from the drop-down list. 
+so that next time you can select it from the listbox. 
 You can also specify a â€˜nickname’, 
 under which the engine will then appear in that drop-down list, 
 and even choose to use that nickname for it in PGN files for engine-engine games. 
@@ -965,11 +1058,8 @@ For obsolete XBoard engines, which would normally take a long delay to load
 because XBoard is waiting for a response they will not give, 
 you can tick â€˜WB protocol v1’ to speed up the loading process. 
 @item Engine #N Settings
-@cindex Engine Settings, Menu Item
-@cindex Engine #1 Settings, Menu Item
-@cindex Engine #2 Settings, Menu Item
+@cindex Engine #N Settings, Menu Item
 Pop up a menu dialog to alter the settings specific to the applicable engine.
-(The second engine is only accessible once it has been used in Two-Machines mode.)
 For each parameter the engine allows to be set,
 a control element will appear in this dialog that can be used to alter the value.
 Depending on the type of parameter (text string, number, multiple choice,
@@ -982,7 +1072,32 @@ Many engines do not have any parameters that can be set by the user,
 and in that case the dialog will be empty (except for the OK and cancel buttons).
 UCI engines usually have many parameters. (But these are only visible with
 a sufficiently modern version of the Polyglot adapter needed to run UCI engines,
-e.g. Polyglot 1.4.55b.) For native XBoard engines this is less common.
+e.g. Polyglot 2.0.1.) For native XBoard engines this is less common.
+
+@item Common Settings
+@cindex Common Settings, Menu Item
+Pops up a menu dialog where you can set some engine parameters common to most engines,
+such as hash-table size, tablebase cache size, maximum number of processors
+that SMP engines can use.
+The shifted @kbd{Alt+U} key is a keyboard equivalent.
+Older XBoard/WinBoard engines might not respond to these settings,
+but UCI engines always should.
+
+It is also possible to specify a GUI opening book here, i.e. an opening
+book that XBoard consults for any position a playing engine gets in.
+It then forces the engine to play the book move, rather than to think up its own,
+if that position is found in the book.
+The book can switched on and off independently for either engine.
+The way book moves are chosen can be influenced through the settings of
+book depth and variety.
+After both sides have played more moves than the specified depth,
+the book will no longer be consulted.
+When the variety is set to 50, moves will be played with the probability
+specified in the book.
+When set to 0, only the move(s) with the highest probability will be played.
+When set to 100, all listed moves will be played with equal pobability.
+Other settings interpolate between that.
+
 @item Hint
 @cindex Hint, Menu Item
 Displays a move hint from the chess engine.
@@ -999,6 +1114,7 @@ engine is out of its book or does not support this feature.
 @cindex Move Now, Menu Item
 Forces the chess engine to move immediately. Chess engine mode only.
 The @kbd{Ctrl-M} key is a keyboard equivalent.
+Many engines won't respond to this.
 @item Retract Move
 @cindex Retract Move, Menu Item
 Retracts your last move. In chess engine mode, you can do this only
@@ -1016,7 +1132,7 @@ Clicking on such a name will load that engine as first engine,
 so you won't have to search for it in your list of installed engines,
 if that is very long.
 The maximum number of displayed engine names is set by the
-@code{recentEngines}command-line option.
+@code{recentEngines} command-line option.
 @end table
 
 @node Options Menu
@@ -1075,7 +1191,7 @@ 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.  In local chess engine mode,
 XBoard
-may call either player's flag and will not take material into account (?).
+may call either player's flag.
 @item Auto Flip View
 @cindex Auto Flip View, Menu Item
 If the Auto Flip View option is on when you start a game, the board
@@ -1109,6 +1225,13 @@ while keeping the Shift key pressed will start a new variation.
 You can then recall the previous line through the @samp{Revert} menu item.
 When off, playing a move will truncate the game and append the move
 irreversibly.
+@item Headers in Engine Output Window
+@cindex Headers in Engine Output Window, Menu Item
+Controls the presence of column headers above the variations and
+associated information printed by the engine, on which you can issue
+button 3 clicks to open or close the columns.
+Available columns are search depth, score, node count, time used,
+tablebase hits, search speed and selective search depth.
 @item Hide Thinking
 @cindex Hide Thinking, Menu Item
 If this option is off, the chess engine's notion of the score and best
@@ -1130,16 +1253,6 @@ be unmade are highlighted.
 Causes the highlighting described in Highlight Last Move to be done
 by drawing an arrow between the highlighted squares,
 so that it is visible even when the width of the grid lines is set to zero.
-@item Move Sound
-@cindex Move Sound, Menu Item
-Enables the sounding of an audible signal when the computer performs a move.
-For the selection of the sound, see @samp{Sound Options}.
-If you turn on this option when using XBoard with the Internet
-Chess Server, you will probably want to give the
-@kbd{set bell 0}
-command to the ICS, since otherwise the ICS will ring the terminal bell
-after every move (not just yours). (The @file{.icsrc} file
-is a good place for this; see @ref{ICS options}.)
 @item One-Click Moving
 @cindex One-Click Moving, Menu Item
 If this option is on, XBoard does not wait for you to click both the
@@ -1162,12 +1275,16 @@ will only be updated when the analysis changes. If this option is
 on, the Analysis Window will be updated every two seconds.
 @item Play Move(s) of Clicked PV
 @cindex Play Move(s) of Clicked PV, Menu Item
-If this option is on, right-clicking a PV in the Engine Output window
+If this option is on, right-clicking on the first move of a PV
+or on the data fields left of it in the Engine Output window
 during Analyze mode will cause the first move of that PV to be played.
 You could also play more than one (or no) PV move by moving the mouse
 to engage in the PV walk such a right-click will start,
 to seek out another position along the PV where you want to continue
 the analysis, before releasing the mouse button.
+Clicking on later moves of the PV only temporarily show the moves
+for as long you keep the mouse button down,
+without adding them to the game.
 @item Ponder Next Move
 @cindex Ponder Next Move, Menu Item
 If this option is off, the chess engine will think only when it is on
@@ -1199,9 +1316,17 @@ along the board's left and bottom edges.
 @item Show Target Squares
 @cindex Show Target Squares, Menu Item
 If this option is on, all squares a piece that is 'picked up' with the mouse
-can legally move to are highighted with a fat colored dot in the
-highlightColor (non-captures) or premoveHighlightColor (captures).
-Legality testing must be on for XBoard to know how the piece moves.
+can legally move to are highighted with a fat colored dot in
+yellow (non-captures) or red (captures).
+Special moves might have other colors
+(e.g. magenta for promotion, cyan for a partial move).
+Legality testing must be on for XBoard to know how the piece moves,
+but with legality testing off some engines would offer this information.
+@item Sticky Windows
+@cindex Sticky Windows, Menu Item
+Controls whether the auxiliary windows such as Engine Output, Move History
+and Evaluation Graph should keep touching XBoard's main window when
+you move the latter.
 @item Test Legality
 @cindex Test Legality, Menu Item
 If this option is on, XBoard tests whether the moves you try to make
@@ -1214,6 +1339,11 @@ off this option is useful if you are playing a chess variant with
 rules that XBoard does not understand.  (Bughouse, suicide, and wild
 variants where the king may castle after starting on the d file are
 generally supported with Test Legality on.)
+@item Top-Level Dialogs
+@cindex Top-Level Dialogs, Menu Item
+Controls whether the auxiliary windows will appear as icons in the
+task bar and independently controllable, or whether they open and
+minimize all together with the main window.
 @item Flash Moves
 @itemx Flash Rate
 @cindex Flash Moves, Menu Item
@@ -1227,45 +1357,20 @@ Determines the duration (in msec) of an animation step,
 when @samp{Animate Moving} is swiched on.
 @item Zoom factor in Evaluation Graph
 @cindex Zoom factor in Evaluation Graph, Menu Item
-Sets the valueof the @code{evalZoom} option,
+Sets the value of the @code{evalZoom} option,
 indicating the factor by which the score interval (-1,1) should be
 blown up on the vertical axis of the Evaluation Graph.
 @end table
 @subsection Time Control
 @cindex Time Control, Menu Item
 Pops up a sub-menu where you can set the time-control parameters interactively.
+The shifted @kbd{Alt+T} key is a keyboard equivalent.
 Allows you to select classical or incremental time controls,
 set the moves per session, session duration, and time increment.
 Also allows specification of time-odds factors for one or both engines.
 If an engine is given a time-odds factor N, all time quota it gets, 
 be it at the beginning of a session or through the time increment or
 fixed time per move, will be divided by N.
-The shifted @kbd{Alt+T} key is a keyboard equivalent.
-
-@subsection Common Engine
-@cindex Common Engine, Menu Item
-Pops up a sub-menu where you can set some engine parameters common to most engines,
-such as hash-table size, tablebase cache size, maximum number of processors
-that SMP engines can use, and where to find the Polyglot adapter needed
-to run UCI engines under XBoard. The feature that allows setting of these parameters on
-engines is new since XBoard 4.3.15, so not many XBoard/WinBoard engines respond
-to it yet, but UCI engines should.
-
-It is also possible to specify a GUI opening book here, i.e. an opening
-book that XBoard consults for any position a playing engine gets in.
-It then forces the engine to play the book move, rather than to think up its own,
-if that position is found in the book.
-The book can switched on and off independently for either engine.
-The way book moves are chosen can be influenced through the settings of
-book depth and variety.
-After both sides have played more moves than the specified depth,
-the book will no longer be consulted.
-When the variety is set to 50, moves will be played with the probability
-specified in the book.
-When set to 0, only the move(s) with the highest probability will be played.
-When set to 100, all listed moves will be played with equal pobability.
-Other settings interpolate between that.
-The shifted @kbd{Alt+U} key is a keyboard equivalent.
 
 @subsection Adjudications
 @cindex Adjudications, Menu Item
@@ -1343,7 +1448,7 @@ option is set, as in that case all games are saved to the specified file.
 @cindex Background Observe, Menu Item
 Setting this option will make XBoard suppress display of any boards
 from observed games while you are playing.
-In stead the last such board will be remembered,
+Instead the last such board will be remembered,
 and shown to you when you right-click the board.
 This allows you to peek at your bughouse partner's game when you want,
 without disturbing your own game too much.
@@ -1385,6 +1490,14 @@ In combination with the @samp{Seek Graph} option this
 will cause automatic update of the seek graph while it is up.
 This only works on FICS and ICC,
 and requires a lot of bandwidth on a busy server.
+@item Auto-InputBox PopUp
+@cindex Auto-InputBox PopUp, Menu Item
+Controls whether the ICS Input Box will pop up automatically when
+you type a printable character to the board window in ICS mode.
+@item Quit After Game
+@cindex Quit After Game, Menu Item
+Controls whether XBoard will automatically disconnect from the ICS
+and close when the game currently in progress finishes.
 @item Premove
 @itemx Premove White
 @itemx Premove Black
@@ -1413,7 +1526,7 @@ of the game.
 @cindex ICS Alarm Time, Menu Item
 When this option is on, an alarm sound is played when your clock
 counts down to the icsAlarmTime in an ICS game.
-(By default, the time is 5 seconds, but you can pecify other values
+(By default, the time is 5 seconds, but you can specify other values
 with the Alarm Time spin control.) 
 For games with time controls that include an increment, the
 alarm will sound each time the clock counts down to the icsAlarmTime.
@@ -1428,10 +1541,10 @@ The colors can be individually selected for each type,
 through the accompanying text edits.
 @end table
 
-@subsection Match Options
-@cindex Match Options, Menu Item
+@subsection Tournament Options
+@cindex Tournament Options, Menu Item
 Summons a dialog where you can set options important for playing automatic 
-matches between two chess programs 
+matches between two or more chess programs 
 (e.g. by using the @samp{Machine Match} menu item in the @samp{Mode} menu).
 @table @asis
 @item Tournament file
@@ -1444,7 +1557,7 @@ two-player match with the currently loaded engines,
 you must not leave this field blank. 
 When you enter the name of an existing tournament file, 
 XBoard will ignore all other input specified in the dialog, 
-and will take them from that tournament file.
+and will take the corresponding info from that tournament file.
 This resumes an interrupted tournament, or adds another XBoard
 agent playing games for it to those that are already doing so.
 Specifying a not-yet-existing file will cause XBoard to create it, 
@@ -1467,13 +1580,13 @@ Default: sync after cycle, but not after round.
 @itemx Tourney participants
 @cindex Select Engine, Menu Item
 @cindex Tourney participants, Menu Item
-With the Select Engine drop-down list you can pick an engine from your list 
-of installed engines in the settings file, to be added to the tournament. 
+From the Select Engine listbox you can pick an engine from your list 
+of engines registered in the settings file, to be added to the tournament.
 The engines selected so far will be listed in the â€˜Tourney participants’ memo. 
 The latter is a normal text edit, so you can use normal text-editing functions 
-to delete engines you selected by accident, or change their order. 
-Do not type names yourself there, because names that do not exactly match 
-one of the names from the drop-down list will lead to undefined behavior.
+to delete engines you selected accidentally, or change their order. 
+Typing names here yourself is not recommended, because names that do not exactly match 
+one of the names from the selection listbox will lead to undefined behavior.
 @item Tourney type
 @cindex Tourney type, Menu Item
 Here you can specify the type of tournament you want. 
@@ -1496,8 +1609,8 @@ Such multiple games can be played in a row,
 as specified by the â€˜number of games per pairing’, 
 or by repeating the entire tournament schedule a number of times 
 (specified by the â€˜number of tourney cycles’). 
-The total number of times two engine meet will be the product of these two. 
-Default is 1 cycle; 
+The total number of times two engines meet will be the product of these two. 
+Default is 1 cycle;
 the number of games per pairing is the same as the default number of match games, 
 stored in your settings file through the @code{defaultMatchGames} option.
 @item Save Tourney Games
@@ -1527,8 +1640,8 @@ In this case the first (odd) games will randomly select from the book,
 but the second (even) games will select the same moves from the book as the previous game.
 (Note this leads to the same opening only if both engines use the GUI book!)
 Default: No game or position file will be used. The default index if such a file is used is 1.
-@item Disable own engine bools be default
-@cindex Disable own engine bools be default, Menu Item
+@item Disable own engine books be default
+@cindex Disable own engine books be default, Menu Item
 Setting this option reverses the default situation for use of the GUI opening book
 in tournaments from what it normally is, namely not using it.
 So unless the engine is installed with an option to explicitly specify it should
@@ -1559,6 +1672,16 @@ and then puts the originally proposed name for the tourney file back.
 You can then run a tourney with the same parameters
 (possibly after changing the proposed name of the tourney file for the new tourney)
 by pressing 'OK'.
+@item Continue Later
+@cindex Continue Later, Menu Item
+Pressing the @samp{Continue Later} button confirms the current value of all
+items in the dialog and closes it,
+but will not automatically start the tournament.
+This allows you to return to the dialog later without losing the settings you
+already entered, to adjust paramenters through other menu dialogs.
+(The @samp{Common Engine Setting}, @samp{Time Control} and @samp{General Options}
+dialogs can be accessed without closing the @samp{Tournament Options} dialog
+through the respective buttons at the bottom of the latter.)
 @end table
 
 @subsection Load Game Options
@@ -1567,19 +1690,24 @@ Summons a dialog where you can set the @code{autoDisplayComment} and
 @code{autoDisplayTags} options, (which control popups when viewing loaded games),
 and specify the rate at which loaded games are auto-played,
 in seconds per move (which can be a fractional number, like 1.6).
+This rate is also used with the @code{Analyze Game} menu item.
 You can also set search criteria for determining which games
 will be displayed in the Game List for a multi-game file, 
 and thus be eligible for loading:
 @table @asis
 @item Elo of strongest player
 @itemx Elo of weakest player
-@itemx year
+@itemx No games before year
 @cindex Elo of strongest player, Menu Item
 @cindex Elo of weakest player, Menu Item
-@cindex year, Menu Item
+@cindex No games before year, Menu Item
 These numeric fields set thresholds (lower limits) on the Elo rating of the mentioned player,
 or the date the game was played.
 Defaults: 0
+@item Final nr of pieces
+@cindex Final nr of pieces, Menu Item
+Here you can enter a range (e.g. 8-10), and only games will be selected that
+has a number of men in this range on the board in their final position.
 @item Search mode
 @cindex Search mode, Menu Item
 @cindex find position, Menu Item
@@ -1605,7 +1733,7 @@ and can thus be used to refine a search based on multiple criteria.
 @item number of consecutive positions
 @cindex number of consecutive positions, Menu Item
 When you are searching by material, rather than for an exact match,
-this parameter indicates forhowmany consecutive game positions
+this parameter indicates for how many consecutive game positions
 the same amount of material must be on the board before it is
 considered a match.
 @item Also match reversed colors
@@ -1646,7 +1774,7 @@ on the lines in the game list, and their order.
 @subsection Sound Options
 @cindex Sound Options, Menu Item
 Summons a dialog where you can specify the sounds that should accompany
-various events that can occur XBoard.
+various events that can occur in XBoard.
 Most events are only relevant to ICS play, 
 but the move sound is an important exception.
 For each event listed in the dialog, 
@@ -1819,6 +1947,7 @@ interchangeably.
 * Load and Save options::       Input/output options.
 * User interface options::      Look and feel options.
 * Adjudication Options::        Control adjudication of engine-engine games.
+* Install options::             Maintaining and extending the XBoard install.
 * Other options::               Miscellaneous.
 @end menu
 
@@ -1950,29 +2079,29 @@ Otherwise the same applies as for the @samp{-matchGames} option,
 over which it takes precedence if both are specified. (See there.)
 Default: 0 (do not run a match).
 @item -fcp or -firstChessProgram program
+@itemx -scp or -secondChessProgram program
 @cindex fcp, option
 @cindex firstChessProgram, option
-Name of first chess engine.
-Default: @file{Fairy-Max}.
-@item -scp or -secondChessProgram program
 @cindex scp, option
 @cindex secondChessProgram, option
-Name of second chess engine, if needed.
-A second chess engine is started only in Two Machines (match) mode.
-Default: @file{Fairy-Max}.
+Name of first and second chess engine, respectively.
+A second chess engine is started only in Two Machines (match) mode,
+or in Analyze mode with two engines.
+The second engine is by default the same as the first.
+Default for the first engine: @file{fairymax}.
 @item -fe or -firstEngine nickname
+@itemx -se or -secondEngine nickname
+@cindex se, option
+@cindex secondEngine, option
 @cindex fe, option
 @cindex firstEngine, option
-This is an alternative to the @code{fcp} option for specifying the first engine,
-for engines that were already configured (using the @samp{Load Engine} dialog)
+This is an alternative to the @code{fcp} and @code{scp} options
+for specifying the first and second engine,
+for engines that were already registered (using the @samp{Load Engine} dialog)
 in XBoard's settings file.
 It will not only retrieve the real name of the engine,
 but also all options configured with it.
 (E.g. if it is UCI, whether it should use book.)
-@item -se or -secondEngine nickname
-@cindex se, option
-@cindex secondEngine, option
-As @code{fe}, but for the second engine.
 @item -fb/-xfb or -firstPlaysBlack true/false
 @cindex fb, option
 @cindex firstPlaysBlack, option
@@ -2111,6 +2240,11 @@ Forces shuffling of the opening setup in variants that normally have a fixed ini
 Shufflings are symmetric for black and white, and exempt King and Rooks in variants
 with normal castling.
 Remains in force until a new variant is selected.
+@item -fischerCastling
+@cindex fischerCastling, option
+Specifies Fischer castling (as in Chess960) should be enabled in variants
+that normally would not have it.
+Remains in force until a new variant is selected.
 @end table
 
 @node UCI + WB Engine Settings
@@ -2124,7 +2258,7 @@ Remains in force until a new variant is selected.
 @cindex sUCI, option
 @cindex firstIsUCI, option
 @cindex secondIsUCI, option
-Indicates if the mentioned engine executable file is an UCI engine, 
+Indicates if the mentioned engine executable file is a UCI engine, 
 and should be run with the aid of the Polyglot adapter rather than directly. 
 Xboard will then pass the other UCI options and engine name to Polyglot 
 on its command line, according to the option @code{adapterCommand}.
@@ -2139,11 +2273,11 @@ on its command line, according to the option @code{adapterCommand}.
 Options similar to @code{fUCI} and @code{sUCI}, except that they
 use the indicated engine with the protocol adapter specified in
 the @samp{uxiAdapter} option.
-This can then be configured for running an UCCI or USI adapter,
+This can then be configured for running a UCCI or USI adapter,
 as the need arises.
 @item -adapterCommand string
 @cindex adapterCommand, option
-The string conatins the command that should be issued by XBoard
+The string contains the command that should be issued by XBoard
 to start an engine that is accompanied by the @code{fUCI} option.
 Any identifier following a percent sign in the command (e.g. %fcp)
 will be considered the name of an XBoard option, and be replaced
@@ -2212,7 +2346,7 @@ in a book buffer.
 By playing an match in this mode, a book will be built from scratch.
 The only output are the saved games, which can be converted to an
 actual book later, with the @samp{Save Games as Book} command.
-This command can also be used to pre-fill the book buffer
+The latter command can also be used to pre-fill the book buffer
 before adding new games based on the probing algorithm.
 @item -fn string or -firstPgnName string
 @itemx -sn string or -secondPgnName string
@@ -2222,7 +2356,7 @@ before adding new games based on the probing algorithm.
 @cindex sn, option
 Indicates the name that should be used for the engine in PGN tags of
 engine-engine games.
-Intended to allow you to install verions of the same engine with different settings, 
+Intended to allow you to install versions of the same engine with different settings, 
 and still distinguish them.
 Default: "". 
 @item -defaultHashSize n
@@ -2248,21 +2382,24 @@ e.g. "nalimov:/usr/local/share/egtb".
 If the name part matches that of a format that the engine requests through a feature command, 
 xboard will relay the path name for this format to the engine through an egtpath command. 
 One egtpath command for each matching format will be sent. 
-Popular formats are "nalimov" DTM tablebases and "scorpio" bitbases.
+Popular formats are "nalimov" and "gaviota" DTM tablebases,
+syzygy DTZ tablebases and "scorpio" bitbases.
 Default: "".
 @item -firstChessProgramNames=@{names@}
-This option lets you customize the drop-down list of chess engine names 
-that appears in the @samp{Load Engine} and @samp{Match Options} dialog. 
+@cindex firstChessProgramNames, option
+This option lets you customize the listbox with chess-engine names 
+that appears in the @samp{Load Engine} and @samp{Tournament Options} dialog. 
 It consists of a list of strings, one per line. 
 When an engine is loaded, the corresponding line is prefixed with "-fcp ",
 and processed like it appeared on the command line.
 That means that apart from the engine command,
-it can contain any list of XBoard options you want to use with this engine.
+it can contain any number of XBoard options you want to use with this engine.
 (Commonly used options here are -fd, -firstXBook, -fUCI, -variant.)
 
 The value of this option is gradually built as you load new engines
 through the @samp{Load Engine} menu dialog, with @samp{Add to list} ticked. 
-To change it, edit your settings file with a plain text editor.
+To change it in other ways, (e.g. deleting engines),
+use the menu item @samp{Edit Engine List} in the @samp{Engine} menu.
 @end table
 
 @node Tournament options
@@ -2314,9 +2451,9 @@ The mentioned engines will play in the tourney.
 Volatile option, but stored in tourney file.
 @item -results string
 @cindex results, option
-The string of +=- characters lists the result of all played games in a toruney. 
+The string of +=- characters lists the result of all played games in a tourney. 
 Games currently playing are listed as *, 
-while a space indicates a game that is not yet played or playing . 
+while a space indicates a game that is not yet played. 
 Volatile option, but stored in tourney file.
 @item -defaultTourneyName string
 @cindex defaultTourneyName, option
@@ -2342,7 +2479,7 @@ where A and B are participant numbers (in the range 1-N).
 @cindex afterGame, option
 @cindex afterTourney, option
 When non-empty, the given string will be executed as a system command 
-after each tournament game, orafterthe tourney completes, respectively.
+after each tournament game, or after the tourney completes, respectively.
 This can be used, for example, to autmatically run a cross-table generator
 on the PGN file where games are saved, to update the tourney standings.
 Default: ""
@@ -2545,7 +2682,7 @@ will not be automatically displayed.
 Only a summary of time left and material of both players will appear
 in the message field above the board.
 XBoard will remember the last board it has received this way,
-and will display it in stead of the position in your own game
+and will display it instead of the position in your own game
 when you press the right mouse button.
 No other information is stored on such games observed in the background;
 you cannot save such a game later, or step through its moves.
@@ -2689,7 +2826,12 @@ only if the colorizeMessages is on.
 CShout is synonymous with SShout.
 @item -soundMove filename
 @cindex soundMove, option
-This sound is used by the Move Sound menu option.  Default: "$".
+This sound is played when a player other than yourself makes a move.
+Default: "$".
+@item -soundRoar filename
+@cindex soundRoar, option
+This sound is played when a Lion makes a hit-and-run or double capture/
+Default: "" (no sound).
 @item -soundIcsAlarm filename
 @cindex soundIcsAlarm, option
 This sound is used by the ICS Alarm menu option.  Default: "$".
@@ -2790,6 +2932,10 @@ first position of the file when it has reached a specified value.
 If this option is set, XBoard appends the final position reached
 in every game played to the specified file. The file name @file{-}
 specifies the standard output.
+@item -positionDir directory
+@cindex positionDir, option
+Specifies the directory where file browsing should start when using
+the @samp{Load Position} menu item.
 @item -pgnExtendedInfo true/false
 @cindex pgnExtendedInfo, option
 If this option is set, XBoard saves depth, score and time used for each 
@@ -2842,7 +2988,7 @@ So the settings will be saved to the file specified in the last
 -saveSettingsFile or succesfull -settingsFile / -ini command,
 if any, and in /etc/xboard/xboard.conf otherwise.
 Usualy the latter is only accessible for the system administrator, though, 
-and will be used to contain system-wide default setings, amongst which
+and will be used to contain system-wide default settings, amongst which
 a -saveSettingsFile and -settingsFile options to specify a settings file
 accessible to the individual user, such as ~/.xboardrc in the user's
 home directory.
@@ -2857,15 +3003,6 @@ Default: true.
 @cindex User interface options
 @cindex Options, User interface
 @table @asis
-@item -display
-@itemx -geometry
-@itemx -iconic
-@itemx -name
-@cindex display, option
-@cindex geometry, option
-@cindex iconic, option
-@cindex resource name, option
-These and most other standard Xt options are accepted.
 @item -noGUI
 @cindex noGUI, option
 Suppresses all GUI functions of XBoard 
@@ -2886,12 +3023,14 @@ Default: 0.
 Specify the images to be used as player logos when @code{logoSize}
 is non-zero, next to the white and black clocks, respectively.
 @item -autoLogo true/false
-@item -logoDir filename
+@itemx -logoDir filename
 @cindex autoLogo, option
 @cindex logoDir, option
 When @code{autoLogo} is set, XBoard will search for a PNG image file
 with the name of the engine or ICS in the directory specified
 by @code{logoDir}.
+For a human player it will look for a file <username>.png in this
+directory, but only when ~/.logo.png does not provide one.
 @item -recentEngines number
 @itemx -recentEngineList list
 @cindex recentEngines, option
@@ -2906,17 +3045,6 @@ the last one is discarded.
 Changes in the list will only become visible the next session,
 provided you saved the settings.
 Default: 6.
-@item -autoInstall list
-@cindex autoInstall, option
-When the list is set to a non-empty string, XBoard will scan the
-operating system's plugin directory for engines supporting UCI
-and XBoard protocol at startup.
-When it finds an engine that was installed after it last saved
-its settings, a line to launch that engine (as per specs in
-the plugin file) is appended to the -firstChessProgramNames
-list of installed engines.
-In the future it will be possible to use the list to limit
-this automatic adding of engines to a certain types of variants.
 @item -oneClickMove true/false
 @cindex oneClickMove, option
 When set, this option allows you to enter moves by only clicking the to-
@@ -2925,6 +3053,11 @@ is possible.
 Double-clicking a piece (or clicking an already selected piece)
 will instruct that piece to make the only capture it can legally do.
 Default: false.
+@item -monoMouse true/false
+@cindex monoMouse, option
+When set button 1 clicks on empty squares in Edit Position mode
+will be interpreted as button 3 clicks, so they place a piece.
+Default: false.
 @item -movesound/-xmovesound or -ringBellAfterMoves true/false
 @cindex movesound, option
 @cindex bell, option
@@ -3132,7 +3265,8 @@ If the option value is a pattern that does not specify
 the font size, XBoard tries to choose an appropriate font for
 the board size being used.
 Default Xaw: -*-helvetica-medium-r-normal--*-*-*-*-*-*-*-*.
-Default GTK: Sans Bold %d.
+Default GTK: Sans Bold %d
+@item -tagsFont font
 @cindex tagsFont, option
 @cindex Font, tags
 The font used in the Edit Tags dialog.
@@ -3140,6 +3274,7 @@ If the option value contains %d, XBoard will replace it by
 an appropriate font for the board size being used.
 (Only used in GTK build.)
 Default: Sans Normal %d.
+@item -commentFont font
 @cindex commentFont, option
 @cindex Font, comment
 The font used in the Edit Comment dialog.
@@ -3147,6 +3282,7 @@ If the option value contains %d, XBoard will replace it by
 an appropriate font for the board size being used.
 (Only used in GTK build.)
 Default: Sans Normal %d.
+@item -icsFont font
 @cindex icsFont, option
 @cindex Font, ics
 The font used to display ICS output in the ICS  Chat window.
@@ -3156,6 +3292,7 @@ If the option value contains %d, XBoard will replace it by
 an appropriate font for the board size being used.
 (Only used in GTK build.)
 Default: Monospace Normal %d.
+@item -moveHistoryFont font
 @cindex moveHistoryFont, option
 @cindex Font, moveHistory
 The font used in Move History and Engine Output windows.
@@ -3165,6 +3302,7 @@ If the option value contains %d, XBoard will replace it by
 an appropriate font for the board size being used.
 (Only used in GTK build.)
 Default: Sans Normal %d.
+@item -gameListFont font
 @cindex gameListFont, option
 @cindex Font, gameList
 The font used in the listbox of the Game List window.
@@ -3190,10 +3328,22 @@ XBoard will look in the specified directory for an image in png
 or svg format for every piece type, with names like BlackQueen.svg,
 WhiteKnight.svg etc.
 When neither of these is found (or no valid directory is specified)
-XBoard will use the svg piece that was installed with it
+XBoard will first ty to use an image White/BlackTile.svg in that same
+directory, and if that is not present either
+use the svg piece that was installed with it
 (from the source-tree directory @samp{svg}).
 Both svg and png images will be scaled by XBoard to the required size,
 but the png pieces lose much in quality when scaled too much.
+Default: "".
+@item -inscriptions utf8string
+@cindex inscriptions, option
+The positions in the utf8string correspond to XBoard's piece types,
+and for each type a glyph can be defined.
+This glyph will then be rendered on top of the image for the piece.
+This is useful in combination with the White/BlackTile.svg images,
+which could be the image of a blank Shogi tile, for writing the
+kanji piece name on top of it on the fly.
+Default: "".
 
 @item -whitePieceColor color
 @itemx -blackPieceColor color
@@ -3327,9 +3477,9 @@ When it is off, the Shift key will be ignored.
 Default: False.
 @item -appendPV true|false
 @cindex appendPV, option
-When this option is on, right-clicking a PV in the Engine Output window
-will play the first move of that PV in Analyze mode,
-or as many moves as you walk through by moving the mouse.
+When this option is on, a button 3 click left of a PV in the Engine
+Output window will play the first move of that PV in Analyze mode,
+or as many moves as you walk through it by moving the mouse.
 Default: False.
 @item -absoluteAnalysisScores true|false
 @cindex absoluteAnalysisScores, option
@@ -3346,7 +3496,7 @@ Default: False.
 @cindex memoHeaders, option
 When true, column headers will be displayed in the Engine Output window
 for the depth, score, time and nodes data.
-Right-clicking on these headers will hide or show the corresponding data.
+A button 3 click on these headers will hide or show the corresponding data.
 (Not intended for dynamic use, as already printed data of the current search
 will not be affected!)
 Defaul: False.
@@ -3407,6 +3557,75 @@ Beware that positions that have different castling or en-passant rights do not c
 as repeats, XBoard is fully e.p. and castling aware!
 @end table
 
+@node Install options
+@section Install options
+@cindex Options, install
+@table @asis
+@item --show-config parameter
+@cindex show-config, option
+When called with this option, XBoard will close immediately after printing the
+value of the indicated configuration parameter, or, when no parameter was given,
+after printing a list of all such parameters.
+Currently the only valid values for parameter are Datadir and Sysconfdir.
+This option can be used by install scripts for board themes
+to figure out where the currently active XBoard stores its data.
+@item -date timestamp
+@itemx -saveDate timestamp
+@cindex date, option
+@cindex saveDate, option
+These options specify an epoch as an integer number.
+The @code{saveDate} option is written by XBoard in the settings file every time the
+settings are saved, with the current time, so that later runs of XBoard can know this.
+The @code{date} option can be included in settings files to indicate when lines
+following it were added to those files.
+Some options will be ignored if the epoch specified by the latest @code{date} option
+predates the -saveDate setting (implying they must have been seen before).
+@item -autoInstall list
+@cindex autoInstall, option
+When the list is set to a non-empty string, XBoard will scan the
+operating system's plugin directory for engines supporting UCI
+and XBoard protocol at startup.
+When it finds an engine that was installed after it last saved
+its settings, a line to launch that engine (as per specs in
+the plugin file) is appended to the -firstChessProgramNames
+list of installed engines.
+In the future it will be possible to use the autoInstall list to limit
+this automatic adding of engines based on the chess variant they play.
+@item -addMasterOption string
+@cindex addMasterOption, option
+Adds the mentioned string as an additional line of XBoard's master settings file,
+after adding a line with a @code{date} option to timestamp it.
+Intended to add options of the 'install' type (see below) to the master file,
+which will then be processed by any XBoard that has not seen them since
+it last saved its settings.
+@item -autoClose
+@cindex autoClose, option
+The presence of this option cause XBoard to close immediately after processing
+all its options (from settings file and command line).
+Typically used from install scripts together with options that change XBoard's
+settings files, so that XBoard can be run in batch mode rather than interactively.
+@item -installEngine string
+@cindex installEngine, option
+Adds the given string as an additional line to the value of the
+@code{firstChessProgramNames} option when the -saveDate setting preceeds the -date setting.
+Intended for adding to the master settings file with the aid of -addMasterOption
+in the install script of engines, as a method for broadcasting the presence
+of a new engine to all users,
+which would then see it automatically registered with XBoard.
+Made obsolete by the advent of the plugin standard (see the @code{autoInstall} option),
+which broadcasts such presence in a non-XBoard-specific way
+by dropping *.eng files in a certain system directory.
+@item -installTheme string
+@cindex installTheme, option
+Adds the given string as an additional line to the value of the
+-themeNames option when the -saveDate setting preceeds the -date setting.
+Intended for adding to the master settings file with the aid of -addMasterOption
+in the install script of board graphics themes,
+as a method for broadcasting the availability of a new theme to all users,
+who would then see the theme appear automatically in the listbox in the
+View Board menu dialog next time they run XBoard.
+@end table
+
 @node Other options
 @section Other options
 @cindex Options, miscellaneous
@@ -3439,7 +3658,7 @@ Default: "-ncp -engineOutputUp false -saveSettingsOnExit false".
 When XBoard is invoked with a single argument that is a file
 with .trn extension, it will assume this argument to be the value
 of a @code{tourneyFile} option,
-and apped the value of the persistent option @code{tourneyOptions}
+and append the value of the persistent option @code{tourneyOptions}
 as stored in the settings file to the command line.
 Thus the value of @code{tourneyOptions} can be
 used to configure XBoard to automatically start running a
@@ -3456,7 +3675,7 @@ MachineWhite, MachineBlack, TwoMachines, Analysis,
 AnalyzeFile, EditGame, EditPosition, and Training.
 @item -variant varname
 @cindex variant, option
-Activates preliminary, partial support for playing chess variants
+Activates  (sometimes 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:
 
@@ -3485,37 +3704,44 @@ janus         A game with two Archbishops (10x8 board)
 courier       Medieval intermediate between shatranj and 
               modern Chess (on 12x8 board) 
 falcon        Patented 10x8 variant with two Falcon pieces
-berolina      Pawns capture straight ahead, and move diagonal 
+berolina      Pawns capture straight ahead, and move diagonally 
 cylinder      Pieces wrap around the board edge
 knightmate    King moves as Knight, and vice versa 
 super         Superchess (shuffle variant with 4 exo-pieces)
 makruk        Thai Chess (shatranj-like, P promotes on 6th rank)
 asean         ASEAN Chess (a modernized version of Makruk)
 spartan       Spartan Chess (black has unorthodox pieces)
+great         Great Shatranj, a 10x8 variant without sliders
+grand         Grand Chess, on 10x10 with Capablanca pieces
+lion          Mighty-Lion Chess, with a multi-capturing Lion
+elven         Eleven Chess, with Lion and crowned sliders on 10x10
+chu           Chu Shogi, historic 12x12 variant with 2x46 pieces
 fairy         A catchall variant in which all piece types 
               known to XBoard can participate (8x8)
 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
+In the shuffle variants, XBoard 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) 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
-rule when mate detection is switched on.
+kriegspiel.
+Berolina and cylinder chess are only partially supported,
+and can only be played with legality testing off.
+
+Apart from these standard variants, engines can define variants
+of arbitrary names, briefing XBoard transparently on the rules
+for piece movement, board size and initial setup,
+so that they work nearly as well as fully-supported standard variants.
+(But obviously only while using that engine.)
+The user might have to alter the adjudication settings for some
+variants, however. E.g. it makes no sense to adjudicate a draw
+after 50 reversible moves in variants that have a 64-move rule,
+or no similar rule at all.
+
+Default: "normal". Except when the first engine gave an explicit list
+of variants it supports, and 'normal' is not amongst those.
+In that case the first variant the engine mentioned it did play will
+be chosen.
 @item -boardHeight N
 @cindex boardHeight, option
 Allows you to set a non-standard number of board ranks in any variant. 
@@ -3545,25 +3771,34 @@ Default: -1
 @item -pieceToCharTable string
 @cindex pieceToCharTable, option
 The characters that are used to represent the piece types XBoard knows in FEN 
-diagrams and SAN moves. The string argument has to have an even length 
+diagrams and SAN moves.
+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.
+The string argument has to specify an even number of pieces 
 (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, 
+in an order that has not fully crystallized yet (currently FEACWMOHIJGDVLSU, 
 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 
+you are playing. If you have fewer characters in the string than XBoard has
+pieces, the pieces not mentioned will get assigned a period,
+and will not be usable in the variant.
+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.
 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. 
+Pawn in crazyhouse-like games, i.e. on capture it turns back to a Pawn. 
 A '+' similarly indicates the piece is a shogi-style promoted piece, that should 
 revert to its non-promoted version on capture (rather than to a Pawn).
-Note that promoted pieces are represented by pieces 11 further in the list.
-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.
-Default: ""
+By default the second 11 pieces known to XBoard are the promoted forms of the first 11.
+A piece specified by the character combination ^ plus letter will be assumed
+to be the promoted form of the piece indicated by that letter,
+and get a '+' assigned.
+To get around the limitation of the alphabet,
+piece IDs can also be 'dressed letters', i.e. a single letter
+(upper case for white, lower case for black)
+followed by a single quote or an exclamation point.
+Default: "" (meaning the default for the variant is used).
 @item -pieceNickNames string
 @cindex pieceNickNames, option
 The characters in the string are interpreted the same way as in the