Hi,

I've started to upgrade the git branches on code.x2go.org to 3.5. So far
I've completed:

 - nxcomp
 - nxcompext
 - nxcompshad
 - nxproxy

x2goagent is still missing, and this is a bit hairy. In order to find
out what has been actually changed compared to NX, I've compared the
sources in nxagent-3.4.0-5.tar.gz to what we ship in x2goagent. Here, I
noticed that 'our' x2goagent tarball actually combines several NX
'upstream' tarballs, among others 'nxagent' and 'nx-x11'. It is not
totally clear to me what tarballs have been exactly used to construct
the x2goagent sources.

As for modifications, I've grepped through all sources for 'x2go'
markers, and compared those files against the NX version. Find the diff
attached to this e-mail. Alex, do you remember any additional changes
that have been done to the NX sources?

As comparison, I've had a look what the freenx team is doing [1]. It
seems that they have had similar problems and also combined several
tarballs into the source package 'nx-x11'. Feel free to check.

[1] https://launchpad.net/~freenx-team/+archive/ppa/+packages

So, how to upgrade all this mess? Well, TBH, I think the FreeNX guys are
doing a great job with their package.  They have accumulated a fair
number of patches (18 to my counting) so far, which are mostly
undocumented but generally look reasonable on the first glance. I think
it would make sense to consider using their 'nx-x11' package as basis
for x2goagent and add the x2go modification as additional patch to that
package.

Comments/Flames welcome.

diff -Nur ../nx/nx-X11/programs/Xserver/hw/nxagent//Display.c programs/Xserver/hw/nxagent/Display.c
--- ../nx/nx-X11/programs/Xserver/hw/nxagent//Display.c	2009-09-15 15:48:17.000000000 +0200
+++ programs/Xserver/hw/nxagent/Display.c	2011-06-29 15:55:13.219528420 +0200
@@ -1186,7 +1186,7 @@
        but rather use a specific function that may eventually call
        FatalError() on its turn.
 */
-    FatalError("Unable to open display '%s'.\n", nxagentDisplayName);
+    FatalError("x2goagent: Unable to open display '%s'.\n", nxagentDisplayName);
   }
 
   nxagentXConnectionNumber = XConnectionNumber(nxagentDisplay);
@@ -1331,7 +1331,6 @@
    * moment as we reimplement nxagentConstrainCursor()
    * to skip the "constrain" stuff.
    */
-
   #ifdef TEST
   fprintf(stderr, "nxagentOpenDisplay: Going to create agent's confine window.\n");
   #endif
@@ -1347,6 +1346,9 @@
   fprintf(stderr, "nxagentOpenDisplay: Created agent's confine window with id [%ld].\n",
               nxagentConfineWindow);
   #endif
+  
+  
+
 
   if (!(nxagentUserGeometry.flag & XValue))
   {
@@ -1407,6 +1409,9 @@
     nxagentLogoBlack = 0x000000;
     nxagentLogoRed   = 0xff0000;
     nxagentLogoWhite = 0xffffff;
+    /*X2GO*/
+    nxagentLogoGray   = 0x222222;
+
   }
   else
   {
@@ -1417,6 +1422,9 @@
     nxagentLogoRed   = nxagentLogoColor(0xff0000);
     nxagentLogoBlack = nxagentLogoColor(0x000000);
     nxagentLogoWhite = 0xffffff;
+    /*X2GO*/
+    nxagentLogoGray   = nxagentLogoColor(0x222222);
+
   }
 
   #ifdef WATCH
@@ -2612,6 +2620,7 @@
               nxagentConfineWindow);
   #endif
 
+
   nxagentLogoDepth = DefaultDepth(nxagentDisplay, DefaultScreen(nxagentDisplay));
 
   pV = nxagentVisuals[nxagentDefaultVisualIndex];
@@ -2625,6 +2634,9 @@
     nxagentLogoBlack = 0x000000;
     nxagentLogoRed   = 0xff0000;
     nxagentLogoWhite = 0xffffff;
+          /*X2GO*/
+    nxagentLogoGray   = 0x222222;
+
   }
   else
   {
@@ -2634,6 +2646,8 @@
 
     nxagentLogoRed   = nxagentLogoColor(0xff0000);
     nxagentLogoBlack = nxagentLogoColor(0x000000);
+                /*X2GO*/
+    nxagentLogoGray   = nxagentLogoColor(0x222222);
     nxagentLogoWhite = 0xffffff;
   }
 
diff -Nur ../nx/nx-X11/programs/Xserver/hw/nxagent//Icons.h programs/Xserver/hw/nxagent/Icons.h
--- ../nx/nx-X11/programs/Xserver/hw/nxagent//Icons.h	2007-05-30 16:29:28.000000000 +0200
+++ programs/Xserver/hw/nxagent/Icons.h	2011-06-29 15:55:13.219528420 +0200
@@ -22,7 +22,11 @@
 #include <X11/xpm.h>
 #undef Pixel
 
+/*
+X2GO
 #define NXAGENT_ICON_NAME  "nxagent.xpm"
+*/
+#define NXAGENT_ICON_NAME  "x2go.xpm"
 
 #define NXAGENT_PLACEHOLDER_NAME  "nxmissing.xpm"
 
diff -Nur ../nx/nx-X11/programs/Xserver/hw/nxagent//Keyboard.c programs/Xserver/hw/nxagent/Keyboard.c
--- ../nx/nx-X11/programs/Xserver/hw/nxagent//Keyboard.c	2009-08-25 13:22:15.000000000 +0200
+++ programs/Xserver/hw/nxagent/Keyboard.c	2011-06-29 15:55:13.219528420 +0200
@@ -88,7 +88,6 @@
 #undef  TEST
 #undef  DEBUG
 #undef  WATCH
-
 #ifdef WATCH
 #include "unistd.h"
 #endif
@@ -1763,7 +1762,7 @@
   if (drulesLen != 0 && drules != NULL && dmodel != NULL)
   {
     fprintf(stderr, "nxagentKeycodeConversionSetup: "
-                "Remote: [%s,%s,%s,%s,%s].\n", drules, dmodel, dlayout,
+                "Remote: [drules-%s-,dmodel-%s-,dlayout-%s-,dvariant-%s-,doptions-%s-].\n", drules, dmodel, dlayout,
                     dvariant, doptions);
   }
   else
@@ -1779,6 +1778,15 @@
                     strcmp(dmodel, "evdev") == 0))
   {
     nxagentKeycodeConversion = 1;
+  #ifdef DEBUG
+    fprintf(stderr, "conversion is on.\n");
+  #endif
+  }
+  else
+  {
+  #ifdef DEBUG
+    fprintf(stderr, "conversion is off.\n");
+  #endif
   }
 
   if (drules != NULL)
diff -Nur ../nx/nx-X11/programs/Xserver/hw/nxagent//Makefile programs/Xserver/hw/nxagent/Makefile
diff -Nur ../nx/nx-X11/programs/Xserver/hw/nxagent//Screen.c programs/Xserver/hw/nxagent/Screen.c
--- ../nx/nx-X11/programs/Xserver/hw/nxagent//Screen.c	2009-09-09 16:32:13.000000000 +0200
+++ programs/Xserver/hw/nxagent/Screen.c	2011-06-29 15:55:13.239528420 +0200
@@ -424,7 +424,7 @@
   XSetWMProperties(nxagentDisplay, w,
                       &windowName, &windowName,
                           NULL , 0 , &sizeHints, &wmHints, NULL);
-
+ 
   /*
    * Enable events from the icon window.
    */
@@ -779,6 +779,10 @@
     fprintf(stderr, "--------------- %s -----------------.\n", hdrMessage);
   }
 
+  
+  fprintf(stderr, "FS WINDOW %ld\n", nxagentFullscreenWindow);
+  fprintf(stderr, "ICON WINDOW %ld\n", nxagentIconWindow);
+  fprintf(stderr, "wname %s\n", nxagentWindowName);
   fprintf(stderr, "%s Root window at offset (%d,%d) size (%d,%d).\n", prefix,
               nxagentOption(RootX), nxagentOption(RootY),
                   nxagentOption(RootWidth), nxagentOption(RootHeight));
@@ -1703,7 +1707,20 @@
       #ifdef TEST
       fprintf(stderr, "nxagentOpenScreen: Created new default window with id [%ld].\n",
                   nxagentDefaultWindows[pScreen->myNum]);
+      
+      fprintf(stderr, "nxagentOpenScreen: Setting WM_CLASS and WM_NAME for window withid [%ld].\n",
+                  nxagentDefaultWindows[pScreen->myNum]);      
       #endif
+      
+      XClassHint hint;
+      hint.res_name=malloc(strlen("X2GoAgent")+1);
+      hint.res_class=malloc(strlen("X2GoAgent")+1);
+      strcpy(hint.res_name,"X2GoAgent");
+      strcpy(hint.res_class,"X2GoAgent");
+      XSetClassHint(nxagentDisplay,nxagentDefaultWindows[pScreen->myNum],&hint);
+      free(hint.res_name);
+      free(hint.res_class);
+      
 
       if (nxagentOption(Fullscreen))
       {
diff -Nur ../nx/nx-X11/programs/Xserver/hw/nxagent//Splash.c programs/Xserver/hw/nxagent/Splash.c
--- ../nx/nx-X11/programs/Xserver/hw/nxagent//Splash.c	2007-05-30 16:29:29.000000000 +0200
+++ programs/Xserver/hw/nxagent/Splash.c	2011-06-29 15:55:13.239528420 +0200
@@ -53,6 +53,8 @@
 int nxagentLogoWhite;
 int nxagentLogoRed;
 int nxagentLogoBlack;
+/*X2GO*/
+int nxagentLogoGray;
 
 void nxagentPaintLogo(Window win, GC gc, int scale, int width, int height);
 
@@ -156,16 +158,18 @@
             GetTimeInMillis() - startTime);
   }
   #endif
-
   return True;
 }
 
 void nxagentPaintLogo(Window win, GC gc, int scale, int width, int height)
 {
+/*
+changed for x2go system
+*/
+
   XPoint    rect[4];
   XPoint    m[12];
   int w, h, c, w2, h2;
-
   #ifdef DEBUG
   fprintf(stderr, "nxagenShowtLogo: Got called.\n");
   #endif
@@ -218,7 +222,7 @@
   XSetForeground(nxagentDisplay, gc, nxagentLogoRed);
   XSetBackground(nxagentDisplay, gc, nxagentLogoWhite);
 
-  rect[0].x = w2-10*c;               rect[0].y = h2-8*c;
+/*  rect[0].x = w2-10*c;               rect[0].y = h2-8*c;
   rect[1].x = w2-10*c;               rect[1].y = h2+8*c;
   rect[2].x = w2+10*c;               rect[2].y = h2+8*c;
   rect[3].x = w2+10*c;               rect[3].y = h2-8*c;
@@ -238,11 +242,12 @@
   XSetBackground(nxagentDisplay, gc, nxagentLogoRed);
 
   XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin);
-
+*/
+ w2-=2*c;
   /*
    * Begin 'M'.
    */
-
+/*
   m[0].x = w2-3*c;  m[0].y = h2-5*c;
   m[1].x = w2+7*c;  m[1].y = h2-5*c;
   m[2].x = w2+7*c;  m[2].y = h2+5*c;
@@ -256,37 +261,151 @@
   m[10].x = w2-1*c; m[10].y = h2+5*c;
   m[11].x = w2-3*c; m[11].y = h2+5*c;
 
-  XSetForeground(nxagentDisplay, gc, nxagentLogoRed);
-  XSetBackground(nxagentDisplay, gc, nxagentLogoWhite);
 
-  XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, m, 12, Nonconvex, CoordModeOrigin);
+  XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, m, 12, Nonconvex, CoordModeOrigin);*/
 
   /*
    * End 'M'.
    */
 
   /*
-   * Begin '!'.
+   * Begin 'X'.
    */
 
+  XSetForeground(nxagentDisplay, gc, nxagentLogoGray);
+  XSetBackground(nxagentDisplay, gc, nxagentLogoWhite);
   rect[0].x = w2-7*c;               rect[0].y = h2-5*c;
-  rect[1].x = w2-5*c;               rect[1].y = h2-5*c;
-  rect[2].x = w2-5*c;               rect[2].y = h2+2*c;
-  rect[3].x = w2-7*c;               rect[3].y = h2+2*c;
+  rect[1].x = w2-8*c;               rect[1].y = h2-5*c;
+  rect[2].x = w2-4*c;               rect[2].y = h2+3*c;
+  rect[3].x = w2-3*c;               rect[3].y = h2+3*c;
+  XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin);
+
+  rect[0].x = w2-4*c;               rect[0].y = h2-5*c;
+  rect[1].x = w2-3*c;               rect[1].y = h2-5*c;
+  rect[2].x = w2-7*c;               rect[2].y = h2+3*c;
+  rect[3].x = w2-8*c;               rect[3].y = h2+3*c;
+  XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin);
+
+  /*
+   * End 'X'.
+   */
+
+  /*
+   * Start '2'.
+   */
 
+  rect[0].x = w2-2*c;               rect[0].y = h2-5*c;
+  rect[1].x = w2-1*c;               rect[1].y = h2-5*c;
+  rect[2].x = w2-1*c;               rect[2].y = h2-3*c;
+  rect[3].x = w2-2*c;               rect[3].y = h2-3*c;
   XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin);
 
-  rect[0].x = w2-7*c;               rect[0].y = h2+3*c;
-  rect[1].x = w2-5*c;               rect[1].y = h2+3*c;
-  rect[2].x = w2-5*c;               rect[2].y = h2+5*c;
-  rect[3].x = w2-7*c;               rect[3].y = h2+5*c;
+  rect[0].x = w2-2*c;               rect[0].y = h2-5*c;
+  rect[1].x = w2+2*c;               rect[1].y = h2-5*c;
+  rect[2].x = w2+2*c;               rect[2].y = h2-4*c;
+  rect[3].x = w2-2*c;               rect[3].y = h2-4*c;
+  XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin);
+
+  rect[0].x = w2+1*c;               rect[0].y = h2-5*c;
+  rect[1].x = w2+2*c;               rect[1].y = h2-5*c;
+  rect[2].x = w2+2*c;               rect[2].y = h2-2*c;
+  rect[3].x = w2+1*c;               rect[3].y = h2-2*c;
+  XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin);
 
+  rect[0].x = w2+2*c;               rect[0].y = h2-2*c;
+  rect[1].x = w2+1*c;               rect[1].y = h2-2*c;
+  rect[2].x = w2-2*c;               rect[2].y = h2+2*c;
+  rect[3].x = w2-1*c;               rect[3].y = h2+2*c;
   XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin);
 
+
+  rect[0].x = w2-2*c;               rect[0].y = h2+2*c;
+  rect[1].x = w2+2*c;               rect[1].y = h2+2*c;
+  rect[2].x = w2+2*c;               rect[2].y = h2+3*c;
+  rect[3].x = w2-2*c;               rect[3].y = h2+3*c;
+  XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin);
   /*
-   * End 'M'.
+   * End '2'.
    */
 
+  /*
+   * Start 'G'.
+   */
+
+  rect[0].x = w2+3*c;               rect[0].y = h2-5*c;
+  rect[1].x = w2+7*c;               rect[1].y = h2-5*c;
+  rect[2].x = w2+7*c;               rect[2].y = h2-4*c;
+  rect[3].x = w2+3*c;               rect[3].y = h2-4*c;
+  XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin);
+
+  rect[0].x = w2+3*c;               rect[0].y = h2-5*c;
+  rect[1].x = w2+4*c;               rect[1].y = h2-5*c;
+  rect[2].x = w2+4*c;               rect[2].y = h2+3*c;
+  rect[3].x = w2+3*c;               rect[3].y = h2+3*c;
+  XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin);
+
+  rect[0].x = w2+3*c;               rect[0].y = h2+2*c;
+  rect[1].x = w2+7*c;               rect[1].y = h2+2*c;
+  rect[2].x = w2+7*c;               rect[2].y = h2+3*c;
+  rect[3].x = w2+3*c;               rect[3].y = h2+3*c;
+  XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin);
+
+  rect[0].x = w2+6*c;               rect[0].y = h2-5*c;
+  rect[1].x = w2+7*c;               rect[1].y = h2-5*c;
+  rect[2].x = w2+7*c;               rect[2].y = h2-3*c;
+  rect[3].x = w2+6*c;               rect[3].y = h2-3*c;
+  XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin);
+
+  rect[0].x = w2+6*c;               rect[0].y = h2-0*c;
+  rect[1].x = w2+7*c;               rect[1].y = h2-0*c;
+  rect[2].x = w2+7*c;               rect[2].y = h2+3*c;
+  rect[3].x = w2+6*c;               rect[3].y = h2+3*c;
+  XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin);
+
+  rect[0].x = w2+5*c;               rect[0].y = h2-1*c;
+  rect[1].x = w2+7*c;               rect[1].y = h2-1*c;
+  rect[2].x = w2+7*c;               rect[2].y = h2+0*c;
+  rect[3].x = w2+5*c;               rect[3].y = h2+0*c;
+  XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin);
+  /*
+   * End 'G'.
+   */
+
+  /*
+   * Start 'O'.
+   */
+
+  rect[0].x = w2+8*c;               rect[0].y = h2-5*c;
+  rect[1].x = w2+12*c;              rect[1].y = h2-5*c;
+  rect[2].x = w2+12*c;              rect[2].y = h2-4*c;
+  rect[3].x = w2+8*c;               rect[3].y = h2-4*c;
+  XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin);
+
+  rect[0].x = w2+8*c;               rect[0].y = h2+3*c;
+  rect[1].x = w2+12*c;              rect[1].y = h2+3*c;
+  rect[2].x = w2+12*c;              rect[2].y = h2+2*c;
+  rect[3].x = w2+8*c;               rect[3].y = h2+2*c;
+  XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin);
+
+  rect[0].x = w2+8*c;               rect[0].y = h2-5*c;
+  rect[1].x = w2+9*c;               rect[1].y = h2-5*c;
+  rect[2].x = w2+9*c;               rect[2].y = h2+3*c;
+  rect[3].x = w2+8*c;               rect[3].y = h2+3*c;
+  XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin);
+
+  rect[0].x = w2+11*c;               rect[0].y = h2-5*c;
+  rect[1].x = w2+12*c;               rect[1].y = h2-5*c;
+  rect[2].x = w2+12*c;               rect[2].y = h2+3*c;
+  rect[3].x = w2+11*c;               rect[3].y = h2+3*c;
+  XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin);
+
+  /*
+   * End 'O'.
+   */
+
+
+
+
   XSetWindowBackgroundPixmap(nxagentDisplay, win, nxagentPixmapLogo);
 
   #ifdef NXAGENT_LOGO_DEBUG
diff -Nur ../nx/nx-X11/programs/Xserver/hw/nxagent//Splash.h programs/Xserver/hw/nxagent/Splash.h
--- ../nx/nx-X11/programs/Xserver/hw/nxagent//Splash.h	2007-05-30 16:29:29.000000000 +0200
+++ programs/Xserver/hw/nxagent/Splash.h	2011-06-29 15:55:13.239528420 +0200
@@ -33,6 +33,8 @@
 extern int nxagentLogoWhite;
 extern int nxagentLogoRed;
 extern int nxagentLogoBlack;
+/*X2GO*/
+extern int nxagentLogoGray;
 
 extern Window nxagentSplashWindow;
 
diff -Nur ../nx/nx-X11/programs/Xserver/hw/nxagent//x2go.xpm programs/Xserver/hw/nxagent/x2go.xpm
--- ../nx/nx-X11/programs/Xserver/hw/nxagent//x2go.xpm	1970-01-01 01:00:00.000000000 +0100
+++ programs/Xserver/hw/nxagent/x2go.xpm	2011-06-29 15:55:13.249528420 +0200
@@ -0,0 +1,148 @@
+/* XPM */
+static char  *nxagentIconData[]={
+"128 128 17 1",
+". c None",
+"m c #323232",
+"l c #323232",
+"f c #323232",
+"e c #323232",
+"o c #323232",
+"# c #323232",
+"h c #323232",
+"i c #323232",
+"n c #323232",
+"d c #323232",
+"a c #323232",
+"g c #323232",
+"j c #323232",
+"b c #323232",
+"k c #323232",
+"c c #323232",
+".....#abccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccbde.....",
+"...fbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccgf...",
+"..#ccccaheeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeijccckf..",
+".ecccgl..................................................................................................................ejcckf.",
+".bccd.....................................................................................................................mdccg.",
+"#cca.......................................................................................................................mjcce",
+"gckm........................................................................................................................eccd",
+"ccn..........................................................................................................................jcb",
+"cce..........................................................................................................................icc",
+"ccm..........................................................................................................................ecc",
+"cc...........................................................................................................................ecc",
+"cc...........................................................................................................................ecc",
+"cc...........................................................................................................................ecc",
+"cc...........................................................................................................................ecc",
+"cc............................................meeee..........................................................................ecc",
+"cc.........eeeeeeeeoiiiiiiiinggggggggjccccccccccccc....#ggggggggggggggggggggggggggggf.............ggggggggggggggggggggggf....ecc",
+"cc....meeeeoiiiiiiiinggggggggjccccccccccccccccccccc....icccccccccccccccccccccccccccce.............cccccccccccccccccccccce....ecc",
+"cc....................................meeeeeeeeoiii....icccccccccccccccccccccccccccce.............cccccccccccccccccccccce....ecc",
+"cc.......................................................menbccccccccccccccccccbhe..................logccccccccccccghe.......ecc",
+"cc...........................................................iccccccccccccccccdm.......................#cccccccccke..........ecc",
+"cc..............................................lee...........#cccccccccccccckm.........................jccccccckm...........ecc",
+"cc........feeeeeeeeoiiiiiiiiiaggggggggjcccccccccccc............icccccccccccccd..........................icccccccf............ecc",
+"cc....meeeeeoiiiiiiiinggggggggjcccccccccccccccccccciiiiii#m.....jcccccccccccci..........................icccccci.............ecc",
+"cc......................................eeeeeeeeeiiiiiiiiigl....eccccccccccccd..........................dcccccj..............ecc",
+"cc...............................................................dcccccccccccj..........................bccccce..............ecc",
+"cc...............................................................lccccccccccccl........................lccccca...............ecc",
+"cc.............................................meeeeeeee#iiiie....dccccccccccch........................icccccl...............ecc",
+"cc.........meeeeeeeeoiiiiiiiinggggggggjccccccccccccccccccccccb....ecccccccccccb........................bccccn................ecc",
+"cc....meeeeiiiiiiiiiaggggggggbcccccccccccccccccccccccccccccccc#....gccccccccccco......................#cccckm................ecc",
+"cc....................................meeeeeeeeeiiiiiiiiiaggggd....#cccccccccccg......................bcccci.................ecc",
+"cc..................................................................bcccccccccccf....................#cccckm.................ecc",
+"cc..................................................................hcccccccccccd...................mkcccci..................ecc",
+"cc............................................meeeeeeeeoiiiiiiiil...mkcccccccccccl..................icccckm..................ecc",
+"cc.........eeeeeeeeoiiiiiiiinggggggggjccccccccccccccccccccccccccn....dccccccccccci.................mkcccci...................ecc",
+"cc....meeeeeiiiiiiiiiaggggggggbccccccccccccccccccccccccccccccccckm...lccccccccccck.................icccckm...................ecc",
+"cc.....................................leeeeeeeeoiiiiiiiiigggggggo....accccccccccc#...............mkcccch....................ecc",
+"cc....................................................................ecccccccccccb...............iccccb.....................ecc",
+"cc.....................................................................jccccccccccce.............mkcccc#.....................ecc",
+"cc.............................................meeeeeeeeehiiiiiiii#....#ccccccccccca.............nccccb......................ecc",
+"cc........feeeeeeee#iiiiiiiiigggggggggkccccccccccccccccccccccccccccl....kcccccccccccl...........lccccc#......................ecc",
+"cc....meeeeeoiiiiiiiiigggggggggkcccccccccccccccccccccccccccccccccccd....icccccccccccd...........dccccb.......................ecc",
+"cc......................................leeeeeeeeoiiiiiiiingggggggga....mccccccccccckm.........lccccc#.......................ecc",
+"cc.......................................................................dccccccccccch.........dccccb........................ecc",
+"cc.......................................................................lcccccccccccb........lccccc#........................ecc",
+"cc.............................................meeeeeeeeoiiiiiiiingggo....gccccccccccc#.......dccccg.........................ecc",
+"cc.........meeeeeeeeoiiiiiiiinggggggggjccccccccccccccccccccccccccccccg....occcccccccccg......lccccce.........................ecc",
+"cc....meeeeiiiiiiiiiaggggggggbcccccccccccccccccccccccccccccccccccccccce....bccccccccccce.....gccccg..........................ecc",
+"cc....................................meeeeeeeeeiiiiiiiiigggggggggkcccd....#cccccccccccd....eccccce..........................ecc",
+"cc.........................................................................mkcccccccccccl...gccccg...........................ecc",
+"cc..........................................................................nccccccccccci..eccccce...........................ecc",
+"cc............................................meeeeeeeeoiiiiiiiingggggggm...lccccccccccckm.gccccg............................ecc",
+"cc.........eeeeeeeeoiiiiiiiinggggggggjcccccccccccccccccccccccccccccccccc#....dccccccccccc#eccccce............................ecc",
+"cc....meeeeeiiiiiiiiiaggggggggkcccccccccccccccccccccccccccccccccccccccccb....ecccccccccccbgccccg.............................ecc",
+"cc.....................................leeeeeeeeoiiiiiiiiigggggggggkccccco....gccccccccccccccccl.............................ecc",
+"cc............................................................................#cccccccccccccccd..............................ecc",
+"cc.............................................................................bccccccccccccccl..............................ecc",
+"cc.............................................leeeeeeeeeiiiiiiiiiagggggggi....icccccccccccccd...............................ecc",
+"cc........feeeeeeee#iiiiiiiingggggggggkccccccccccccccccccccccccccccccccccckm...mkccccccccccccl...............................ecc",
+"cc....meeeeeoiiiiiiiiigggggggggkccccccccccccccccccccccccccccccccccccccccccci....dccccccccccca................................ecc",
+"cc......................................leeeeeeeeoiiiiiiiiigggggggggccccccck....lccccccccccckm...............................ecc",
+"cc...............................................................................accccccccccc#...............................ecc",
+"cc...............................................................................ecccccccccccb...............................ecc",
+"cc............................................leeeeeeeeeiiiiiiiiiaggggggggbcce....bccccccccccce..............................ecc",
+"cc.......feeeeeeee#iiiiiiiiigggggggggkcccccccccccccccccccccccccccccccccccccccd....#cccccccccccg..............................ecc",
+"cc....meeeeeeoiiiiiiiingggggggggccccccccccccccccccccccccccccccccccccccccccccccl....kcccccccccccl.............................ecc",
+"cc.......................................feeeeeeeehiiiiiiiidggggggggbccccccccci....ncccccccccccd.............................ecc",
+"cc...........................................................................mm....bccccccccccccm............................ecc",
+"cc................................................................................#ccccccccccccci............................ecc",
+"cc..........................................leeeeeeee#iiiiiiiidggggggggbcccccl....bccccccccccccck............................ecc",
+"cc......feeeeeeeehiiiiiiiiaggggggggkccccccccccccccccccccccccccccccccccccccccd....#ccccccccccccccc#...........................ecc",
+"cc....meeeeeee#iiiiiiiidggggggggjcccccccccccccccccccccccccccccccccccccccccccl....bcccccccccccccccb...........................ecc",
+"cc.......................................meeeeeeeeeiiiiiiiiigggggggggkcccccd....#cccccbccccccccccce..........................ecc",
+"cc..............................................................................bccccdhcccccccccccg..........................ecc",
+"cc.............................................................................#ccccclmkcccccccccccl.........................ecc",
+"cc..........................................meeeeeeeeeiiiiiiiiiaggggggggbkm....bccccd..ncccccccccccd.........................ecc",
+"cc.....leeeeeeeeoiiiiiiiiigggggggggkccccccccccccccccccccccccccccccccccccci....hcccckl..lccccccccccccm........................ecc",
+"cc....meeeeeeeehiiiiiiiidggggggggbcccccccccccccccccccccccccccccccccccccckm...mkcccci....dccccccccccci........................ecc",
+"cc........................................leeeeeeee#iiiiiiiinggggggggjcci....icccckm....eccccccccccck........................ecc",
+"cc..........................................................................mkcccci......gccccccccccc#.......................ecc",
+"cc..........................................................................icccckm......#cccccccccccb.......................ecc",
+"cc.........................................leeeeeeeeoiiiiiiiiigggggggga....mkcccci........bccccccccccce......................ecc",
+"cc....meeeeeeeeoiiiiiiiiigggggggggkccccccccccccccccccccccccccccccccccci....icccckm........hcccccccccccg......................ecc",
+"cc.....feeeeeeeehiiiiiiiiaggggggggkcccccccccccccccccccccccccccccccccckm...mkcccci.........mkcccccccccccl.....................ecc",
+"cc.........................................feeeeeeeehiiiiiiiiagggggggh....icccckm..........icccccccccccd.....................ecc",
+"cc.......................................................................mkcccci...........lccccccccccccm....................ecc",
+"cc.......................................................................icccckm............dccccccccccci....................ecc",
+"cc...........................................eeeeeeeeehiiiiiiiidggga....mkcccci.............fccccccccccck....................ecc",
+"cc......feeeeeeee#iiiiiiiingggggggggccccccccccccccccccccccccccccccci....iccccb...............gccccccccccc#...................ecc",
+"cc....meeeeeeeoiiiiiiiiigggggggggbcccccccccccccccccccccccccccccccckm...mkcccc#...............occcccccccccb...................ecc",
+"cc........................................meeeeeeeeeiiiiiiiiidgggg#....iccccb.................bccccccccccce..................ecc",
+"cc....................................................................mkcccc#.................#cccccccccccg..................ecc",
+"cc....................................................................iccccb..................mkcccccccccccl.................ecc",
+"cc..........................................eeeeeeeeeiiiiiiiiiaga....mkcccc#...................icccccccccccd.................ecc",
+"cc.....leeeeeeee#iiiiiiiinggggggggjccccccccccccccccccccccccccccci....iccccb....................lccccccccccccm................ecc",
+"cc....meeeeeeee#iiiiiiiiigggggggggkcccccccccccccccccccccccccccckm...mkcccc#.....................dccccccccccci................ecc",
+"cc.........................................leeeeeeeeoiiiiiiiiiah....iccccb......................lccccccccccck................ecc",
+"cc.................................................................mkcccc#.......................gccccccccccc#...............ecc",
+"cc.................................................................dccccj........................ecccccccccccj...............ecc",
+"cc..........................................leeeeeeeeeiiiiiiih....lccccce.........................bccccccccccce..............ecc",
+"cc....meeeeeeeeeiiiiiiiiidgggggggggcccccccccccccccccccccccccci....dccccg..........................#ccccccccccca..............ecc",
+"cc.....feeeeeeeeiiiiiiiinggggggggbcccccccccccccccccccccccccckm...lccccce...........................kcccccccccccl.............ecc",
+"cc........................................leeeeeeeehiiiiiiiih....dccccg............................ncccccccccccd.............ecc",
+"cc..............................................................lccccce............................fccccccccccccf............ecc",
+"cc..............................................................dccccb..............................jcccccccccccg............ecc",
+"cc.........................................meeeeeeeeoiiiiil....lcccccn..............................icccccccccccce...........ecc",
+"cc......feeeeeeeehiiiiiiiigggggggggccccccccccccccccjgggggo.....gccccc#..............................eccccccccccccbm..........ecc",
+"cc....meeeeeeeoiiiiiiiiidgggggggggccccccccccccccccc...........hcccccco...............................cccccccccccccn..........ecc",
+"cc.........................................leeeeeee..........ecccccccn..............................lcccccccccccccc#.........ecc",
+"cc..........................................................#kccccccckf.............................nccccccccccccccc#........ecc",
+"cc........................................................ldcccccccccck#m.........................lncccccccccccccccccdl......ecc",
+"cc.........................................feeeeeee....ogjcccccccccccccccggi..................oggbcccccccccccccccccccccja....ecc",
+"cc.....leeeeeeee#iiiiiiiidggggggggbcccccccccccccccc....icccccccccccccccccccg..................icccccccccccccccccccccccccc....ecc",
+"cc....meeeeeeeehiiiiiiiiaggggggggkccccccccccccccccc....icccccccccccccccccccg..................icccccccccccccccccccccccccc....ecc",
+"cc........................................feeeeeeee..........................................................................ecc",
+"cc...........................................................................................................................ecc",
+"cc...........................................................................................................................ecc",
+"cc...........................................................................................................................ecc",
+"cc...........................................................................................................................ecc",
+"cc...........................................................................................................................ecc",
+"cce..........................................................................................................................hcc",
+"ccn..........................................................................................................................acb",
+"jcb.........................................................................................................................lcca",
+"hcci........................................................................................................................acc#",
+"mkcc#......................................................................................................................dccb.",
+".occci...................................................................................................................macccf.",
+"..#cccbne.............................................................................................................menkccc#..",
+"...okccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccbe...",
+"....mhjccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccg#....."};

-- 
Gruesse/greetings,
Reinhard Tartler, KeyID 945348A4
_______________________________________________
X2go-Dev mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/x2go-dev

Reply via email to