summaryrefslogtreecommitdiffstats
path: root/contrib/ppmtoansi/demo
diff options
context:
space:
mode:
authorMichael Brown2005-05-17 18:44:57 +0200
committerMichael Brown2005-05-17 18:44:57 +0200
commit1097cf8685cd81f0003bd6f17d050e5174a85b90 (patch)
tree47a39f2a1e980cca43c28c4d1a6dfdf431b910b2 /contrib/ppmtoansi/demo
parentQuickly hacked to use a buffer rather than a processor. (diff)
downloadipxe-1097cf8685cd81f0003bd6f17d050e5174a85b90.tar.gz
ipxe-1097cf8685cd81f0003bd6f17d050e5174a85b90.tar.xz
ipxe-1097cf8685cd81f0003bd6f17d050e5174a85b90.zip
Initial revision
Diffstat (limited to 'contrib/ppmtoansi/demo')
-rw-r--r--contrib/ppmtoansi/demo/dos.ansi1
-rw-r--r--contrib/ppmtoansi/demo/dos.ppm51
-rw-r--r--contrib/ppmtoansi/demo/dos.xpm29
-rw-r--r--contrib/ppmtoansi/demo/etherboot.ansibin0 -> 1005 bytes
-rw-r--r--contrib/ppmtoansi/demo/etherboot.ppm99
-rw-r--r--contrib/ppmtoansi/demo/etherboot.xpm27
-rw-r--r--contrib/ppmtoansi/demo/flash.ansi1
-rw-r--r--contrib/ppmtoansi/demo/flash.ppm35
-rw-r--r--contrib/ppmtoansi/demo/flash.xpm25
-rw-r--r--contrib/ppmtoansi/demo/floppy.ansi1
-rw-r--r--contrib/ppmtoansi/demo/floppy.ppm51
-rw-r--r--contrib/ppmtoansi/demo/floppy.xpm29
-rw-r--r--contrib/ppmtoansi/demo/hd.ansibin0 -> 213 bytes
-rw-r--r--contrib/ppmtoansi/demo/hd.ppm51
-rw-r--r--contrib/ppmtoansi/demo/hd.xpm30
-rw-r--r--contrib/ppmtoansi/demo/ibmmap.ppm11
-rw-r--r--contrib/ppmtoansi/demo/ibmmap.xpm16
-rw-r--r--contrib/ppmtoansi/demo/linux-logo.ansibin0 -> 1490 bytes
-rw-r--r--contrib/ppmtoansi/demo/linux-logo.ppm552
-rw-r--r--contrib/ppmtoansi/demo/linux-logo.xpm73
-rwxr-xr-xcontrib/ppmtoansi/demo/make-ansi.sh17
-rw-r--r--contrib/ppmtoansi/demo/text.ansibin0 -> 200 bytes
-rw-r--r--contrib/ppmtoansi/demo/text.ppm51
-rw-r--r--contrib/ppmtoansi/demo/text.xpm28
-rw-r--r--contrib/ppmtoansi/demo/x.ansi1
-rw-r--r--contrib/ppmtoansi/demo/x.ppm51
-rw-r--r--contrib/ppmtoansi/demo/x.xpm25
27 files changed, 1255 insertions, 0 deletions
diff --git a/contrib/ppmtoansi/demo/dos.ansi b/contrib/ppmtoansi/demo/dos.ansi
new file mode 100644
index 000000000..2ce5cda46
--- /dev/null
+++ b/contrib/ppmtoansi/demo/dos.ansi
@@ -0,0 +1 @@
+[9;;1- [15;;1- [18;;5-l[9;1;3-$[13;1;3-$[17;1;1-[9;2;1- [12;2;1- [15;2;1- [17;2;1-[9;3;1- [15;3;1- [18;3;5-l[9;4;1- [15;4;1- [23;4;1-[9;5;1- [15;5;1- [23;5;1-[9;6;1- [15;6;1- [18;6;5-l[8;8;4-I [14;8;4-m[19;8;5-[8;9;1-@[12;9;2-L[18;9;2-[8;10;1-@[11;10;1-`[13;10;1-@[18;10;1-[20;10;1-`[8;11;1-@[11;11;1-`[13;11;1-@[19;11;5-[8;12;1-@[11;12;1-`[13;12;1-@[20;12;1-`[24;12;1-[8;13;1-@[12;13;2-L[18;13;2-l[24;13;1-[8;14;4-I [14;14;4-m[19;14;5- \ No newline at end of file
diff --git a/contrib/ppmtoansi/demo/dos.ppm b/contrib/ppmtoansi/demo/dos.ppm
new file mode 100644
index 000000000..6efde7fa0
--- /dev/null
+++ b/contrib/ppmtoansi/demo/dos.ppm
@@ -0,0 +1,51 @@
+P3
+17 16
+65535
+0 0 0 65535 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 65535 0 0 0 0 0 0 0 0 0 65535 65535 0 65535 65535
+0 65535 65535 0 65535 65535 0 65535 65535 0 0 0 0 0 0
+0 0 0 65535 0 0 65535 0 0 65535 0 0 0 0 0 65535 0 0
+65535 0 0 65535 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 65535 0 0 0 0 0 0 0 0 65535 0 0 0 0 0
+0 0 0 65535 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 65535 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 65535 0 0 0 0 0 0 0 0 0 65535 65535 0 65535 65535
+0 65535 65535 0 65535 65535 0 65535 65535 0 0 0 0 0 0
+0 0 0 65535 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 65535 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0
+0 0 0 65535 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 65535 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0
+0 0 0 65535 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 65535 0 0 0 0 0 0 0 0 0 65535 65535 0 65535 65535
+0 65535 65535 0 65535 65535 0 65535 65535 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 0 0 0 0 0
+65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 0 0 0 65535 0 65535
+65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 0 0 0
+0 65535 0 0 0 0 0 0 0 0 0 0 0 65535 0 65535 65535 0
+0 0 0 0 0 0 0 0 0 0 0 0 65535 0 65535 65535 65535 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 65535 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 65535 0
+0 0 0 0 0 0 0 0 0 0 0 0 65535 0 65535 0 0 0
+65535 65535 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 65535 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 65535 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 0 65535
+65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 0 0 0
+0 65535 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 65535 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+65535 65535 0 0 0 0 0 0 0 0 0 0 65535 0 65535
+0 65535 0 0 0 0 0 0 0 0 0 0 0 65535 0 65535 65535 0
+0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 65535 65535 0
+0 0 0 0 0 0 0 0 0 0 0 0 65535 0 65535
+0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 0 0 0 0 0
+65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 0 0 0 65535 0 65535
+65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
diff --git a/contrib/ppmtoansi/demo/dos.xpm b/contrib/ppmtoansi/demo/dos.xpm
new file mode 100644
index 000000000..471c4edff
--- /dev/null
+++ b/contrib/ppmtoansi/demo/dos.xpm
@@ -0,0 +1,29 @@
+/* XPM */
+static char *noname[] = {
+/* width height ncolors chars_per_pixel */
+"17 16 6 1",
+/* colors */
+"` c #000000",
+"a c #00FFFF",
+"b c #00FF00",
+"c c #FF00FF",
+"d c #FF0000",
+"e c #FFFF00",
+/* pixels */
+"`d`````d``aaaaa``",
+"`ddd`ddd`a```````",
+"`d``d``d`a```````",
+"`d`````d``aaaaa``",
+"`d`````d```````a`",
+"`d`````d```````a`",
+"`d`````d``aaaaa``",
+"`````````````````",
+"bbbb``eeee`ccccc`",
+"b```be````ce`````",
+"b``e`b````c`e````",
+"b``e`b`````ccccc`",
+"b``e`b``````e```c",
+"b```be````ee````c",
+"bbbb``eeee`ccccc`",
+"`````````````````"
+};
diff --git a/contrib/ppmtoansi/demo/etherboot.ansi b/contrib/ppmtoansi/demo/etherboot.ansi
new file mode 100644
index 000000000..7975f36ce
--- /dev/null
+++ b/contrib/ppmtoansi/demo/etherboot.ansi
Binary files differ
diff --git a/contrib/ppmtoansi/demo/etherboot.ppm b/contrib/ppmtoansi/demo/etherboot.ppm
new file mode 100644
index 000000000..da5b2458c
--- /dev/null
+++ b/contrib/ppmtoansi/demo/etherboot.ppm
@@ -0,0 +1,99 @@
+P3
+32 16
+65535
+0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 65535 65535
+0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 65535 65535
+0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 65535 65535
+0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 65535 65535
+0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 65535 65535
+0 0 0 0 0 0
+0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 65535 65535
+0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 65535 65535
+0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 65535 65535
+0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 65535 65535
+0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 65535 65535
+0 0 0 0 0 0
+65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0
+65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0
+65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0
+65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0
+65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0
+65535 0 0 65535 0 0
+65535 0 0 0 0 0 0 0 0 0 65535 0 0 65535 0 0 65535 0
+0 65535 0 0 0 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0
+0 0 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 0 0
+0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 0 0
+0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 0 0 0 0 0
+0 0 0 65535 0 0
+65535 0 0 0 0 0 0 0 0 0 65535 0 0 65535 0 0 65535 0
+0 65535 0 0 0 0 0 65535 0 0 0 0 0 0 0 0 65535 0
+0 0 0 0 65535 0 0 0 0 0 0 0 0 65535 0 0 0 0
+0 0 0 0 0 0 0 65535 0 0 0 0 0 0 0 0 0 0
+0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 0 0 0 0 0
+0 0 0 65535 0 0
+65535 0 0 0 0 0 0 0 0 0 65535 0 0 0 0 0 0 0
+0 65535 0 0 0 0 0 65535 0 0 0 0 0 0 0 0 65535 0
+0 0 0 0 65535 0 0 0 0 0 0 0 0 65535 0 0 0 0
+0 0 0 0 0 0 0 65535 0 0 0 0 0 0 0 0 0 0
+0 65535 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 65535 0 0
+0 0 0 65535 0 0 0 0 0 0 65535 0 0 65535 0 0 65535 0
+0 65535 0 0 0 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0
+0 0 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 0 0
+0 0 0 0 0 0 0 65535 0 0 0 0 0 0 0 0 0 0
+0 65535 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 65535 0 0
+0 0 0 0 0 0 65535 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 65535 0 0
+0 0 0 65535 0 0 0 0 0 0 65535 0 0 65535 0 0 65535 0
+0 65535 0 0 65535 0 0 0 0 0 65535 0 0 65535 0 0 65535 0
+0 65535 0 0 0 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0
+0 65535 0 0 0 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 65535 0 0
+65535 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 0
+0 0 0 0 0 0 0 0 0 0 65535 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 65535 0 0 0 0
+0 0 0 0 0 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 65535 0 0
+65535 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 0
+0 0 0 0 0 0 0 0 0 0 65535 0 0 65535 0 0 65535 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 65535 0 0 0 0
+0 0 0 0 0 0 0 65535 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 65535 0 0
+65535 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 0
+0 0 0 0 0 0 0 0 0 0 65535 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 65535 0 0 0 0
+0 0 0 0 0 0 0 65535 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 65535 0 0
+65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0
+65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0
+65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0
+65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0
+65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0
+65535 0 0 65535 0 0
+0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 65535 65535
+0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 65535 65535
+0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 65535 65535
+0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 65535 65535
+0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 65535 65535
+0 0 0 0 0 0
+0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 65535 65535
+0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 65535 65535
+0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 65535 65535
+0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 65535 65535
+0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 65535 65535
+0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0
diff --git a/contrib/ppmtoansi/demo/etherboot.xpm b/contrib/ppmtoansi/demo/etherboot.xpm
new file mode 100644
index 000000000..d42171461
--- /dev/null
+++ b/contrib/ppmtoansi/demo/etherboot.xpm
@@ -0,0 +1,27 @@
+/* XPM */
+static char *noname[] = {
+/* width height ncolors chars_per_pixel */
+"32 16 4 1",
+/* colors */
+"` c #000000",
+"a c #00FFFF",
+"b c #00FF00",
+"c c #FF0000",
+/* pixels */
+"``a``a``a``a``a``a``a``a``a``a``",
+"``a``a``a``a``a``a``a``a``a``a``",
+"cccccccccccccccccccccccccccccccc",
+"c``bbbb`bbbb`bbbb`bbbbb`bbbb```c",
+"c``bbbb`b``b`b``b```b```bbbb```c",
+"c``b``b`b``b`b``b```b```b``````c",
+"`c`bbbb`bbbb`bbbb```b```b``````c",
+"``c````````````````````````````c",
+"`c`bbbbb`bbbb`bbbbb`bbbb```````c",
+"c````b```b``````b```bbbb```````c",
+"c````b```bbb````b```b``````````c",
+"c````b```b``````b```b``````````c",
+"cccccccccccccccccccccccccccccccc",
+"``a``a``a``a``a``a``a``a``a``a``",
+"``a``a``a``a``a``a``a``a``a``a``",
+"````````````````````````````````"
+};
diff --git a/contrib/ppmtoansi/demo/flash.ansi b/contrib/ppmtoansi/demo/flash.ansi
new file mode 100644
index 000000000..43837a78e
--- /dev/null
+++ b/contrib/ppmtoansi/demo/flash.ansi
@@ -0,0 +1 @@
+[11;;2-l[11;1;2-l[17;1;1-`[11;2;2-l[16;2;2-l[11;3;2-l[15;3;3-m[11;4;2-l[14;4;4-m[11;5;2-l[14;5;4-m[11;6;4-m[16;6;2-l[11;7;4-m[16;7;2-l[11;8;3-m[16;8;2-l[11;9;2-l[16;9;2-l[11;10;1-`[16;10;2-l[16;11;2-l[13;12;2-l[16;12;2-l[19;12;2-l[14;13;6-m[15;14;4-m[16;15;2-l \ No newline at end of file
diff --git a/contrib/ppmtoansi/demo/flash.ppm b/contrib/ppmtoansi/demo/flash.ppm
new file mode 100644
index 000000000..1464af6ef
--- /dev/null
+++ b/contrib/ppmtoansi/demo/flash.ppm
@@ -0,0 +1,35 @@
+P3
+10 16
+65535
+65535 65535 0 65535 65535 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0
+65535 65535 0 65535 65535 0 0 0 0 0 0 0 0 0 0 0 0 0
+65535 65535 0 0 0 0 0 0 0 0 0 0
+65535 65535 0 65535 65535 0 0 0 0 0 0 0 0 0 0 65535 65535 0
+65535 65535 0 0 0 0 0 0 0 0 0 0
+65535 65535 0 65535 65535 0 0 0 0 0 0 0 65535 65535 0 65535 65535 0
+65535 65535 0 0 0 0 0 0 0 0 0 0
+65535 65535 0 65535 65535 0 0 0 0 65535 65535 0 65535 65535 0 65535 65535 0
+65535 65535 0 0 0 0 0 0 0 0 0 0
+65535 65535 0 65535 65535 0 0 0 0 65535 65535 0 65535 65535 0 65535 65535 0
+65535 65535 0 0 0 0 0 0 0 0 0 0
+65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 0 0 0 65535 65535 0
+65535 65535 0 0 0 0 0 0 0 0 0 0
+65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 0 0 0 65535 65535 0
+65535 65535 0 0 0 0 0 0 0 0 0 0
+65535 65535 0 65535 65535 0 65535 65535 0 0 0 0 0 0 0 65535 65535 0
+65535 65535 0 0 0 0 0 0 0 0 0 0
+65535 65535 0 65535 65535 0 0 0 0 0 0 0 0 0 0 65535 65535 0
+65535 65535 0 0 0 0 0 0 0 0 0 0
+65535 65535 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0
+65535 65535 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0
+65535 65535 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 65535 65535 0 65535 65535 0 0 0 0 65535 65535 0
+65535 65535 0 0 0 0 65535 65535 0 65535 65535 0
+0 0 0 0 0 0 0 0 0 65535 65535 0 65535 65535 0 65535 65535 0
+65535 65535 0 65535 65535 0 65535 65535 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 65535 65535 0
+65535 65535 0 65535 65535 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0
+65535 65535 0 0 0 0 0 0 0 0 0 0
diff --git a/contrib/ppmtoansi/demo/flash.xpm b/contrib/ppmtoansi/demo/flash.xpm
new file mode 100644
index 000000000..25419d706
--- /dev/null
+++ b/contrib/ppmtoansi/demo/flash.xpm
@@ -0,0 +1,25 @@
+/* XPM */
+static char *noname[] = {
+/* width height ncolors chars_per_pixel */
+"10 16 2 1",
+/* colors */
+" c #000000",
+"x c #FFFF00",
+/* pixels */
+"xx ",
+"xx x ",
+"xx xx ",
+"xx xxx ",
+"xx xxxx ",
+"xx xxxx ",
+"xxxx xx ",
+"xxxx xx ",
+"xxx xx ",
+"xx xx ",
+"x xx ",
+" xx ",
+" xx xx xx",
+" xxxxxx ",
+" xxxx ",
+" xx ",
+};
diff --git a/contrib/ppmtoansi/demo/floppy.ansi b/contrib/ppmtoansi/demo/floppy.ansi
new file mode 100644
index 000000000..f4267f409
--- /dev/null
+++ b/contrib/ppmtoansi/demo/floppy.ansi
@@ -0,0 +1 @@
+[9;;14-%m@[8;1;16-$[l[8;2;17-$[l [8;3;17-$[l [8;4;17-$m [8;5;17;1+[8;6;17;1+[8;7;17-$m [8;8;17-$mۉ [8;9;17-$m [8;10;17-$mۉ [8;11;17-$m [8;12;17-$mۉ [8;13;17-2mm [8;14;17-2kmۤ [9;15;15-'mlH \ No newline at end of file
diff --git a/contrib/ppmtoansi/demo/floppy.ppm b/contrib/ppmtoansi/demo/floppy.ppm
new file mode 100644
index 000000000..2b0b28633
--- /dev/null
+++ b/contrib/ppmtoansi/demo/floppy.ppm
@@ -0,0 +1,51 @@
+P3
+17 16
+65535
+0 0 0 65535 0 0 65535 0 0 65535 65535 0 65535 0 0 65535 0 0
+65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0
+65535 65535 0 65535 65535 0 65535 0 0 0 0 0 0 0 0
+65535 0 0 65535 0 0 65535 0 0 65535 65535 0 65535 0 0 65535 0 0
+65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 0 0 65535 0 0
+65535 0 0 65535 65535 0 65535 0 0 65535 0 0 0 0 0
+65535 0 0 65535 0 0 65535 0 0 65535 65535 0 65535 0 0 65535 0 0
+65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 0 0 65535 0 0
+65535 0 0 65535 65535 0 65535 0 0 65535 0 0 65535 0 0
+65535 0 0 65535 0 0 65535 0 0 65535 65535 0 65535 0 0 65535 0 0
+65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 0 0 65535 0 0
+65535 0 0 65535 65535 0 65535 0 0 65535 0 0 65535 0 0
+65535 0 0 65535 0 0 65535 0 0 65535 65535 0 65535 65535 0 65535 65535 0
+65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0
+65535 65535 0 65535 65535 0 65535 0 0 65535 0 0 65535 0 0
+65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0
+65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0
+65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0
+65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0
+65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0
+65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0
+65535 0 0 65535 0 0 65535 0 0 0 65535 65535 0 65535 65535 0 65535 65535
+0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535
+0 65535 65535 0 65535 65535 65535 0 0 65535 0 0 65535 0 0
+65535 0 0 65535 0 0 65535 0 0 0 65535 65535 65535 0 65535 65535 0 65535
+65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535
+65535 0 65535 0 65535 65535 65535 0 0 65535 0 0 65535 0 0
+65535 0 0 65535 0 0 65535 0 0 0 65535 65535 0 65535 65535 0 65535 65535
+0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535
+0 65535 65535 0 65535 65535 65535 0 0 65535 0 0 65535 0 0
+65535 0 0 65535 0 0 65535 0 0 0 65535 65535 65535 0 65535 65535 0 65535
+65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535
+65535 0 65535 0 65535 65535 65535 0 0 65535 0 0 65535 0 0
+65535 0 0 65535 0 0 65535 0 0 0 65535 65535 0 65535 65535 0 65535 65535
+0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535
+0 65535 65535 0 65535 65535 65535 0 0 65535 0 0 65535 0 0
+65535 0 0 65535 0 0 65535 0 0 0 65535 65535 65535 0 65535 65535 0 65535
+65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535
+65535 0 65535 0 65535 65535 65535 0 0 65535 0 0 65535 0 0
+65535 0 0 0 0 65535 0 0 65535 0 65535 65535 0 65535 65535 0 65535 65535
+0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535
+0 65535 65535 0 65535 65535 0 0 65535 0 0 65535 65535 0 0
+65535 0 0 0 0 65535 0 0 65535 0 65535 65535 65535 0 65535 65535 0 65535
+65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535
+65535 0 65535 0 65535 65535 0 0 65535 0 0 65535 65535 0 0
+0 0 0 65535 0 0 65535 0 0 0 65535 65535 0 65535 65535 0 65535 65535
+0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535
+0 65535 65535 0 65535 65535 65535 0 0 65535 0 0 0 0 0
diff --git a/contrib/ppmtoansi/demo/floppy.xpm b/contrib/ppmtoansi/demo/floppy.xpm
new file mode 100644
index 000000000..8bb60d293
--- /dev/null
+++ b/contrib/ppmtoansi/demo/floppy.xpm
@@ -0,0 +1,29 @@
+/* XPM */
+static char *noname[] = {
+/* width height ncolors chars_per_pixel */
+"17 16 6 1",
+/* colors */
+"` c #000000",
+"a c #00FFFF",
+"b c #FF00FF",
+"c c #FF0000",
+"d c #FFFF00",
+"e c #0000FF",
+/* pixels */
+"`ccdccddddddddc``",
+"cccdccddddcccdcc`",
+"cccdccddddcccdccc",
+"cccdccddddcccdccc",
+"cccdddddddddddccc",
+"ccccccccccccccccc",
+"ccccccccccccccccc",
+"cccaaaaaaaaaaaccc",
+"cccabbbbbbbbbaccc",
+"cccaaaaaaaaaaaccc",
+"cccabbbbbbbbbaccc",
+"cccaaaaaaaaaaaccc",
+"cccabbbbbbbbbaccc",
+"ceeaaaaaaaaaaaeec",
+"ceeabbbbbbbbbaeec",
+"`ccaaaaaaaaaaacc`"
+};
diff --git a/contrib/ppmtoansi/demo/hd.ansi b/contrib/ppmtoansi/demo/hd.ansi
new file mode 100644
index 000000000..33bda53c5
--- /dev/null
+++ b/contrib/ppmtoansi/demo/hd.ansi
Binary files differ
diff --git a/contrib/ppmtoansi/demo/hd.ppm b/contrib/ppmtoansi/demo/hd.ppm
new file mode 100644
index 000000000..34878bf9f
--- /dev/null
+++ b/contrib/ppmtoansi/demo/hd.ppm
@@ -0,0 +1,51 @@
+P3
+17 16
+65535
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0
+65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0
+65535 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+65535 0 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0
+0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0
+65535 0 0 65535 0 0 65535 0 0 0 0 0 0 0 0
+65535 0 0 0 65535 0 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535
+0 65535 0 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 0 65535 0
+65535 0 0 65535 65535 0 65535 65535 0 65535 0 0 0 0 0
+65535 0 0 0 65535 0 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535
+0 65535 0 65535 0 65535 0 65535 0 0 65535 0 0 65535 0 0 65535 0
+65535 0 0 65535 65535 0 65535 65535 0 65535 0 0 0 0 0
+65535 0 0 0 65535 0 65535 0 65535 0 65535 0 0 65535 0 0 65535 0
+0 65535 0 65535 0 65535 0 65535 0 0 65535 0 0 65535 0 0 65535 0
+65535 0 0 65535 65535 0 65535 65535 0 65535 0 0 0 0 0
+65535 0 0 0 65535 0 65535 0 65535 0 65535 0 0 65535 0 0 65535 0
+0 65535 0 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 0 65535 0
+65535 0 0 65535 65535 0 65535 0 0 0 0 0 0 0 0
+65535 0 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0
+0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0
+65535 0 0 65535 0 0 0 0 65535 0 0 65535 0 0 65535
+65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0
+65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0
+65535 0 0 0 65535 65535 0 65535 65535 0 0 65535 0 0 65535
+0 0 0 0 0 65535 0 65535 65535 65535 0 0 65535 0 0 65535 0 0
+65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 0 65535 65535
+0 65535 65535 0 65535 65535 0 0 65535 0 65535 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 65535 65535 0 65535 65535 0 0 65535
+0 0 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535
+0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535
+0 65535 65535 0 0 65535 0 65535 65535 0 65535 65535 0 0 65535
+0 0 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535
+0 65535 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 65535 65535 0 0 65535 0 65535 65535 0 0 65535 0 0 0
+0 0 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535
+0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535
+0 65535 65535 0 0 65535 0 0 65535 0 0 0 0 0 0
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
diff --git a/contrib/ppmtoansi/demo/hd.xpm b/contrib/ppmtoansi/demo/hd.xpm
new file mode 100644
index 000000000..280c7abcb
--- /dev/null
+++ b/contrib/ppmtoansi/demo/hd.xpm
@@ -0,0 +1,30 @@
+/* XPM */
+static char *noname[] = {
+/* width height ncolors chars_per_pixel */
+"17 16 7 1",
+/* colors */
+"` c #000000",
+"a c #00FFFF",
+"b c #00FF00",
+"c c #FF00FF",
+"d c #FF0000",
+"e c #FFFF00",
+"f c #0000FF",
+/* pixels */
+"`````````````````",
+"ddddddddddddd````",
+"dbbbbbbbbbbbddd``",
+"dbccccbccccbdeed`",
+"dbccccbcbbbbdeed`",
+"dbcbbbbcbbbbdeed`",
+"dbcbbbbccccbded``",
+"dbbbbbbbbbbbddfff",
+"dddddddddddddaaff",
+"`faddddddddaaafaf",
+"ffffffffffffffaaf",
+"faaaaaaaaaaaafaaf",
+"faaaaaafffffafaf`",
+"faaaaaaaaaaaaff``",
+"ffffffffffffff```",
+"`````````````````"
+};
diff --git a/contrib/ppmtoansi/demo/ibmmap.ppm b/contrib/ppmtoansi/demo/ibmmap.ppm
new file mode 100644
index 000000000..648676e48
--- /dev/null
+++ b/contrib/ppmtoansi/demo/ibmmap.ppm
@@ -0,0 +1,11 @@
+P3
+8 1
+255
+ 0 0 0
+255 0 0
+ 0 255 0
+ 0 0 255
+255 255 0
+255 0 255
+ 0 255 255
+255 255 255
diff --git a/contrib/ppmtoansi/demo/ibmmap.xpm b/contrib/ppmtoansi/demo/ibmmap.xpm
new file mode 100644
index 000000000..06d4d990c
--- /dev/null
+++ b/contrib/ppmtoansi/demo/ibmmap.xpm
@@ -0,0 +1,16 @@
+/* XPM */
+static char *noname[] = {
+/* width height ncolors chars_per_pixel */
+"8 1 8 1",
+/* colors */
+"` c #000000",
+"a c #00FFFF",
+"b c #00FF00",
+"c c #FF00FF",
+"d c #FF0000",
+"e c #FFFFFF",
+"f c #FFFF00",
+"g c #0000FF",
+/* pixels */
+"`dbgfcae"
+};
diff --git a/contrib/ppmtoansi/demo/linux-logo.ansi b/contrib/ppmtoansi/demo/linux-logo.ansi
new file mode 100644
index 000000000..165f834b2
--- /dev/null
+++ b/contrib/ppmtoansi/demo/linux-logo.ansi
Binary files differ
diff --git a/contrib/ppmtoansi/demo/linux-logo.ppm b/contrib/ppmtoansi/demo/linux-logo.ppm
new file mode 100644
index 000000000..18604b445
--- /dev/null
+++ b/contrib/ppmtoansi/demo/linux-logo.ppm
@@ -0,0 +1,552 @@
+P3
+52 61
+65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 0
+0 0 0 65535 65535 65535 65535 65535 65535 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 0
+0 0 0 65535 65535 65535 65535 65535 65535 65535 65535 65535 0 0 0 0 0 0
+0 0 0 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 0
+65535 65535 65535 0 0 0 0 0 0 65535 65535 65535 0 0 0 0 0 0
+0 0 0 65535 65535 65535 65535 65535 65535 0 0 0 0 0 0 65535 65535 65535
+65535 65535 65535 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 0
+65535 65535 65535 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 65535 65535 65535 0 0 0 0 0 0 0 0 0 0 0 0
+65535 65535 65535 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 65535 65535 0
+65535 65535 0 65535 65535 0 0 0 0 0 0 0 0 0 0 0 0 0
+65535 65535 65535 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 0
+0 0 0 65535 65535 65535 0 0 0 65535 65535 0 65535 65535 0 65535 65535 0
+65535 65535 0 65535 65535 0 65535 65535 0 65535 0 0 0 0 0 65535 65535 65535
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 0
+0 0 0 65535 0 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0
+65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 0
+0 0 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0
+65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0
+65535 65535 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 0
+0 0 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0
+65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0
+65535 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 0
+0 0 0 0 0 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0
+65535 65535 0 65535 65535 0 65535 0 0 65535 65535 0 65535 65535 0 65535 65535 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 0
+0 0 0 65535 65535 65535 65535 0 0 65535 65535 0 65535 65535 0 65535 65535 0
+65535 0 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 65535
+65535 65535 65535 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 0
+0 0 0 65535 65535 65535 65535 65535 65535 65535 0 0 65535 65535 0 65535 65535 0
+65535 65535 0 65535 0 0 65535 65535 0 65535 65535 65535 65535 65535 65535 65535 65535 65535
+65535 65535 65535 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 0
+0 0 0 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 0 0 65535 0 0
+65535 65535 0 65535 65535 0 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535
+65535 65535 65535 65535 65535 65535 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 0 0 0 0
+0 0 0 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535
+65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535
+65535 65535 65535 65535 65535 65535 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 0 0 0 0 0 0 0
+65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535
+65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535
+65535 65535 65535 65535 65535 65535 65535 65535 65535 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 0 0 0 0 0 0 0 65535 65535 65535
+65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535
+65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535
+65535 65535 65535 65535 65535 65535 65535 65535 65535 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 0 0 0 0 0 0 0 65535 65535 65535
+65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535
+65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535
+65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 0 0 0 0 0 0 0 65535 65535 65535 65535 65535 65535
+65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535
+65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535
+65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 65535 65535 65535 65535
+65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535
+65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535
+65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 65535 65535 65535 65535
+65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535
+65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535
+65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 0
+0 0 0 0 0 0 0 0 0 65535 65535 65535 65535 65535 65535 65535 65535 65535
+65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535
+65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535
+65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 0
+0 0 0 0 0 0 0 0 0 65535 65535 65535 65535 65535 65535 65535 65535 65535
+65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535
+65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535
+65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 0
+0 0 0 0 0 0 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535
+65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535
+65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535
+65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 0 0 0 0
+0 0 0 0 0 0 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535
+65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535
+65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535
+65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535
+65535 65535 65535 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 0 0 0 0
+0 0 0 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535
+65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535
+65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535
+65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535
+65535 65535 65535 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 0 0 0 0 0 0 0
+0 0 0 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535
+65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535
+65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535
+65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535
+65535 65535 65535 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 0 0 0 0 0 0 0
+0 0 0 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535
+65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535
+65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535
+65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535
+65535 65535 65535 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 0 0 0 0 0 0 0
+65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535
+65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535
+65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535
+65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535
+65535 65535 65535 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 0 0 0 0 0 0 0 0 0 0
+65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535
+65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535
+65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535
+65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535
+65535 65535 65535 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535
+65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535
+65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535
+65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535
+65535 65535 65535 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535
+65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535
+65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535
+65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535
+65535 65535 65535 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535
+65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535
+65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535
+65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535
+65535 65535 65535 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0
+65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535
+65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535
+65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535
+65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535
+65535 65535 65535 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 0 0 0
+0 0 0 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535
+65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535
+65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535
+65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 0
+65535 65535 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0
+0 0 0 0 0 0 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535
+65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535
+65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535
+65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 0 65535 65535 0
+65535 65535 0 65535 65535 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0
+65535 65535 0 0 0 0 0 0 0 65535 65535 65535 65535 65535 65535 65535 65535 65535
+65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535
+65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535
+65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 0 65535 65535 0
+65535 65535 0 65535 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 65535 65535 0 65535 65535 0 65535 0 0 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 65535 65535 0
+65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0
+65535 65535 0 65535 0 0 0 0 0 0 0 0 65535 65535 65535 65535 65535 65535
+65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535
+65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535
+65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 0 65535 65535 0
+65535 65535 0 65535 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 0 0 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 65535 0 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0
+65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0
+65535 65535 0 65535 65535 0 0 0 0 0 0 0 0 0 0 65535 65535 65535
+65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535
+65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535
+65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 0 65535 65535 0
+65535 65535 0 65535 65535 0 65535 0 0 65535 0 0 0 0 0 65535 0 0
+65535 0 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535
+65535 0 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0
+65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0
+65535 65535 0 65535 65535 0 65535 65535 0 0 0 0 0 0 0 0 0 0
+0 0 0 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535
+65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535
+65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 0 65535 65535 0
+65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0
+65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 0 0
+0 0 65535 0 0 65535 0 0 65535 0 0 65535
+65535 0 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0
+65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0
+65535 65535 0 65535 65535 0 65535 65535 0 0 0 0 0 0 0 0 0 0
+0 0 0 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535
+65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535
+65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 0 65535 65535 0
+65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0
+65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0
+0 0 65535 0 0 65535 0 0 65535 0 0 65535
+65535 0 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0
+65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0
+65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 0 0 0 0 0 0
+0 0 0 0 0 0 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535
+65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535
+65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 0 0 65535 65535 0
+65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0
+65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0
+65535 65535 0 65535 0 0 0 0 65535 0 0 65535
+0 0 65535 65535 0 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0
+65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0
+65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 0 0 0
+0 0 0 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535
+65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535
+65535 65535 65535 65535 65535 65535 65535 65535 65535 0 0 0 0 0 0 65535 65535 0
+65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0
+65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0
+65535 65535 0 65535 65535 0 65535 65535 0 0 0 65535
+0 0 65535 65535 0 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0
+65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0
+65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0
+65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535
+65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535
+65535 65535 65535 65535 65535 65535 0 0 0 0 0 0 65535 0 0 65535 65535 0
+65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0
+65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0
+65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0
+65535 0 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0
+65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0
+65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0
+65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535
+65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535
+65535 65535 65535 0 0 0 0 0 0 0 0 0 65535 0 0 65535 65535 0
+65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0
+65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0
+65535 65535 0 65535 65535 0 65535 65535 0 0 0 65535
+65535 0 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0
+65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0
+65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0
+65535 0 0 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535
+65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 65535 0 0 65535 65535 0
+65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0
+65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0
+65535 65535 0 65535 0 0 0 0 65535 0 0 65535
+0 0 65535 65535 0 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0
+65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0
+65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0
+65535 0 0 0 0 0 0 0 0 65535 65535 65535 65535 65535 65535 65535 65535 65535
+65535 65535 65535 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 65535 0 0 65535 65535 0
+65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0
+65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0
+0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 65535 0 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0
+65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0
+65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0
+65535 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 65535 0 0 65535 65535 0
+65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0
+65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 0 0 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 65535 0 0 65535 0 0 65535 65535 0 65535 65535 0
+65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0
+65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0
+65535 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 65535 0 0 65535 65535 0
+65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0
+65535 65535 0 65535 65535 0 65535 0 0 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 65535 0 65535 65535 0
+65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 0 0
+0 0 65535 0 0 65535 0 0 65535 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 65535 0 0 65535 0 0 65535 65535 0 0
+65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0
+65535 0 0 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 65535 0 0 65535 0 0
+65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 65535 0 0
+65535 0 0 65535 0 0 65535 65535 0 65535 0 0 65535 0 0 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 65535 0 0 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+65535 0 0 65535 0 0 65535 0 0 65535 0 0 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 65535
diff --git a/contrib/ppmtoansi/demo/linux-logo.xpm b/contrib/ppmtoansi/demo/linux-logo.xpm
new file mode 100644
index 000000000..fd2dd671a
--- /dev/null
+++ b/contrib/ppmtoansi/demo/linux-logo.xpm
@@ -0,0 +1,73 @@
+/* XPM */
+static char *noname[] = {
+/* width height ncolors chars_per_pixel */
+"52 61 5 1",
+/* colors */
+"` c #000000",
+"a c #FF0000",
+"b c #FFFFFF",
+"c c #FFFF00",
+"d c #0000FF",
+/* pixels */
+"dddddddddddddddddddddd```````ddddddddddddddddddddddd",
+"dddddddddddddddddddd```````````ddddddddddddddddddddd",
+"ddddddddddddddddddd`````````````dddddddddddddddddddd",
+"dddddddddddddddddd```````````````ddddddddddddddddddd",
+"ddddddddddddddddd`````````````````dddddddddddddddddd",
+"ddddddddddddddddd`````````````````dddddddddddddddddd",
+"ddddddddddddddddd``````````````````ddddddddddddddddd",
+"ddddddddddddddddd``````````````````ddddddddddddddddd",
+"ddddddddddddddddd``````````````````ddddddddddddddddd",
+"ddddddddddddddddd``bb`````bbbb`````ddddddddddddddddd",
+"ddddddddddddddddd``bbb```bbbbb`````ddddddddddddddddd",
+"ddddddddddddddddd`b``b```bb``bb````ddddddddddddddddd",
+"ddddddddddddddddd`b``````b````b````ddddddddddddddddd",
+"ddddddddddddddddd`````cccc````b````ddddddddddddddddd",
+"ddddddddddddddddd``b`cccccca`b``````dddddddddddddddd",
+"ddddddddddddddddd``acccccccccc``````dddddddddddddddd",
+"ddddddddddddddddd``cccccccccccc`````dddddddddddddddd",
+"ddddddddddddddddd``ccccccccccca`````dddddddddddddddd",
+"ddddddddddddddddd```ccccccaccc``````dddddddddddddddd",
+"ddddddddddddddddd``bacccaccccbb``````ddddddddddddddd",
+"ddddddddddddddddd``bbacccacbbbb```````dddddddddddddd",
+"ddddddddddddddddd``bbbaaccbbbbbb``````dddddddddddddd",
+"dddddddddddddddd```bbbbbbbbbbbbb```````ddddddddddddd",
+"ddddddddddddddd```bbbbbbbbbbbbbbb``````ddddddddddddd",
+"dddddddddddddd```bbbbbbbbbbbbbbbb```````dddddddddddd",
+"dddddddddddddd```bbbbbbbbbbbbbbbbb```````ddddddddddd",
+"ddddddddddddd```bbbbbbbbbbbbbbbbbb````````dddddddddd",
+"dddddddddddd````bbbbbbbbbbbbbbbbbb````````dddddddddd",
+"dddddddddddd````bbbbbbbbbbbbbbbbbbb````````ddddddddd",
+"ddddddddddd````bbbbbbbbbbbbbbbbbbbb`````````dddddddd",
+"ddddddddddd````bbbbbbbbbbbbbbbbbbbbb````````dddddddd",
+"ddddddddddd```bbbbbbbbbbbbbbbbbbbbbb````````dddddddd",
+"dddddddddd````bbbbbbbbbbbbbbbbbbbbbbb````````ddddddd",
+"dddddddddd```bbbbbbbbbbbbbbbbbbbbbbbb````````ddddddd",
+"ddddddddd````bbbbbbbbbbbbbbbbbbbbbbbb````````ddddddd",
+"ddddddddd````bbbbbbbbbbbbbbbbbbbbbbbb`````````dddddd",
+"ddddddddd```bbbbbbbbbbbbbbbbbbbbbbbbb`````````dddddd",
+"dddddddd````bbbbbbbbbbbbbbbbbbbbbbbbb`````````dddddd",
+"ddddddd`````bbbbbbbbbbbbbbbbbbbbbbbbb`````````dddddd",
+"ddddddd`````bbbbbbbbbbbbbbbbbbbbbbbbb`````````dddddd",
+"ddddddd`````bbbbbbbbbbbbbbbbbbbbbbbbb`````````dddddd",
+"ddddddd``c``bbbbbbbbbbbbbbbbbbbbbbbbb`````````dddddd",
+"dddddddcccc``bbbbbbbbbbbbbbbbbbbbbbcc`````````dddddd",
+"dddddddccccc``bbbbbbbbbbbbbbbbbbbbcccc```````cdddddd",
+"ddddddccccccc``bbbbbbbbbbbbbbbbbbbccca``````ccaddddd",
+"dddddcccccccca``bbbbbbbbbbbbbbbbbbccca`````cccaddddd",
+"dacccccccccccc```bbbbbbbbbbbbbbbbbccccaa`aaccccddddd",
+"acccccccccccccc````bbbbbbbbbbbbbbbcccccccccccccadddd",
+"acccccccccccccc````bbbbbbbbbbbbbbbccccccccccccccdddd",
+"accccccccccccccc````bbbbbbbbbbbbbbaccccccccccccccadd",
+"daccccccccccccccc``bbbbbbbbbbbbbb``ccccccccccccccccd",
+"daccccccccccccccccbbbbbbbbbbbbbb``accccccccccccccccc",
+"acccccccccccccccccbbbbbbbbbbbbb```accccccccccccccccd",
+"acccccccccccccccccabbbbbbbbbb`````accccccccccccccadd",
+"dacccccccccccccccca``bbbb`````````acccccccccccccdddd",
+"dacccccccccccccccca```````````````acccccccccccaddddd",
+"ddaacccccccccccccca```````````````acccccccccaddddddd",
+"ddddddaaaacccccccaddd```````````dddaccccccaddddddddd",
+"ddddddddddaaaaaaaddddddddddddddddddaaacaaddddddddddd",
+"ddddddddddddddadddddddddddddddddddddaaaadddddddddddd",
+"dddddddddddddddddddddddddddddddddddddddddddddddddddd"
+};
diff --git a/contrib/ppmtoansi/demo/make-ansi.sh b/contrib/ppmtoansi/demo/make-ansi.sh
new file mode 100755
index 000000000..16d7b98d9
--- /dev/null
+++ b/contrib/ppmtoansi/demo/make-ansi.sh
@@ -0,0 +1,17 @@
+#!/bin/sh
+xpmtoppm <linux-logo.xpm >linux-logo.ppm
+../ppmtoansi -b 0/0/255 -y 10 -t 0/0/0:4 linux-logo.ppm >linux-logo.ansi
+xpmtoppm <etherboot.xpm >etherboot.ppm
+../ppmtoansi -b 0/0/0 etherboot.ppm >etherboot.ansi
+xpmtoppm <text.xpm >text.ppm
+../ppmtoansi -b 0/0/0 -x 10 text.ppm >text.ansi
+xpmtoppm <x.xpm >x.ppm
+../ppmtoansi -b 0/0/0 -x 8 x.ppm >x.ansi
+xpmtoppm <dos.xpm >dos.ppm
+../ppmtoansi -b 0/0/0 -x 8 dos.ppm >dos.ansi
+xpmtoppm <hd.xpm >hd.ppm
+../ppmtoansi -b 0/0/0 -x 8 hd.ppm >hd.ansi
+xpmtoppm <floppy.xpm >floppy.ppm
+../ppmtoansi -b 0/0/0 -x 8 floppy.ppm >floppy.ansi
+xpmtoppm <flash.xpm >flash.ppm
+../ppmtoansi -b 0/0/0 -x 11 flash.ppm >flash.ansi
diff --git a/contrib/ppmtoansi/demo/text.ansi b/contrib/ppmtoansi/demo/text.ansi
new file mode 100644
index 000000000..bbe7998a5
--- /dev/null
+++ b/contrib/ppmtoansi/demo/text.ansi
Binary files differ
diff --git a/contrib/ppmtoansi/demo/text.ppm b/contrib/ppmtoansi/demo/text.ppm
new file mode 100644
index 000000000..c6f87610e
--- /dev/null
+++ b/contrib/ppmtoansi/demo/text.ppm
@@ -0,0 +1,51 @@
+P3
+13 16
+65535
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535
+0 0 65535 0 0 65535 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 0 0 65535
+0 0 65535 0 0 65535 0 0 65535 0 0 0 0 0 0 0 0 0
+0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 65535 65535
+0 0 65535 65535 65535 65535 0 0 65535 0 0 0 0 0 0 0 0 0
+0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 65535 0
+65535 65535 0 0 0 65535 0 0 65535 0 0 0 0 0 0 0 0 0
+0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 65535 0
+65535 65535 0 65535 0 0 0 0 65535 0 0 0 0 0 0 0 0 0
+0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 65535
+65535 65535 65535 65535 65535 65535 0 0 65535 0 0 65535 0 0 0 0 0 0
+0 0 0
+0 0 0 0 0 0 0 0 0 0 0 65535 65535 65535 65535 65535 65535 65535
+65535 65535 65535 65535 65535 65535 0 0 65535 0 0 65535 0 0 0 0 0 0
+0 0 0
+0 0 0 0 0 0 0 0 0 0 0 65535 65535 65535 65535 65535 65535 65535
+65535 65535 65535 65535 65535 65535 65535 65535 65535 0 0 65535 0 0 65535 0 0 0
+0 0 0
+0 0 0 0 0 0 0 0 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535
+65535 65535 65535 65535 65535 65535 65535 65535 65535 0 0 65535 0 0 65535 0 0 0
+0 0 0
+0 0 0 0 0 0 0 0 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535
+65535 65535 65535 65535 65535 65535 65535 65535 65535 0 0 65535 0 0 65535 0 0 65535
+0 0 0
+0 0 0 0 0 0 65535 0 0 65535 65535 65535 65535 65535 65535 65535 65535 65535
+65535 65535 65535 65535 65535 65535 65535 65535 65535 0 0 65535 0 0 65535 0 0 0
+0 0 0
+0 0 0 65535 65535 0 65535 65535 0 65535 0 0 65535 65535 65535 65535 65535 65535
+65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 0 0 0 0 65535 65535 65535 0
+0 0 0
+65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 65535 65535 65535 65535
+65535 65535 65535 65535 65535 65535 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0
+65535 0 0
+65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 65535
+65535 65535 65535 65535 65535 65535 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0
+0 0 0
+0 0 0 0 0 0 0 0 0 65535 0 0 65535 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 65535 0 0 65535 0 0 0 0 0
+0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0
diff --git a/contrib/ppmtoansi/demo/text.xpm b/contrib/ppmtoansi/demo/text.xpm
new file mode 100644
index 000000000..5261b9627
--- /dev/null
+++ b/contrib/ppmtoansi/demo/text.xpm
@@ -0,0 +1,28 @@
+/* XPM */
+static char *noname[] = {
+/* width height ncolors chars_per_pixel */
+"13 16 5 1",
+/* colors */
+"` c #000000",
+"a c #FF0000",
+"b c #FFFFFF",
+"c c #FFFF00",
+"d c #0000FF",
+/* pixels */
+"`````ddd`````",
+"````ddddd````",
+"````dbdbd````",
+"````dccdd````",
+"````dccad````",
+"`````bbbdd```",
+"```dbbbbdd```",
+"```dbbbbbdd``",
+"``dbbbbbbdd``",
+"``dbbbbbbddd`",
+"``abbbbbbdd``",
+"`ccabbbbbadc`",
+"ccccbbbbcccca",
+"cccccbbbcccc`",
+"```aa````aa``",
+"`````````````"
+};
diff --git a/contrib/ppmtoansi/demo/x.ansi b/contrib/ppmtoansi/demo/x.ansi
new file mode 100644
index 000000000..e2844b347
--- /dev/null
+++ b/contrib/ppmtoansi/demo/x.ansi
@@ -0,0 +1 @@
+[8;1;4-$[23;1;1- [9;2;4-$[22;2;1- [10;3;4-$[21;3;1- [11;4;4-$[20;4;1- [12;5;4-$[19;5;1- [13;6;4-$[18;6;1- [14;7;2-$[17;7;2-$[14;8;1- [16;8;4-$[13;9;1- [17;9;4-$[12;10;1- [18;10;4-$[11;11;1- [19;11;4-$[10;12;1- [20;12;4-$[9;13;1- [21;13;4-$ \ No newline at end of file
diff --git a/contrib/ppmtoansi/demo/x.ppm b/contrib/ppmtoansi/demo/x.ppm
new file mode 100644
index 000000000..53e5bcfc1
--- /dev/null
+++ b/contrib/ppmtoansi/demo/x.ppm
@@ -0,0 +1,51 @@
+P3
+17 16
+65535
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+65535 0 0 65535 0 0 65535 0 0 65535 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 65535 0 0 0 0 0
+0 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 65535 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 65535 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 65535 0 0 65535 0 0 65535 0 0
+65535 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+65535 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 65535 0 0 65535 0 0
+65535 0 0 65535 0 0 0 0 0 0 0 0 0 0 0 65535 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 0 0
+65535 0 0 65535 0 0 65535 0 0 0 0 0 65535 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+65535 0 0 65535 0 0 0 0 0 65535 0 0 65535 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+65535 0 0 0 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 0 0
+0 0 0 0 0 0 0 0 0 65535 0 0 65535 0 0 65535 0 0
+65535 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 65535 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 65535 0 0 65535 0 0
+65535 0 0 65535 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 65535 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 0 0
+65535 0 0 65535 0 0 65535 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 65535 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+65535 0 0 65535 0 0 65535 0 0 65535 0 0 0 0 0
+0 0 0 65535 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
diff --git a/contrib/ppmtoansi/demo/x.xpm b/contrib/ppmtoansi/demo/x.xpm
new file mode 100644
index 000000000..d06952700
--- /dev/null
+++ b/contrib/ppmtoansi/demo/x.xpm
@@ -0,0 +1,25 @@
+/* XPM */
+static char *noname[] = {
+/* width height ncolors chars_per_pixel */
+"17 16 2 1",
+/* colors */
+"` c #000000",
+"a c #FF0000",
+/* pixels */
+"`````````````````",
+"aaaa```````````a`",
+"`aaaa`````````a``",
+"``aaaa```````a```",
+"```aaaa`````a````",
+"````aaaa```a`````",
+"`````aaaa`a``````",
+"``````aa`aa``````",
+"``````a`aaaa`````",
+"`````a```aaaa````",
+"````a`````aaaa```",
+"```a```````aaaa``",
+"``a`````````aaaa`",
+"`a```````````aaaa",
+"`````````````````",
+"`````````````````"
+};