
mbed
Dependencies: LSM9DS1_Library_cal RPCInterface final mbed
Fork of SDFileSystem_HelloWorld by
Revision 1:f54bee9d59de, committed 2017-04-28
- Comitter:
- mikebenq
- Date:
- Fri Apr 28 19:18:46 2017 +0000
- Parent:
- 0:bdbd3d6fc5d5
- Child:
- 2:55495227fcca
- Commit message:
- ece4180
Changed in this revision
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/LSM9DS1_Library_cal.lib Fri Apr 28 19:18:46 2017 +0000 @@ -0,0 +1,1 @@ +https://developer.mbed.org/users/4180_1/code/LSM9DS1_Library_cal/#36abf8e18ade
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/RPCInterface.lib Fri Apr 28 19:18:46 2017 +0000 @@ -0,0 +1,1 @@ +http://developer.mbed.org/users/MichaelW/code/RPCInterface/#9d82e28ffaea
--- a/SDFileSystem.lib Fri Dec 07 11:25:01 2012 +0000 +++ b/SDFileSystem.lib Fri Apr 28 19:18:46 2017 +0000 @@ -1,1 +1,1 @@ -http://mbed.org/users/mbed_official/code/SDFileSystem/#c8f66dc765d4 +https://developer.mbed.org/teams/Rahul-Dutta-Choudhury-Amanvir-Singh-Sida/code/final/#26b04b75deaf
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/VS1002.cpp Fri Apr 28 19:18:46 2017 +0000 @@ -0,0 +1,237 @@ +#include "VS1002.h" +#include "mbed.h" + +Serial pc(USBTX, USBRX); +//TextLCD lcd(p30, p29, p17, p18, p19, p20); + +/* ================================================================== + * Constructor + * =================================================================*/ + +VS1002::VS1002(PinName mmosi, PinName mmiso, PinName ssck, PinName ccs, const char *name, PinName mosi, PinName miso, PinName sck, PinName cs, PinName rst, PinName dreq, PinName dcs, PinName vol) + : _sd(mmosi, mmiso, ssck, ccs, name), _spi(mosi, miso, sck), _CS(cs), _RST(rst), _DREQ(dreq), _DCS(dcs), _VOL(vol) { + + } + +/*=================================================================== + * Functions + *==================================================================*/ + +void VS1002::cs_low(void) +{ + _CS = 0; +} +void VS1002::cs_high(void) +{ + _CS = 1; +} +void VS1002::dcs_low(void) +{ + _DCS = 0; +} +void VS1002::dcs_high(void) +{ + _DCS = 1; +} +void VS1002::sci_en(void) //SCI enable +{ + cs_high(); + dcs_high(); + cs_low(); +} +void VS1002::sci_dis(void) //SCI disable +{ + cs_high(); +} +void VS1002::sdi_en(void) //SDI enable +{ + dcs_high(); + cs_high(); + dcs_low(); +} +void VS1002::sdi_dis(void) //SDI disable +{ + dcs_high(); +} +void VS1002::reset(void) //hardware reset +{ + wait(0.01); + _RST = 0; + wait(0.01); + _RST = 1; + wait(0.10); +} +void VS1002::power_down(void) //hardware and software reset +{ + cs_low(); + reset(); + sci_write(0x00, SM_PDOWN); + wait(0.01); + reset(); +} +void VS1002::sci_initialise(void) +{ + _RST = 1; //no reset + _spi.format(8,0); //spi 8bit interface, steady state low + _spi.frequency(1000000); //rising edge data record, freq. 1Mhz + + cs_low(); + for(int i=0; i<4; i++) + { + _spi.write(0xFF); //clock the chip a bit + } + cs_high(); + dcs_high(); + wait_us(5); +} +void VS1002::sdi_initialise(void) +{ + _spi.format(8,0); + _spi.frequency(7000000); //set to 7MHz + + cs_high(); + dcs_high(); +} +void VS1002::sci_write(unsigned char address, unsigned short int data) +{ + sci_en(); //enables SCI/disables SDI + + while(!_DREQ); //wait unitl data request is high + _spi.write(0x02); //SCI write + _spi.write(address); //register address + _spi.write((data >> 8) & 0xFF); //write out first half of data word + _spi.write(data & 0xFF); //write out second half of data word + + sci_dis(); //enables SDI/disables SCI + wait_us(5); +} +void VS1002::sdi_write(unsigned char datum) +{ + sdi_en(); + + while(!_DREQ); + _spi.write(datum); + + sci_dis(); +} +unsigned short int VS1002::read(unsigned short int address) +{ + cs_low(); //enables SCI/disables SDI + + while(!_DREQ); //wait unitl data request is high + _spi.write(0x03); //SCI write + _spi.write(address); //register address + unsigned short int received = _spi.write(0x00); //write out dummy byte + received <<= 8; + received += _spi.write(0x00); //write out dummy byte + + cs_high(); //enables SDI/disables SCI + + return received; //return received word +} +void VS1002::sine_test_activate(unsigned char wave) +{ + cs_high(); //enables SDI/disables SCI + + while(!_DREQ); //wait unitl data request is high + _spi.write(0x53); //SDI write + _spi.write(0xEF); //SDI write + _spi.write(0x6E); //SDI write + _spi.write(wave); //SDI write + _spi.write(0x00); //filler byte + _spi.write(0x00); //filler byte + _spi.write(0x00); //filler byte + _spi.write(0x00); //filler byte + + cs_low(); //enables SCI/disables SDI +} +void VS1002::sine_test_deactivate(void) +{ + cs_high(); + + while(!_DREQ); + _spi.write(0x45); //SDI write + _spi.write(0x78); //SDI write + _spi.write(0x69); //SDI write + _spi.write(0x74); //SDI write + _spi.write(0x00); //filler byte + _spi.write(0x00); //filler byte + _spi.write(0x00); //filler byte + _spi.write(0x00); //filler byte +} + + +void VS1002::volume(signed int left, signed int right) +{ + while(_DREQ == 0); + + unsigned short int _left = -left; //convert the decibel values into a format + unsigned short int _right = -right; //readable by the chip cf. datasheet p.32 subsection 8.6.11 + _left *= 2; + _right *= 2; + unsigned short int attenuation = ((256 * _left) + _right); + cs_low(); + sci_write(0x0B, attenuation); //writeout these values + cs_high(); +} + +void VS1002::play_song(int song_number) +{ + /*====== Song Select ======*/ + + char str[16] = "/sd/music/"; //folder where the songs are located + sprintf(str+10,"%d",song_number); //appending song number to path of the file + strcat(str,".mp3"); //appending .mp3 to file name + FILE *song; + unsigned char array[512]; //array for reading data from file + bool play_new=false; // Variable to see if new_song has be assigned or not + + song = fopen(str, "r"); // Open the music file in read mode + + /* Printing to LCD the present status */ + //lcd.cls(); + if(pause) + pc.printf("Paused "); + if(mute) + pc.printf("Muted"); + if(!mute && !pause) + pc.printf("Playing"); + + pc.printf("\n %d %s",new_song_number,song_name[new_song_number-1]); + + if(!song) + { + pc.printf("\n \n Error!!"); + exit(1); + } + while(!feof(song)) + { + if(!pause) + { + + fread(&array, 1, 512, song); + for(int i=0; i<512; i++) + { + sdi_write(array[i]); + } + volume(volume_set,volume_set); + } + if(new_song_number!=song_number) + { + play_new=true; + break; + } + + + } + + fclose(song); //close the file + + if(!play_new) + { + new_song_number+=1; // Goto Next song on completion of one song + if(new_song_number==7) + new_song_number=1; + play_new=false; + } +} \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/VS1002.h Fri Apr 28 19:18:46 2017 +0000 @@ -0,0 +1,76 @@ +#ifndef VS1002_H +#define VS1002_H + +#include "mbed.h" +#include "SDFileSystem.h" +#include "string" +#include "string.h" +//#include "TextLCD.h" + + +//SCI_MODE register bits as of p.26 of the datasheet +#define SM_DIFF 0x0001 +#define SM_SETTOZERO 0x0002 +#define SM_RESET 0x0004 +#define SM_OUTOFWAV 0x0008 +#define SM_PDOWN 0x0010 +#define SM_TESTS 0x0020 +#define SM_STREAM 0x0040 +#define SM_PLUSV 0x0080 +#define SM_DACT 0x0100 +#define SM_SDIORD 0x0200 +#define SM_SDISHARE 0x0400 +#define SM_SDINEW 0x0800 +#define SM_ADPCM 0x1000 +#define SM_ADPCM_HP 0x2000 + +extern int new_song_number; +extern int volume_set; +extern bool pause; +extern bool mute; +extern char * song_name[6]; + + +class VS1002 { + +public: + + VS1002(PinName mmosi, PinName mmiso, PinName ssck, PinName ccs, const char *name, PinName mosi, PinName miso, PinName sck, PinName cs, PinName rst, PinName dreq, PinName dcs, PinName vol); + + void cs_low(void); + void cs_high(void); + void dcs_low(void); + void dcs_high(void); + void sci_en(void); + void sci_dis(void); + void sdi_en(void); + void sdi_dis(void); + + void sci_initialise(void); + void sdi_initialise(void); + void reset(void); + void power_down(void); + + void sci_write(unsigned char, unsigned short int); + void sdi_write(unsigned char); + unsigned short int read(unsigned short int); + void sine_test_activate(unsigned char); + void volume(signed int,signed int); + void sine_test_deactivate(void); + void play_song(int); + + int num_of_files; + + DigitalIn _DREQ; + DigitalOut _RST; + AnalogIn _VOL; + +protected: + + SPI _spi; + DigitalOut _CS; + DigitalOut _DCS; + SDFileSystem _sd; + +}; +#endif \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/VS1053.cpp Fri Apr 28 19:18:46 2017 +0000 @@ -0,0 +1,325 @@ +#include "VS1053.h" +#include "mbed.h" + +// patch binary +#include "VS1053b_patch.c" +// spectrum analyzer binary +#include "VS1053b_specana.c" + +//Serial pc(USBTX, USBRX); + +/* ================================================================== + * Constructor + * =================================================================*/ +VS1053::VS1053( + PinName mosi, PinName miso, PinName sck, PinName cs, PinName rst, + PinName dreq, PinName dcs, PinName vol) + : + _spi(mosi, miso, sck), + _CS(cs), + _RST(rst), + _DREQ(dreq), + _DCS(dcs), + _VOL(vol) { + firstTime=-1; + } + +/*=================================================================== + * Functions + *==================================================================*/ + +void VS1053::cs_low(void) +{ + _CS = 0; +} +void VS1053::cs_high(void) +{ + _CS = 1; +} +void VS1053::dcs_low(void) +{ + _DCS = 0; + +} +void VS1053::dcs_high(void) +{ + _DCS = 1; +} +void VS1053::sci_en(void) //SCI enable +{ + cs_high(); + dcs_high(); + cs_low(); +} +void VS1053::sci_dis(void) //SCI disable +{ + cs_high(); +} +void VS1053::sdi_en(void) //SDI enable +{ + dcs_high(); + cs_high(); + dcs_low(); +} +void VS1053::sdi_dis(void) //SDI disable +{ + dcs_high(); +} +void VS1053::reset(void) //hardware reset +{ +// wait(0.01); + wait_ms(10); + _RST = 0; +// wait(0.01); + wait_ms(5); + _RST = 1; +// wait(0.10); + wait_ms(10); +} +void VS1053::power_down(void) //hardware and software reset +{ + cs_low(); + reset(); +// sci_write(0x00, SM_PDOWN); + sci_write(0x00, 0x10); // tempo + wait(0.01); + reset(); +} +void VS1053::sci_initialise(void) +{ + _RST = 1; //no reset + _spi.format(8,0); //spi 8bit interface, steady state low + // _spi.frequency(1000000); //rising edge data record, freq. 1Mhz + _spi.frequency(2000000); //rising edge data record, freq. 2Mhz + + + cs_low(); + for(int i=0; i<4; i++) + { + _spi.write(0xFF); //clock the chip a bit + } + cs_high(); + dcs_high(); + wait_us(5); +} +void VS1053::sdi_initialise(void) +{ + _spi.format(8,0); +// _spi.frequency(7000000); //set to 7MHz +// _spi.frequency(12000000); //set to 12MHz to make fast transfer + _spi.frequency(18000000); //set to 18MHz to make fast transfer +//NG does not work// _spi.frequency(24000000); //set to 24MHz to make fast transfer + + cs_high(); + dcs_high(); +} +void VS1053::sci_write(unsigned char address, unsigned short int data) +{ + sci_en(); //enables SCI/disables SDI + + while(!_DREQ); //wait unitl data request is high + _spi.write(0x02); //SCI write + _spi.write(address); //register address + _spi.write((data >> 8) & 0xFF); //write out first half of data word + _spi.write(data & 0xFF); //write out second half of data word + + sci_dis(); //enables SDI/disables SCI + wait_us(5); +} +void VS1053::sdi_write(unsigned char datum) +{ + sdi_en(); + + while(!_DREQ); + _spi.write(datum); + +//? sci_dis(); + sdi_dis(); +} +unsigned short int VS1053::sci_read(unsigned short int address) +{ + cs_low(); //enables SCI/disables SDI + + while(!_DREQ); //wait unitl data request is high + _spi.write(0x03); //SCI write + _spi.write(address); //register address + unsigned short int received = _spi.write(0x00); //write out dummy byte + received <<= 8; + received += _spi.write(0x00); //write out dummy byte + + cs_high(); //enables SDI/disables SCI + + return received; //return received word +} +void VS1053::sine_test_activate(unsigned char wave) +{ + cs_high(); //enables SDI/disables SCI + + while(!_DREQ); //wait unitl data request is high + _spi.write(0x53); //SDI write + _spi.write(0xEF); //SDI write + _spi.write(0x6E); //SDI write + _spi.write(wave); //SDI write + _spi.write(0x00); //filler byte + _spi.write(0x00); //filler byte + _spi.write(0x00); //filler byte + _spi.write(0x00); //filler byte + + cs_low(); //enables SCI/disables SDI +} +void VS1053::sine_test_deactivate(void) +{ + cs_high(); + + while(!_DREQ); + _spi.write(0x45); //SDI write + _spi.write(0x78); //SDI write + _spi.write(0x69); //SDI write + _spi.write(0x74); //SDI write + _spi.write(0x00); //filler byte + _spi.write(0x00); //filler byte + _spi.write(0x00); //filler byte + _spi.write(0x00); //filler byte +} +void VS1053::volume(void) +{ + #ifdef FIXED_VOL + unsigned char volumize = (0 * 255); // FIXED VOL (not support volume input) + #else + unsigned char volumize = (_VOL * 255); + #endif + while(!_DREQ); + + unsigned short int attenuation = ((256 * volumize) + volumize); + sci_write(0x0B, attenuation); +} + +void VS1053::writeStream(unsigned char *array, int size) +{ + for(int i=0; i<size; i++) + { + sdi_write(array[i]); + } + volume(); +} + +#if 0 +// this function does not work +// because of function call overhead +void VS1053::putcStream(unsigned char datum) +{ + sdi_write(datum); +} +#endif + +unsigned short int VS1053::wram_read(unsigned short int address) +{ + unsigned short int tmp1,tmp2; + sci_write(SCI_WRAMADDR,address); + tmp1=sci_read(SCI_WRAM); + sci_write(SCI_WRAMADDR,address); + tmp2=sci_read(SCI_WRAM); + if (tmp1==tmp2) return tmp1; + sci_write(SCI_WRAMADDR,address); + tmp1=sci_read(SCI_WRAM); + if (tmp1==tmp2) return tmp1; + sci_write(SCI_WRAMADDR,address); + tmp1=sci_read(SCI_WRAM); + if (tmp1==tmp2) return tmp1; + return tmp1; +} + +void VS1053::wram_write(unsigned short int address, unsigned short int data) +{ + sci_write(SCI_WRAMADDR,address); + sci_write(SCI_WRAM,data); + return; +} + + +void VS1053::terminateStream(void) +{ +#if 1 + unsigned int endFillByte=wram_read(para_endFillByte); +// printf("endFillByte:%04X\r\n",endFillByte); // debug + for(int n=0; n<2052; n++) sdi_write(0xFF&endFillByte); + sci_write(SCI_MODE,(SM_SDINEW+SM_CANCEL)); + for(int n=0; n<2048; n++) sdi_write(0xFF&endFillByte); + // don't reset if you don't want to lose the patch + // sci_write(SCI_MODE,(SM_SDINEW+SM_RESET)); // set mode reg. + // wait_ms(10); +#endif +} + +void VS1053::write_plugin(const unsigned short *plugin, unsigned int len) +{ + unsigned int i; + unsigned short addr, n, val; + + for(i=0; i<len;) + { + addr = plugin[i++]; + n = plugin[i++]; + if(n & 0x8000U) //RLE run, replicate n samples + { + n &= 0x7FFF; + val = plugin[i++]; + while(n--) + { + sci_write(addr,val); + } + } + else //copy run, copy n sample + { + while(n--) + { + val = plugin[i++]; + sci_write(addr,val); + } + } + } + + return; +} + + +void VS1053::initialize(void) +{ + _RST = 1; + cs_high(); //chip disabled + sci_initialise(); //initialise MBED + sci_write(SCI_MODE,(SM_SDINEW+SM_RESET)); // set mode reg. + wait_ms(10); +#if 1 + // debug + unsigned int chipID_0=wram_read(para_chipID_0); + if (firstTime) printf("chipID_0:%04X\r\n",chipID_0); // debug + unsigned int chipID_1=wram_read(para_chipID_1); + if (firstTime) printf("chipID_1:%04X\r\n",chipID_1); // debug + unsigned int struct_version=wram_read(para_version); + if (firstTime) printf("structure version:%04X\r\n",struct_version); // debug + #endif + //get chip version, set clock multiplier and load patch + int i = (sci_read(SCI_STATUS)&0xF0)>>4; + if(i == 4) + { + if (firstTime) printf("Installed Chip is: VS1053\r\n"); + sci_write(SCI_CLOCKF, (SC_MULT_XTALIx50+SC_ADD_20x)); +#ifdef VS_PATCH + // loading patch + write_plugin(vs1053b_patch, sizeof(vs1053b_patch)/2); + if (firstTime) { + printf("VS1053b patch loaded.\r\n"); + printf("patch size:%d bytes\r\n",sizeof(vs1053b_patch)); + } +#endif +#ifdef VS_SPECANA + // loading plugin(spectrum analyzer) + write_plugin(vs1053b_specana, sizeof(vs1053b_specana)/2); + if (firstTime) printf("VS1053b specana loaded.\r\n"); +#endif + } + else printf("??? Not Supported Chip???\r\n"); + sdi_initialise(); + firstTime=0; // disable message when init after 1st time +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/VS1053.h Fri Apr 28 19:18:46 2017 +0000 @@ -0,0 +1,132 @@ +#ifndef VS1053_H +#define VS1053_H + +#define FIXED_VOL + +// the following two is exclusive use +#define VS_PATCH +//#define VS_SPECANA + +#include "mbed.h" +//#include "SDFileSystem.h" +#include "string" +#include "string.h" + +// SCI register address assignment +#define SCI_MODE 0x0 +#define SCI_STATUS 0x1 +#define SCI_BASS 0x2 +#define SCI_CLOCKF 0x3 +#define SCI_DECODE_TOME 0x4 +#define SCI_AUDATA 0x5 +#define SCI_WRAM 0x6 +#define SCI_WRAMADDR 0x7 +#define SCI_HDAT0 0x8 +#define SCI_HDAT1 0x9 +#define SCI_AIADDR 0xA +#define SCI_VOL 0xB +#define SCI_AICTRL0 0xC +#define SCI_AICTRL1 0xD +#define SCI_AICTRL2 0xE +#define SCI_AICTRL3 0xF + + +//SCI_MODE register bits as of p.38 of the datasheet +#define SM_DIFF 0x0001 +#define SM_LAYER12 0x0002 +#define SM_RESET 0x0004 +#define SM_CANCEL 0x0008 +#define SM_EARSPEAKER_LO 0x0010 +#define SM_TESTS 0x0020 +#define SM_STREAM 0x0040 +#define SM_EARSPEAKER_HI 0x0080 +#define SM_DACT 0x0100 +#define SM_SDIORD 0x0200 +#define SM_SDISHARE 0x0400 +#define SM_SDINEW 0x0800 +#define SM_ADPCM 0x1000 +#define SM_B13 0x2000 +#define SM_LINE1 0x4000 +#define SM_CLK_RANGE 0x8000 + +//SCI_CLOCKF register bits as of p.42 of the datasheet +#define SC_MULT_XTALI 0x0000 +#define SC_MULT_XTALIx20 0x2000 +#define SC_MULT_XTALIx25 0x4000 +#define SC_MULT_XTALIx30 0x6000 +#define SC_MULT_XTALIx35 0x8000 +#define SC_MULT_XTALIx40 0xA000 +#define SC_MULT_XTALIx45 0xC000 +#define SC_MULT_XTALIx50 0xE000 +// +#define SC_ADD_NOMOD 0x0000 +#define SC_ADD_10x 0x0800 +#define SC_ADD_15x 0x1000 +#define SC_ADD_20x 0x1800 + + +// Extra Parameter in X memory (refer to p.58 of the datasheet) +#define para_chipID_0 0x1E00 +#define para_chipID_1 0x1E01 +#define para_version 0x1E02 +#define para_config1 0x1E03 +#define para_playSpeed 0x1E04 +#define para_byteRate 0x1E05 +#define para_endFillByte 0x1E06 +// +#define para_positionMsec_0 0x1E27 +#define para_positionMsec_1 0x1E28 +#define para_resync 0x1E29 + + +class VS1053 { + +public: + VS1053( + //PinName _mmosi, PinName _mmiso, PinName _ssck, PinName _ccs, const char* _name, + PinName _mosi, PinName _miso, PinName _sck, PinName _cs, PinName _rst, PinName _dreq, + PinName _dcs, PinName _vol); + + void cs_low(void); + void cs_high(void); + void dcs_low(void); + void dcs_high(void); + void sci_en(void); + void sci_dis(void); + void sdi_en(void); + void sdi_dis(void); + + void sci_initialise(void); + void sdi_initialise(void); + void reset(void); + void power_down(void); + + void sci_write(unsigned char, unsigned short int); + void sdi_write(unsigned char); + unsigned short int sci_read(unsigned short int); + void sine_test_activate(unsigned char); + void volume(void); + void sine_test_deactivate(void); + void writeStream(unsigned char *, int); +#if 0 + void putcStream(unsigned char); +#endif + void terminateStream(void); +// void write_plugin(const unsigned short *, unsigned int); + void initialize(void); + + DigitalIn _DREQ; + DigitalOut _RST; + AnalogIn _VOL; + +protected: + unsigned short int wram_read(unsigned short int); + void wram_write(unsigned short int, unsigned short int); + void write_plugin(const unsigned short *, unsigned int); + SPI _spi; + DigitalOut _CS; + DigitalOut _DCS; + int firstTime; + +}; +#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/VS1053b_patch.c Fri Apr 28 19:18:46 2017 +0000 @@ -0,0 +1,804 @@ +/* + +VS1053b Patches w/ FLAC Decoder + + * Combines the separate VS1053b patches + * A second version of the patch contains a FLAC (Free Lossless Audio Codec) decoder + + * Combines the separate VS1053b patches + * AAC: Unused data at the start of the mdat atom in MP4 is now skipped. (Some NERO versions generated extra data there.) + * HE-AAC: When parametric stereo (PS) is active, PS header frame was required to be present in the first encountered SBR frame or the decoding could crash. This patch fixes the problem. + * Vorbis: Removes an occasional windowing overflow from Vorbis decoding and thus increases playback quality. + * Ogg: Enables playing of Ogg streams that have the highest bit set in the stream number. + * IMA ADPCM: Enables also data transfer when IMA encoding mode is started. + * VU meter and more, see the full list from the document + + * An extended version of the patch contains a FLAC (Free Lossless Audio Codec) decoder (2 channels, upto 24 bits, upto 48kHz) + +Version: 1.4 +Modified: 2010-08-24 +Devices: VS1053b +Download: vs1053b-patches140.zip +Document: vs1053b-patches.pdf + +*/ +const unsigned short vs1053b_patch[6224] ={ /* Compressed plugin */ + 0x0007, 0x0001, 0x8300, 0x0006, 0x024a, 0xb080, 0x1402, 0x0fdf, /* 0 */ + 0xffc1, 0x0007, 0x9257, 0xb212, 0x3c00, 0x3d00, 0x4024, 0x0030, /* 8 */ + 0x0297, 0x3f00, 0x0024, 0x0006, 0x0017, 0x3f10, 0x0024, 0x3f00, /* 10 */ + 0x0024, 0x0001, 0x01d7, 0xf400, 0x55c0, 0x0000, 0x0817, 0xf400, /* 18 */ + 0x57c0, 0x0000, 0x190d, 0x000a, 0x708f, 0x0000, 0xc4ce, 0x280f, /* 20 */ + 0xe100, 0x0006, 0x2016, 0x0000, 0x190d, 0x2800, 0xc8d5, 0x0014, /* 28 */ + 0x1b01, 0x0020, 0x480f, 0x0000, 0xc78e, 0x2920, 0x41c0, 0x0000, /* 30 */ + 0xfa0d, 0x000a, 0x708f, 0x0000, 0xc4ce, 0x280a, 0xcac0, 0x0000, /* 38 */ + 0x190d, 0x0039, 0x324f, 0x0000, 0xdc4e, 0x2820, 0x4a18, 0xb882, /* 40 */ + 0x0024, 0x2a20, 0x48c0, 0x003f, 0xfd00, 0xb700, 0x0024, 0x003f, /* 48 */ + 0xf901, 0x6010, 0x0024, 0x0014, 0x1b01, 0x280a, 0xc505, 0x0000, /* 50 */ + 0x190d, 0x0015, 0x59c0, 0x6fc2, 0x0024, 0x0019, 0x9301, 0x2800, /* 58 */ + 0xd415, 0x0018, 0x50c0, 0x0000, 0x18c2, 0x290c, 0x4840, 0x3613, /* 60 */ + 0x0024, 0x290c, 0x4840, 0x4086, 0x184c, 0x6234, 0x0024, 0x0000, /* 68 */ + 0x1d02, 0x2800, 0xced5, 0x6234, 0x0024, 0x0030, 0x0317, 0x2800, /* 70 */ + 0xd340, 0x3f00, 0x0024, 0x0000, 0x1d82, 0x2800, 0xd195, 0x6234, /* 78 */ + 0x0024, 0x2912, 0x0d00, 0x4084, 0x184c, 0xf200, 0x0024, 0x6200, /* 80 */ + 0x0024, 0x0006, 0x0017, 0xb080, 0x3c40, 0x2800, 0xd340, 0x3f00, /* 88 */ + 0x0024, 0x0000, 0x0202, 0x2800, 0xd355, 0xa024, 0x0024, 0xc020, /* 90 */ + 0x0024, 0x0030, 0x02d7, 0x2800, 0xd340, 0x3f00, 0x0024, 0x000c, /* 98 */ + 0x0981, 0x280a, 0x71c0, 0x002c, 0x9d40, 0x6fc2, 0x0024, 0x0000, /* a0 */ + 0x0024, 0x2800, 0xd355, 0x0000, 0x0024, 0x2802, 0x3d40, 0x000a, /* a8 */ + 0xcac8, 0x3613, 0x0024, 0x3e10, 0xb803, 0x3e14, 0x3811, 0x3e11, /* b0 */ + 0x3805, 0x3e00, 0x3801, 0x0007, 0xc390, 0x0006, 0xa011, 0x3010, /* b8 */ + 0x0444, 0x3050, 0x4405, 0x6458, 0x0302, 0xff94, 0x4081, 0x0003, /* c0 */ + 0xffc5, 0x48b6, 0x0024, 0xff82, 0x0024, 0x42b2, 0x0042, 0xb458, /* c8 */ + 0x0003, 0x4cd6, 0x9801, 0xf248, 0x1bc0, 0xb58a, 0x0024, 0x6de6, /* d0 */ + 0x1804, 0x0006, 0x0010, 0x3810, 0x9bc5, 0x3800, 0xc024, 0x36f4, /* d8 */ + 0x1811, 0x36f0, 0x9803, 0x283e, 0x2d80, 0x0fff, 0xffc3, 0x003e, /* e0 */ + 0x2d4f, 0x2800, 0xedc0, 0x0000, 0xd58e, 0x3413, 0x0024, 0x2800, /* e8 */ + 0xde45, 0xf400, 0x4510, 0x2800, 0xe200, 0x6894, 0x13cc, 0x3000, /* f0 */ + 0x184c, 0x6090, 0x93cc, 0x38b0, 0x3812, 0x3004, 0x4024, 0x0000, /* f8 */ + 0x0910, 0x3183, 0x0024, 0x3100, 0x4024, 0x6016, 0x0024, 0x000c, /* 100 */ + 0x8012, 0x2800, 0xe151, 0xb884, 0x104c, 0x6894, 0x3002, 0x2939, /* 108 */ + 0xb0c0, 0x3e10, 0x93cc, 0x4084, 0x9bd2, 0x4282, 0x0024, 0x0000, /* 110 */ + 0x0041, 0x2800, 0xe405, 0x6212, 0x0024, 0x0000, 0x0040, 0x2800, /* 118 */ + 0xe905, 0x000c, 0x8390, 0x2a00, 0xec80, 0x34c3, 0x0024, 0x3444, /* 120 */ + 0x0024, 0x3073, 0x0024, 0x3053, 0x0024, 0x3000, 0x0024, 0x6092, /* 128 */ + 0x098c, 0x0000, 0x0241, 0x2800, 0xec85, 0x32a0, 0x0024, 0x6012, /* 130 */ + 0x0024, 0x0000, 0x0024, 0x2800, 0xec95, 0x0000, 0x0024, 0x3613, /* 138 */ + 0x0024, 0x3001, 0x3844, 0x2920, 0x0580, 0x3009, 0x3852, 0xc090, /* 140 */ + 0x9bd2, 0x2800, 0xec80, 0x3800, 0x1bc4, 0x000c, 0x4113, 0xb880, /* 148 */ + 0x2380, 0x3304, 0x4024, 0x3800, 0x05cc, 0xcc92, 0x05cc, 0x3910, /* 150 */ + 0x0024, 0x3910, 0x4024, 0x000c, 0x8110, 0x3910, 0x0024, 0x39f0, /* 158 */ + 0x4024, 0x3810, 0x0024, 0x38d0, 0x4024, 0x3810, 0x0024, 0x38f0, /* 160 */ + 0x4024, 0x34c3, 0x0024, 0x3444, 0x0024, 0x3073, 0x0024, 0x3063, /* 168 */ + 0x0024, 0x3000, 0x0024, 0x4080, 0x0024, 0x0000, 0x0024, 0x2839, /* 170 */ + 0x53d5, 0x4284, 0x0024, 0x3613, 0x0024, 0x2800, 0xefc5, 0x6898, /* 178 */ + 0xb804, 0x0000, 0x0084, 0x293b, 0x1cc0, 0x3613, 0x0024, 0x000c, /* 180 */ + 0x8117, 0x3711, 0x0024, 0x37d1, 0x4024, 0x4e8a, 0x0024, 0x0000, /* 188 */ + 0x0015, 0x2800, 0xf285, 0xce9a, 0x0024, 0x3f11, 0x0024, 0x3f01, /* 190 */ + 0x4024, 0x000c, 0x8197, 0x408a, 0x9bc4, 0x3f15, 0x4024, 0x2800, /* 198 */ + 0xf4c5, 0x4284, 0x3c15, 0x6590, 0x0024, 0x0000, 0x0024, 0x2839, /* 1a0 */ + 0x53d5, 0x4284, 0x0024, 0x0000, 0x0024, 0x2800, 0xdd18, 0x458a, /* 1a8 */ + 0x0024, 0x2a39, 0x53c0, 0x3009, 0x3851, 0x3e14, 0xf812, 0x3e12, /* 1b0 */ + 0xb817, 0x0006, 0xa057, 0x3e11, 0x9fd3, 0x3e01, 0x0024, 0x0006, /* 1b8 */ + 0x0011, 0x3111, 0x0024, 0x6498, 0x07c6, 0x868c, 0x2444, 0x0023, /* 1c0 */ + 0xffd2, 0x3901, 0x8e06, 0x0030, 0x0551, 0x3911, 0x8e06, 0x3961, /* 1c8 */ + 0x9c44, 0xf400, 0x44c6, 0xd46c, 0x1bc4, 0x36f1, 0xbc13, 0x2801, /* 1d0 */ + 0x0115, 0x36f2, 0x9817, 0x002b, 0xffd2, 0x3383, 0x188c, 0x3e01, /* 1d8 */ + 0x8c06, 0x0006, 0xa097, 0x3009, 0x1c12, 0x3213, 0x0024, 0x468c, /* 1e0 */ + 0xbc12, 0x002b, 0xffd2, 0xf400, 0x4197, 0x2800, 0xfe04, 0x3713, /* 1e8 */ + 0x0024, 0x2800, 0xfe45, 0x37e3, 0x0024, 0x3009, 0x2c17, 0x3383, /* 1f0 */ + 0x0024, 0x3009, 0x0c06, 0x468c, 0x4197, 0x0006, 0xa052, 0x2801, /* 1f8 */ + 0x0044, 0x3713, 0x2813, 0x2801, 0x0085, 0x37e3, 0x0024, 0x3009, /* 200 */ + 0x2c17, 0x36f1, 0x8024, 0x36f2, 0x9817, 0x36f4, 0xd812, 0x2100, /* 208 */ + 0x0000, 0x3904, 0x5bd1, 0x2a00, 0xf5ce, 0x3e11, 0x7804, 0x0030, /* 210 */ + 0x0257, 0x3701, 0x0024, 0x0013, 0x4d05, 0xd45b, 0xe0e1, 0x0007, /* 218 */ + 0xc795, 0x2801, 0x0895, 0x0fff, 0xff45, 0x3511, 0x184c, 0x4488, /* 220 */ + 0xb808, 0x0006, 0x8a97, 0x2801, 0x0845, 0x3009, 0x1c40, 0x3511, /* 228 */ + 0x1fc1, 0x0000, 0x0020, 0xac52, 0x1405, 0x6ce2, 0x0024, 0x0000, /* 230 */ + 0x0024, 0x2801, 0x0841, 0x68c2, 0x0024, 0x291a, 0x8a40, 0x3e10, /* 238 */ + 0x0024, 0x2921, 0xca80, 0x3e00, 0x4024, 0x36f3, 0x0024, 0x3009, /* 240 */ + 0x1bc8, 0x36f0, 0x1801, 0x2808, 0x9300, 0x3601, 0x5804, 0x0007, /* 248 */ + 0x0001, 0x802e, 0x0006, 0x0002, 0x2801, 0x0200, 0x0007, 0x0001, /* 250 */ + 0x8050, 0x0006, 0x008c, 0x3e12, 0x3800, 0x3e10, 0xb804, 0x0030, /* 258 */ + 0x0015, 0x0008, 0x0002, 0x3511, 0x0024, 0xb428, 0x1402, 0x0000, /* 260 */ + 0x8004, 0x2910, 0x0195, 0x0000, 0x1508, 0xb428, 0x0024, 0x0006, /* 268 */ + 0x0095, 0x2800, 0x1f45, 0x3e13, 0x780e, 0x3e11, 0x7803, 0x3e13, /* 270 */ + 0xf806, 0x3e01, 0xf801, 0x3510, 0x8024, 0x3510, 0xc024, 0x0000, /* 278 */ + 0x0021, 0xf2d6, 0x1444, 0x4090, 0x1745, 0x0000, 0x0022, 0xf2ea, /* 280 */ + 0x4497, 0x2400, 0x1b00, 0x6090, 0x1c46, 0xfe6c, 0x0024, 0xcdb6, /* 288 */ + 0x1c46, 0xfe6c, 0x0024, 0xceba, 0x1c46, 0x4d86, 0x3442, 0x0000, /* 290 */ + 0x09c7, 0x2800, 0x1c85, 0xf5d4, 0x3443, 0x6724, 0x0024, 0x4e8a, /* 298 */ + 0x3444, 0x0000, 0x0206, 0x2800, 0x1dc5, 0xf5e8, 0x3705, 0x6748, /* 2a0 */ + 0x0024, 0xa264, 0x9801, 0xc248, 0x1bc7, 0x0030, 0x03d5, 0x3d01, /* 2a8 */ + 0x0024, 0x36f3, 0xd806, 0x3601, 0x5803, 0x36f3, 0x0024, 0x36f3, /* 2b0 */ + 0x580e, 0x2911, 0xf140, 0x3600, 0x9844, 0x0030, 0x0057, 0x3700, /* 2b8 */ + 0x0024, 0xf200, 0x4595, 0x0fff, 0xfe02, 0xa024, 0x164c, 0x8000, /* 2c0 */ + 0x17cc, 0x3f00, 0x0024, 0x3500, 0x0024, 0x0021, 0x6d82, 0xd024, /* 2c8 */ + 0x44c0, 0x0006, 0xa402, 0x2800, 0x2495, 0xd024, 0x0024, 0x0000, /* 2d0 */ + 0x0000, 0x2800, 0x2495, 0x000b, 0x6d57, 0x3009, 0x3c00, 0x36f0, /* 2d8 */ + 0x8024, 0x36f2, 0x1800, 0x2000, 0x0000, 0x0000, 0x0024, 0x0007, /* 2e0 */ + 0x0001, 0x8030, 0x0006, 0x0002, 0x2800, 0x1400, 0x0007, 0x0001, /* 2e8 */ + 0x8096, 0x0006, 0x001c, 0x3e12, 0xb817, 0x3e14, 0xf812, 0x3e01, /* 2f0 */ + 0xb811, 0x0007, 0x9717, 0x0020, 0xffd2, 0x0030, 0x11d1, 0x3111, /* 2f8 */ + 0x8024, 0x3704, 0xc024, 0x3b81, 0x8024, 0x3101, 0x8024, 0x3b81, /* 300 */ + 0x8024, 0x3f04, 0xc024, 0x2808, 0x4800, 0x36f1, 0x9811, 0x0007, /* 308 */ + 0x0001, 0x8028, 0x0006, 0x0002, 0x2a00, 0x258e, 0x0007, 0x0001, /* 310 */ + 0x8032, 0x0006, 0x0002, 0x2800, 0x2900, 0x0007, 0x0001, 0x80a4, /* 318 */ + 0x0006, 0x0144, 0x3e12, 0xb817, 0x3e12, 0x3815, 0x3e05, 0xb814, /* 320 */ + 0x3625, 0x0024, 0x0000, 0x800a, 0x3e10, 0x3801, 0x3e10, 0xb803, /* 328 */ + 0x3e11, 0x3805, 0x3e11, 0xb807, 0x3e14, 0x3811, 0x0006, 0xa090, /* 330 */ + 0x2912, 0x0d00, 0x3e14, 0xc024, 0x4088, 0x8000, 0x4080, 0x0024, /* 338 */ + 0x0007, 0x9091, 0x2800, 0x2ec5, 0x0000, 0x0024, 0x0007, 0x9051, /* 340 */ + 0x3100, 0x4024, 0x4100, 0x0024, 0x3900, 0x0024, 0x0007, 0x9091, /* 348 */ + 0x3110, 0x0024, 0x4080, 0x0024, 0x0004, 0x0001, 0x2800, 0x3155, /* 350 */ + 0x3100, 0x0024, 0x6012, 0x0024, 0x0007, 0x9051, 0x2800, 0x3141, /* 358 */ + 0xb880, 0x0024, 0x3900, 0x0024, 0x3200, 0x504c, 0x6410, 0x0024, /* 360 */ + 0x3cf0, 0x0000, 0x4080, 0x0024, 0x0006, 0xc691, 0x2800, 0x4585, /* 368 */ + 0x0000, 0x2001, 0x0007, 0x9051, 0x3100, 0x0024, 0x6012, 0x0024, /* 370 */ + 0x0006, 0xc6d0, 0x2800, 0x3a49, 0x0006, 0xc693, 0xb880, 0x8001, /* 378 */ + 0x3900, 0x0c00, 0x6014, 0x0024, 0x0007, 0x1ad0, 0x2800, 0x3a55, /* 380 */ + 0x3009, 0x0000, 0x4080, 0x0024, 0x0000, 0x0301, 0x2800, 0x3795, /* 388 */ + 0x0000, 0x0024, 0x2800, 0x3a40, 0x4180, 0xa001, 0x6012, 0x0024, /* 390 */ + 0x0000, 0x0381, 0x2800, 0x3915, 0x0000, 0x0024, 0x2800, 0x3a40, /* 398 */ + 0x4180, 0xa001, 0x6012, 0x0024, 0x0000, 0x00c0, 0x2800, 0x3a55, /* 3a0 */ + 0x0000, 0x0024, 0x3009, 0x2000, 0x0006, 0xa090, 0x3009, 0x0000, /* 3a8 */ + 0x4080, 0x0024, 0x0000, 0x0081, 0x2800, 0x3ed5, 0x0007, 0x8c13, /* 3b0 */ + 0x3300, 0x104c, 0xb010, 0x0024, 0x0002, 0x8001, 0x2800, 0x4185, /* 3b8 */ + 0x34f0, 0x0024, 0x2800, 0x3ec0, 0x0000, 0x0024, 0x3009, 0x0000, /* 3c0 */ + 0x6090, 0x0024, 0x3009, 0x2000, 0x2900, 0x0b80, 0x3009, 0x0405, /* 3c8 */ + 0x0006, 0xc6d1, 0x0006, 0xc690, 0x3009, 0x0000, 0x3009, 0x0401, /* 3d0 */ + 0x6014, 0x0024, 0x0006, 0xc351, 0x2800, 0x3d91, 0x0006, 0xa093, /* 3d8 */ + 0xb880, 0x0024, 0x2800, 0x4e00, 0x3009, 0x2c00, 0x4040, 0x0024, /* 3e0 */ + 0x6012, 0x0024, 0x0006, 0xc6d0, 0x2800, 0x4e18, 0x0006, 0xc693, /* 3e8 */ + 0x3009, 0x0c00, 0x3009, 0x0001, 0x6014, 0x0024, 0x0006, 0xc350, /* 3f0 */ + 0x2800, 0x4e01, 0x0000, 0x0024, 0x6090, 0x0024, 0x3009, 0x2c00, /* 3f8 */ + 0x3009, 0x0005, 0x2900, 0x0b80, 0x0000, 0x4e08, 0x3009, 0x0400, /* 400 */ + 0x4080, 0x0024, 0x0003, 0x8000, 0x2800, 0x4e05, 0x0000, 0x0024, /* 408 */ + 0x6400, 0x0024, 0x0000, 0x0081, 0x2800, 0x4e09, 0x0007, 0x8c13, /* 410 */ + 0x3300, 0x0024, 0xb010, 0x0024, 0x0006, 0xc650, 0x2800, 0x4e15, /* 418 */ + 0x0001, 0x0002, 0x3413, 0x0000, 0x3009, 0x0401, 0x4010, 0x8406, /* 420 */ + 0x0000, 0x0281, 0xa010, 0x13c1, 0x4122, 0x0024, 0x0000, 0x03c2, /* 428 */ + 0x6122, 0x8002, 0x462c, 0x0024, 0x469c, 0x0024, 0xfee2, 0x0024, /* 430 */ + 0x48be, 0x0024, 0x6066, 0x8400, 0x0006, 0xc350, 0x2800, 0x4e01, /* 438 */ + 0x0000, 0x0024, 0x4090, 0x0024, 0x3009, 0x2400, 0x2900, 0x0b80, /* 440 */ + 0x3009, 0x0005, 0x2912, 0x0d00, 0x3613, 0x0024, 0x3a00, 0x0024, /* 448 */ + 0x36f4, 0xc024, 0x36f4, 0x1811, 0x36f1, 0x9807, 0x36f1, 0x1805, /* 450 */ + 0x36f0, 0x9803, 0x36f0, 0x1801, 0x3405, 0x9014, 0x36f3, 0x0024, /* 458 */ + 0x36f2, 0x1815, 0x2000, 0x0000, 0x36f2, 0x9817, 0x0007, 0x0001, /* 460 */ + 0x8146, 0x0006, 0x0052, 0x3613, 0x0024, 0x3e12, 0xb817, 0x3e12, /* 468 */ + 0x3815, 0x3e05, 0xb814, 0x3635, 0x0024, 0x0000, 0x800a, 0x3e10, /* 470 */ + 0x7802, 0x3e14, 0x0024, 0x2900, 0xb840, 0x0000, 0x0201, 0x0000, /* 478 */ + 0x0601, 0x3413, 0x184c, 0x2902, 0xa3c0, 0x3cf0, 0x0024, 0x3413, /* 480 */ + 0x184c, 0x3400, 0x3040, 0x3009, 0x33c1, 0x0000, 0x1fc1, 0xb010, /* 488 */ + 0x0024, 0x6014, 0x9040, 0x0006, 0x8010, 0x2800, 0x5855, 0x0000, /* 490 */ + 0x0024, 0x34e3, 0x1bcc, 0x6890, 0x0024, 0x2800, 0x5a00, 0xb880, /* 498 */ + 0x2000, 0x3e10, 0x1381, 0x2902, 0xe780, 0x3e00, 0x4024, 0x003f, /* 4a0 */ + 0xfe41, 0x36e3, 0x104c, 0x34f0, 0x0024, 0xa010, 0x0024, 0x36f4, /* 4a8 */ + 0x0024, 0x36f0, 0x5802, 0x3405, 0x9014, 0x36f3, 0x0024, 0x36f2, /* 4b0 */ + 0x1815, 0x2000, 0x0000, 0x36f2, 0x9817, 0x0007, 0x0001, 0x816f, /* 4b8 */ + 0x0006, 0x004a, 0x3613, 0x0024, 0x3e12, 0xb817, 0x3e12, 0x3815, /* 4c0 */ + 0x3e05, 0xb814, 0x3615, 0x0024, 0x0000, 0x800a, 0x3e10, 0xb804, /* 4c8 */ + 0x3e01, 0x534c, 0xbe8a, 0x10c0, 0x4080, 0x0024, 0x0000, 0x0024, /* 4d0 */ + 0x2800, 0x6345, 0x0000, 0x0024, 0x2902, 0xa3c0, 0x4082, 0x184c, /* 4d8 */ + 0x4c8a, 0x134c, 0x0000, 0x0001, 0x6890, 0x10c2, 0x4294, 0x0024, /* 4e0 */ + 0xac22, 0x0024, 0xbec2, 0x0024, 0x0000, 0x0024, 0x2800, 0x6345, /* 4e8 */ + 0x0000, 0x0024, 0x6890, 0x134c, 0xb882, 0x10c2, 0xac22, 0x0024, /* 4f0 */ + 0x4c92, 0x0024, 0xdc92, 0x0024, 0xceca, 0x0024, 0x4e82, 0x1bc5, /* 4f8 */ + 0x36f0, 0x9804, 0x3405, 0x9014, 0x36f3, 0x0024, 0x36f2, 0x1815, /* 500 */ + 0x2000, 0x0000, 0x36f2, 0x9817, 0x0007, 0x0001, 0x8194, 0x0006, /* 508 */ + 0x00e4, 0x3613, 0x0024, 0x3e12, 0xb817, 0x3e12, 0x3815, 0x3e05, /* 510 */ + 0xb814, 0x3645, 0x0024, 0x0000, 0x800a, 0x3e10, 0x3801, 0x3e10, /* 518 */ + 0xb803, 0x3e11, 0x3805, 0x3e11, 0xb807, 0x3e14, 0x104c, 0x2900, /* 520 */ + 0xb840, 0x0000, 0x0081, 0x4080, 0x3040, 0x0000, 0x0101, 0x2800, /* 528 */ + 0x6a85, 0x0000, 0x0024, 0x4090, 0x138c, 0x0006, 0x8050, 0x2800, /* 530 */ + 0x7e95, 0x0000, 0x0024, 0x3423, 0x0024, 0x2900, 0xb840, 0x3613, /* 538 */ + 0x0024, 0xb880, 0x3000, 0x2800, 0x7c40, 0x3009, 0x3380, 0x2900, /* 540 */ + 0xb840, 0x4122, 0x10cc, 0x3cf0, 0x0024, 0x3001, 0x0024, 0x3400, /* 548 */ + 0x0024, 0x6800, 0x0024, 0xa408, 0x9040, 0x4080, 0x0024, 0x0000, /* 550 */ + 0x07c1, 0x2800, 0x7015, 0x6894, 0x1380, 0x6894, 0x130c, 0x3460, /* 558 */ + 0x0024, 0x6408, 0x4481, 0x4102, 0x1380, 0xf400, 0x4052, 0x0000, /* 560 */ + 0x07c1, 0x34f0, 0xc024, 0x6234, 0x0024, 0x6824, 0x0024, 0xa122, /* 568 */ + 0x0024, 0x6014, 0x0024, 0x0000, 0x0141, 0x2800, 0x7715, 0x0000, /* 570 */ + 0x0024, 0x2900, 0xb840, 0x3613, 0x0024, 0x2800, 0x7580, 0xb88a, /* 578 */ + 0x4002, 0x2900, 0x5bc0, 0x3e00, 0x8024, 0x4c8e, 0xa801, 0x0000, /* 580 */ + 0x0201, 0x3a10, 0x1bcc, 0x3000, 0x0024, 0xb010, 0x0024, 0x0000, /* 588 */ + 0x0024, 0x2800, 0x7b15, 0x659a, 0x0024, 0x6540, 0x184c, 0x0030, /* 590 */ + 0x0010, 0x2800, 0x7308, 0x0000, 0x0024, 0x2800, 0x7b00, 0x36f3, /* 598 */ + 0x0024, 0x2800, 0x79c0, 0xb88a, 0x0024, 0x2902, 0x6c00, 0x34d0, /* 5a0 */ + 0x4024, 0x4c8f, 0xa0a1, 0x0000, 0x0201, 0x3000, 0x084c, 0xb010, /* 5a8 */ + 0x0024, 0x0000, 0x0024, 0x2800, 0x7b15, 0x659a, 0x0024, 0x6540, /* 5b0 */ + 0x10cc, 0x0030, 0x0010, 0x2800, 0x7788, 0x0000, 0x0024, 0x34d3, /* 5b8 */ + 0x0024, 0x3423, 0x0024, 0xf400, 0x4510, 0x3009, 0x1380, 0x6090, /* 5c0 */ + 0x0024, 0x3009, 0x2000, 0x6892, 0x108c, 0x34f0, 0x9000, 0xa122, /* 5c8 */ + 0x984c, 0x6016, 0x13c1, 0x0000, 0x0102, 0x2800, 0x6bc8, 0x0006, /* 5d0 */ + 0x8150, 0x2800, 0x7f00, 0x3009, 0x1bcc, 0x6890, 0x0024, 0x3800, /* 5d8 */ + 0x0024, 0x36f4, 0x0024, 0x36f1, 0x9807, 0x36f1, 0x1805, 0x36f0, /* 5e0 */ + 0x9803, 0x36f0, 0x1801, 0x3405, 0x9014, 0x36f3, 0x0024, 0x36f2, /* 5e8 */ + 0x1815, 0x2000, 0x0000, 0x36f2, 0x9817, 0x0007, 0x0001, 0x8206, /* 5f0 */ + 0x0006, 0x0048, 0x3613, 0x0024, 0x3e12, 0xb817, 0x3e12, 0x3815, /* 5f8 */ + 0x3e05, 0xb814, 0x3615, 0x0024, 0x0000, 0x800a, 0x3e10, 0x3801, /* 600 */ + 0x3e10, 0xb804, 0x3e11, 0xb807, 0x3e14, 0x3811, 0x3e04, 0x934c, /* 608 */ + 0x3430, 0x0024, 0x4080, 0x0024, 0x0000, 0x0206, 0x2800, 0x8805, /* 610 */ + 0x0006, 0x8151, 0x3101, 0x130c, 0xff0c, 0x1102, 0x6408, 0x0024, /* 618 */ + 0x4204, 0x0024, 0xb882, 0x4092, 0x1006, 0x0e02, 0x48be, 0x0024, /* 620 */ + 0x4264, 0x0024, 0x2902, 0x5780, 0xf400, 0x4090, 0x36f4, 0x8024, /* 628 */ + 0x36f4, 0x1811, 0x36f1, 0x9807, 0x36f0, 0x9804, 0x36f0, 0x1801, /* 630 */ + 0x3405, 0x9014, 0x36f3, 0x0024, 0x36f2, 0x1815, 0x2000, 0x0000, /* 638 */ + 0x36f2, 0x9817, 0x0007, 0x0001, 0x1806, 0x0006, 0x0002, 0x0463, /* 640 */ + 0x047e, 0x0006, 0x8006, 0x04c5, 0x0006, 0x0027, 0x049a, 0x049a, /* 648 */ + 0x049a, 0x049a, 0x049a, 0x05fc, 0x05e0, 0x05e4, 0x05e8, 0x05ec, /* 650 */ + 0x05f0, 0x05f4, 0x05f8, 0x062b, 0x062f, 0x0632, 0x0632, 0x0632, /* 658 */ + 0x0632, 0x063a, 0x064d, 0x0718, 0x0684, 0x0689, 0x068f, 0x0695, /* 660 */ + 0x069a, 0x069f, 0x06a4, 0x06a9, 0x06ae, 0x06b3, 0x06b8, 0x06bd, /* 668 */ + 0x06d6, 0x06f5, 0x0714, 0x5a82, 0x5a82, 0x0006, 0x8006, 0x0000, /* 670 */ + 0x0006, 0x0018, 0x6fb8, 0xc180, 0xc180, 0x6fb8, 0x0000, 0x0000, /* 678 */ + 0x0000, 0x0000, 0x5a82, 0x5a82, 0x6fb8, 0xc180, 0xc180, 0x6fb8, /* 680 */ + 0x0000, 0x0000, 0x5a82, 0x5a82, 0x5a82, 0x5a82, 0x6fb8, 0xc180, /* 688 */ + 0xc180, 0x6fb8, 0x0007, 0x0001, 0x8425, 0x0006, 0x0236, 0x3613, /* 690 */ + 0x0024, 0x3e12, 0xb817, 0x3e12, 0x3815, 0x3e05, 0xb814, 0x3675, /* 698 */ + 0x0024, 0x3633, 0x0024, 0x0000, 0x800a, 0x3e10, 0x3801, 0x0000, /* 6a0 */ + 0x0181, 0x3e10, 0xb803, 0x3e11, 0x3806, 0x3e11, 0xf810, 0x3e14, /* 6a8 */ + 0x7812, 0x3e13, 0xf80e, 0x2902, 0x7500, 0x3e03, 0x4024, 0x2900, /* 6b0 */ + 0xb840, 0x4088, 0x184c, 0x3413, 0x184c, 0x2900, 0xb840, 0x6892, /* 6b8 */ + 0x33c0, 0x3423, 0x0024, 0x4080, 0x3040, 0x0000, 0x0000, 0x2801, /* 6c0 */ + 0x1485, 0x0000, 0x0024, 0x6890, 0x0024, 0x2902, 0x7500, 0x3cd0, /* 6c8 */ + 0x0024, 0x4080, 0x0024, 0x0000, 0x0024, 0x2801, 0x14d5, 0x0000, /* 6d0 */ + 0x0024, 0x3433, 0x0024, 0xf400, 0x4510, 0x34d0, 0x0024, 0x6090, /* 6d8 */ + 0x0024, 0x2902, 0x7500, 0x3800, 0x0024, 0x4080, 0x10cc, 0xf400, /* 6e0 */ + 0x4510, 0x2801, 0x1245, 0x34d0, 0x0024, 0x2801, 0x14c0, 0x0000, /* 6e8 */ + 0x0024, 0x3cd0, 0x0024, 0x3433, 0x0024, 0x34a0, 0x0024, 0xf400, /* 6f0 */ + 0x4510, 0x3430, 0x4024, 0x6100, 0x0024, 0x0000, 0x0341, 0x3840, /* 6f8 */ + 0x0024, 0x3000, 0x0024, 0x6012, 0x0024, 0x0006, 0x0181, 0x2801, /* 700 */ + 0x3141, 0x4012, 0x0024, 0xf400, 0x4057, 0x3702, 0x0024, 0x2000, /* 708 */ + 0x0000, 0x0000, 0x0024, 0x34d3, 0x184c, 0x3430, 0x8024, 0x2900, /* 710 */ + 0x5bc0, 0x3e00, 0x8024, 0x36f3, 0x11cc, 0xb888, 0x104c, 0x3c10, /* 718 */ + 0x0024, 0x3c90, 0x4024, 0x2801, 0x1d80, 0x34e3, 0x0024, 0x4f82, /* 720 */ + 0x128c, 0x3400, 0x4024, 0x4142, 0x0024, 0xf400, 0x4050, 0x3800, /* 728 */ + 0x0024, 0x3440, 0x4024, 0x4142, 0x0024, 0x6498, 0x4050, 0x3009, /* 730 */ + 0x2007, 0x0006, 0x8150, 0x3000, 0x11cc, 0x6402, 0x104c, 0x3411, /* 738 */ + 0x8024, 0x2801, 0x1b48, 0x3491, 0xc024, 0x2801, 0x4d00, 0x34e3, /* 740 */ + 0x0024, 0x2801, 0x2480, 0xb888, 0x0024, 0x2900, 0x5bc0, 0x3e00, /* 748 */ + 0x8024, 0x4c8e, 0x130c, 0x3400, 0x5bcc, 0x4142, 0x0024, 0xf400, /* 750 */ + 0x4050, 0x3800, 0x0024, 0x3440, 0x4024, 0x4142, 0x0024, 0xf400, /* 758 */ + 0x4050, 0x0000, 0x0201, 0x3009, 0x2007, 0x0030, 0x0010, 0x3000, /* 760 */ + 0x0024, 0xb010, 0x0024, 0x0000, 0x0024, 0x2801, 0x4d15, 0x6498, /* 768 */ + 0x0024, 0x0006, 0x8150, 0x3000, 0x134c, 0x6402, 0x10c2, 0x0000, /* 770 */ + 0x0024, 0x2801, 0x2008, 0x3009, 0x184c, 0x2801, 0x4d00, 0x3009, /* 778 */ + 0x1bcc, 0x0000, 0x0201, 0xb888, 0x104c, 0x3430, 0x184c, 0x6010, /* 780 */ + 0x0024, 0x6402, 0x3000, 0x0000, 0x0201, 0x2801, 0x2d18, 0x0030, /* 788 */ + 0x0010, 0x4090, 0x124c, 0x2401, 0x2c00, 0x0000, 0x0024, 0x3430, /* 790 */ + 0x8024, 0x2900, 0x5bc0, 0x3e00, 0x8024, 0x4c8e, 0x130c, 0x3400, /* 798 */ + 0x4024, 0x4142, 0x0024, 0xf400, 0x4050, 0x3800, 0x0024, 0x3410, /* 7a0 */ + 0x4024, 0x4142, 0x0024, 0x6498, 0x4050, 0x3009, 0x2007, 0x0030, /* 7a8 */ + 0x0010, 0x0000, 0x0201, 0x3473, 0x0024, 0x3490, 0x0024, 0x3e00, /* 7b0 */ + 0x13cc, 0x2900, 0x6500, 0x3444, 0x8024, 0x3000, 0x1bcc, 0xb010, /* 7b8 */ + 0x0024, 0x0000, 0x0024, 0x2801, 0x4d15, 0x0000, 0x0024, 0x34c3, /* 7c0 */ + 0x184c, 0x3470, 0x0024, 0x3e10, 0x104c, 0x34c0, 0x4024, 0x2900, /* 7c8 */ + 0x8180, 0x3e00, 0x4024, 0x2801, 0x4d00, 0x36e3, 0x0024, 0x0000, /* 7d0 */ + 0x0801, 0x3413, 0x0024, 0x34f0, 0x0024, 0x6012, 0x0024, 0x0000, /* 7d8 */ + 0x07c1, 0x2801, 0x4c48, 0x0000, 0x0024, 0x6010, 0x114c, 0xb888, /* 7e0 */ + 0x32c0, 0x6402, 0x0024, 0x0000, 0x0101, 0x2801, 0x38d8, 0x0000, /* 7e8 */ + 0x0024, 0x4090, 0x134c, 0x2401, 0x3800, 0x3009, 0x184c, 0x3430, /* 7f0 */ + 0x8024, 0x2900, 0x5bc0, 0x3e00, 0x8024, 0x4c8e, 0x130c, 0x3400, /* 7f8 */ + 0x4024, 0x4142, 0x0024, 0xf400, 0x4050, 0x3800, 0x0024, 0x3410, /* 800 */ + 0x4024, 0x4142, 0x0024, 0x6498, 0x4050, 0x3009, 0x2007, 0x0000, /* 808 */ + 0x0101, 0x3433, 0x1bcc, 0x2900, 0xb840, 0x3613, 0x0024, 0x0000, /* 810 */ + 0x0141, 0x6090, 0x118c, 0x2900, 0xb840, 0x3ca0, 0x184c, 0x3473, /* 818 */ + 0x184c, 0xb888, 0x3380, 0x3400, 0x0024, 0x6402, 0x0024, 0x0000, /* 820 */ + 0x0201, 0x2801, 0x3f98, 0x0000, 0x0024, 0x4090, 0x104c, 0x2401, /* 828 */ + 0x3ec0, 0x0000, 0x0024, 0x34a0, 0x8024, 0x2900, 0x5bc0, 0x3e00, /* 830 */ + 0x8024, 0x0006, 0x0002, 0x4244, 0x118c, 0x4244, 0x0024, 0x6498, /* 838 */ + 0x4095, 0x3009, 0x3440, 0x3009, 0x37c1, 0x0000, 0x0201, 0x34f3, /* 840 */ + 0x0024, 0x0030, 0x0010, 0x3490, 0x0024, 0x3e00, 0x138c, 0x2900, /* 848 */ + 0x6500, 0x3444, 0x8024, 0x3000, 0x1bcc, 0xb010, 0x0024, 0x0000, /* 850 */ + 0x0024, 0x2801, 0x4d15, 0x4112, 0x0024, 0x3463, 0x0024, 0x34a0, /* 858 */ + 0x0024, 0x6012, 0x0024, 0x0006, 0x8111, 0x2801, 0x48d9, 0x0000, /* 860 */ + 0x0024, 0x3100, 0x11cc, 0x3490, 0x4024, 0x4010, 0x0024, 0x0000, /* 868 */ + 0x0a01, 0x6012, 0x0024, 0x0006, 0x8151, 0x2801, 0x48d8, 0x0000, /* 870 */ + 0x0024, 0x3613, 0x114c, 0x3101, 0x3804, 0x3490, 0x8024, 0x6428, /* 878 */ + 0x138c, 0x3470, 0x8024, 0x3423, 0x0024, 0x3420, 0xc024, 0x4234, /* 880 */ + 0x1241, 0x4380, 0x4092, 0x2902, 0x5780, 0x0006, 0x0010, 0x2801, /* 888 */ + 0x4d00, 0x3009, 0x1bcc, 0x0006, 0x8151, 0x3613, 0x114c, 0x3101, /* 890 */ + 0x3804, 0x3490, 0x8024, 0x6428, 0x138c, 0x3470, 0x8024, 0x3423, /* 898 */ + 0x0024, 0x3420, 0xc024, 0x4234, 0x1241, 0x4380, 0x4092, 0x2902, /* 8a0 */ + 0x6140, 0x0006, 0x0010, 0x2801, 0x4d00, 0x3009, 0x1bcc, 0x0006, /* 8a8 */ + 0x8050, 0x6890, 0x0024, 0x3800, 0x0024, 0x36f3, 0x4024, 0x36f3, /* 8b0 */ + 0xd80e, 0x36f4, 0x5812, 0x36f1, 0xd810, 0x36f1, 0x1806, 0x36f0, /* 8b8 */ + 0x9803, 0x36f0, 0x1801, 0x3405, 0x9014, 0x36f3, 0x0024, 0x36f2, /* 8c0 */ + 0x1815, 0x2000, 0x0000, 0x36f2, 0x9817, 0x0007, 0x0001, 0x822a, /* 8c8 */ + 0x0006, 0x016e, 0x3613, 0x0024, 0x3e12, 0xb817, 0x3e12, 0x3815, /* 8d0 */ + 0x3e05, 0xb814, 0x3615, 0x0024, 0x0000, 0x800a, 0x3e10, 0x7802, /* 8d8 */ + 0x3e10, 0xf804, 0x0000, 0x3fc3, 0x3e11, 0x7806, 0x3e11, 0xf810, /* 8e0 */ + 0xbc82, 0x12cc, 0x3404, 0x0024, 0x3023, 0x0024, 0x3810, 0x0024, /* 8e8 */ + 0x38f0, 0x4024, 0x3454, 0x0024, 0x3810, 0x0024, 0x38f0, 0x4024, /* 8f0 */ + 0x2900, 0xb840, 0x0000, 0x0201, 0x0006, 0x9301, 0x4088, 0x134c, /* 8f8 */ + 0x3400, 0x8024, 0xd204, 0x0024, 0xb234, 0x0024, 0x4122, 0x0024, /* 900 */ + 0xf400, 0x4055, 0x3500, 0x0024, 0x3c30, 0x0024, 0x0000, 0x2000, /* 908 */ + 0xb400, 0x0024, 0x0000, 0x3001, 0x2800, 0x9515, 0x0000, 0x3800, /* 910 */ + 0x0000, 0x0041, 0xfe42, 0x12cc, 0x48b2, 0x1090, 0x3810, 0x0024, /* 918 */ + 0x38f0, 0x4024, 0x2800, 0xb600, 0x3430, 0x0024, 0xb400, 0x0024, /* 920 */ + 0x6012, 0x0024, 0x0000, 0x3801, 0x2800, 0x9855, 0x0000, 0x3c00, /* 928 */ + 0x0000, 0x07c0, 0x0000, 0x0041, 0xb400, 0x12cc, 0xfe02, 0x1150, /* 930 */ + 0x48b2, 0x0024, 0x689a, 0x2040, 0x2800, 0xb480, 0x38f0, 0x4024, /* 938 */ + 0xb400, 0x0024, 0x6012, 0x0024, 0x0000, 0x3c01, 0x2800, 0x9bd5, /* 940 */ + 0x0000, 0x3e00, 0x0000, 0x03c0, 0x0000, 0x0085, 0x4592, 0x12cc, /* 948 */ + 0xb400, 0x1150, 0xfe02, 0x0024, 0x48b2, 0x0024, 0x3810, 0x0024, /* 950 */ + 0x2800, 0xb480, 0x38f0, 0x4024, 0xb400, 0x0024, 0x6012, 0x0024, /* 958 */ + 0x0000, 0x3e01, 0x2800, 0x9f55, 0x0000, 0x3f00, 0x0000, 0x01c0, /* 960 */ + 0xf20a, 0x12cc, 0xb400, 0x1150, 0xf252, 0x0024, 0xfe02, 0x0024, /* 968 */ + 0x48b2, 0x0024, 0x3810, 0x0024, 0x2800, 0xb480, 0x38f0, 0x4024, /* 970 */ + 0xb400, 0x130c, 0x6012, 0x0024, 0x0000, 0x3f01, 0x2800, 0xa2d5, /* 978 */ + 0x4390, 0x0024, 0x0000, 0x0041, 0x0000, 0x0105, 0x4590, 0x13cc, /* 980 */ + 0xb400, 0x1150, 0xfe02, 0x0024, 0x48b2, 0x0024, 0x3810, 0x0024, /* 988 */ + 0x2800, 0xb480, 0x38f0, 0x4024, 0xb400, 0x0024, 0x6012, 0x1100, /* 990 */ + 0x0000, 0x01c1, 0x2800, 0xa655, 0x0000, 0x0024, 0x0000, 0x0041, /* 998 */ + 0x0000, 0x0145, 0x6890, 0x12cc, 0xb400, 0x1150, 0xfe02, 0x0024, /* 9a0 */ + 0x48b2, 0x0024, 0x3810, 0x0024, 0x2800, 0xb480, 0x38f0, 0x4024, /* 9a8 */ + 0x6012, 0x0024, 0x0000, 0x3f81, 0x2800, 0xa8d5, 0xb430, 0x0024, /* 9b0 */ + 0x6012, 0x0024, 0x0000, 0x0024, 0x2800, 0xa8d5, 0x0000, 0x0024, /* 9b8 */ + 0x2800, 0xb480, 0x0000, 0x0185, 0x2800, 0xb600, 0xc890, 0x0024, /* 9c0 */ + 0x0000, 0x3fc3, 0x0000, 0x0201, 0x2900, 0xb840, 0x3613, 0x0024, /* 9c8 */ + 0x0006, 0x9301, 0x4088, 0x134c, 0x3400, 0x8024, 0xd204, 0x0024, /* 9d0 */ + 0xb234, 0x0024, 0x4122, 0x0024, 0xf400, 0x4055, 0x0000, 0x2001, /* 9d8 */ + 0x3500, 0x0024, 0x3c30, 0x0024, 0x0000, 0x3000, 0xb400, 0x0024, /* 9e0 */ + 0x6012, 0x0024, 0x0000, 0x0182, 0x2800, 0xaec5, 0x0000, 0x0024, /* 9e8 */ + 0x2800, 0xb600, 0xc890, 0x0024, 0x459a, 0x12cc, 0x3404, 0x0024, /* 9f0 */ + 0x3023, 0x0024, 0x3010, 0x0024, 0x30d0, 0x4024, 0xac22, 0x0046, /* 9f8 */ + 0x003f, 0xf982, 0x3011, 0xc024, 0x0000, 0x0023, 0xaf2e, 0x0024, /* a00 */ + 0x0000, 0x0182, 0xccf2, 0x0024, 0x0000, 0x0fc6, 0x0000, 0x0047, /* a08 */ + 0xb46c, 0x2040, 0xfe6e, 0x23c1, 0x3454, 0x0024, 0x3010, 0x0024, /* a10 */ + 0x30f0, 0x4024, 0xac22, 0x0024, 0xccb2, 0x0024, 0x3810, 0x0024, /* a18 */ + 0x38f0, 0x4024, 0x458a, 0x0024, 0x0000, 0x0201, 0x2800, 0xa9d5, /* a20 */ + 0x0000, 0x3fc3, 0x34d3, 0x0024, 0x3430, 0x0024, 0x36f1, 0xd810, /* a28 */ + 0x36f1, 0x5806, 0x36f0, 0xd804, 0x36f0, 0x5802, 0x3405, 0x9014, /* a30 */ + 0x36f3, 0x0024, 0x36f2, 0x1815, 0x2000, 0x0000, 0x36f2, 0x9817, /* a38 */ + 0x0007, 0x0001, 0x8540, 0x0006, 0x076a, 0x3613, 0x0024, 0x3e12, /* a40 */ + 0xb817, 0x3e12, 0x3815, 0x3e05, 0xb814, 0x3675, 0x0024, 0x3633, /* a48 */ + 0x0024, 0x0000, 0x800a, 0x3e10, 0x3801, 0x3e10, 0xb803, 0x3e11, /* a50 */ + 0x3805, 0x3e11, 0xb807, 0x3e14, 0x3811, 0x3e14, 0xb813, 0x3e13, /* a58 */ + 0xf80e, 0x3e03, 0x4024, 0x2902, 0xdb00, 0x0000, 0x0381, 0x000f, /* a60 */ + 0xff81, 0x6012, 0x0024, 0x0000, 0x0201, 0x2801, 0x5645, 0x0000, /* a68 */ + 0x0024, 0x3613, 0x0024, 0x2900, 0xb840, 0x0002, 0x3a08, 0x0000, /* a70 */ + 0x0401, 0x0006, 0x8a10, 0x2902, 0xbc80, 0xb880, 0x0024, 0xb880, /* a78 */ + 0x11cc, 0x3413, 0x184c, 0x3c90, 0x0024, 0x2900, 0xb840, 0x34f3, /* a80 */ + 0x0024, 0x3473, 0x184c, 0x3c00, 0x0000, 0x4080, 0x0024, 0x0006, /* a88 */ + 0x9301, 0x2801, 0x5bc5, 0x003f, 0xfe04, 0x3490, 0x8024, 0xa244, /* a90 */ + 0x0024, 0x2902, 0xbe00, 0xb880, 0x0024, 0x2902, 0xbc80, 0x003f, /* a98 */ + 0xfe04, 0x3473, 0x184c, 0x0006, 0x8091, 0x3413, 0x0024, 0x34f0, /* aa0 */ + 0x8024, 0x3400, 0xc024, 0xa346, 0x0024, 0xd234, 0x0024, 0x0000, /* aa8 */ + 0x3fc3, 0xb234, 0x0024, 0x4122, 0x1042, 0xf400, 0x4055, 0x0006, /* ab0 */ + 0x9301, 0x3500, 0x0024, 0xd024, 0x3000, 0xb234, 0x0024, 0x4122, /* ab8 */ + 0x0024, 0x6892, 0x4055, 0x3500, 0x0024, 0x3cf0, 0x0024, 0x34a0, /* ac0 */ + 0x0024, 0xf100, 0x0024, 0xb010, 0x0024, 0x3c60, 0x0024, 0x34b0, /* ac8 */ + 0x0024, 0xb010, 0x0024, 0x0000, 0x0201, 0x2900, 0xb840, 0x3ce0, /* ad0 */ + 0x0024, 0x0006, 0x9301, 0x3473, 0x184c, 0x3c10, 0x0024, 0x34f0, /* ad8 */ + 0x8024, 0x3410, 0xc024, 0xd234, 0x0024, 0x0000, 0x3fc3, 0xb234, /* ae0 */ + 0x0024, 0x4122, 0x0024, 0xf400, 0x4055, 0x003f, 0xff01, 0x3500, /* ae8 */ + 0x0024, 0x3cf0, 0x0024, 0x34c0, 0x0024, 0xa010, 0x0024, 0x0000, /* af0 */ + 0x03c1, 0x3c40, 0x0024, 0x34d0, 0x0024, 0xb010, 0x0024, 0x0000, /* af8 */ + 0x0201, 0x2900, 0xb840, 0x3cc0, 0x0024, 0x0006, 0x9301, 0x3473, /* b00 */ + 0x0024, 0x3c10, 0x0024, 0x34f0, 0x8024, 0x3410, 0xc024, 0xd234, /* b08 */ + 0x0024, 0x0000, 0x3fc3, 0xb234, 0x0024, 0x4122, 0x0024, 0xf400, /* b10 */ + 0x4055, 0x003f, 0xff01, 0x3500, 0x0024, 0x3cf0, 0x0024, 0x3400, /* b18 */ + 0x0024, 0xa010, 0x0024, 0x0000, 0x01c1, 0x3900, 0x0024, 0x34e0, /* b20 */ + 0x0024, 0xf100, 0x0024, 0xb010, 0x0024, 0x6892, 0x3080, 0x34f0, /* b28 */ + 0x0024, 0xb010, 0x0024, 0x3cb0, 0x0024, 0x3450, 0x0024, 0x34a0, /* b30 */ + 0x4024, 0xc010, 0x0024, 0x0000, 0x0181, 0x2801, 0x7045, 0x3100, /* b38 */ + 0x0024, 0x6890, 0x07cc, 0x2802, 0x3a00, 0x3900, 0x0024, 0x6012, /* b40 */ + 0x0024, 0x0000, 0x0201, 0x2801, 0x71d8, 0x0000, 0x0024, 0x2801, /* b48 */ + 0x74c0, 0x6090, 0x044c, 0x6012, 0x0024, 0x0000, 0x0281, 0x2801, /* b50 */ + 0x7408, 0x6012, 0x0024, 0x0000, 0x0080, 0x2801, 0x7419, 0x0000, /* b58 */ + 0x0024, 0x2801, 0x74c0, 0x3113, 0x0024, 0x6890, 0x07cc, 0x2802, /* b60 */ + 0x3a00, 0x3900, 0x0024, 0x0000, 0x0201, 0x3900, 0x114c, 0x34b0, /* b68 */ + 0x0024, 0x6012, 0x0024, 0x0006, 0x04c1, 0x2801, 0x7f01, 0x4012, /* b70 */ + 0x0024, 0xf400, 0x4057, 0x3702, 0x0024, 0x2000, 0x0000, 0x0000, /* b78 */ + 0x0024, 0x2801, 0x7f00, 0x0000, 0x0024, 0x0000, 0x0200, 0x0006, /* b80 */ + 0x8110, 0x2801, 0x7f00, 0x3800, 0x0024, 0x0000, 0x0300, 0x0006, /* b88 */ + 0x8110, 0x2801, 0x7f00, 0x3800, 0x0024, 0x0006, 0x8050, 0x6890, /* b90 */ + 0x0024, 0x2802, 0x3a00, 0x3800, 0x0024, 0x0000, 0x0400, 0x0006, /* b98 */ + 0x8110, 0x2801, 0x7f00, 0x3800, 0x0024, 0x0000, 0x0500, 0x0006, /* ba0 */ + 0x8110, 0x2801, 0x7f00, 0x3800, 0x0024, 0x0000, 0x0600, 0x0006, /* ba8 */ + 0x8110, 0x2801, 0x7f00, 0x3800, 0x0024, 0x0006, 0x8050, 0x6890, /* bb0 */ + 0x0024, 0x2802, 0x3a00, 0x3800, 0x0024, 0x3423, 0x184c, 0x3460, /* bb8 */ + 0x0024, 0x4080, 0x0024, 0x0006, 0x8200, 0x2801, 0x8445, 0x3e10, /* bc0 */ + 0x0024, 0x0000, 0x01c0, 0x3e10, 0x0024, 0x3490, 0x0024, 0x2900, /* bc8 */ + 0x8a80, 0x3e00, 0x13cc, 0x36d3, 0x11cc, 0x3413, 0x0024, 0x4080, /* bd0 */ + 0x3240, 0x34f3, 0x0024, 0x2801, 0x8818, 0x0000, 0x0024, 0x0006, /* bd8 */ + 0x8010, 0x6890, 0x0024, 0x2802, 0x3a00, 0x3800, 0x0024, 0x0000, /* be0 */ + 0x0180, 0x3e10, 0x0024, 0x3490, 0x0024, 0x2900, 0x8a80, 0x3e00, /* be8 */ + 0x13cc, 0x36d3, 0x11cc, 0x3413, 0x0024, 0x4080, 0x3240, 0x34f3, /* bf0 */ + 0x0024, 0x2801, 0x8818, 0x0000, 0x0024, 0x0006, 0x8010, 0x6890, /* bf8 */ + 0x0024, 0x2802, 0x3a00, 0x3800, 0x0024, 0x0000, 0x0201, 0x3433, /* c00 */ + 0x0024, 0x34d0, 0x0024, 0x6012, 0x0024, 0x0006, 0x06c1, 0x2801, /* c08 */ + 0x9a01, 0x4012, 0x0024, 0xf400, 0x4057, 0x3702, 0x0024, 0x2000, /* c10 */ + 0x0000, 0x0000, 0x0024, 0x0006, 0x8050, 0x6890, 0x0024, 0x2802, /* c18 */ + 0x3a00, 0x3800, 0x0024, 0x0000, 0x3000, 0x2801, 0x9bc0, 0x0006, /* c20 */ + 0x8150, 0x0000, 0x9000, 0x0006, 0x8150, 0x3433, 0x0024, 0x34d0, /* c28 */ + 0x4024, 0x4192, 0x0024, 0x4192, 0x0024, 0x2801, 0x9bc0, 0xa010, /* c30 */ + 0x0024, 0x0000, 0x0201, 0x0006, 0x8150, 0x2900, 0xb840, 0x3613, /* c38 */ + 0x0024, 0x0006, 0x9301, 0x3473, 0x0024, 0x3c10, 0x0024, 0x34f0, /* c40 */ + 0x8024, 0x3410, 0xc024, 0xd234, 0x0024, 0x0000, 0x3fc3, 0xb234, /* c48 */ + 0x0024, 0x4122, 0x0024, 0xf400, 0x4055, 0x3500, 0x0024, 0x3cf0, /* c50 */ + 0x0024, 0x3490, 0x0024, 0x2801, 0x9bc0, 0x6090, 0x0024, 0x003f, /* c58 */ + 0xfe04, 0x0000, 0x0401, 0x0006, 0x8150, 0x2900, 0xb840, 0x3613, /* c60 */ + 0x0024, 0x0006, 0x9301, 0x3473, 0x0024, 0x3c10, 0x0024, 0x34f0, /* c68 */ + 0x8024, 0x3400, 0xc024, 0xa346, 0x0024, 0xd234, 0x0024, 0x0000, /* c70 */ + 0x3fc3, 0xb234, 0x0024, 0x4122, 0x1042, 0xf400, 0x4055, 0x0006, /* c78 */ + 0x9301, 0x3500, 0x0024, 0xd024, 0x3000, 0xb234, 0x0024, 0x4122, /* c80 */ + 0x0024, 0xf400, 0x4055, 0x3500, 0x0024, 0x3cf0, 0x0024, 0x3490, /* c88 */ + 0x0024, 0x2801, 0x9bc0, 0x6090, 0x0024, 0x0000, 0x4000, 0x0000, /* c90 */ + 0x0202, 0x0006, 0x8150, 0x3433, 0x0024, 0x34d0, 0x4024, 0x6122, /* c98 */ + 0x0024, 0xa010, 0x0024, 0x0004, 0x8001, 0x3800, 0x110c, 0x0006, /* ca0 */ + 0x8150, 0x3000, 0x0024, 0x6012, 0x1300, 0x0000, 0x0401, 0x2801, /* ca8 */ + 0x9e89, 0x0000, 0x0024, 0x6890, 0x82cc, 0x2802, 0x3a00, 0x3800, /* cb0 */ + 0x0024, 0x6012, 0x0024, 0x0006, 0x08c1, 0x2801, 0xc601, 0x4012, /* cb8 */ + 0x0024, 0xf400, 0x4057, 0x3702, 0x0024, 0x2000, 0x0000, 0x0000, /* cc0 */ + 0x0024, 0x2801, 0xc600, 0x0000, 0x0024, 0x0016, 0x2200, 0x0006, /* cc8 */ + 0x8190, 0x6892, 0x2040, 0x2801, 0xc600, 0x38f0, 0x4024, 0x002c, /* cd0 */ + 0x4400, 0x0000, 0x0081, 0x0006, 0x8190, 0x3810, 0x0024, 0x2801, /* cd8 */ + 0xc600, 0x38f0, 0x4024, 0x003b, 0x8000, 0x0000, 0x0081, 0x0006, /* ce0 */ + 0x8190, 0x3810, 0x0024, 0x2801, 0xc600, 0x38f0, 0x4024, 0x0007, /* ce8 */ + 0xd000, 0x0006, 0x8190, 0xb882, 0x2040, 0x2801, 0xc600, 0x38f0, /* cf0 */ + 0x4024, 0x000f, 0xa000, 0x0006, 0x8190, 0xb882, 0x2040, 0x2801, /* cf8 */ + 0xc600, 0x38f0, 0x4024, 0x0015, 0x8880, 0x0006, 0x8190, 0xb882, /* d00 */ + 0x2040, 0x2801, 0xc600, 0x38f0, 0x4024, 0x0017, 0x7000, 0x0006, /* d08 */ + 0x8190, 0xb882, 0x2040, 0x2801, 0xc600, 0x38f0, 0x4024, 0x001f, /* d10 */ + 0x4000, 0x0006, 0x8190, 0xb882, 0x2040, 0x2801, 0xc600, 0x38f0, /* d18 */ + 0x4024, 0x002b, 0x1100, 0x0006, 0x8190, 0xb882, 0x2040, 0x2801, /* d20 */ + 0xc600, 0x38f0, 0x4024, 0x002e, 0xe000, 0x0006, 0x8190, 0xb882, /* d28 */ + 0x2040, 0x2801, 0xc600, 0x38f0, 0x4024, 0x001d, 0xc000, 0x0006, /* d30 */ + 0x8190, 0x6892, 0x2040, 0x2801, 0xc600, 0x38f0, 0x4024, 0x0006, /* d38 */ + 0x8190, 0x0000, 0x0201, 0x0000, 0xfa04, 0x2900, 0xb840, 0x3613, /* d40 */ + 0x0024, 0x0006, 0x9301, 0xb88a, 0x11cc, 0x3c10, 0x0024, 0x34f0, /* d48 */ + 0x8024, 0x3410, 0xc024, 0xd234, 0x0024, 0x0000, 0x3fc3, 0xb234, /* d50 */ + 0x0024, 0x4122, 0x0024, 0xf400, 0x4055, 0x3500, 0x0024, 0x3cf0, /* d58 */ + 0x0024, 0x3490, 0x0024, 0xfe50, 0x4005, 0x48b2, 0x0024, 0xfeca, /* d60 */ + 0x0024, 0x40b2, 0x0024, 0x3810, 0x0024, 0x2801, 0xc600, 0x38f0, /* d68 */ + 0x4024, 0x003f, 0xfe04, 0x0000, 0x0401, 0x0006, 0x8190, 0x2900, /* d70 */ + 0xb840, 0x3613, 0x0024, 0x0006, 0x9301, 0x3473, 0x0024, 0x3c10, /* d78 */ + 0x0024, 0x34f0, 0x8024, 0x3400, 0xc024, 0xa346, 0x0024, 0xd234, /* d80 */ + 0x0024, 0x0000, 0x3fc3, 0xb234, 0x0024, 0x4122, 0x1042, 0xf400, /* d88 */ + 0x4055, 0x0006, 0x9301, 0x3500, 0x0024, 0xd024, 0x3000, 0xb234, /* d90 */ + 0x0024, 0x4122, 0x0024, 0xf400, 0x4055, 0x0000, 0x0041, 0x3500, /* d98 */ + 0x0024, 0x3cf0, 0x0024, 0x3490, 0x0024, 0xfe02, 0x0024, 0x48b2, /* da0 */ + 0x0024, 0x3810, 0x0024, 0x2801, 0xc600, 0x38f0, 0x4024, 0x003f, /* da8 */ + 0xfe04, 0x0000, 0x0401, 0x0006, 0x8190, 0x2900, 0xb840, 0x3613, /* db0 */ + 0x0024, 0x0006, 0x9301, 0x3473, 0x0024, 0x3c10, 0x0024, 0x34f0, /* db8 */ + 0x8024, 0x3400, 0xc024, 0xa346, 0x0024, 0xd234, 0x0024, 0x0000, /* dc0 */ + 0x3fc3, 0xb234, 0x0024, 0x4122, 0x1042, 0xf400, 0x4055, 0x0006, /* dc8 */ + 0x9301, 0x3500, 0x0024, 0xd024, 0x3000, 0xb234, 0x0024, 0x4122, /* dd0 */ + 0x0024, 0xf400, 0x4055, 0x3500, 0x0024, 0x3cf0, 0x0024, 0x0000, /* dd8 */ + 0x0280, 0x3490, 0x4024, 0xfe02, 0x0024, 0x48b2, 0x0024, 0x3810, /* de0 */ + 0x0024, 0x2801, 0xc600, 0x38f0, 0x4024, 0x0006, 0x8010, 0x6890, /* de8 */ + 0x0024, 0x2802, 0x3a00, 0x3800, 0x0024, 0x0000, 0x0201, 0x2900, /* df0 */ + 0xb840, 0x3613, 0x11cc, 0x3c10, 0x0024, 0x3490, 0x4024, 0x6014, /* df8 */ + 0x13cc, 0x0000, 0x0081, 0x2801, 0xc945, 0x0006, 0x80d0, 0x0006, /* e00 */ + 0x8010, 0x6890, 0x0024, 0x2802, 0x3a00, 0x3800, 0x0024, 0x3010, /* e08 */ + 0x0024, 0x6012, 0x0024, 0x0000, 0x0241, 0x2801, 0xe8c9, 0x0006, /* e10 */ + 0x8112, 0x0008, 0x0001, 0x3009, 0x184c, 0x3e10, 0x4024, 0x3000, /* e18 */ + 0x8024, 0x2901, 0x0940, 0x3e00, 0x8024, 0x36f3, 0x004c, 0x3000, /* e20 */ + 0x3844, 0x0008, 0x0010, 0xb884, 0x3840, 0x0000, 0x0400, 0x3e00, /* e28 */ + 0x8024, 0x3201, 0x0024, 0x2902, 0x83c0, 0x6408, 0x4091, 0x0001, /* e30 */ + 0x0000, 0x000b, 0x8011, 0x0004, 0x0010, 0x36e3, 0x0024, 0x2915, /* e38 */ + 0x8300, 0x3009, 0x1bc4, 0x000b, 0x8000, 0x3613, 0x0024, 0x3e10, /* e40 */ + 0x0024, 0x3200, 0xc024, 0x2901, 0x0940, 0x3e00, 0xc024, 0x36f3, /* e48 */ + 0x084c, 0x32f0, 0xf844, 0x3e10, 0xc024, 0x3e00, 0x8024, 0x2b01, /* e50 */ + 0x0091, 0x0000, 0x0400, 0xf204, 0x0804, 0x2902, 0x83c0, 0x6408, /* e58 */ + 0x0024, 0x000b, 0x8011, 0x0008, 0x0010, 0x0000, 0x0084, 0x36d3, /* e60 */ + 0x0024, 0x2915, 0x8300, 0x0003, 0x8000, 0x0005, 0x0010, 0x0001, /* e68 */ + 0x0000, 0x2915, 0x8300, 0x000f, 0x0011, 0x1006, 0x06c0, 0x32f3, /* e70 */ + 0x11cc, 0x3200, 0xd08c, 0xff34, 0x0024, 0x48b6, 0x0024, 0x4020, /* e78 */ + 0x0024, 0x3c90, 0x0024, 0x2801, 0xe500, 0x34e3, 0x0024, 0x0006, /* e80 */ + 0x8112, 0x3613, 0x0024, 0x3e10, 0x0024, 0x3000, 0x4024, 0x2901, /* e88 */ + 0x0940, 0x3e00, 0x4024, 0x36f3, 0x004c, 0x3000, 0x7844, 0xb884, /* e90 */ + 0x3841, 0x2b01, 0x0091, 0x0000, 0x0400, 0x3e00, 0x8024, 0x3201, /* e98 */ + 0x0024, 0x2902, 0x83c0, 0x6408, 0x0024, 0x0003, 0x8000, 0x000b, /* ea0 */ + 0x8011, 0x0008, 0x0010, 0x36e3, 0x11cc, 0x3423, 0x0024, 0x3494, /* ea8 */ + 0xc024, 0x2902, 0xa800, 0x3301, 0x138c, 0x0001, 0x0000, 0x000f, /* eb0 */ + 0x0011, 0x0004, 0x0010, 0x2902, 0xad40, 0x3301, 0x0024, 0xf400, /* eb8 */ + 0x4510, 0x000b, 0x8011, 0x3073, 0x0024, 0x3023, 0x0024, 0x3000, /* ec0 */ + 0x0024, 0x6090, 0x0024, 0x3800, 0x0024, 0x0003, 0x8000, 0x3004, /* ec8 */ + 0xc024, 0x0008, 0x0010, 0x2902, 0xad40, 0x3301, 0x0024, 0x0001, /* ed0 */ + 0x0000, 0x000f, 0x0011, 0x0005, 0x0010, 0x2902, 0xad40, 0x3301, /* ed8 */ + 0x0024, 0xf400, 0x4510, 0x3073, 0x1bc4, 0x6498, 0x008c, 0x3000, /* ee0 */ + 0x0024, 0x6090, 0x0024, 0x3800, 0x0024, 0x0006, 0x80d0, 0x3000, /* ee8 */ + 0x0024, 0x6402, 0x0024, 0x0006, 0x8110, 0x2801, 0xd848, 0x000b, /* ef0 */ + 0x8000, 0x000b, 0x8010, 0x0001, 0x0000, 0x2902, 0xf400, 0x0004, /* ef8 */ + 0x0011, 0x0005, 0x0011, 0x000b, 0x8010, 0x0001, 0x0000, 0x291f, /* f00 */ + 0xc6c0, 0x0001, 0xfa08, 0x30e1, 0x184c, 0x3000, 0x0024, 0x6012, /* f08 */ + 0x0024, 0x0008, 0x0001, 0x2801, 0xea95, 0x0000, 0x0024, 0x6498, /* f10 */ + 0x0024, 0x3e10, 0x4024, 0x0000, 0x0081, 0x2901, 0x0940, 0x3e01, /* f18 */ + 0x0024, 0x36e3, 0x004c, 0x3000, 0x0024, 0x6012, 0x0024, 0x000b, /* f20 */ + 0x8011, 0x2801, 0xf6d5, 0x0006, 0x8112, 0x0000, 0x0201, 0x0004, /* f28 */ + 0x0010, 0x2915, 0x8300, 0x0001, 0x0000, 0x000b, 0x8011, 0x0005, /* f30 */ + 0x0010, 0x291f, 0xc6c0, 0x0001, 0x0000, 0x0006, 0x8110, 0x30e1, /* f38 */ + 0x0024, 0x3000, 0x0024, 0x6012, 0x0024, 0x0000, 0x0281, 0x2801, /* f40 */ + 0xf1c5, 0x6012, 0x0024, 0x000b, 0x8001, 0x2801, 0xf255, 0x3613, /* f48 */ + 0x0024, 0x36f3, 0x0024, 0x000b, 0x8001, 0x6498, 0x184c, 0x0006, /* f50 */ + 0x8112, 0x0003, 0x8000, 0x3e10, 0x4024, 0x2901, 0x0940, 0x3e01, /* f58 */ + 0x0024, 0x36f3, 0x0024, 0x3009, 0x3844, 0x3e10, 0x0024, 0x0000, /* f60 */ + 0x0400, 0x3000, 0x8024, 0x0008, 0x0010, 0x3e00, 0x8024, 0x3201, /* f68 */ + 0x0024, 0x2902, 0x83c0, 0x6408, 0x4051, 0x36e3, 0x0024, 0x2801, /* f70 */ + 0xfa00, 0x3009, 0x1bc4, 0x0000, 0x0400, 0x0000, 0x0011, 0x3613, /* f78 */ + 0x008c, 0x30d0, 0x7844, 0x3e10, 0x4024, 0x3000, 0x8024, 0x0008, /* f80 */ + 0x0010, 0x3e00, 0x8024, 0x3201, 0x0024, 0x2902, 0x83c0, 0x6408, /* f88 */ + 0x0024, 0x36e3, 0x0024, 0x3009, 0x1bc4, 0x0006, 0x8a10, 0x0000, /* f90 */ + 0x01c1, 0x3009, 0x0000, 0xb010, 0x0024, 0x0000, 0x0024, 0x2801, /* f98 */ + 0xfe05, 0x6192, 0x0024, 0x2900, 0xb840, 0x6102, 0x184c, 0x4088, /* fa0 */ + 0x0024, 0x0000, 0x0024, 0x2801, 0xfe05, 0x0000, 0x0024, 0x0006, /* fa8 */ + 0x8051, 0x6890, 0x0024, 0x3900, 0x0024, 0x3009, 0x0000, 0x4080, /* fb0 */ + 0x0024, 0x0000, 0x0024, 0x2902, 0xbd45, 0x0002, 0x02c8, 0x0006, /* fb8 */ + 0x9f92, 0x0000, 0x4003, 0x3009, 0x0811, 0x3100, 0x8024, 0xffa6, /* fc0 */ + 0x0024, 0x48b6, 0x0024, 0x2902, 0xbd40, 0x4384, 0x0024, 0x2902, /* fc8 */ + 0xbe00, 0x3613, 0x0024, 0x2902, 0xbc80, 0x0000, 0x0024, 0x2902, /* fd0 */ + 0xbd40, 0x0000, 0x0024, 0x0000, 0x0401, 0x3473, 0x184c, 0x2900, /* fd8 */ + 0xb840, 0x3c90, 0x0024, 0x3473, 0x0024, 0x3413, 0x0024, 0x3c90, /* fe0 */ + 0x0024, 0x290b, 0x1400, 0x34f3, 0x0024, 0x4080, 0x0024, 0x0000, /* fe8 */ + 0x0024, 0x2802, 0x3695, 0x0000, 0x0024, 0x3473, 0x0024, 0x3410, /* ff0 */ + 0x0024, 0x34a0, 0x4024, 0x6014, 0x1380, 0x0000, 0x0024, 0x2802, /* ff8 */ + 0x0b45, 0x4080, 0x0024, 0x0006, 0x8011, 0x6890, 0x0024, 0xb882, /* 1000 */ + 0x2400, 0x0004, 0x8000, 0x2914, 0xbec0, 0x0008, 0x0010, 0x0000, /* 1008 */ + 0x0400, 0x3143, 0x108c, 0x6890, 0x27c0, 0x3920, 0x0024, 0x0004, /* 1010 */ + 0x8000, 0x3900, 0x0024, 0x34e0, 0x0024, 0x4080, 0x0024, 0x0006, /* 1018 */ + 0x8150, 0x2802, 0x0f45, 0x0000, 0x3200, 0x0000, 0x0142, 0x0006, /* 1020 */ + 0x8210, 0x3613, 0x0024, 0x3e00, 0x7800, 0x3011, 0x8024, 0x30d1, /* 1028 */ + 0xc024, 0xfef4, 0x4087, 0x48b6, 0x0040, 0xfeee, 0x03c1, 0x2914, /* 1030 */ + 0xa580, 0x42b6, 0x0024, 0x2802, 0x1340, 0x0007, 0x89d0, 0x0000, /* 1038 */ + 0x0142, 0x3613, 0x0024, 0x3e00, 0x7800, 0x3031, 0x8024, 0x3010, /* 1040 */ + 0x0024, 0x30d0, 0x4024, 0xfe9c, 0x4181, 0x48be, 0x0024, 0xfe82, /* 1048 */ + 0x0040, 0x46be, 0x03c1, 0xfef4, 0x4087, 0x48b6, 0x0024, 0xfeee, /* 1050 */ + 0x0024, 0x2914, 0xa580, 0x42b6, 0x0024, 0x0007, 0x89d0, 0x0006, /* 1058 */ + 0x8191, 0x4c8a, 0x9800, 0xfed0, 0x4005, 0x48b2, 0x0024, 0xfeca, /* 1060 */ + 0x0024, 0x40b2, 0x0024, 0x3810, 0x0024, 0x38f0, 0x4024, 0x3111, /* 1068 */ + 0x8024, 0x468a, 0x0707, 0x2908, 0xbe80, 0x3101, 0x0024, 0x3123, /* 1070 */ + 0x11cc, 0x3100, 0x108c, 0x3009, 0x3000, 0x0004, 0x8000, 0x3009, /* 1078 */ + 0x1241, 0x6014, 0x138c, 0x000b, 0x8011, 0x2802, 0x1981, 0x0000, /* 1080 */ + 0x0024, 0x3473, 0x0024, 0x3423, 0x0024, 0x3009, 0x3240, 0x34e3, /* 1088 */ + 0x0024, 0x2802, 0x34c0, 0x0008, 0x0012, 0x0000, 0x0081, 0x2802, /* 1090 */ + 0x1b09, 0x0006, 0x80d0, 0xf400, 0x4004, 0x3000, 0x0024, 0x6012, /* 1098 */ + 0x0024, 0x0000, 0x0005, 0x2802, 0x2089, 0x0000, 0x0024, 0x6540, /* 10a0 */ + 0x0024, 0x0000, 0x0024, 0x2802, 0x30d8, 0x4490, 0x0024, 0x2402, /* 10a8 */ + 0x1fc0, 0x0000, 0x0024, 0x0006, 0x8301, 0x4554, 0x0800, 0x4122, /* 10b0 */ + 0x0024, 0x659a, 0x4055, 0x0006, 0x8341, 0x3d00, 0x0840, 0x4122, /* 10b8 */ + 0x0024, 0xf400, 0x4055, 0x3d00, 0x0024, 0x2802, 0x30c0, 0x0000, /* 10c0 */ + 0x0024, 0x4090, 0x0024, 0xf400, 0x4480, 0x2802, 0x25d5, 0x000b, /* 10c8 */ + 0x8001, 0x6540, 0x0024, 0x0000, 0x0024, 0x2802, 0x30d8, 0x4490, /* 10d0 */ + 0x0024, 0x2402, 0x2500, 0x0000, 0x0024, 0x0006, 0x8301, 0x4554, /* 10d8 */ + 0x0800, 0x4122, 0x0024, 0x659a, 0x4055, 0x0006, 0x8341, 0x4122, /* 10e0 */ + 0x3400, 0xf400, 0x4055, 0x3210, 0x0024, 0x3d00, 0x0024, 0x2802, /* 10e8 */ + 0x30c0, 0x0000, 0x0024, 0x6014, 0x0024, 0x0001, 0x0000, 0x2802, /* 10f0 */ + 0x2d15, 0x0003, 0x8001, 0x0008, 0x0012, 0x0008, 0x0010, 0x0006, /* 10f8 */ + 0x8153, 0x3613, 0x0024, 0x3009, 0x3811, 0x2902, 0xf400, 0x0004, /* 1100 */ + 0x0011, 0x0008, 0x0010, 0x0001, 0x0000, 0x291f, 0xc6c0, 0x0005, /* 1108 */ + 0x0011, 0x000f, 0x0011, 0x0008, 0x0010, 0x33d0, 0x184c, 0x6010, /* 1110 */ + 0xb844, 0x3e10, 0x0024, 0x0000, 0x0400, 0x3320, 0x4024, 0x3e00, /* 1118 */ + 0x4024, 0x3301, 0x0024, 0x2902, 0x83c0, 0x6408, 0x0024, 0x36e3, /* 1120 */ + 0x0024, 0x3009, 0x1bc4, 0x3009, 0x1bd1, 0x6540, 0x0024, 0x0000, /* 1128 */ + 0x0024, 0x2802, 0x30d8, 0x4490, 0x0024, 0x2402, 0x3080, 0x0000, /* 1130 */ + 0x0024, 0x0006, 0x8301, 0x4554, 0x0840, 0x4122, 0x0024, 0x659a, /* 1138 */ + 0x4055, 0x0006, 0x8341, 0x4122, 0x3400, 0xf400, 0x4055, 0x3110, /* 1140 */ + 0x0024, 0x3d00, 0x0024, 0xf400, 0x4510, 0x0030, 0x0013, 0x3073, /* 1148 */ + 0x184c, 0x3e11, 0x008c, 0x3009, 0x0001, 0x6140, 0x0024, 0x0000, /* 1150 */ + 0x0201, 0x3009, 0x2000, 0x0006, 0x8300, 0x290c, 0x7300, 0x3e10, /* 1158 */ + 0x0024, 0x3300, 0x1b8c, 0xb010, 0x0024, 0x0000, 0x0024, 0x2802, /* 1160 */ + 0x3695, 0x0000, 0x0024, 0x3473, 0x0024, 0x3423, 0x0024, 0x3009, /* 1168 */ + 0x1240, 0x4080, 0x138c, 0x0000, 0x0804, 0x2802, 0x1a15, 0x6402, /* 1170 */ + 0x0024, 0x0006, 0xd312, 0x0006, 0xd310, 0x0006, 0x8191, 0x3010, /* 1178 */ + 0x984c, 0x30f0, 0xc024, 0x0000, 0x0021, 0xf2d6, 0x07c6, 0x290a, /* 1180 */ + 0xf5c0, 0x4682, 0x0400, 0x6894, 0x0840, 0xb886, 0x0bc1, 0xbcd6, /* 1188 */ + 0x0024, 0x3a10, 0x8024, 0x3af0, 0xc024, 0x36f3, 0x4024, 0x36f3, /* 1190 */ + 0xd80e, 0x36f4, 0x9813, 0x36f4, 0x1811, 0x36f1, 0x9807, 0x36f1, /* 1198 */ + 0x1805, 0x36f0, 0x9803, 0x36f0, 0x1801, 0x3405, 0x9014, 0x36f3, /* 11a0 */ + 0x0024, 0x36f2, 0x1815, 0x2000, 0x0000, 0x36f2, 0x9817, 0x0007, /* 11a8 */ + 0x0001, 0x88f5, 0x0006, 0x00d2, 0x3613, 0x0024, 0x3e12, 0xb817, /* 11b0 */ + 0x3e12, 0x3815, 0x3e05, 0xb814, 0x3615, 0x0024, 0x0000, 0x800a, /* 11b8 */ + 0x3e10, 0x3801, 0x0019, 0x9300, 0x3e14, 0x3811, 0x0030, 0x0250, /* 11c0 */ + 0x3e04, 0xb813, 0x2902, 0xb980, 0x3800, 0x0024, 0x2902, 0xcf00, /* 11c8 */ + 0x0000, 0x0300, 0xb882, 0x0024, 0x2914, 0xbec0, 0x0006, 0x8010, /* 11d0 */ + 0x0000, 0x1540, 0x0007, 0x8190, 0x2900, 0x5180, 0x3800, 0x0024, /* 11d8 */ + 0x4080, 0x0024, 0x0006, 0x8011, 0x2802, 0x4915, 0x0000, 0x0024, /* 11e0 */ + 0x3100, 0x0024, 0x4080, 0x0024, 0x0030, 0x0010, 0x2802, 0x4915, /* 11e8 */ + 0x0000, 0x0201, 0x3000, 0x0024, 0xb010, 0x0024, 0x0000, 0x0024, /* 11f0 */ + 0x2802, 0x4915, 0x0000, 0x0024, 0x2900, 0x5180, 0x0000, 0x0024, /* 11f8 */ + 0x4080, 0x0024, 0x0006, 0x8010, 0x2802, 0x4915, 0x0000, 0x0024, /* 1200 */ + 0x3000, 0x0024, 0x4080, 0x0024, 0x0000, 0x0201, 0x2802, 0x4505, /* 1208 */ + 0x0030, 0x0010, 0x0030, 0x0010, 0x0000, 0x0201, 0x3000, 0x0024, /* 1210 */ + 0xb010, 0x0024, 0x0000, 0x0024, 0x2902, 0xbc15, 0x0002, 0x51c8, /* 1218 */ + 0x0006, 0x8011, 0x3100, 0x0024, 0x4080, 0x0024, 0x0000, 0x0024, /* 1220 */ + 0x2802, 0x5005, 0x0000, 0x0024, 0x0007, 0x8a52, 0x3200, 0x0024, /* 1228 */ + 0x4080, 0x0024, 0x0000, 0x0024, 0x2802, 0x5009, 0x0000, 0x0024, /* 1230 */ + 0xf292, 0x0800, 0x6012, 0x0024, 0x0000, 0x0000, 0x2802, 0x4fc5, /* 1238 */ + 0x0000, 0x0024, 0x3200, 0x0024, 0x4090, 0x0024, 0xb880, 0x2800, /* 1240 */ + 0x3900, 0x0024, 0x3100, 0x0024, 0x4080, 0x0024, 0x0000, 0x0024, /* 1248 */ + 0x2901, 0x5005, 0x0002, 0x4908, 0x2902, 0xbc00, 0x0000, 0x0024, /* 1250 */ + 0x0000, 0x0010, 0x0006, 0x9f51, 0x0006, 0x9f92, 0x0030, 0x0493, /* 1258 */ + 0x0000, 0x0201, 0x6890, 0xa410, 0x3b00, 0x2810, 0x0006, 0x8a10, /* 1260 */ + 0x3009, 0x0000, 0x6012, 0x0024, 0x0006, 0x9fd0, 0x2802, 0x5548, /* 1268 */ + 0xb880, 0x0024, 0x6890, 0x0024, 0x3009, 0x2000, 0x36f4, 0x9813, /* 1270 */ + 0x36f4, 0x1811, 0x36f0, 0x1801, 0x3405, 0x9014, 0x36f3, 0x0024, /* 1278 */ + 0x36f2, 0x1815, 0x2000, 0x0000, 0x36f2, 0x9817, 0x0007, 0x0001, /* 1280 */ + 0x5840, 0x0006, 0x0001, 0x0001, 0x0006, 0x8007, 0x0000, 0x0006, /* 1288 */ + 0x0018, 0x0002, 0x0000, 0xffff, 0xffff, 0x0000, 0x0000, 0x0000, /* 1290 */ + 0x0000, 0x0003, 0x0000, 0xfffd, 0xffff, 0x0001, 0x0000, 0x0000, /* 1298 */ + 0x0000, 0x0004, 0x0000, 0xfffa, 0xffff, 0x0004, 0x0000, 0xffff, /* 12a0 */ + 0xffff, 0x0007, 0x0001, 0x895e, 0x0006, 0x004e, 0x3613, 0x0024, /* 12a8 */ + 0x3e12, 0xb815, 0x0000, 0x800a, 0x3e14, 0x7813, 0x3e10, 0xb803, /* 12b0 */ + 0x3e11, 0x3805, 0x3e11, 0xb807, 0x3e13, 0xf80e, 0x6812, 0x0024, /* 12b8 */ + 0x3e03, 0x7810, 0x0fff, 0xffd3, 0x0000, 0x0091, 0xbd86, 0x9850, /* 12c0 */ + 0x3e10, 0x3804, 0x3e00, 0x7812, 0xbe8a, 0x8bcc, 0x409e, 0x8086, /* 12c8 */ + 0x2402, 0x5c87, 0xfe49, 0x2821, 0x526a, 0x8801, 0x5c87, 0x280e, /* 12d0 */ + 0x4eba, 0x9812, 0x4286, 0x40e1, 0xb284, 0x1bc1, 0x4de6, 0x0024, /* 12d8 */ + 0xad17, 0x2627, 0x4fde, 0x9804, 0x4498, 0x1bc0, 0x0000, 0x0024, /* 12e0 */ + 0x2802, 0x5a95, 0x3a11, 0xa807, 0x36f3, 0x4024, 0x36f3, 0xd80e, /* 12e8 */ + 0x36f1, 0x9807, 0x36f1, 0x1805, 0x36f0, 0x9803, 0x36f4, 0x5813, /* 12f0 */ + 0x2000, 0x0000, 0x36f2, 0x9815, 0x0007, 0x0001, 0x8985, 0x0006, /* 12f8 */ + 0x0056, 0x3613, 0x0024, 0x3e12, 0xb815, 0x0000, 0x800a, 0x3e10, /* 1300 */ + 0xb803, 0x3e11, 0x3805, 0x3e11, 0xb807, 0x3e13, 0xf80e, 0x6812, /* 1308 */ + 0x0024, 0x3e03, 0x7810, 0x3009, 0x1850, 0x3e10, 0x3804, 0x3e10, /* 1310 */ + 0x7812, 0x32f3, 0x0024, 0xbd86, 0x0024, 0x4091, 0xe2e3, 0x3009, /* 1318 */ + 0x0046, 0x2402, 0x6800, 0x3009, 0x0047, 0x32f0, 0x0801, 0xfe1f, /* 1320 */ + 0x6465, 0x5e8a, 0x0024, 0x44ba, 0x0024, 0xfee2, 0x0024, 0x5d8a, /* 1328 */ + 0x1800, 0x4482, 0x4160, 0x48ba, 0x8046, 0x4dc6, 0x1822, 0x4de6, /* 1330 */ + 0x8047, 0x36f3, 0x0024, 0x36f0, 0x5812, 0xad17, 0x2627, 0x4fde, /* 1338 */ + 0x9804, 0x4498, 0x1bc0, 0x0000, 0x0024, 0x2802, 0x6395, 0x3a11, /* 1340 */ + 0xa807, 0x36f3, 0x4024, 0x36f3, 0xd80e, 0x36f1, 0x9807, 0x36f1, /* 1348 */ + 0x1805, 0x36f0, 0x9803, 0x2000, 0x0000, 0x36f2, 0x9815, 0x0007, /* 1350 */ + 0x0001, 0x89b0, 0x0006, 0x0048, 0x3613, 0x0024, 0x3e10, 0xb810, /* 1358 */ + 0x3e11, 0x3805, 0x3e02, 0x0024, 0x0030, 0x0010, 0xce9a, 0x0002, /* 1360 */ + 0x0000, 0x0200, 0x2902, 0x7500, 0xb024, 0x0024, 0xc020, 0x0024, /* 1368 */ + 0x0000, 0x0200, 0x2802, 0x6dc5, 0x6e9a, 0x0002, 0x4182, 0x0024, /* 1370 */ + 0x0000, 0x0400, 0x2802, 0x7385, 0xae1a, 0x0024, 0x6104, 0x984c, /* 1378 */ + 0x0000, 0x0024, 0x2900, 0xb849, 0x0002, 0x7348, 0x6103, 0xe4e5, /* 1380 */ + 0x2900, 0xb840, 0x408a, 0x188c, 0x2900, 0xb840, 0x408a, 0x4141, /* 1388 */ + 0x4583, 0x6465, 0x2802, 0x7380, 0xceca, 0x1bcc, 0xc408, 0x0024, /* 1390 */ + 0xf2e2, 0x1bc8, 0x36f1, 0x1805, 0x2000, 0x0011, 0x36f0, 0x9810, /* 1398 */ + 0x2000, 0x0000, 0xdc92, 0x0024, 0x0007, 0x0001, 0x89d4, 0x0006, /* 13a0 */ + 0x0076, 0x0006, 0x8a17, 0x3613, 0x1c00, 0x6093, 0xe1e3, 0x0000, /* 13a8 */ + 0x03c3, 0x0006, 0x9f95, 0xb132, 0x9415, 0x3500, 0xfc01, 0x2802, /* 13b0 */ + 0x8315, 0xa306, 0x0024, 0x0006, 0xd397, 0x003f, 0xc001, 0x3500, /* 13b8 */ + 0x184c, 0xb011, 0xe4e5, 0xb182, 0x1c04, 0xd400, 0x184c, 0x0000, /* 13c0 */ + 0x0205, 0xac52, 0x3802, 0x0006, 0xd3c2, 0x4212, 0x0024, 0xf400, /* 13c8 */ + 0x4057, 0xb182, 0x1c04, 0xd400, 0x0024, 0xac52, 0x1404, 0xd142, /* 13d0 */ + 0x0024, 0x0000, 0x3fc4, 0xb142, 0x0024, 0x4122, 0x1bc2, 0xf400, /* 13d8 */ + 0x4057, 0x3700, 0x4024, 0xd101, 0x6465, 0x0006, 0xd397, 0x3f00, /* 13e0 */ + 0x3814, 0x0025, 0xffd4, 0x0006, 0xd317, 0x3710, 0x160c, 0x0006, /* 13e8 */ + 0x9f94, 0x37f0, 0x73d5, 0x6c92, 0x3808, 0x3f10, 0x0024, 0x3ff0, /* 13f0 */ + 0x4024, 0x3009, 0x1040, 0x3009, 0x13c1, 0x6010, 0x0024, 0x0000, /* 13f8 */ + 0x0024, 0x2902, 0xd7c5, 0x0002, 0x7f08, 0x2802, 0x8154, 0x0006, /* 1400 */ + 0x0001, 0x4010, 0x0024, 0x0005, 0xf601, 0x6010, 0x0024, 0x0000, /* 1408 */ + 0x0040, 0x2802, 0x82d4, 0x0030, 0x0497, 0x3f00, 0x0024, 0x36f2, /* 1410 */ + 0x1814, 0x4330, 0x9803, 0x2000, 0x0000, 0x8880, 0x1bc1, 0x0007, /* 1418 */ + 0x0001, 0x8a0f, 0x0006, 0x00a4, 0x3613, 0x0024, 0x3e22, 0xb806, /* 1420 */ + 0x3e05, 0xb814, 0x3615, 0x0024, 0x0000, 0x800a, 0x3e10, 0x3801, /* 1428 */ + 0x3e10, 0xb803, 0x3e11, 0x7807, 0x6848, 0x930c, 0x3411, 0x780d, /* 1430 */ + 0x459a, 0x10c0, 0x0000, 0x0201, 0x6012, 0x384e, 0x0000, 0x0241, /* 1438 */ + 0x2802, 0x8a55, 0x6012, 0x380f, 0x2402, 0x8985, 0x0000, 0x0024, /* 1440 */ + 0x3000, 0x0001, 0x3101, 0x8407, 0x6cfe, 0x0024, 0xac42, 0x0024, /* 1448 */ + 0xaf4e, 0x2040, 0x3911, 0x8024, 0x2802, 0x9600, 0x0000, 0x0024, /* 1450 */ + 0x0000, 0x0281, 0x2802, 0x8d95, 0x6012, 0x4455, 0x2402, 0x8cc5, /* 1458 */ + 0x0000, 0x0024, 0x3000, 0x0001, 0x3101, 0x8407, 0x4cf2, 0x0024, /* 1460 */ + 0xac42, 0x0024, 0xaf4e, 0x2040, 0x3911, 0x8024, 0x2802, 0x9600, /* 1468 */ + 0x0000, 0x0024, 0x0000, 0x0024, 0x2802, 0x91d5, 0x4080, 0x0024, /* 1470 */ + 0x3110, 0x0401, 0xf20f, 0x0203, 0x2402, 0x9105, 0x8dd6, 0x0024, /* 1478 */ + 0x4dce, 0x0024, 0xf1fe, 0x0024, 0xaf4e, 0x0024, 0x6dc6, 0x2046, /* 1480 */ + 0xf1df, 0x0203, 0xaf4f, 0x1011, 0xf20e, 0x07cc, 0x8dd6, 0x2486, /* 1488 */ + 0x2802, 0x9600, 0x0000, 0x0024, 0x0000, 0x0024, 0x2802, 0x9455, /* 1490 */ + 0x0000, 0x0024, 0x0fff, 0xffd1, 0x2402, 0x9385, 0x3010, 0x0001, /* 1498 */ + 0xac4f, 0x0801, 0x3821, 0x8024, 0x2802, 0x9600, 0x0000, 0x0024, /* 14a0 */ + 0x0fff, 0xffd1, 0x2402, 0x95c5, 0x3010, 0x0001, 0x3501, 0x9407, /* 14a8 */ + 0xac47, 0x0801, 0xaf4e, 0x2082, 0x3d11, 0x8024, 0x36f3, 0xc024, /* 14b0 */ + 0x36f3, 0x980d, 0x36f1, 0x5807, 0x36f0, 0x9803, 0x36f0, 0x1801, /* 14b8 */ + 0x3405, 0x9014, 0x36e3, 0x0024, 0x2000, 0x0000, 0x36f2, 0x9806, /* 14c0 */ + 0x0007, 0x0001, 0x8a61, 0x0006, 0x005c, 0x0006, 0x9f97, 0x3e00, /* 14c8 */ + 0x5c15, 0x0006, 0xd397, 0x003f, 0xc001, 0x3500, 0x3840, 0xb011, /* 14d0 */ + 0xe4e5, 0xb182, 0x1c04, 0xd400, 0x184c, 0x0000, 0x0205, 0xac52, /* 14d8 */ + 0x3802, 0x0006, 0xd3c2, 0x4212, 0x0024, 0xb182, 0x4057, 0x3701, /* 14e0 */ + 0x0024, 0xd400, 0x0024, 0xac52, 0x1404, 0xd142, 0x0024, 0x0000, /* 14e8 */ + 0x3fc4, 0xb142, 0x0024, 0x4122, 0x1bc2, 0xf400, 0x4057, 0x3700, /* 14f0 */ + 0x4024, 0xd101, 0x6465, 0x0006, 0xd397, 0x3f00, 0x3814, 0x0025, /* 14f8 */ + 0xffd4, 0x0006, 0xd317, 0x3710, 0x160c, 0x0006, 0x9f94, 0x37f0, /* 1500 */ + 0x73d5, 0x6c92, 0x0024, 0x3f10, 0x1040, 0x3ff0, 0x53c1, 0x6010, /* 1508 */ + 0x0024, 0x0000, 0x0024, 0x2802, 0xa1d4, 0x0006, 0x0001, 0x4010, /* 1510 */ + 0x0024, 0x0005, 0xf601, 0x6010, 0x9bd4, 0x0000, 0x0040, 0x2802, /* 1518 */ + 0xa354, 0x0030, 0x0497, 0x3f00, 0x0024, 0x2000, 0x0000, 0x36f0, /* 1520 */ + 0x5800, 0x0007, 0x0001, 0x82e1, 0x0006, 0x003a, 0x3e10, 0xb812, /* 1528 */ + 0x3e11, 0xb810, 0x3e12, 0x0024, 0x0006, 0x9f92, 0x0025, 0xffd0, /* 1530 */ + 0x3e04, 0x4bd1, 0x3181, 0xf847, 0xb68c, 0x4440, 0x3009, 0x0802, /* 1538 */ + 0x6024, 0x3806, 0x0006, 0x8a10, 0x2902, 0xd7c5, 0x0000, 0xba48, /* 1540 */ + 0x0000, 0x0800, 0x6101, 0x1602, 0xaf2e, 0x0024, 0x4214, 0x1be3, /* 1548 */ + 0xaf0e, 0x1811, 0x0fff, 0xfc00, 0xb200, 0x9bc7, 0x0000, 0x03c0, /* 1550 */ + 0x2800, 0xbe85, 0xb204, 0xa002, 0x2902, 0x9840, 0x3613, 0x2002, /* 1558 */ + 0x4680, 0x1bc8, 0x36f1, 0x9810, 0x2000, 0x0000, 0x36f0, 0x9812, /* 1560 */ + 0x0007, 0x0001, 0x8a8f, 0x0006, 0x0022, 0x0000, 0x0400, 0x6102, /* 1568 */ + 0x0024, 0x3e11, 0x3805, 0x2802, 0xa6c9, 0x3e02, 0x0024, 0x2900, /* 1570 */ + 0xb840, 0x408a, 0x188c, 0x2900, 0xb840, 0x408a, 0x4141, 0x4582, /* 1578 */ + 0x1bc8, 0x2000, 0x0000, 0x36f1, 0x1805, 0x2900, 0xb840, 0x4102, /* 1580 */ + 0x184c, 0xb182, 0x1bc8, 0x2000, 0x0000, 0x36f1, 0x1805, 0x0007, /* 1588 */ + 0x0001, 0x8aa0, 0x0006, 0x002a, 0x3613, 0x0024, 0x3e12, 0xb815, /* 1590 */ + 0x3e11, 0xb807, 0x3e13, 0xf80e, 0x3e03, 0x4024, 0x680c, 0x0024, /* 1598 */ + 0x0000, 0x0024, 0x2802, 0xac18, 0x409c, 0x0024, 0x2402, 0xabc6, /* 15a0 */ + 0x0000, 0x000a, 0x3111, 0xc024, 0xfe4e, 0x0007, 0x47be, 0x0024, /* 15a8 */ + 0xf6fe, 0x0024, 0x3811, 0xc024, 0x36f3, 0x4024, 0x36f3, 0xd80e, /* 15b0 */ + 0x36f1, 0x9807, 0x2000, 0x0000, 0x36f2, 0x9815, 0x0007, 0x0001, /* 15b8 */ + 0x8ab5, 0x0006, 0x002a, 0x3613, 0x0024, 0x3e12, 0xb815, 0x3e11, /* 15c0 */ + 0xb807, 0x3e13, 0xf80e, 0x3e03, 0x4024, 0x680c, 0x0024, 0x0000, /* 15c8 */ + 0x0024, 0x2802, 0xb158, 0x409c, 0x0024, 0x2402, 0xb106, 0x0000, /* 15d0 */ + 0x000a, 0x3111, 0xc024, 0xfe4e, 0x8007, 0x47be, 0x0024, 0xf6fe, /* 15d8 */ + 0x0024, 0x3009, 0x2047, 0x36f3, 0x4024, 0x36f3, 0xd80e, 0x36f1, /* 15e0 */ + 0x9807, 0x2000, 0x0000, 0x36f2, 0x9815, 0x0007, 0x0001, 0x8aca, /* 15e8 */ + 0x0006, 0x0038, 0x2a02, 0xb2ce, 0x3e12, 0xb817, 0x3e10, 0x3802, /* 15f0 */ + 0x0000, 0x800a, 0x0006, 0x9f97, 0x3009, 0x1fc2, 0x3e04, 0x5c00, /* 15f8 */ + 0x6020, 0xb810, 0x0030, 0x0451, 0x2802, 0xb594, 0x0006, 0x0002, /* 1600 */ + 0x4020, 0x0024, 0x0005, 0xfb02, 0x6024, 0x0024, 0x0025, 0xffd0, /* 1608 */ + 0x2802, 0xb7d1, 0x3100, 0x1c11, 0xb284, 0x0024, 0x0030, 0x0490, /* 1610 */ + 0x3800, 0x8024, 0x0025, 0xffd0, 0x3980, 0x1810, 0x36f4, 0x7c11, /* 1618 */ + 0x36f0, 0x1802, 0x0030, 0x0717, 0x3602, 0x8024, 0x2100, 0x0000, /* 1620 */ + 0x3f05, 0xdbd7, 0x0007, 0x0001, 0x8ae6, 0x0006, 0x0012, 0x0002, /* 1628 */ + 0xb297, 0x3613, 0x0024, 0x3e00, 0x3801, 0xf400, 0x55c0, 0x0000, /* 1630 */ + 0x0897, 0xf400, 0x57c0, 0x0000, 0x0024, 0x2000, 0x0000, 0x36f0, /* 1638 */ + 0x1801, 0x0007, 0x0001, 0x8aef, 0x0006, 0x0006, 0x2a08, 0x1b8e, /* 1640 */ + 0x2802, 0xb9c0, 0x0002, 0xbbd7, 0x0007, 0x0001, 0x8af2, 0x0006, /* 1648 */ + 0x0006, 0x0006, 0xd397, 0x2000, 0x0000, 0x3f00, 0x0024, 0x0007, /* 1650 */ + 0x0001, 0x8af5, 0x0006, 0x0006, 0x0006, 0xd397, 0x2000, 0x0000, /* 1658 */ + 0x3700, 0x0024, 0x0007, 0x0001, 0x8af8, 0x0006, 0x0018, 0xb183, /* 1660 */ + 0xe1e3, 0x0000, 0x0203, 0xac32, 0x40d5, 0xd122, 0x0024, 0x0000, /* 1668 */ + 0x3fc3, 0xb132, 0x0024, 0x0006, 0xd3c3, 0x4316, 0x0024, 0xf400, /* 1670 */ + 0x40d5, 0x3500, 0x5803, 0x2000, 0x0000, 0xd010, 0x1bc1, 0x0007, /* 1678 */ + 0x0001, 0x8b04, 0x0006, 0x0070, 0x3613, 0x0024, 0x3e22, 0xb815, /* 1680 */ + 0x3e05, 0xb814, 0x3615, 0x0024, 0x0000, 0x800a, 0x3e10, 0x3801, /* 1688 */ + 0x3e10, 0xb803, 0xb884, 0xb805, 0xb888, 0x3844, 0x3e11, 0xb80d, /* 1690 */ + 0x3e03, 0xf80e, 0x0000, 0x03ce, 0xf400, 0x4083, 0x2402, 0xc98e, /* 1698 */ + 0xf400, 0x4105, 0x0000, 0x0206, 0xa562, 0x0024, 0x455a, 0x0024, /* 16a0 */ + 0x0020, 0x0006, 0xd312, 0x0024, 0xb16c, 0x0024, 0x0020, 0x0006, /* 16a8 */ + 0x2802, 0xc805, 0xd342, 0x0024, 0x0000, 0x01c6, 0xd342, 0x0024, /* 16b0 */ + 0xd56a, 0x0024, 0x0020, 0x0006, 0x4448, 0x0024, 0xb16c, 0x0024, /* 16b8 */ + 0x0020, 0x0146, 0x2802, 0xc985, 0x0000, 0x0024, 0xd468, 0x0024, /* 16c0 */ + 0x4336, 0x0024, 0x0000, 0x4000, 0x0006, 0xd3c1, 0x0006, 0x9306, /* 16c8 */ + 0x4122, 0x0024, 0x462c, 0x4055, 0x4092, 0x3404, 0xb512, 0x4195, /* 16d0 */ + 0x6294, 0x3401, 0x6200, 0x0024, 0x0000, 0x03ce, 0x2802, 0xc411, /* 16d8 */ + 0xb888, 0x0024, 0x36f3, 0xd80e, 0x36f1, 0x980d, 0x36f1, 0x1805, /* 16e0 */ + 0x36f0, 0x9803, 0x36f0, 0x1801, 0x3405, 0x9014, 0x36e3, 0x0024, /* 16e8 */ + 0x2000, 0x0000, 0x36f2, 0x9815, 0x0007, 0x0001, 0x8b3c, 0x0006, /* 16f0 */ + 0x0046, 0x3613, 0x0024, 0x3e12, 0xb817, 0x3e12, 0x3815, 0x3e05, /* 16f8 */ + 0xb814, 0x3615, 0x0024, 0x0000, 0x800a, 0x3e10, 0x3801, 0xb880, /* 1700 */ + 0xb810, 0x0006, 0x9fd0, 0x3e10, 0x8001, 0x4182, 0x3811, 0x0006, /* 1708 */ + 0xd311, 0x2802, 0xd2c5, 0x0006, 0x8a10, 0x0000, 0x0200, 0xbc82, /* 1710 */ + 0xa000, 0x3910, 0x0024, 0x2902, 0xc100, 0x39f0, 0x4024, 0x0006, /* 1718 */ + 0x9f90, 0x0006, 0x9f51, 0x3009, 0x0000, 0x3009, 0x0401, 0x6014, /* 1720 */ + 0x0024, 0x0000, 0x0024, 0x2902, 0xd7c5, 0x0002, 0xd3c8, 0x36f4, /* 1728 */ + 0x4024, 0x36f0, 0x9810, 0x36f0, 0x1801, 0x3405, 0x9014, 0x36f3, /* 1730 */ + 0x0024, 0x36f2, 0x1815, 0x2000, 0x0000, 0x36f2, 0x9817, 0x0007, /* 1738 */ + 0x0001, 0x8b5f, 0x0006, 0x001a, 0x3613, 0x0024, 0x3e12, 0xb817, /* 1740 */ + 0x3e12, 0x3815, 0x3e05, 0xb814, 0x290a, 0xd900, 0x3605, 0x0024, /* 1748 */ + 0x2910, 0x0180, 0x3613, 0x0024, 0x3405, 0x9014, 0x36f3, 0x0024, /* 1750 */ + 0x36f2, 0x1815, 0x2000, 0x0000, 0x36f2, 0x9817, 0x0007, 0x0001, /* 1758 */ + 0x8b6c, 0x0006, 0x0064, 0x3613, 0x0024, 0x3e12, 0xb817, 0x3e12, /* 1760 */ + 0x3815, 0x3e05, 0xb814, 0x3615, 0x0024, 0x0000, 0x800a, 0x3e10, /* 1768 */ + 0xb803, 0x0006, 0x0002, 0x3e11, 0x3805, 0x3e11, 0xb807, 0x3e14, /* 1770 */ + 0x3811, 0x0006, 0x9f90, 0x3e04, 0xb813, 0x3009, 0x0012, 0x3213, /* 1778 */ + 0x0024, 0xf400, 0x4480, 0x6026, 0x0024, 0x0000, 0x0024, 0x2802, /* 1780 */ + 0xe055, 0x0000, 0x0024, 0x0000, 0x0012, 0xf400, 0x4480, 0x0006, /* 1788 */ + 0x9f50, 0x3009, 0x0002, 0x6026, 0x0024, 0x0000, 0x0024, 0x2902, /* 1790 */ + 0xd7c5, 0x0002, 0xe048, 0x0006, 0x9f93, 0x3201, 0x0c11, 0xb58a, /* 1798 */ + 0x0406, 0x0006, 0x8a11, 0x468e, 0x8400, 0xb68c, 0x9813, 0xcfee, /* 17a0 */ + 0x1bd2, 0x0000, 0x0804, 0xaf0e, 0x9811, 0x4f86, 0x1bd0, 0x0000, /* 17a8 */ + 0x0021, 0x6418, 0x9807, 0x6848, 0x1bc6, 0xad46, 0x9805, 0xf400, /* 17b0 */ + 0x4080, 0x36f1, 0x0024, 0x36f0, 0x9803, 0x3405, 0x9014, 0x36f3, /* 17b8 */ + 0x0024, 0x36f2, 0x1815, 0x2000, 0x0000, 0x36f2, 0x9817, 0x0007, /* 17c0 */ + 0x0001, 0x8b9e, 0x0006, 0x0064, 0x3613, 0x0024, 0x3e12, 0xb817, /* 17c8 */ + 0x3e12, 0x3815, 0x3e05, 0xb814, 0x3615, 0x0024, 0x0000, 0x800a, /* 17d0 */ + 0x3e10, 0x3801, 0x3e10, 0xb803, 0x3e11, 0x3805, 0x2802, 0xee80, /* 17d8 */ + 0x3e04, 0x3811, 0x0000, 0x0401, 0x2900, 0xb840, 0x3613, 0x0024, /* 17e0 */ + 0x0000, 0x0080, 0xb882, 0x130c, 0xf400, 0x4510, 0x3010, 0x910c, /* 17e8 */ + 0x30f0, 0xc024, 0x6dc2, 0x0024, 0x3810, 0x0024, 0x38f0, 0x4024, /* 17f0 */ + 0x0000, 0x0201, 0x3100, 0x0024, 0xb010, 0x0024, 0x0000, 0x0024, /* 17f8 */ + 0x2802, 0xf1d5, 0x0000, 0x0024, 0x6894, 0x130c, 0xb886, 0x1040, /* 1800 */ + 0x3430, 0x4024, 0x6dca, 0x0024, 0x0030, 0x0011, 0x2802, 0xea51, /* 1808 */ + 0x0000, 0x0024, 0xbcd2, 0x0024, 0x0000, 0x0201, 0x2802, 0xf1c5, /* 1810 */ + 0x0000, 0x0024, 0x2900, 0xb840, 0x3613, 0x0024, 0x36f4, 0x1811, /* 1818 */ + 0x36f1, 0x1805, 0x36f0, 0x9803, 0x36f0, 0x1801, 0x3405, 0x9014, /* 1820 */ + 0x36f3, 0x0024, 0x36f2, 0x1815, 0x2000, 0x0000, 0x36f2, 0x9817, /* 1828 */ + 0x0007, 0x0001, 0x8bd0, 0x0006, 0x0018, 0x4080, 0x184c, 0x3e13, /* 1830 */ + 0x780f, 0x2802, 0xf605, 0x4090, 0xb80e, 0x2402, 0xf580, 0x3e04, /* 1838 */ + 0x0440, 0x3810, 0x0440, 0x3604, 0x0024, 0x3009, 0x1bce, 0x3603, /* 1840 */ + 0x5bcf, 0x2000, 0x0000, 0x0000, 0x0024, 0x000a, 0x0001, 0x0300, +};
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/VS1053b_specana.c Fri Apr 28 19:18:46 2017 +0000 @@ -0,0 +1,139 @@ +/* + +Spectrum Analyzer Plugin + +* Provides up to 23 analyzer bands for implementing a graphical spectrum display. +* Handles all audio formats and sample rates, including microphone loopback. +* Number of bands and center frequencies customizable. +* spectrumAnalyzer.pdf + +Version: 0.9 +Modified: 2008-06-12 +Devices: VS1011B, VS1011E, VS1003B, VS1033B, VS1033C, VS1033D, VS1053B +Download: spectrumAnalyzer09.zip + +*/ + +const unsigned short vs1053b_specana[968] ={ + 0x0007, 0x0001, 0x8050, 0x0006, 0x0018, 0x3613, 0x0024, 0x3e00, /* 0 */ + 0x3801, 0x0000, 0x16d7, 0xf400, 0x55c0, 0x0000, 0x0c17, 0xf400, /* 8 */ + 0x57c0, 0x0007, 0x9257, 0xb080, 0x0024, 0x3f00, 0x0024, 0x2000, /* 10 */ + 0x0000, 0x36f0, 0x1801, 0x2800, 0x31c0, 0x0007, 0x0001, 0x805c, /* 18 */ + 0x0006, 0x00d6, 0x3e12, 0xb817, 0x3e12, 0x3815, 0x3e05, 0xb814, /* 20 */ + 0x3615, 0x0024, 0x0000, 0x800a, 0x3e10, 0x3801, 0x0006, 0x0000, /* 28 */ + 0x3e10, 0xb803, 0x0000, 0x0303, 0x3e11, 0x3805, 0x3e11, 0xb807, /* 30 */ + 0x3e14, 0x3812, 0xb884, 0x130c, 0x3410, 0x4024, 0x4112, 0x10d0, /* 38 */ + 0x4010, 0x008c, 0x4010, 0x0024, 0xf400, 0x4012, 0x3000, 0x3840, /* 40 */ + 0x3009, 0x3801, 0x0000, 0x0041, 0xfe02, 0x0024, 0x2900, 0x8440, /* 48 */ + 0x48b2, 0x0024, 0x36f3, 0x0844, 0x6306, 0x8845, 0xae3a, 0x8840, /* 50 */ + 0xbf8e, 0x8b41, 0xac32, 0xa846, 0xffc8, 0xabc7, 0x3e01, 0x7800, /* 58 */ + 0xf400, 0x4480, 0x6090, 0x0024, 0x6090, 0x0024, 0xf400, 0x4015, /* 60 */ + 0x3009, 0x3446, 0x3009, 0x37c7, 0x3009, 0x1800, 0x3009, 0x3844, /* 68 */ + 0x48b3, 0xe1e0, 0x4882, 0x4040, 0xfeca, 0x0024, 0x5ac2, 0x0024, /* 70 */ + 0x5a52, 0x0024, 0x4cc2, 0x0024, 0x48ba, 0x4040, 0x4eea, 0x4801, /* 78 */ + 0x4eca, 0x9800, 0xff80, 0x1bc1, 0xf1eb, 0xe3e2, 0xf1ea, 0x184c, /* 80 */ + 0x4c8b, 0xe5e4, 0x48be, 0x9804, 0x488e, 0x41c6, 0xfe82, 0x0024, /* 88 */ + 0x5a8e, 0x0024, 0x525e, 0x1b85, 0x4ffe, 0x0024, 0x48b6, 0x41c6, /* 90 */ + 0x4dd6, 0x48c7, 0x4df6, 0x0024, 0xf1d6, 0x0024, 0xf1d6, 0x0024, /* 98 */ + 0x4eda, 0x0024, 0x0000, 0x0fc3, 0x2900, 0x8440, 0x4e82, 0x0024, /* a0 */ + 0x4084, 0x130c, 0x0006, 0x0100, 0x3440, 0x4024, 0x4010, 0x0024, /* a8 */ + 0xf400, 0x4012, 0x3200, 0x4024, 0xb132, 0x0024, 0x4214, 0x0024, /* b0 */ + 0xf224, 0x0024, 0x6230, 0x0024, 0x0001, 0x0001, 0x2800, 0x2b49, /* b8 */ + 0x0000, 0x0024, 0xf400, 0x40c2, 0x3200, 0x0024, 0xff82, 0x0024, /* c0 */ + 0x48b2, 0x0024, 0xb130, 0x0024, 0x6202, 0x0024, 0x003f, 0xf001, /* c8 */ + 0x2800, 0x2e51, 0x0000, 0x1046, 0xfe64, 0x0024, 0x48be, 0x0024, /* d0 */ + 0x2800, 0x2f40, 0x3a01, 0x8024, 0x3200, 0x0024, 0xb010, 0x0024, /* d8 */ + 0xc020, 0x0024, 0x3a00, 0x0024, 0x36f4, 0x1812, 0x36f1, 0x9807, /* e0 */ + 0x36f1, 0x1805, 0x36f0, 0x9803, 0x36f0, 0x1801, 0x3405, 0x9014, /* e8 */ + 0x36f3, 0x0024, 0x36f2, 0x1815, 0x2000, 0x0000, 0x36f2, 0x9817, /* f0 */ + 0x0007, 0x0001, 0x80c7, 0x0006, 0x01c0, 0x3e12, 0xb817, 0x3e12, /* f8 */ + 0x3815, 0x3e05, 0xb814, 0x3625, 0x0024, 0x0000, 0x800a, 0x3e10, /* 100 */ + 0x7802, 0x3e10, 0xf804, 0x3e11, 0x7810, 0x3e14, 0x7813, 0x0006, /* 108 */ + 0x0051, 0x3e13, 0xf80e, 0x3e13, 0x4024, 0x3009, 0x3840, 0x3009, /* 110 */ + 0x3852, 0x2911, 0xf140, 0x0006, 0x06d0, 0x3100, 0x5bd2, 0x0006, /* 118 */ + 0xc351, 0x3009, 0x1800, 0x3009, 0x0402, 0x6126, 0x0024, 0x0006, /* 120 */ + 0x00d1, 0x2800, 0x4d05, 0xb882, 0x0024, 0x0006, 0x0011, 0x3009, /* 128 */ + 0x3850, 0x0006, 0x0010, 0x3009, 0x3800, 0x2914, 0xbec0, 0x0000, /* 130 */ + 0x1800, 0x0006, 0x0010, 0xb882, 0x0024, 0x2915, 0x7ac0, 0x0000, /* 138 */ + 0x1700, 0x0000, 0x0301, 0x3900, 0x5bc0, 0x0006, 0xc351, 0x3009, /* 140 */ + 0x1bd0, 0x3009, 0x0404, 0x0006, 0x0051, 0x2800, 0x3d00, 0x3901, /* 148 */ + 0x0024, 0x4448, 0x0401, 0x4192, 0x0024, 0x6498, 0x2401, 0x001f, /* 150 */ + 0x4001, 0x6412, 0x0024, 0x0006, 0x0011, 0x2800, 0x3c51, 0x0000, /* 158 */ + 0x058e, 0x2400, 0x4c0e, 0x0000, 0x0013, 0x0006, 0x0051, 0x0006, /* 160 */ + 0x1a03, 0x3100, 0x4024, 0xf212, 0x44c4, 0x4346, 0x0024, 0xf400, /* 168 */ + 0x40d5, 0x3500, 0x8024, 0x612a, 0x0024, 0x0000, 0x0024, 0x2800, /* 170 */ + 0x4c51, 0x0000, 0x0024, 0x3613, 0x0024, 0x3100, 0x3800, 0x2915, /* 178 */ + 0x7dc0, 0xf200, 0x0024, 0x003f, 0xfec2, 0x4082, 0x4411, 0x3113, /* 180 */ + 0x1bc0, 0xa122, 0x0024, 0x0000, 0x2002, 0x6124, 0x2401, 0x0000, /* 188 */ + 0x1002, 0x2800, 0x4608, 0x0000, 0x0024, 0x003f, 0xf802, 0x3100, /* 190 */ + 0x4024, 0xb124, 0x0024, 0x2800, 0x4bc0, 0x3900, 0x8024, 0x6124, /* 198 */ + 0x0024, 0x0000, 0x0802, 0x2800, 0x4848, 0x0000, 0x0024, 0x003f, /* 1a0 */ + 0xfe02, 0x3100, 0x4024, 0xb124, 0x0024, 0x2800, 0x4bc0, 0x3900, /* 1a8 */ + 0x8024, 0x6124, 0x0024, 0x0000, 0x0402, 0x2800, 0x4a88, 0x0000, /* 1b0 */ + 0x0024, 0x003f, 0xff02, 0x3100, 0x4024, 0xb124, 0x0024, 0x2800, /* 1b8 */ + 0x4bc0, 0x3900, 0x8024, 0x6124, 0x0401, 0x003f, 0xff82, 0x2800, /* 1c0 */ + 0x4bc8, 0xb124, 0x0024, 0x3900, 0x8024, 0xb882, 0x8c4c, 0x3830, /* 1c8 */ + 0x4024, 0x0006, 0x0091, 0x3904, 0xd84c, 0x0006, 0x00d1, 0x0000, /* 1d0 */ + 0x0013, 0x3100, 0x904c, 0x4202, 0x9bcc, 0x39f0, 0x4024, 0x3100, /* 1d8 */ + 0x4024, 0x3c00, 0x4024, 0xf400, 0x44c1, 0x34f0, 0x8024, 0x6126, /* 1e0 */ + 0x0024, 0x0006, 0x06d0, 0x2800, 0x5dd8, 0x4294, 0x0024, 0x2400, /* 1e8 */ + 0x5d82, 0x0000, 0x0024, 0xf400, 0x4411, 0x3123, 0x0024, 0x3100, /* 1f0 */ + 0x8024, 0x4202, 0x0024, 0x4182, 0x2401, 0x0000, 0x2002, 0x2800, /* 1f8 */ + 0x5d89, 0x0000, 0x0024, 0x3013, 0x184c, 0x30f0, 0x7852, 0x6124, /* 200 */ + 0xb850, 0x0006, 0x0001, 0x2800, 0x5588, 0x4088, 0x44c2, 0x4224, /* 208 */ + 0x0024, 0x4122, 0x0024, 0x4122, 0x0024, 0xf400, 0x4051, 0x2900, /* 210 */ + 0x7440, 0x0000, 0x56c8, 0x4224, 0x0024, 0x4122, 0x0024, 0x4122, /* 218 */ + 0x0024, 0x2900, 0x69c0, 0xf400, 0x4051, 0x0004, 0x0002, 0x3009, /* 220 */ + 0x1bd0, 0x3023, 0x1bd2, 0x30e0, 0x4024, 0x6124, 0x0024, 0x0000, /* 228 */ + 0x4002, 0x2800, 0x5988, 0x0000, 0x0024, 0x0000, 0x0001, 0x3820, /* 230 */ + 0x4024, 0x30e0, 0x4024, 0x6124, 0x0001, 0x003f, 0xff42, 0x2800, /* 238 */ + 0x5d88, 0x4182, 0x0024, 0x0000, 0x0024, 0x2800, 0x5d95, 0x0000, /* 240 */ + 0x0024, 0x3613, 0x0024, 0x3e14, 0xc024, 0x2900, 0x1700, 0x3e14, /* 248 */ + 0x0024, 0x36e3, 0x008c, 0x30e0, 0x4024, 0xfe22, 0x4411, 0x48b6, /* 250 */ + 0x048c, 0x3900, 0x8024, 0x3033, 0x0c4c, 0x0006, 0x0011, 0x6892, /* 258 */ + 0x04c2, 0xa122, 0x0402, 0x6126, 0x0024, 0x0006, 0x0093, 0x2800, /* 260 */ + 0x6701, 0x0000, 0x0024, 0xb882, 0x184c, 0x3413, 0x3812, 0x0006, /* 268 */ + 0x00d2, 0x3a00, 0x5bd2, 0x3300, 0x4024, 0x0000, 0x0013, 0x3c00, /* 270 */ + 0x4024, 0xf400, 0x44c1, 0x34f0, 0x8024, 0x6126, 0x0024, 0x0006, /* 278 */ + 0x0111, 0x2800, 0x6718, 0x4294, 0x0024, 0x2400, 0x66c2, 0x0000, /* 280 */ + 0x0024, 0x0003, 0xf001, 0x3101, 0x0024, 0xb412, 0x0024, 0x0028, /* 288 */ + 0x0001, 0x2800, 0x66c5, 0x6144, 0x0024, 0x0004, 0x0002, 0x2800, /* 290 */ + 0x6681, 0x4422, 0x0024, 0x0000, 0x1002, 0x6422, 0x0024, 0x2800, /* 298 */ + 0x66c0, 0x3900, 0x4024, 0x3900, 0x4024, 0x3113, 0x0c4c, 0x36f3, /* 2a0 */ + 0x4024, 0x36f3, 0xd80e, 0x36f4, 0x5813, 0x36f1, 0x5810, 0x36f0, /* 2a8 */ + 0xd804, 0x36f0, 0x5802, 0x3405, 0x9014, 0x36f3, 0x0024, 0x36f2, /* 2b0 */ + 0x1815, 0x2000, 0x0000, 0x36f2, 0x9817, 0x0007, 0x0001, 0x1868, /* 2b8 */ + 0x0006, 0x000f, 0x0032, 0x004f, 0x007e, 0x00c8, 0x013d, 0x01f8, /* 2c0 */ + 0x0320, 0x04f6, 0x07e0, 0x0c80, 0x13d8, 0x1f7f, 0x3200, 0x4f5f, /* 2c8 */ + 0x61a8, 0x0006, 0x8008, 0x0000, 0x0007, 0x0001, 0x81a7, 0x0006, /* 2d0 */ + 0x0054, 0x3e12, 0xb814, 0x0000, 0x800a, 0x3e10, 0x3801, 0x3e10, /* 2d8 */ + 0xb803, 0x3e11, 0x7806, 0x3e11, 0xf813, 0x3e13, 0xf80e, 0x3e13, /* 2e0 */ + 0x4024, 0x3e04, 0x7810, 0x449a, 0x0040, 0x0001, 0x0003, 0x2800, /* 2e8 */ + 0x7304, 0x4036, 0x03c1, 0x0003, 0xffc2, 0xb326, 0x0024, 0x0018, /* 2f0 */ + 0x0042, 0x4326, 0x4495, 0x4024, 0x40d2, 0x0000, 0x0180, 0xa100, /* 2f8 */ + 0x4090, 0x0010, 0x0fc2, 0x4204, 0x0024, 0xbc82, 0x4091, 0x459a, /* 300 */ + 0x0024, 0x0000, 0x0054, 0x2800, 0x7204, 0xbd86, 0x4093, 0x2400, /* 308 */ + 0x71c5, 0xfe01, 0x5e0c, 0x5c43, 0x5f2d, 0x5e46, 0x020c, 0x5c56, /* 310 */ + 0x8a0c, 0x5e53, 0x5e0c, 0x5c43, 0x5f2d, 0x5e46, 0x020c, 0x5c56, /* 318 */ + 0x8a0c, 0x5e52, 0x0024, 0x4cb2, 0x4405, 0x0018, 0x0044, 0x654a, /* 320 */ + 0x0024, 0x2800, 0x8000, 0x36f4, 0x5810, 0x0007, 0x0001, 0x81d1, /* 328 */ + 0x0006, 0x0080, 0x3e12, 0xb814, 0x0000, 0x800a, 0x3e10, 0x3801, /* 330 */ + 0x3e10, 0xb803, 0x3e11, 0x7806, 0x3e11, 0xf813, 0x3e13, 0xf80e, /* 338 */ + 0x3e13, 0x4024, 0x3e04, 0x7810, 0x449a, 0x0040, 0x0000, 0x0803, /* 340 */ + 0x2800, 0x7ec4, 0x30f0, 0x4024, 0x0fff, 0xfec2, 0xa020, 0x0024, /* 348 */ + 0x0fff, 0xff02, 0xa122, 0x0024, 0x4036, 0x0024, 0x0000, 0x1fc2, /* 350 */ + 0xb326, 0x0024, 0x0010, 0x4002, 0x4326, 0x4495, 0x4024, 0x40d2, /* 358 */ + 0x0000, 0x0180, 0xa100, 0x4090, 0x0010, 0x0042, 0x4204, 0x0024, /* 360 */ + 0xbc82, 0x4091, 0x459a, 0x0024, 0x0000, 0x0054, 0x2800, 0x7dc4, /* 368 */ + 0xbd86, 0x4093, 0x2400, 0x7d85, 0xfe01, 0x5e0c, 0x5c43, 0x5f2d, /* 370 */ + 0x5e46, 0x0024, 0x5c56, 0x0024, 0x5e53, 0x5e0c, 0x5c43, 0x5f2d, /* 378 */ + 0x5e46, 0x0024, 0x5c56, 0x0024, 0x5e52, 0x0024, 0x4cb2, 0x4405, /* 380 */ + 0x0010, 0x4004, 0x654a, 0x9810, 0x0000, 0x0144, 0xa54a, 0x1bd1, /* 388 */ + 0x0006, 0x0013, 0x3301, 0xc444, 0x687e, 0x2005, 0xad76, 0x8445, /* 390 */ + 0x4ed6, 0x8784, 0x36f3, 0x64c2, 0xac72, 0x8785, 0x4ec2, 0xa443, /* 398 */ + 0x3009, 0x2440, 0x3009, 0x2741, 0x36f3, 0xd80e, 0x36f1, 0xd813, /* 3a0 */ + 0x36f1, 0x5806, 0x36f0, 0x9803, 0x36f0, 0x1801, 0x2000, 0x0000, /* 3a8 */ + 0x36f2, 0x9814, 0x0007, 0x0001, 0x8211, 0x0006, 0x000e, 0x4c82, /* 3b0 */ + 0x0024, 0x0000, 0x0024, 0x2000, 0x0005, 0xf5c2, 0x0024, 0x0000, /* 3b8 */ + 0x0980, 0x2000, 0x0000, 0x6010, 0x0024, 0x000a, 0x0001, 0x0050, +};
--- a/main.cpp Fri Dec 07 11:25:01 2012 +0000 +++ b/main.cpp Fri Apr 28 19:18:46 2017 +0000 @@ -1,19 +1,348 @@ -#include "mbed.h" -#include "SDFileSystem.h" - -SDFileSystem sd(p5, p6, p7, p8, "sd"); // the pinout on the mbed Cool Components workshop board +/* Author: Pramod Nataraja & Vishnu Venkat */ -int main() { - printf("Hello World!\n"); - - mkdir("/sd/mydir", 0777); + #include "mbed.h" + #include "VS1002.h" + //#include "TextLCD.h" + #include "mpr121.h" + #include "LSM9DS1.h" + #include "SerialRPCInterface.h" + using namespace mbed; + #define NEXT 7 + #define PREVIOUS 8 + #define PP 9 + #define V_DOWN 10 + #define V_UP 11 + #define MUTE_UNMUTE 12 +//Ticker flipper; +//LSM9DS1 IMU(p28, p27, 0xD6, 0x3C); +//SerialRPCInterface RPC(p28, p27); +//void foo(Arguments* input, Reply* output); +//RPCFunction bluetooth_control(&foo, "bluetooth_control"); +/*float tempx=0; +float tempy=0; +float tempz=0; +float delx=0; +float dely=0; +float delz=0; +float del=0;*/ + +VS1002 mp3(p5, p6, p7, p8,"sd",p11, p12 ,p13, p14, p23, p22, p21, p15); //Setup Audio decoder. Name is VS1002 even though VS1053 is used. +//TextLCD lcd1(p30, p29, p17, p18, p19, p20); //setup lcd +//InterruptIn interrupt(p26); // Create the interrupt receiver object on pin 26 +//I2C i2c(p9, p10); // Setup the i2c bus on pins 9 and 10 +//Mpr121 mpr121(&i2c, Mpr121::ADD_VSS); //Setup Mpr121 +Serial pc1(USBTX, USBRX); + +/* Global Variables to store Status*/ +int new_song_number=1; //Variable to store the Song Number +int volume_set=0; //Variable to store the Volume +int previous_volume; //Variable to store the volume when muted +bool pause=false; //Variable to store the status of Pause button +bool mute=false; //Variable to store the status of mute button + +int check=0; //Capacitative touch generates interrupt on both press and release. This variable tracks this and updates only on press. +//char *song_name[6]={"18 till I Die","Summer of 69","Boulevard", "Serenity","Crawling","In the end"}; //Array of song names entered manually +char *song_name[6]={"Escape","Summer of 69","Monster", "Leave out all the rest","Kings","Interstellar Docking"}; //Array of song names entered manually + + +/*void fallInterrupt() +{ + int key_code=0; + int i=0; + int value; + value=mpr121.read(0x00); + value +=mpr121.read(0x01)<<8; + + i=0; + if(check) + check=0; + else + check=1; + if(check) + { + for (i=0; i<12; i++) { + if (((value>>i)&0x01)==1) key_code=i+1; //Convert value into decimal + } + + switch(key_code) // Different cases depending on key press + { + case 0:break; // Invalid entry . Valid 1-12 + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: new_song_number=key_code; // Play the selected song + break; + case NEXT:new_song_number+=1; // Next song + if(new_song_number==7) + new_song_number=1; + break; + case PREVIOUS: new_song_number-=1; // Previous Song + if(new_song_number==0) + new_song_number=6; + break; + case PP: pause=!pause; // Pause/Play button + break; + case V_UP: volume_set+=3; // Volume Up + if(volume_set>=0) + volume_set=0; + break; + case V_DOWN: volume_set-=3; //Volume Down + if(volume_set<-55) + volume_set=-55; + break; + case MUTE_UNMUTE: mute=!mute; //Mute/Unmute + if(mute) + { + previous_volume=volume_set; // Attenuation of -55 db is small enough to not hear anything + volume_set=-55; + } + else + { + volume_set=previous_volume; + } + break; + default: ;//pc.cls(); + pc1.printf("error"); // exit on error + exit(1); + } + } + + if(pause) + pc1.printf("Paused "); + if(mute) + pc1.printf("Muted"); + if(!mute && !pause) + pc1.printf("Playing"); + pc1.printf("\r\n %d %s",new_song_number,song_name[new_song_number-1]); + + }*/ +/*void IMUInterrupt() +{ + int key_code=0; + - FILE *fp = fopen("/sd/mydir/sdtest.txt", "w"); - if(fp == NULL) { - error("Could not open file for write\n"); + while(!IMU.accelAvailable()); + tempx=IMU.calcAccel(IMU.ax); + tempy=IMU.calcAccel(IMU.ay); + tempz=IMU.calcAccel(IMU.az); + IMU.readAccel(); + delx=tempx-IMU.calcAccel(IMU.ax); + dely=tempy-IMU.calcAccel(IMU.ay); + delz=tempz-IMU.calcAccel(IMU.az); + //del=delx*delx+dely*dely+delz*delz; + if(delx>0.15) + key_code=NEXT; + if(delx<-0.15) + key_code=PREVIOUS; + if(dely>0.15) + key_code=V_UP; + if(dely<-0.15) + key_code=V_DOWN; + if(delz>0.15) + key_code=PP; + if(delz<-0.15) + key_code=MUTE_UNMUTE; + //pc1.printf("delx:%f dely:%f delz:%f\r\n",delx,dely,delz); + //pc1.printf("key_code:%d\r\n",key_code); + + + + + switch(key_code) // Different cases depending on key press + { + case 0:break; // Invalid entry . Valid 1-12 + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: new_song_number=key_code; // Play the selected song + break; + case NEXT: + pc1.printf("next\r\n"); + new_song_number+=1; // Next song + if(new_song_number==7) + new_song_number=1; + break; + case PREVIOUS: + pc1.printf("previous\r\n"); + new_song_number-=1; // Previous Song + if(new_song_number==0) + new_song_number=6; + break; + case PP: + pc1.printf("pp\r\n"); + pause=!pause; // Pause/Play button + break; + case V_UP: + pc1.printf("v_up\r\n"); + volume_set+=3; // Volume Up + if(volume_set>=0) + volume_set=0; + break; + case V_DOWN: + pc1.printf("v_down\r\n"); + volume_set-=3; //Volume Down + if(volume_set<-55) + volume_set=-55; + break; + case MUTE_UNMUTE: + pc1.printf("mute_unmute\r\n"); + mute=!mute; //Mute/Unmute + if(mute) + { + previous_volume=volume_set; // Attenuation of -55 db is small enough to not hear anything + volume_set=-55; + } + else + { + volume_set=previous_volume; + } + break; + default: ;//pc.cls(); + pc1.printf("error"); // exit on error + exit(1); + } + + + if(pause) + pc1.printf("Paused "); + if(mute) + pc1.printf("Muted"); + if(!mute && !pause) + pc1.printf("Playing"); + pc1.printf("\r\n %d %s",new_song_number,song_name[new_song_number-1]); + + }*/ + //void foo(Arguments * input, Reply * output){ + void foo(){ + //const char *arg0=input->getArg<const char*>(); + pc1.printf("hi\n"); + if(pc1.readable()){ + const char arg0=pc1.getc(); + //pc1.printf(arg0); + int key_code=0; + //switch(*arg0){ + switch(arg0){ + case '1': key_code=V_UP; break; + case '2': key_code=V_DOWN; break; + case '3': key_code=PP; break; + case '4': key_code=MUTE_UNMUTE; break; + case 'N': key_code=NEXT; break; + case 'B': key_code=PREVIOUS; break; + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': key_code=arg0-'0'; // Play the selected song + break; + default : key_code=0; break; } - fprintf(fp, "Hello fun SD Card World!"); - fclose(fp); + + + switch(key_code) // Different cases depending on key press + { + case 0:break; // Invalid entry . Valid 1-12 + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: new_song_number=key_code; // Play the selected song + break; + case NEXT: + pc1.printf("next\r\n"); + new_song_number+=1; // Next song + if(new_song_number==7) + new_song_number=1; + break; + case PREVIOUS: + pc1.printf("previous\r\n"); + new_song_number-=1; // Previous Song + if(new_song_number==0) + new_song_number=6; + break; + case PP: + pc1.printf("pp\r\n"); + pause=!pause; // Pause/Play button + break; + case V_UP: + pc1.printf("v_up\r\n"); + volume_set+=3; // Volume Up + if(volume_set>=0) + volume_set=0; + break; + case V_DOWN: + pc1.printf("v_down\r\n"); + volume_set-=3; //Volume Down + if(volume_set<-55) + volume_set=-55; + break; + case MUTE_UNMUTE: + pc1.printf("mute_unmute\r\n"); + mute=!mute; //Mute/Unmute + if(mute) + { + previous_volume=volume_set; // Attenuation of -55 db is small enough to not hear anything + volume_set=-55; + } + else + { + volume_set=previous_volume; + } + break; + default: ;//pc.cls(); + pc1.printf("error"); // exit on error + exit(1); + } - printf("Goodbye World!\n"); + /* Print to LCD the status of Song */ + //pc.cls(); + if(pause) + pc1.printf("Paused "); + if(mute) + pc1.printf("Muted"); + if(!mute && !pause) + pc1.printf("Playing"); + pc1.printf("\r\n %d %s",new_song_number,song_name[new_song_number-1]); + } } + int main () + { + pc1.printf("hello\r\n"); + /*IMU.begin(); + if (!IMU.begin()) { + pc1.printf("Failed to communicate with LSM9DS1.\r\n"); + } + IMU.calibrate(1);*/ + /*============================================================ + * MP3 Initialising + *==========================================================*/ + + + mp3._RST = 1; + mp3.cs_high(); //chip disabled + mp3.sci_initialise(); //initialise MBED + mp3.sci_write(0x00,(SM_SDINEW+SM_STREAM+SM_DIFF)); + mp3.sci_write(0x03, 0x9800); + mp3.sdi_initialise(); + + + /* Touch Pad setup */ + //interrupt.fall(&fallInterrupt); + //interrupt.mode(PullUp); + //interrupt.fall(&IMUInterrupt); + //interrupt.mode(PullUp); + // flipper.attach(&IMUInterrupt, 1); + pc1.attach(&foo, Serial::RxIrq); + while(1) + { + mp3.play_song(new_song_number); + } + + } + +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mpr121.cpp Fri Apr 28 19:18:46 2017 +0000 @@ -0,0 +1,221 @@ +/* +Copyright (c) 2011 Anthony Buckton (abuckton [at] blackink [dot} net {dot} au) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +#include <mbed.h> +#include <sstream> +#include <string> +#include <list> + +#include <mpr121.h> + +Mpr121::Mpr121(I2C *i2c, Address i2cAddress) +{ + this->i2c = i2c; + + address = i2cAddress; + + // Configure the MPR121 settings to default + this->configureSettings(); +} + + +void Mpr121::configureSettings() +{ + // Put the MPR into setup mode + this->write(ELE_CFG,0x00); + + // Electrode filters for when data is > baseline + unsigned char gtBaseline[] = { + 0x01, //MHD_R + 0x01, //NHD_R + 0x00, //NCL_R + 0x00 //FDL_R + }; + + writeMany(MHD_R,gtBaseline,4); + + // Electrode filters for when data is < baseline + unsigned char ltBaseline[] = { + 0x01, //MHD_F + 0x01, //NHD_F + 0xFF, //NCL_F + 0x02 //FDL_F + }; + + writeMany(MHD_F,ltBaseline,4); + + // Electrode touch and release thresholds + unsigned char electrodeThresholds[] = { + E_THR_T, // Touch Threshhold + E_THR_R // Release Threshold + }; + + for(int i=0; i<12; i++){ + int result = writeMany((ELE0_T+(i*2)),electrodeThresholds,2); + } + + // Proximity Settings + unsigned char proximitySettings[] = { + 0xff, //MHD_Prox_R + 0xff, //NHD_Prox_R + 0x00, //NCL_Prox_R + 0x00, //FDL_Prox_R + 0x01, //MHD_Prox_F + 0x01, //NHD_Prox_F + 0xFF, //NCL_Prox_F + 0xff, //FDL_Prox_F + 0x00, //NHD_Prox_T + 0x00, //NCL_Prox_T + 0x00 //NFD_Prox_T + }; + writeMany(MHDPROXR,proximitySettings,11); + + unsigned char proxThresh[] = { + PROX_THR_T, // Touch Threshold + PROX_THR_R // Release Threshold + }; + writeMany(EPROXTTH,proxThresh,2); + + this->write(FIL_CFG,0x04); + + // Set the electrode config to transition to active mode + this->write(ELE_CFG,0x0c); +} + +void Mpr121::setElectrodeThreshold(int electrode, unsigned char touch, unsigned char release){ + + if(electrode > 11) return; + + // Get the current mode + unsigned char mode = this->read(ELE_CFG); + + // Put the MPR into setup mode + this->write(ELE_CFG,0x00); + + // Write the new threshold + this->write((ELE0_T+(electrode*2)), touch); + this->write((ELE0_T+(electrode*2)+1), release); + + //Restore the operating mode + this->write(ELE_CFG, mode); +} + + +unsigned char Mpr121::read(int key){ + + unsigned char data[2]; + + //Start the command + i2c->start(); + + // Address the target (Write mode) + int ack1= i2c->write(address); + + // Set the register key to read + int ack2 = i2c->write(key); + + // Re-start for read of data + i2c->start(); + + // Re-send the target address in read mode + int ack3 = i2c->write(address+1); + + // Read in the result + data[0] = i2c->read(0); + + // Reset the bus + i2c->stop(); + + return data[0]; +} + + +int Mpr121::write(int key, unsigned char value){ + + //Start the command + i2c->start(); + + // Address the target (Write mode) + int ack1= i2c->write(address); + + // Set the register key to write + int ack2 = i2c->write(key); + + // Read in the result + int ack3 = i2c->write(value); + + // Reset the bus + i2c->stop(); + + return (ack1+ack2+ack3)-3; +} + + +int Mpr121::writeMany(int start, unsigned char* dataSet, int length){ + //Start the command + i2c->start(); + + // Address the target (Write mode) + int ack= i2c->write(address); + if(ack!=1){ + return -1; + } + + // Set the register key to write + ack = i2c->write(start); + if(ack!=1){ + return -1; + } + + // Write the date set + int count = 0; + while(ack==1 && (count < length)){ + ack = i2c->write(dataSet[count]); + count++; + } + // Stop the cmd + i2c->stop(); + + return count; +} + + +bool Mpr121::getProximityMode(){ + if(this->read(ELE_CFG) > 0x0c) + return true; + else + return false; +} + +void Mpr121::setProximityMode(bool mode){ + this->write(ELE_CFG,0x00); + if(mode){ + this->write(ELE_CFG,0x30); //Sense proximity from ALL pads + } else { + this->write(ELE_CFG,0x0c); //Sense touch, all 12 pads active. + } +} + + +int Mpr121::readTouchData(){ + return this->read(0x00); +} \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mpr121.h Fri Apr 28 19:18:46 2017 +0000 @@ -0,0 +1,157 @@ +/* +Copyright (c) 2011 Anthony Buckton (abuckton [at] blackink [dot} net {dot} au) + + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + + Parts written by Jim Lindblom of Sparkfun + Ported to mbed by A.Buckton, Feb 2011 +*/ + +#ifndef MPR121_H +#define MPR121_H + +//using namespace std; + +class Mpr121 +{ + +public: + // i2c Addresses, bit-shifted + enum Address { ADD_VSS = 0xb4,// ADD->VSS = 0x5a <-wiring on Sparkfun board + ADD_VDD = 0xb6,// ADD->VDD = 0x5b + ADD_SCL = 0xb8,// ADD->SDA = 0x5c + ADD_SDA = 0xba // ADD->SCL = 0x5d + }; + + // Real initialiser, takes the i2c address of the device. + Mpr121(I2C *i2c, Address i2cAddress); + + bool getProximityMode(); + + void setProximityMode(bool mode); + + int readTouchData(); + + unsigned char read(int key); + + int write(int address, unsigned char value); + int writeMany(int start, unsigned char* dataSet, int length); + + void setElectrodeThreshold(int electrodeId, unsigned char touchThreshold, unsigned char releaseThreshold); + +protected: + // Configures the MPR with standard settings. This is permitted to be overwritten by sub-classes. + void configureSettings(); + +private: + // The I2C bus instance. + I2C *i2c; + + // i2c address of this mpr121 + Address address; +}; + + +// MPR121 Register Defines +#define MHD_R 0x2B +#define NHD_R 0x2C +#define NCL_R 0x2D +#define FDL_R 0x2E +#define MHD_F 0x2F +#define NHD_F 0x30 +#define NCL_F 0x31 +#define FDL_F 0x32 +#define NHDT 0x33 +#define NCLT 0x34 +#define FDLT 0x35 +// Proximity sensing controls +#define MHDPROXR 0x36 +#define NHDPROXR 0x37 +#define NCLPROXR 0x38 +#define FDLPROXR 0x39 +#define MHDPROXF 0x3A +#define NHDPROXF 0x3B +#define NCLPROXF 0x3C +#define FDLPROXF 0x3D +#define NHDPROXT 0x3E +#define NCLPROXT 0x3F +#define FDLPROXT 0x40 +// Electrode Touch/Release thresholds +#define ELE0_T 0x41 +#define ELE0_R 0x42 +#define ELE1_T 0x43 +#define ELE1_R 0x44 +#define ELE2_T 0x45 +#define ELE2_R 0x46 +#define ELE3_T 0x47 +#define ELE3_R 0x48 +#define ELE4_T 0x49 +#define ELE4_R 0x4A +#define ELE5_T 0x4B +#define ELE5_R 0x4C +#define ELE6_T 0x4D +#define ELE6_R 0x4E +#define ELE7_T 0x4F +#define ELE7_R 0x50 +#define ELE8_T 0x51 +#define ELE8_R 0x52 +#define ELE9_T 0x53 +#define ELE9_R 0x54 +#define ELE10_T 0x55 +#define ELE10_R 0x56 +#define ELE11_T 0x57 +#define ELE11_R 0x58 +// Proximity Touch/Release thresholds +#define EPROXTTH 0x59 +#define EPROXRTH 0x5A +// Debounce configuration +#define DEB_CFG 0x5B +// AFE- Analogue Front End configuration +#define AFE_CFG 0x5C +// Filter configuration +#define FIL_CFG 0x5D +// Electrode configuration - transistions to "active mode" +#define ELE_CFG 0x5E + +#define GPIO_CTRL0 0x73 +#define GPIO_CTRL1 0x74 +#define GPIO_DATA 0x75 +#define GPIO_DIR 0x76 +#define GPIO_EN 0x77 +#define GPIO_SET 0x78 +#define GPIO_CLEAR 0x79 +#define GPIO_TOGGLE 0x7A +// Auto configration registers +#define AUTO_CFG_0 0x7B +#define AUTO_CFG_U 0x7D +#define AUTO_CFG_L 0x7E +#define AUTO_CFG_T 0x7F + +// Threshold defaults +// Electrode touch threshold +#define E_THR_T 0x0F +// Electrode release threshold +#define E_THR_R 0x0A +// Prox touch threshold +#define PROX_THR_T 0x02 +// Prox release threshold +#define PROX_THR_R 0x02 + +#endif