File fig2dev-3.2.6-genps_oldpatterns.patch of Package transfig

Author: Roland Rosenfeld <roland@debian.org>
Description: Reinvent the old genps.oldpatterns.[ch] (removed from 3.2.5a),
 because the new version does not write the patterns correctly into PS and EPS
 files (Bug #348034).
Bug-Debian: http://bugs.debian.org/348034





diff --git a/fig2dev-3.2.6a/fig2dev/dev/genps.c b/fig2dev-3.2.6a/fig2dev/dev/genps.c
--- a/fig2dev-3.2.6a/fig2dev/dev/genps.c
+++ b/fig2dev-3.2.6a/fig2dev/dev/genps.c
@@ -140,7 +140,6 @@ static void convert_xpm_colors(unsigned
 static void genps_itp_spline(F_spline *s);
 static void genps_ctl_spline(F_spline *s);
 
-static int removestr(char *buf, char *str, int *len);
 #define SHADEVAL(F)	1.0*(F)/(NUMSHADES-1)
 #define TINTVAL(F)	1.0*(F-NUMSHADES+1)/NUMTINTS
 
@@ -204,6 +203,31 @@ char	*fill_def[NUMPATTERNS] = {
 		FILL_PAT21,FILL_PAT22,
 	};
 
+int	patmat[NUMPATTERNS][2] = {
+	{16,  -8},
+	{16,  -8},
+	{16,  -8},
+	{16, -16},
+	{16, -16},
+	{16, -16},
+	{16,  16},
+	{16, -16},
+	{16,  -8},
+	{ 8, -16},
+	{16, -16},
+	{24, -24},
+	{24, -24},
+	{24, -24},
+	{24, -24},
+	{16,  -8},
+	{ 8,  -8},
+	{16, -16},
+	{30, -18},
+	{16, -16},
+	{16,  -8},
+	{ 8, -16},
+	};
+
 static double	scalex, scaley;
 static double	origx, origy;
 static double	userorigx, userorigy;
@@ -786,6 +810,10 @@ genps_start(F_compound *objects)
 	/* (rotation and y flipping is done in %%BeginPageSetup area */
 	if (pats_used) {
 	    int i;
+	    fprintf(tfp, "\n%s%s%s", FILL_PROLOG1,FILL_PROLOG2,FILL_PROLOG3);
+	    fprintf(tfp, "\n%s%s%s", FILL_PROLOG4,FILL_PROLOG5,FILL_PROLOG6);
+	    fprintf(tfp, "\n%s%s%s", FILL_PROLOG7,FILL_PROLOG8,FILL_PROLOG9);
+	    fprintf(tfp, "\n%s%s",   FILL_PROLOG10,FILL_PROLOG11);
 	    /* only define the patterns that are used */
 	    for (i=0; i<NUMPATTERNS; i++)
 		if (pattern_used[i])
@@ -947,9 +975,6 @@ genps_grid(float major, float minor)
 
 	fprintf(tfp,"%% Grid\n");
 	fprintf(tfp,"0.5 setgray\n");
-	/* adjust scale for difference in xfig/actual scale in metric mode */
-	if (metric)
-	    fprintf(tfp,"gs 450 472 div dup scale\n");
 	/* first the vertical lines */
 	fprintf(tfp,"%% Vertical\n");
 	for (x = lx; x <= ux; x += m) {
@@ -998,9 +1023,6 @@ genps_grid(float major, float minor)
 	    }
 	    draw_gridline(lx, y, ux, y);
 	}
-	/* restore original scale */
-	if (metric)
-	    fprintf(tfp,"gr\n");
 }
 
 static void
@@ -1290,22 +1312,6 @@ set_linewidth(double w)
 	}
 }
 
-static int
-removestr(char *buf, char *str, int *len)
-{
-	int	slen = strlen(str)-1;
-	int	found=0;
-	char	*cp = buf;
-
-	while (cp=strstr(buf,str)) {
-		*len = *len - slen;
-		memmove(cp, cp+slen, *len-(cp-buf));
-		*(buf+*len) = '\0';
-		found = 1;
-	}
-	return found;
-}
-
 void
 genps_line(F_line *l)
 {
@@ -1686,11 +1692,6 @@ genps_line(F_line *l)
 		    /* but flush buffer first */
 		    fflush(tfp);
 		    while ((len = read(fileno(picf),buf,sizeof(buf))) > 0) {
-			/* remove any %EOF or %%EOF in file */
-			while (removestr(buf,"\n%EOF\n",&len) != 0)
-			    ;
-			while (removestr(buf,"\n%%EOF\n",&len) != 0)
-			    ;
 			write(fileno(tfp),buf,len);
 		    }
 		    close_picfile(picf,filtype);
@@ -2422,27 +2423,22 @@ fill_area(int fill, int pen_color, int f
     else {
 	/* one of the patterns */
 	int patnum = fill-NUMSHADES-NUMTINTS+1;
-	char colorspace[13], pencolor[25], fillcolor[25];
 
 	if (grayonly) {
 	    float grayfill, graypen;
 	    grayfill = rgb2luminance(fill_r, fill_g, fill_b);
 	    graypen  = rgb2luminance(pen_r, pen_g, pen_b);
-	    sprintf(colorspace, "/DeviceGray");
-	    sprintf(fillcolor, "%.2f", grayfill);
-	    sprintf(pencolor, "%.2f", graypen);
+	    fprintf(tfp, "gs /PC [[%.2f %.2f %.2f] [%.2f %.2f %.2f]] def\n",
+		         grayfill, grayfill, grayfill, graypen, graypen, graypen);
 	} else {
-	    sprintf(colorspace, "/DeviceRGB");
-	    sprintf(fillcolor, "%.2f %.2f %.2f", fill_r, fill_g, fill_b);
-	    sprintf(pencolor, "%.2f %.2f %.2f", pen_r, pen_g, pen_b);
+	    fprintf(tfp, "gs /PC [[%.2f %.2f %.2f] [%.2f %.2f %.2f]] def\n",
+		         fill_r, fill_g, fill_b, pen_r, pen_g, pen_b);
 	}
 
-	fprintf(tfp, "\n%% Fill with pattern background color\n");
-	fprintf(tfp, "gs %s setcolorspace %s setcolor fill gr\n",
-			colorspace, fillcolor);
-	fprintf(tfp, "\n%% Fill with pattern pen color\n");
-	fprintf(tfp, "gs %s setcolorspace %s P%d setpattern fill gr\n\n",
-			colorspace, pencolor, patnum);
+	fprintf(tfp, "%.2f %.2f sc P%d [%d 0 0 %d %.2f %.2f] PATmp PATsp ef gr PATusp ",
+		     THICK_SCALE, THICK_SCALE, patnum,
+		     patmat[patnum-1][0],patmat[patnum-1][1],
+		     (float)ulx/THICK_SCALE, (float)uly/THICK_SCALE);
     }
 }
 
diff --git a/fig2dev-3.2.6a/fig2dev/dev/psprolog.h b/fig2dev-3.2.6a/fig2dev/dev/psprolog.h
--- a/fig2dev-3.2.6a/fig2dev/dev/psprolog.h
+++ b/fig2dev-3.2.6a/fig2dev/dev/psprolog.h
@@ -39,553 +39,1003 @@ $F2psDict /mtrx matrix put\n\
   4 -2 roll mul srgb} bind def\n\
 "
 
+
+#define		FILL_PROLOG1	"\
+% This junk string is used by the show operators\n\
+/PATsstr 1 string def\n\
+/PATawidthshow { 	% cx cy cchar rx ry string\n\
+  % Loop over each character in the string\n\
+  {  % cx cy cchar rx ry char\n\
+    % Show the character\n\
+    dup				% cx cy cchar rx ry char char\n\
+    PATsstr dup 0 4 -1 roll put	% cx cy cchar rx ry char (char)\n\
+    false charpath		% cx cy cchar rx ry char\n\
+    /clip load PATdraw\n\
+    % Move past the character (charpath modified the\n\
+    % current point)\n\
+    currentpoint			% cx cy cchar rx ry char x y\n\
+    newpath\n\
+    moveto			% cx cy cchar rx ry char\n\
+    % Reposition by cx,cy if the character in the string is cchar\n\
+    3 index eq {			% cx cy cchar rx ry\n\
+      4 index 4 index rmoveto\n\
+    } if\n\
+    % Reposition all characters by rx ry\n\
+    2 copy rmoveto		% cx cy cchar rx ry\n\
+  } forall\n\
+  pop pop pop pop pop		% -\n\
+  currentpoint\n\
+  newpath\n\
+  moveto\n\
+} bind def\n\
+"
+#define		FILL_PROLOG2	"\
+/PATcg {\n\
+  7 dict dup begin\n\
+    /lw currentlinewidth def\n\
+    /lc currentlinecap def\n\
+    /lj currentlinejoin def\n\
+    /ml currentmiterlimit def\n\
+    /ds [ currentdash ] def\n\
+    /cc [ currentrgbcolor ] def\n\
+    /cm matrix currentmatrix def\n\
+  end\n\
+} bind def\n\
+% PATdraw - calculates the boundaries of the object and\n\
+% fills it with the current pattern\n\
+/PATdraw {			% proc\n\
+  save exch\n\
+    PATpcalc			% proc nw nh px py\n\
+    5 -1 roll exec		% nw nh px py\n\
+    newpath\n\
+    PATfill			% -\n\
+  restore\n\
+} bind def\n\
+"
+#define		FILL_PROLOG3	"\
+% PATfill - performs the tiling for the shape\n\
+/PATfill { % nw nh px py PATfill -\n\
+  PATDict /CurrentPattern get dup begin\n\
+    setfont\n\
+    % Set the coordinate system to Pattern Space\n\
+    PatternGState PATsg\n\
+    % Set the color for uncolored pattezns\n\
+    PaintType 2 eq { PATDict /PColor get PATsc } if\n\
+    % Create the string for showing\n\
+    3 index string		% nw nh px py str\n\
+    % Loop for each of the pattern sources\n\
+    0 1 Multi 1 sub {		% nw nh px py str source\n\
+	% Move to the starting location\n\
+	3 index 3 index		% nw nh px py str source px py\n\
+	moveto			% nw nh px py str source\n\
+	% For multiple sources, set the appropriate color\n\
+	Multi 1 ne { dup PC exch get PATsc } if\n\
+	% Set the appropriate string for the source\n\
+	0 1 7 index 1 sub { 2 index exch 2 index put } for pop\n\
+	% Loop over the number of vertical cells\n\
+	3 index 		% nw nh px py str nh\n\
+	{			% nw nh px py str\n\
+	  currentpoint		% nw nh px py str cx cy\n\
+	  2 index oldshow	% nw nh px py str cx cy\n\
+	  YStep add moveto	% nw nh px py str\n\
+	} repeat		% nw nh px py str\n\
+    } for\n\
+    5 { pop } repeat\n\
+  end\n\
+} bind def\n\
+"
+#define		FILL_PROLOG4	"\
+% PATkshow - kshow with the current pattezn\n\
+/PATkshow {			% proc string\n\
+  exch bind			% string proc\n\
+  1 index 0 get			% string proc char\n\
+  % Loop over all but the last character in the string\n\
+  0 1 4 index length 2 sub {\n\
+				% string proc char idx\n\
+    % Find the n+1th character in the string\n\
+    3 index exch 1 add get	% string proc char char+1\n\
+    exch 2 copy			% strinq proc char+1 char char+1 char\n\
+    % Now show the nth character\n\
+    PATsstr dup 0 4 -1 roll put	% string proc chr+1 chr chr+1 (chr)\n\
+    false charpath		% string proc char+1 char char+1\n\
+    /clip load PATdraw\n\
+    % Move past the character (charpath modified the current point)\n\
+    currentpoint newpath moveto\n\
+    % Execute the user proc (should consume char and char+1)\n\
+    mark 3 1 roll		% string proc char+1 mark char char+1\n\
+    4 index exec		% string proc char+1 mark...\n\
+    cleartomark			% string proc char+1\n\
+  } for\n\
+  % Now display the last character\n\
+  PATsstr dup 0 4 -1 roll put	% string proc (char+1)\n\
+  false charpath		% string proc\n\
+  /clip load PATdraw\n\
+  neewath\n\
+  pop pop			% -\n\
+} bind def\n\
+"
+#define		FILL_PROLOG5	"\
+% PATmp - the makepattern equivalent\n\
+/PATmp {			% patdict patmtx PATmp patinstance\n\
+  exch dup length 7 add		% We will add 6 new entries plus 1 FID\n\
+  dict copy			% Create a new dictionary\n\
+  begin\n\
+    % Matrix to install when painting the pattern\n\
+    TilingType PATtcalc\n\
+    /PatternGState PATcg def\n\
+    PatternGState /cm 3 -1 roll put\n\
+    % Check for multi pattern sources (Level 1 fast color patterns)\n\
+    currentdict /Multi known not { /Multi 1 def } if\n\
+    % Font dictionary definitions\n\
+    /FontType 3 def\n\
+    % Create a dummy encoding vector\n\
+    /Encoding 256 array def\n\
+    3 string 0 1 255 {\n\
+      Encoding exch dup 3 index cvs cvn put } for pop\n\
+    /FontMatrix matrix def\n\
+    /FontBBox BBox def\n\
+    /BuildChar {\n\
+	mark 3 1 roll		% mark dict char\n\
+	exch begin\n\
+	Multi 1 ne {PaintData exch get}{pop} ifelse  % mark [paintdata]\n\
+	  PaintType 2 eq Multi 1 ne or\n\
+	  { XStep 0 FontBBox aload pop setcachedevice }\n\
+	  { XStep 0 setcharwidth } ifelse\n\
+	  currentdict		% mark [paintdata] dict\n\
+	  /PaintProc load	% mark [paintdata] dict paintproc\n\
+	end\n\
+	gsave\n\
+	  false PATredef exec true PATredef\n\
+	grestore\n\
+	cleartomark		% -\n\
+    } bind def\n\
+    currentdict\n\
+  end				% newdict\n\
+  /foo exch			% /foo newlict\n\
+  definefont			% newfont\n\
+} bind def\n\
+"
+#define		FILL_PROLOG6	"\
+% PATpcalc - calculates the starting point and width/height\n\
+% of the tile fill for the shape\n\
+/PATpcalc {	% - PATpcalc nw nh px py\n\
+  PATDict /CurrentPattern get begin\n\
+    gsave\n\
+	% Set up the coordinate system to Pattern Space\n\
+	% and lock down pattern\n\
+	PatternGState /cm get setmatrix\n\
+	BBox aload pop pop pop translate\n\
+	% Determine the bounding box of the shape\n\
+	pathbbox			% llx lly urx ury\n\
+    grestore\n\
+    % Determine (nw, nh) the # of cells to paint width and height\n\
+    PatHeight div ceiling		% llx lly urx qh\n\
+    4 1 roll				% qh llx lly urx\n\
+    PatWidth div ceiling		% qh llx lly qw\n\
+    4 1 roll				% qw qh llx lly\n\
+    PatHeight div floor			% qw qh llx ph\n\
+    4 1 roll				% ph qw qh llx\n\
+    PatWidth div floor			% ph qw qh pw\n\
+    4 1 roll				% pw ph qw qh\n\
+    2 index sub cvi abs			% pw ph qs qh-ph\n\
+    exch 3 index sub cvi abs exch	% pw ph nw=qw-pw nh=qh-ph\n\
+    % Determine the starting point of the pattern fill\n\
+    %(px, py)\n\
+    4 2 roll				% nw nh pw ph\n\
+    PatHeight mul			% nw nh pw py\n\
+    exch				% nw nh py pw\n\
+    PatWidth mul exch			% nw nh px py\n\
+  end\n\
+} bind def\n\
+"
+#define		FILL_PROLOG7	"\
+% Save the original routines so that we can use them later on\n\
+/oldfill	/fill load def\n\
+/oldeofill	/eofill load def\n\
+/oldstroke	/stroke load def\n\
+/oldshow	/show load def\n\
+/oldashow	/ashow load def\n\
+/oldwidthshow	/widthshow load def\n\
+/oldawidthshow	/awidthshow load def\n\
+/oldkshow	/kshow load def\n\
+\n\
+% These defs are necessary so that subsequent procs don't bind in\n\
+% the originals\n\
+/fill	   { oldfill } bind def\n\
+/eofill	   { oldeofill } bind def\n\
+/stroke	   { oldstroke } bind def\n\
+/show	   { oldshow } bind def\n\
+/ashow	   { oldashow } bind def\n\
+/widthshow { oldwidthshow } bind def\n\
+/awidthshow { oldawidthshow } bind def\n\
+/kshow 	   { oldkshow } bind def\n\
+"
+#define		FILL_PROLOG8	"\
+/PATredef {\n\
+  MyAppDict begin\n\
+    {\n\
+    /fill { /clip load PATdraw newpath } bind def\n\
+    /eofill { /eoclip load PATdraw newpath } bind def\n\
+    /stroke { PATstroke } bind def\n\
+    /show { 0 0 null 0 0 6 -1 roll PATawidthshow } bind def\n\
+    /ashow { 0 0 null 6 3 roll PATawidthshow }\n\
+    bind def\n\
+    /widthshow { 0 0 3 -1 roll PATawidthshow }\n\
+    bind def\n\
+    /awidthshow { PATawidthshow } bind def\n\
+    /kshow { PATkshow } bind def\n\
+  } {\n\
+    /fill   { oldfill } bind def\n\
+    /eofill { oldeofill } bind def\n\
+    /stroke { oldstroke } bind def\n\
+    /show   { oldshow } bind def\n\
+    /ashow  { oldashow } bind def\n\
+    /widthshow { oldwidthshow } bind def\n\
+    /awidthshow { oldawidthshow } bind def\n\
+    /kshow  { oldkshow } bind def\n\
+    } ifelse\n\
+  end\n\
+} bind def\n\
+false PATredef\n\
+"
+#define		FILL_PROLOG9	"\
+% Conditionally define setcmykcolor if not available\n\
+/setcmykcolor where { pop } {\n\
+  /setcmykcolor {\n\
+    1 sub 4 1 roll\n\
+    3 {\n\
+	3 index add neg dup 0 lt { pop 0 } if 3 1 roll\n\
+    } repeat\n\
+    setrgbcolor - pop\n\
+  } bind def\n\
+} ifelse\n\
+/PATsc {		% colorarray\n\
+  aload length		% c1 ... cn length\n\
+    dup 1 eq { pop setgray } { 3 eq { setrgbcolor } { setcmykcolor\n\
+  } ifelse } ifelse\n\
+} bind def\n\
+/PATsg {		% dict\n\
+  begin\n\
+    lw setlinewidth\n\
+    lc setlinecap\n\
+    lj setlinejoin\n\
+    ml setmiterlimit\n\
+    ds aload pop setdash\n\
+    cc aload pop setrgbcolor\n\
+    cm setmatrix\n\
+  end\n\
+} bind def\n\
+"
+#define		FILL_PROLOG10	"\
+/PATDict 3 dict def\n\
+/PATsp {\n\
+  true PATredef\n\
+  PATDict begin\n\
+    /CurrentPattern exch def\n\
+    % If it's an uncolored pattern, save the color\n\
+    CurrentPattern /PaintType get 2 eq {\n\
+      /PColor exch def\n\
+    } if\n\
+    /CColor [ currentrgbcolor ] def\n\
+  end\n\
+} bind def\n\
+% PATstroke - stroke with the current pattern\n\
+/PATstroke {\n\
+  countdictstack\n\
+  save\n\
+  mark\n\
+  {\n\
+    currentpoint strokepath moveto\n\
+    PATpcalc				% proc nw nh px py\n\
+    clip newpath PATfill\n\
+    } stopped {\n\
+	(*** PATstroke Warning: Path is too complex, stroking\n\
+	  with gray) =\n\
+    cleartomark\n\
+    restore\n\
+    countdictstack exch sub dup 0 gt\n\
+	{ { end } repeat } { pop } ifelse\n\
+    gsave 0.5 setgray oldstroke grestore\n\
+  } { pop restore pop } ifelse\n\
+  newpath\n\
+} bind def\n\
+"
+#define		FILL_PROLOG11	"\
+/PATtcalc {		% modmtx tilingtype PATtcalc tilematrix\n\
+  % Note: tiling types 2 and 3 are not supported\n\
+  gsave\n\
+    exch concat					% tilingtype\n\
+    matrix currentmatrix exch			% cmtx tilingtype\n\
+    % Tiling type 1 and 3: constant spacing\n\
+    2 ne {\n\
+	% Distort the pattern so that it occupies\n\
+	% an integral number of device pixels\n\
+	dup 4 get exch dup 5 get exch		% tx ty cmtx\n\
+	XStep 0 dtransform\n\
+	round exch round exch			% tx ty cmtx dx.x dx.y\n\
+	XStep div exch XStep div exch		% tx ty cmtx a b\n\
+	0 YStep dtransform\n\
+	round exch round exch			% tx ty cmtx a b dy.x dy.y\n\
+	YStep div exch YStep div exch		% tx ty cmtx a b c d\n\
+	7 -3 roll astore			% { a b c d tx ty }\n\
+    } if\n\
+  grestore\n\
+} bind def\n\
+/PATusp {\n\
+  false PATredef\n\
+  PATDict begin\n\
+    CColor PATsc\n\
+  end\n\
+} bind def\n\
+"
 #define		FILL_PAT01	"\
+% this is the pattern fill program from the Second edition Reference Manual\n\
+% with changes to call the above pattern fill\n\
 % left30\n\
-<<\n\
- /PatternType 1\n\
- /PaintType 2\n\
- /TilingType 2\n\
- /BBox [-2 -4 10 5]\n\
- /XStep 8\n\
- /YStep 4\n\
- /PaintProc\n\
- {\n\
-  pop\n\
-  newpath\n\
-  -2 5 moveto\n\
-  .7 setlinewidth\n\
-  12 -6 rlineto\n\
-  stroke\n\
- } bind\n\
-\n\
->>\n\
-\n\
-matrix\n\
-makepattern\n\
+11 dict begin\n\
+/PaintType 1 def\n\
+/PatternType 1 def\n\
+/TilingType 1 def\n\
+/BBox [0 0 1 1] def\n\
+/XStep 1 def\n\
+/YStep 1 def\n\
+/PatWidth 1 def\n\
+/PatHeight 1 def\n\
+/Multi 2 def\n\
+/PaintData [\n\
+  { clippath } bind\n\
+  { 32 16 true [ 32 0 0 -16 0 16 ]\n\
+	{<c000c000300030000c000c000300030000c000c000300030\n\
+	000c000c00030003c000c000300030000c000c0003000300\n\
+	00c000c000300030000c000c00030003>}\n\
+     imagemask } bind\n\
+] def\n\
+/PaintProc {\n\
+	pop\n\
+	exec fill\n\
+} def\n\
+currentdict\n\
+end\n\
 /P1 exch def\n\
 "
 #define		FILL_PAT02	"\
 % right30\n\
-<<\n\
- /PatternType 1\n\
- /PaintType 2\n\
- /TilingType 2\n\
- /BBox [-2 -4 10 5]\n\
- /XStep 8\n\
- /YStep 4\n\
- /PaintProc\n\
- {\n\
-  pop\n\
-  newpath\n\
-  .7 setlinewidth\n\
-  -2 -1 moveto\n\
-  12 6 rlineto\n\
-  stroke\n\
- } bind\n\
-\n\
->>\n\
-\n\
-matrix\n\
-makepattern\n\
+11 dict begin\n\
+/PaintType 1 def\n\
+/PatternType 1 def\n\
+/TilingType 1 def\n\
+/BBox [0 0 1 1] def\n\
+/XStep 1 def\n\
+/YStep 1 def\n\
+/PatWidth 1 def\n\
+/PatHeight 1 def\n\
+/Multi 2 def\n\
+/PaintData [\n\
+  { clippath } bind\n\
+  { 32 16 true [ 32 0 0 -16 0 16 ]\n\
+	{<00030003000c000c0030003000c000c0030003000c000c00\n\
+	30003000c000c00000030003000c000c0030003000c000c0\n\
+	030003000c000c0030003000c000c000>}\n\
+     imagemask } bind\n\
+] def\n\
+/PaintProc {\n\
+	pop\n\
+	exec fill\n\
+} def\n\
+currentdict\n\
+end\n\
 /P2 exch def\n\
 "
 #define		FILL_PAT03	"\
 % crosshatch30\n\
-<<\n\
- /PatternType 1\n\
- /PaintType 2\n\
- /TilingType 2\n\
- /BBox [-2 -4 10 5]\n\
- /XStep 8\n\
- /YStep 4\n\
- /PaintProc\n\
- {\n\
-  pop\n\
-  newpath\n\
-  .7 setlinewidth\n\
-  -2 5 moveto\n\
-  12 -6 rlineto\n\
-  stroke\n\
-  newpath\n\
-  .7 setlinewidth\n\
-  -2 -1 moveto\n\
-  12 6 rlineto\n\
-  stroke\n\
- } bind\n\
-\n\
->>\n\
-\n\
-matrix\n\
-makepattern\n\
+11 dict begin\n\
+/PaintType 1 def\n\
+/PatternType 1 def\n\
+/TilingType 1 def\n\
+/BBox [0 0 1 1] def\n\
+/XStep 1 def\n\
+/YStep 1 def\n\
+/PatWidth 1 def\n\
+/PatHeight 1 def\n\
+/Multi 2 def\n\
+/PaintData [\n\
+  { clippath } bind\n\
+  { 32 16 true [ 32 0 0 -16 0 16 ]\n\
+	{<033003300c0c0c0c30033003c000c000300330030c0c0c0c\n\
+	0330033000c000c0033003300c0c0c0c30033003c000c000\n\
+	300330030c0c0c0c0330033000c000c0>}\n\
+     imagemask } bind\n\
+] def\n\
+/PaintProc {\n\
+	pop\n\
+	exec fill\n\
+} def\n\
+currentdict\n\
+end\n\
 /P3 exch def\n\
 "
 #define		FILL_PAT04	"\
 % left45\n\
-<<\n\
- /PatternType 1\n\
- /PaintType 2\n\
- /TilingType 2\n\
- /BBox [-1 -1 9 9]\n\
- /XStep 8\n\
- /YStep 8\n\
- /PaintProc\n\
- {\n\
-  pop\n\
-  newpath\n\
-  1 setlinewidth\n\
-  -1 9 moveto\n\
-  9 -1 lineto\n\
-  stroke\n\
- } bind\n\
-\n\
->>\n\
-\n\
-matrix\n\
-makepattern\n\
+11 dict begin\n\
+/PaintType 1 def\n\
+/PatternType 1 def\n\
+/TilingType 1 def\n\
+/BBox [0 0 1 1] def\n\
+/XStep 1 def\n\
+/YStep 1 def\n\
+/PatWidth 1 def\n\
+/PatHeight 1 def\n\
+/Multi 2 def\n\
+/PaintData [\n\
+  { clippath } bind\n\
+  { 20 20 true [ 20 0 0 -20 0 20 ]\n\
+	{<8020004010002008001004000802000401000200\n\
+	8001004000802000401080200040100020080010\n\
+	0400080200040100020080010040008020004010>}\n\
+     imagemask } bind\n\
+] def\n\
+/PaintProc {\n\
+	pop\n\
+	exec fill\n\
+} def\n\
+currentdict\n\
+end\n\
 /P4 exch def\n\
 "
 #define		FILL_PAT05	"\
 % right45\n\
-<<\n\
- /PatternType 1\n\
- /PaintType 2\n\
- /TilingType 2\n\
- /BBox [-1 -1 9 9]\n\
- /XStep 8\n\
- /YStep 8\n\
- /PaintProc\n\
- {\n\
-  pop\n\
-  newpath\n\
-  1 setlinewidth\n\
-  -1 -1 moveto\n\
-  9 9 lineto\n\
-  stroke\n\
- } bind\n\
-\n\
->>\n\
-\n\
-matrix\n\
-makepattern\n\
+11 dict begin\n\
+/PaintType 1 def\n\
+/PatternType 1 def\n\
+/TilingType 1 def\n\
+/BBox [0 0 1 1] def\n\
+/XStep 1 def\n\
+/YStep 1 def\n\
+/PatWidth 1 def\n\
+/PatHeight 1 def\n\
+/Multi 2 def\n\
+/PaintData [\n\
+  { clippath } bind\n\
+  { 20 20 true [ 20 0 0 -20 0 20 ]\n\
+	{<0040100080200100400200800401000802001004\n\
+	0020080040100080200000401000802001004002\n\
+	0080040100080200100400200800401000802000>}\n\
+     imagemask } bind\n\
+] def\n\
+/PaintProc {\n\
+	pop\n\
+	exec fill\n\
+} def\n\
+currentdict\n\
+end\n\
 /P5 exch def\n\
 "
 #define		FILL_PAT06	"\
 % crosshatch45\n\
-<<\n\
- /PatternType 1\n\
- /PaintType 2\n\
- /TilingType 2\n\
- /BBox [-1 -1 9 9] \n\
- /XStep 8\n\
- /YStep 8\n\
- /PaintProc\n\
- {\n\
-  pop\n\
-  newpath\n\
-  1 setlinewidth\n\
-  -1 9 moveto\n\
-  9 -1 lineto\n\
-  stroke\n\
-  -1 -1 moveto\n\
-  9 9 lineto\n\
-  stroke\n\
- } bind\n\
-\n\
->>\n\
-\n\
-matrix\n\
-makepattern\n\
+11 dict begin\n\
+/PaintType 1 def\n\
+/PatternType 1 def\n\
+/TilingType 1 def\n\
+/BBox [0 0 1 1] def\n\
+/XStep 1 def\n\
+/YStep 1 def\n\
+/PatWidth 1 def\n\
+/PatHeight 1 def\n\
+/Multi 2 def\n\
+/PaintData [\n\
+  { clippath } bind\n\
+  { 20 20 true [ 20 0 0 -20 0 20 ]\n\
+	{<8020004050102088201104400a02800401000a02\n\
+	8011044020882040501080200040501020882011\n\
+	04400a02800401000a0280110440208820405010>}\n\
+     imagemask } bind\n\
+] def\n\
+/PaintProc {\n\
+	pop\n\
+	exec fill\n\
+} def\n\
+currentdict\n\
+end\n\
 /P6 exch def\n\
 "
 #define		FILL_PAT07	"\
 % bricks\n\
-<<\n\
- /PatternType 1\n\
- /PaintType 2\n\
- /TilingType 2\n\
- /BBox [-1 0 17 17]  % At least linewidth bigger than Xstep and Ystep\n\
- /XStep 16           % These numbers mimic old Xfig bitmaps\n\
- /YStep 16\n\
- /PaintProc\n\
- {\n\
-  pop\n\
-  1 setlinewidth 0 setlinecap\n\
-  newpath 0 0 moveto 0 8 lineto stroke\n\
-  newpath 8 8 moveto 8 16 lineto stroke\n\
-  newpath 0 8 moveto 16 8 lineto stroke\n\
-  newpath 0 16 moveto 16 16 lineto stroke\n\
- } bind\n\
-\n\
->>\n\
-\n\
-matrix\n\
-makepattern\n\
+11 dict begin\n\
+/PaintType 1 def\n\
+/PatternType 1 def\n\
+/TilingType 1 def\n\
+/BBox [0 0 1 1] def\n\
+/XStep 1 def\n\
+/YStep 1 def\n\
+/PatWidth 1 def\n\
+/PatHeight 1 def\n\
+/Multi 2 def\n\
+/PaintData [\n\
+  { clippath } bind\n\
+  { 16 16 true [ 16 0 0 -16 0 16 ]\n\
+	{<008000800080008000800080\n\
+	 0080ffff8000800080008000\n\
+	 800080008000ffff>}\n\
+        imagemask } bind\n\
+] def\n\
+/PaintProc {\n\
+	pop\n\
+	exec fill\n\
+} def\n\
+currentdict\n\
+end\n\
 /P7 exch def\n\
 "
 #define		FILL_PAT08	"\
 % vertical bricks\n\
-<<\n\
- /PatternType 1\n\
- /PaintType 2\n\
- /TilingType 2\n\
- /BBox [0 -1 17 17]  % At least linewidth bigger than Xstep and Ystep\n\
- /XStep 16\n\
- /YStep 16\n\
- /PaintProc\n\
- {\n\
-  pop\n\
-  1 setlinewidth 0 setlinecap\n\
-  newpath 0 0 moveto 8 0 lineto stroke\n\
-  newpath 8 8 moveto 16 8 lineto stroke\n\
-  newpath 8 0 moveto 8 16 lineto stroke\n\
-  newpath 16 0 moveto 16 16 lineto stroke\n\
- } bind\n\
-\n\
->>\n\
-\n\
-matrix\n\
-makepattern\n\
+11 dict begin\n\
+/PaintType 1 def\n\
+/PatternType 1 def\n\
+/TilingType 1 def\n\
+/BBox [0 0 1 1] def\n\
+/XStep 1 def\n\
+/YStep 1 def\n\
+/PatWidth 1 def\n\
+/PatHeight 1 def\n\
+/Multi 2 def\n\
+/PaintData [\n\
+  { clippath } bind\n\
+  { 16 16 true [ 16 0 0 -16 0 16 ]\n\
+	{<ff8080808080808080808080\n\
+	  8080808080ff808080808080\n\
+	  8080808080808080> }\n\
+        imagemask } bind\n\
+] def\n\
+/PaintProc {\n\
+	pop\n\
+	exec fill\n\
+} def\n\
+currentdict\n\
+end\n\
 /P8 exch def\n\
 "
 #define		FILL_PAT09	"\
 % horizontal lines\n\
-<<\n\
- /PatternType 1\n\
- /PaintType 2\n\
- /TilingType 2\n\
- /BBox [0 0 4 4]  % At least linewidth bigger than Xstep and Ystep\n\
- /XStep 4\n\
- /YStep 4\n\
- /PaintProc\n\
- {\n\
-  pop\n\
-  1 setlinewidth 0 setlinecap\n\
-  newpath 0 3.5 moveto 4 3.5 lineto stroke\n\
- } bind\n\
-\n\
->>\n\
-\n\
-matrix\n\
-makepattern\n\
+11 dict begin\n\
+/PaintType 1 def\n\
+/PatternType 1 def\n\
+/TilingType 1 def\n\
+/BBox [0 0 1 1] def\n\
+/XStep 1 def\n\
+/YStep 1 def\n\
+/PatWidth 1 def\n\
+/PatHeight 1 def\n\
+/Multi 2 def\n\
+/PaintData [\n\
+  { clippath } bind\n\
+  { 16 8 true [ 16 0 0 -8 0 8 ]\n\
+	{< ffff000000000000ffff000000000000>}\n\
+     imagemask } bind\n\
+] def\n\
+/PaintProc {\n\
+	pop\n\
+	exec fill\n\
+} def\n\
+currentdict\n\
+end\n\
 /P9 exch def\n\
 "
 #define		FILL_PAT10	"\
 % vertical lines\n\
-<<\n\
- /PatternType 1\n\
- /PaintType 2\n\
- /TilingType 2\n\
- /BBox [0 0 4 4]\n\
- /XStep 4\n\
- /YStep 4\n\
- /PaintProc\n\
- {\n\
-  pop\n\
-  1 setlinewidth 0 setlinecap\n\
-  newpath 3.5 0 moveto 3.5 4 lineto stroke\n\
- } bind\n\
-\n\
->>\n\
-\n\
-matrix\n\
-makepattern\n\
+11 dict begin\n\
+/PaintType 1 def\n\
+/PatternType 1 def\n\
+/TilingType 1 def\n\
+/BBox [0 0 1 1] def\n\
+/XStep 1 def\n\
+/YStep 1 def\n\
+/PatWidth 1 def\n\
+/PatHeight 1 def\n\
+/Multi 2 def\n\
+/PaintData [\n\
+  { clippath } bind\n\
+  { 8 16 true [ 8 0 0 -16 0 16 ]\n\
+	{<11111111111111111111111111111111>}\n\
+     imagemask } bind\n\
+] def\n\
+/PaintProc {\n\
+	pop\n\
+	exec fill\n\
+} def\n\
+currentdict\n\
+end\n\
 /P10 exch def\n\
 "
 #define		FILL_PAT11	"\
 % crosshatch lines\n\
-<<\n\
- /PatternType 1\n\
- /PaintType 2\n\
- /TilingType 2\n\
- /BBox [0 0 4 4]\n\
- /XStep 4\n\
- /YStep 4\n\
- /PaintProc\n\
- {\n\
-  pop\n\
-  1 setlinewidth 0 setlinecap\n\
-  newpath 3.5 0 moveto 3.5 4 lineto stroke\n\
-  newpath 0 3.5 moveto 4 3.5 lineto stroke\n\
- } bind\n\
-\n\
->>\n\
-\n\
-matrix\n\
-makepattern\n\
+11 dict begin\n\
+/PaintType 1 def\n\
+/PatternType 1 def\n\
+/TilingType 1 def\n\
+/BBox [0 0 1 1] def\n\
+/XStep 1 def\n\
+/YStep 1 def\n\
+/PatWidth 1 def\n\
+/PatHeight 1 def\n\
+/Multi 2 def\n\
+/PaintData [\n\
+  { clippath } bind\n\
+  { 16 16 true [ 16 0 0 -16 0 16 ]\n\
+	{<ffff111111111111ffff111111111111ffff111111111111\n\
+	ffff111111111111>}\n\
+     imagemask } bind\n\
+] def\n\
+/PaintProc {\n\
+	pop\n\
+	exec fill\n\
+} def\n\
+currentdict\n\
+end\n\
 /P11 exch def\n\
 "
 #define		FILL_PAT12	"\
 % left-shingles\n\
-<<\n\
- /PatternType 1\n\
- /PaintType 2\n\
- /TilingType 2\n\
- /BBox [0 0 25 24]\n\
- /XStep 24\n\
- /YStep 24\n\
- /PaintProc\n\
- {\n\
-  pop\n\
-  1 setlinewidth 0 setlinecap\n\
-  newpath 0 0.5 moveto 24 0.5 lineto stroke\n\
-  newpath 0 8.5 moveto 24 8.5 lineto stroke\n\
-  newpath 0 16.5 moveto 24 16.5 lineto stroke\n\
-  newpath 4 8.5 moveto 8 16.5 lineto stroke\n\
-  newpath 12 0.5 moveto 16 8.5 lineto stroke\n\
-  newpath 20 16.5 moveto 24 24.5 lineto stroke\n\
- } bind\n\
-\n\
->>\n\
-\n\
-matrix\n\
-makepattern\n\
+11 dict begin\n\
+/PaintType 1 def\n\
+/PatternType 1 def\n\
+/TilingType 1 def\n\
+/BBox [0 0 1 1] def\n\
+/XStep 1 def\n\
+/YStep 1 def\n\
+/PatWidth 1 def\n\
+/PatHeight 1 def\n\
+/Multi 2 def\n\
+/PaintData [\n\
+  { clippath } bind\n\
+  { 48 48 true [ 48 0 0 -48 0 48 ]\n\
+	{<000000000001000000000001000000000002000000000002\n\
+	000000000004000000000004000000000008000000000008\n\
+	000000000010000000000010000000000020000000000020\n\
+	000000000040000000000040000000000080ffffffffffff\n\
+	000000010000000000010000000000020000000000020000\n\
+	000000040000000000040000000000080000000000080000\n\
+	000000100000000000100000000000200000000000200000\n\
+	000000400000000000400000000000800000ffffffffffff\n\
+	000100000000000100000000000200000000000200000000\n\
+	000400000000000400000000000800000000000800000000\n\
+	001000000000001000000000002000000000002000000000\n\
+	004000000000004000000000008000000000ffffffffffff>}\n\
+     imagemask } bind\n\
+] def\n\
+/PaintProc {\n\
+	pop\n\
+	exec fill\n\
+} def\n\
+currentdict\n\
+end\n\
 /P12 exch def\n\
 "
 #define		FILL_PAT13	"\
 % right-shingles\n\
-<<\n\
- /PatternType 1\n\
- /PaintType 2\n\
- /TilingType 2\n\
- /BBox [0 0 25 24]\n\
- /XStep 24\n\
- /YStep 24\n\
- /PaintProc\n\
- {\n\
-  pop\n\
-  1 setlinewidth 0 setlinecap\n\
-  newpath 0 0.5 moveto 24 0.5 lineto stroke\n\
-  newpath 0 8.5 moveto 24 8.5 lineto stroke\n\
-  newpath 0 16.5 moveto 24 16.5 lineto stroke\n\
-  newpath 4 24.5 moveto 8 16.5 lineto stroke\n\
-  newpath 16 0.5 moveto 12 8.5 lineto stroke\n\
-  newpath 20 16.5 moveto 24 8.5 lineto stroke\n\
- } bind\n\
-\n\
->>\n\
-\n\
-matrix\n\
-makepattern\n\
+11 dict begin\n\
+/PaintType 1 def\n\
+/PatternType 1 def\n\
+/TilingType 1 def\n\
+/BBox [0 0 1 1] def\n\
+/XStep 1 def\n\
+/YStep 1 def\n\
+/PatWidth 1 def\n\
+/PatHeight 1 def\n\
+/Multi 2 def\n\
+/PaintData [\n\
+  { clippath } bind\n\
+  { 48 48 true [ 48 0 0 -48 0 48 ]\n\
+	{<000000000080000000000080000000000040000000000040\n\
+	000000000020000000000020000000000010000000000010\n\
+	000000000008000000000008000000000004000000000004\n\
+	000000000002000000000002000000000001ffffffffffff\n\
+	008000000000008000000000004000000000004000000000\n\
+	002000000000002000000000001000000000001000000000\n\
+	000800000000000800000000000400000000000400000000\n\
+	000200000000000200000000000100000000ffffffffffff\n\
+	000000800000000000800000000000400000000000400000\n\
+	000000200000000000200000000000100000000000100000\n\
+	000000080000000000080000000000040000000000040000\n\
+	000000020000000000020000000000010000ffffffffffff>}\n\
+     imagemask } bind\n\
+] def\n\
+/PaintProc {\n\
+	pop\n\
+	exec fill\n\
+} def\n\
+currentdict\n\
+end\n\
 /P13 exch def\n\
 "
 #define		FILL_PAT14	"\
 % vertical left-shingles\n\
-<<\n\
- /PatternType 1\n\
- /PaintType 2\n\
- /TilingType 2\n\
- /BBox [0 0 25 25]\n\
- /XStep 24\n\
- /YStep 24\n\
- /PaintProc\n\
- {\n\
-  pop\n\
-  1 setlinewidth 0 setlinecap\n\
-  newpath 0.5 0 moveto 0.5 24 lineto stroke\n\
-  newpath 8.5 0 moveto 8.5 24 lineto stroke\n\
-  newpath 16.5 0 moveto 16.5 24 lineto stroke\n\
-  newpath 24.5 4 moveto 16.5 8 lineto stroke\n\
-  newpath 0.5 16 moveto 8.5 12 lineto stroke\n\
-  newpath 16.5 20 moveto 8.5 24 lineto stroke\n\
- } bind\n\
-\n\
->>\n\
-\n\
-matrix\n\
-makepattern\n\
+11 dict begin\n\
+/PaintType 1 def\n\
+/PatternType 1 def\n\
+/TilingType 1 def\n\
+/BBox [0 0 1 1] def\n\
+/XStep 1 def\n\
+/YStep 1 def\n\
+/PatWidth 1 def\n\
+/PatHeight 1 def\n\
+/Multi 2 def\n\
+/PaintData [\n\
+  { clippath } bind\n\
+  { 48 48 true [ 48 0 0 -48 0 48 ]\n\
+	{<000100010001000100010001000100010001000100010001\n\
+	000100010001000100010001000100010001000100010001\n\
+	000180010001000160010001000118010001000106010001\n\
+	000101810001000100610001000100190001000100070001\n\
+	000100010001000100010001000100010001000100010001\n\
+	000100010001000100010001000100010001000100010001\n\
+	000100018001000100016001000100011801000100010601\n\
+	000100010181000100010061000100010019000100010007\n\
+	000100010001000100010001000100010001000100010001\n\
+	000100010001000100010001000100010001000100010001\n\
+	800100010001600100010001180100010001060100010001\n\
+	018100010001006100010001001900010001000700010001>}\n\
+     imagemask } bind\n\
+] def\n\
+/PaintProc {\n\
+	pop\n\
+	exec fill\n\
+} def\n\
+currentdict\n\
+end\n\
 /P14 exch def\n\
 "
 #define		FILL_PAT15	"\
 % vertical right-shingles\n\
-<<\n\
- /PatternType 1\n\
- /PaintType 2\n\
- /TilingType 2\n\
- /BBox [0 0 24 25]\n\
- /XStep 24\n\
- /YStep 24\n\
- /PaintProc\n\
- {\n\
-  pop\n\
-  1 setlinewidth 0 setlinecap\n\
-  newpath 0.5 0 moveto 0.5 24 lineto stroke\n\
-  newpath 8.5 0 moveto 8.5 24 lineto stroke\n\
-  newpath 16.5 0 moveto 16.5 24 lineto stroke\n\
-  newpath 8.5 4 moveto 16.5 8 lineto stroke\n\
-  newpath 0.5 12 moveto 8.5 16 lineto stroke\n\
-  newpath 16.5 20 moveto 24.5 24 lineto stroke\n\
- } bind\n\
-\n\
->>\n\
-\n\
-matrix\n\
-makepattern\n\
+11 dict begin\n\
+/PaintType 1 def\n\
+/PatternType 1 def\n\
+/TilingType 1 def\n\
+/BBox [0 0 1 1] def\n\
+/XStep 1 def\n\
+/YStep 1 def\n\
+/PatWidth 1 def\n\
+/PatHeight 1 def\n\
+/Multi 2 def\n\
+/PaintData [\n\
+  { clippath } bind\n\
+  { 48 48 true [ 48 0 0 -48 0 48 ]\n\
+	{<000100010001000100010001000100010001000100010001\n\
+	000100010001000100010001000100010001000100010001\n\
+	000100010007000100010019000100010061000100010181\n\
+	000100010601000100011801000100016001000100018001\n\
+	000100010001000100010001000100010001000100010001\n\
+	000100010001000100010001000100010001000100010001\n\
+	000100070001000100190001000100610001000101810001\n\
+	000106010001000118010001000160010001000180010001\n\
+	000100010001000100010001000100010001000100010001\n\
+	000100010001000100010001000100010001000100010001\n\
+	000700010001001900010001006100010001018100010001\n\
+	060100010001180100010001600100010001800100010001>}\n\
+     imagemask } bind\n\
+] def\n\
+/PaintProc {\n\
+	pop\n\
+	exec fill\n\
+} def\n\
+currentdict\n\
+end\n\
 /P15 exch def\n\
 "
 #define		FILL_PAT16	"\
 % fishscales\n\
-<<\n\
- /PatternType 1\n\
- /PaintType 2\n\
- /TilingType 2\n\
- /BBox [0 -1 17 9]\n\
- /XStep 16\n\
- /YStep 8\n\
- /PaintProc\n\
- {\n\
-  pop\n\
-  0.7 setlinewidth 0 setlinecap\n\
-  newpath 8 15 11 223 317 arc stroke\n\
-  newpath 0 11 11 223 317 arc stroke\n\
-  newpath 16 11 11 223 317 arc stroke\n\
- } bind\n\
-\n\
->>\n\
-\n\
-matrix\n\
-makepattern\n\
+11 dict begin\n\
+/PaintType 1 def\n\
+/PatternType 1 def\n\
+/TilingType 1 def\n\
+/BBox [0 0 1 1] def\n\
+/XStep 1 def\n\
+/YStep 1 def\n\
+/PatWidth 1 def\n\
+/PatHeight 1 def\n\
+/Multi 2 def\n\
+/PaintData [\n\
+  { clippath } bind\n\
+  {  32 16 true [ 32 0 0 -16 0 16 ]\n\
+	{<0007e000000c30000018180000700e0001c003800f0000f0\n\
+	7800001ec0000003600000063000000c180000180e000070\n\
+	038001c000f00f00001e78000003c000>}\n\
+     imagemask } bind\n\
+] def\n\
+/PaintProc {\n\
+	pop\n\
+	exec fill\n\
+} def\n\
+currentdict\n\
+end\n\
 /P16 exch def\n\
 "
 #define		FILL_PAT17	"\
 % small fishscales\n\
-<<\n\
- /PatternType 1\n\
- /PaintType 2\n\
- /TilingType 2\n\
- /BBox [0 -0.5 8 8.5]\n\
- /XStep 8\n\
- /YStep 8\n\
- /PaintProc\n\
- {\n\
-  pop\n\
-  0.7 setlinewidth 0 setlinecap\n\
-  newpath 4 8 4 180 360 arc stroke\n\
-  newpath 0 4 4 180 360 arc stroke\n\
-  newpath 8 4 4 180 360 arc stroke\n\
- } bind\n\
-\n\
->>\n\
-\n\
-matrix\n\
-makepattern\n\
+11 dict begin\n\
+/PaintType 1 def\n\
+/PatternType 1 def\n\
+/TilingType 1 def\n\
+/BBox [0 0 1 1] def\n\
+/XStep 1 def\n\
+/YStep 1 def\n\
+/PatWidth 1 def\n\
+/PatHeight 1 def\n\
+/Multi 2 def\n\
+/PaintData [\n\
+  { clippath } bind\n\
+  { 16 16 true [ 16 0 0 -16 0 16 ]\n\
+	{<008000800080014001400220\n\
+	0c187007c001800080004001\n\
+	40012002180c0770>}\n\
+     imagemask } bind\n\
+] def\n\
+/PaintProc {\n\
+	pop\n\
+	exec fill\n\
+} def\n\
+currentdict\n\
+end\n\
 /P17 exch def\n\
 "
 #define		FILL_PAT18	"\
 % circles\n\
-<<\n\
- /PatternType 1\n\
- /PaintType 2\n\
- /TilingType 2\n\
- /BBox [-0.35 -0.35 16.35 16.35] % (0, 16) plus 1/2 linewidth\n\
- /XStep 16\n\
- /YStep 16\n\
- /PaintProc\n\
- {\n\
-  pop\n\
-  0.7 setlinewidth 0 setlinecap\n\
-  newpath 8 8 8 0 360 arc stroke\n\
- } bind\n\
-\n\
->>\n\
-\n\
-matrix\n\
-makepattern\n\
+11 dict begin\n\
+/PaintType 1 def\n\
+/PatternType 1 def\n\
+/TilingType 1 def\n\
+/BBox [0 0 1 1] def\n\
+/XStep 1 def\n\
+/YStep 1 def\n\
+/PatWidth 1 def\n\
+/PatHeight 1 def\n\
+/Multi 2 def\n\
+/PaintData [\n\
+  { clippath } bind\n\
+  { 48 48 true [ 48 0 0 -48 0 48 ]\n\
+	{<000007f000000000780f000000038000e000000c00001800\n\
+	001000000400006000000300008000000080010000000040\n\
+	020000000020040000000010040000000010080000000008\n\
+	100000000004100000000004200000000002200000000002\n\
+	200000000002400000000001400000000001400000000001\n\
+	400000000001800000000000800000000000800000000000\n\
+	800000000000800000000000800000000000800000000000\n\
+	400000000001400000000001400000000001400000000001\n\
+	200000000002200000000002200000000002100000000004\n\
+	100000000004080000000008040000000010040000000010\n\
+	020000000020010000000040008000000080006000000300\n\
+	001000000400000c0000180000038000e0000000780f0000>}\n\
+     imagemask } bind\n\
+] def\n\
+/PaintProc {\n\
+	pop\n\
+	exec fill\n\
+} def\n\
+currentdict\n\
+end\n\
 /P18 exch def\n\
 "
 #define		FILL_PAT19	"\
 % hexagons\n\
-<<\n\
- /PatternType 1\n\
- /PaintType 2\n\
- /TilingType 1\n\
- /BBox [-0.5 -0.35 27 17]\n\
- /XStep 26\n\
- /YStep 16\n\
- /PaintProc\n\
- {\n\
-  pop\n\
-  0.7 setlinewidth 0 setlinejoin newpath\n\
-  4 0 moveto\n\
-  9 0 rlineto      % right\n\
-  4 8 rlineto      % up-right\n\
-  -4 8 rlineto     % up-left\n\
-  -9 0 rmoveto     % back\n\
-  -4 -8 rlineto     % down-left\n\
-  4 -8 rlineto 1 0 rlineto stroke % down-right\n\
-  newpath 17 8 moveto 9 0 rlineto stroke\n\
- } bind\n\
-\n\
->>\n\
-\n\
-matrix\n\
-makepattern\n\
+11 dict begin\n\
+/PaintType 1 def\n\
+/PatternType 1 def\n\
+/TilingType 1 def\n\
+/BBox [0 0 1 1] def\n\
+/XStep 1 def\n\
+/YStep 1 def\n\
+/PatWidth 1 def\n\
+/PatHeight 1 def\n\
+/Multi 2 def\n\
+/PaintData [\n\
+  { clippath } bind\n\
+  { 60 36 true [ 60 0 0 -36 0 36 ]\n\
+	{<008000040000000001000002000000000100000200000000\n\
+	020000010000000002000001000000000400000080000000\n\
+	040000008000000008000000400000000800000040000000\n\
+	100000002000000010000000200000002000000010000000\n\
+	200000001000000040000000080000004000000008000000\n\
+	800000000400000080000000040000000000000003fffff0\n\
+	800000000400000080000000040000004000000008000000\n\
+	400000000800000020000000100000002000000010000000\n\
+	100000002000000010000000200000000800000040000000\n\
+	080000004000000004000000800000000400000080000000\n\
+	020000010000000002000001000000000100000200000000\n\
+	0100000200000000008000040000000000fffffc00000000>}\n\
+     imagemask } bind\n\
+] def\n\
+/PaintProc {\n\
+	pop\n\
+	exec fill\n\
+} def\n\
+currentdict\n\
+end\n\
 /P19 exch def\n\
 "
 #define		FILL_PAT20	"\
 % octagons\n\
-<<\n\
- /PatternType 1\n\
- /PaintType 2\n\
- /TilingType 2\n\
- /BBox [0 0 16 16]\n\
- /XStep 16\n\
- /YStep 16\n\
- /PaintProc\n\
- {\n\
-  pop\n\
-  .8 setlinewidth 0 setlinejoin newpath\n\
-  5 0 moveto 6 0 rlineto 5 5 rlineto 0 6 rlineto\n\
-  -5 5 rlineto -6 0 rlineto -5 -5 rlineto 0 -6 rlineto closepath stroke\n\
- } bind\n\
-\n\
->>\n\
-\n\
-matrix\n\
-makepattern\n\
+11 dict begin\n\
+/PaintType 1 def\n\
+/PatternType 1 def\n\
+/TilingType 1 def\n\
+/BBox [0 0 1 1] def\n\
+/XStep 1 def\n\
+/YStep 1 def\n\
+/PatWidth 1 def\n\
+/PatHeight 1 def\n\
+/Multi 2 def\n\
+/PaintData [\n\
+  { clippath } bind\n\
+  { 32 32 true [ 32 0 0 -32 0 32 ]\n\
+	{<003fff000040008000800040010000200200001004000008\n\
+	080000041000000220000001400000008000000080000000\n\
+	800000008000000080000000800000008000000080000000\n\
+	800000008000000080000000800000008000000080000000\n\
+	400000012000000210000004080000080400001002000020\n\
+	0100004000800080>}\n\
+     imagemask } bind\n\
+] def\n\
+/PaintProc {\n\
+	pop\n\
+	exec fill\n\
+} def\n\
+currentdict\n\
+end\n\
 /P20 exch def\n\
 "
 #define		FILL_PAT21	"\
 % horizontal sawtooth lines\n\
-<<\n\
- /PatternType 1\n\
- /PaintType 2\n\
- /TilingType 1\n\
- /BBox [0 0 8 8]\n\
- /XStep 8\n\
- /YStep 8\n\
- /PaintProc\n\
- {\n\
-  pop\n\
-  .8 setlinewidth 0 setlinejoin newpath\n\
-  -1 3 moveto 1 -1 rlineto 4 4 rlineto 4 -4 rlineto 1 1 rlineto stroke\n\
- } bind\n\
-\n\
->>\n\
-\n\
-matrix\n\
-makepattern\n\
+11 dict begin\n\
+/PaintType 1 def\n\
+/PatternType 1 def\n\
+/TilingType 1 def\n\
+/BBox [0 0 1 1] def\n\
+/XStep 1 def\n\
+/YStep 1 def\n\
+/PatWidth 1 def\n\
+/PatHeight 1 def\n\
+/Multi 2 def\n\
+/PaintData [\n\
+  { clippath } bind\n\
+  { 32 16 true [ 32 0 0 -16 0 16 ]\n\
+	{<000000000000000000000000000000000000000000000000\n\
+	000000000100010002800280044004400820082010101010\n\
+	20082008400440048002800200010001>}\n\
+     imagemask } bind\n\
+] def\n\
+/PaintProc {\n\
+	pop\n\
+	exec fill\n\
+} def\n\
+currentdict\n\
+end\n\
 /P21 exch def\n\
 "
 #define		FILL_PAT22	"\
 % vertical sawtooth lines\n\
-<<\n\
- /PatternType 1\n\
- /PaintType 2\n\
- /TilingType 1\n\
- /BBox [0 0 8.5 8]\n\
- /XStep 8\n\
- /YStep 8\n\
- /PaintProc\n\
- {\n\
-  pop\n\
-  .8 setlinewidth 0 setlinejoin newpath\n\
-  3 -1 moveto -1 1 rlineto 4 4 rlineto -4 4 rlineto 1 1 rlineto stroke\n\
- } bind\n\
-\n\
->>\n\
-\n\
-matrix\n\
-makepattern\n\
+11 dict begin\n\
+/PaintType 1 def\n\
+/PatternType 1 def\n\
+/TilingType 1 def\n\
+/BBox [0 0 1 1] def\n\
+/XStep 1 def\n\
+/YStep 1 def\n\
+/PatWidth 1 def\n\
+/PatHeight 1 def\n\
+/Multi 2 def\n\
+/PaintData [\n\
+  { clippath } bind\n\
+  { 16 32 true [ 16 0 0 -32 0 32 ]\n\
+	{<400020001000080004000200010000800100020004000800\n\
+	100020004000800040002000100008000400020001000080\n\
+	01000200040008001000200040008000>}\n\
+     imagemask } bind\n\
+] def\n\
+/PaintProc {\n\
+	pop\n\
+	exec fill\n\
+} def\n\
+currentdict\n\
+end\n\
 /P22 exch def\n\
 "
 
openSUSE Build Service is sponsored by