Skip to content

Instantly share code, notes, and snippets.

@e-Gizmo
Created December 6, 2013 04:30
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save e-Gizmo/7818596 to your computer and use it in GitHub Desktop.
Save e-Gizmo/7818596 to your computer and use it in GitHub Desktop.
//************************************************************************
//
// LCD_driver.c: Interface for Nokia LCD
//
//************************************************************************
//************************************************************************
//* Edit History
//* <MLS> = Mark Sproul msproul -at- jove.rutgers.edu
//************************************************************************
//* Apr 2, 2010 <MLS> I received my Color LCD Shield sku: LCD-09363 from sparkfun
//* Apr 2, 2010 <MLS> The code was written for WinAVR, I modified it to compile under Arduino
//* Apr 3, 2010 <MLS> Changed LCDSetPixel to make it "RIGHT" side up
//* Apr 3, 2010 <MLS> Made LCDSetPixel public
//* Apr 3, 2010 <MLS> Working on MEGA, pin defs in nokia_tester.h
//* Apr 4, 2010 <MLS> Removed delays from LCDCommand & LCDCommand, increased speed by 75%
//************************************************************************
#include "nokia_tester.h"
#include "LCD_driver.h"
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <ctype.h>
#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/pgmspace.h>
#ifdef _USE_ARDUINO_FOR_NOKIEA_
#include "WProgram.h"
#endif
//************************************************************************
//
// "Private" Function Definitions
//
//************************************************************************
//************************************************************************
//
// Global Variables for LCD driver
//
//************************************************************************
//static char x_offset = 0;
//static char y_offset = 0;
//The spark logo array defines the SparkFun logo that is displayed during startup on the splash screen. The array may
//be changed to display a different image at startup or removed altogether. The array is local to the LCD driver and
//can not be used outside of this file.
static char bitmap[5980] PROGMEM =
{
0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xDF, 0xBF, 0xBF, 0xDF, 0xBF, 0xBF, 0xDF, 0xBF, 0xDF, 0xBF, 0xBF, 0xDF, 0xBF, 0xDF, 0xBF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF,
0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xDF, 0xBF, 0xDF, 0xBF, 0xBF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF,
0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF,
0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF,
0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0x11, 0xDF, 0xBB, 0xBB, 0xBF, 0xBF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF,
0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0x56, 0xBB, 0x11, 0x56, 0x11, 0x11, 0xBF, 0xBF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF,
0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBB, 0x11, 0x11, 0x11, 0x11, 0x56, 0x7A, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF,
0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xDF, 0x11, 0xB8, 0xFC, 0x11, 0x11, 0x11, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF,
0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0x25, 0xBF, 0xBF, 0xBF, 0x11, 0x11, 0xB8, 0xFC, 0x11, 0x11, 0xDF, 0xBF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF,
0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBF, 0xBF, 0xBF, 0xDF, 0xBB, 0xBF, 0xBF, 0xBB, 0xBB, 0xBB, 0xBB, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0x45, 0xBF, 0xBB, 0x21, 0xBB, 0xBF, 0xB7, 0xBB, 0x56, 0x11, 0x11, 0x11, 0x11, 0x7A, 0xBF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF,
0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xB2, 0xC4, 0xC4, 0x40, 0x00, 0x00, 0x00, 0x49, 0xBF, 0xBB, 0xBB, 0xBB, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0x21, 0x21, 0x21, 0x21, 0x21, 0x46, 0x21, 0x6E, 0x11, 0xDF, 0x11, 0xDF, 0xDF, 0xDF, 0xBF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF,
0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBF, 0x92, 0xC4, 0xC4, 0xC4, 0xC9, 0xDF, 0xBF, 0xDF, 0x00, 0xBF, 0xBB, 0xBB, 0xBB, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBB, 0x21, 0x6D, 0xFC, 0x6D, 0x21, 0x21, 0xDF, 0xDF, 0xBF, 0xBB, 0xBF, 0xBF, 0xBF, 0xBF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF,
0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0x96, 0x00, 0x24, 0xB6, 0xC4, 0xC9, 0xBB, 0xBB, 0xBB, 0x96, 0x49, 0xBF, 0xBB, 0xBB, 0xBB, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0x4A, 0x46, 0x21, 0x45, 0xFC, 0xFC, 0xFC, 0xFC, 0x21, 0x25, 0x4A, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF,
0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xCE, 0xCE, 0xCE, 0xCE, 0xCE, 0xCE, 0xCE, 0xCE, 0xCE, 0xCE, 0xCE, 0xCE, 0x49, 0x00, 0x00, 0xCE, 0xB7, 0xBB, 0xBF, 0xBF, 0xBB, 0xBB, 0xBF, 0x00, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0x46, 0x25, 0x21, 0x49, 0xFC, 0xFC, 0xFC, 0xFC, 0x21, 0x25, 0x4A, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF,
0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xB7, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xE1, 0x40, 0x00, 0x81, 0xC1, 0xC1, 0xCE, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0x00, 0xDF, 0xBB, 0xBB, 0xBB, 0xBB, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xDF, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBB, 0xBB, 0x4A, 0x25, 0xFC, 0xFC, 0xFC, 0xD8, 0x21, 0xBB, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF,
0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xB7, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0x00, 0x40, 0xE1, 0xC1, 0xC1, 0xC1, 0xCE, 0xBB, 0xBB, 0xBB, 0xBB, 0xBF, 0x00, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0x97, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0xBB, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0x6E, 0x21, 0x25, 0x90, 0x25, 0x21, 0x21, 0xDF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF,
0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xB7, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xE1, 0x40, 0x00, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xCE, 0xBB, 0xBB, 0xBB, 0xDF, 0x00, 0x92, 0xBF, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0x45, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0xBB, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBB, 0x21, 0x4A, 0x45, 0x21, 0x45, 0x92, 0x21, 0x46, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF,
0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xB7, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xE1, 0x40, 0x00, 0x40, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xCE, 0xBB, 0xBB, 0x97, 0x00, 0x4D, 0xBF, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0x6E, 0x21, 0x21, 0x46, 0xDF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBB, 0xBF, 0xBF, 0x21, 0xBB, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF,
0xBB, 0xBB, 0xBB, 0xBF, 0xBF, 0xBF, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xB7, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0x00, 0x40, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xCE, 0xBF, 0x97, 0x00, 0x49, 0xBF, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBB, 0x21, 0x21, 0x21, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xDF, 0x92, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF,
0xBB, 0xBB, 0xBF, 0x24, 0x00, 0x45, 0x92, 0xBB, 0xBF, 0xBB, 0xBB, 0xBB, 0xB7, 0xC1, 0xC1, 0xE1, 0x81, 0x00, 0xF4, 0xFC, 0xFC, 0xFC, 0xFC, 0xF8, 0xC5, 0xC1, 0xC1, 0xC1, 0xC1, 0xCE, 0x92, 0x00, 0xBF, 0xBF, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xDF, 0x21, 0x21, 0x4A, 0xBB, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0x45, 0x21, 0x21, 0x21, 0x45, 0x97, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xDF, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x93, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0x25, 0x46, 0x72, 0x21, 0x25, 0xBB, 0xDF, 0x46, 0x21, 0x4A, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0x92, 0x21, 0x21, 0x21, 0x21, 0x4A, 0x97, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF,
0xBB, 0xBB, 0xBB, 0x00, 0x49, 0x00, 0x00, 0x24, 0xB7, 0xBF, 0xBB, 0xBB, 0xB7, 0xC1, 0xC1, 0xC1, 0x00, 0x68, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xF8, 0xC1, 0xC1, 0xC1, 0xC1, 0xD2, 0x00, 0x4D, 0xBF, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBB, 0x21, 0x21, 0xBB, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0x21, 0x21, 0x21, 0x21, 0x21, 0x4A, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBB, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x4A, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0x21, 0x21, 0x21, 0x21, 0x21, 0x45, 0x6E, 0x21, 0x21, 0x21, 0xBB, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0x4A, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF,
0xBB, 0xBB, 0xBB, 0x24, 0xBF, 0xBF, 0xBF, 0x97, 0x24, 0x00, 0x97, 0xBF, 0xB7, 0xE1, 0x81, 0x00, 0xA8, 0xFC, 0xFC, 0xF8, 0xF8, 0xF8, 0xF8, 0xFC, 0xFC, 0xFC, 0xC1, 0xC1, 0xC1, 0x40, 0x92, 0xBF, 0xBB, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0x25, 0x21, 0x6E, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0x4A, 0x46, 0x46, 0x21, 0x21, 0x4A, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0x92, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x45, 0x21, 0x21, 0x4A, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0x21, 0x21, 0x21, 0x25, 0x21, 0x21, 0x21, 0x21, 0x45, 0x21, 0x21, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0x25, 0x21, 0x21, 0x25, 0x4A, 0x4A, 0x46, 0x21, 0x21, 0x21, 0xDF, 0xDF, 0xDF, 0xDF,
0xBB, 0xBB, 0xBF, 0x00, 0xB7, 0xBB, 0xBB, 0xBB, 0xBF, 0xBB, 0x24, 0x00, 0xD2, 0x00, 0x00, 0xC1, 0xFC, 0xFC, 0xED, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xFC, 0xFC, 0xED, 0xC1, 0xC1, 0xD2, 0xBB, 0xBB, 0x93, 0x45, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0xBB, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0x21, 0x21, 0xBB, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xDF, 0x21, 0x21, 0x4A, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0x6E, 0x21, 0x21, 0x21, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0x21, 0x21, 0x4A, 0xDF, 0x45, 0x21, 0x21, 0x97, 0xDF, 0x21, 0x21, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xBB, 0x21, 0x21, 0x4A, 0xDF, 0xDF, 0xDF, 0xDF, 0x97, 0x25, 0x21, 0x4A, 0xDF, 0xDF, 0xDF,
0xBB, 0xBB, 0xBB, 0xBB, 0x00, 0xCD, 0xB6, 0xBF, 0xBB, 0xBB, 0xBF, 0x96, 0x00, 0xC1, 0xE1, 0xC1, 0xFC, 0xFC, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xED, 0xFC, 0xF4, 0xC1, 0xC1, 0xD2, 0xBB, 0xBF, 0x25, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x6E, 0xBF, 0xBF, 0xBF, 0xBF, 0xDF, 0x21, 0x21, 0xBB, 0xBF, 0xBF, 0xBF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xDF, 0x21, 0x21, 0x4A, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0x4A, 0x21, 0x21, 0x93, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0x21, 0x21, 0xDF, 0xDF, 0x45, 0x21, 0x21, 0xDF, 0xDF, 0x21, 0x21, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0x92, 0x21, 0x4A, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xBB, 0x21, 0x25, 0xDF, 0xDF, 0xDF,
0xBB, 0xBB, 0xBB, 0xBF, 0xC4, 0xC4, 0xC4, 0xC9, 0xBB, 0xBB, 0xB7, 0x00, 0xD2, 0xC1, 0xC1, 0xC1, 0xFC, 0xFC, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xED, 0xFC, 0xF4, 0xC1, 0xC1, 0xD2, 0xBB, 0xBF, 0x45, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x93, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0x21, 0x21, 0xBB, 0xBF, 0xBF, 0xBB, 0x21, 0x21, 0x21, 0x21, 0x21, 0x97, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xDF, 0x21, 0x21, 0x4A, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0x4A, 0x21, 0x21, 0x97, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0x21, 0x21, 0xDF, 0xDF, 0x45, 0x21, 0x21, 0xDF, 0xDF, 0x21, 0x21, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0x92, 0x21, 0x4A, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xBB, 0x21, 0x25, 0xDF, 0xDF, 0xDF,
0xBB, 0xBB, 0xBB, 0xBB, 0xC4, 0xC4, 0xC4, 0xA9, 0xBF, 0xB7, 0x00, 0xBB, 0xB7, 0xC1, 0xC1, 0xE1, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xF4, 0xC1, 0xC1, 0xD2, 0xBB, 0xBB, 0xBF, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0x21, 0x21, 0xBB, 0xBF, 0xBF, 0xBB, 0x21, 0x21, 0x21, 0x21, 0x21, 0x97, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xDF, 0x21, 0x21, 0x4A, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xDF, 0xDF, 0xBF, 0xDF, 0x4A, 0x21, 0x21, 0x97, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0x21, 0x21, 0xDF, 0xDF, 0x45, 0x21, 0x21, 0xDF, 0xDF, 0x21, 0x21, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0x92, 0x21, 0x4A, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xBB, 0x21, 0x25, 0xDF, 0xDF, 0xDF,
0xBB, 0xBB, 0xBB, 0xBB, 0xBF, 0xB6, 0x6E, 0x00, 0x4D, 0x00, 0xBB, 0xBB, 0xB7, 0xC1, 0xC1, 0xC1, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xC9, 0xC1, 0xC1, 0xD2, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xDF, 0x21, 0x21, 0xBB, 0xBF, 0xBF, 0xBF, 0xDF, 0xDF, 0xBB, 0x21, 0x21, 0x97, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xDF, 0x21, 0x21, 0x4A, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xDF, 0xDF, 0xBB, 0x46, 0x21, 0x21, 0xBB, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0x21, 0x21, 0xDF, 0xDF, 0x45, 0x21, 0x21, 0xDF, 0xDF, 0x21, 0x21, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0x92, 0x21, 0x4A, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xBB, 0x21, 0x25, 0xDF, 0xDF, 0xDF,
0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBF, 0xBF, 0x72, 0x00, 0x49, 0xBF, 0xBB, 0xB7, 0xC1, 0xC1, 0xC1, 0xFC, 0xFC, 0xC9, 0xED, 0xED, 0xED, 0xED, 0xED, 0xED, 0xED, 0xC1, 0xC1, 0xC1, 0xCE, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xDF, 0x21, 0x21, 0xBB, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBB, 0x21, 0x21, 0x97, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xDF, 0x21, 0x21, 0x4A, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xDF, 0xDF, 0x46, 0x21, 0x21, 0x45, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0x21, 0x21, 0xDF, 0xDF, 0x45, 0x21, 0x21, 0xDF, 0xDF, 0x21, 0x21, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0x92, 0x21, 0x4A, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xBB, 0x21, 0x25, 0xDF, 0xDF, 0xDF,
0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0x49, 0x45, 0x00, 0xB7, 0xBB, 0xB7, 0xC1, 0xC1, 0xC1, 0xFC, 0xFC, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xCE, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xDF, 0x21, 0x21, 0xBB, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBB, 0x21, 0x21, 0x97, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xDF, 0x21, 0x21, 0x4A, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xDF, 0x45, 0x21, 0x21, 0x46, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0x21, 0x21, 0xDF, 0xDF, 0x45, 0x21, 0x21, 0xDF, 0xDF, 0x21, 0x21, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0x93, 0x21, 0x25, 0xBB, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0x92, 0x21, 0x45, 0xDF, 0xDF, 0xDF,
0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xDF, 0x00, 0x00, 0xDF, 0xBB, 0x00, 0x6E, 0xB7, 0xC1, 0xC1, 0xC1, 0xF8, 0xFC, 0xFC, 0xE5, 0xC5, 0xC5, 0xC5, 0xC5, 0xC5, 0xC5, 0xC1, 0xC1, 0xC1, 0xCE, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0x25, 0x21, 0x4A, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0x46, 0x21, 0x21, 0xBB, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBB, 0xBB, 0x21, 0x21, 0x4A, 0xBB, 0xBB, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xDF, 0x4A, 0x21, 0x21, 0x46, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0x21, 0x21, 0xDF, 0xDF, 0x45, 0x21, 0x21, 0xDF, 0xDF, 0x21, 0x21, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0x21, 0x21, 0x21, 0x93, 0xBB, 0xBB, 0xBB, 0x21, 0x21, 0x21, 0x97, 0xDF, 0xDF, 0xDF,
0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0x49, 0x49, 0xBF, 0xBB, 0xBB, 0xDF, 0x24, 0x24, 0xE1, 0xC1, 0xC1, 0xC1, 0xF8, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xF4, 0xC1, 0xC1, 0xCE, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBB, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x46, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xDF, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x4A, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xDF, 0x45, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x6E, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0x21, 0x21, 0xDF, 0xDF, 0x45, 0x21, 0x21, 0xDF, 0xDF, 0x21, 0x21, 0xBF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xBB, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x92, 0xDF, 0xDF, 0xDF, 0xDF,
0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0x00, 0xDF, 0xBB, 0xBB, 0xBB, 0xBB, 0xBF, 0x8E, 0x00, 0x81, 0xE1, 0xC1, 0xC1, 0xCD, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xC5, 0xC1, 0xC1, 0xCE, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBB, 0x45, 0x25, 0x25, 0x25, 0x25, 0x25, 0x46, 0xBB, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0x4A, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0xBB, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0x97, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0xBB, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0x4A, 0x4A, 0xDF, 0xDF, 0x97, 0x25, 0x92, 0xDF, 0xDF, 0x6E, 0x45, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0x97, 0x25, 0x25, 0x25, 0x25, 0x6E, 0xBB, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF,
0xBB, 0xBB, 0xBB, 0xBB, 0x72, 0x4D, 0xBB, 0xBB, 0xBB, 0xBF, 0xBB, 0x49, 0x40, 0xC1, 0x40, 0x00, 0xC1, 0xE1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xCE, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF,
0xBB, 0xBB, 0xBB, 0xBB, 0x4D, 0x6E, 0xBF, 0xBF, 0xDF, 0x97, 0x24, 0x00, 0x8E, 0xE1, 0xE1, 0x24, 0x00, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xD2, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF,
0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0x00, 0x00, 0x00, 0x00, 0x49, 0xBB, 0xDF, 0xB7, 0xC6, 0xC6, 0xC6, 0xC6, 0x00, 0x40, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x81, 0xC6, 0xC6, 0xC6, 0xD2, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0x96, 0xBF, 0xBB, 0xBF, 0x96, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xBB, 0x92, 0x92, 0x96, 0xBB, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF,
0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xDF, 0xDF, 0xDF, 0xBF, 0xBB, 0xBB, 0xBB, 0xBB, 0xBF, 0xBF, 0xBF, 0xBB, 0xDF, 0x6E, 0x00, 0x00, 0xB7, 0xBF, 0xBF, 0xBF, 0x92, 0x49, 0xBF, 0xBF, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xDF, 0x00, 0x00, 0xBF, 0xBB, 0x00, 0xBF, 0x96, 0x00, 0x24, 0x24, 0xBB, 0x49, 0x24, 0x24, 0x00, 0xBF, 0x24, 0xDF, 0xBF, 0x24, 0x72, 0xBF, 0xDF, 0x00, 0xDF, 0x72, 0x24, 0x24, 0x24, 0x4D, 0x72, 0x24, 0x24, 0x24, 0xBB, 0x92, 0x24, 0x24, 0x24, 0xBF, 0xDF, 0x24, 0xDF, 0xDF, 0x49, 0xDF, 0x4D, 0xDF, 0x4D, 0x96, 0xBB, 0x4D, 0xDF, 0xDF, 0xDF, 0xDF, 0x00, 0xBB, 0xDB, 0xBB, 0x45, 0xDF, 0x24, 0x24, 0x24, 0xBB, 0xDF, 0x45, 0xDF, 0xDF, 0x6E, 0x6E, 0x00, 0x24, 0x24, 0x72, 0x6E, 0x24, 0x24, 0x24, 0xDF, 0xDF, 0x49, 0xB7, 0xDF, 0xDF, 0x24, 0xDF, 0xDF, 0xDF, 0xDF,
0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBF, 0xBB, 0x24, 0x00, 0x72, 0xBB, 0xBB, 0x00, 0x97, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xDF, 0x49, 0xBB, 0x49, 0x24, 0x45, 0xBF, 0x96, 0x00, 0x49, 0xBF, 0xBF, 0x00, 0xDF, 0xBF, 0xBB, 0xBF, 0x24, 0x49, 0x45, 0x00, 0x72, 0xBF, 0x45, 0xDF, 0x4D, 0xBF, 0xDF, 0x49, 0xDF, 0xDF, 0x6E, 0x72, 0x96, 0x4D, 0xB7, 0x69, 0xBF, 0xDF, 0x72, 0xBB, 0xDF, 0x45, 0x00, 0xDF, 0x45, 0xDF, 0x49, 0xBF, 0xDF, 0x49, 0x49, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0x00, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0x00, 0x49, 0xBB, 0xDF, 0xDF, 0x69, 0x00, 0xDF, 0x4D, 0xDF, 0xDF, 0x49, 0xDF, 0xDF, 0x4D, 0x72, 0x96, 0x49, 0xBB, 0xBB, 0x96, 0x00, 0xDF, 0xDF, 0x00, 0xDF, 0xDF, 0xDF, 0xDF,
0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBF, 0xBF, 0x72, 0x45, 0x00, 0x96, 0xBF, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xDF, 0x49, 0xBF, 0x4D, 0xDF, 0x24, 0xBF, 0x96, 0x00, 0x97, 0x96, 0xBB, 0x00, 0x96, 0x96, 0x24, 0xBF, 0x00, 0xDF, 0xDF, 0x00, 0x72, 0xBB, 0x49, 0x69, 0x24, 0xBF, 0xDF, 0x49, 0xBF, 0xBF, 0x6E, 0xDF, 0x49, 0x24, 0xBF, 0x4D, 0x96, 0x96, 0x49, 0xBB, 0xDF, 0x45, 0xDF, 0x24, 0x49, 0xDF, 0x49, 0xBF, 0xBB, 0x49, 0x4D, 0x72, 0xDF, 0xDF, 0xDF, 0xDF, 0x00, 0x6E, 0x6E, 0x6E, 0x24, 0xDF, 0x00, 0xB7, 0x96, 0xBB, 0xDF, 0x4D, 0xDF, 0x00, 0x6E, 0xDF, 0xDF, 0x45, 0xDF, 0xDF, 0x69, 0xDF, 0x45, 0x45, 0xDF, 0x00, 0x69, 0x4D, 0x49, 0xDF, 0x00, 0x97, 0x96, 0xDF, 0xDF,
0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBF, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBF, 0xBB, 0xBB, 0xBF, 0xBB, 0xBB, 0xBF, 0xBF, 0xBB, 0xBF, 0xBB, 0xBB, 0xDF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBB, 0xBF, 0xBF, 0xBF, 0xBF, 0xDF, 0xBB, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xDF, 0xDF, 0xBB, 0xDF, 0xDB, 0xDB, 0xDB, 0xBF, 0xBF, 0xBF, 0xBF, 0xDF, 0xBF, 0xDF, 0xDF, 0xDF, 0xBB, 0xDF, 0xDF, 0xDB, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDB, 0xDB, 0xDB, 0xDF, 0xDF, 0xDB, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDB, 0xDF, 0xDF, 0xDF, 0xDF, 0xDB, 0xDF, 0xDB, 0xDB, 0xDF, 0xDF,
0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF,
0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF,
0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF,
0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF,
0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF,
0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF,
0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF
};
//************************************************************************
//Usage: LCDClear(black);
//Inputs: char color: 8-bit color to be sent to the screen.
//Outputs: None
//Description: This function will clear the screen with "color" by writing the
// color to each location in the RAM of the LCD.
//************************************************************************
void LCDClear(int color)
{
unsigned int i;
#ifdef EPSON
LCDCommand(PASET);
LCDData(0);
LCDData(131);
LCDCommand(CASET);
LCDData(0);
LCDData(131);
LCDCommand(RAMWR);
#endif
#ifdef PHILLIPS
LCDCommand(PASETP);
LCDData(0);
LCDData(131);
LCDCommand(CASETP);
LCDData(0);
LCDData(131);
LCDCommand(RAMWRP);
#endif
for (i=0; i < (131*131)/2; i++)
{
LCDData((color >> 4) & 0x00FF);
LCDData(((color & 0x0F) << 4) | (color >> 8));
LCDData(color & 0x0FF); // nop(EPSON)
}
// x_offset = 0;
// y_offset = 0;
}
//************************************************************************
void delay_us(int microSecs)
{
delayMicroseconds(microSecs);
}
//************************************************************************
void delay_ms(int millisecs)
{
// delay(millisecs);
// delayMicroseconds(millisecs * 1000);
}
//************************************************************************
//Usage: LCDCommand(RAMWR);
//Inputs: char data - character command to be sent to the LCD
//Outputs: None
//************************************************************************
void LCDCommand(unsigned char data)
{
char jj;
cbi(LCD_PORT_CS, CS); // enable chip, p0.20 goes low
//delay_us(1);
cbi(LCD_PORT_DIO, DIO); // output low on data out (9th bit low = command), p0.19
//delay_us(1);
cbi(LCD_PORT_SCK, SCK); // send clock pulse
delay_us(1);
sbi(LCD_PORT_SCK, SCK);
//delay_us(1);
for (jj = 0; jj < 8; jj++)
{
if ((data & 0x80) == 0x80)
{
sbi(LCD_PORT_DIO, DIO);
}
else
{
cbi(LCD_PORT_DIO, DIO);
}
//delay_us(1);
cbi(LCD_PORT_SCK, SCK); // send clock pulse
//+ delay_us(1);
sbi(LCD_PORT_SCK, SCK);
data <<= 1;
}
sbi(LCD_PORT_CS, CS); // disable
}
//************************************************************************
//Usage: LCDData(RAMWR);
//Inputs: char data - character data to be sent to the LCD
//Outputs: None
//************************************************************************
void LCDData(unsigned char data)
{
char j;
cbi(LCD_PORT_CS, CS); // enable chip, p0.20 goes low
//delay_us(1);
sbi(LCD_PORT_DIO, DIO); // output high on data out (9th bit high = data), p0.19
//delay_us(1);
cbi(LCD_PORT_SCK, SCK); // send clock pulse
//+ delay_us(1);
sbi(LCD_PORT_SCK, SCK); // send clock pulse
//delay_us(1);
for (j = 0; j < 8; j++)
{
if ((data & 0x80) == 0x80)
{
sbi(LCD_PORT_DIO, DIO);
}
else
{
cbi(LCD_PORT_DIO, DIO);
}
//delay_us(1);
cbi(LCD_PORT_SCK, SCK); // send clock pulse
//+ delay_us(1);
sbi(LCD_PORT_SCK, SCK);
data <<= 1;
}
LCD_PORT_CS |= (1<<CS); // disable
}
//************************************************************************
//Usage: LCDInit();
//Inputs: None
//Outputs: None
//Description: Initializes the LCD regardless of if the controlller is an EPSON or PHILLIPS.
//************************************************************************
void LCDInit(void)
{
delay_ms(200);
cbi(LCD_PORT_SCK, SCK); //output_low (SPI_CLK);//output_low (SPI_DO);
cbi(LCD_PORT_DIO, DIO);
delay_us(10);
sbi(LCD_PORT_CS, CS); //output_high (LCD_CS);
delay_us(10);
cbi(LCD_PORT_RES, LCD_RES); //output_low (LCD_RESET);
delay_ms(200);
sbi(LCD_PORT_RES, LCD_RES); //output_high (LCD_RESET);
delay_ms(200);
sbi(LCD_PORT_SCK, SCK);
sbi(LCD_PORT_DIO, DIO);
delay_us(10);
LCDCommand(DISCTL); // display control(EPSON)
LCDData(0x0C); // 12 = 1100 - CL dividing ratio [don't divide] switching period 8H (default)
LCDData(0x20);
//LCDData(0x02);
LCDData(0x00);
LCDData(0x01);
LCDCommand(COMSCN); // common scanning direction(EPSON)
LCDData(0x01);
LCDCommand(OSCON); // internal oscialltor ON(EPSON)
LCDCommand(SLPOUT); // sleep out(EPSON)
LCDCommand(P_SLEEPOUT); //sleep out(PHILLIPS)
LCDCommand(PWRCTR); // power ctrl(EPSON)
LCDData(0x0F); //everything on, no external reference resistors
LCDCommand(P_BSTRON); //Booset On(PHILLIPS)
LCDCommand(DISINV); // invert display mode(EPSON)
// LCDCommand(P_INVON); // invert display mode(PHILLIPS)
// LCDCommand(0xB8); // invert display mode(PHILLIPS)
LCDCommand(DATCTL); // data control(EPSON)
LCDData(0x03); // correct for normal sin7
LCDData(0x00); // normal RGB arrangement
//LCDData(0x01); // 8-bit Grayscale
LCDData(0x02); // 16-bit Grayscale Type A
LCDCommand(P_MADCTL); //Memory Access Control(PHILLIPS)
LCDData(0xC0);
LCDCommand(P_COLMOD); // Set Color Mode(PHILLIPS)
LCDData(0x02);
LCDCommand(VOLCTR); // electronic volume, this is the contrast/brightness(EPSON)
//LCDData(0x18); // volume (contrast) setting - fine tuning, original
LCDData(0x24); // volume (contrast) setting - fine tuning, original
LCDData(0x03); // internal resistor ratio - coarse adjustment
LCDCommand(P_SETCON); // Set Contrast(PHILLIPS)
LCDData(0x3A);
LCDCommand(NOP); // nop(EPSON)
LCDCommand(P_NOP); // nop(PHILLIPS)
delay_ms(200);
LCDCommand(DISON); // display on(EPSON)
LCDCommand(P_DISPON); // display on(PHILLIPS)
}
//************************************************************************
//Usage: LCDPrintLogo();
//Inputs: None
//Outputs: None
//Description: Prints the logo_spark array to the LCD.
//************************************************************************
void LCDPrintLogo(void)
{
int x = 0, y = 25, logo_ix = 0, z;
char logo;
for (logo_ix = 0; logo_ix < 5980; logo_ix++)
{
logo = pgm_read_byte(&(bitmap[logo_ix]));
// for (z = 0; z < 8; z++)
// {
// if ((logo & 0x80) == 0x80) LCDSetPixel(RED, y, x);
LCDSetPixel(logo, y, x);
x++;
if (x == 130)
{
x = 0;
y++;
}
// logo <<= 1;
// }
}
}
//************************************************************************
//Usage: LCDSetPixel(white, 0, 0);
//Inputs: unsigned char color - desired color of the pixel
// unsigned char x - Page address of pixel to be colored
// unsigned char y - column address of pixel to be colored
//Outputs: None
//Description: Sets the starting page(row) and column (x & y) coordinates in ram,
// then writes the colour to display memory. The ending x & y are left
// maxed out so one can continue sending colour data bytes to the 'open'
// RAMWR command to fill further memory. issuing any red command
// finishes RAMWR.
//**NOTE** Because this function is static, it is essentially a "private" function
// and can only be used within this file!
//* Apr 3, 2010 <MLS> Made LCDSetPixel public
//************************************************************************
void LCDSetPixel(int color, unsigned char x, unsigned char y)
{
#ifdef EPSON
LCDCommand(PASET); // page start/end ram
LCDData(x);
LCDData(ENDPAGE);
LCDCommand(CASET); // column start/end ram
LCDData(y);
LCDData(ENDCOL);
LCDCommand(RAMWR); // write
LCDData((color>>4)&0x00FF);
LCDData(((color&0x0F)<<4)|(color>>8));
LCDData(color&0x0FF); // nop(EPSON)
//LCDData(color);
//LCDData(NOP);
//LCDData(NOP);
#endif
#ifdef PHILLIPS
LCDCommand(PASETP); // page start/end ram
LCDData(x);
LCDData(ENDPAGE);
LCDCommand(CASETP); // column start/end ram
LCDData(y);
LCDData(ENDCOL);
LCDCommand(RAMWRP); // write
LCDData((unsigned char)(color));
#endif
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment