added multiple fonts support

This commit is contained in:
JP
2014-01-16 17:13:02 +11:00
parent e5989baf36
commit c9b1aa3128
4 changed files with 282 additions and 41 deletions

View File

@@ -1,47 +1,56 @@
#include <avr/pgmspace.h>
#include <MicroView.h>
#include <font5x7.h>
#include <SPI.h>
// Change to add fonts
#include <font5x7.h>
#include <font8x16.h>
#define TOTALFONTS 2
const unsigned char *MICROVIEW::fontsPointer[]={font5x7,font8x16};
// Change to add fonts
/*
Screen memory buffer 64 x 48 divided by 8 = 384 bytes
Screen memory buffer is required because in SPI mode, the host cannot read the SSD1306's GDRAM of the controller. This buffer serves as a scratch RAM for graphical functions.
*/
static uint8_t screenmemory [] = {
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, 0x80, 0x80, 0xC0, 0xC0,
0x80, 0x80, 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,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80,
0xC0, 0xC0, 0xE0, 0xE0, 0xF0, 0x78, 0xF8, 0xBC, 0xFC, 0xDE, 0xDE, 0xCF, 0xCF, 0xC7, 0xC3, 0xC3,
0xC7, 0x87, 0x8F, 0x0F, 0x1E, 0x1E, 0x3C, 0x78, 0x78, 0xF0, 0xF0, 0xE0, 0xE0, 0xC0, 0xC0, 0x80,
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xF8, 0xFC, 0xFC, 0xFE, 0xFF, 0xEF, 0xE7, 0xC7,
0xC3, 0x83, 0x01, 0x01, 0x00, 0x0F, 0x1F, 0x3F, 0x71, 0x6E, 0xEE, 0xEF, 0xF3, 0xF7, 0xF6, 0xF9,
0xFD, 0xDD, 0xEB, 0x7F, 0x7E, 0xBC, 0xC0, 0xC0, 0xE0, 0xE0, 0xF0, 0xF1, 0x79, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0F, 0x0F, 0x1F, 0x1E, 0xFC, 0xFD, 0xF9, 0x7B,
0xF3, 0xE7, 0xEF, 0xCF, 0xDE, 0x9E, 0xBC, 0x3C, 0x78, 0x78, 0xF0, 0xF0, 0xF0, 0xF8, 0xF8, 0xFC,
0xBC, 0xFE, 0xFE, 0xFF, 0xE7, 0xFF, 0xFF, 0xFF, 0xFD, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 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, 0x03, 0x03, 0x03, 0x00,
0x00, 0x01, 0x01, 0x03, 0x03, 0x07, 0x07, 0x0F, 0x0F, 0x1E, 0x3F, 0x3F, 0x3F, 0x1F, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xFF, 0xFF, 0x7F, 0x1F, 0x3F, 0x3F, 0x1F, 0x03, 0x07,
0x07, 0x07, 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,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x0F,
0x0F, 0x07, 0x03, 0x03, 0x03, 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
// LCD Memory organised in 64 horizontal pixel and 6 rows of byte
// B B .............B -----
// y y .............y \
// t t .............t \
// e e .............e \
// 0 1 .............63 \
// \
// D0 D0.............D0 \
// D1 D1.............D1 / ROW 0
// D2 D2.............D2 /
// D3 D3.............D3 /
// D4 D4.............D4 /
// D5 D5.............D5 /
// D6 D6.............D6 /
// D7 D7.............D7 ----
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, 0x80, 0x80, 0xC0, 0xC0, 0x80, 0x80, 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,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0xC0, 0xC0, 0xE0, 0xE0, 0xF0, 0x78, 0xF8, 0xBC, 0xFC, 0xDE, 0xDE, 0xCF, 0xCF, 0xC7, 0xC3, 0xC3, 0xC7, 0x87, 0x8F, 0x0F, 0x1E, 0x1E, 0x3C, 0x78, 0x78, 0xF0, 0xF0, 0xE0, 0xE0, 0xC0, 0xC0, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xF8, 0xFC, 0xFC, 0xFE, 0xFF, 0xEF, 0xE7, 0xC7, 0xC3, 0x83, 0x01, 0x01, 0x00, 0x0F, 0x1F, 0x3F, 0x71, 0x6E, 0xEE, 0xEF, 0xF3, 0xF7, 0xF6, 0xF9, 0xFD, 0xDD, 0xEB, 0x7F, 0x7E, 0xBC, 0xC0, 0xC0, 0xE0, 0xE0, 0xF0, 0xF1, 0x79, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0F, 0x0F, 0x1F, 0x1E, 0xFC, 0xFD, 0xF9, 0x7B, 0xF3, 0xE7, 0xEF, 0xCF, 0xDE, 0x9E, 0xBC, 0x3C, 0x78, 0x78, 0xF0, 0xF0, 0xF0, 0xF8, 0xF8, 0xFC, 0xBC, 0xFE, 0xFE, 0xFF, 0xE7, 0xFF, 0xFF, 0xFF, 0xFD, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 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, 0x03, 0x03, 0x03, 0x00, 0x00, 0x01, 0x01, 0x03, 0x03, 0x07, 0x07, 0x0F, 0x0F, 0x1E, 0x3F, 0x3F, 0x3F, 0x1F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xFF, 0xFF, 0x7F, 0x1F, 0x3F, 0x3F, 0x1F, 0x03, 0x07, 0x07, 0x07, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x0F, 0x0F, 0x07, 0x03, 0x03, 0x03, 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
};
#define TOTALFONTS 2
const unsigned char *MICROVIEW::fontsPointer[]={font,font};
void MICROVIEW::begin() {
// default 5x7 font
/*
fontType=0;
fontWidth=pgm_read_byte(fontsPointer[fontType]+1);
fontHeight=pgm_read_byte(fontsPointer[fontType]+2);
fontStartChar=pgm_read_byte(fontsPointer[fontType]+3);
fontTotalChar=pgm_read_byte(fontsPointer[fontType]+4);
*/
setFontType(0);
// Setting up SPI pins
pinMode(MOSI, OUTPUT);
@@ -342,11 +351,19 @@ void MICROVIEW::circleFill(uint8_t x0, uint8_t y0, uint8_t r, uint8_t color, uin
}
uint8_t MICROVIEW::getFontWidth(void) {
return pgm_read_byte(fontsPointer[fontType]+1);
return fontWidth;
}
uint8_t MICROVIEW::getFontHeight(void) {
return pgm_read_byte(fontsPointer[fontType]+2);
return fontHeight;
}
uint8_t MICROVIEW::getFontStartChar(void) {
return fontStartChar;
}
uint8_t MICROVIEW::getFontTotalChar(void) {
return fontTotalChar;
}
uint8_t MICROVIEW::getTotalFonts(void) {
@@ -362,15 +379,56 @@ uint8_t MICROVIEW::setFontType(uint8_t type) {
return -1;
fontType=type;
fontWidth=pgm_read_byte(fontsPointer[fontType]+1);
fontHeight=pgm_read_byte(fontsPointer[fontType]+2);
fontStartChar=pgm_read_byte(fontsPointer[fontType]+3);
fontTotalChar=pgm_read_byte(fontsPointer[fontType]+4);
fontMapWidth=(pgm_read_byte(fontsPointer[fontType]+5)*100)+pgm_read_byte(fontsPointer[fontType]+6); // two bytes values into integer 16
}
void MICROVIEW::drawChar(uint8_t x, uint8_t line, uint8_t c, uint8_t mode) {
uint8_t rowsToDraw,row;
uint8_t i,tempX;
uint16_t charPerBitmapRow,charColPositionOnBitmap,charRowPositionOnBitmap,charBitmapStartPosition;
// TODO - char must be able to be drawn anywhere, not limited by line
if ((line >= LCDHEIGHT/8) || (x >= (LCDWIDTH - 6)))
// TODO - char must be able to XOR on background
if ((line >= LCDHEIGHT/fontHeight) || (x > (LCDWIDTH - fontWidth)))
return;
for (uint8_t i =0; i<5; i++ ) {
screenmemory[x + (line*LCDWIDTH) ] = pgm_read_byte(fontsPointer[fontType]+3+(c*5)+i);
x++;
// TODO - check if char is not in memory
tempX=x;
// each row (in datasheet is call page) is 8 bits high, 16 bit high character will have 2 rows to be drawn
rowsToDraw=fontHeight/8; // 8 is LCD's page size, see SSD1306 datasheet
if (rowsToDraw<=1) rowsToDraw=1;
// only 1 row to draw for font with 8 bit height
if (rowsToDraw==1) {
for (i=0; i<fontWidth; i++ ) {
screenmemory[tempX + (line*LCDWIDTH) ] = pgm_read_byte(fontsPointer[fontType]+FONTHEADERSIZE+(c*fontWidth)+i);
tempX++;
}
return;
}
// font height over 8 bit
// take character "0" ASCII 48 as example
charPerBitmapRow=fontMapWidth/fontWidth; // 256/8 =32 char per row
charColPositionOnBitmap=c % charPerBitmapRow; // =16
charRowPositionOnBitmap=int(c/charPerBitmapRow); // =1
charBitmapStartPosition=(fontMapWidth * (fontHeight/8)) + (charColPositionOnBitmap * fontWidth);
tempX=x;
for (row=0; row<rowsToDraw; row++) {
for (i=0; i<fontWidth; i++ ) {
screenmemory[tempX + (( (line*(fontHeight/8)) +row)*LCDWIDTH) ] = pgm_read_byte(fontsPointer[fontType]+FONTHEADERSIZE+(charBitmapStartPosition+i+(row*fontMapWidth)));
tempX++;
}
tempX=x;
}
}

View File

@@ -20,6 +20,8 @@
#define LCDWIDTH 64
#define LCDHEIGHT 48
#define FONTHEADERSIZE 7
#define NORM 0
#define XOR 1
@@ -27,6 +29,8 @@
#define PAGE 0
#define ALL 1
#define SETCONTRAST 0x81
#define DISPLAYALLONRESUME 0xA4
#define DISPLAYALLON 0xA5
@@ -64,8 +68,14 @@ class MICROVIEW {
public:
MICROVIEW(void) {};
void begin(void);
// RAW LCD functions
void command(uint8_t c);
void data(uint8_t c);
void setColumnAddress(uint8_t add);
void setPageAddress(uint8_t add);
// LCD Draw functions
void clear(uint8_t mode);
void invert(uint8_t i);
void display(void);
@@ -80,15 +90,16 @@ public:
void drawChar(uint8_t x, uint8_t line, uint8_t c, uint8_t mode);
void drawBitmap(void);
// Font functions
uint8_t getFontWidth(void);
uint8_t getFontHeight(void);
uint8_t getTotalFonts(void);
uint8_t getFontType(void);
uint8_t setFontType(uint8_t type);
uint8_t getFontStartChar(void);
uint8_t getFontTotalChar(void);
void setColumnAddress(uint8_t add);
void setPageAddress(uint8_t add);
// LCD Rotate Scroll functions
void scrollRight(uint8_t start, uint8_t stop);
void scrollLeft(uint8_t start, uint8_t stop);
void scrollVertRight(uint8_t start, uint8_t stop);
@@ -99,7 +110,8 @@ private:
//uint8_t cs;
volatile uint8_t *mosiport, *sckport, *csport, *dcport; // use volatile because these are fixed location port address
uint8_t mosipinmask, sckpinmask, cspinmask, dcpinmask;
uint8_t fontWidth, fontHeight, fontType;
uint8_t fontWidth, fontHeight, fontType, fontStartChar, fontTotalChar;
uint16_t fontMapWidth;
//unsigned char *fontsPointer[TOTALFONTS];
static const unsigned char *fontsPointer[];
};

View File

@@ -4,9 +4,9 @@
#include <avr/pgmspace.h>
// Standard ASCII 5x7 font
static const unsigned char font[] PROGMEM = {
// first row FONTTYPE, FONTWIDTH, FONTHEIGHT
0,5,7,
static const unsigned char font5x7[] PROGMEM = {
// first row FONTTYPE, FONTWIDTH, FONTHEIGHT, ASCII START CHAR, TOTAL CHARACTERS, FONT MAP WIDTH
0,5,7,0,255,12,75,
0x00, 0x00, 0x00, 0x00, 0x00,
0x3E, 0x5B, 0x4F, 0x5B, 0x3E,
0x3E, 0x6B, 0x4F, 0x6B, 0x3E,

171
font8x16.h Normal file
View File

@@ -0,0 +1,171 @@
#ifndef FONT8X16_H
#define FONT8X16_H
#include <avr/pgmspace.h>
static const unsigned char font8x16[] PROGMEM = {
// first row FONTTYPE, FONTWIDTH, FONTHEIGHT, ASCII START CHAR, TOTAL CHARACTERS, FONT MAP WIDTH HIGH, FONT MAP WIDTH LOW (2,56 meaning 256)
0,8,16,0,160,2,56,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00,
0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x80, 0x80, 0x00, 0x00, 0x00,
0x80, 0x80, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00,
0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0xC0, 0xE0, 0xE0, 0xC0, 0x00, 0x00, 0x00, 0x00,
0xFC, 0x1C, 0x1C, 0x3C, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xE0, 0x28, 0x1C, 0x00, 0x00, 0x00,
0x00, 0x3C, 0xC2, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xF8, 0x6C, 0x3C, 0x34, 0xFE, 0x00, 0x00, 0x88, 0xF0, 0x0E, 0xF8, 0x80, 0x00, 0x00, 0x00,
0x80, 0x80, 0xFF, 0x80, 0x80, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xE0, 0xF8, 0xFC, 0x00, 0x00, 0x00,
0x00, 0x04, 0xFE, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00,
0x3C, 0x42, 0xFE, 0x02, 0xFE, 0x00, 0x00, 0x00, 0x80, 0x80, 0xFF, 0x80, 0x80, 0x00, 0x00, 0x00,
0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x80, 0x80, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x08, 0xFE, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x80, 0x80, 0x00, 0x00, 0x00,
0x80, 0x80, 0x80, 0xC0, 0x80, 0x00, 0x00, 0x00, 0xC0, 0xC0, 0x80, 0x80, 0x80, 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, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00,
0x1F, 0x18, 0x18, 0x1C, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x10, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00,
0x01, 0x01, 0x3F, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x38, 0x0F, 0x00, 0x00, 0x0C, 0x07, 0x00, 0x00, 0x08, 0x07, 0x38, 0x0F, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x0F, 0x1F, 0x00, 0x00, 0x00,
0x00, 0x10, 0x3F, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x3F, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00,
0xF0, 0xF0, 0x00, 0xF0, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xC0, 0xE0, 0xF0, 0xC0, 0xF0, 0xF0,
0xF0, 0xF8, 0xFC, 0xB8, 0x30, 0x00, 0x00, 0x00, 0x70, 0x88, 0x88, 0x70, 0xC0, 0xF0, 0x18, 0x00,
0x00, 0x00, 0x70, 0xF8, 0xD8, 0xF8, 0x70, 0x00, 0xF0, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xE0, 0xF8, 0x18, 0x00, 0x00, 0x00, 0x00, 0x18, 0xF8, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00,
0x10, 0xF0, 0x38, 0xF0, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 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, 0xF0, 0x18, 0x00, 0x00, 0x00, 0x00,
0xF0, 0xF8, 0x18, 0xF8, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x20, 0x20, 0xF8, 0xF8, 0x00, 0x00, 0x00,
0x70, 0x78, 0x98, 0xF8, 0xF0, 0x00, 0x00, 0x00, 0x30, 0x38, 0x98, 0xF8, 0x70, 0x00, 0x00, 0x00,
0x00, 0xC0, 0x70, 0xF8, 0xF8, 0x00, 0x00, 0x00, 0xF8, 0xF8, 0xD8, 0xD8, 0x98, 0x00, 0x00, 0x00,
0x00, 0xF0, 0xF8, 0xD8, 0xD8, 0x90, 0x00, 0x00, 0x00, 0x18, 0x18, 0x98, 0xF8, 0x38, 0x00, 0x00,
0x70, 0xF8, 0xD8, 0xF8, 0x70, 0x00, 0x00, 0x00, 0xF0, 0xF8, 0x18, 0xF8, 0xF0, 0x00, 0x00, 0x00,
0x00, 0xC0, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0xC0, 0xC0, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
0x00, 0x00, 0x60, 0xC0, 0xC0, 0x80, 0x80, 0x80, 0x00, 0x30, 0x38, 0x98, 0xF8, 0x70, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1B, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x1E, 0x1F, 0x07, 0x1E, 0x0F, 0x07, 0x06,
0x0C, 0x1D, 0x3F, 0x1F, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x0F, 0x03, 0x0E, 0x11, 0x11,
0x00, 0x0E, 0x1F, 0x19, 0x1B, 0x1F, 0x1E, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x1F, 0x7F, 0x60, 0x00, 0x00, 0x00, 0x00, 0x60, 0x7F, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x1F, 0x03, 0x03, 0x03,
0x00, 0x58, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00,
0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x0F, 0x1F, 0x18, 0x1F, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x1F, 0x00, 0x00, 0x00,
0x1C, 0x1E, 0x1F, 0x19, 0x18, 0x00, 0x00, 0x00, 0x0C, 0x1C, 0x19, 0x1F, 0x0F, 0x00, 0x00, 0x00,
0x07, 0x07, 0x06, 0x1F, 0x1F, 0x06, 0x00, 0x00, 0x0D, 0x1D, 0x18, 0x1F, 0x0F, 0x00, 0x00, 0x00,
0x00, 0x0F, 0x1F, 0x18, 0x1F, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x1F, 0x01, 0x00, 0x00, 0x00,
0x0F, 0x1F, 0x18, 0x1F, 0x0F, 0x00, 0x00, 0x00, 0x09, 0x1B, 0x1B, 0x1F, 0x0F, 0x00, 0x00, 0x00,
0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x03, 0x07, 0x07, 0x04, 0x0C, 0x08, 0x00, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D,
0x00, 0x00, 0x18, 0x08, 0x0C, 0x04, 0x07, 0x07, 0x00, 0x00, 0x1B, 0x1B, 0x00, 0x00, 0x00, 0x00,
0x80, 0x60, 0x10, 0x10, 0xC8, 0xC8, 0x48, 0xC8, 0x00, 0xE0, 0xF8, 0xF8, 0xE0, 0x00, 0x00, 0x00,
0x00, 0xF8, 0xF8, 0x98, 0x98, 0xF8, 0x70, 0x00, 0x00, 0xF0, 0xF8, 0x18, 0x18, 0x78, 0x70, 0x00,
0x00, 0xF8, 0xF8, 0x18, 0x18, 0xF8, 0xF0, 0x00, 0x00, 0xF8, 0xF8, 0x98, 0x98, 0x98, 0x00, 0x00,
0x00, 0xF8, 0xF8, 0x98, 0x98, 0x98, 0x00, 0x00, 0x00, 0xF0, 0xF8, 0x18, 0x18, 0x78, 0x70, 0x00,
0x00, 0xF8, 0xF8, 0x80, 0x80, 0xF8, 0xF8, 0x00, 0x00, 0xF8, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0xF8, 0xF8, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xF8, 0xC0, 0xF8, 0x38, 0x08, 0x00,
0x00, 0xF8, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xF8, 0xF8, 0x80, 0x80, 0xF8, 0xF8,
0x00, 0xF8, 0xF8, 0xF0, 0x80, 0xF8, 0xF8, 0x00, 0x00, 0xF0, 0xF8, 0x18, 0x18, 0xF8, 0xF0, 0x00,
0x00, 0xF8, 0xF8, 0x98, 0x98, 0xF8, 0xF0, 0x00, 0x00, 0xF0, 0xF8, 0x18, 0x18, 0xF8, 0xF0, 0x00,
0x00, 0xF8, 0xF8, 0x98, 0x98, 0xF8, 0x70, 0x00, 0x00, 0x70, 0xF8, 0xD8, 0xB8, 0x30, 0x00, 0x00,
0x18, 0x18, 0xF8, 0xF8, 0x18, 0x18, 0x00, 0x00, 0x00, 0xF8, 0xF8, 0x00, 0x00, 0xF8, 0xF8, 0x00,
0x38, 0xF8, 0xC0, 0xC0, 0xF8, 0x38, 0x00, 0x00, 0x38, 0xF8, 0xC0, 0xF0, 0x78, 0xF0, 0xE0, 0xF8,
0x08, 0x78, 0xF0, 0xF0, 0x78, 0x08, 0x00, 0x00, 0x08, 0x78, 0xF0, 0xF0, 0x78, 0x08, 0x00, 0x00,
0x00, 0x18, 0x18, 0xF8, 0xF8, 0x38, 0x00, 0x00, 0x00, 0xF8, 0xF8, 0x08, 0x00, 0x00, 0x00, 0x00,
0x38, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0xF8, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x80, 0xC0, 0x70, 0x30, 0x70, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x0F, 0x10, 0x20, 0x47, 0x4F, 0x48, 0x4C, 0x4F, 0x1C, 0x1F, 0x07, 0x07, 0x1F, 0x1C, 0x00, 0x00,
0x00, 0x1F, 0x1F, 0x19, 0x19, 0x1F, 0x0F, 0x00, 0x00, 0x0F, 0x1F, 0x18, 0x18, 0x1E, 0x0E, 0x00,
0x00, 0x1F, 0x1F, 0x18, 0x18, 0x1F, 0x0F, 0x00, 0x00, 0x1F, 0x1F, 0x19, 0x19, 0x19, 0x00, 0x00,
0x00, 0x1F, 0x1F, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x0F, 0x1F, 0x18, 0x1B, 0x0F, 0x1F, 0x00,
0x00, 0x1F, 0x1F, 0x01, 0x01, 0x1F, 0x1F, 0x00, 0x00, 0x1F, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00,
0x0E, 0x1E, 0x18, 0x1F, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x1F, 0x01, 0x1F, 0x1E, 0x10, 0x00,
0x00, 0x1F, 0x1F, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x1F, 0x1F, 0x03, 0x1F, 0x1F, 0x03, 0x1F,
0x00, 0x1F, 0x1F, 0x01, 0x0F, 0x1F, 0x1F, 0x00, 0x00, 0x0F, 0x1F, 0x18, 0x18, 0x1F, 0x0F, 0x00,
0x00, 0x1F, 0x1F, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x0F, 0x1F, 0x18, 0x18, 0x3F, 0x2F, 0x00,
0x00, 0x1F, 0x1F, 0x01, 0x01, 0x1F, 0x1F, 0x00, 0x00, 0x0E, 0x1E, 0x19, 0x1F, 0x0F, 0x00, 0x00,
0x00, 0x00, 0x1F, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x1F, 0x18, 0x18, 0x1F, 0x0F, 0x00,
0x00, 0x07, 0x1F, 0x1F, 0x07, 0x00, 0x00, 0x00, 0x00, 0x07, 0x1F, 0x1F, 0x00, 0x1F, 0x1F, 0x07,
0x10, 0x1E, 0x0F, 0x0F, 0x1E, 0x10, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x1F, 0x00, 0x00, 0x00, 0x00,
0x00, 0x1C, 0x1F, 0x1B, 0x18, 0x18, 0x00, 0x00, 0x00, 0x7F, 0x7F, 0x40, 0x00, 0x00, 0x00, 0x00,
0x00, 0x01, 0x1E, 0x30, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7F, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00,
0x00, 0x08, 0x08, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xC0, 0xC0, 0x80, 0x00, 0x00,
0x00, 0xF8, 0xF8, 0xC0, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xC0, 0xC0, 0x80, 0x00, 0x00,
0x00, 0x80, 0xC0, 0xC0, 0xF8, 0xF8, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xC0, 0xC0, 0x80, 0x00, 0x00,
0xC0, 0xF0, 0xF8, 0xC8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xC0, 0xC0, 0xC0, 0x00, 0x00,
0x00, 0xF8, 0xF8, 0xC0, 0xC0, 0xC0, 0x00, 0x00, 0x00, 0xD8, 0xD8, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xD8, 0xD8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xF8, 0x80, 0xC0, 0x40, 0x00, 0x00,
0x00, 0xF8, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0,
0x00, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xC0, 0xC0, 0x80, 0x00, 0x00,
0x00, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xC0, 0xC0, 0xC0, 0x00, 0x00,
0x00, 0xC0, 0xC0, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, 0x40, 0xC0, 0x80, 0x00, 0x00,
0xC0, 0xF0, 0xF0, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xC0, 0x00, 0xC0, 0xC0, 0x00, 0x00,
0xC0, 0xC0, 0x80, 0x80, 0xC0, 0xC0, 0x00, 0x00, 0xC0, 0xC0, 0x00, 0xC0, 0xC0, 0x00, 0xC0, 0xC0,
0x40, 0xC0, 0x00, 0xC0, 0x40, 0x00, 0x00, 0x00, 0xC0, 0xC0, 0x00, 0xC0, 0xC0, 0x00, 0x00, 0x00,
0xC0, 0xC0, 0xC0, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xF0, 0x30, 0x00, 0x00, 0x00,
0x00, 0x00, 0xF8, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0xF0, 0xF0, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x80, 0x80, 0x80, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x1E, 0x1A, 0x1F, 0x1F, 0x00, 0x00,
0x00, 0x1F, 0x1F, 0x18, 0x1F, 0x1F, 0x00, 0x00, 0x00, 0x0F, 0x1F, 0x18, 0x1D, 0x0D, 0x00, 0x00,
0x00, 0x1F, 0x1F, 0x18, 0x1F, 0x1F, 0x00, 0x00, 0x00, 0x0F, 0x1F, 0x1A, 0x1B, 0x0B, 0x00, 0x00,
0x00, 0x1F, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4F, 0x5F, 0x58, 0x7F, 0x3F, 0x00, 0x00,
0x00, 0x1F, 0x1F, 0x00, 0x1F, 0x1F, 0x00, 0x00, 0x00, 0x1F, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00,
0x60, 0x7F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x1F, 0x07, 0x1E, 0x10, 0x00, 0x00,
0x00, 0x1F, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x1F, 0x00, 0x1F, 0x1F, 0x00, 0x1F,
0x00, 0x1F, 0x1F, 0x00, 0x1F, 0x1F, 0x00, 0x00, 0x00, 0x0F, 0x1F, 0x18, 0x1F, 0x0F, 0x00, 0x00,
0x00, 0x7F, 0x7F, 0x18, 0x1F, 0x0F, 0x00, 0x00, 0x00, 0x0F, 0x1F, 0x18, 0x7F, 0x7F, 0x00, 0x00,
0x00, 0x1F, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0D, 0x1D, 0x13, 0x1E, 0x0E, 0x00, 0x00,
0x00, 0x1F, 0x1F, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x1F, 0x18, 0x1F, 0x1F, 0x00, 0x00,
0x00, 0x07, 0x1F, 0x1F, 0x07, 0x00, 0x00, 0x00, 0x03, 0x1F, 0x1E, 0x07, 0x07, 0x1E, 0x1F, 0x03,
0x10, 0x1D, 0x07, 0x1D, 0x10, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x7C, 0x1F, 0x00, 0x00, 0x00, 0x00,
0x18, 0x1E, 0x1B, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0xFF, 0xFF, 0xC0, 0x00, 0x00, 0x00,
0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0xFF, 0x06, 0x00, 0x00, 0x00,
0x00, 0x03, 0x01, 0x01, 0x01, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xF0, 0x48, 0x48, 0x08, 0x30, 0x00, 0x00, 0x00, 0xF8, 0x08, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xF0, 0xB8, 0x98, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xC0, 0xC0, 0xF8, 0xF8, 0xC0, 0xC0, 0x00, 0x00, 0xC0, 0xC0, 0xF8, 0xF8, 0xC0, 0xC0, 0x00, 0x00,
0x00, 0x10, 0x08, 0x08, 0x10, 0x00, 0x00, 0x00, 0x70, 0x88, 0x88, 0xF0, 0xF0, 0x38, 0x00, 0x00,
0x00, 0x72, 0xFC, 0xDC, 0xBA, 0x30, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xF0, 0xF8, 0x18, 0x18, 0xF0, 0xF8, 0x98, 0xF8, 0x08, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x1A, 0x1C, 0xFC, 0xFA, 0x38, 0x00, 0x00, 0xF8, 0x08, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00,
0xF8, 0x08, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x58, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x68, 0x00, 0x70, 0x68, 0x00, 0x00,
0x00, 0x58, 0x38, 0x00, 0x58, 0x38, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xC0, 0xC0, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x10, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x10, 0xF0, 0x10, 0x00, 0xF0, 0x70, 0xC0,
0x00, 0x88, 0xD0, 0x50, 0xC8, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x80, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xF8, 0x08, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00,
0xC8, 0xD0, 0xD0, 0xC8, 0x00, 0x00, 0x00, 0x00, 0x08, 0x78, 0xF6, 0xF0, 0x7E, 0x08, 0x00, 0x00,
0x0F, 0x11, 0x10, 0x10, 0x0C, 0x00, 0x00, 0x00, 0x1F, 0x10, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x58, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x78, 0x3F, 0x0F, 0x00, 0x00, 0x00, 0x00,
0x00, 0x58, 0x38, 0x00, 0x58, 0x38, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x18, 0x18, 0x00,
0x00, 0x00, 0x7F, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x0C, 0x7F, 0x7F, 0x0C, 0x0C, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x0F, 0x0F, 0x11, 0x11, 0x0E,
0x00, 0x0E, 0x1E, 0x19, 0x1F, 0x0F, 0x00, 0x00, 0x00, 0x07, 0x0D, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x0F, 0x1F, 0x18, 0x18, 0x0F, 0x1F, 0x19, 0x1F, 0x10, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x1C, 0x1F, 0x1B, 0x18, 0x18, 0x00, 0x00, 0x1F, 0x10, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00,
0x1F, 0x10, 0x1F, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x01, 0x00, 0x00, 0x00,
0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x0D, 0x1D, 0x13, 0x1E, 0x0E, 0x00, 0x00, 0x00, 0x0D, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x0F, 0x1F, 0x18, 0x1F, 0x1F, 0x1A, 0x1B, 0x1F, 0x10, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00,
0x18, 0x1E, 0x1B, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x1F, 0x00, 0x00, 0x00, 0x00
};
#endif