Spinning dna graphics demo for the Gameduino

Dependencies:   Gameduino mbed

Files at this revision

API Documentation at this revision

Comitter:
TheChrisyd
Date:
Fri Dec 21 14:08:13 2012 +0000
Commit message:
Working version - a few glitches on the bottom of the screen

Changed in this revision

Gameduino.lib Show annotated file Show diff for this revision Revisions of this file
dna.h Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
shield.h Show annotated file Show diff for this revision Revisions of this file
diff -r 000000000000 -r 87bd6fb28ffb Gameduino.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Gameduino.lib	Fri Dec 21 14:08:13 2012 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/TheChrisyd/code/Gameduino/#84c1ca3e1be0
diff -r 000000000000 -r 87bd6fb28ffb dna.h
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dna.h	Fri Dec 21 14:08:13 2012 +0000
@@ -0,0 +1,1351 @@
+#define SPHERE_FRAMES 64
+static void draw_sphere(int x, int y, byte anim, byte rot, byte jk = 0) {
+  switch (anim) {
+  case 0:
+{
+    static PROGMEM sprplot sp[] = {{-8, -8, 0, 4}};
+    GD.plots(x, y, sp, 1, rot, jk);
+}
+    break;
+  case 1:
+{
+    static PROGMEM sprplot sp[] = {{-8, -8, 0, 6}};
+    GD.plots(x, y, sp, 1, rot, jk);
+}
+    break;
+  case 2:
+{
+    static PROGMEM sprplot sp[] = {{-8, -8, 1, 4}};
+    GD.plots(x, y, sp, 1, rot, jk);
+}
+    break;
+  case 3:
+{
+    static PROGMEM sprplot sp[] = {{-8, -8, 1, 6}};
+    GD.plots(x, y, sp, 1, rot, jk);
+}
+    break;
+  case 4:
+{
+    static PROGMEM sprplot sp[] = {{-8, -8, 2, 4}};
+    GD.plots(x, y, sp, 1, rot, jk);
+}
+    break;
+  case 5:
+{
+    static PROGMEM sprplot sp[] = {{-8, -8, 2, 6}};
+    GD.plots(x, y, sp, 1, rot, jk);
+}
+    break;
+  case 6:
+{
+    static PROGMEM sprplot sp[] = {{-8, -8, 3, 4}};
+    GD.plots(x, y, sp, 1, rot, jk);
+}
+    break;
+  case 7:
+{
+    static PROGMEM sprplot sp[] = {{-8, -8, 3, 6}};
+    GD.plots(x, y, sp, 1, rot, jk);
+}
+    break;
+  case 8:
+{
+    static PROGMEM sprplot sp[] = {{-8, -8, 4, 4}};
+    GD.plots(x, y, sp, 1, rot, jk);
+}
+    break;
+  case 9:
+{
+    static PROGMEM sprplot sp[] = {{-8, -8, 4, 6}};
+    GD.plots(x, y, sp, 1, rot, jk);
+}
+    break;
+  case 10:
+{
+    static PROGMEM sprplot sp[] = {{-8, -8, 5, 4}};
+    GD.plots(x, y, sp, 1, rot, jk);
+}
+    break;
+  case 11:
+{
+    static PROGMEM sprplot sp[] = {{-8, -8, 5, 6}};
+    GD.plots(x, y, sp, 1, rot, jk);
+}
+    break;
+  case 12:
+{
+    static PROGMEM sprplot sp[] = {{-8, -8, 6, 4}};
+    GD.plots(x, y, sp, 1, rot, jk);
+}
+    break;
+  case 13:
+{
+    static PROGMEM sprplot sp[] = {{-8, -8, 6, 6}};
+    GD.plots(x, y, sp, 1, rot, jk);
+}
+    break;
+  case 14:
+{
+    static PROGMEM sprplot sp[] = {{-8, -8, 7, 4}};
+    GD.plots(x, y, sp, 1, rot, jk);
+}
+    break;
+  case 15:
+{
+    static PROGMEM sprplot sp[] = {{-8, -8, 7, 6}};
+    GD.plots(x, y, sp, 1, rot, jk);
+}
+    break;
+  case 16:
+{
+    static PROGMEM sprplot sp[] = {{-8, -8, 8, 4}};
+    GD.plots(x, y, sp, 1, rot, jk);
+}
+    break;
+  case 17:
+{
+    static PROGMEM sprplot sp[] = {{-8, -8, 8, 6}};
+    GD.plots(x, y, sp, 1, rot, jk);
+}
+    break;
+  case 18:
+{
+    static PROGMEM sprplot sp[] = {{-8, -8, 9, 4}};
+    GD.plots(x, y, sp, 1, rot, jk);
+}
+    break;
+  case 19:
+{
+    static PROGMEM sprplot sp[] = {{-8, -8, 9, 6}};
+    GD.plots(x, y, sp, 1, rot, jk);
+}
+    break;
+  case 20:
+{
+    static PROGMEM sprplot sp[] = {{-8, -8, 10, 4}};
+    GD.plots(x, y, sp, 1, rot, jk);
+}
+    break;
+  case 21:
+{
+    static PROGMEM sprplot sp[] = {{-8, -8, 10, 6}};
+    GD.plots(x, y, sp, 1, rot, jk);
+}
+    break;
+  case 22:
+{
+    static PROGMEM sprplot sp[] = {{-8, -8, 11, 4}};
+    GD.plots(x, y, sp, 1, rot, jk);
+}
+    break;
+  case 23:
+{
+    static PROGMEM sprplot sp[] = {{-8, -8, 11, 6}};
+    GD.plots(x, y, sp, 1, rot, jk);
+}
+    break;
+  case 24:
+{
+    static PROGMEM sprplot sp[] = {{-8, -8, 12, 4}};
+    GD.plots(x, y, sp, 1, rot, jk);
+}
+    break;
+  case 25:
+{
+    static PROGMEM sprplot sp[] = {{-8, -8, 12, 6}};
+    GD.plots(x, y, sp, 1, rot, jk);
+}
+    break;
+  case 26:
+{
+    static PROGMEM sprplot sp[] = {{-8, -8, 13, 4}};
+    GD.plots(x, y, sp, 1, rot, jk);
+}
+    break;
+  case 27:
+{
+    static PROGMEM sprplot sp[] = {{-8, -8, 13, 6}};
+    GD.plots(x, y, sp, 1, rot, jk);
+}
+    break;
+  case 28:
+{
+    static PROGMEM sprplot sp[] = {{-8, -8, 14, 4}};
+    GD.plots(x, y, sp, 1, rot, jk);
+}
+    break;
+  case 29:
+{
+    static PROGMEM sprplot sp[] = {{-8, -8, 14, 6}};
+    GD.plots(x, y, sp, 1, rot, jk);
+}
+    break;
+  case 30:
+{
+    static PROGMEM sprplot sp[] = {{-8, -8, 15, 4}};
+    GD.plots(x, y, sp, 1, rot, jk);
+}
+    break;
+  case 31:
+{
+    static PROGMEM sprplot sp[] = {{-8, -8, 15, 6}};
+    GD.plots(x, y, sp, 1, rot, jk);
+}
+    break;
+  case 32:
+{
+    static PROGMEM sprplot sp[] = {{-8, -8, 16, 4}};
+    GD.plots(x, y, sp, 1, rot, jk);
+}
+    break;
+  case 33:
+{
+    static PROGMEM sprplot sp[] = {{-8, -8, 16, 6}};
+    GD.plots(x, y, sp, 1, rot, jk);
+}
+    break;
+  case 34:
+{
+    static PROGMEM sprplot sp[] = {{-8, -8, 17, 4}};
+    GD.plots(x, y, sp, 1, rot, jk);
+}
+    break;
+  case 35:
+{
+    static PROGMEM sprplot sp[] = {{-8, -8, 17, 6}};
+    GD.plots(x, y, sp, 1, rot, jk);
+}
+    break;
+  case 36:
+{
+    static PROGMEM sprplot sp[] = {{-8, -8, 18, 4}};
+    GD.plots(x, y, sp, 1, rot, jk);
+}
+    break;
+  case 37:
+{
+    static PROGMEM sprplot sp[] = {{-8, -8, 18, 6}};
+    GD.plots(x, y, sp, 1, rot, jk);
+}
+    break;
+  case 38:
+{
+    static PROGMEM sprplot sp[] = {{-8, -8, 19, 4}};
+    GD.plots(x, y, sp, 1, rot, jk);
+}
+    break;
+  case 39:
+{
+    static PROGMEM sprplot sp[] = {{-8, -8, 19, 6}};
+    GD.plots(x, y, sp, 1, rot, jk);
+}
+    break;
+  case 40:
+{
+    static PROGMEM sprplot sp[] = {{-8, -8, 20, 4}};
+    GD.plots(x, y, sp, 1, rot, jk);
+}
+    break;
+  case 41:
+{
+    static PROGMEM sprplot sp[] = {{-8, -8, 20, 6}};
+    GD.plots(x, y, sp, 1, rot, jk);
+}
+    break;
+  case 42:
+{
+    static PROGMEM sprplot sp[] = {{-8, -8, 21, 4}};
+    GD.plots(x, y, sp, 1, rot, jk);
+}
+    break;
+  case 43:
+{
+    static PROGMEM sprplot sp[] = {{-8, -8, 21, 6}};
+    GD.plots(x, y, sp, 1, rot, jk);
+}
+    break;
+  case 44:
+{
+    static PROGMEM sprplot sp[] = {{-8, -8, 22, 4}};
+    GD.plots(x, y, sp, 1, rot, jk);
+}
+    break;
+  case 45:
+{
+    static PROGMEM sprplot sp[] = {{-8, -8, 22, 6}};
+    GD.plots(x, y, sp, 1, rot, jk);
+}
+    break;
+  case 46:
+{
+    static PROGMEM sprplot sp[] = {{-8, -8, 23, 4}};
+    GD.plots(x, y, sp, 1, rot, jk);
+}
+    break;
+  case 47:
+{
+    static PROGMEM sprplot sp[] = {{-8, -8, 23, 6}};
+    GD.plots(x, y, sp, 1, rot, jk);
+}
+    break;
+  case 48:
+{
+    static PROGMEM sprplot sp[] = {{-8, -8, 24, 4}};
+    GD.plots(x, y, sp, 1, rot, jk);
+}
+    break;
+  case 49:
+{
+    static PROGMEM sprplot sp[] = {{-8, -8, 24, 6}};
+    GD.plots(x, y, sp, 1, rot, jk);
+}
+    break;
+  case 50:
+{
+    static PROGMEM sprplot sp[] = {{-8, -8, 25, 4}};
+    GD.plots(x, y, sp, 1, rot, jk);
+}
+    break;
+  case 51:
+{
+    static PROGMEM sprplot sp[] = {{-8, -8, 25, 6}};
+    GD.plots(x, y, sp, 1, rot, jk);
+}
+    break;
+  case 52:
+{
+    static PROGMEM sprplot sp[] = {{-8, -8, 26, 4}};
+    GD.plots(x, y, sp, 1, rot, jk);
+}
+    break;
+  case 53:
+{
+    static PROGMEM sprplot sp[] = {{-8, -8, 26, 6}};
+    GD.plots(x, y, sp, 1, rot, jk);
+}
+    break;
+  case 54:
+{
+    static PROGMEM sprplot sp[] = {{-8, -8, 27, 4}};
+    GD.plots(x, y, sp, 1, rot, jk);
+}
+    break;
+  case 55:
+{
+    static PROGMEM sprplot sp[] = {{-8, -8, 27, 6}};
+    GD.plots(x, y, sp, 1, rot, jk);
+}
+    break;
+  case 56:
+{
+    static PROGMEM sprplot sp[] = {{-8, -8, 28, 4}};
+    GD.plots(x, y, sp, 1, rot, jk);
+}
+    break;
+  case 57:
+{
+    static PROGMEM sprplot sp[] = {{-8, -8, 28, 6}};
+    GD.plots(x, y, sp, 1, rot, jk);
+}
+    break;
+  case 58:
+{
+    static PROGMEM sprplot sp[] = {{-8, -8, 29, 4}};
+    GD.plots(x, y, sp, 1, rot, jk);
+}
+    break;
+  case 59:
+{
+    static PROGMEM sprplot sp[] = {{-8, -8, 29, 6}};
+    GD.plots(x, y, sp, 1, rot, jk);
+}
+    break;
+  case 60:
+{
+    static PROGMEM sprplot sp[] = {{-8, -8, 30, 4}};
+    GD.plots(x, y, sp, 1, rot, jk);
+}
+    break;
+  case 61:
+{
+    static PROGMEM sprplot sp[] = {{-8, -8, 30, 6}};
+    GD.plots(x, y, sp, 1, rot, jk);
+}
+    break;
+  case 62:
+{
+    static PROGMEM sprplot sp[] = {{-8, -8, 31, 4}};
+    GD.plots(x, y, sp, 1, rot, jk);
+}
+    break;
+  case 63:
+{
+    static PROGMEM sprplot sp[] = {{-8, -8, 31, 6}};
+    GD.plots(x, y, sp, 1, rot, jk);
+}
+    break;
+  }
+}
+
+static PROGMEM prog_uchar sphere_img[] = {
+
+0xff,  0xff,  0xff,  0xff,  0xff,  0xf3,  0x32,  0x32,  0x33,  0x33,  0xf3,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xf3,  0x22,  0x10,  0x00,  0x00,  0x11,  0x32,  0x44,  0x55,  0xf6,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0x33,  0x22,  0x00,  0x00,  0x00,  0x00,  0x11,  0x44,  0x55,  0x66,  0x77,  0x88,  0xff,  0xff, 
+0xff,  0xf3,  0x33,  0x22,  0x11,  0x00,  0x11,  0x11,  0x24,  0x56,  0x77,  0x88,  0x89,  0x99,  0xfb,  0xff, 
+0xff,  0x55,  0x44,  0x44,  0x22,  0x22,  0x44,  0x45,  0x67,  0x88,  0x89,  0x99,  0xaa,  0xbb,  0xdc,  0xff, 
+0xf6,  0x66,  0x66,  0x66,  0x66,  0x67,  0x77,  0x88,  0x99,  0x99,  0xaa,  0xbb,  0xcc,  0xdd,  0xdd,  0xfd, 
+0x77,  0x77,  0x88,  0x88,  0x88,  0x99,  0x99,  0xaa,  0xaa,  0xbb,  0xcc,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd, 
+0x99,  0x99,  0x99,  0xaa,  0xaa,  0xbb,  0xbb,  0xcc,  0xcc,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd, 
+0xbb,  0xbb,  0xbb,  0xcc,  0xcc,  0xcc,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd, 
+0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd, 
+0xfd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xfd, 
+0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff, 
+0xff,  0xfd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xfd,  0xff, 
+0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xfd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xfd,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xfd,  0xdd,  0xdd,  0xdd,  0xdd,  0xfd,  0xff,  0xff,  0xff,  0xff,  0xff, 
+
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xf3,  0x33,  0x33,  0xf3,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0x33,  0x21,  0x10,  0x11,  0x22,  0x33,  0x44,  0x55,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0x32,  0x11,  0x00,  0x00,  0x00,  0x11,  0x34,  0x55,  0x66,  0x77,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0x33,  0x22,  0x11,  0x00,  0x00,  0x11,  0x22,  0x55,  0x77,  0x77,  0x88,  0x99,  0xff,  0xff, 
+0xff,  0x55,  0x44,  0x34,  0x22,  0x22,  0x22,  0x44,  0x66,  0x77,  0x88,  0x99,  0xaa,  0xbb,  0xdd,  0xff, 
+0xff,  0x56,  0x66,  0x66,  0x66,  0x66,  0x77,  0x88,  0x99,  0x99,  0xaa,  0xbb,  0xcc,  0xdd,  0xdd,  0xff, 
+0xf7,  0x77,  0x77,  0x88,  0x88,  0x99,  0x99,  0xaa,  0xaa,  0xbb,  0xcc,  0xdd,  0xdd,  0xdd,  0xdd,  0xfd, 
+0x99,  0x99,  0x99,  0xaa,  0xaa,  0xaa,  0xbb,  0xcc,  0xcc,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd, 
+0xcb,  0xbb,  0xbb,  0xbb,  0xcc,  0xcc,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd, 
+0xfd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xfd, 
+0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff, 
+0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff, 
+0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xfd,  0xdd,  0xdd,  0xfd,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xf3,  0x22,  0x21,  0x21,  0x22,  0x33,  0x44,  0xf5,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0x33,  0x21,  0x00,  0x00,  0x00,  0x11,  0x33,  0x55,  0x66,  0x77,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0x33,  0x22,  0x11,  0x00,  0x00,  0x11,  0x22,  0x44,  0x66,  0x77,  0x88,  0xaa,  0xff,  0xff, 
+0xff,  0xf4,  0x44,  0x33,  0x22,  0x12,  0x22,  0x44,  0x66,  0x77,  0x88,  0x99,  0xaa,  0xbb,  0xfd,  0xff, 
+0xff,  0x55,  0x56,  0x56,  0x56,  0x66,  0x66,  0x78,  0x88,  0x99,  0xaa,  0xbb,  0xcc,  0xdd,  0xdd,  0xff, 
+0xff,  0x77,  0x77,  0x88,  0x88,  0x89,  0x99,  0xaa,  0xaa,  0xbb,  0xcc,  0xdd,  0xdd,  0xdd,  0xdd,  0xff, 
+0xff,  0x99,  0x99,  0x9a,  0xaa,  0xaa,  0xbb,  0xbb,  0xcc,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff, 
+0xff,  0xbb,  0xbb,  0xbb,  0xcc,  0xcc,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff, 
+0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff, 
+0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff, 
+0xff,  0xfd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xfd,  0xff, 
+0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xfd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xfd,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0x33,  0x22,  0x22,  0x32,  0x33,  0x33,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xf3,  0x22,  0x00,  0x00,  0x00,  0x11,  0x33,  0x55,  0x55,  0xf7,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xf3,  0x33,  0x11,  0x00,  0x00,  0x01,  0x22,  0x44,  0x66,  0x77,  0x88,  0xfa,  0xff,  0xff, 
+0xff,  0xff,  0x44,  0x33,  0x22,  0x11,  0x12,  0x22,  0x45,  0x77,  0x88,  0x99,  0xaa,  0xbb,  0xff,  0xff, 
+0xff,  0x55,  0x55,  0x55,  0x45,  0x45,  0x66,  0x77,  0x88,  0x99,  0xaa,  0xbb,  0xcc,  0xdd,  0xdd,  0xff, 
+0xff,  0x77,  0x77,  0x77,  0x88,  0x88,  0x99,  0x9a,  0xaa,  0xbb,  0xcc,  0xdd,  0xdd,  0xdd,  0xdd,  0xff, 
+0xff,  0x99,  0x99,  0x99,  0xaa,  0xaa,  0xbb,  0xbb,  0xcc,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff, 
+0xff,  0xbb,  0xbb,  0xbb,  0xcc,  0xcc,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff, 
+0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff, 
+0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff, 
+0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff, 
+0xff,  0xff,  0xfd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xfd,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xfd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xfd,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0x33,  0x32,  0x33,  0x33,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0x32,  0x11,  0x00,  0x00,  0x11,  0x33,  0x55,  0x55,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0x33,  0x11,  0x00,  0x00,  0x00,  0x22,  0x44,  0x66,  0x77,  0x88,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0x34,  0x33,  0x22,  0x11,  0x11,  0x22,  0x44,  0x77,  0x88,  0x99,  0xaa,  0xbb,  0xff,  0xff, 
+0xff,  0xff,  0x55,  0x55,  0x44,  0x44,  0x66,  0x77,  0x88,  0x99,  0xaa,  0xbb,  0xcc,  0xdd,  0xff,  0xff, 
+0xff,  0x77,  0x77,  0x77,  0x78,  0x88,  0x99,  0x99,  0xaa,  0xbb,  0xcc,  0xdd,  0xdd,  0xdd,  0xdd,  0xff, 
+0xff,  0x99,  0x99,  0x99,  0xaa,  0xaa,  0xbb,  0xbb,  0xcc,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff, 
+0xff,  0xbb,  0xbb,  0xbb,  0xcc,  0xcc,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff, 
+0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff, 
+0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff, 
+0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xf3,  0x33,  0x33,  0xf3,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0x33,  0x21,  0x10,  0x10,  0x22,  0x33,  0x55,  0x55,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0x33,  0x21,  0x00,  0x00,  0x00,  0x11,  0x44,  0x66,  0x77,  0x88,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0x33,  0x33,  0x22,  0x11,  0x11,  0x22,  0x44,  0x66,  0x88,  0x99,  0xaa,  0xcc,  0xff,  0xff, 
+0xff,  0xff,  0x55,  0x55,  0x44,  0x44,  0x45,  0x66,  0x88,  0x99,  0xaa,  0xbb,  0xcc,  0xdd,  0xff,  0xff, 
+0xff,  0xf7,  0x77,  0x77,  0x77,  0x88,  0x89,  0x99,  0xaa,  0xbb,  0xcc,  0xdd,  0xdd,  0xdd,  0xfd,  0xff, 
+0xff,  0x99,  0x99,  0x99,  0xaa,  0xaa,  0xbb,  0xbb,  0xcc,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff, 
+0xff,  0xcc,  0xbb,  0xbb,  0xcc,  0xcc,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff, 
+0xff,  0xfd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xfd,  0xff, 
+0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff, 
+0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xfd,  0xdd,  0xdd,  0xfd,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0x22,  0x11,  0x11,  0x22,  0x33,  0x55,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0x33,  0x22,  0x00,  0x00,  0x00,  0x11,  0x44,  0x56,  0x77,  0x88,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0x33,  0x22,  0x11,  0x11,  0x12,  0x44,  0x66,  0x77,  0x89,  0xaa,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0x55,  0x55,  0x44,  0x44,  0x44,  0x66,  0x77,  0x99,  0x99,  0xab,  0xcc,  0xdd,  0xff,  0xff, 
+0xff,  0xff,  0x77,  0x77,  0x77,  0x88,  0x88,  0x99,  0xaa,  0xbb,  0xcc,  0xdd,  0xdd,  0xdd,  0xff,  0xff, 
+0xff,  0xff,  0x99,  0x99,  0x99,  0xaa,  0xbb,  0xbb,  0xcc,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff, 
+0xff,  0xff,  0xbb,  0xbb,  0xcc,  0xcc,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff, 
+0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff, 
+0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0x33,  0x22,  0x21,  0x22,  0x33,  0x45,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0x22,  0x00,  0x00,  0x00,  0x11,  0x44,  0x55,  0x77,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0x33,  0x22,  0x01,  0x00,  0x11,  0x44,  0x66,  0x77,  0x88,  0xaa,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0x55,  0x55,  0x44,  0x44,  0x44,  0x66,  0x77,  0x88,  0x99,  0xaa,  0xcc,  0xdd,  0xff,  0xff, 
+0xff,  0xff,  0x77,  0x77,  0x77,  0x78,  0x88,  0x99,  0xaa,  0xbb,  0xcc,  0xdd,  0xdd,  0xdd,  0xff,  0xff, 
+0xff,  0xff,  0x99,  0x99,  0x99,  0xaa,  0xaa,  0xbb,  0xcc,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff, 
+0xff,  0xff,  0xbb,  0xbb,  0xcc,  0xcc,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff, 
+0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff, 
+0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0x23,  0x22,  0x22,  0x33,  0x33,  0x44,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0x33,  0x11,  0x00,  0x00,  0x11,  0x44,  0x55,  0x77,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0x33,  0x22,  0x00,  0x00,  0x11,  0x22,  0x66,  0x77,  0x88,  0xaa,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0x55,  0x55,  0x44,  0x22,  0x44,  0x56,  0x77,  0x88,  0x99,  0xaa,  0xcc,  0xdd,  0xff,  0xff, 
+0xff,  0xff,  0x77,  0x77,  0x77,  0x77,  0x88,  0x99,  0xaa,  0xaa,  0xcc,  0xdd,  0xdd,  0xdd,  0xff,  0xff, 
+0xff,  0xff,  0x99,  0x99,  0x99,  0xaa,  0xaa,  0xbb,  0xcc,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff, 
+0xff,  0xff,  0xcb,  0xbb,  0xcc,  0xcc,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff, 
+0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff, 
+0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0x33,  0x32,  0x33,  0x33,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0x33,  0x11,  0x00,  0x00,  0x11,  0x44,  0x55,  0x77,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0x33,  0x22,  0x00,  0x00,  0x11,  0x22,  0x56,  0x77,  0x88,  0xaa,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0x55,  0x44,  0x22,  0x22,  0x44,  0x77,  0x88,  0x99,  0xaa,  0xcc,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0x77,  0x77,  0x77,  0x77,  0x88,  0x99,  0x9a,  0xaa,  0xbc,  0xdd,  0xdd,  0xdd,  0xff,  0xff, 
+0xff,  0xff,  0x99,  0x99,  0x99,  0xaa,  0xaa,  0xbb,  0xcc,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff, 
+0xff,  0xff,  0xcc,  0xbb,  0xcc,  0xcc,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff, 
+0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0x23,  0x33,  0x33,  0x33,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0x33,  0x22,  0x00,  0x00,  0x11,  0x44,  0x55,  0x77,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0x33,  0x22,  0x00,  0x00,  0x01,  0x22,  0x55,  0x77,  0x88,  0xba,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0x55,  0x44,  0x22,  0x22,  0x44,  0x67,  0x88,  0x99,  0xaa,  0xcc,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0x77,  0x66,  0x77,  0x77,  0x78,  0x89,  0x99,  0xaa,  0xbb,  0xdd,  0xdd,  0xdd,  0xff,  0xff, 
+0xff,  0xff,  0x99,  0x99,  0x99,  0xaa,  0xaa,  0xbb,  0xcc,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff, 
+0xff,  0xff,  0xcc,  0xcb,  0xcc,  0xcc,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff, 
+0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0x33,  0x33,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0x22,  0x00,  0x00,  0x22,  0x44,  0x55,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0x33,  0x00,  0x00,  0x00,  0x22,  0x55,  0x77,  0x88,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0x55,  0x44,  0x22,  0x22,  0x44,  0x66,  0x88,  0x99,  0xaa,  0xdc,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0x66,  0x67,  0x77,  0x77,  0x88,  0x99,  0xaa,  0xbb,  0xdd,  0xdd,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0x99,  0x99,  0x99,  0x9a,  0xaa,  0xbb,  0xcc,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff, 
+0xff,  0xff,  0xdc,  0xcc,  0xcc,  0xcc,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xdd,  0xdd,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0x32,  0x11,  0x10,  0x22,  0x44,  0x55,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0x33,  0x11,  0x00,  0x00,  0x22,  0x55,  0x77,  0x88,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0x45,  0x44,  0x22,  0x22,  0x44,  0x66,  0x88,  0x99,  0xaa,  0xdd,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0x66,  0x66,  0x66,  0x77,  0x88,  0x99,  0xaa,  0xbb,  0xdd,  0xdd,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0x99,  0x99,  0x99,  0xaa,  0xbb,  0xcc,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xcc,  0xcc,  0xcc,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0x33,  0x21,  0x11,  0x22,  0x33,  0x55,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0x33,  0x11,  0x00,  0x00,  0x22,  0x55,  0x77,  0x88,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0x44,  0x44,  0x22,  0x11,  0x22,  0x66,  0x78,  0x99,  0xaa,  0xdd,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0x66,  0x66,  0x66,  0x77,  0x88,  0x99,  0xaa,  0xbb,  0xdd,  0xdd,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0x99,  0x99,  0x99,  0xaa,  0xbb,  0xcc,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xcc,  0xcc,  0xcc,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0x33,  0x22,  0x11,  0x22,  0x33,  0x55,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0x33,  0x11,  0x00,  0x00,  0x22,  0x55,  0x67,  0x88,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0x44,  0x44,  0x22,  0x11,  0x22,  0x56,  0x77,  0x99,  0xaa,  0xdd,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0x66,  0x66,  0x66,  0x77,  0x88,  0x99,  0xaa,  0xbb,  0xdd,  0xdd,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0x99,  0x99,  0x99,  0xaa,  0xbb,  0xcc,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xcc,  0xcc,  0xcc,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0x22,  0x22,  0x33,  0x33,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0x33,  0x11,  0x00,  0x00,  0x22,  0x55,  0x66,  0x88,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0x34,  0x22,  0x11,  0x22,  0x55,  0x77,  0x99,  0xaa,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0x66,  0x66,  0x66,  0x67,  0x88,  0x99,  0xaa,  0xbb,  0xdd,  0xdd,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0x99,  0x99,  0x99,  0xaa,  0xbb,  0xcc,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xcc,  0xcc,  0xcc,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0x22,  0x22,  0x33,  0x33,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xf3,  0x22,  0x00,  0x00,  0x22,  0x55,  0x66,  0xf8,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0x33,  0x22,  0x11,  0x22,  0x44,  0x77,  0x99,  0xaa,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0x66,  0x66,  0x66,  0x66,  0x77,  0x99,  0xaa,  0xbb,  0xdd,  0xdd,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0x99,  0x99,  0x99,  0xaa,  0xbb,  0xcc,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xcc,  0xcc,  0xcc,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xfd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xfd,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0x22,  0x32,  0x33,  0x33,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0x22,  0x00,  0x00,  0x22,  0x55,  0x66,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0x33,  0x22,  0x11,  0x11,  0x44,  0x77,  0x89,  0xaa,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0x66,  0x56,  0x56,  0x66,  0x77,  0x99,  0xaa,  0xbb,  0xdd,  0xdd,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0x99,  0x89,  0x99,  0xaa,  0xbb,  0xcc,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xcc,  0xcc,  0xcc,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xf2,  0x33,  0x33,  0xf3,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0x22,  0x00,  0x00,  0x22,  0x55,  0x66,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0x33,  0x22,  0x01,  0x11,  0x44,  0x77,  0x88,  0xba,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xf6,  0x55,  0x55,  0x66,  0x77,  0x99,  0xaa,  0xbb,  0xdd,  0xfd,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0x99,  0x88,  0x99,  0xaa,  0xbb,  0xcc,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xdc,  0xcc,  0xcc,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xfd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xfd,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xfd,  0xdd,  0xdd,  0xfd,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0x33,  0x33,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0x33,  0x00,  0x00,  0x22,  0x55,  0x66,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0x33,  0x22,  0x00,  0x11,  0x44,  0x77,  0x88,  0xbb,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0x55,  0x55,  0x66,  0x77,  0x88,  0xaa,  0xbb,  0xdd,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0x99,  0x88,  0x99,  0xaa,  0xaa,  0xcc,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xdd,  0xcc,  0xcc,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xdd,  0xdd,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xf3,  0xf3,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0x33,  0x10,  0x00,  0x22,  0x55,  0x66,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0x33,  0x22,  0x00,  0x11,  0x44,  0x77,  0x88,  0xbb,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0x55,  0x55,  0x55,  0x77,  0x88,  0xaa,  0xbb,  0xdd,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xf9,  0x88,  0x99,  0x99,  0xaa,  0xcc,  0xdd,  0xdd,  0xdd,  0xfd,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xfd,  0xcc,  0xcc,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xfd,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xfd,  0xfd,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0x33,  0x11,  0x00,  0x22,  0x55,  0x66,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0x33,  0x22,  0x00,  0x11,  0x44,  0x77,  0x88,  0xbb,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0x55,  0x55,  0x45,  0x67,  0x88,  0xaa,  0xbb,  0xdd,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0x88,  0x99,  0x99,  0xaa,  0xcc,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xcc,  0xcc,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0x33,  0x11,  0x00,  0x22,  0x55,  0x66,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0x33,  0x22,  0x00,  0x01,  0x44,  0x67,  0x88,  0xbb,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0x55,  0x55,  0x44,  0x66,  0x88,  0xaa,  0xbb,  0xdd,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0x88,  0x99,  0x99,  0xaa,  0xcc,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xcc,  0xcc,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0x22,  0x11,  0x22,  0x45,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0x22,  0x00,  0x00,  0x22,  0x66,  0x88,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0x55,  0x55,  0x44,  0x66,  0x88,  0x9a,  0xbb,  0xdd,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0x88,  0x89,  0x99,  0xaa,  0xcc,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xcc,  0xcc,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0x22,  0x11,  0x22,  0x44,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0x22,  0x00,  0x00,  0x22,  0x66,  0x88,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0x55,  0x55,  0x44,  0x66,  0x88,  0x99,  0xbb,  0xdd,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0x88,  0x88,  0x99,  0xaa,  0xbc,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xcc,  0xdc,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0x22,  0x11,  0x32,  0x44,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0x32,  0x00,  0x00,  0x22,  0x66,  0x88,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0x55,  0x55,  0x44,  0x66,  0x88,  0x99,  0xbb,  0xdd,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0x88,  0x88,  0x99,  0xaa,  0xbb,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xcc,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0x22,  0x22,  0x33,  0x44,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0x33,  0x00,  0x00,  0x22,  0x66,  0x88,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0x55,  0x45,  0x44,  0x56,  0x88,  0x99,  0xbb,  0xdd,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0x88,  0x88,  0x99,  0xaa,  0xbb,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xdc,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0x33,  0x22,  0x33,  0x44,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0x33,  0x00,  0x00,  0x22,  0x66,  0x88,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0x55,  0x44,  0x44,  0x45,  0x78,  0x99,  0xbb,  0xdd,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0x88,  0x88,  0x99,  0xaa,  0xbb,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0x22,  0x22,  0x33,  0x44,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0x33,  0x00,  0x00,  0x22,  0x66,  0x88,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0x55,  0x44,  0x44,  0x44,  0x77,  0x99,  0xbb,  0xdd,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0x88,  0x88,  0x99,  0xaa,  0xbb,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xf2,  0x22,  0x33,  0xf4,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0x33,  0x00,  0x00,  0x22,  0x66,  0x88,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xf5,  0x44,  0x22,  0x44,  0x77,  0x99,  0xbb,  0xfd,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0x88,  0x88,  0x99,  0xaa,  0xbb,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xfd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xfd,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xfd,  0xdd,  0xdd,  0xfd,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0x33,  0x33,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0x33,  0x00,  0x00,  0x22,  0x66,  0x88,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0x44,  0x22,  0x44,  0x77,  0x99,  0xbb,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0x88,  0x88,  0x99,  0xaa,  0xbb,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xdd,  0xdd,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0x33,  0x33,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0x33,  0x00,  0x00,  0x22,  0x56,  0x88,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0x44,  0x22,  0x44,  0x77,  0x99,  0xbb,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0x88,  0x88,  0x99,  0xaa,  0xbb,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xdd,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xdd,  0xdd,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff,  0xff, 
+};
+static PROGMEM prog_uchar sphere_pal[] = {
+
+0x7a,  0x7f,  0xb3,  0x6a,  0xec,  0x59,  0xa8,  0x55,  0x88,  0x49,  0x46,  0x45,  0x46,  0x41,  0x25,  0x3d, 
+0x05,  0x35,  0xe4,  0x30,  0xc4,  0x2c,  0xa3,  0x24,  0x82,  0x20,  0x62,  0x18,  0x00,  0x00,  0x00,  0x80, 
+};
+static PROGMEM prog_char cloud[] = {
+0,107,-127,
+0,-69,-127,
+17,75,-124,
+8,-102,-124,
+-10,88,-122,
+-27,-88,-122,
+27,101,-120,
+0,-74,-120,
+17,68,-118,
+-18,-106,-118,
+9,99,-116,
+-35,-72,-116,
+45,84,-114,
+-7,-85,-114,
+16,70,-112,
+-44,-96,-112,
+35,100,-110,
+-33,-62,-110,
+51,65,-108,
+-26,-94,-108,
+23,79,-106,
+-61,-76,-106,
+61,88,-104,
+-32,-63,-104,
+48,54,-102,
+-51,-92,-102,
+41,85,-100,
+-66,-56,-100,
+76,66,-98,
+-38,-69,-98,
+46,52,-96,
+-75,-76,-96,
+65,80,-94,
+-62,-42,-94,
+79,43,-92,
+-55,-73,-92,
+50,57,-90,
+-88,-52,-90,
+87,63,-88,
+-57,-39,-88,
+72,28,-86,
+-77,-66,-86,
+65,58,-84,
+-88,-28,-84,
+98,37,-82,
+-60,-42,-82,
+66,24,-80,
+-96,-47,-80,
+85,50,-78,
+-80,-12,-78,
+95,12,-76,
+-73,-42,-76,
+67,26,-74,
+-104,-20,-74,
+102,29,-72,
+-71,-7,-72,
+84,-4,-70,
+-91,-33,-70,
+77,25,-68,
+-99,5,-68,
+107,2,-66,
+-70,-9,-66,
+73,-9,-64,
+-104,-11,-64,
+92,15,-61,
+-85,22,-61,
+98,-23,-59,
+-78,-8,-59,
+69,-8,-57,
+-106,16,-57,
+103,-6,-55,
+-71,26,-55,
+82,-39,-53,
+-90,2,-53,
+75,-9,-51,
+-95,41,-51,
+102,-34,-49,
+-65,25,-49,
+65,-43,-47,
+-98,23,-47,
+85,-19,-45,
+-75,56,-45,
+88,-58,-43,
+-68,25,-43,
+57,-40,-41,
+-94,50,-41,
+90,-40,-39,
+-57,58,-39,
+66,-71,-37,
+-76,34,-37,
+59,-39,-35,
+-77,73,-35,
+83,-65,-33,
+-47,54,-33,
+45,-72,-31,
+-79,54,-31,
+64,-48,-29,
+-53,84,-29,
+64,-86,-27,
+-47,52,-27,
+34,-66,-25,
+-70,77,-25,
+65,-65,-23,
+-31,82,-23,
+38,-94,-21,
+-50,58,-21,
+32,-61,-19,
+-49,96,-19,
+54,-87,-17,
+-18,74,-17,
+15,-90,-15,
+-49,74,-15,
+35,-66,-13,
+-21,102,-13,
+32,-102,-11,
+-16,68,-11,
+2,-79,-9,
+-37,93,-9,
+32,-79,-7,
+1,95,-7,
+4,-105,-5,
+-18,70,-5,
+0,-71,-3,
+-14,106,-3,
+19,-96,-1,
+15,81,-1,
+-19,-96,1,
+-15,81,1,
+0,-71,3,
+14,106,3,
+-4,-105,5,
+18,70,5,
+-32,-79,7,
+-1,95,7,
+-2,-79,9,
+37,93,9,
+-32,-102,11,
+16,68,11,
+-35,-66,13,
+21,102,13,
+-15,-90,15,
+49,74,15,
+-54,-87,17,
+18,74,17,
+-32,-61,19,
+49,96,19,
+-38,-94,21,
+50,58,21,
+-65,-65,23,
+31,82,23,
+-34,-66,25,
+70,77,25,
+-64,-86,27,
+47,52,27,
+-64,-48,29,
+53,84,29,
+-45,-72,31,
+79,54,31,
+-83,-65,33,
+47,54,33,
+-59,-39,35,
+77,73,35,
+-66,-71,37,
+76,34,37,
+-90,-40,39,
+57,58,39,
+-57,-40,41,
+94,50,41,
+-88,-58,43,
+68,25,43,
+-85,-19,45,
+75,56,45,
+-65,-43,47,
+98,23,47,
+-102,-34,49,
+65,25,49,
+-75,-9,51,
+95,41,51,
+-82,-39,53,
+90,2,53,
+-103,-6,55,
+71,26,55,
+-69,-8,57,
+106,16,57,
+-98,-23,59,
+78,-8,59,
+-92,15,61,
+85,22,61,
+-73,-9,64,
+104,-11,64,
+-107,2,66,
+70,-9,66,
+-77,25,68,
+99,5,68,
+-84,-4,70,
+91,-33,70,
+-102,29,72,
+71,-7,72,
+-67,26,74,
+104,-20,74,
+-95,12,76,
+73,-42,76,
+-85,50,78,
+80,-12,78,
+-66,24,80,
+96,-47,80,
+-98,37,82,
+60,-42,82,
+-65,58,84,
+88,-28,84,
+-72,28,86,
+77,-66,86,
+-87,63,88,
+57,-39,88,
+-50,57,90,
+88,-52,90,
+-79,43,92,
+55,-73,92,
+-65,80,94,
+62,-42,94,
+-46,52,96,
+75,-76,96,
+-76,66,98,
+38,-69,98,
+-41,85,100,
+66,-56,100,
+-48,54,102,
+51,-92,102,
+-61,88,104,
+32,-63,104,
+-23,79,106,
+61,-76,106,
+-51,65,108,
+26,-94,108,
+-35,100,110,
+33,-62,110,
+-16,70,112,
+44,-96,112,
+-45,84,114,
+7,-85,114,
+-9,99,116,
+35,-72,116,
+-17,68,118,
+18,-106,118,
+-27,101,120,
+0,-74,120,
+10,88,122,
+27,-88,122,
+-17,75,124,
+-8,-102,124,
+};
+static prog_uchar ramp_pic[] = {
+
+0x80,  0x80,  0x80,  0x80,  0x80,  0x80,  0x80,  0x80,  0x80,  0x80,  0x80,  0x80,  0x80,  0x80,  0x80,  0x80, 
+0x80,  0x80,  0x80,  0x80,  0x80,  0x80,  0x80,  0x80,  0x80,  0x80,  0x80,  0x80,  0x80,  0x80,  0x80,  0x80, 
+0x80,  0x80,  0x80,  0x80,  0x80,  0x80,  0x80,  0x80,  0x80,  0x80,  0x80,  0x80,  0x80,  0x80,  0x80,  0x80, 
+0x80,  0x80,  0x80,  0x80,  0x80,  0x80,  0x80,  0x80,  0x80,  0x80,  0x80,  0x80,  0x80,  0x80,  0x80,  0x80, 
+0x81,  0x82,  0x83,  0x84,  0x85,  0x86,  0x87,  0x88,  0x89,  0x8a,  0x8b,  0x8c,  0x8d,  0x8e,  0x8f,  0x90, 
+0x91,  0x92,  0x93,  0x94,  0x95,  0x96,  0x97,  0x98,  0x99,  0x9a,  0x9b,  0x9c,  0x9d,  0x9e,  0x9f,  0xa0, 
+0xa1,  0xa2,  0xa3,  0xa4,  0xa5,  0xa6,  0xa7,  0xa8,  0xa9,  0xaa,  0xab,  0xac,  0xad,  0xae,  0xaf,  0xb0, 
+0xb1,  0xb2,  0xb3,  0xb4,  0xb5,  0xb6,  0xb7,  0xb8,  0xb9,  0xba,  0xbb,  0xbc,  0xbd,  0xbe,  0xbf,  0xc0, 
+0xc1,  0xc2,  0xc3,  0xc4,  0xc5,  0xc6,  0xc7,  0xc8,  0xc9,  0xca,  0xcb,  0xcc,  0xcd,  0xce,  0xcf,  0xd0, 
+0xd1,  0xd2,  0xd3,  0xd4,  0xd5,  0xd6,  0xd6,  0xd7, 
+};
+static PROGMEM prog_uchar ramp_chr[] = {
+
+0x00,  0x00,  0x00,  0x00,  0x00,  0x00,  0x00,  0x00,  0x00,  0x00,  0x00,  0x00,  0x00,  0x00,  0x00,  0x00, 
+0x55,  0x55,  0x55,  0x55,  0x55,  0x55,  0x55,  0x55,  0x55,  0x55,  0x45,  0x54,  0x51,  0x40,  0x05,  0x45, 
+0x55,  0x55,  0x55,  0x55,  0x55,  0x55,  0x55,  0x55,  0x55,  0x55,  0x45,  0x55,  0x01,  0x40,  0x50,  0x00, 
+0x55,  0x55,  0x55,  0x55,  0x55,  0x55,  0x55,  0x55,  0x55,  0x55,  0x55,  0x51,  0x54,  0x05,  0x50,  0x01, 
+0x55,  0x55,  0x55,  0x55,  0x55,  0x55,  0x55,  0x55,  0x55,  0x55,  0x55,  0x55,  0x14,  0x55,  0x55,  0x11, 
+0xaa,  0x80,  0xaa,  0xaa,  0xaa,  0x9a,  0x9a,  0x56,  0x96,  0x59,  0x65,  0x95,  0x55,  0x66,  0x55,  0x55, 
+0xaa,  0xaa,  0xa2,  0xaa,  0xaa,  0x9a,  0x6a,  0xa6,  0xa5,  0x69,  0x55,  0x59,  0x65,  0x69,  0x55,  0x55, 
+0xa8,  0xaa,  0xaa,  0xa8,  0xaa,  0x66,  0xa9,  0xa9,  0x69,  0x99,  0x65,  0x69,  0x55,  0x66,  0x55,  0x55, 
+0x88,  0xaa,  0xaa,  0xaa,  0xa6,  0x6a,  0xa6,  0x65,  0x99,  0xa6,  0x5a,  0xa6,  0x55,  0x55,  0x55,  0x55, 
+0xaa,  0xa8,  0x0a,  0x28,  0x8a,  0x08,  0x20,  0x00,  0x00,  0x00,  0x00,  0x41,  0x55,  0x04,  0x40,  0x15, 
+0x80,  0x0a,  0x02,  0x0a,  0xaa,  0xa8,  0x8a,  0xaa,  0xaa,  0xaa,  0x5a,  0xa9,  0x5a,  0x6a,  0x95,  0x96, 
+0xa2,  0x2a,  0x2a,  0x80,  0x80,  0x00,  0x02,  0x08,  0x00,  0x00,  0x00,  0x50,  0x14,  0x00,  0x55,  0x10, 
+0xa2,  0xaa,  0x8a,  0xa8,  0x22,  0x08,  0x00,  0x00,  0x00,  0x00,  0x10,  0x00,  0x40,  0x01,  0x45,  0x54, 
+0xa5,  0x6a,  0x6a,  0x6a,  0xa8,  0xaa,  0xaa,  0xaa,  0x0a,  0xa2,  0x20,  0x8a,  0x00,  0x20,  0x03,  0x00, 
+0xaa,  0x9a,  0xaa,  0xaa,  0xaa,  0xaa,  0x2a,  0xa2,  0x80,  0x82,  0x80,  0x02,  0x00,  0x00,  0x00,  0x00, 
+0xa6,  0x95,  0x65,  0x55,  0x15,  0x55,  0x45,  0x51,  0x00,  0x45,  0x14,  0x01,  0x04,  0x00,  0x00,  0x00, 
+
+0x9a,  0x5a,  0x59,  0xa9,  0xa0,  0x0a,  0x82,  0x2a,  0xa0,  0x02,  0x08,  0x08,  0x80,  0x00,  0x00,  0x00, 
+0x45,  0x41,  0x54,  0x15,  0x00,  0x00,  0x41,  0x04,  0x00,  0x00,  0x00,  0x28,  0x82,  0x02,  0x88,  0x28, 
+0x40,  0x54,  0x55,  0x50,  0x44,  0x50,  0x40,  0x04,  0x00,  0x00,  0x00,  0x20,  0x88,  0xa2,  0xaa,  0x2a, 
+0x51,  0x55,  0x55,  0x04,  0x00,  0x04,  0x00,  0x01,  0x00,  0x00,  0x20,  0x02,  0x20,  0x22,  0x28,  0x82, 
+0x54,  0x51,  0x11,  0x41,  0x04,  0x00,  0x41,  0x04,  0x00,  0x00,  0x00,  0x00,  0x2a,  0x80,  0x02,  0x2a, 
+0x45,  0x01,  0x00,  0x00,  0x00,  0x00,  0x08,  0x80,  0x08,  0x82,  0xaa,  0xa2,  0xaa,  0xaa,  0xaa,  0xaa, 
+0x55,  0x11,  0x55,  0x55,  0x55,  0xa5,  0x65,  0x99,  0x5a,  0x6a,  0x96,  0xa6,  0xaa,  0xaa,  0xaa,  0xaa, 
+0x55,  0x15,  0x55,  0x55,  0x55,  0x55,  0x56,  0x99,  0x56,  0x95,  0xa9,  0xaa,  0xaa,  0xaa,  0xaa,  0xaa, 
+0x50,  0x15,  0x55,  0x55,  0xa5,  0x95,  0x99,  0x66,  0xa9,  0x56,  0xa9,  0xaa,  0xaa,  0x9a,  0xaa,  0xaa, 
+0x40,  0x00,  0x15,  0x11,  0x54,  0x15,  0x15,  0x55,  0x55,  0x55,  0x95,  0x65,  0x69,  0x55,  0xaa,  0x69, 
+0x44,  0x10,  0x54,  0x50,  0x10,  0x11,  0x10,  0x01,  0x00,  0x00,  0xa2,  0xa2,  0x02,  0x00,  0x2a,  0x20, 
+0x50,  0x00,  0x50,  0x00,  0x50,  0x41,  0x55,  0x55,  0x55,  0x55,  0x6a,  0x59,  0xa5,  0xa5,  0x66,  0x9a, 
+0x55,  0x55,  0x51,  0x14,  0x10,  0x40,  0x41,  0x04,  0x00,  0x00,  0x80,  0x8a,  0x00,  0x20,  0xa8,  0xa8, 
+0x8a,  0x20,  0xaa,  0xaa,  0xaa,  0xa9,  0x66,  0x99,  0xaa,  0xa6,  0x55,  0x55,  0x59,  0x55,  0x55,  0x55, 
+0xaa,  0x8a,  0xaa,  0xaa,  0xaa,  0xaa,  0xa6,  0xa9,  0x66,  0x95,  0x56,  0x5a,  0x55,  0x55,  0x5d,  0x5d, 
+0xa2,  0x8a,  0xaa,  0xaa,  0xa6,  0xa6,  0x66,  0x55,  0x6a,  0xaa,  0x65,  0x95,  0x55,  0x55,  0x55,  0xdd, 
+
+0xaa,  0x28,  0xaa,  0xaa,  0x66,  0xaa,  0xa9,  0x69,  0x95,  0x6a,  0x65,  0x95,  0x55,  0x55,  0x55,  0x57, 
+0xa0,  0x8a,  0x2a,  0xa0,  0x80,  0xa2,  0x00,  0x00,  0x00,  0x00,  0x01,  0x10,  0x11,  0x14,  0x45,  0x15, 
+0xa8,  0xaa,  0x2a,  0x20,  0x22,  0xa2,  0x20,  0x00,  0x00,  0x00,  0x10,  0x11,  0x40,  0x10,  0x15,  0x55, 
+0x88,  0x82,  0x88,  0x2a,  0x00,  0x82,  0x00,  0x00,  0x00,  0x00,  0x40,  0x00,  0x00,  0x50,  0x51,  0x55, 
+0x82,  0xaa,  0xa0,  0x88,  0x0a,  0x02,  0x80,  0x02,  0x00,  0x00,  0x10,  0x00,  0x45,  0x05,  0x44,  0x55, 
+0x8a,  0xa2,  0xaa,  0xaa,  0xaa,  0xaa,  0xff,  0xab,  0xfb,  0xab,  0xfb,  0xef,  0xff,  0xef,  0xfd,  0xff, 
+0xa2,  0x88,  0xaa,  0xaa,  0xbe,  0xaa,  0xbf,  0xab,  0xab,  0xee,  0xfb,  0xff,  0xff,  0xff,  0xdf,  0x7f, 
+0x55,  0x44,  0x55,  0x55,  0x59,  0x56,  0xa5,  0x65,  0x6a,  0x6a,  0xa9,  0xaa,  0x9a,  0xa6,  0xaa,  0xaa, 
+0x41,  0x00,  0x00,  0x00,  0x00,  0x08,  0x0a,  0x00,  0x80,  0xaa,  0xa0,  0xa0,  0x2a,  0xaa,  0xaa,  0xaa, 
+0x45,  0x45,  0x44,  0x45,  0x04,  0x00,  0x00,  0x00,  0x00,  0x00,  0x80,  0x22,  0xaa,  0x0a,  0x80,  0xa8, 
+0x55,  0x55,  0x11,  0x51,  0x40,  0x40,  0x00,  0x00,  0x00,  0x00,  0x28,  0x20,  0x28,  0x2a,  0xa2,  0xa0, 
+0x55,  0x54,  0x44,  0x44,  0x54,  0x40,  0x00,  0x10,  0x20,  0x00,  0x00,  0x08,  0xa2,  0x8a,  0x82,  0x22, 
+0x55,  0x51,  0x41,  0x54,  0x00,  0x40,  0x00,  0x00,  0x00,  0x00,  0x00,  0x22,  0x08,  0xa2,  0x00,  0x82, 
+0xa2,  0xaa,  0xaa,  0xaa,  0xa5,  0x9a,  0xa9,  0xa9,  0x99,  0x5a,  0x56,  0x65,  0x55,  0x55,  0x55,  0x55, 
+0x88,  0x8a,  0xaa,  0xaa,  0xa6,  0xaa,  0x96,  0x6a,  0x66,  0x66,  0x55,  0x55,  0x95,  0x56,  0x55,  0xd5, 
+0xa2,  0xaa,  0xaa,  0x9a,  0xaa,  0xa9,  0xaa,  0x6a,  0x95,  0x56,  0x99,  0x55,  0x55,  0x55,  0x75,  0x7d, 
+
+0xa8,  0xaa,  0xaa,  0xaa,  0xaa,  0x69,  0x66,  0xa6,  0xa9,  0x9a,  0x55,  0x65,  0x56,  0x55,  0x55,  0x55, 
+0xa2,  0x2a,  0x88,  0xa8,  0x08,  0x20,  0x00,  0x00,  0x40,  0x10,  0x54,  0x40,  0x40,  0x01,  0x45,  0x45, 
+0x80,  0x02,  0x28,  0x00,  0x28,  0x82,  0xaa,  0xa8,  0xaa,  0xa9,  0x6a,  0x5a,  0x56,  0xa9,  0x56,  0x56, 
+0x80,  0xa0,  0x88,  0x28,  0xa8,  0xaa,  0xaa,  0xaa,  0xaa,  0xaa,  0xa6,  0xaa,  0x99,  0xa5,  0x55,  0x69, 
+0x80,  0x80,  0x8a,  0x00,  0x82,  0x8a,  0xaa,  0xa8,  0xaa,  0xaa,  0x5a,  0xaa,  0x55,  0x9a,  0x59,  0xa9, 
+0x95,  0x55,  0x55,  0x55,  0x55,  0x05,  0x44,  0x11,  0x50,  0x44,  0x40,  0x01,  0x00,  0x00,  0x30,  0x00, 
+0x9a,  0xaa,  0xa8,  0xaa,  0x0a,  0xaa,  0x0a,  0x28,  0x20,  0x88,  0x00,  0x02,  0x00,  0x00,  0xc0,  0x00, 
+0xaa,  0xa6,  0xaa,  0xaa,  0x88,  0xa2,  0x00,  0x80,  0x08,  0x00,  0x00,  0x08,  0x08,  0x00,  0x00,  0x00, 
+0x55,  0x55,  0x55,  0x55,  0x44,  0x50,  0x15,  0x41,  0x41,  0x51,  0x40,  0x54,  0x00,  0x00,  0x00,  0x20, 
+0x95,  0x56,  0xa6,  0xaa,  0x9a,  0x66,  0xaa,  0xaa,  0xa2,  0xaa,  0xaa,  0xaa,  0x28,  0x82,  0x00,  0x00, 
+0xa5,  0xaa,  0xa5,  0xaa,  0xaa,  0x96,  0x69,  0xaa,  0xaa,  0xa2,  0xa2,  0x28,  0x00,  0xa8,  0x80,  0xa2, 
+0xa5,  0x56,  0x56,  0xa9,  0xaa,  0xa5,  0x9a,  0xa9,  0xa8,  0xaa,  0x2a,  0xaa,  0xaa,  0x8a,  0x28,  0x08, 
+0xaa,  0x6a,  0xa6,  0xa6,  0x95,  0xa5,  0x55,  0x59,  0x55,  0x55,  0x55,  0x45,  0x44,  0x01,  0x40,  0x00, 
+0x40,  0x00,  0x00,  0x00,  0x20,  0x00,  0xaa,  0xa2,  0xaa,  0x08,  0xa2,  0x28,  0xaa,  0xaa,  0xaa,  0xaa, 
+0x55,  0x55,  0x55,  0x55,  0x54,  0x45,  0x55,  0x51,  0x40,  0x05,  0x00,  0x40,  0x00,  0x00,  0x02,  0x02, 
+0x55,  0x11,  0x55,  0x65,  0x59,  0x5a,  0x55,  0x59,  0x9a,  0x56,  0xaa,  0x6a,  0xaa,  0xaa,  0xaa,  0xaa, 
+
+0x55,  0x55,  0x55,  0x55,  0x55,  0x15,  0x15,  0x11,  0x44,  0x00,  0x00,  0x11,  0x00,  0x00,  0x80,  0x00, 
+0x40,  0x45,  0x10,  0x14,  0x55,  0x15,  0x55,  0x55,  0x65,  0x56,  0x65,  0x55,  0x55,  0xa5,  0x5a,  0x6a, 
+0x54,  0x15,  0x14,  0x41,  0x04,  0x51,  0x04,  0x00,  0x82,  0x00,  0x00,  0x22,  0x2a,  0x20,  0xaa,  0x0a, 
+0x40,  0x10,  0x04,  0x11,  0x54,  0x50,  0x04,  0x55,  0x55,  0x65,  0x56,  0x55,  0x6a,  0x99,  0xaa,  0x9a, 
+0x44,  0x15,  0x05,  0x45,  0x55,  0x55,  0x55,  0x55,  0x55,  0x66,  0x55,  0x55,  0x95,  0xa5,  0xaa,  0x96, 
+0x41,  0x54,  0x55,  0x55,  0x55,  0x75,  0xf5,  0xdd,  0xff,  0x7f,  0x55,  0x57,  0xff,  0xff,  0xfb,  0xff, 
+0x55,  0x55,  0x55,  0x55,  0x51,  0x05,  0x41,  0x54,  0x04,  0x50,  0x11,  0x00,  0x00,  0x00,  0x00,  0x00, 
+0x51,  0x55,  0x55,  0x55,  0x55,  0x55,  0x77,  0x5f,  0x5f,  0x7d,  0xff,  0xff,  0xff,  0xff,  0xaf,  0xff, 
+0x55,  0x45,  0x55,  0x65,  0x69,  0x59,  0xa9,  0x65,  0x9a,  0xaa,  0xaa,  0x99,  0xaa,  0xaa,  0xaa,  0xaa, 
+0xa2,  0x88,  0x02,  0x28,  0x00,  0x88,  0x00,  0x00,  0x40,  0x00,  0x10,  0x11,  0x55,  0x05,  0x40,  0x55, 
+0x80,  0x08,  0x02,  0x2a,  0x00,  0x00,  0x20,  0x00,  0x00,  0x00,  0x01,  0x41,  0x15,  0x50,  0x51,  0x51, 
+0xa2,  0x02,  0x00,  0x08,  0x80,  0x80,  0x00,  0x00,  0x10,  0x00,  0x04,  0x04,  0x01,  0x11,  0x44,  0x55, 
+0x82,  0xa2,  0x80,  0xa8,  0x00,  0x00,  0x00,  0x20,  0x40,  0x00,  0x01,  0x00,  0x50,  0x01,  0x45,  0x54, 
+0xaa,  0xaa,  0x2a,  0xaa,  0xaa,  0xaa,  0x22,  0xa2,  0x22,  0x80,  0x20,  0x80,  0x00,  0x00,  0x00,  0x10, 
+0x51,  0x55,  0x55,  0x55,  0x55,  0x56,  0x95,  0xa6,  0xa9,  0xa5,  0xaa,  0x9a,  0xaa,  0xaa,  0xaa,  0xaa, 
+0xaa,  0xaa,  0xaa,  0xaa,  0xa8,  0x88,  0x08,  0x2a,  0x88,  0x20,  0x08,  0x02,  0x00,  0x00,  0x01,  0x04, 
+
+0xaa,  0xaa,  0xaa,  0xaa,  0x82,  0xaa,  0x00,  0x0a,  0x02,  0x28,  0x00,  0x80,  0x00,  0x00,  0x04,  0x00, 
+0x41,  0x55,  0x55,  0x54,  0x01,  0x40,  0x00,  0x00,  0x00,  0x00,  0x0a,  0xa2,  0x0a,  0xa0,  0xa8,  0xaa, 
+0x40,  0x14,  0x51,  0x04,  0x55,  0x54,  0x55,  0x51,  0x55,  0x55,  0x56,  0x69,  0x69,  0x59,  0x6a,  0xaa, 
+0x55,  0x55,  0x45,  0x05,  0x00,  0x04,  0x00,  0x00,  0xa2,  0x00,  0x80,  0xa2,  0x00,  0x8a,  0xaa,  0xaa, 
+0x41,  0x14,  0x00,  0x54,  0x14,  0x04,  0x00,  0x00,  0x00,  0x00,  0x00,  0x08,  0x22,  0xa0,  0xa2,  0xaa, 
+0x40,  0x01,  0x00,  0x00,  0x00,  0x00,  0x00,  0x00,  0x00,  0x00,  0x00,  0x00,  0x00,  0x00,  0x00,  0x00, 
+0x00,  0x00,  0x00,  0x00,  0x00,  0x00,  0x00,  0x00,  0x00,  0x00,  0x00,  0x00,  0x00,  0x00,  0x00,  0x00, 
+0x55,  0x54,  0x55,  0x55,  0x55,  0x55,  0x55,  0x55,  0x55,  0x55,  0x55,  0x55,  0x55,  0x55,  0x55,  0x55, 
+};
+static PROGMEM prog_uchar ramp_pal[] = {
+
+0x00,  0x00,  0x00,  0x00,  0x00,  0x00,  0x00,  0x00,  0x21,  0x04,  0x00,  0x00,  0x00,  0x00,  0x00,  0x00, 
+0x21,  0x04,  0x00,  0x00,  0x00,  0x00,  0x00,  0x00,  0x21,  0x04,  0x00,  0x00,  0x00,  0x00,  0x00,  0x00, 
+0x21,  0x04,  0x00,  0x00,  0x00,  0x00,  0x00,  0x00,  0x00,  0x00,  0x42,  0x08,  0x21,  0x04,  0x00,  0x00, 
+0x00,  0x00,  0x42,  0x08,  0x21,  0x04,  0x00,  0x00,  0x00,  0x00,  0x42,  0x08,  0x21,  0x04,  0x00,  0x00, 
+0x00,  0x00,  0x42,  0x08,  0x21,  0x04,  0x00,  0x00,  0x63,  0x0c,  0x84,  0x10,  0x42,  0x08,  0x00,  0x00, 
+0x42,  0x08,  0x84,  0x10,  0x63,  0x0c,  0x00,  0x00,  0x63,  0x0c,  0x84,  0x10,  0x42,  0x08,  0x00,  0x00, 
+0x63,  0x0c,  0x84,  0x10,  0x42,  0x08,  0x00,  0x00,  0xa5,  0x14,  0x63,  0x0c,  0x84,  0x10,  0xc6,  0x18, 
+0xa5,  0x14,  0x63,  0x0c,  0x84,  0x10,  0x00,  0x00,  0xa5,  0x14,  0x84,  0x10,  0x63,  0x0c,  0x00,  0x00, 
+0xa5,  0x14,  0x63,  0x0c,  0x84,  0x10,  0x00,  0x00,  0xc6,  0x18,  0xa5,  0x14,  0xe7,  0x1c,  0x00,  0x00, 
+0xc6,  0x18,  0xa5,  0x14,  0xe7,  0x1c,  0x00,  0x00,  0xc6,  0x18,  0xa5,  0x14,  0xe7,  0x1c,  0x00,  0x00, 
+0xc6,  0x18,  0xa5,  0x14,  0xe7,  0x1c,  0x00,  0x00,  0xe7,  0x1c,  0xc6,  0x18,  0x08,  0x21,  0x00,  0x00, 
+0xc6,  0x18,  0xe7,  0x1c,  0x08,  0x21,  0x00,  0x00,  0xc6,  0x18,  0xe7,  0x1c,  0x08,  0x21,  0x00,  0x00, 
+0xc6,  0x18,  0xe7,  0x1c,  0x08,  0x21,  0x00,  0x00,  0x08,  0x21,  0x29,  0x25,  0x4a,  0x29,  0x00,  0x00, 
+0x29,  0x25,  0x08,  0x21,  0x4a,  0x29,  0x00,  0x00,  0x08,  0x21,  0x29,  0x25,  0x4a,  0x29,  0x00,  0x00, 
+0x29,  0x25,  0x08,  0x21,  0x4a,  0x29,  0x00,  0x00,  0x29,  0x25,  0x6b,  0x2d,  0x4a,  0x29,  0x00,  0x00, 
+0x29,  0x25,  0x6b,  0x2d,  0x4a,  0x29,  0x8c,  0x31,  0x29,  0x25,  0x6b,  0x2d,  0x4a,  0x29,  0x8c,  0x31, 
+
+0x29,  0x25,  0x6b,  0x2d,  0x4a,  0x29,  0x8c,  0x31,  0x8c,  0x31,  0xad,  0x35,  0x6b,  0x2d,  0x00,  0x00, 
+0x8c,  0x31,  0xad,  0x35,  0x6b,  0x2d,  0x00,  0x00,  0x8c,  0x31,  0xad,  0x35,  0x6b,  0x2d,  0x00,  0x00, 
+0x8c,  0x31,  0xad,  0x35,  0x6b,  0x2d,  0x00,  0x00,  0x8c,  0x31,  0xef,  0x3d,  0xad,  0x35,  0xce,  0x39, 
+0x8c,  0x31,  0xef,  0x3d,  0xad,  0x35,  0xce,  0x39,  0x8c,  0x31,  0xad,  0x35,  0xce,  0x39,  0x00,  0x00, 
+0xad,  0x35,  0x8c,  0x31,  0xce,  0x39,  0x00,  0x00,  0xef,  0x3d,  0xce,  0x39,  0x10,  0x42,  0x00,  0x00, 
+0xef,  0x3d,  0xce,  0x39,  0x10,  0x42,  0x00,  0x00,  0xef,  0x3d,  0xce,  0x39,  0x10,  0x42,  0x00,  0x00, 
+0xef,  0x3d,  0xce,  0x39,  0x10,  0x42,  0x00,  0x00,  0xef,  0x3d,  0x31,  0x46,  0x10,  0x42,  0x00,  0x00, 
+0xef,  0x3d,  0x31,  0x46,  0x10,  0x42,  0x52,  0x4a,  0xef,  0x3d,  0x31,  0x46,  0x10,  0x42,  0x52,  0x4a, 
+0xef,  0x3d,  0x31,  0x46,  0x10,  0x42,  0x00,  0x00,  0x52,  0x4a,  0x73,  0x4e,  0x31,  0x46,  0x00,  0x00, 
+0x31,  0x46,  0x73,  0x4e,  0x52,  0x4a,  0x00,  0x00,  0x31,  0x46,  0x73,  0x4e,  0x52,  0x4a,  0x00,  0x00, 
+0x31,  0x46,  0x73,  0x4e,  0x52,  0x4a,  0x00,  0x00,  0x94,  0x52,  0x73,  0x4e,  0x52,  0x4a,  0xb5,  0x56, 
+0x94,  0x52,  0x52,  0x4a,  0x73,  0x4e,  0xb5,  0x56,  0x94,  0x52,  0x52,  0x4a,  0x73,  0x4e,  0x00,  0x00, 
+0x94,  0x52,  0x73,  0x4e,  0xb5,  0x56,  0x00,  0x00,  0xd6,  0x5a,  0x94,  0x52,  0xb5,  0x56,  0x00,  0x00, 
+0xd6,  0x5a,  0x94,  0x52,  0xb5,  0x56,  0x00,  0x00,  0xd6,  0x5a,  0x94,  0x52,  0xb5,  0x56,  0x00,  0x00, 
+0xd6,  0x5a,  0xb5,  0x56,  0x94,  0x52,  0x00,  0x00,  0xd6,  0x5a,  0xb5,  0x56,  0xf7,  0x5e,  0x00,  0x00, 
+0xf7,  0x5e,  0xd6,  0x5a,  0x18,  0x63,  0x00,  0x00,  0xb5,  0x56,  0xd6,  0x5a,  0xf7,  0x5e,  0x00,  0x00, 
+
+0xf7,  0x5e,  0xd6,  0x5a,  0x18,  0x63,  0x00,  0x00,  0xf7,  0x5e,  0x18,  0x63,  0x39,  0x67,  0x00,  0x00, 
+0x18,  0x63,  0xf7,  0x5e,  0x39,  0x67,  0x00,  0x00,  0xf7,  0x5e,  0x18,  0x63,  0x39,  0x67,  0x00,  0x00, 
+0xf7,  0x5e,  0x18,  0x63,  0x39,  0x67,  0x00,  0x00,  0x18,  0x63,  0x39,  0x67,  0x7b,  0x6f,  0x5a,  0x6b, 
+0x5a,  0x6b,  0x39,  0x67,  0x00,  0x00,  0x00,  0x00,  0x18,  0x63,  0x39,  0x67,  0x7b,  0x6f,  0x5a,  0x6b, 
+0x18,  0x63,  0x39,  0x67,  0x5a,  0x6b,  0x00,  0x00,  0x7b,  0x6f,  0x9c,  0x73,  0x5a,  0x6b,  0x00,  0x00, 
+0x7b,  0x6f,  0x9c,  0x73,  0x5a,  0x6b,  0x00,  0x00,  0x7b,  0x6f,  0x9c,  0x73,  0x5a,  0x6b,  0x00,  0x00, 
+0x7b,  0x6f,  0x9c,  0x73,  0x5a,  0x6b,  0x00,  0x00,  0xbd,  0x77,  0xde,  0x7b,  0x9c,  0x73,  0x00,  0x00, 
+0x7b,  0x6f,  0x9c,  0x73,  0xbd,  0x77,  0x00,  0x00,  0xbd,  0x77,  0xde,  0x7b,  0x9c,  0x73,  0x00,  0x00, 
+0xbd,  0x77,  0xde,  0x7b,  0x9c,  0x73,  0x00,  0x00,  0xde,  0x7b,  0xbd,  0x77,  0xff,  0x7f,  0x00,  0x00, 
+0xbd,  0x77,  0xde,  0x7b,  0xff,  0x7f,  0x00,  0x00,  0xde,  0x7b,  0xbd,  0x77,  0xff,  0x7f,  0x00,  0x00, 
+0xde,  0x7b,  0xbd,  0x77,  0xff,  0x7f,  0x00,  0x00,  0xff,  0x7f,  0xde,  0x7b,  0x00,  0x00,  0x00,  0x00, 
+0xff,  0x7f,  0x00,  0x00,  0x00,  0x00,  0x00,  0x00,  0xde,  0x7b,  0xff,  0x7f,  0x00,  0x00,  0x00,  0x00, 
+};
diff -r 000000000000 -r 87bd6fb28ffb main.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Fri Dec 21 14:08:13 2012 +0000
@@ -0,0 +1,217 @@
+#include "mbed.h"
+#include "GD.h"
+#include "shield.h"
+#include "arduino.h"
+
+GDClass GD(ARD_MOSI, ARD_MISO, ARD_SCK, ARD_D9, USBTX, USBRX) ;
+SPI spimain(ARD_MOSI, ARD_MISO, ARD_SCK); // mosi, miso, sclk
+//#include <stdlib.h>
+//#include <spimainmain.h>
+//#include <GD.h>
+Serial pcmain(USBTX, USBRX);
+static uint16_t SWAP_RB(uint16_t color) { // Swap red and blue channel
+    byte r = (color >> 10) & 31;
+    byte g = (color >> 5) & 31;
+    byte b = color & 31;
+    return (color & 0x8000) | (b << 10) | (g << 5) | (r);
+}
+
+static uint16_t SWAP_RG(uint16_t color) { // Swap red and blue channel
+    byte r = (color >> 10) & 31;
+    byte g = (color >> 5) & 31;
+    byte b = color & 31;
+    return (color & 0x8000) | (g << 10) | (r << 5) | (b);
+}
+
+#include "dna.h"
+
+////////////////////////////////////////////////////////////////////////////////
+//                                  3D Projection
+////////////////////////////////////////////////////////////////////////////////
+
+static float mats[2][9];
+
+static float mat[9];
+
+// Taken from glRotate()
+static void rotation(float phi) {
+    float x = 0.57735026918962573;
+    float y = 0.57735026918962573;
+    float z = 0.57735026918962573;
+
+    float s = sin(phi);
+    float c = cos(phi);
+
+    mat[0] = x*x*(1-c)+c;
+    mat[1] = x*y*(1-c)-z*s;
+    mat[2] = x*z*(1-c)+y*s;
+
+    mat[3] = y*x*(1-c)+z*s;
+    mat[4] = y*y*(1-c)+c;
+    mat[5] = y*z*(1-c)-x*s;
+
+    mat[6] = x*z*(1-c)-y*s;
+    mat[7] = y*z*(1-c)+x*s;
+    mat[8] = z*z*(1-c)+c;
+}
+
+#ifdef MAPLE_IDE
+#define NVERTICES 250
+#else
+#define NVERTICES 220   // Arduino does not have enough RAM for all 250 
+#endif
+
+struct screenpt {
+    short x, y, z;
+};
+static struct screenpt projected[NVERTICES];
+
+void project(float distance) {
+    byte vx;
+    const prog_char *pm = cloud;
+    const prog_char *pm_e = cloud + (NVERTICES*3);
+    struct screenpt *dst = projected;
+    signed char x, y, z;
+
+    while (pm < pm_e) {
+        x = pgm_read_byte_near(pm++);
+        y = pgm_read_byte_near(pm++);
+        z = pgm_read_byte_near(pm++);
+        float xx = x * mat[0] + y * mat[3] + z * mat[6];
+        float yy = x * mat[1] + y * mat[4] + z * mat[7];
+        float zz = x * mat[2] + y * mat[5] + z * mat[8] + distance;
+        int scale = 200;
+        float q = scale / (250 + zz);
+        dst->x = (511 & (int)(200 + xx * q)) | (((x^y^z) & 3) << 14);
+        dst->y = (int)(150 + yy * q);
+        dst->z = (int)(zz * 100);
+        dst++;
+    }
+}
+
+// point depth comparison, for depth sort
+int ptcmp(const void *va, const void *vb) {
+    struct screenpt *a = (struct screenpt *)va;
+    struct screenpt *b = (struct screenpt *)vb;
+
+    if (a->z < b->z)
+        return 1;
+    else if (a->z > b->z)
+        return -1;
+    else
+        return 0;
+}
+
+// load a sprite at (x,y).  z is distance 0-63, color is 0-3
+static void render_sphere(int x, int y, byte z, byte color) {
+    static byte pals[4][2] = {
+        { 4,6 },
+        { 5,7 },
+        { 0,1 },
+        { 2,3 }
+    };
+
+    int ox = x - 8;
+    int oy = y - 8;
+    byte palette = pals[color][z & 1];
+    byte image = (z >> 1);
+
+    spimain.write(lowByte(ox));
+    spimain.write((palette << 4) | (highByte(ox) & 1));
+    spimain.write(lowByte(oy));
+    spimain.write((image << 1) | (highByte(oy) & 1));
+}
+
+void draw(float distance) {
+    project(distance);
+    qsort(projected, NVERTICES, sizeof(struct screenpt), ptcmp);
+
+    static byte flip;
+    GD.__wstartspr(flip ? 256 : 0);
+    for (int i = 0; i < NVERTICES; i++) {
+        byte color = (projected[i].x >> 14) & 3;
+        short x = projected[i].x & 511;
+        short y = projected[i].y;
+        int z = max(0, min(63, int(32 + projected[i].z / 500)));
+        render_sphere(x, y, z, color);
+    }
+    GD.__end();
+    GD.wr(SPR_PAGE, flip);
+    flip = !flip;
+}
+
+static float phi;    // Current rotation angle
+
+// Draw one frame of ship
+void cycle(float distance) {
+    rotation(phi);
+    phi += 0.02;
+    draw(distance);
+
+    // report frame rate in top-right
+    static byte every;
+    if (++every == 4) {
+        static long tprev;
+        long t = micros();
+        every = 0;
+
+        char msg[30];
+        int fps10 = int(4 * 10000000UL / (t - tprev));
+        sprintf(msg, "%3d.%d fps  ", fps10 / 10, fps10 % 10);
+        GD.putstr(41, 0, msg);
+        tprev = t;
+    }
+
+}
+
+// this function has been changed to handle the gameduino being in little endian
+static uint16_t rdpal(int i) {
+    uint16_t swapped =  (sphere_pal[(i << 1)+1] << 8) | ((sphere_pal[(i << 1)]));
+    return swapped;
+}
+
+void setup() {
+    GD.begin();
+    GD.ascii();
+
+    for (byte y = 0; y < 38; y++) {
+        prog_uchar *src = ramp_pic + y * 4;
+        for (byte x = 0; x < 50; x++)
+            GD.wr(RAM_PIC + y * 64 + x, pgm_read_byte(src + random(4)));
+    }
+    GD.copy(RAM_CHR + 128 * 16, ramp_chr, sizeof(ramp_chr));
+    GD.copy(RAM_PAL + 128 * 8, ramp_pal, sizeof(ramp_pal));
+
+    GD.copy(PALETTE16A, sphere_pal, sizeof(sphere_pal));
+    for (byte i = 0; i < 16; i++) {
+        GD.wr16(PALETTE16B + 2 * i, SWAP_RB(rdpal(i)));
+    }
+
+    for (int i = 0; i < 256; i++) {
+        // palette 0 decodes low nibble, hence (i & 15)
+        GD.wr16(RAM_SPRPAL + (i << 1), SWAP_RG(rdpal(i & 15)));
+        // palette 1 decodes nigh nibble, hence (i >> 4)
+        GD.wr16(RAM_SPRPAL + 512 + (i << 1), SWAP_RG(rdpal(i >> 4)));
+
+        // palette 0 decodes low nibble, hence (i & 15)
+        GD.wr16(RAM_SPRPAL + 1024 + (i << 1), SWAP_RB(SWAP_RG(rdpal(i & 15))));
+        // palette 1 decodes nigh nibble, hence (i >> 4)
+        GD.wr16(RAM_SPRPAL + 1024 + 512 + (i << 1), SWAP_RB(SWAP_RG(rdpal(i >> 4))));
+    }
+
+    GD.copy(RAM_SPRIMG, sphere_img, sizeof(sphere_img));
+    GD.putstr(0, 0, "DNA demo: Gameduino with Mbed");
+
+}
+
+void loop() {
+    cycle(0.0);
+}
+
+int main() {
+    timer_start();
+    setup();
+    while (1) {
+        loop();
+    }
+}
\ No newline at end of file
diff -r 000000000000 -r 87bd6fb28ffb mbed.bld
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Fri Dec 21 14:08:13 2012 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/mbed_official/code/mbed/builds/078e4b97a13e
\ No newline at end of file
diff -r 000000000000 -r 87bd6fb28ffb shield.h
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/shield.h	Fri Dec 21 14:08:13 2012 +0000
@@ -0,0 +1,48 @@
+#define ARD_D0 p27
+#define ARD_D1 p28
+#define ARD_D2 p29
+#define ARD_D3 p21
+#define ARD_D4 p30
+#define ARD_D5 p22
+#define ARD_D6 p23
+#define ARD_D7 p11
+#define ARD_D8 p12
+#define ARD_D9 p24
+#define ARD_D10 p25
+#define ARD_D11 p5
+#define ARD_D12 p6
+#define ARD_D13 p7
+
+#define ARD_D14 ARD_A0
+#define ARD_D15 ARD_A1
+#define ARD_D16 ARD_A2
+#define ARD_D17 ARD_A3
+#define ARD_D18 ARD_SDA
+#define ARD_D19 ARD_SCL
+
+#define ARD_A0 p15
+#define ARD_A1 p16
+#define ARD_A2 p17
+#define ARD_A3 p18
+#define ARD_A4 p19
+#define ARD_A5 p20
+
+#define ARD_PWM0 ARD_D3
+#define ARD_PWM1 ARD_D5
+#define ARD_PWM2 ARD_D6
+#define ARD_PWM3 ARD_D9
+#define ARD_PWM4 ARD_D10
+#define ARD_PWM5 p26
+
+#define ARD_RX ARD_D0
+#define ARD_TX ARD_D1
+#define ARD_SDA p9
+#define ARD_SCL p10
+#define ARD_MOSI p5
+#define ARD_MISO p6
+#define ARD_SCK p7
+/*
+DigitalOut shield_d13(ARD_D13);
+
+AnalogIn shield_a0(ARD_A0);
+*/
\ No newline at end of file