diff --git a/.gitattributes b/.gitattributes
index 2b1b6e0444a723c6c4ce29d05299e4c3969d1995..7f6c875462f934ee41970e71f56ff9e56245d4f6 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -2,7 +2,6 @@
 * text ident
 *.gif binary
 *.gz binary
-*.ppm binary
 *.rs binary
 testfont binary
 
@@ -76,7 +75,6 @@ testfont binary
 /src/modules/Image/colortable.h foreign_ident
 /src/modules/Image/colortable_lookup.h foreign_ident
 /src/modules/Image/dct.c foreign_ident
-/src/modules/Image/doc/Image.html foreign_ident
 /src/modules/Image/encodings/gif.c foreign_ident
 /src/modules/Image/encodings/gif_lzw.c foreign_ident
 /src/modules/Image/encodings/gif_lzw.h foreign_ident
diff --git a/src/modules/Image/doc/Image.GIF.html b/src/modules/Image/doc/Image.GIF.html
deleted file mode 100644
index bb445a749923d884e23b72c6b2b7fe3de94d4d15..0000000000000000000000000000000000000000
--- a/src/modules/Image/doc/Image.GIF.html
+++ /dev/null
@@ -1,439 +0,0 @@
-<title>Pike documentation: module Image.GIF</title>
-<h2>module Image.GIF</h2>
-
-
-<blockquote>
-This submodule keep the GIF encode/decode capabilities
-     of the <tt><a href=Image.html>Image</a></tt> module.
-
-<p>     GIF is a common image storage format,
-     usable for a limited color palette - a GIF image can 
-     only contain as most 256 colors - and animations.
-
-<p>     Simple encoding:
-     <tt><a href=Image.GIF.html#encode>encode</a></tt>, <tt><a href=Image.GIF.html#encode_trans>encode_trans</a></tt>
-
-<p>     Advanced stuff:
-     <tt><a href=Image.GIF.html#render_block>render_block</a></tt>, <tt><a href=Image.GIF.html#header_block>header_block</a></tt>,
-     <tt><a href=Image.GIF.html#end_block>end_block</a></tt>, <tt><a href=Image.GIF.html#netscape_loop_block>netscape_loop_block</a></tt>
-
-<p>     Very advanced stuff:
-     <tt><a href=Image.GIF.html#_render_block>_render_block</a></tt>, <tt><a href=Image.GIF.html#_gce_block>_gce_block</a></tt>
-</blockquote>
-
-
-<h4>SEE ALSO</h4>
-<blockquote>     <tt><a href=Image.html>Image</a></tt>,
-     <tt><a href=Image.image.html>Image.image</a></tt>,
-     <tt><a href=Image.colortable.html>Image.colortable</a></tt>
-</blockquote>
-
-<hr>
-<a name=_gce_block> </a>
-<h4>SYNOPSIS</h4>
-<blockquote>
-<tt>string <b>_gce_block</b>(int&nbsp;transparency, int&nbsp;transparency_index, int&nbsp;delay, int&nbsp;user_input, int&nbsp;disposal);</tt>
-</blockquote>
-
-<h4>DESCRIPTION</h4>
-
-
-<blockquote>
-This function gives back a Graphic Control Extension block.
-     A GCE block has the scope of the following render block.
-</blockquote>
-<h4>ARGUMENTS</h4>
-<blockquote><dl>
-<dt><tt>int transparency</tt>
-<dt><tt>int transparency_index</tt>
-  <dd>The following image has transparency, marked with this index.
-<dt><tt>int delay</tt>
-  <dd>View the following rendering for this many centiseconds (0..65535).
-<dt><tt>int user_input</tt>
-  <dd>Wait the delay or until user input. If delay is zero,
-     wait indefinitely for user input. May sound the bell
-     upon decoding.
-<dt><tt>int disposal</tt>
-  <dd>Disposal method number;
-     <dl compact>
-     <dt>0<dd>No disposal specified. The decoder is
-              not required to take any action.
-     <dt>1<dd>Do not dispose. The graphic is to be left
-              in place.
-     <dt>2<dd>Restore to background color. The area used by the
-              graphic must be restored to the background color.
-     <dt>3<dd>Restore to previous. The decoder is required to
-              restore the area overwritten by the graphic with
-              what was there prior to rendering the graphic.
-     <dt compact>4-7<dd>To be defined.
-     </dl>
-</dl></blockquote>
-
-
-<h4>NOTE</h4>
-<blockquote>
-This is in the very advanced sector of the GIF support;
-     please read about how GIFs file works.
-
-<p>     Most decoders just ignore some or all of these parameters.
-</blockquote>
-
-
-<h4>SEE ALSO</h4>
-<blockquote>     <tt><a href=Image.GIF.html#_render_block>_render_block</a></tt>,
-     <tt><a href=Image.GIF.html#render_block>render_block</a></tt>
-</blockquote>
-
-<hr>
-<a name=_render_block> </a>
-<h4>SYNOPSIS</h4>
-<blockquote>
-<tt>string <b>_render_block</b>(int&nbsp;x, int&nbsp;y, int&nbsp;xsize, int&nbsp;ysize, int&nbsp;bpp, string&nbsp;indices, 0|string&nbsp;colortable, int&nbsp;interlace);</tt>
-</blockquote>
-
-<h4>DESCRIPTION</h4>
-
-
-<blockquote>
-Advanced (!) method for writing renderblocks for placement
-     in a GIF file. This method only applies LZW encoding on the
-     indices and makes the correct headers.
-</blockquote>
-<h4>ARGUMENTS</h4>
-<blockquote><dl>
-<dt><tt>int x</tt>
-<dt><tt>int y</tt>
-  <dd>Position of this image.
-<dt><tt>int xsize</tt>
-<dt><tt>int ysize</tt>
-  <dd>Size of the image. Length if the <tt>indices</tt> string
-     must be xsize*ysize.
-<dt><tt>int bpp</tt>
-  <dd>Bits per pixels in the indices. Valid range 1..8.
-<dt><tt>string indices</tt>
-  <dd>The image indices as an 8bit indices.
-<dt><tt>string colortable</tt>
-  <dd>Colortable with colors to write as palette.
-     If this argument is zero, no local colortable is written.
-     Colortable string len must be 1&amp;lt;&amp;lt;bpp.
-<dt><tt>int interlace</tt>
-  <dd>Interlace index data and set interlace bit. The given string
-     should _not_ be pre-interlaced.
-</dl></blockquote>
-
-
-<h4>NOTE</h4>
-<blockquote>
-This is in the very advanced sector of the GIF support;
-     please read about how GIFs file works.
-</blockquote>
-
-
-<h4>SEE ALSO</h4>
-<blockquote>     <tt><a href=Image.GIF.html#encode>encode</a></tt>,
-     <tt><a href=Image.GIF.html#_encode>_encode</a></tt>,
-     <tt><a href=Image.GIF.html#header_block>header_block</a></tt>,
-     <tt><a href=Image.GIF.html#end_block>end_block</a></tt>
-</blockquote>
-
-<hr>
-<a name=encode> </a>
-<a name=encode_trans> </a>
-<h4>SYNOPSIS</h4>
-<blockquote>
-<tt>string <b>encode</b>(object&nbsp;img);<br>
-string <b>encode</b>(object&nbsp;img, int&nbsp;colors);<br>
-string <b>encode</b>(object&nbsp;img, object&nbsp;colortable);<br>
-string <b>encode_trans</b>(object&nbsp;img, object&nbsp;alpha);<br>
-string <b>encode_trans</b>(object&nbsp;img, int&nbsp;tr_r, int&nbsp;tr_g, int&nbsp;tr_b);<br>
-string <b>encode_trans</b>(object&nbsp;img, int&nbsp;colors, object&nbsp;alpha);<br>
-string <b>encode_trans</b>(object&nbsp;img, int&nbsp;colors, int&nbsp;tr_r, int&nbsp;tr_g, int&nbsp;tr_b);<br>
-string <b>encode_trans</b>(object&nbsp;img, int&nbsp;colors, object&nbsp;alpha, int&nbsp;tr_r, int&nbsp;tr_g, int&nbsp;tr_b);<br>
-string <b>encode_trans</b>(object&nbsp;img, object&nbsp;colortable, object&nbsp;alpha);<br>
-string <b>encode_trans</b>(object&nbsp;img, object&nbsp;colortable, int&nbsp;tr_r, int&nbsp;tr_g, int&nbsp;tr_b);<br>
-string <b>encode_trans</b>(object&nbsp;img, object&nbsp;colortable, object&nbsp;alpha, int&nbsp;a_r, int&nbsp;a_g, int&nbsp;a_b);<br>
-string <b>encode_trans</b>(object&nbsp;img, object&nbsp;colortable, int&nbsp;transp_index);</tt>
-</blockquote>
-
-<h4>DESCRIPTION</h4>
-
-
-<blockquote>
-Create a complete GIF file.
-
-<p>     The latter (<tt><a href=Image.GIF.html#encode_trans>encode_trans</a></tt>) functions 
-     add transparency capabilities.
-
-<p>     Example:
-     <pre>
-     img=<tt><a href=Image.image.html>Image.image</a></tt>([...]);
-     [...] // make your very-nice image
-     write(<tt><a href=Image.GIF.encode.html>Image.GIF.encode</a></tt>(img)); // write it as GIF on stdout 
-     </pre>
-</blockquote>
-<h4>ARGUMENTS</h4>
-<blockquote><dl>
-<dt><tt>object img</tt>
-  <dd>The image which to encode.
-<dt><tt>int colors</tt>
-<dt><tt>object colortable</tt>
-  <dd>These arguments decides what colors the image should
-     be encoded with. If a number is given, a colortable
-     with be created with (at most) that amount of colors.
-     Default is '256' (GIF maximum amount of colors).
-<dt><tt>object alpha</tt>
-  <dd>Alpha channel image (defining what is transparent); black
-     color indicates transparency. GIF has only transparent
-     or nontransparent (no real alpha channel).
-     You can always dither a transparency channel:
-     <tt>Image.colortable(my_alpha, ({({0,0,0}),({255,255,255})}))<wbr>
-         ->full()<wbr>->floyd_steinberg()<wbr>->map(my_alpha)</tt>
-<dt><tt>int tr_r</tt>
-<dt><tt>int tr_g</tt>
-<dt><tt>int tr_b</tt>
-  <dd>Use this (or the color closest to this) color as transparent
-     pixels.
-<dt><tt>int a_r</tt>
-<dt><tt>int a_g</tt>
-<dt><tt>int a_b</tt>
-  <dd>Encode transparent pixels (given by alpha channel image) 
-     to have this color. This option is for making GIFs for 
-     the decoders that doesn't support transparency.
-<dt><tt>int transp_index</tt>
-  <dd>Use this color no in the colortable as transparent color.
-</dl></blockquote>
-
-
-<h4>NOTE</h4>
-<blockquote>
-For advanced users:
-     <pre>Image.GIF.encode_trans(img,colortable,alpha);</pre>
-     is equivalent of using
-     <pre>Image.GIF.header_block(img->xsize(),img->ysize(),colortable)+
-     Image.GIF.render_block(img,colortable,0,0,0,alpha)+
-     Image.GIF.end_block();</pre>
-     and is actually implemented that way.
-</blockquote>
-
-<hr>
-<a name=end_block> </a>
-<h4>SYNOPSIS</h4>
-<blockquote>
-<tt>string <b>end_block</b>();</tt>
-</blockquote>
-
-<h4>DESCRIPTION</h4>
-
-
-<blockquote>
-This function gives back a GIF end (trailer) block.
-</blockquote>
-<h4>RETURNS</h4>
-
-
-<blockquote>
-the end block as a string.
-</blockquote>
-
-
-<h4>NOTE</h4>
-<blockquote>
-This is in the advanced sector of the GIF support;
-     please read some about how GIFs are packed.
-
-<p>     The result of this function is always ";" or "\x3b",
-     but I recommend using this function anyway for code clearity.
-</blockquote>
-
-
-<h4>SEE ALSO</h4>
-<blockquote>     <tt><a href=Image.GIF.html#header_block>header_block</a></tt>,
-     <tt><a href=Image.GIF.html#end_block>end_block</a></tt>
-</blockquote>
-
-<hr>
-<a name=header_block> </a>
-<h4>SYNOPSIS</h4>
-<blockquote>
-<tt>string <b>header_block</b>(int&nbsp;xsize, int&nbsp;ysize, int&nbsp;numcolors);<br>
-string <b>header_block</b>(int&nbsp;xsize, int&nbsp;ysize, object&nbsp;colortable);<br>
-string <b>header_block</b>(int&nbsp;xsize, int&nbsp;ysize, object&nbsp;colortable, int&nbsp;background_color_index, int&nbsp;gif87a, int&nbsp;aspectx, int&nbsp;aspecty);<br>
-string <b>header_block</b>(int&nbsp;xsize, int&nbsp;ysize, object&nbsp;colortable, int&nbsp;background_color_index, int&nbsp;gif87a, int&nbsp;aspectx, int&nbsp;aspecty, int&nbsp;r, int&nbsp;g, int&nbsp;b);</tt>
-</blockquote>
-
-<h4>DESCRIPTION</h4>
-
-
-<blockquote>
-This function gives back a GIF header block.
-
-<p>     Giving a colortable to this function includes a 
-     global palette in the header block.
-</blockquote>
-<h4>ARGUMENTS</h4>
-<blockquote><dl>
-<dt><tt>int xsize</tt>
-<dt><tt>int ysize</tt>
-  <dd>Size of drawing area. Usually same size as in
-     the first (or only) render block(s).
-<dt><tt>int background_color_index</tt>
-  <dd>This color in the palette is the background color.
-     Background is visible if the following render block(s)
-     doesn't fill the drawing area or are transparent.
-     Most decoders doesn't use this value, though.
-<dt><tt>int gif87a</tt>
-  <dd>If set, write 'GIF87a' instead of 'GIF89a' (default 0 == 89a).
-<dt><tt>int aspectx</tt>
-<dt><tt>int aspecty</tt>
-  <dd>Aspect ratio of pixels,
-     ranging from 4:1 to 1:4 in increments
-     of 1/16th. Ignored by most decoders. 
-     If any of <tt>aspectx</tt> or <tt>aspecty</tt> is zero,
-     aspectratio information is skipped.
-<dt><tt>int r</tt>
-<dt><tt>int g</tt>
-<dt><tt>int b</tt>
-  <dd>Add this color as the transparent color.
-     This is the color used as transparency color in
-     case of alpha-channel given as image object. 
-     This increases (!) the number of colors by one.
-</dl></blockquote>
-<h4>RETURNS</h4>
-
-
-<blockquote>
-the created header block as a string
-</blockquote>
-
-
-<h4>NOTE</h4>
-<blockquote>
-This is in the advanced sector of the GIF support;
-     please read some about how GIFs are packed.
-
-<p>     This GIF encoder doesn't support different size
-     of colors in global palette and color resolution.
-</blockquote>
-
-
-<h4>SEE ALSO</h4>
-<blockquote>     <tt><a href=Image.GIF.html#header_block>header_block</a></tt>,
-     <tt><a href=Image.GIF.html#end_block>end_block</a></tt>
-</blockquote>
-
-<hr>
-<a name=netscape_loop_block> </a>
-<h4>SYNOPSIS</h4>
-<blockquote>
-<tt>string <b>netscape_loop_block</b>();<br>
-string <b>netscape_loop_block</b>(int&nbsp;number_of_loops);</tt>
-</blockquote>
-
-<h4>DESCRIPTION</h4>
-
-
-<blockquote>
-Creates a application-specific extention block;
-     this block makes netscape and compatible browsers
-     loop the animation a certain amount of times.
-</blockquote>
-<h4>ARGUMENTS</h4>
-<blockquote><dl>
-<dt><tt>int number_of_loops</tt>
-  <dd>Number of loops. Max and default is 65535.
-</dl></blockquote>
-
-<hr>
-<a name=render_block> </a>
-<h4>SYNOPSIS</h4>
-<blockquote>
-<tt>string <b>render_block</b>(object&nbsp;img, object&nbsp;colortable, int&nbsp;x, int&nbsp;y, int&nbsp;localpalette);<br>
-string <b>render_block</b>(object&nbsp;img, object&nbsp;colortable, int&nbsp;x, int&nbsp;y, int&nbsp;localpalette, object&nbsp;alpha);<br>
-string <b>render_block</b>(object&nbsp;img, object&nbsp;colortable, int&nbsp;x, int&nbsp;y, int&nbsp;localpalette, object&nbsp;alpha, int&nbsp;r, int&nbsp;g, int&nbsp;b);<br>
-string <b>render_block</b>(object&nbsp;img, object&nbsp;colortable, int&nbsp;x, int&nbsp;y, int&nbsp;localpalette, int&nbsp;delay, int&nbsp;transp_index, int&nbsp;interlace, int&nbsp;user_input, int&nbsp;disposal);<br>
-string <b>render_block</b>(object&nbsp;img, object&nbsp;colortable, int&nbsp;x, int&nbsp;y, int&nbsp;localpalette, object&nbsp;alpha, int&nbsp;r, int&nbsp;g, int&nbsp;b, int&nbsp;delay, int&nbsp;interlace, int&nbsp;user_input, int&nbsp;disposal);</tt>
-</blockquote>
-
-<h4>DESCRIPTION</h4>
-
-
-<blockquote>
-This function gives a image block for placement in a GIF file,
-     with or without transparency.
-     The some options actually gives two blocks, 
-     the first with graphic control extensions for such things
-     as delay or transparency.
-
-<p>     Example:
-     <pre>
-     img1=<tt><a href=Image.image.html>Image.image</a></tt>([...]);
-     img2=<tt><a href=Image.image.html>Image.image</a></tt>([...]);
-     [...] // make your very-nice images
-     nct=<tt><a href=Image.colortable.html>Image.colortable</a></tt>([...]); // make a nice colortable
-     write(<tt><a href=Image.GIF.header_block.html>Image.GIF.header_block</a></tt>(xsize,ysize,nct)); // write a GIF header
-     write(<tt><a href=Image.GIF.render_block.html>Image.GIF.render_block</a></tt>(img1,nct,0,0,0,10)); // write a render block
-     write(<tt><a href=Image.GIF.render_block.html>Image.GIF.render_block</a></tt>(img2,nct,0,0,0,10)); // write a render block
-     [...]
-     write(<tt><a href=Image.GIF.end_block.html>Image.GIF.end_block</a></tt>()); // write end block
-     // voila! A GIF animation on stdout.
-     </pre>
-</blockquote>
-<h4>ARGUMENTS</h4>
-<blockquote><dl>
-<dt><tt>object img</tt>
-  <dd>The image.
-<dt><tt>object colortable</tt>
-  <dd>Colortable with colors to use and to write as palette.
-<dt><tt>int x</tt>
-<dt><tt>int y</tt>
-  <dd>Position of this image.
-<dt><tt>int localpalette</tt>
-  <dd>If set, writes a local palette.
-<dt><tt>object alpha</tt>
-  <dd>Alpha channel image; black is transparent.
-<dt><tt>int r</tt>
-<dt><tt>int g</tt>
-<dt><tt>int b</tt>
-  <dd>Color of transparent pixels. Not all decoders understands
-     transparency. This is ignored if localpalette isn't set.
-<dt><tt>int delay</tt>
-  <dd>View this image for this many centiseconds. Default is zero.
-<dt><tt>int transp_index</tt>
-  <dd>Index of the transparent color in the colortable.
-     <tt>-1</tt> indicates no transparency.
-<dt><tt>int user_input</tt>
-  <dd>If set: wait the delay or until user input. If delay is zero,
-     wait indefinitely for user input. May sound the bell
-     upon decoding. Default is non-set.
-<dt><tt>int disposal</tt>
-  <dd>Disposal method number;
-     <dl compact>
-     <dt>0<dd>No disposal specified. The decoder is
-              not required to take any action. (default)
-     <dt>1<dd>Do not dispose. The graphic is to be left
-              in place.
-     <dt>2<dd>Restore to background color. The area used by the
-              graphic must be restored to the background color.
-     <dt>3<dd>Restore to previous. The decoder is required to
-              restore the area overwritten by the graphic with
-              what was there prior to rendering the graphic.
-     <dt compact>4-7<dd>To be defined.
-     </dl>
-</dl></blockquote>
-
-
-<h4>NOTE</h4>
-<blockquote>
-This is in the advanced sector of the GIF support;
-     please read some about how GIFs are packed.
-
-<p>     The user_input and disposal method are unsupported
-     in most decoders.
-</blockquote>
-
-
-<h4>SEE ALSO</h4>
-<blockquote>     <tt><a href=Image.GIF.html#encode>encode</a></tt>,
-     <tt><a href=Image.GIF.html#header_block>header_block</a></tt>,
-     <tt><a href=Image.GIF.html#end_block>end_block</a></tt>
-</blockquote>
diff --git a/src/modules/Image/doc/Image.PNM.html b/src/modules/Image/doc/Image.PNM.html
deleted file mode 100644
index 5a059ee95b583392fac0ba56f16587494b1446a4..0000000000000000000000000000000000000000
--- a/src/modules/Image/doc/Image.PNM.html
+++ /dev/null
@@ -1,104 +0,0 @@
-<title>Pike documentation: module Image.PNM</title>
-<h2>module Image.PNM</h2>
-
-
-<blockquote>
-This submodule keep the PNM encode/decode capabilities
-     of the <tt><a href=Image.html>Image</a></tt> module.
-
-<p>     PNM is a common image storage format on unix systems,
-     and is a very simple format.
-
-<p>     This format doesn't use any color palette.
-
-<p>     The format is divided into seven subformats;
-
-<p>     <pre>
-     P1(PBM) - ascii bitmap (only two colors)
-     P2(PGM) - ascii greymap (only grey levels)
-     P3(PPM) - ascii truecolor
-     P4(PBM) - binary bitmap 
-     P5(PGM) - binary greymap 
-     P6(PPM) - binary truecolor
-     </pre>
-</blockquote>
-
-
-<h4>SEE ALSO</h4>
-<blockquote>     <tt><a href=Image.html>Image</a></tt>,
-     <tt><a href=Image.image.html>Image.image</a></tt>,
-     <tt><a href=Image.GIF.html>Image.GIF</a></tt>
-</blockquote>
-
-<hr>
-<a name=decode> </a>
-<h4>SYNOPSIS</h4>
-<blockquote>
-<tt>object <b>decode</b>(string&nbsp;data)</tt>
-</blockquote>
-
-<h4>DESCRIPTION</h4>
-
-
-<blockquote>
-Decodes PNM (PBM/PGM/PPM) data and creates an image object.
-</blockquote>
-<h4>RETURNS</h4>
-
-
-<blockquote>
-the decoded image as an image object
-</blockquote>
-
-
-<h4>NOTE</h4>
-<blockquote>
-This function may throw errors upon illegal PNM data.
-</blockquote>
-
-
-<h4>SEE ALSO</h4>
-<blockquote>     <tt><a href=Image.PNM.html#encode>encode</a></tt>
-</blockquote>
-
-<hr>
-<a name=encode> </a>
-<a name=encode_binary> </a>
-<a name=encode_P6> </a>
-<h4>SYNOPSIS</h4>
-<blockquote>
-<tt>string <b>encode</b>(object&nbsp;image)<br>
-string <b>encode_binary</b>(object&nbsp;image)<br>
-string <b>encode_P6</b>(object&nbsp;image)</tt>
-</blockquote>
-
-<h4>DESCRIPTION</h4>
-
-
-<blockquote>
-Make a complete PNM file from an image.
-
-<p>     <tt><a href=Image.PNM.html#encode_binary>encode_binary</a></tt>() and <tt><a href=Image.PNM.html#encode_ascii>encode_ascii</a></tt>()
-     uses the most optimized encoding for this image (bitmap, grey
-     or truecolor) - P4, P5 or P6 respective P1, P2 or P3.
-
-<p>     <tt><a href=Image.PNM.html#encode>encode</a></tt>() maps to <tt><a href=Image.PNM.html#encode_binary>encode_binary</a></tt>().
-</blockquote>
-<h4>RETURNS</h4>
-
-
-<blockquote>
-the encoded image as a string
-</blockquote>
-
-
-<h4>KNOWN BUGS</h4>
-<blockquote>
-Currently only supports type P5 (binary grey) and
-     P6 (binary truecolor).
-</blockquote>
-
-
-<h4>SEE ALSO</h4>
-<blockquote>     <tt><a href=Image.PNM.html#decode>decode</a></tt>
-</blockquote>
diff --git a/src/modules/Image/doc/Image.colortable.html b/src/modules/Image/doc/Image.colortable.html
deleted file mode 100644
index 8b0d4d38136c195cc96918a4003ca8ba8f55beaf..0000000000000000000000000000000000000000
--- a/src/modules/Image/doc/Image.colortable.html
+++ /dev/null
@@ -1,682 +0,0 @@
-<title>Pike documentation: Image.colortable</title>
-<h2>Image.colortable</h2>
-
-
-<blockquote>
-This object keeps colortable information,
-     mostly for image re-coloring (quantization).
-
-<p>     The object has color reduction, quantisation,
-     mapping and dithering capabilities.
-</blockquote>
-
-
-<h4>SEE ALSO</h4>
-<blockquote>     <tt><a href=Image.html>Image</a></tt>,
-     <tt><a href=Image.image.html>Image.image</a></tt>,
-     <tt><a href=Image.font.html>Image.font</a></tt>,
-     <tt><a href=Image.GIF.html>Image.GIF</a></tt>
-</blockquote>
-
-<hr>
-<a name=%60*> </a>
-<a name=%60%60*> </a>
-<a name=map> </a>
-<h4>SYNOPSIS</h4>
-<blockquote>
-<tt>object <b>map</b>(object&nbsp;image)<br>
-object <b>`*</b>(object&nbsp;image)<br>
-object <b>``*</b>(object&nbsp;image)</tt>
-</blockquote>
-
-<h4>DESCRIPTION</h4>
-
-
-<blockquote>
-Map colors in an image object to the colors in 
-     the colortable, and creates a new image with the
-     closest colors. 
-
-<p>     <table><tr valign=center>
-     <td></td>
-     <td></td>
-     <td></td>
-     <td></td>
-     <td></td>
-     <td></td>
-     <td>no dither</td>
-     </tr><tr valign=center>
-     <td></td>
-     <td></td>
-     <td></td>
-     <td></td>
-     <td></td>
-     <td></td>
-     <td><tt><a href=Image.colortable.html#floyd_steinberg>floyd_steinberg</a></tt> dither</td>
-     </tr><tr valign=center>
-     <td></td>
-     <td></td>
-     <td></td>
-     <td></td>
-     <td></td>
-     <td></td>
-     <td><tt><a href=Image.colortable.html#ordered>ordered</a></tt> dither</td>
-     </tr><tr valign=center>
-     <td></td>
-     <td></td>
-     <td></td>
-     <td></td>
-     <td></td>
-     <td></td>
-     <td><tt><a href=Image.colortable.html#randomcube>randomcube</a></tt> dither</td>
-     </tr><tr valign=center>
-     <td>original</td>
-     <td>2</td>
-     <td>4</td>
-     <td>8</td>
-     <td>16</td>
-     <td>32 colors</td>
-     </tr></table>
-</blockquote>
-<h4>RETURNS</h4>
-
-
-<blockquote>
-a new image object
-</blockquote>
-
-
-<h4>NOTE</h4>
-<blockquote>
-Flat (not cube) colortable and not '<tt><a href=Image.colortable.html#full>full</a></tt>' method: 
-     this method does figure out the data needed for
-     the lookup method, which may take time the first
-     use of the colortable - the second use is quicker.
-</blockquote>
-
-
-<h4>SEE ALSO</h4>
-<blockquote>     <tt><a href=Image.colortable.html#cubicles>cubicles</a></tt>,
-     <tt><a href=Image.colortable.html#full>full</a></tt>
-</blockquote>
-
-<hr>
-<a name=%60+> </a>
-<h4>SYNOPSIS</h4>
-<blockquote>
-<tt>object <b>`+</b>(object&nbsp;with, ...)</tt>
-</blockquote>
-
-<h4>DESCRIPTION</h4>
-
-
-<blockquote>
-sums colortables
-</blockquote>
-<h4>ARGUMENTS</h4>
-<blockquote><dl>
-<dt><tt>object(<ref>colortable</ref>) with</tt>
-  <dd><tt><a href=Image.colortable.html#colortable>colortable</a></tt> object with colors to add
-</dl></blockquote>
-<h4>RETURNS</h4>
-
-
-<blockquote>
-the resulting new <ref>colortable</ref> object
-</blockquote>
-
-<hr>
-<a name=%60-> </a>
-<h4>SYNOPSIS</h4>
-<blockquote>
-<tt>object <b>`-</b>(object&nbsp;with, ...)</tt>
-</blockquote>
-
-<h4>DESCRIPTION</h4>
-
-
-<blockquote>
-subtracts colortables
-</blockquote>
-<h4>ARGUMENTS</h4>
-<blockquote><dl>
-<dt><tt>object(<ref>colortable</ref>) with</tt>
-  <dd><tt><a href=Image.colortable.html#colortable>colortable</a></tt> object with colors to subtract
-</dl></blockquote>
-<h4>RETURNS</h4>
-
-
-<blockquote>
-the resulting new <ref>colortable</ref> object
-</blockquote>
-
-<hr>
-<a name=add> </a>
-<a name=create> </a>
-<h4>SYNOPSIS</h4>
-<blockquote>
-<tt>void <b>create</b>()<br>
-void <b>create</b>(array(array(int))&nbsp;colors)<br>
-void <b>create</b>(object(Image.image)&nbsp;image, int&nbsp;number)<br>
-void <b>create</b>(object(Image.image)&nbsp;image, int&nbsp;number, array(array(int))&nbsp;needed)<br>
-void <b>create</b>(int&nbsp;r, int&nbsp;g, int&nbsp;b)<br>
-void <b>create</b>(int&nbsp;r, int&nbsp;g, int&nbsp;b, &nbsp;array(int)&nbsp;from1, array(int)&nbsp;to1, int&nbsp;steps1, &nbsp;..., &nbsp;array(int)&nbsp;fromn, array(int)&nbsp;ton, int&nbsp;stepsn)<br>
-object <b>add</b>(array(array(int))&nbsp;colors)<br>
-object <b>add</b>(object(Image.image)&nbsp;image, int&nbsp;number)<br>
-object <b>add</b>(object(Image.image)&nbsp;image, int&nbsp;number, array(array(int))&nbsp;needed)<br>
-object <b>add</b>(int&nbsp;r, int&nbsp;g, int&nbsp;b)<br>
-object <b>add</b>(int&nbsp;r, int&nbsp;g, int&nbsp;b, &nbsp;array(int)&nbsp;from1, array(int)&nbsp;to1, int&nbsp;steps1, &nbsp;..., &nbsp;array(int)&nbsp;fromn, array(int)&nbsp;ton, int&nbsp;stepsn)</tt>
-</blockquote>
-
-<h4>DESCRIPTION</h4>
-
-
-<blockquote>
-<tt><a href=Image.colortable.html#create>create</a></tt> initiates a colortable object. 
-     Default is that no colors are in the colortable. 
-
-<p>     <tt><a href=Image.colortable.html#add>add</a></tt> takes the same argument(s) as
-     <tt><a href=Image.colortable.html#create>create</a></tt>, thus adding colors to the colortable.
-
-<p>     The colortable is mostly a list of colors,
-     or more advanced, colors and weight.
-
-<p>     The colortable could also be a colorcube, with or 
-     without additional scales. A colorcube is the by-far 
-     fastest way to find colors. 
-
-<p>     Example:
-     <pre>
-     ct=colortable(my_image,256); // the best 256 colors
-     ct=colortable(my_image,256,({0,0,0})); // black and the best other 255
-
-<p>     ct=colortable(({({0,0,0}),({255,255,255})})); // black and white
-
-<p>     ct=colortable(6,7,6); // a colortable of 252 colors
-     ct=colortable(7,7,5, ({0,0,0}),({255,255,255}),11); 
-             // a colorcube of 245 colors, and a greyscale of the rest -> 256
-     </pre>
-</blockquote>
-<h4>ARGUMENTS</h4>
-<blockquote><dl>
-<dt><tt>array(array(int)) colors</tt>
-  <dd>list of colors
-<dt><tt>object(Image.image) image</tt>
-  <dd>source image 
-
-<p>     note: you may not get all colors from image,
-     max hash size is (probably, set by a <tt>#define</tt>) 
-     32768 entries, giving
-     maybe half that number of colors as maximum.
-<dt><tt>int number</tt>
-  <dd>number of colors to get from the image
-     
-     0 (zero) gives all colors in the image.
-
-<p>     Default value is 256.
-<dt><tt>array(array(int)) needed</tt>
-  <dd>needed colors (to optimize selection of others to these given)
-     
-     this will add to the total number of colors (see argument 'number')
-<dt><tt>int r</tt>
-<dt><tt>int g</tt>
-<dt><tt>int b</tt>
-  <dd>size of sides in the colorcube, must (of course) be equal
-     or larger than 2 - if smaller, the cube is ignored (no colors).
-     This could be used to have only scales (like a greyscale)
-     in the output.
-<dt><tt>array(int) fromi</tt>
-<dt><tt>array(int) toi</tt>
-<dt><tt>int stepi</tt>
-  <dd>This is to add the possibility of adding a scale
-     of colors to the colorcube; for instance a grayscale
-     using the arguments <tt>({0,0,0}),({255,255,255}),17</tt>,
-     adding a scale from black to white in 17 or more steps.
-
-<p>     Colors already in the cube is used again to add the number
-     of steps, if possible. 
-
-<p>     The total number of colors in the table is therefore
-     <tt>r*b*g+step1+...+stepn</tt>.
-</dl></blockquote>
-
-<hr>
-<a name=cast> </a>
-<h4>SYNOPSIS</h4>
-<blockquote>
-<tt>object <b>cast</b>(string&nbsp;to)</tt>
-</blockquote>
-
-<h4>DESCRIPTION</h4>
-
-
-<blockquote>
-cast the colortable to an array
-
-<p>     example: <tt>(array)Image.colortable(img)</tt>
-</blockquote>
-<h4>ARGUMENTS</h4>
-<blockquote><dl>
-<dt><tt>string to</tt>
-  <dd>must be "array".
-</dl></blockquote>
-<h4>RETURNS</h4>
-
-
-<blockquote>
-the resulting array
-</blockquote>
-
-
-<h4>KNOWN BUGS</h4>
-<blockquote>
-ignores argument (ie <tt>(string)colortable</tt> gives an array)
-</blockquote>
-
-<hr>
-<a name=cubicles> </a>
-<h4>SYNOPSIS</h4>
-<blockquote>
-<tt>object <b>cubicles</b>()<br>
-object <b>cubicles</b>(int&nbsp;r, int&nbsp;g, int&nbsp;b)<br>
-object <b>cubicles</b>(int&nbsp;r, int&nbsp;g, int&nbsp;b, int&nbsp;accuracy)</tt>
-</blockquote>
-
-<h4>DESCRIPTION</h4>
-
-
-<blockquote>
-Set the colortable to use the cubicles algorithm to lookup
-     the closest color. This is a mostly very fast and very
-     accurate way to find the correct color, and the default
-     algorithm.
-
-<p>
-     The colorspace is divided in small cubes, each cube
-     containing the colors in that cube. Each cube then gets
-     a list of the colors in the cube, and the closest from
-     the corners and midpoints between corners.  
-
-<p>     When a color is needed, the algorithm first finds the
-     correct cube and then compares with all the colors in
-     the list for that cube.
-
-<p>     example: <tt>colors=Image.colortable(img)->cubicles();</tt>
-
-<p>     algorithm time: between O[m] and O[m * n], 
-     where n is numbers of colors and m is number of pixels
-
-<p>     The arguments can be heavy trimmed for the usage
-     of your colortable; a large number (10�10�10 or bigger)
-     of cubicles is recommended when you use the colortable
-     repeatedly, since the calculation takes much
-     more time then usage.
-
-<p>     recommended values:
-
-<p>     <pre>   
-     image size  setup
-     100�100     cubicles(4,5,4) (default)
-     1000�1000   cubicles(12,12,12) (factor 2 faster than default)
-     </pre>  
-
-<p>     In some cases, the <tt><a href=Image.colortable.html#full>full</a></tt> method is faster.
-
-<p>     <table><tr valign=center>
-     <td></td>
-     <td></td>
-     <td></td>
-     </tr><tr valign=center>
-     <td>original</td>
-     <td>default cubicles,<br>16 colors</td>
-     <td>accuracy=200</td>
-     </tr></table>
-</blockquote>
-<h4>ARGUMENTS</h4>
-<blockquote><dl>
-<dt><tt>int r</tt>
-<dt><tt>int g</tt>
-<dt><tt>int b</tt>
-  <dd>Size, ie how much the colorspace is divided.
-     Note that the size of each cubicle is at least about 8b,
-     and that it takes time to calculate them. The number of
-     cubicles are <tt>r*g*b</tt>, and default is 4,5,4,
-     ie 80 cubicles. This works good for 200�100 colors.
-<dt><tt>int accuracy</tt>
-  <dd>Accuracy when checking sides of cubicles.
-     Default is 16. A value of 1 gives complete accuracy,
-     ie cubicle() method gives exactly the same result
-     as full(), but takes (in worst case) 16� the time
-     to calculate.
-</dl></blockquote>
-<h4>RETURNS</h4>
-
-
-<blockquote>
-the called object
-</blockquote>
-
-
-<h4>NOTE</h4>
-<blockquote>
-this method doesn't figure out the cubicles, this is 
-     done on the first use of the colortable
-
-<p>     Not applicable to colorcube types of colortable.
-</blockquote>
-
-<hr>
-<a name=floyd_steinberg> </a>
-<h4>SYNOPSIS</h4>
-<blockquote>
-<tt>object <b>floyd_steinberg</b>()<br>
-object <b>floyd_steinberg</b>(int&nbsp;dir, int|float&nbsp;forward, int|float&nbsp;downforward, int|float&nbsp;down, int|float&nbsp;downback, int|float&nbsp;factor)</tt>
-</blockquote>
-
-<h4>DESCRIPTION</h4>
-
-
-<blockquote>
-Set dithering method to floyd_steinberg.
-     
-     The arguments to this method is for fine-tuning of the 
-     algorithm (for computer graphics wizards). 
-
-<p>     <table><tr valign=center>
-     <td></td>
-     <td></td>
-     <td></td>
-     </tr><tr valign=center>
-     <td>original</td>
-     <td>floyd_steinberg to a 4�4�4 colorcube</td>
-     <td>floyd_steinberg to 16 chosen colors</td>
-     </tr></table>
-</blockquote>
-<h4>ARGUMENTS</h4>
-<blockquote><dl>
-<dt><tt>int bidir</tt>
-  <dd>Set algorithm direction of forward.
-     -1 is backward, 1 is forward, 0 for toggle of direction
-     each line (default).
-<dt><tt>int|float forward</tt>
-<dt><tt>int|float downforward</tt>
-<dt><tt>int|float down</tt>
-<dt><tt>int|float downback</tt>
-  <dd>Set error correction directions. Default is 
-     forward=7, downforward=1, down=5, downback=3.
-<dt><tt>int|float factor</tt>
-  <dd>Error keeping factor. 
-     Error will increase if more than 1.0 and decrease if less than 1.0.
-     A value of 0.0 will cancel any dither effects.
-     Default is 0.95.
-</dl></blockquote>
-<h4>RETURNS</h4>
-
-
-<blockquote>
-the called object
-</blockquote>
-
-<hr>
-<a name=full> </a>
-<h4>SYNOPSIS</h4>
-<blockquote>
-<tt>object <b>full</b>()</tt>
-</blockquote>
-
-<h4>DESCRIPTION</h4>
-
-
-<blockquote>
-Set the colortable to use full scan to lookup the closest color.
-
-<p>     example: <tt>colors=Image.colortable(img)->full();</tt>
-
-<p>     algorithm time: O[n*m], where n is numbers of colors 
-     and m is number of pixels
-</blockquote>
-<h4>RETURNS</h4>
-
-
-<blockquote>
-the called object
-</blockquote>
-
-
-<h4>NOTE</h4>
-<blockquote>
-Not applicable to colorcube types of colortable.
-</blockquote>
-
-
-<h4>SEE ALSO</h4>
-<blockquote>     <tt><a href=Image.colortable.html#cubicles>cubicles</a></tt>,
-     <tt><a href=Image.colortable.html#map>map</a></tt>
-</blockquote>
-
-<hr>
-<a name=nodither> </a>
-<h4>SYNOPSIS</h4>
-<blockquote>
-<tt>object <b>nodither</b>()</tt>
-</blockquote>
-
-<h4>DESCRIPTION</h4>
-
-
-<blockquote>
-Set no dithering (default).
-</blockquote>
-<h4>RETURNS</h4>
-
-
-<blockquote>
-the called object
-</blockquote>
-
-<hr>
-<a name=ordered> </a>
-<h4>SYNOPSIS</h4>
-<blockquote>
-<tt>object <b>ordered</b>()<br>
-object <b>ordered</b>(int&nbsp;r, int&nbsp;g, int&nbsp;b)<br>
-object <b>ordered</b>(int&nbsp;r, int&nbsp;g, int&nbsp;b, int&nbsp;xsize, int&nbsp;ysize)<br>
-object <b>ordered</b>(int&nbsp;r, int&nbsp;g, int&nbsp;b, int&nbsp;xsize, int&nbsp;ysize, int&nbsp;x, int&nbsp;y)<br>
-object <b>ordered</b>(int&nbsp;r, int&nbsp;g, int&nbsp;b, int&nbsp;xsize, int&nbsp;ysize, int&nbsp;rx, int&nbsp;ry, int&nbsp;gx, int&nbsp;gy, int&nbsp;bx, int&nbsp;by)</tt>
-</blockquote>
-
-<h4>DESCRIPTION</h4>
-
-
-<blockquote>
-Set ordered dithering, which gives a position-dependent error added
-     to the pixel values. 
-
-<p>     <table><tr valign=center>
-     <td></td>
-     <td></td>
-     <td></td>
-     <td></td>
-     </tr><tr valign=top>
-     <td>original</td>
-     <td colspan=2>mapped to <br><tt>Image.colortable(6,6,6)-></tt></td>
-     </tr><tr valign=top>
-     <td></td>
-     <td><tt>ordered<br> (42,42,42,2,2)</tt></td>
-     <td><tt>ordered()</tt></td>
-     <td><tt>ordered<br> (42,42,42, 8,8,<br> 0,0, 0,1, 1,0)</tt></td>
-     </tr><tr valign=top>
-     <td></td>
-     <td></td>
-     <td></td>
-     <td></td>
-     </tr></table>
-</blockquote>
-<h4>ARGUMENTS</h4>
-<blockquote><dl>
-<dt><tt>int r</tt>
-<dt><tt>int g</tt>
-<dt><tt>int b</tt>
-  <dd>The maximum error. Default is 32, or colorcube steps (256/size).
-<dt><tt>int xsize</tt>
-<dt><tt>int ysize</tt>
-  <dd>Size of error matrix. Default is 8�8.
-     Only values which factors to multiples of 2 and 3 are
-     possible to choose (2,3,4,6,8,12,...).
-<dt><tt>int x</tt>
-<dt><tt>int y</tt>
-<dt><tt>int rx</tt>
-<dt><tt>int ry</tt>
-<dt><tt>int gx</tt>
-<dt><tt>int gy</tt>
-<dt><tt>int bx</tt>
-<dt><tt>int by</tt>
-  <dd>Offset for the error matrix. <tt>x</tt> and <tt>y</tt> is for
-     both red, green and blue values, the other is individual.
-</dl></blockquote>
-<h4>RETURNS</h4>
-
-
-<blockquote>
-the called object
-</blockquote>
-
-
-<h4>SEE ALSO</h4>
-<blockquote>     <tt><a href=Image.colortable.html#randomcube>randomcube</a></tt>,
-     <tt><a href=Image.colortable.html#nodither>nodither</a></tt>,
-     <tt><a href=Image.colortable.html#floyd_steinberg>floyd_steinberg</a></tt>,
-     <tt><a href=Image.colortable.html#create>create</a></tt>
-</blockquote>
-
-<hr>
-<a name=randomcube> </a>
-<a name=randomgrey> </a>
-<h4>SYNOPSIS</h4>
-<blockquote>
-<tt>object <b>randomcube</b>()<br>
-object <b>randomcube</b>(int&nbsp;r, int&nbsp;g, int&nbsp;b)<br>
-object <b>randomgrey</b>()<br>
-object <b>randomgrey</b>(int&nbsp;err)</tt>
-</blockquote>
-
-<h4>DESCRIPTION</h4>
-
-
-<blockquote>
-Set random cube dithering.
-     Color choosen is the closest one to color in picture
-     plus (flat) random error; <tt>color�random(error)</tt>.
-
-<p>     The randomgrey method uses the same random error on red, green
-     and blue and the randomcube method has three random errors.
-
-<p>     <table><tr valign=center>
-     <td></td>
-     <td></td>
-     <td></td>
-     </tr><tr valign=top>
-     <td>original</td>
-     <td colspan=2>mapped to <br><tt>Image.colortable(4,4,4)-></tt></td>
-     </tr><tr valign=top>
-     <td></td>
-     <td>randomcube()</td>
-     <td>randomgrey()</td>
-     </tr><tr valign=top>
-     <td></td>
-     <td></td>
-     <td></td>
-     </tr></table>
-</blockquote>
-<h4>ARGUMENTS</h4>
-<blockquote><dl>
-<dt><tt>int r</tt>
-<dt><tt>int g</tt>
-<dt><tt>int b</tt>
-<dt><tt>int err</tt>
-  <dd>The maximum error. Default is 32, or colorcube step.
-</dl></blockquote>
-<h4>RETURNS</h4>
-
-
-<blockquote>
-the called object
-</blockquote>
-
-
-<h4>NOTE</h4>
-<blockquote>
-<tt><a href=Image.colortable.html#randomgrey>randomgrey</a></tt> method needs colorcube size to be the same on
-     red, green and blue sides to work properly. It uses the
-     red colorcube value as default.
-</blockquote>
-
-
-<h4>SEE ALSO</h4>
-<blockquote>     <tt><a href=Image.colortable.html#ordered>ordered</a></tt>,
-     <tt><a href=Image.colortable.html#nodither>nodither</a></tt>,
-     <tt><a href=Image.colortable.html#floyd_steinberg>floyd_steinberg</a></tt>,
-     <tt><a href=Image.colortable.html#create>create</a></tt>
-</blockquote>
-
-<hr>
-<a name=reduce> </a>
-<h4>SYNOPSIS</h4>
-<blockquote>
-<tt>object <b>reduce</b>(int&nbsp;colors)</tt>
-</blockquote>
-
-<h4>DESCRIPTION</h4>
-
-
-<blockquote>
-reduces the number of colors
-
-<p>     All needed (see <tt><a href=Image.colortable.html#create>create</a></tt>) colors are kept.
-</blockquote>
-<h4>ARGUMENTS</h4>
-<blockquote><dl>
-<dt><tt>int colors</tt>
-  <dd>target number of colors
-</dl></blockquote>
-<h4>RETURNS</h4>
-
-
-<blockquote>
-the new <ref>colortable</ref> object
-</blockquote>
-
-<hr>
-<a name=spacefactors> </a>
-<h4>SYNOPSIS</h4>
-<blockquote>
-<tt>object <b>spacefactors</b>(int&nbsp;r, int&nbsp;g, int&nbsp;b)</tt>
-</blockquote>
-
-<h4>DESCRIPTION</h4>
-
-
-<blockquote>
-Colortable tuning option, this sets the color space
-     distance factors. This is used when comparing distances
-     in the colorspace and comparing grey levels.
-
-<p>     Default factors are 3, 4 and 1; blue is much 
-     darker than green. Compare with <tt><a href=Image.image.html#grey>Image.image->grey</a></tt>().
-</blockquote>
-<h4>RETURNS</h4>
-
-
-<blockquote>
-the called object
-</blockquote>
-
-
-<h4>NOTE</h4>
-<blockquote>
-This has no sanity check. Some functions may bug
-     if the factors are to high - color reduction functions 
-     sums grey levels in the image, this could exceed maxint
-     in the case of high factors. Negative values may 
-     also cause strange effects. *grin*
-</blockquote>
diff --git a/src/modules/Image/doc/Image.font.html b/src/modules/Image/doc/Image.font.html
deleted file mode 100644
index a9824cabdf71ca87bab7713f434d2ed508633327..0000000000000000000000000000000000000000
--- a/src/modules/Image/doc/Image.font.html
+++ /dev/null
@@ -1,186 +0,0 @@
-<title>Pike documentation: Image.font</title>
-<h2>Image.font</h2>
-
-
-<h4>NOTE</h4>
-<blockquote>
-Short technical documentation on a font file:
-     This object adds the text-drawing and -creation
-     capabilities of the <tt><a href=Image.html>Image</a></tt> module.
-
-<p>     For simple usage, see
-     <tt><a href=Image.font.html#write>write</a></tt> and <tt><a href=Image.font.html#load>load</a></tt>.
-
-<p>     other methods: <tt><a href=Image.font.html#baseline>baseline</a></tt>,
-     <tt><a href=Image.font.html#height>height</a></tt>,
-     <tt><a href=Image.font.html#set_xspacing_scale>set_xspacing_scale</a></tt>,
-     <tt><a href=Image.font.html#set_yspacing_scale>set_yspacing_scale</a></tt>,
-     <tt><a href=Image.font.html#text_extents>text_extents</a></tt>
-     
-     <pre>
-            struct file_head 
-            {
-               unsigned INT32 cookie;   - 0x464f4e54 
-               unsigned INT32 version;  - 1 
-               unsigned INT32 chars;    - number of chars
-               unsigned INT32 height;   - height of font
-               unsigned INT32 baseline; - font baseline
-               unsigned INT32 o[1];     - position of char_head's
-            } *fh;
-            struct char_head
-            {
-               unsigned INT32 width;    - width of this character
-               unsigned INT32 spacing;  - spacing to next character
-               unsigned char data[1];   - pixmap data (1byte/pixel)
-            } *ch;
-     </pre>
-</blockquote>
-
-
-<h4>SEE ALSO</h4>
-<blockquote>     <tt><a href=Image.html>Image</a></tt>,
-     <tt><a href=Image.image.html>Image.image</a></tt>
-</blockquote>
-
-<hr>
-<a name=baseline> </a>
-<h4>SYNOPSIS</h4>
-<blockquote>
-<tt>int <b>baseline</b>()</tt>
-</blockquote>
-
-<h4>RETURNS</h4>
-
-
-<blockquote>
-font baseline (pixels from top)
-</blockquote>
-
-
-<h4>SEE ALSO</h4>
-<blockquote>     <tt><a href=Image.font.html#height>height</a></tt>,
-     <tt><a href=Image.font.html#text_extents>text_extents</a></tt>
-</blockquote>
-
-<hr>
-<a name=height> </a>
-<a name=text_extents> </a>
-<h4>SYNOPSIS</h4>
-<blockquote>
-<tt>int <b>height</b>()<br>
-array(int) <b>text_extents</b>(string&nbsp;text, ...)</tt>
-</blockquote>
-
-<h4>DESCRIPTION</h4>
-
-
-<blockquote>
-Calculate extents of a text-image,
-     that would be created by calling <tt><a href=Image.font.html#write>write</a></tt>
-     with the same arguments.
-</blockquote>
-<h4>ARGUMENTS</h4>
-<blockquote><dl>
-<dt><tt>string text, ...</tt>
-  <dd>One or more lines of text.
-</dl></blockquote>
-<h4>RETURNS</h4>
-
-
-<blockquote>
-an array of width and height
-</blockquote>
-
-
-<h4>SEE ALSO</h4>
-<blockquote>     <tt><a href=Image.font.html#write>write</a></tt>,
-     <tt><a href=Image.font.html#height>height</a></tt>,
-     <tt><a href=Image.font.html#baseline>baseline</a></tt>
-</blockquote>
-
-<hr>
-<a name=load> </a>
-<h4>SYNOPSIS</h4>
-<blockquote>
-<tt>object|int <b>load</b>(string&nbsp;filename)</tt>
-</blockquote>
-
-<h4>DESCRIPTION</h4>
-
-
-<blockquote>
-Loads a font file to this font object.
-</blockquote>
-<h4>ARGUMENTS</h4>
-<blockquote><dl>
-<dt><tt>string filename</tt>
-  <dd>Font file
-</dl></blockquote>
-<h4>RETURNS</h4>
-
-
-<blockquote>
-zero upon failure, font object upon success
-</blockquote>
-
-
-<h4>SEE ALSO</h4>
-<blockquote>     <tt><a href=Image.font.html#write>write</a></tt>
-</blockquote>
-
-<hr>
-<a name=set_xspacing_scale> </a>
-<a name=set_yspacing_scale> </a>
-<h4>SYNOPSIS</h4>
-<blockquote>
-<tt>void <b>set_xspacing_scale</b>(float&nbsp;scale)<br>
-void <b>set_yspacing_scale</b>(float&nbsp;scale)</tt>
-</blockquote>
-
-<h4>DESCRIPTION</h4>
-
-
-<blockquote>
-Set spacing scale to write characters closer
-     or more far away. This does not change scale
-     of character, only the space between them.
-</blockquote>
-<h4>ARGUMENTS</h4>
-<blockquote><dl>
-<dt><tt>float scale</tt>
-  <dd>what scale to use
-</dl></blockquote>
-
-<hr>
-<a name=write> </a>
-<h4>SYNOPSIS</h4>
-<blockquote>
-<tt>object <b>write</b>(string&nbsp;text, ...)</tt>
-</blockquote>
-
-<h4>DESCRIPTION</h4>
-
-
-<blockquote>
-Writes some text; thus creating an image object
-     that can be used as mask or as a complete picture.
-</blockquote>
-<h4>ARGUMENTS</h4>
-<blockquote><dl>
-<dt><tt>string text, ...</tt>
-  <dd>One or more lines of text.
-</dl></blockquote>
-<h4>RETURNS</h4>
-
-
-<blockquote>
-an <ref>Image.image</ref> object
-</blockquote>
-
-
-<h4>SEE ALSO</h4>
-<blockquote>     <tt><a href=Image.font.html#text_extents>text_extents</a></tt>,
-     <tt><a href=Image.font.html#load>load</a></tt>,
-     <tt><a href=Image.image.html#paste_mask>Image.image->paste_mask</a></tt>,
-     <tt><a href=Image.image.html#paste_alpha_color>Image.image->paste_alpha_color</a></tt>
-</blockquote>
diff --git a/src/modules/Image/doc/Image.html b/src/modules/Image/doc/Image.html
deleted file mode 100644
index b6525554008a90a0eacfd84f7bbb49254b24009a..0000000000000000000000000000000000000000
--- a/src/modules/Image/doc/Image.html
+++ /dev/null
@@ -1,52 +0,0 @@
-<title>Pike documentation: module Image</title>
-<h2>module Image</h2>
-
-
-<blockquote>
-This module adds image-drawing and -manipulating
-     capabilities to pike. 
-
-<p>     <table border=0>
-     <tr>
-     <td align=left valign=top><tt><a href=Image.image.html>Image.image</a></tt></td>
-     <td align=left valign=top>Basic image manipulation</td>
-     </tr>
-     <tr>
-     <td align=left valign=top><tt><a href=Image.font.html>Image.font</a></tt></td>
-     <td align=left valign=top>Creating images from text</td>
-     </tr>
-     <tr>
-     <td align=left valign=top><tt><a href=Image.colortable.html>Image.colortable</a></tt></td>
-     <td align=left valign=top>Color reduction, quantisation and dither</td>
-     </tr>
-     <tr>
-     <td align=left valign=top><tt><a href=Image.GIF.html>Image.GIF</a></tt></td>
-     <td align=left valign=top>GIF encoding/decoding capabilities</td>
-     </tr>
-     </table>
-</blockquote>
-
-
-<h4>NOTE</h4>
-<blockquote>
-<font size=-1><pre>Image module documentation is based on these file versions:
-     $Id: Image.html,v 1.16 1997/11/10 13:24:27 mirar Exp $
-     $Id: Image.html,v 1.16 1997/11/10 13:24:27 mirar Exp $
-     $Id: Image.html,v 1.16 1997/11/10 13:24:27 mirar Exp $
-     $Id: Image.html,v 1.16 1997/11/10 13:24:27 mirar Exp $
-     $Id: Image.html,v 1.16 1997/11/10 13:24:27 mirar Exp $
-     $Id: Image.html,v 1.16 1997/11/10 13:24:27 mirar Exp $
-     $Id: Image.html,v 1.16 1997/11/10 13:24:27 mirar Exp $
-     $Id: Image.html,v 1.16 1997/11/10 13:24:27 mirar Exp $
-     $Id: Image.html,v 1.16 1997/11/10 13:24:27 mirar Exp $
-     $Id: Image.html,v 1.16 1997/11/10 13:24:27 mirar Exp $
-     $Id: Image.html,v 1.16 1997/11/10 13:24:27 mirar Exp $
-     $Id: Image.html,v 1.16 1997/11/10 13:24:27 mirar Exp $
-     $Id: Image.html,v 1.16 1997/11/10 13:24:27 mirar Exp $
-     $Id: Image.html,v 1.16 1997/11/10 13:24:27 mirar Exp $
-     $Id: Image.html,v 1.16 1997/11/10 13:24:27 mirar Exp $
-     $Id: Image.html,v 1.16 1997/11/10 13:24:27 mirar Exp $
-     $Id: Image.html,v 1.16 1997/11/10 13:24:27 mirar Exp $
-     $Id: Image.html,v 1.16 1997/11/10 13:24:27 mirar Exp $
-     </pre></font>
-</blockquote>
diff --git a/src/modules/Image/doc/Image.image.html b/src/modules/Image/doc/Image.image.html
deleted file mode 100644
index 1beac4951289aa28f047c8b87175dd7c5cc3115d..0000000000000000000000000000000000000000
--- a/src/modules/Image/doc/Image.image.html
+++ /dev/null
@@ -1,2275 +0,0 @@
-<title>Pike documentation: Image.image</title>
-<h2>Image.image</h2>
-
-
-<blockquote>
-The main object of the <tt><a href=Image.html>Image</a></tt> module, this object
-     is used as drawing area, mask or result of operations.
-
-<p>     init: <tt><a href=Image.image.html#clear>clear</a></tt>,
-     <tt><a href=Image.image.html#clone>clone</a></tt>,
-     <tt><a href=Image.image.html#create>create</a></tt>, 
-     <tt><a href=Image.image.html#xsize>xsize</a></tt>,
-     <tt><a href=Image.image.html#ysize>ysize</a></tt>
-
-<p>     plain drawing: <tt><a href=Image.image.html#box>box</a></tt>,
-     <tt><a href=Image.image.html#circle>circle</a></tt>,
-     <tt><a href=Image.image.html#getpixel>getpixel</a></tt>, 
-     <tt><a href=Image.image.html#line>line</a></tt>,
-     <tt><a href=Image.image.html#setcolor>setcolor</a></tt>,
-     <tt><a href=Image.image.html#setpixel>setpixel</a></tt>, 
-     <tt><a href=Image.image.html#treshold>treshold</a></tt>,
-     <tt><a href=Image.image.html#tuned_box>tuned_box</a></tt>,
-     <tt><a href=Image.image.html#polygone>polygone</a></tt>
-
-<p>     operators: <tt><a href=Image.image.html#%60%26>`&amp;</a></tt>,
-     <tt><a href=Image.image.html#%60*>`*</a></tt>,
-     <tt><a href=Image.image.html#%60+>`+</a></tt>,
-     <tt><a href=Image.image.html#%60->`-</a></tt>,
-     <tt><a href=Image.image.html#%60|>`|</a></tt>
-
-<p>     pasting images, layers: <tt><a href=Image.image.html#add_layers>add_layers</a></tt>, 
-     <tt><a href=Image.image.html#paste>paste</a></tt>,
-     <tt><a href=Image.image.html#paste_alpha>paste_alpha</a></tt>,
-     <tt><a href=Image.image.html#paste_alpha_color>paste_alpha_color</a></tt>,
-     <tt><a href=Image.image.html#paste_mask>paste_mask</a></tt>
-
-<p>     getting subimages, scaling, rotating: <tt><a href=Image.image.html#autocrop>autocrop</a></tt>, 
-     <tt><a href=Image.image.html#clone>clone</a></tt>,
-     <tt><a href=Image.image.html#copy>copy</a></tt>, 
-     <tt><a href=Image.image.html#dct>dct</a></tt>,
-     <tt><a href=Image.image.html#mirrorx>mirrorx</a></tt>, 
-     <tt><a href=Image.image.html#rotate>rotate</a></tt>,
-     <tt><a href=Image.image.html#rotate_expand>rotate_expand</a></tt>, 
-     <tt><a href=Image.image.html#rotate_ccw>rotate_ccw</a></tt>,
-     <tt><a href=Image.image.html#rotate_cw>rotate_cw</a></tt>,
-     <tt><a href=Image.image.html#scale>scale</a></tt>, 
-     <tt><a href=Image.image.html#skewx>skewx</a></tt>,
-     <tt><a href=Image.image.html#skewx_expand>skewx_expand</a></tt>,
-     <tt><a href=Image.image.html#skewy>skewy</a></tt>,
-     <tt><a href=Image.image.html#skewy_expand>skewy_expand</a></tt>
-
-<p>     calculation by pixels: <tt><a href=Image.image.html#apply_matrix>apply_matrix</a></tt>, 
-     <tt><a href=Image.image.html#change_color>change_color</a></tt>,
-     <tt><a href=Image.image.html#color>color</a></tt>,
-     <tt><a href=Image.image.html#distancesq>distancesq</a></tt>, 
-     <tt><a href=Image.image.html#grey>grey</a></tt>,
-     <tt><a href=Image.image.html#invert>invert</a></tt>, 
-     <tt><a href=Image.image.html#map_closest>map_closest</a></tt>,
-     <tt><a href=Image.image.html#map_fast>map_fast</a></tt>, 
-     <tt><a href=Image.image.html#select_colors>select_colors</a></tt>,
-     <tt><a href=Image.image.html#modify_by_intensity>modify_by_intensity</a></tt>,
-     <tt><a href=Image.image.html#select_from>select_from</a></tt>, 
-     <tt><a href=Image.image.html#rgb_to_hsv>rgb_to_hsv</a></tt>,
-     <tt><a href=Image.image.html#hsv_to_rgb>hsv_to_rgb</a></tt>
-
-<p>     converting to other datatypes: 
-     <tt><a href=Image.GIF.html>Image.GIF</a></tt>,
-     <tt><a href=Image.PNG.html>Image.PNG</a></tt>
-
-<p>     special pattern drawing:
-     <tt><a href=Image.image.html#noise>noise</a></tt>,
-     <tt><a href=Image.image.html#turbulence>turbulence</a></tt>
-</blockquote>
-
-
-<h4>SEE ALSO</h4>
-<blockquote>     <tt><a href=Image.html>Image</a></tt>,
-     <tt><a href=Image.font.html>Image.font</a></tt>
-</blockquote>
-
-<hr>
-<a name=%60%26> </a>
-<h4>SYNOPSIS</h4>
-<blockquote>
-<tt>object <b>`&amp;</b>(object&nbsp;operand)<br>
-object <b>`&amp;</b>(array(int)&nbsp;color)<br>
-object <b>`&amp;</b>(int&nbsp;value)</tt>
-</blockquote>
-
-<h4>DESCRIPTION</h4>
-
-
-<blockquote>
-makes a new image out of the minimum pixels values
-</blockquote>
-<h4>ARGUMENTS</h4>
-<blockquote><dl>
-<dt><tt>object operand</tt>
-  <dd>the other image to compare with;
-     the images must have the same size.
-<dt><tt>array(int) color</tt>
-  <dd>an array in format ({r,g,b}), this is equal
-     to using an uniform-colored image.
-<dt><tt>int value</tt>
-  <dd>equal to ({value,value,value}).
-</dl></blockquote>
-<h4>RETURNS</h4>
-
-
-<blockquote>
-the new image object
-</blockquote>
-
-
-<h4>SEE ALSO</h4>
-<blockquote>     <tt><a href=Image.image.html#%60->`-</a></tt>,
-     <tt><a href=Image.image.html#%60+>`+</a></tt>,
-     <tt><a href=Image.image.html#%60|>`|</a></tt>,
-     <tt><a href=Image.image.html#%60*>`*</a></tt>,
-     <tt><a href=Image.image.html#add_layers>add_layers</a></tt>
-</blockquote>
-
-<hr>
-<a name=%60*> </a>
-<h4>SYNOPSIS</h4>
-<blockquote>
-<tt>object <b>`*</b>(object&nbsp;operand)<br>
-object <b>`*</b>(array(int)&nbsp;color)<br>
-object <b>`*</b>(int&nbsp;value)</tt>
-</blockquote>
-
-<h4>DESCRIPTION</h4>
-
-
-<blockquote>
-Multiplies pixel values and creates a new image.
-
-<p>     This can be useful to lower the values of an image,
-     making it greyer, for instance:
-
-<p>     <pre>image=image*128+64;</pre>
-</blockquote>
-<h4>ARGUMENTS</h4>
-<blockquote><dl>
-<dt><tt>object operand</tt>
-  <dd>the other image to multiply with;
-     the images must have the same size.
-<dt><tt>array(int) color</tt>
-  <dd>an array in format ({r,g,b}), this is equal
-     to using an uniform-colored image.
-<dt><tt>int value</tt>
-  <dd>equal to ({value,value,value}).
-</dl></blockquote>
-<h4>RETURNS</h4>
-
-
-<blockquote>
-the new image object
-</blockquote>
-
-
-<h4>SEE ALSO</h4>
-<blockquote>     <tt><a href=Image.image.html#%60->`-</a></tt>,
-     <tt><a href=Image.image.html#%60+>`+</a></tt>,
-     <tt><a href=Image.image.html#%60|>`|</a></tt>,
-     <tt><a href=Image.image.html#%60%26>`&</a></tt>,
-     <tt><a href=Image.image.html#add_layers>add_layers</a></tt>
-</blockquote>
-
-<hr>
-<a name=%60+> </a>
-<h4>SYNOPSIS</h4>
-<blockquote>
-<tt>object <b>`+</b>(object&nbsp;operand)<br>
-object <b>`+</b>(array(int)&nbsp;color)<br>
-object <b>`+</b>(int&nbsp;value)</tt>
-</blockquote>
-
-<h4>DESCRIPTION</h4>
-
-
-<blockquote>
-adds two images; values are truncated at 255.
-</blockquote>
-<h4>ARGUMENTS</h4>
-<blockquote><dl>
-<dt><tt>object operand</tt>
-  <dd>the image which to add.
-<dt><tt>array(int) color</tt>
-  <dd>an array in format ({r,g,b}), this is equal
-     to using an uniform-colored image.
-<dt><tt>int value</tt>
-  <dd>equal to ({value,value,value}).
-</dl></blockquote>
-<h4>RETURNS</h4>
-
-
-<blockquote>
-the new image object
-</blockquote>
-
-
-<h4>SEE ALSO</h4>
-<blockquote>     <tt><a href=Image.image.html#%60->`-</a></tt>,
-     <tt><a href=Image.image.html#%60|>`|</a></tt>,
-     <tt><a href=Image.image.html#%60%26>`&</a></tt>,
-     <tt><a href=Image.image.html#%60*>`*</a></tt>,
-     <tt><a href=Image.image.html#add_layers>add_layers</a></tt>
-</blockquote>
-
-<hr>
-<a name=%60-> </a>
-<h4>SYNOPSIS</h4>
-<blockquote>
-<tt>object <b>`-</b>(object&nbsp;operand)<br>
-object <b>`-</b>(array(int)&nbsp;color)<br>
-object <b>`-</b>(int&nbsp;value)</tt>
-</blockquote>
-
-<h4>DESCRIPTION</h4>
-
-
-<blockquote>
-makes a new image out of the difference
-</blockquote>
-<h4>ARGUMENTS</h4>
-<blockquote><dl>
-<dt><tt>object operand</tt>
-  <dd>the other image to compare with;
-     the images must have the same size.
-<dt><tt>array(int) color</tt>
-  <dd>an array in format ({r,g,b}), this is equal
-     to using an uniform-colored image.
-<dt><tt>int value</tt>
-  <dd>equal to ({value,value,value}).
-</dl></blockquote>
-<h4>RETURNS</h4>
-
-
-<blockquote>
-the new image object
-</blockquote>
-
-
-<h4>SEE ALSO</h4>
-<blockquote>     <tt><a href=Image.image.html#%60+>`+</a></tt>,
-     <tt><a href=Image.image.html#%60|>`|</a></tt>,
-     <tt><a href=Image.image.html#%60%26>`&</a></tt>,
-     <tt><a href=Image.image.html#%60*>`*</a></tt>,
-     <tt><a href=Image.image.html#add_layers>add_layers</a></tt>
-</blockquote>
-
-<hr>
-<a name=%60|> </a>
-<h4>SYNOPSIS</h4>
-<blockquote>
-<tt>object <b>`|</b>(object&nbsp;operand)<br>
-object <b>`|</b>(array(int)&nbsp;color)<br>
-object <b>`|</b>(int&nbsp;value)</tt>
-</blockquote>
-
-<h4>DESCRIPTION</h4>
-
-
-<blockquote>
-makes a new image out of the maximum pixels values
-</blockquote>
-<h4>ARGUMENTS</h4>
-<blockquote><dl>
-<dt><tt>object operand</tt>
-  <dd>the other image to compare with;
-     the images must have the same size.
-<dt><tt>array(int) color</tt>
-  <dd>an array in format ({r,g,b}), this is equal
-     to using an uniform-colored image.
-<dt><tt>int value</tt>
-  <dd>equal to ({value,value,value}).
-</dl></blockquote>
-<h4>RETURNS</h4>
-
-
-<blockquote>
-the new image object
-</blockquote>
-
-
-<h4>SEE ALSO</h4>
-<blockquote>     <tt><a href=Image.image.html#%60->`-</a></tt>,
-     <tt><a href=Image.image.html#%60+>`+</a></tt>,
-     <tt><a href=Image.image.html#%60%26>`&</a></tt>,
-     <tt><a href=Image.image.html#%60*>`*</a></tt>,
-     <tt><a href=Image.image.html#add_layers>add_layers</a></tt>
-</blockquote>
-
-<hr>
-<a name=add_layers> </a>
-<h4>SYNOPSIS</h4>
-<blockquote>
-<tt>object <b>add_layers</b>(array(int|object))&nbsp;layer0, ...)<br>
-object <b>add_layers</b>(int&nbsp;x1, int&nbsp;y1, int&nbsp;x2, int&nbsp;y2, array(int|object))&nbsp;layer0, ...)</tt>
-</blockquote>
-
-<h4>DESCRIPTION</h4>
-
-
-<blockquote>
-Using the called object as base, adds layers using masks,
-     opaque channel values and special methods.
-
-<p>     The destination image can also be cropped, thus
-     speeding up the process.
-
-<p>     Each array in the layers array is one of:
-     <pre>
-     ({object image,object|int mask})
-     ({object image,object|int mask,int opaque_value})
-     ({object image,object|int mask,int opaque_value,int method})
-     </pre>
-     Given 0 as mask means the image is totally opaque.
-
-<p>     Default opaque value is 255, only using the mask.
-
-<p>     Methods for now are:
-     <pre>
-     0  no operation (just paste with mask, default)
-     1  maximum  (`|)
-     2  minimum  (`&amp;)
-     3  multiply (`*)
-     4  add      (`+)
-     5  diff     (`-)
-     </pre>
-     The layer image and the current source are calculated
-     through the given method and then pasted using the mask
-     and the opaque channel value. 
-
-<p>     All given images must be the same size.
-</blockquote>
-<h4>ARGUMENTS</h4>
-<blockquote><dl>
-<dt><tt>array(int|object) layer0</tt>
-  <dd>image to paste
-<dt><tt>int x1</tt>
-<dt><tt>int y1</tt>
-<dt><tt>int x2</tt>
-<dt><tt>int y2</tt>
-  <dd>rectangle for cropping
-</dl></blockquote>
-<h4>RETURNS</h4>
-
-
-<blockquote>
-a new image object
-</blockquote>
-
-
-<h4>SEE ALSO</h4>
-<blockquote>     <tt><a href=Image.image.html#paste_mask>paste_mask</a></tt>,
-     <tt><a href=Image.image.html#paste_alpha>paste_alpha</a></tt>,
-     <tt><a href=Image.image.html#paste_alpha_color>paste_alpha_color</a></tt>,
-     <tt><a href=Image.image.html#%60|>`|</a></tt>,
-     <tt><a href=Image.image.html#%60%26>`&</a></tt>,
-     <tt><a href=Image.image.html#%60*>`*</a></tt>,
-     <tt><a href=Image.image.html#%60+>`+</a></tt>,
-     <tt><a href=Image.image.html#%60->`-</a></tt>
-</blockquote>
-
-<hr>
-<a name=apply_matrix> </a>
-<h4>SYNOPSIS</h4>
-<blockquote>
-<tt>object <b>apply_matrix</b>(array(array(int|array(int)))&nbsp;matrix)<br>
-object <b>apply_matrix</b>(array(array(int|array(int)))&nbsp;matrix, int&nbsp;r, int&nbsp;g, int&nbsp;b)<br>
-object <b>apply_matrix</b>(array(array(int|array(int)))&nbsp;matrix, int&nbsp;r, int&nbsp;g, int&nbsp;b, int|float&nbsp;div)</tt>
-</blockquote>
-
-<h4>DESCRIPTION</h4>
-
-
-<blockquote>
-Applies a pixel-transform matrix, or filter, to the image.
-    
-     <pre>
-                            2   2
-     pixel(x,y)= base+ k ( sum sum pixel(x+k-1,y+l-1)*matrix(k,l) ) 
-                           k=0 l=0 
-     </pre>
-     
-     1/k is sum of matrix, or sum of matrix multiplied with div.
-     base is given by r,g,b and is normally black.
-
-<p>     <table><tr><td rowspan=2>
-     blur (ie a 2d gauss function):
-     <pre>
-     ({({1,2,1}),
-       ({2,5,2}),
-       ({1,2,1})})
-     </pre>
-     </td><td>
-     
-     </td><td>
-     
-     </td></tr>
-     <tr><td></td><td>original</td>
-     
-     <tr><td>
-     sharpen (k>8, preferably 12 or 16):
-     <pre>
-     ({({-1,-1,-1}),
-       ({-1, k,-1}),
-       ({-1,-1,-1})})
-     </pre>
-     </td><td>
-     
-     </td></tr>
-
-<p>     <tr><td>
-     edge detect:
-     <pre>
-     ({({1, 1,1}),
-       ({1,-8,1}),
-       ({1, 1,1})})
-     </pre>
-     </td><td>
-     
-     </td></tr>
-
-<p>     <tr><td>
-     horisontal edge detect (get the idea):
-     <pre>
-     ({({0, 0,0}),
-       ({1,-2,1}),
-       ({0, 0,0})})
-     </pre>
-     </td><td>
-     
-     </td></tr>
-
-<p>     <tr><td rowspan=2>
-     emboss (might prefer to begin with a <tt><a href=Image.image.html#grey>grey</a></tt> image):
-     <pre>
-     ({({2, 1, 0}),
-       ({1, 0,-1}),
-       ({0,-1,-2})}), 128,128,128, 3
-     </pre>
-     </td><td>
-     
-     </td><td>
-     
-     </td></tr>
-     <tr><td></td><td>greyed</td></tr></table>
-
-<p>     This function is not very fast -- and it's hard to 
-     optimize it more, not using assembler.
-</blockquote>
-<h4>ARGUMENTS</h4>
-<blockquote><dl>
-<dt><tt>array(array(int|array(int)))</tt>
-  <dd>the matrix; innermost is a value or an array with red, green, blue
-     values for red, green, blue separation.
-<dt><tt>int r</tt>
-<dt><tt>int g</tt>
-<dt><tt>int b</tt>
-  <dd>base level of result, default is zero
-<dt><tt>int|float div</tt>
-  <dd>division factor, default is 1.0.
-</dl></blockquote>
-<h4>RETURNS</h4>
-
-
-<blockquote>
-the new image object
-</blockquote>
-
-<hr>
-<a name=autocrop> </a>
-<h4>SYNOPSIS</h4>
-<blockquote>
-<tt>object <b>autocrop</b>()<br>
-object <b>autocrop</b>(int&nbsp;border)<br>
-object <b>autocrop</b>(int&nbsp;border, int&nbsp;r, int&nbsp;g, int&nbsp;b)<br>
-object <b>autocrop</b>(int&nbsp;border, int&nbsp;left, int&nbsp;right, int&nbsp;top, int&nbsp;bottom)<br>
-object <b>autocrop</b>(int&nbsp;border, int&nbsp;left, int&nbsp;right, int&nbsp;top, int&nbsp;bottom, int&nbsp;r, int&nbsp;g, int&nbsp;b)</tt>
-</blockquote>
-
-<h4>DESCRIPTION</h4>
-
-
-<blockquote>
-Removes "unneccesary" borders around the image, adds one of
-     its own if wanted to, in selected directions.
-
-<p>     "Unneccesary" is all pixels that are equal -- ie if all the same pixels
-     to the left are the same color, that column of pixels are removed.
-</blockquote>
-<h4>ARGUMENTS</h4>
-<blockquote><dl>
-<dt><tt>int border</tt>
-  <dd>added border size in pixels
-<dt><tt>int r</tt>
-<dt><tt>int g</tt>
-<dt><tt>int b</tt>
-  <dd>color of the new border
-<dt><tt>int left</tt>
-<dt><tt>int right</tt>
-<dt><tt>int top</tt>
-<dt><tt>int bottom</tt>
-  <dd>which borders to scan and cut the image; 
-     a typical example is removing the top and bottom unneccesary
-     pixels:
-     <pre>img=img->autocrop(0, 0,0,1,1);</pre>
-</dl></blockquote>
-<h4>RETURNS</h4>
-
-
-<blockquote>
-the new image object
-</blockquote>
-
-
-<h4>SEE ALSO</h4>
-<blockquote>     <tt><a href=Image.image.html#copy>copy</a></tt>
-</blockquote>
-
-<hr>
-<a name=box> </a>
-<h4>SYNOPSIS</h4>
-<blockquote>
-<tt>object <b>box</b>(int&nbsp;x1, int&nbsp;y1, int&nbsp;x2, int&nbsp;y2)<br>
-object <b>box</b>(int&nbsp;x1, int&nbsp;y1, int&nbsp;x2, int&nbsp;y2, int&nbsp;r, int&nbsp;g, int&nbsp;b)<br>
-object <b>box</b>(int&nbsp;x1, int&nbsp;y1, int&nbsp;x2, int&nbsp;y2, int&nbsp;r, int&nbsp;g, int&nbsp;b, int&nbsp;alpha)</tt>
-</blockquote>
-
-<h4>DESCRIPTION</h4>
-
-
-<blockquote>
-Draws a filled rectangle on the image.
-</blockquote>
-<h4>ARGUMENTS</h4>
-<blockquote><dl>
-<dt><tt>int x1</tt>
-<dt><tt>int y1</tt>
-<dt><tt>int x2</tt>
-<dt><tt>int y2</tt>
-  <dd>box corners
-<dt><tt>int r</tt>
-<dt><tt>int g</tt>
-<dt><tt>int b</tt>
-  <dd>color of the box
-<dt><tt>int alpha</tt>
-  <dd>alpha value
-</dl></blockquote>
-<h4>RETURNS</h4>
-
-
-<blockquote>
-the object called
-</blockquote>
-
-<hr>
-<a name=cast> </a>
-<h4>SYNOPSIS</h4>
-<blockquote>
-<tt>string <b>cast</b>(string&nbsp;type)</tt>
-</blockquote>
-
-<h4>RETURNS</h4>
-
-
-<blockquote>
-the image data as a string ("rgbrgbrgb...")
-</blockquote>
-
-
-<h4>KNOWN BUGS</h4>
-<blockquote>
-always casts to string...
-</blockquote>
-
-
-<h4>SEE ALSO</h4>
-<blockquote>     <tt><a href=Image.image.html#toppm>toppm</a></tt>,
-     <tt><a href=Image.image.html#togif>togif</a></tt>,
-     <tt><a href=Image.image.html#tozbgr>tozbgr</a></tt>,
-     <tt><a href=Image.image.html#to8bit>to8bit</a></tt>,
-     <tt><a href=Image.image.html#to8bit_rgbcube>to8bit_rgbcube</a></tt>
-</blockquote>
-
-<hr>
-<a name=change_color> </a>
-<h4>SYNOPSIS</h4>
-<blockquote>
-<tt>object <b>change_color</b>(int&nbsp;tor, int&nbsp;tog, int&nbsp;tob)<br>
-object <b>change_color</b>(int&nbsp;fromr, int&nbsp;fromg, int&nbsp;fromb, &nbsp;int&nbsp;tor, int&nbsp;tog, int&nbsp;tob)</tt>
-</blockquote>
-
-<h4>DESCRIPTION</h4>
-
-
-<blockquote>
-Changes one color (exakt match) to another.
-     If non-exakt-match is preferred, check <tt><a href=Image.image.html#distancesq>distancesq</a></tt>
-     and <tt><a href=Image.image.html#paste_alpha_color>paste_alpha_color</a></tt>.
-</blockquote>
-<h4>ARGUMENTS</h4>
-<blockquote><dl>
-<dt><tt>int tor</tt>
-<dt><tt>int tog</tt>
-<dt><tt>int tob</tt>
-  <dd>destination color and next current color
-<dt><tt>int fromr</tt>
-<dt><tt>int fromg</tt>
-<dt><tt>int fromb</tt>
-  <dd>source color, default is current color
-</dl></blockquote>
-<h4>RETURNS</h4>
-
-
-<blockquote>
-a new (the destination) image object
-</blockquote>
-
-<hr>
-<a name=circle> </a>
-<h4>SYNOPSIS</h4>
-<blockquote>
-<tt>object <b>circle</b>(int&nbsp;x, int&nbsp;y, int&nbsp;rx, int&nbsp;ry)<br>
-object <b>circle</b>(int&nbsp;x, int&nbsp;y, int&nbsp;rx, int&nbsp;ry, int&nbsp;r, int&nbsp;g, int&nbsp;b)<br>
-object <b>circle</b>(int&nbsp;x, int&nbsp;y, int&nbsp;rx, int&nbsp;ry, int&nbsp;r, int&nbsp;g, int&nbsp;b, int&nbsp;alpha)</tt>
-</blockquote>
-
-<h4>DESCRIPTION</h4>
-
-
-<blockquote>
-Draws a line on the image. The line is <i>not</i> antialiased.
-</blockquote>
-<h4>ARGUMENTS</h4>
-<blockquote><dl>
-<dt><tt>int x</tt>
-<dt><tt>int y</tt>
-  <dd>circle center
-<dt><tt>int rx</tt>
-<dt><tt>int ry</tt>
-  <dd>circle radius in pixels
-<dt><tt>int r</tt>
-<dt><tt>int g</tt>
-<dt><tt>int b</tt>
-  <dd>color
-<dt><tt>int alpha</tt>
-  <dd>alpha value
-</dl></blockquote>
-<h4>RETURNS</h4>
-
-
-<blockquote>
-the object called
-</blockquote>
-
-<hr>
-<a name=clear> </a>
-<h4>SYNOPSIS</h4>
-<blockquote>
-<tt>void <b>clear</b>()<br>
-void <b>clear</b>(int&nbsp;r, int&nbsp;g, int&nbsp;b)<br>
-void <b>clear</b>(int&nbsp;r, int&nbsp;g, int&nbsp;b, int&nbsp;alpha)</tt>
-</blockquote>
-
-<h4>DESCRIPTION</h4>
-
-
-<blockquote>
-gives a new, cleared image with the same size of drawing area
-</blockquote>
-<h4>ARGUMENTS</h4>
-<blockquote><dl>
-<dt><tt>int r</tt>
-<dt><tt>int g</tt>
-<dt><tt>int b</tt>
-  <dd>color of the new image
-<dt><tt>int alpha</tt>
-  <dd>new default alpha channel value
-</dl></blockquote>
-
-
-<h4>SEE ALSO</h4>
-<blockquote>     <tt><a href=Image.image.html#copy>copy</a></tt>,
-     <tt><a href=Image.image.html#clone>clone</a></tt>
-</blockquote>
-
-<hr>
-<a name=clone> </a>
-<h4>SYNOPSIS</h4>
-<blockquote>
-<tt>object <b>clone</b>()<br>
-object <b>clone</b>(int&nbsp;xsize, int&nbsp;ysize)<br>
-object <b>clone</b>(int&nbsp;xsize, int&nbsp;ysize, int&nbsp;r, int&nbsp;g, int&nbsp;b)<br>
-object <b>clone</b>(int&nbsp;xsize, int&nbsp;ysize, int&nbsp;r, int&nbsp;g, int&nbsp;b, int&nbsp;alpha)</tt>
-</blockquote>
-
-<h4>DESCRIPTION</h4>
-
-
-<blockquote>
-Copies to or initialize a new image object.
-</blockquote>
-<h4>ARGUMENTS</h4>
-<blockquote><dl>
-<dt><tt>int xsize</tt>
-<dt><tt>int ysize</tt>
-  <dd>size of (new) image in pixels, called image
-     is cropped to that size
-<dt><tt>int r</tt>
-<dt><tt>int g</tt>
-<dt><tt>int b</tt>
-  <dd>current color of the new image, 
-     default is black. 
-     Will also be the background color if the cloned image
-     is empty (no drawing area made).
-<dt><tt>int alpha</tt>
-  <dd>new default alpha channel value
-</dl></blockquote>
-<h4>RETURNS</h4>
-
-
-<blockquote>
-the new object
-</blockquote>
-
-
-<h4>SEE ALSO</h4>
-<blockquote>     <tt><a href=Image.image.html#copy>copy</a></tt>,
-     <tt><a href=Image.image.html#create>create</a></tt>
-</blockquote>
-
-<hr>
-<a name=color> </a>
-<h4>SYNOPSIS</h4>
-<blockquote>
-<tt>object <b>color</b>()<br>
-object <b>color</b>(int&nbsp;value)<br>
-object <b>color</b>(int&nbsp;r, int&nbsp;g, int&nbsp;b)</tt>
-</blockquote>
-
-<h4>DESCRIPTION</h4>
-
-
-<blockquote>
-Colorize an image. 
-
-<p>    The red, green and blue values of the pixels are multiplied
-    with the given value(s). This works best on a grey image...
-
-<p>    The result is divided by 255, giving correct pixel values.
-
-<p>    If no arguments are given, the current color is used as factors.
-
-<p>     <table><tr valign=center>
-     <td></td>
-     <td></td>
-     </tr><tr valign=center>
-     <td>original</td>
-     <td>->color(128,128,255);</td>
-     </tr></table>
-</blockquote>
-<h4>ARGUMENTS</h4>
-<blockquote><dl>
-<dt><tt>int r</tt>
-<dt><tt>int g</tt>
-<dt><tt>int b</tt>
-  <dd>red, green, blue factors
-<dt><tt>int value</tt>
-  <dd>factor
-</dl></blockquote>
-<h4>RETURNS</h4>
-
-
-<blockquote>
-the new image object
-</blockquote>
-
-
-<h4>SEE ALSO</h4>
-<blockquote>     <tt><a href=Image.image.html#grey>grey</a></tt>,
-     <tt><a href=Image.image.html#%60*>`*</a></tt>,
-     <tt><a href=Image.image.html#modify_by_intensity>modify_by_intensity</a></tt>
-</blockquote>
-
-<hr>
-<a name=copy> </a>
-<h4>SYNOPSIS</h4>
-<blockquote>
-<tt>object <b>copy</b>()<br>
-object <b>copy</b>(int&nbsp;x1, int&nbsp;y1, int&nbsp;x2, int&nbsp;y2)<br>
-object <b>copy</b>(int&nbsp;x1, int&nbsp;y1, int&nbsp;x2, int&nbsp;y2, int&nbsp;r, int&nbsp;g, int&nbsp;b)<br>
-object <b>copy</b>(int&nbsp;x1, int&nbsp;y1, int&nbsp;x2, int&nbsp;y2, int&nbsp;r, int&nbsp;g, int&nbsp;b, int&nbsp;alpha)</tt>
-</blockquote>
-
-<h4>DESCRIPTION</h4>
-
-
-<blockquote>
-Copies this part of the image. The requested area can
-     be smaller, giving a cropped image, or bigger - 
-     the new area will be filled with the given or current color.
-</blockquote>
-<h4>ARGUMENTS</h4>
-<blockquote><dl>
-<dt><tt>int x1</tt>
-<dt><tt>int y1</tt>
-<dt><tt>int x2</tt>
-<dt><tt>int y2</tt>
-  <dd>The requested new area. Default is the old image size.
-<dt><tt>int r</tt>
-<dt><tt>int g</tt>
-<dt><tt>int b</tt>
-  <dd>color of the new image
-<dt><tt>int alpha</tt>
-  <dd>new default alpha channel value
-</dl></blockquote>
-<h4>RETURNS</h4>
-
-
-<blockquote>
-a new image object
-</blockquote>
-
-
-<h4>NOTE</h4>
-<blockquote>
-<tt><a href=Image.image.html#clone>clone</a></tt>(void) and <tt><a href=Image.image.html#copy>copy</a></tt>(void) does the same 
-     operation
-</blockquote>
-
-
-<h4>SEE ALSO</h4>
-<blockquote>     <tt><a href=Image.image.html#clone>clone</a></tt>,
-     <tt><a href=Image.image.html#autocrop>autocrop</a></tt>
-</blockquote>
-
-<hr>
-<a name=create> </a>
-<h4>SYNOPSIS</h4>
-<blockquote>
-<tt>void <b>create</b>()<br>
-void <b>create</b>(int&nbsp;xsize, int&nbsp;ysize)<br>
-void <b>create</b>(int&nbsp;xsize, int&nbsp;ysize, int&nbsp;r, int&nbsp;g, int&nbsp;b)<br>
-void <b>create</b>(int&nbsp;xsize, int&nbsp;ysize, int&nbsp;r, int&nbsp;g, int&nbsp;b, int&nbsp;alpha)</tt>
-</blockquote>
-
-<h4>DESCRIPTION</h4>
-
-
-<blockquote>
-Initializes a new image object.
-</blockquote>
-<h4>ARGUMENTS</h4>
-<blockquote><dl>
-<dt><tt>int xsize</tt>
-<dt><tt>int ysize</tt>
-  <dd>size of (new) image in pixels
-<dt><tt>int r</tt>
-<dt><tt>int g</tt>
-<dt><tt>int b</tt>
-  <dd>background color (will also be current color),
-     default color is black
-<dt><tt>int alpha</tt>
-  <dd>default alpha channel value
-</dl></blockquote>
-
-
-<h4>KNOWN BUGS</h4>
-<blockquote>
-SIGSEGS can be caused if the size is too big, due
-     to unchecked overflow - 
-     (xsize*ysize)&amp;MAXINT is small enough to allocate.
-</blockquote>
-
-
-<h4>SEE ALSO</h4>
-<blockquote>     <tt><a href=Image.image.html#copy>copy</a></tt>,
-     <tt><a href=Image.image.html#clone>clone</a></tt>,
-     <tt><a href=Image.image.html>Image.image</a></tt>
-</blockquote>
-
-<hr>
-<a name=dct> </a>
-<h4>SYNOPSIS</h4>
-<blockquote>
-<tt>object <b>dct</b>(int&nbsp;newx, int&nbsp;newy)</tt>
-</blockquote>
-
-<h4>DESCRIPTION</h4>
-
-
-<blockquote>
-Scales the image to a new size.
-     
-     Method for scaling is rather complex;
-     the image is transformed via a cosine transform,
-     and then resampled back.
-
-<p>     This gives a quality-conserving upscale,
-     but the algorithm used is n*n+n*m, where n
-     and m is pixels in the original and new image.
-
-<p>     Recommended wrapping algorithm is to scale
-     overlapping parts of the image-to-be-scaled.
-
-<p>     This functionality is actually added as an
-     true experiment, but works...
-</blockquote>
-<h4>ARGUMENTS</h4>
-<blockquote><dl>
-<dt><tt>int newx</tt>
-<dt><tt>int newy</tt>
-  <dd>new image size in pixels
-</dl></blockquote>
-<h4>RETURNS</h4>
-
-
-<blockquote>
-the new image object
-</blockquote>
-
-
-<h4>NOTE</h4>
-<blockquote>
-Do NOT use this function if you don't know what 
-     you're dealing with! Read some signal theory first...
-</blockquote>
-
-<hr>
-<a name=distancesq> </a>
-<h4>SYNOPSIS</h4>
-<blockquote>
-<tt>object <b>distancesq</b>()<br>
-object <b>distancesq</b>(int&nbsp;r, int&nbsp;g, int&nbsp;b)</tt>
-</blockquote>
-
-<h4>DESCRIPTION</h4>
-
-
-<blockquote>
-Makes an grey-scale image, for alpha-channel use.
-    
-    The given value (or current color) are used for coordinates
-    in the color cube. Each resulting pixel is the 
-    distance from this point to the source pixel color,
-    in the color cube, squared, rightshifted 8 steps:
-
-<p>    <pre>
-    p = pixel color
-    o = given color
-    d = destination pixel
-    d.red=d.blue=d.green=
-        ((o.red-p.red)�+(o.green-p.green)�+(o.blue-p.blue)�)>>8
-    </pre>
-
-<p>     <table><tr valign=center>
-     <td></td>
-     <td></td>
-     </tr><tr valign=center>
-     <td>original</td>
-     <td>->distancesq(255,0,128);</td>
-     </tr></table>
-</blockquote>
-<h4>ARGUMENTS</h4>
-<blockquote><dl>
-<dt><tt>int r</tt>
-<dt><tt>int g</tt>
-<dt><tt>int b</tt>
-  <dd>red, green, blue coordinates
-</dl></blockquote>
-<h4>RETURNS</h4>
-
-
-<blockquote>
-the new image object
-</blockquote>
-
-
-<h4>SEE ALSO</h4>
-<blockquote>     <tt><a href=Image.image.html#select_from>select_from</a></tt>
-</blockquote>
-
-<hr>
-<a name=frompnm> </a>
-<a name=fromppm> </a>
-<h4>SYNOPSIS</h4>
-<blockquote>
-<tt>object|string <b>frompnm</b>(string&nbsp;pnm)<br>
-object|string <b>fromppm</b>(string&nbsp;pnm)</tt>
-</blockquote>
-
-<h4>DESCRIPTION</h4>
-
-
-<blockquote>
-<b>compability method</b> - do not use in new programs.
-     
-     See <tt><a href=Image.PNM.decode.html>Image.PNM.decode</a></tt>().
-</blockquote>
-<h4>ARGUMENTS</h4>
-<blockquote><dl>
-<dt><tt>string pnm</tt>
-  <dd>pnm data, as a string
-</dl></blockquote>
-<h4>RETURNS</h4>
-
-
-<blockquote>
-the called object or a hint of what wronged.
-</blockquote>
-
-<hr>
-<a name=getpixel> </a>
-<h4>SYNOPSIS</h4>
-<blockquote>
-<tt>array(int) <b>getpixel</b>(int&nbsp;x, int&nbsp;y)</tt>
-</blockquote>
-
-<h4>ARGUMENTS</h4>
-<blockquote><dl>
-<dt><tt>int x</tt>
-<dt><tt>int y</tt>
-  <dd>position of the pixel
-</dl></blockquote>
-<h4>RETURNS</h4>
-
-
-<blockquote>
-color of the requested pixel -- ({int red,int green,int blue})
-</blockquote>
-
-<hr>
-<a name=gif_add> </a>
-<a name=gif_add*> </a>
-<a name=gif_add_fs> </a>
-<a name=gif_add_fs_nomap> </a>
-<a name=gif_add_nomap> </a>
-<a name=gif_begin> </a>
-<a name=gif_end> </a>
-<a name=gif_netscape_loop> </a>
-<a name=togif> </a>
-<a name=togif_fs> </a>
-<h4>SYNOPSIS</h4>
-<blockquote>
-<tt>string <b>gif_begin</b>()<br>
-string <b>gif_begin</b>(int&nbsp;num_colors)<br>
-string <b>gif_begin</b>(array(array(int))&nbsp;colors)<br>
-string <b>gif_end</b>()<br>
-string <b>gif_netscape_loop</b>(int&nbsp;loops)<br>
-string <b>togif</b>()<br>
-string <b>togif</b>(int&nbsp;trans_r, int&nbsp;trans_g, int&nbsp;trans_b)<br>
-string <b>togif</b>(int&nbsp;num_colors, int&nbsp;trans_r, int&nbsp;trans_g, int&nbsp;trans_b)<br>
-string <b>togif</b>(array(array(int))&nbsp;colors, int&nbsp;trans_r, int&nbsp;trans_g, int&nbsp;trans_b)<br>
-string <b>togif_fs</b>()<br>
-string <b>togif_fs</b>(int&nbsp;trans_r, int&nbsp;trans_g, int&nbsp;trans_b)<br>
-string <b>togif_fs</b>(int&nbsp;num_colors, int&nbsp;trans_r, int&nbsp;trans_g, int&nbsp;trans_b)<br>
-string <b>togif_fs</b>(array(array(int))&nbsp;colors, int&nbsp;trans_r, int&nbsp;trans_g, int&nbsp;trans_b)<br>
-string <b>gif_add</b>()<br>
-string <b>gif_add_fs</b>()<br>
-string <b>gif_add_nomap</b>()<br>
-string <b>gif_add_fs_nomap</b>()<br>
-string <b>gif_add*</b>(int&nbsp;x, int&nbsp;y)<br>
-string <b>gif_add*</b>(int&nbsp;x, int&nbsp;y, int&nbsp;delay_cs)<br>
-string <b>gif_add*</b>(int&nbsp;x, int&nbsp;y, int&nbsp;num_colors, int&nbsp;delay_cs)<br>
-string <b>gif_add*</b>(int&nbsp;x, int&nbsp;y, array(array(int))&nbsp;colors, int&nbsp;delay_cs)</tt>
-</blockquote>
-
-<h4>DESCRIPTION</h4>
-
-
-<blockquote>
-old GIF API compatibility function. Don't use 
-     in any new code. 
-
-<p>     <table>
-     <tr><td></td><td>is replaced by</td></tr>
-     <tr><td>gif_begin</td><td><tt><a href=Image.GIF.header_block.html>Image.GIF.header_block</a></tt></td></tr>
-     <tr><td>gif_end</td><td><tt><a href=Image.GIF.end_block.html>Image.GIF.end_block</a></tt></td></tr>
-     <tr><td>gif_netscape_loop</td><td><tt><a href=Image.GIF.netscape_loop_block.html>Image.GIF.netscape_loop_block</a></tt></td></tr>
-     <tr><td>togif</td><td><tt><a href=Image.GIF.encode.html>Image.GIF.encode</a></tt></td></tr>
-     <tr><td>togif_fs</td><td><tt><a href=Image.GIF.encode.html>Image.GIF.encode</a></tt>�</td></tr>
-     <tr><td>gif_add</td><td><tt><a href=Image.GIF.render_block.html>Image.GIF.render_block</a></tt>��</td></tr>
-     <tr><td>gif_add_fs</td><td><tt><a href=Image.GIF.render_block.html>Image.GIF.render_block</a></tt>�</td></tr>
-     <tr><td>gif_add_nomap</td><td><tt><a href=Image.GIF.render_block.html>Image.GIF.render_block</a></tt>�</td></tr>
-     <tr><td>gif_add_fs_nomap</td><td><tt><a href=Image.GIF.render_block.html>Image.GIF.render_block</a></tt>��</td></tr>
-     </table>
-
-<p>     � Use <tt><a href=Image.colortable.html>Image.colortable</a></tt> to get whatever dithering
-     you want.
-
-<p>     � local map toggle is sent as an argument
-</blockquote>
-<h4>RETURNS</h4>
-
-
-<blockquote>
-GIF data.
-</blockquote>
-
-<hr>
-<a name=grey> </a>
-<h4>SYNOPSIS</h4>
-<blockquote>
-<tt>object <b>grey</b>()<br>
-object <b>grey</b>(int&nbsp;r, int&nbsp;g, int&nbsp;b)</tt>
-</blockquote>
-
-<h4>DESCRIPTION</h4>
-
-
-<blockquote>
-Makes a grey-scale image (with weighted values).
-
-<p>
-     <table><tr valign=center>
-     <td></td>
-     <td></td>
-     <td></td>
-     </tr><tr valign=center>
-     <td>original</td>
-     <td>->grey();</td>
-     <td>->grey(0,0,255);</td>
-     </tr></table>
-</blockquote>
-<h4>ARGUMENTS</h4>
-<blockquote><dl>
-<dt><tt>int r</tt>
-<dt><tt>int g</tt>
-<dt><tt>int b</tt>
-  <dd>weight of color, default is r=87,g=127,b=41,
-     which should be pretty accurate of what the eyes see...
-</dl></blockquote>
-<h4>RETURNS</h4>
-
-
-<blockquote>
-the new image object
-</blockquote>
-
-
-<h4>SEE ALSO</h4>
-<blockquote>     <tt><a href=Image.image.html#color>color</a></tt>,
-     <tt><a href=Image.image.html#%60*>`*</a></tt>,
-     <tt><a href=Image.image.html#modify_by_intensity>modify_by_intensity</a></tt>
-</blockquote>
-
-<hr>
-<a name=hsv_to_rgb> </a>
-<a name=rgb_to_hsv> </a>
-<h4>SYNOPSIS</h4>
-<blockquote>
-<tt>object <b>rgb_to_hsv</b>()<br>
-object <b>hsv_to_rgb</b>()</tt>
-</blockquote>
-
-<h4>DESCRIPTION</h4>
-
-
-<blockquote>
-Converts RGB data to HSV data, or the other way around.
-    When converting to HSV, the resulting data is stored like this:
-     pixel.r = h; pixel.g = s; pixel.b = v;
-
-<p>    When converting to RGB, the input data is asumed to be placed in
-    the pixels as above.
-
-<p>     <table><tr valign=center>
-     <td></td>
-     <td></td>
-     <td></td>
-     </tr><tr valign=center>
-     <td>original</td>
-     <td>->hsv_to_rgb();</td>
-     <td>->rgb_to_hsv();</td>
-     </tr><tr valign=center>
-     <td></td>
-     <td></td>
-     <td></td>
-     </tr><tr valign=center>
-     <td>tuned box (below)</td>
-     <td>the rainbow (below)</td>
-     <td>same, but rgb_to_hsv()</td>
-     </tr></table>
-
-<p>
-    HSV to RGB calculation:
-    <pre>
-    in = input pixel
-    out = destination pixel
-    h=-pos*c_angle*3.1415/(float)NUM_SQUARES;
-    out.r=(in.b+in.g*cos(in.r));
-    out.g=(in.b+in.g*cos(in.r + pi*2/3));
-    out.b=(in.b+in.g*cos(in.r + pi*4/3));
-    </pre>
-
-<p>    RGB to HSV calculation: Hmm.
-    <pre>
-    </pre>
-
-<p>     Example: Nice rainbow.
-     <pre>
-     object i = Image.image(200,200);
-     i = i->tuned_box(0,0, 200,200,
-                      ({ ({ 255,255,128 }), ({ 0,255,128 }),
-                         ({ 255,255,255 }), ({ 0,255,255 })}))
-          ->hsv_to_rgb();
-     </pre>
-</blockquote>
-<h4>RETURNS</h4>
-
-
-<blockquote>
-the new image object
-</blockquote>
-
-<hr>
-<a name=invert> </a>
-<h4>SYNOPSIS</h4>
-<blockquote>
-<tt>object <b>invert</b>()</tt>
-</blockquote>
-
-<h4>DESCRIPTION</h4>
-
-
-<blockquote>
-Invert an image. Each pixel value gets to be 255-x, where x 
-    is the old value.
-
-<p>     <table><tr valign=center>
-     <td></td>
-     <td></td>
-     <td></td>
-     </tr><tr valign=center>
-     <td>original</td>
-     <td>->invert();</td>
-     <td>->rgb_to_hsv()->invert()->hsv_to_rgb();</td>
-     </tr></table>
-</blockquote>
-<h4>RETURNS</h4>
-
-
-<blockquote>
-the new image object
-</blockquote>
-
-<hr>
-<a name=line> </a>
-<h4>SYNOPSIS</h4>
-<blockquote>
-<tt>object <b>line</b>(int&nbsp;x1, int&nbsp;y1, int&nbsp;x2, int&nbsp;y2)<br>
-object <b>line</b>(int&nbsp;x1, int&nbsp;y1, int&nbsp;x2, int&nbsp;y2, int&nbsp;r, int&nbsp;g, int&nbsp;b)<br>
-object <b>line</b>(int&nbsp;x1, int&nbsp;y1, int&nbsp;x2, int&nbsp;y2, int&nbsp;r, int&nbsp;g, int&nbsp;b, int&nbsp;alpha)</tt>
-</blockquote>
-
-<h4>DESCRIPTION</h4>
-
-
-<blockquote>
-Draws a line on the image. The line is <i>not</i> antialiased.
-</blockquote>
-<h4>ARGUMENTS</h4>
-<blockquote><dl>
-<dt><tt>int x1</tt>
-<dt><tt>int y1</tt>
-<dt><tt>int x2</tt>
-<dt><tt>int y2</tt>
-  <dd>line endpoints
-<dt><tt>int r</tt>
-<dt><tt>int g</tt>
-<dt><tt>int b</tt>
-  <dd>color
-<dt><tt>int alpha</tt>
-  <dd>alpha value
-</dl></blockquote>
-<h4>RETURNS</h4>
-
-
-<blockquote>
-the object called
-</blockquote>
-
-<hr>
-<a name=map_closest> </a>
-<a name=map_fast> </a>
-<a name=map_fs> </a>
-<a name=select_colors> </a>
-<h4>SYNOPSIS</h4>
-<blockquote>
-<tt>object <b>map_closest</b>(array(array(int))&nbsp;colors)<br>
-object <b>map_fast</b>(array(array(int))&nbsp;colors)<br>
-object <b>map_fs</b>(array(array(int))&nbsp;colors)<br>
-array <b>select_colors</b>(int&nbsp;num)</tt>
-</blockquote>
-
-<h4>DESCRIPTION</h4>
-
-
-<blockquote>
-Compatibility functions. Do not use!
-
-<p>     Replacement examples:
-
-<p>     Old code:
-     <pre>img=map_fs(img->select_colors(200));</pre>
-     New code:
-     <pre>img=Image.colortable(img,200)->floyd_steinberg()->map(img);</pre>
-
-<p>     Old code:
-     <pre>img=map_closest(img->select_colors(17)+({({255,255,255}),({0,0,0})}));</pre>
-     New code:
-     <pre>img=Image.colortable(img,19,({({255,255,255}),({0,0,0})}))->map(img);</pre>
-</blockquote>
-
-<hr>
-<a name=mirrorx> </a>
-<h4>SYNOPSIS</h4>
-<blockquote>
-<tt>object <b>mirrorx</b>()</tt>
-</blockquote>
-
-<h4>DESCRIPTION</h4>
-
-
-<blockquote>
-mirrors an image:
-     <table><tr valign=center>
-     <td></td>
-     <td></td>
-     </tr><tr valign=center>
-     <td>original</td>
-     <td>->mirrorx();</td>
-     </tr></table>
-</blockquote>
-<h4>RETURNS</h4>
-
-
-<blockquote>
-the new image object
-</blockquote>
-
-<hr>
-<a name=mirrory> </a>
-<h4>SYNOPSIS</h4>
-<blockquote>
-<tt>object <b>mirrory</b>()</tt>
-</blockquote>
-
-<h4>DESCRIPTION</h4>
-
-
-<blockquote>
-mirrors an image:
-     <table><tr valign=center>
-     <td></td>
-     <td></td>
-     </tr><tr valign=center>
-     <td>original</td>
-     <td>->mirrory();</td>
-     </tr></table>
-</blockquote>
-
-<hr>
-<a name=modify_by_intensity> </a>
-<h4>SYNOPSIS</h4>
-<blockquote>
-<tt>object <b>modify_by_intensity</b>(int&nbsp;r, int&nbsp;g, int&nbsp;b, int|array(int)&nbsp;v1, ..., int|array(int)&nbsp;vn)</tt>
-</blockquote>
-
-<h4>DESCRIPTION</h4>
-
-
-<blockquote>
-Recolor an image from intensity values.
-
-<p>    For each color an intensity is calculated, from r, g and b factors
-    (see <tt><a href=Image.image.html#grey>grey</a></tt>), this gives a value between 0 and max.
-
-<p>    The color is then calculated from the values given, v1 representing
-    the intensity value of 0, vn representing max, and colors between
-    representing intensity values between, linear.
-
-<p>     <table><tr valign=center>
-     <td></td>
-     <td></td>
-     </tr><tr valign=center>
-     <td>original</td>
-     <td>->grey()->modify_by_intensity(1,0,0, 0,({255,0,0}),({0,255,0}));</td>
-     </tr></table>
-</blockquote>
-<h4>ARGUMENTS</h4>
-<blockquote><dl>
-<dt><tt>int r</tt>
-<dt><tt>int g</tt>
-<dt><tt>int b</tt>
-  <dd>red, green, blue intensity factors
-<dt><tt>int|array(int) v1</tt>
-<dt><tt>int|array(int) vn</tt>
-  <dd>destination color
-</dl></blockquote>
-<h4>RETURNS</h4>
-
-
-<blockquote>
-the new image object
-</blockquote>
-
-
-<h4>SEE ALSO</h4>
-<blockquote>     <tt><a href=Image.image.html#grey>grey</a></tt>,
-     <tt><a href=Image.image.html#%60*>`*</a></tt>,
-     <tt><a href=Image.image.html#color>color</a></tt>
-</blockquote>
-
-<hr>
-<a name=noise> </a>
-<h4>SYNOPSIS</h4>
-<blockquote>
-<tt>void <b>noise</b>(array(float|int|array(int))&nbsp;colorrange)<br>
-void <b>noise</b>(array(float|int|array(int))&nbsp;colorrange, float&nbsp;scale, float&nbsp;xdiff, float&nbsp;ydiff, float&nbsp;cscale)</tt>
-</blockquote>
-
-<h4>DESCRIPTION</h4>
-
-
-<blockquote>
-Gives a new image with the old image's size,
-     filled width a 'noise' pattern.
-
-<p>     The random seed may be different with each instance of pike.
-
-<p>     Example: 
-     <tt>->noise( ({0,({255,0,0}), 0.3,({0,255,0}), 0.6,({0,0,255}), 0.8,({255,255,0})}), 0.005,0,0,0.5 );</tt>
-     <br>
-</blockquote>
-<h4>ARGUMENTS</h4>
-<blockquote><dl>
-<dt><tt>array(float|int|array(int)) colorrange</tt>
-  <dd>colorrange table
-<dt><tt>float scale</tt>
-  <dd>default value is 0.1
-<dt><tt>float xdiff</tt>
-<dt><tt>float ydiff</tt>
-  <dd>default value is 0,0
-<dt><tt>float cscale</tt>
-  <dd>default value is 1
-</dl></blockquote>
-
-
-<h4>SEE ALSO</h4>
-<blockquote>     <tt><a href=Image.image.html#turbulence>turbulence</a></tt>
-</blockquote>
-
-<hr>
-<a name=paste> </a>
-<h4>SYNOPSIS</h4>
-<blockquote>
-<tt>object <b>paste</b>(object&nbsp;image)<br>
-object <b>paste</b>(object&nbsp;image, int&nbsp;x, int&nbsp;y)</tt>
-</blockquote>
-
-<h4>DESCRIPTION</h4>
-
-
-<blockquote>
-Pastes a given image over the current image.
-</blockquote>
-<h4>ARGUMENTS</h4>
-<blockquote><dl>
-<dt><tt>object image</tt>
-  <dd>image to paste (may be empty, needs to be an image object)
-<dt><tt>int x</tt>
-<dt><tt>int y</tt>
-  <dd>where to paste the image; default is 0,0
-</dl></blockquote>
-<h4>RETURNS</h4>
-
-
-<blockquote>
-the object called
-</blockquote>
-
-
-<h4>SEE ALSO</h4>
-<blockquote>     <tt><a href=Image.image.html#paste_mask>paste_mask</a></tt>,
-     <tt><a href=Image.image.html#paste_alpha>paste_alpha</a></tt>,
-     <tt><a href=Image.image.html#paste_alpha_color>paste_alpha_color</a></tt>
-</blockquote>
-
-<hr>
-<a name=paste_alpha> </a>
-<h4>SYNOPSIS</h4>
-<blockquote>
-<tt>object <b>paste_alpha</b>(object&nbsp;image, int&nbsp;alpha)<br>
-object <b>paste_alpha</b>(object&nbsp;image, int&nbsp;alpha, int&nbsp;x, int&nbsp;y)</tt>
-</blockquote>
-
-<h4>DESCRIPTION</h4>
-
-
-<blockquote>
-Pastes a given image over the current image, with
-     the specified alpha channel value.
-     
-     An alpha channel value of 0 leaves nothing of the original 
-     image in the paste area, 255 is meaningless and makes the
-     given image invisible.
-</blockquote>
-<h4>ARGUMENTS</h4>
-<blockquote><dl>
-<dt><tt>object image</tt>
-  <dd>image to paste
-<dt><tt>int alpha</tt>
-  <dd>alpha channel value
-<dt><tt>int x</tt>
-<dt><tt>int y</tt>
-  <dd>where to paste the image; default is 0,0
-</dl></blockquote>
-<h4>RETURNS</h4>
-
-
-<blockquote>
-the object called
-</blockquote>
-
-
-<h4>SEE ALSO</h4>
-<blockquote>     <tt><a href=Image.image.html#paste_mask>paste_mask</a></tt>,
-     <tt><a href=Image.image.html#paste>paste</a></tt>,
-     <tt><a href=Image.image.html#paste_alpha_color>paste_alpha_color</a></tt>
-</blockquote>
-
-<hr>
-<a name=paste_alpha_color> </a>
-<h4>SYNOPSIS</h4>
-<blockquote>
-<tt>object <b>paste_alpha_color</b>(object&nbsp;mask)<br>
-object <b>paste_alpha_color</b>(object&nbsp;mask, int&nbsp;x, int&nbsp;y)<br>
-object <b>paste_alpha_color</b>(object&nbsp;mask, int&nbsp;r, int&nbsp;g, int&nbsp;b)<br>
-object <b>paste_alpha_color</b>(object&nbsp;mask, int&nbsp;r, int&nbsp;g, int&nbsp;b, int&nbsp;x, int&nbsp;y)</tt>
-</blockquote>
-
-<h4>DESCRIPTION</h4>
-
-
-<blockquote>
-Pastes a given color over the current image,
-    using the given mask as opaque channel.  
-    
-    A pixel value of 255 makes the result become the color given,
-    0 doesn't change anything.
-    
-    The masks red, green and blue values are used separately.
-    If no color are given, the current is used.
-</blockquote>
-<h4>ARGUMENTS</h4>
-<blockquote><dl>
-<dt><tt>object mask</tt>
-  <dd>mask image
-<dt><tt>int r</tt>
-<dt><tt>int g</tt>
-<dt><tt>int b</tt>
-  <dd>what color to paint with; default is current
-<dt><tt>int x</tt>
-<dt><tt>int y</tt>
-  <dd>where to paste the image; default is 0,0
-</dl></blockquote>
-<h4>RETURNS</h4>
-
-
-<blockquote>
-the object called
-</blockquote>
-
-
-<h4>SEE ALSO</h4>
-<blockquote>     <tt><a href=Image.image.html#paste_mask>paste_mask</a></tt>,
-     <tt><a href=Image.image.html#paste_alpha>paste_alpha</a></tt>,
-     <tt><a href=Image.image.html#paste_alpha_color>paste_alpha_color</a></tt>
-</blockquote>
-
-<hr>
-<a name=paste_mask> </a>
-<h4>SYNOPSIS</h4>
-<blockquote>
-<tt>object <b>paste_mask</b>(object&nbsp;image, object&nbsp;mask)<br>
-object <b>paste_mask</b>(object&nbsp;image, object&nbsp;mask, int&nbsp;x, int&nbsp;y)</tt>
-</blockquote>
-
-<h4>DESCRIPTION</h4>
-
-
-<blockquote>
-Pastes a given image over the current image,
-    using the given mask as opaque channel.  
-    
-    A pixel value of 255 makes the result become a pixel
-    from the given image, 0 doesn't change anything.
-
-<p>    The masks red, green and blue values are used separately.
-</blockquote>
-<h4>ARGUMENTS</h4>
-<blockquote><dl>
-<dt><tt>object image</tt>
-  <dd>image to paste
-<dt><tt>object mask</tt>
-  <dd>mask image
-<dt><tt>int x</tt>
-<dt><tt>int y</tt>
-  <dd>where to paste the image; default is 0,0
-</dl></blockquote>
-<h4>RETURNS</h4>
-
-
-<blockquote>
-the object called
-</blockquote>
-
-
-<h4>SEE ALSO</h4>
-<blockquote>     <tt><a href=Image.image.html#paste>paste</a></tt>,
-     <tt><a href=Image.image.html#paste_alpha>paste_alpha</a></tt>,
-     <tt><a href=Image.image.html#paste_alpha_color>paste_alpha_color</a></tt>
-</blockquote>
-
-<hr>
-<a name=polygone> </a>
-<h4>SYNOPSIS</h4>
-<blockquote>
-<tt>object <b>polygone</b>(array(int|float)&nbsp;...&nbsp;curve)</tt>
-</blockquote>
-
-<h4>DESCRIPTION</h4>
-
-
-<blockquote>
-fills an area with the current color
-</blockquote>
-<h4>ARGUMENTS</h4>
-<blockquote><dl>
-<dt><tt>array(int|float) curve</tt>
-  <dd>curve(s), <tt>({x1,y1,x2,y2,...,xn,yn})</tt>,
-     automatically closed.
-
-<p>     If any given curve is inside another, it
-     will make a hole.
-</dl></blockquote>
-<h4>RETURNS</h4>
-
-
-<blockquote>
-the current object
-</blockquote>
-
-
-<h4>NOTE</h4>
-<blockquote>
-This function is new (april-97) and rather untested.
-</blockquote>
-
-
-<h4>SEE ALSO</h4>
-<blockquote>     <tt><a href=Image.image.html#box>box</a></tt>,
-     <tt><a href=Image.image.html#setcolor>setcolor</a></tt>
-</blockquote>
-
-<hr>
-<a name=read_lsb_grey> </a>
-<a name=read_lsb_rgb> </a>
-<a name=write_lsb_grey> </a>
-<a name=write_lsb_rgb> </a>
-<h4>SYNOPSIS</h4>
-<blockquote>
-<tt>object <b>write_lsb_rgb</b>(string&nbsp;what)<br>
-object <b>write_lsb_grey</b>(string&nbsp;what)<br>
-string <b>read_lsb_rgb</b>()<br>
-string <b>read_lsb_grey</b>()</tt>
-</blockquote>
-
-<h4>DESCRIPTION</h4>
-
-
-<blockquote>
-These functions read/write in the least significant bit
-     of the image pixel values. The _rgb() functions
-     read/write on each of the red, green and blue values,
-     and the grey keeps the same lsb on all three.
-
-<p>     The string is nullpadded or cut to fit.
-</blockquote>
-<h4>ARGUMENTS</h4>
-<blockquote><dl>
-<dt><tt>string what</tt>
-  <dd>the hidden message
-</dl></blockquote>
-<h4>RETURNS</h4>
-
-
-<blockquote>
-the current object or the read string
-</blockquote>
-
-<hr>
-<a name=rotate> </a>
-<a name=rotate_expand> </a>
-<h4>SYNOPSIS</h4>
-<blockquote>
-<tt>object <b>rotate</b>(int|float&nbsp;angle)<br>
-object <b>rotate</b>(int|float&nbsp;angle, int&nbsp;r, int&nbsp;g, int&nbsp;b)<br>
-object <b>rotate_expand</b>(int|float&nbsp;angle)<br>
-object <b>rotate_expand</b>(int|float&nbsp;angle, int&nbsp;r, int&nbsp;g, int&nbsp;b)</tt>
-</blockquote>
-
-<h4>DESCRIPTION</h4>
-
-
-<blockquote>
-Rotates an image a certain amount of degrees (360� is 
-     a complete rotation) counter-clockwise:
-
-<p>     <table><tr valign=center>
-     <td></td>
-     <td></td>
-     <td></td>
-     </tr><tr valign=center>
-     <td>original</td>
-     <td>->rotate(15,255,0,0);</td>
-     <td>->rotate_expand(15);</td>
-     </tr></table>
-
-<p>     The "expand" variant of functions stretches the 
-     image border pixels rather then filling with 
-     the given or current color.
-
-<p>     This rotate uses the <tt><a href=Image.image.html#skewx>skewx</a></tt>() and <tt><a href=Image.image.html#skewy>skewy</a></tt>() functions.
-</blockquote>
-<h4>ARGUMENTS</h4>
-<blockquote><dl>
-<dt><tt>int|float angle</tt>
-  <dd>the number of degrees to rotate
-<dt><tt>int r</tt>
-<dt><tt>int g</tt>
-<dt><tt>int b</tt>
-  <dd>color to fill with; default is current
-</dl></blockquote>
-<h4>RETURNS</h4>
-
-
-<blockquote>
-the new image object
-</blockquote>
-
-<hr>
-<a name=rotate_ccw> </a>
-<h4>SYNOPSIS</h4>
-<blockquote>
-<tt>object <b>rotate_ccw</b>()</tt>
-</blockquote>
-
-<h4>DESCRIPTION</h4>
-
-
-<blockquote>
-rotates an image counter-clockwise, 90 degrees.
-
-<p>     <table><tr valign=center>
-     <td></td>
-     <td></td>
-     </tr><tr valign=center>
-     <td>original</td>
-     <td>->rotate_ccw();</td>
-     </tr></table>
-</blockquote>
-<h4>RETURNS</h4>
-
-
-<blockquote>
-the new image object
-</blockquote>
-
-<hr>
-<a name=rotate_cw> </a>
-<h4>SYNOPSIS</h4>
-<blockquote>
-<tt>object <b>rotate_cw</b>()</tt>
-</blockquote>
-
-<h4>DESCRIPTION</h4>
-
-
-<blockquote>
-rotates an image clockwise, 90 degrees.
-
-<p>     <table><tr valign=center>
-     <td></td>
-     <td></td>
-     </tr><tr valign=center>
-     <td>original</td>
-     <td>->rotate_cw();</td>
-     </tr></table>
-</blockquote>
-<h4>RETURNS</h4>
-
-
-<blockquote>
-the new image object
-</blockquote>
-
-<hr>
-<a name=scale> </a>
-<h4>SYNOPSIS</h4>
-<blockquote>
-<tt>object <b>scale</b>(float&nbsp;factor)<br>
-object <b>scale</b>(0.5)<br>
-object <b>scale</b>(float&nbsp;xfactor, float&nbsp;yfactor)</tt>
-</blockquote>
-
-<h4>DESCRIPTION</h4>
-
-
-<blockquote>
-scales the image with a factor,
-     0.5 is an optimized case.
-</blockquote>
-<h4>ARGUMENTS</h4>
-<blockquote><dl>
-<dt><tt>float factor</tt>
-  <dd>factor to use for both x and y
-<dt><tt>float xfactor</tt>
-<dt><tt>float yfactor</tt>
-  <dd>separate factors for x and y
-</dl></blockquote>
-<h4>RETURNS</h4>
-
-
-<blockquote>
-the new image object
-</blockquote>
-
-<hr>
-<a name=scale> </a>
-<h4>SYNOPSIS</h4>
-<blockquote>
-<tt>object <b>scale</b>(int&nbsp;newxsize, int&nbsp;newysize)<br>
-object <b>scale</b>(0, int&nbsp;newysize)<br>
-object <b>scale</b>(int&nbsp;newxsize, 0)</tt>
-</blockquote>
-
-<h4>DESCRIPTION</h4>
-
-
-<blockquote>
-scales the image to a specified new size,
-     if one of newxsize or newysize is 0,
-     the image aspect ratio is preserved.
-</blockquote>
-<h4>ARGUMENTS</h4>
-<blockquote><dl>
-<dt><tt>int newxsize</tt>
-<dt><tt>int newysize</tt>
-  <dd>new image size in pixels
-</dl></blockquote>
-<h4>RETURNS</h4>
-
-
-<blockquote>
-the new image object
-</blockquote>
-
-<hr>
-<a name=select_from> </a>
-<h4>SYNOPSIS</h4>
-<blockquote>
-<tt>object <b>select_from</b>(int&nbsp;x, int&nbsp;y)<br>
-object <b>select_from</b>(int&nbsp;x, int&nbsp;y, int&nbsp;edge_value)</tt>
-</blockquote>
-
-<h4>DESCRIPTION</h4>
-
-
-<blockquote>
-Makes an grey-scale image, for alpha-channel use.
-    
-    This is very close to a floodfill.
-    
-    The image is scanned from the given pixel,
-    filled with 255 if the color is the same,
-    or 255 minus distance in the colorcube, squared, rightshifted
-    8 steps (see <tt><a href=Image.image.html#distancesq>distancesq</a></tt>).
-
-<p>    When the edge distance is reached, the scan is stopped.
-    Default edge value is 30.
-    This value is squared and compared with the square of the 
-    distance above.
-</blockquote>
-<h4>ARGUMENTS</h4>
-<blockquote><dl>
-<dt><tt>int x</tt>
-<dt><tt>int y</tt>
-  <dd>originating pixel in the image
-</dl></blockquote>
-<h4>RETURNS</h4>
-
-
-<blockquote>
-the new image object
-</blockquote>
-
-
-<h4>SEE ALSO</h4>
-<blockquote>     <tt><a href=Image.image.html#distancesq>distancesq</a></tt>
-</blockquote>
-
-<hr>
-<a name=setcolor> </a>
-<h4>SYNOPSIS</h4>
-<blockquote>
-<tt>object <b>setcolor</b>(int&nbsp;r, int&nbsp;g, int&nbsp;b)<br>
-object <b>setcolor</b>(int&nbsp;r, int&nbsp;g, int&nbsp;b, int&nbsp;alpha)</tt>
-</blockquote>
-
-<h4>DESCRIPTION</h4>
-
-
-<blockquote>
-set the current color
-</blockquote>
-<h4>ARGUMENTS</h4>
-<blockquote><dl>
-<dt><tt>int r</tt>
-<dt><tt>int g</tt>
-<dt><tt>int b</tt>
-  <dd>new color
-<dt><tt>int alpha</tt>
-  <dd>new alpha value
-</dl></blockquote>
-<h4>RETURNS</h4>
-
-
-<blockquote>
-the object called
-</blockquote>
-
-<hr>
-<a name=setpixel> </a>
-<h4>SYNOPSIS</h4>
-<blockquote>
-<tt>object <b>setpixel</b>(int&nbsp;x, int&nbsp;y)<br>
-object <b>setpixel</b>(int&nbsp;x, int&nbsp;y, int&nbsp;r, int&nbsp;g, int&nbsp;b)<br>
-object <b>setpixel</b>(int&nbsp;x, int&nbsp;y, int&nbsp;r, int&nbsp;g, int&nbsp;b, int&nbsp;alpha)</tt>
-</blockquote>
-
-<h4>ARGUMENTS</h4>
-<blockquote><dl>
-<dt><tt>int x</tt>
-<dt><tt>int y</tt>
-  <dd>position of the pixel
-<dt><tt>int r</tt>
-<dt><tt>int g</tt>
-<dt><tt>int b</tt>
-  <dd>color
-<dt><tt>int alpha</tt>
-  <dd>alpha value
-</dl></blockquote>
-<h4>RETURNS</h4>
-
-
-<blockquote>
-the object called
-</blockquote>
-
-<hr>
-<a name=skewx> </a>
-<a name=skewx_expand> </a>
-<h4>SYNOPSIS</h4>
-<blockquote>
-<tt>object <b>skewx</b>(int&nbsp;x)<br>
-object <b>skewx</b>(int&nbsp;yfactor)<br>
-object <b>skewx</b>(int&nbsp;x, int&nbsp;r, int&nbsp;g, int&nbsp;b)<br>
-object <b>skewx</b>(int&nbsp;yfactor, int&nbsp;r, int&nbsp;g, int&nbsp;b)<br>
-object <b>skewx_expand</b>(int&nbsp;x)<br>
-object <b>skewx_expand</b>(int&nbsp;yfactor)<br>
-object <b>skewx_expand</b>(int&nbsp;x, int&nbsp;r, int&nbsp;g, int&nbsp;b)<br>
-object <b>skewx_expand</b>(int&nbsp;yfactor, int&nbsp;r, int&nbsp;g, int&nbsp;b)</tt>
-</blockquote>
-
-<h4>DESCRIPTION</h4>
-
-
-<blockquote>
-Skews an image an amount of pixels or a factor;
-     a skew-x is a transformation:
-
-<p>     <table><tr valign=center>
-     <td></td>
-     <td></td>
-     <td></td>
-     </tr><tr valign=center>
-     <td>original</td>
-     <td>->skewx(15,255,0,0);</td>
-     <td>->skewx_expand(15);</td>
-     </tr></table>
-</blockquote>
-<h4>ARGUMENTS</h4>
-<blockquote><dl>
-<dt><tt>int x</tt>
-  <dd>the number of pixels
-     The "expand" variant of functions stretches the 
-     image border pixels rather then filling with 
-     the given or current color.
-<dt><tt>float yfactor</tt>
-  <dd>best described as: x=yfactor*this->ysize()
-<dt><tt>int r</tt>
-<dt><tt>int g</tt>
-<dt><tt>int b</tt>
-  <dd>color to fill with; default is current
-</dl></blockquote>
-<h4>RETURNS</h4>
-
-
-<blockquote>
-the new image object
-</blockquote>
-
-<hr>
-<a name=skewy> </a>
-<a name=skewy_expand> </a>
-<h4>SYNOPSIS</h4>
-<blockquote>
-<tt>object <b>skewy</b>(int&nbsp;y)<br>
-object <b>skewy</b>(int&nbsp;xfactor)<br>
-object <b>skewy</b>(int&nbsp;y, int&nbsp;r, int&nbsp;g, int&nbsp;b)<br>
-object <b>skewy</b>(int&nbsp;xfactor, int&nbsp;r, int&nbsp;g, int&nbsp;b)<br>
-object <b>skewy_expand</b>(int&nbsp;y)<br>
-object <b>skewy_expand</b>(int&nbsp;xfactor)<br>
-object <b>skewy_expand</b>(int&nbsp;y, int&nbsp;r, int&nbsp;g, int&nbsp;b)<br>
-object <b>skewy_expand</b>(int&nbsp;xfactor, int&nbsp;r, int&nbsp;g, int&nbsp;b)</tt>
-</blockquote>
-
-<h4>DESCRIPTION</h4>
-
-
-<blockquote>
-Skews an image an amount of pixels or a factor;
-     a skew-y is a transformation:
-
-<p>     <table><tr valign=center>
-     <td></td>
-     <td></td>
-     <td></td>
-     </tr><tr valign=center>
-     <td>original</td>
-     <td>->skewy(15,255,0,0);</td>
-     <td>->skewy_expand(15);</td>
-     </tr></table>
-
-<p>     The "expand" variant of functions stretches the 
-     image border pixels rather then filling with 
-     the given or current color.
-</blockquote>
-<h4>ARGUMENTS</h4>
-<blockquote><dl>
-<dt><tt>int y</tt>
-  <dd>the number of pixels
-<dt><tt>float xfactor</tt>
-  <dd>best described as: t=xfactor*this->xsize()
-<dt><tt>int r</tt>
-<dt><tt>int g</tt>
-<dt><tt>int b</tt>
-  <dd>color to fill with; default is current
-</dl></blockquote>
-<h4>RETURNS</h4>
-
-
-<blockquote>
-the new image object
-</blockquote>
-
-<hr>
-<a name=threshold> </a>
-<h4>SYNOPSIS</h4>
-<blockquote>
-<tt>object <b>threshold</b>()<br>
-object <b>threshold</b>(int&nbsp;r, int&nbsp;g, int&nbsp;b)</tt>
-</blockquote>
-
-<h4>DESCRIPTION</h4>
-
-
-<blockquote>
-Makes a black-white image. 
-
-<p>     If all red, green, blue parts of a pixel
-     is larger or equal then the given value, the pixel will become
-     white, else black.
-
-<p>     This method works fine with the grey method.
-
-<p>     If no arguments are given, the current color is used 
-     for threshold values.
-
-<p>     <table><tr valign=center>
-     <td></td>
-     <td></td>
-     </tr><tr valign=center>
-     <td>original</td>
-     <td>->threshold(90,100,110);</td>
-     </tr></table>
-</blockquote>
-<h4>ARGUMENTS</h4>
-<blockquote><dl>
-<dt><tt>int r</tt>
-<dt><tt>int g</tt>
-<dt><tt>int b</tt>
-  <dd>red, green, blue threshold values
-</dl></blockquote>
-<h4>RETURNS</h4>
-
-
-<blockquote>
-the new image object
-</blockquote>
-
-
-<h4>SEE ALSO</h4>
-<blockquote>     <tt><a href=Image.image.html#grey>grey</a></tt>
-</blockquote>
-
-<hr>
-<a name=toppm> </a>
-<h4>SYNOPSIS</h4>
-<blockquote>
-<tt>string <b>toppm</b>()</tt>
-</blockquote>
-
-<h4>DESCRIPTION</h4>
-
-
-<blockquote>
-<b>compability method</b> - do not use in new programs.
-     
-     See <tt><a href=Image.PNM.encode.html>Image.PNM.encode</a></tt>().
-</blockquote>
-<h4>RETURNS</h4>
-
-
-<blockquote>
-PPM data
-</blockquote>
-
-<hr>
-<a name=tuned_box> </a>
-<h4>SYNOPSIS</h4>
-<blockquote>
-<tt>object <b>tuned_box</b>(int&nbsp;x1, int&nbsp;y1, int&nbsp;x2, int&nbsp;y2, array(array(int))&nbsp;corner_color)</tt>
-</blockquote>
-
-<h4>DESCRIPTION</h4>
-
-
-<blockquote>
-Draws a filled rectangle with colors (and alpha values) tuned
-     between the corners.
-
-<p>     Tuning function is (1.0-x/xw)*(1.0-y/yw) where x and y is
-     the distance to the corner and xw and yw are the sides of the
-     rectangle.
-
-<p>     <table><tr valign=center>
-     <td></td>
-     <td></td>
-     <td></td>
-     </tr><tr valign=center>
-     <td>original</td>
-     <td>solid tuning<br>(blue,red,green,yellow)</td>
-     <td>tuning transparency<br>(as left + 255,128,128,0)</td>
-     </tr></table>
-</blockquote>
-<h4>ARGUMENTS</h4>
-<blockquote><dl>
-<dt><tt>int x1</tt>
-<dt><tt>int y1</tt>
-<dt><tt>int x2</tt>
-<dt><tt>int y2</tt>
-  <dd>rectangle corners
-<dt><tt>array(array(int)) corner_color</tt>
-  <dd>colors of the corners:
-     <pre>
-     ({x1y1,x2y1,x1y2,x2y2})
-     </pre>
-     each of these is an array of integeres:
-     <pre>
-     ({r,g,b}) or ({r,g,b,alpha})
-     </pre>
-     Default alpha channel value is 0 (opaque).
-</dl></blockquote>
-<h4>RETURNS</h4>
-
-
-<blockquote>
-the object called
-</blockquote>
-
-<hr>
-<a name=turbulence> </a>
-<h4>SYNOPSIS</h4>
-<blockquote>
-<tt>void <b>turbulence</b>(array(float|int|array(int))&nbsp;colorrange)<br>
-void <b>turbulence</b>(array(float|int|array(int))&nbsp;colorrange, int&nbsp;octaves, float&nbsp;scale, float&nbsp;xdiff, float&nbsp;ydiff, float&nbsp;cscale)</tt>
-</blockquote>
-
-<h4>DESCRIPTION</h4>
-
-
-<blockquote>
-gives a new image with the old image's size,
-     filled width a 'turbulence' pattern
-
-<p>     The random seed may be different with each instance of pike.
-
-<p>     Example: <br>
-     <tt>->turbulence( ({0,({229,204,204}), 0.9,({229,20,20}), 0.9,0}) );</tt>
-     <br>
-</blockquote>
-<h4>ARGUMENTS</h4>
-<blockquote><dl>
-<dt><tt>array(float|int|array(int)) colorrange</tt>
-  <dd>colorrange table
-<dt><tt>int octaves</tt>
-  <dd>default value is 3
-<dt><tt>float scale</tt>
-  <dd>default value is 0.1
-<dt><tt>float xdiff</tt>
-<dt><tt>float ydiff</tt>
-  <dd>default value is 0,0
-<dt><tt>float cscale</tt>
-  <dd>default value is 1
-</dl></blockquote>
-
-
-<h4>SEE ALSO</h4>
-<blockquote>     <tt><a href=Image.image.html#noise>noise</a></tt>
-</blockquote>
-
-<hr>
-<a name=xsize> </a>
-<h4>SYNOPSIS</h4>
-<blockquote>
-<tt>int <b>xsize</b>()</tt>
-</blockquote>
-
-<h4>RETURNS</h4>
-
-
-<blockquote>
-the width of the image
-</blockquote>
-
-<hr>
-<a name=ysize> </a>
-<h4>SYNOPSIS</h4>
-<blockquote>
-<tt>int <b>ysize</b>()</tt>
-</blockquote>
-
-<h4>RETURNS</h4>
-
-
-<blockquote>
-the height of the image
-</blockquote>
diff --git a/src/modules/Image/doc/illustrations.html b/src/modules/Image/doc/illustrations.html
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/src/modules/Image/doc/lena.gif b/src/modules/Image/doc/lena.gif
deleted file mode 100644
index bb4bb70ad34440bbb5a0165a9bc38e27c59bc52b..0000000000000000000000000000000000000000
Binary files a/src/modules/Image/doc/lena.gif and /dev/null differ
diff --git a/src/modules/Image/doc/lena.ppm b/src/modules/Image/doc/lena.ppm
deleted file mode 100644
index cf36a9bf0057b6986751438b13c619a22c573941..0000000000000000000000000000000000000000
--- a/src/modules/Image/doc/lena.ppm
+++ /dev/null
@@ -1,5 +0,0 @@
-P6
-# CREATOR: XV Version 3.10a  Rev: 12/29/94
-67 67
-255
-�O<�F;�F;�O<�O<�F;�w�O<qC;�GE�XI�O<�PG�YH�[V�O<�GE�r\�r\�r\�fX��~��~ČČČ��~Ɣ�ČƜ�Ɯ�ؙ�Ȥ�ٵ���~ƣ�Ȥ�ت�Ȥ�Ȥ�Ȥ�ʳ��{e�rX�\G���鷧Ɣ�ٵ�ٵ�ت�Ȥ�ʳ�ʳ�鷧F12F12F12F12F12G74F12qGF�q_�q_�r\�r\�F;�GE�F;�GE�O<qC;ٕo�PI�F;�O<qC;�O<�XI�YH�PG�XI�fX�r\�ga�fX�{e��~��~�{eČ�{e��~��~Ɣ�ČČ؜�Ɯ�Ɣ�Ɣ�Ɣ�؜�ƣ�؜�ƣ����ě�Ɣ��gNƔ�ت�Čʳ�ت�Ȥ�ʫ�ت�ʫ�ٵ�ٵ�8-+F12G74F12G74F12H9=�[U�fX�r\�r\�{eqC;qC;qC;�O<�O<�[Uٕo�YH�F;�GE�PG�XI�XI�XI�O<�fX�r\�fX�fX�r\�{e�r\��~��~�{e��~DžjČDžj��~Ɣ�ČČƔ�Ɣ�ě�ě�Č���Ɣ�Ɣ����ƣ�Ɯ�Ɯ�ʪ�ت�ʪ�Ȥ�ʪ�ʫ�؜�Ȥ�ʳ�؜�8-+F12F12F12G74F12qTO�q_�r\�r\�r\�r\�GEqC;�O<�F;�O<�r\ֈg�dK�YH�O<�GE�O<�XI�XI�[V�q_�gW�[V�r\�r\�fX�{e��~�r\Č�r\��~Č��~��n��~ČČƔ�Ɯ�Ɣ���~�����~����}zؙ�Čʫ�ت�ت�ƣ�Ȥ�Ȥ�ʫ�؜��q_Ɯ�Ȥ��pa;33F12;33F12H9=H9=�q_�q_�r\�{e�r\�r\�O<qC;�F;�O<qC;�{eֈg�rX�dK�XIqC;�O<�O<�[V�fX�dK�XI�r\�fX�q_�ga�q_�r\�|g�|g�|g�{e�{e�|g�{e�{e��~��~��~Č��~��n��n��oČƜ�ƣ�ʫ�Ȥ�Ɯ�ě�Ȥ�Ȥ�Ȥ�ʫ��|w�{e�q_ě�bC;F12F12F12F12G74�\V�q_�q_�r\�r\�r\�r\qC;qC;�O<qC;�F;��n؄S�r\�YH�YH�GE�GE�fX�fX�fX�[U�gW�fX�gW�fX�q_�q_�r\�r\�{e�rvDžj�|g�r\��~�{e�{e��~�{e�{e�|w��o��~ČƜ�Ȥ�Ɯ�Ɣ�ƣ�Ȥ�ʪ�ت�Ȥ�ʫ�؜��{i�q_�q_Ȥ�8-+F12F12F12G74X;>�q_�fX�r\�r\�r\�q_�r\qC;qC;qC;�F;t:3˚rٕo�rW�gN�r\�O<�YH�[V�YH�[U�dK�fX�YH�[U�q_�fX�r\�fX�gw�fX�d\�d\�q_�r\�|w�q_�{e�r\�q_�sy�q_��~Ɣ�Ȥ�Ɯ�Ɣ�ě�Ȥ�Ȥ�ت�ت�ʪ�ʫ�ٵ���o�O<qC;����F;;33F12F12G74F12�[U�q_�r\�r\�r\�r\�r\�q_�F;�GE�F;�O<l<=Ɯ��jɃ\�gN�gN�YH�XI�YH�O<�fX�fX�PI�[V�fX�fX�ga�\V�fX�XJ`FHn\w�|w}[uaVdqGF�Q]`FH`FHX;>�pa�|gČƣ�Ɯ�Ȥ�Ɯ�ƣ�Ȥ�Ȥ�Ȥ�ʪ�ٵ�؜��[UqC;qGF�{i��~8-+F12F12F12G74PDB�r\�q_�{e�r\�r\�q_�r\�q_qC;qC;�F;qC;�F;�{i�q�j�[E�cK�O<�XI�GE�fX�YH�PI�fX�[V�XI�fX�XJ�[U�Q]qGF`FH`FHaVd`FHX;>RGYH9=F12F12�d\�r\Ɣ�Ȥ�Ɯ�Ɯ�Ɯ�Ɯ�ě�Ȥ�Ȥ�ت���~�XJbC;qC;�PG��n�{eX;>F12F12F12G74F12�XJ�fX�r\�{e�r\�{e�r\�q_�q_�F;qC;�O<qC;�O<�O<괍�w�dK�q_�fX�GE�cK�fX�O<�[V�[U�YH�fX�[U�[V�XJX;>RGYF12RGY`FHRGY`FH`FHH9=9-5�pa�d\Ɯ�ČƜ�Ɯ�Ɣ�Ɣ�Ɯ�ƣ�ƣ�Ɣ��PGqTOqC;�PG�q_�|g�{eF12F12F12G74F12H9=F12�q_�fX�{e�{e�r\�{i�q_�r\�q_qC;�F;qC;�F;�O<l<=�wٕo�{[�r\�O<�fX�[V�O<�[V�XI�XI�[U�[V�PG`FHH9=H9=H9=H9=oL_H9=`FHRGYF1=`FH�[U�{eȤ�ČƔ������~���Ɣ�Ɯ�Ɣ��d\`FH`FH�oi�{[�{[Džj��~F12;33F12F12F12G74F12�XJ�q_�r\�{e�{e�{e�r\�r\�q_�r\�F;qC;�GE�O<�O<�F;��n�r�}[�{[�GE�fX�GE�YH�O<�[V�fX�O<`FHH9=X;>H9=X;>F12H9=F12X;>RGYRGYF1=�oi��nȤ�Ɯ�Č���������Ɣ����Č�PGX;>`FH}[uqTO�q_ֈg�{[8-+F12H9=F12F12F12F12H9=�d\�[U�{e�{e�{i�r\�{e�{i�r\�r\�O<qC;�F;qC;�O<�GEqC;���ʓq�rX�XI�XI�[U�[U�\V�\V�[UqGFX;>`FHF12;33aVdF1=H9=H9=X;>RGYRGY}[u�paؙ�Ɣ���~�����~���ČƔ�ؙ�؜���n�=>`FH`FH�\V�r\�PG8-+F12F12F12F12;33G74F12qGF�\V�q_�{e�{e�{e�{e�{e�{e�q_�q_qC;qC;�F;�O<�O<�O<�O<Č�r�}[�XI�GE�XI�O<�fX�PG�PGW2=H9=W2=H9=H9=H9=X;>;33F12;33X;>`FH}[u��nČ����{e��~��n��nƜ�圐؜�ؤ�֌�O<X;>`FHqGF�paX;>F12F12F12G74F12F12F12F12�\V�\V�q_�{e�{e�{e�{e�{e�{e�r\�r\qC;�O<qC;�O<�O<�PG�O<�{e괍�O<�O<�O<�[U�YH�PIl<=H9=H9=;33H9=H9=X;>F12_K_F12;33bC;�XJ�sy�||ČƔ��{e��o���Džj֌圐章圐章ؤ��dKW11H9=bSQ�q_H9=F12F12F12G74F12F12F12PDB�[U�pa�fX�q_�r\�{i�r\�{i�{e�r\�r\qC;�F;�F;�F;�PI�PG�XI�F;騈�GE�O<�[U�PIqGFW2=H9=PDBF12G74F12H9=H9=RGYCDRF12F12�fXČ�{e�sz�����n����|w�rXDžj؜�騈圐鷧章騈�|g�=>;33H9=�{iW2=F12F12G74F12F12F12;33�\V�[U��n�q_�q_�q_�pa�q_�q_�r\�q_�{e�F;�F;�F;�GE�XI�PI�XI�O<Džj�O<�XI�YH�XIbC;H9=F12X;>F12H9=F12G74H9=PDB`FHPDB�fX�r\ČČ�oiƔ���o�r\�|gDžj֌圐騈圐章騈鷧ؙ�qC;H9=F12�syX;>F12F12H9=H9=F12F12X;>�pa�pa�{e�r\�r\�q_�r\�q_�pa�pa�pa�q_qC;�F;�O<�O<�O<�XI�O<�PI�YH�YH�gY�Q]W2=F12RGYF12;33PDBF1=F12H9=H9=X;>;33�[U�{e�{e��nƔ�����ga�r\֌֌֌ֈg֌圐ؤ�圐章章圐�XIF12H9=�\VqGFF12F12H9=F12F12F12qTO�\V�r\�r\�{e�{i�{e�{e�{i�fX�q_�gY�[U�F;qC;�F;�O<�PI�PI�q_�dKW2=qTO�[VqGFH9=F12aVd8-+H9=F12;33H9=F12PDBH9=�GE�q_Č�{e���؜��PG�GE�GE�GE�gN֌֌֌圐֌ؤ�騈ؙ��fXl<=F12F12`FH�\VH9=F12F12F12F12F12�d\�[U�{e�r\�{i�q_�q_�{e�r\�q_�q_�q_�q_qC;�F;�F;�GE�O<�YH�dK�XIH9=�d\qC;X;>RGYH9=RGYF12F12H9=F12;33H9=H9=`FH�pa��~؜���n����YH�cK�fX�fX�GEqC;�XI�rW�}[ؙ��w֌�fX�F;l<=�F;g93F12PDB�[UF12G74F12F12F12PDB�[U�q_�r\�q_�r\�q_�q_�q_�r\�q_�q_�q_�q_�F;�O<�F;qC;�q_�gW�r\�rX�fXW2=F12_K_F12RGYF12H9=H9=F12_K_;33F12F12�YH��~Ɯ������og93X;>H9=F12F12F12�YH�[E�gW�}[ؙ�圐�fXW2=F12;33F12H9=F12PDB�[UF12H9=F12F12F12�PG�gY�q_�r\�q_�r\�q_�r\�r\�q_�q_�q_�q_�fXqC;qC;qC;�q_Ƀ\�[E�fX�XIF12G74H9=H9=_K_PDBF12;33_K_;33F12H9=F12qGF��n��ně���n�=>F12X;>H9=W2=ʫ��\VqC;�XI�dK�gN章�{eW2=F12�d\qC;F12H9=F12W2=�paX;>H9=F12F12F12�gY�pa�r\�r\�r\�q_�r\�q_�q_�q_�q_�q_�pa�fX�O<�O<l<=`FH�q_ٵ�qC;F12G74H9=H9=H9=_K_CDRF12F12H9=F12F12F12;33�d\�{eƜ�Č�GE�cK�GE�F;�PG�szٵ��|g�PI�PI�[E�ga�Ĵ�O<�XJoL_��o�GEF12F12F12F12�paX;>F12F12G74bC;�pa�q_�r\�q_�q_�q_�q_�r\�r\�q_�fX�fX�gY�gY�GEF12�\V�q_�q_bC;H9=RGYPDBF1=CDRRGYaVdaVdH9=;33;33F12F12;33�XI�{eČ����PG�gW�r\�r\�[V�YH�[V�fX�|g�ga�YH�fX�rX鷧�|g�fX�PI�GEbC;g93H9=H9=F12�syX;>F12F12F12qTO�XI�r\�q_�r\�q_�q_�q_�q_�q_�fX�q_�pa�[U�pa�cK��o�[UF12H9=;33;33bZwaVdF12H9=aVdH9=aVdF12F12;33F12F12qGF�\VČʳ��F;�YH�gW�ga�|g�tg�rX�|g�}[�|g�ga�fX�\G�gW鷧Ɯ��tg�q_�YH�O<qC;F12F12F12�q_X;>H9=F12F12�\V�pa�r\�r\�r\�q_�r\�q_�fX�fX�q_�gY�fX�q_ٕo�oi�gY}[u`FHH9=H9=RGY`FHCDRF12CDR_K_aVd_K_`FHF12F12F12;33�O<Č؜�bC;�F;�[E�ga�tg�}[֌Ƀ\֌��~Džj�gN�r\�dK�gW鷧؜��|g�gN�[V�YHqC;W11W2=;33�q_PDBH9=F12H9=�fX�q_�r\�q_�q_�q_�q_�q_�fX�q_�pa�[U�q_ٕo�jqGFqGFF1=F12H9=CDRaVd_K_;33;33F12H9=`FH;33�\VH9=;33F12bSQ�q_Č�d\W2=�XI�[E�r\�rX�}[֌֌֌֌�tg�ga�gN�gW�gW章章�|g�ga�fX�YHqC;H9=X838-+�fX�XJF1=F12qGF�[U�{e�q_�q_�q_�q_�q_�fX�pa�fX�fX�[Uʓq�jٕobSQaVd`FHRGYX;>F12_K_H9=;33F12;33F12H9=H9=�GE�XJ;33F12�XI���Ɣ�F12X;>�O<�dK�\G�rX�ga�}fֈg֌�}[�tg�gN�gW�[E�dK؜��űr\�r\�dK�PIl<=F12X;>F12�oi�\VF12F12�d\�fX�{e�r\�q_�q_�r\�fX�fX�fX�pa�[U��n�q�j�jX;>F1=oL_H9=CDRCDRaVd_K_;33F12;33X;>bC;`FHČqC;;33`FH�PGȤ�F12W11X83�O<�[E�gW�gW�rW�ue�ue�}[�}[�tg�dK�[E�YH�dKDžj��ϱr\�r\�dK�PIW11F12X;>F12�\V�gwF12F12�q_�q_�q_�r\�q_�r\�q_�fX�q_�pa�fX�gYٕo�j�j�jX;>X;>RGYH9=RGYH9=bZwH9=H9=;33F12X;>qGF�PGqTOF12G74�GE��nqTOF12H9=bC;�F;�[E�dK�gW�rX�rW�tg�ue�tg�gN�YH�dK�gW�[EDžj��ɱr\�gW�[V�O<H9=F12X83F12qTO�q_H9=qC;�cK�q_�r\�q_�q_�q_�q_�fX�pa�fX�d\�r\�q�j�j캑;33CDR`FHH9=_K_;33aVdCDRRGYF12F12X;>8-+PDBF1=8-+��nČ�|wF12F12H9=�=>�O<�[E�[E�\G�rX�rX�rX�ue�tg�gN�YH�YH�F;�PI�ga圐�r\�gW�PIl<=F12F12W2=F12`FH�q_X;>�PG�fX�r\�q_�r\�fX�q_�q_�fX�q_�pa�fXɋ[�j�q괍�rW11RGY`FHCDRRGYH9=RGYqg�CDRF12`FH;33PDBX;>X;>`FH�[U��nH9=F12F12H9=qC;�O<�[E�dK�gW�gW�rX�rX�rX�ue�rX�gW�dK�[E�YH��~Ƀ\�ga�[V�XIF12F12F12X;>W2=X;>�q_PDB�pa�fX�{e�q_�q_�q_�fX�q_�pa�pa�cK�[Uٕo�j�r괍騈#(/X;>CDR`FHH9=CDRaVdRGYbZwF12qC;H9=F12qGF�}z�O<���qTOF12F12F12X;>�F;�PG�[E�[E�\G�ga�ga�rW�rX�tg�rX�rX�gN�tgؙ�؜���~�fX�YHqC;F12F12H9=X83W11F12��oqC;�q_�q_�r\�q_�q_�fX�q_�fX�fX�pa�pa�q_�j�r괍괍괍F12RGYPDBH9=F12CDRRGYH9=n\wPDBqGFH9=`FH�{i��oqC;�PG8-+F12H9=W2=G74�PG�O<�[E�dK�gW�\G�\G�gN�rX�gN�ga�gN�r\֌ؤ�圐Džj�fX�[VF12F12H9=W2=X83X;>8-+�q_�XJ�gW�q_�q_�q_�q_�fX�q_�pa�fX�pa�cK�q_�j�r괍��y괍F12RGYH9=F12H9=X;>H9=RGYH9=qg�;33�gwƔ����l<=�\V9-5X;>F12H9=X;>H9=qC;�F;�YH�dK�dK�\G�r\�gW�[E�gW�gW�gW�\G�OU�gW�[E�PI�YHbC;F12F12H9=W11X;>W11F12�pa�[U�q_�rX�q_�q_�q_�q_�fX�q_�pa�fX�d\�{[�q���괍괍괍H9=H9=F12H9=H9=be�`FHCDRoL_H9=�XJ�q_ٵ�qC;�q_X;>;33H9=F12F12X;>F12bC;qC;�YH�[E�[E�gW�\G�gN�YH�O<�H@�YH�[V�r\�tg�[V�[V�YHF12F12F12F12X;>X83H9=H9=�\V�fX�q_�r\�r\�q_�q_�q_�pa�pa�fX�pa�XIɃ\괍괍괍괍괍H9=RGY;33CDRH9=qv�H9=bZwF12_K_�gw�q_�[U�q_qC;;33F12F12H9=F12W2=F12X;>bC;�O<�PI�YH�[E�gW�ga�\G�[E�[E�dK�\e�ga�\e�fX�r\bC;8-+H9=F12F12bC;X;>W11F12qTO�r\�q_�r\�q_�q_�q_�pa�fX�fX�pa�cK�d\Ƀ\������캑���캑bZwX;>F12H9=_K_aVdbZwF12bZwaVd}[u�r\�fX�XI;33F12F12F12F12F12G74H9=X83W11�F;�O<�PI�YH�[E�dK�r\�dK�[E�[E�YH�[E�fX�r\�F;F12F12F12H9=F12bC;X;>F12X;>`FH�{e�q_�q_�q_�q_�q_�q_�pa�pa�pa�[U�XJDžj�Ø���캑���캑CDRF12H9=H9=_K_aVdbZwaVdH9=}[uPDB�}z�YH8-+F12;33H9=F12F12F12H9=F12X;>H9=bC;qC;�O<�YH�dK�gW�gW�gW�r\�tg�}[�|g�rX�[VF12F12F12H9=F12F12qC;X;>X83X;>`FH�{e�q_�q_�q_�q_�q_�q_�pa�fX�d\�gY�\V˚r�Ø캑���캑���X;>;33F12;33RGYCDRCDRqg�bZwaVd�[UoL_W11;33F12F12F12F12F12F12F12F12F12W11X;>F12l<=�O<�[E�dK�gW�gN�|gɃ\Džj�|g�r\�GEG74F12;33F12H9=F12qC;X;>X;>X;>bC;�{e�fX�q_�q_�gY�q_�gY�pa�pa�[U�d\qTO�r�ԡ괍������괍W2=F12H9=;33CDRn\wH9=_K_bZwaVd}[upZ`;33;33;33H9=F12F12F12F12F12H9=H9=F12X83X;>W11bC;qC;�O<�[U�gW�ga�{e�tg�tg�q_qC;F12F12F12H9=F12H9=qC;X;>X;>X83`FH�q_�PG�XJ�d\�[U�gY�q_�gY�gY�d\�d\�d\���괍괍�r騈�w;8<G74H9=;33H9=qg�RGY;33_K_bZwqg�PDB���F12;33H9=F12H9=;33F12F12F12G74F12F12bC;�O<�YH�gW�gW�gW�fX�rX�r\�ga�{eČ騈��nPDB8-+F12F12F12qGFX;>X;>X;>�\V�fX�PGqTO�O<qTOqTO�PG�XJ�d\�d\�\V�gY����r�r騈�wDžjPDBF12H9=RGYF12bZwaVdCDRqg�H9=aVdRGY~g{bZw8-+W2=F12F12F12F12F12F12F12W2=F12bC;�O<�[V�YH�YH�fX�gW�gN�r\�r\�|gČؤ�ؤ�ؤ���~pZ`;33H9=bC;X;>X83W11�d\�XI�d\�XI�XJ�PGqGFqGFbC;qC;qGFqTO�XJ�r�r騈�wDžjqC;F12RGY8-+bSQH9=;33aVd_K_RGYaVdRGYn\w�XJX;>qegF12F12X;>;33;33F12F12F12H9=X83X;>�GE�XI�YH�YH�gW�gW�dK�gW�rX�|g֌�wؙ�騈章괍ƣ�F12bC;X;>X;>F12�fX�pa�q_�fX�d\�[U�XJ�XJqTOqC;�PG�PG�XI캑騈�rČX83H9=RGYPDB`FHH9=CDR`FHH9=RGYF12RGY_K_qg�bZwaVdX;>PDB;33H9=F12F12F12F12H9=W11bC;X;>�O<�YH�YH�fX�dK�gW�gW�gN�{eɃ\Čʓqʓq圐騈章鷧Ɯ�F12F12X;>F12�fX�pa�fX�pa�pa�XI�gY�\V�\VqTO�XI�XI��n��y괍˚r�cKG74qC;H9=H9=F12H9=F12;8<;8<RGYH9=H9=_K_qg�bSQbSQ}[u`FH;33G74F12F12F12F12F12X;>�O<F12�O<�XI�dK�gW�gW�\G�gN�rX�|g�}[ֈgČ֌�wؤ�騈騈鷧ƣ�F12W11F12�r\�pa�fX�gY�fX�gY�gY�d\�\V�XJ�cK�YH�q괍騈DžjqC;bC;bC;F12;33;33_K_F12;33H9=H9=CDRRGYCDRaVdn\wpZ``FH~g{8-+F12H9=F12F12F12F12l<=�O<H9=�F;�[E�dK�dK�gW�r\�gN�rX�rX�{e�}fֈg֌ʓq騈章鷧鷧�Ĵ�d\H9=F12�r\�pa�fX�fX�gY�gY�[U�[U�d\�XI�cKɃ\ۯ�괍�r�q_g93l<=qC;;33;33;33aVdH9=;33;33RGYH9=`FH`FH_K_qg�aVdF12�sz8-+F12X;>;33F12F12G74�F;�O<F12�GE�[E�gW�\G�\G�r\�\G�rX�rX�tg�}[Ƀ\֌֌騈騈鷧���鷧Ȥ�F12X;>�r\�pa�fX�q_�gY�gY�d\�d\�XJ�XI�r�r괍괍�j�O<qC;qC;�O<;33;33CDRbSQ;33F12F12;33H9=CDR_K_RGYqg�bZwX;>�r|;33H9=W11F12F12F12H9=�XI�YHH9=�PG�dK�dK�gW�dK�\G�r\�gN�rX�rX�|gɃ\֌ʓq圐騈章ٵ�鷧�ĴbC;X;>�dK�q_�pa�pa�fX�d\�[U�XI�\V�{[����r����rDžj�F;qC;�O<�GE;33F12H9=PDB;33H9=;33F12H9=H9=_K_bZw~g{bZw���aVdH9=F12F12H9=F12H9=t:3�YH�O<W11�PI�dK�dK�gW�gW�dK�\G�gN�gN�rX�tg�}[ɋ[֌ؤ�騈章鷧��������nbC;�q_�q_�pa�fX�gY�gY�gY�d\�XIDžj캑�q캑�q�cK�O<qC;�O<qC;;33F12;33X;>;33;33;33F12H9=F12;8<n\waVdPDBH9=X;>bC;`FHbC;X;>F12W11�O<�YH�XIX;>�YH�dK�gW�gN�\G�dK�gW�gN�gN�r\�ue�|gɃ\֌ʓq圐章鷧鷧鷧ٵ�qC;�pa�fX�gY�gY�gY�[U�gY�d\�XIɃ\�r�q���ֈg�XI�O<l<=�F;bC;G74H9=;33F12;33;33;33;33H9=RGYCDRaVd_K_aVdPDBF12F12F12F12F12F12qC;�O<�YHqC;qC;�dK�gW�\G�r\�\G�dK�dK�gW�gN�gN�tg�|g�|gֈgؙ�ؙ�章章鷧�������pa�fX�d\�pa�pa�pa�gY�d\�[U�pa�cK�r\�r괍�{[�O<qC;qC;l<=bC;;33;33F12;33F12;33F12;8<H9=H9=CDRH9=bZwH9=qg�PDBH9=F12F12F12H9=�F;�PI�YHbC;�PI�dK�\G�r\�\G�gN�gN�\G�gN�gN�gN�rX�tg�}[Ƀ\Č�wؤ�騈鷧鷧鷧��~bC;bC;qTO�O<�\V�[U�gY�pa�r\�cK�q_����q�YHqC;qC;l<=X;>qC;;33;33F12;33G74;33;33F12H9=_K_bZwF12F1=PDBPDBF12F12F128-+F12l<=�O<�PI�O<W11�dK�dK�gW�gN�gN�r\�\G�gN�gW�gN�gN�gN�{[�|gɃ\ֈgƔ�ؤ�章鷧鷧鷧Ɯ�W2=X;>X83X;>X83bC;bC;�[U�q_�{[Ƀ\���Ƀ\�F;X;>l<=X83qC;bC;F12;33F12;33F12;33;33;33;33;8<aVdbZwPDBX;>;33F12;33;33F12W2=�O<�XI�PIX83�XI�dK�dK�dK�gW�gN�gN�gN�\G�gN�dK�r\�gN�rX�tg�|gɃ\֌ؤ�圐ٵ�鷧鷧鷧bC;qC;qC;X;>W11F12F12F12ٕoɃ\ٕo�r�YHX83X83X;>qC;bC;X;>;33;33;33F12F12H9=;33F12F12G74;33qg�aVdbSQ;33;33;33F12F12qC;�O<�YHX83bC;�[E�dK�dK�gW�\G�gN�gN�gN�gN�dK�dK�\G�r\�rX�rX�|g�}[Džj֌章章鷧鷧鷧�paqC;qTOqC;X;>X;>F12F12ٕoɋ[ٕo�dKH9=W11H9=bC;bC;X;>X;>;33F12;33;33H9=;33F12;33H9=H9=H9=RGYRGYH9=F12;33;33F12bC;�F;�O<X83bC;�O<�[E�dK�\G�gW�gN�gN�gN�gN�gN�gN�\G�r\�\G�gN�rX�tg�|gɃ\֌ؙ�ت�騈鷧鷧ت�X;>qGFqGFbC;bC;X;>g93Džjٕo�O<X;>F12X;>X83qGFX;>H9=bC;;33;33;33F12H9=F12CDRF12H9=;8<CDRPDBqg�F128-+;33;33H9=W11F12X;>�O<�PI�YH�[E�dK�gW�\G�r\�\G�gN�gN�gN�rX�gN�dK�gN�gN�rX�rX�}[Džj֌�wؤ�ت�鷧ٵ����bC;bC;qGFqGFbC;qTOqC;�YH�F;X;>g93X;>X83qGFX;>F12X;>qTO;33;33F12;33H9=;33aVd8-+RGY8-+PDBRGY_K_H9=;33;33F12W11qC;�O<�O<�YH�[E�[E�[E�dK�dK�dK�\G�gN�gN�rX�gN�gN�gN�gN�gN�rX�rX�rX�|g�}[Ƀ\ؙ�ؙ�ؤ�鷧ٵ�鷧�d\bC;qGFqGFqTO�O<�O<�F;qC;qC;qC;X83bC;X;>G74H9=qC;qTO;33H9=H9=9-5PDB;33RGYbZwF12PDBF12H9=RGYH9=;33;33W11�O<�O<�O<�PI�[E�YH�[E�dK�dK�\G�r\�\G�gN�gN�gN�gN�rX�rX�rX�rX�gN�rX�rXɃ\�}[Džj֌ؙ�ؤ�章章ٵ���oX;>bC;`FH�XJ�O<�XI�O<�XI�XIqC;`FHX;>X;>X;>qC;�\V`FHF12H9=F12CDRX;>H9=X;>_K_H9=bSQH9=H9=F12`FHPDBW11qC;�F;�O<�YH�YH�YH�YH�[E�dK�dK�dK�\G�gN�gN�gN�gN�rX�gN�rX�gN�rX�rX�rX�rX�}[�}[�|g֌ʓq؜�ؤ�章章؜�`FHbC;`FH�XJ�YH�YH�YH�dK�F;bC;W11X;>X;>bC;�XJaVdX;>F12H9=H9=_K_;33;33CDR_K_H9=bZw;33H9=F12F12W2=qC;�F;�O<�O<�YH�YH�[E�YH�[E�dK�dK�dK�\G�gN�dK�\G�gN�\G�gN�gN�rX�rX�rW�rW�|g�}[DžjɃ\֌ʓqؤ�圐ت�ٵ�ٵ�l<=�XJ�[U�q_�fX�fX�dK�O<bC;W11H9=X;>qC;qTOqGFbC;;33RGYX;>RGYbSQF12H9=PDB_K_H9=RGYH9=F12PDBH9=h10qC;�F;�O<�YH�YH�YH�YH�YH�[E�dK�\G�dK�dK�\G�gN�gN�dK�gN�dK�\G�rX�rX�rX�}[�}[�}[֌Ƀ\֌ʓqؙ�؜�ؤ�章ٵ��\VX;>�YH�gW�dK�r\�PIl<=bC;W2=W11qC;qTOX;>H9=F128-+PDBX;>_K__K_H9=RGYX;>;33H9=F12PDBH9=PDBX;>�=>�O<�O<�O<�PI�YH�[E�YH�Q>�YH�\G�gN�dK�\G�gN�gN�dK�dK�dK�\G�r\�\G�gN�rX�rX�}[�}[�}[֌Džjؙ�ؙ�圐ت�章章�r\�[U�fX�ga�q_�[VqC;bC;X83bC;qC;qC;W2=F12;33H9=qGF9-5pZ`X;>RGY_K_;33H9=H9=CDRH9=F12H9=X83W11qC;�O<�O<�YH�YH�Q>�YH�YH�[E�dK�dK�\G�gN�gN�gN�dK�\G�dK�Q>�dK�\G�gN�gN�rX�rW�rX֌�}[ֈg֌֌ؙ�ؤ�圐ت�ت�ؤ��[V�hu�fX�GEl<=l<=qC;�O<t:3X;>;33;33X;>�XJ�d\�fXH9=F12H9=PDBPDBRGYG74F12H9=F12;33H9=g93�=>�O<�O<�PI�O<�YH�YH�Q>�O<�YH�dK�\G�gN�gN�r\�\G�gN�gN�dK�YH�Q>�dK�dK�gW�rX�rX�rWɃ\�}[�}[֌֌ؙ�ؤ�圐ٵ�章ؤ�Č�fX�GE�[VqC;qC;X;>F12F12X;>qC;�XJ�gY�q_�r\��~F12;33H9=RGY`FHH9=;33X;>;33;33H9=W2=g93qC;�O<�YH�YH�YH�Q>�YH�YH�O<�dK�dK�\G�gN�gN�\G�gN�gN�gN�dK�YH�=1�dK�[E�\G�gN�gN�rX�}[�}fDžjֈg֌֌圐ت�圐章ت�ؤ�Ɯ��GEbC;�q_�PG�\V�fX�q_�{e��n��~��n��~Ɣ�騈
\ No newline at end of file