From 66a747c7d92af86ebdfaf136cf5506a7ab714fd0 Mon Sep 17 00:00:00 2001 From: Shamus Hammons Date: Wed, 23 Jan 2019 20:33:05 -0600 Subject: [PATCH] Misc. improvements, added WOZ file support to floppy emulation - Refactored old MMU slot code to be more flexible - Moved all Mockingboard related code to its own compilation unit - Refactored old 6522 & AY-3-8910 code into v6522VIA & vAY8910 :-) - Fixed BCD mode for ADC and SBC in v65C02 - Finally fixed text mode characters in both ALTCHARSET and regular modes - Added new floppy disk controller Logic State Sequencer emulation - Fixed v65C02 to be cycle exact (as far as I can tell) - Fixed a bunch of bugs in v65C02 - Dropped NIB support - Added WOZ 1.0 file support That last item is a bit of a big deal, as I had been thinking about writing a new file format that would be bit-based--since the NIB nybble format, while better than pretty much all the other formats out there, fails hard in things like extra sync bits and half tracks. So, somewhat serendipitously, I stumbled upon the Applesauce project and found out that not only had other people been thinking in more or less the same direction, they had created it and had made disk images to try! So now, because of this, WOZ is the internal format used by the floppy emulation (as opposed to NIB) which, along with the new disk Logic State Sequencer emulator, makes it possible to format floppy disks correctly for the first time. :-) One ironic consequence of this is that NIB format can no longer be properly supported. The irony comes from the fact that before there was LSS emulation, NIB was the most accurate format you could get to represent the low level format of a disk, but now, with proper LSS emulation, it's the worst format for representing a floppy disk. And the main reason for this is that NIB doesn't contain sync bits, and has no mechanism to represent them--so when feeding them to the new LSS emulation, they will fail horribly because without sync bits, the bitstream represented by a NIB formatted disk can and will be misinterpreted by the LSS. And since there is now a format that properly represents the bitstream on a floppy disk (WOZ), there's absolutely no reason to keep NIB around or support it anymore. While it was a nice interim format to have around (when the emulation of the disk was "imperfectly perfect"), it now no longer has a place in disk preservation and/or emulation. Another consequence of this new format is that Apple2 only supports writing of WOZ images--it will no longer support writing of DSK and its bretheren. However, since those formats are extremely limited in their scope (they literally only represented the contents of the sectors on a disk) we still support reading them; Apple2 will automagically upconvert them and save them as WOZs (it will use the same filename but substitute "woz" for the old extension). So if you're wondering why your DSKs are unchanged when saving to them, you now know why. :-) Big, big thanks to the Applesauce guys and everyone who contributed and continues to contribute to that project; your efforts are very much appreciated--you guys are awesome! --- .gitignore | 1 + Makefile | 12 +- apple2.cfg | 5 +- cross-compile | 5 +- src/apple2.cpp | 205 +-- src/apple2.h | 6 +- src/ay8910.cpp | 1176 --------------- src/ay8910.h | 31 - src/charset.cpp | 520 ------- src/crc32.cpp | 12 +- src/crc32.h | 2 +- src/floppy.cpp | 872 ----------- src/floppy.h | 92 -- src/floppydrive.cpp | 1500 +++++++++++++++++++ src/floppydrive.h | 210 +++ src/gui/diskselector.cpp | 328 ++++- src/gui/diskselector.h | 6 + src/gui/font10pt.cpp | 2318 +++++++++++++++--------------- src/gui/gui.cpp | 21 +- src/log.cpp | 2 +- src/mmu.cpp | 617 ++++---- src/mmu.h | 16 + src/mockingboard.cpp | 100 ++ src/mockingboard.h | 35 + src/mos6522via.cpp | 20 - src/sound.cpp | 23 +- src/v6522via.cpp | 198 +++ src/{mos6522via.h => v6522via.h} | 24 +- src/v65c02.cpp | 1105 ++++++-------- src/vay8910.cpp | 360 +++++ src/vay8910.h | 57 + src/video.cpp | 76 +- web/apple2.css | 71 +- web/img/a2-icon-64x64.png | Bin 0 -> 715 bytes web/img/a2-logo.png | Bin 0 -> 11169 bytes web/img/ss-01.png | Bin 0 -> 108708 bytes web/img/ss-01s.png | Bin 0 -> 83793 bytes web/img/ss-02.png | Bin 0 -> 435706 bytes web/img/ss-02s.png | Bin 0 -> 202636 bytes web/img/ss-03.png | Bin 0 -> 437798 bytes web/img/ss-03s.png | Bin 0 -> 202918 bytes web/img/ss-04.png | Bin 0 -> 127355 bytes web/img/ss-04s.png | Bin 0 -> 125365 bytes web/index.html | 71 +- web/nib.html | 64 + 45 files changed, 4982 insertions(+), 5179 deletions(-) delete mode 100644 src/ay8910.cpp delete mode 100644 src/ay8910.h delete mode 100644 src/floppy.cpp delete mode 100644 src/floppy.h create mode 100644 src/floppydrive.cpp create mode 100644 src/floppydrive.h create mode 100644 src/mockingboard.cpp create mode 100644 src/mockingboard.h delete mode 100644 src/mos6522via.cpp create mode 100644 src/v6522via.cpp rename src/{mos6522via.h => v6522via.h} (61%) create mode 100644 src/vay8910.cpp create mode 100644 src/vay8910.h create mode 100644 web/img/a2-icon-64x64.png create mode 100644 web/img/a2-logo.png create mode 100644 web/img/ss-01.png create mode 100644 web/img/ss-01s.png create mode 100644 web/img/ss-02.png create mode 100644 web/img/ss-02s.png create mode 100644 web/img/ss-03.png create mode 100644 web/img/ss-03s.png create mode 100644 web/img/ss-04.png create mode 100644 web/img/ss-04s.png create mode 100644 web/nib.html diff --git a/.gitignore b/.gitignore index 539de20..efe1d56 100644 --- a/.gitignore +++ b/.gitignore @@ -13,3 +13,4 @@ ROMs/bin2c ROMs/from-applewin/ res/ docs/ +wozmaker/ diff --git a/Makefile b/Makefile index 449664c..f0a599b 100644 --- a/Makefile +++ b/Makefile @@ -20,8 +20,9 @@ ifeq "$(findstring Msys,$(OSTYPE))" "Msys" SYSTYPE = __GCCWIN32__ EXESUFFIX = .exe ICON = obj/icon.o -SDLLIBTYPE = --libs +SDLLIBTYPE = --static-libs MSG = Win32 on MinGW +EXTRA = -static # Should catch both 'darwin' and 'darwin7.0' else ifeq "$(findstring Darwin,$(OSTYPE))" "Darwin" @@ -86,7 +87,7 @@ CFLAGS = $(GCC_DEPS) -Wall -Wno-switch $(DEFINES) -ffast-math $(SDL_CFLAGS) -p CPPFLAGS = $(GCC_DEPS) -Wall -Wno-switch -Wno-non-virtual-dtor $(DEFINES) \ -ffast-math $(SDL_CFLAGS) -pg -g -LDFLAGS = +LDFLAGS = $(EXTRA) #LIBS = -L/usr/local/lib -L/usr/lib `sdl2-config $(SDLLIBTYPE)` -lstdc++ -lz $(GLLIB) # Link in the gcov library (for profiling purposes) @@ -107,20 +108,21 @@ OBJS = \ obj/gui.o \ \ obj/apple2-icon-64x64.o \ - obj/ay8910.o \ obj/charset.o \ obj/crc32.o \ obj/dis65c02.o \ obj/firmware.o \ - obj/floppy.o \ + obj/floppydrive.o \ obj/log.o \ - obj/mos6522via.o \ obj/mmu.o \ + obj/mockingboard.o \ obj/sdlemu_config.o \ obj/settings.o \ obj/sound.o \ obj/timing.o \ + obj/v6522via.o \ obj/v65c02.o \ + obj/vay8910.o \ obj/video.o \ obj/apple2.o \ $(ICON) diff --git a/apple2.cfg b/apple2.cfg index 61e176b..b4cac17 100644 --- a/apple2.cfg +++ b/apple2.cfg @@ -6,14 +6,17 @@ #default #BIOSROM = ./ROMs/apple2e-enhanced.rom +#BIOSROM = ./ROMs/apple2e.rom #Not used anymore #diskROM = ./ROMs/disk.rom #ROMs = ./ROMs +#default +#disks = ./disks # Auto state loading/saving upon starting/quitting Apple2 (1 - use, 0 - don't use) #These are the defaults--we don't advertise it just yet... ;-) -#autoSaveState = 1 +autoSaveState = 0 #autoStateFilename = ./apple2auto.state # OpenGL filtering type: 1 - blurry, 0 - sharp diff --git a/cross-compile b/cross-compile index f0b73fa..2598b84 100755 --- a/cross-compile +++ b/cross-compile @@ -7,8 +7,9 @@ # export PATH=/opt/mxe/usr/bin:$PATH #make CROSS=i686-pc-mingw32- clean && make CROSS=i686-pc-mingw32- -make CROSS=x86_64-w64-mingw32- clean && make CROSS=x86_64-w64-mingw32.static- -upx -9v apple2.exe +make CROSS=x86_64-w64-mingw32.static- clean \ + && make CROSS=x86_64-w64-mingw32.static- \ + && upx -9v apple2.exe #TARGET = apple2 #echo "Cross compiling $(TARGET) for Win32..." diff --git a/src/apple2.cpp b/src/apple2.cpp index b9bd4ff..33b9e22 100644 --- a/src/apple2.cpp +++ b/src/apple2.cpp @@ -6,7 +6,7 @@ // // Parts loosely inspired by AppleWin by Tom Charlesworth which was based on // AppleWin by Oliver Schmidt which was based on AppleWin by Michael O'Brien. -// :-) Some parts (mainly TV rendering) are derived from ApplePC. Too bad it +// :-) Some parts (mainly TV rendering) are derived from ApplePC. Too bad it // was closed source--it could have been *the* premier Apple II emulator out // there. // @@ -45,12 +45,11 @@ #include #include #include -#include "ay8910.h" #include "firmware.h" -#include "floppy.h" +//#include "floppydisk.h" #include "log.h" -#include "mos6522via.h" #include "mmu.h" +#include "mockingboard.h" #include "settings.h" #include "sound.h" #include "timing.h" @@ -73,17 +72,11 @@ uint8_t ram[0x10000], rom[0x10000]; // RAM & ROM spaces uint8_t ram2[0x10000]; // Auxillary RAM V65C02REGS mainCPU; // v65C02 execution context uint8_t appleType = APPLE_TYPE_IIE; -FloppyDrive floppyDrive; bool powerStateChangeRequested = false; uint64_t frameCycleStart; -#if 0 -uint32_t frameTicks = 0; -uint32_t frameTime[60]; -#else uint64_t frameTicks = 0; uint64_t frameTime[60]; -#endif uint32_t frameTimePtr = 0; // Exported variables @@ -94,8 +87,9 @@ bool openAppleDown = false; bool closedAppleDown = false; bool store80Mode = false; bool vbl = false; -bool slotCXROM = false; +bool intCXROM = false; bool slotC3ROM = false; +bool intC8ROM = false; bool ramrd = false; bool ramwrt = false; bool altzp = false; @@ -103,17 +97,12 @@ bool ioudis = true; bool dhires = false; // Language card state (ROM read, no write) uint8_t lcState = 0x02; +uint8_t blinkTimer = 0; static bool running = true; // Machine running state flag... -#if 0 -static uint32_t startTicks; -#else static uint64_t startTicks; -#endif static bool pauseMode = false; static bool fullscreenDebounce = false; -//static bool capsLock = false; -//static bool capsLockDebounce = false; static bool resetKeyDown = false; static int8_t hideMouseTimeout = 60; @@ -186,37 +175,24 @@ WriteLog("CPU: SDL_SemWait(mainSem);\n"); #ifdef THREAD_DEBUGGING WriteLog("CPU: Execute65C02(&mainCPU, cycles);\n"); #endif -// for(int i=0; i<786; i++) for(int i=0; i<262; i++) { -// uint32_t cycles = 21; -// overflow += 0.666666667; - -// if (overflow > 1.0) -// { -// cycles++; -// overflow -= 1.0; -// } - // If the CTRL+Reset key combo is being held, make sure the RESET // line stays asserted: if (resetKeyDown) mainCPU.cpuFlags |= V65C02_ASSERT_LINE_RESET; -// Execute65C02(&mainCPU, cycles); Execute65C02(&mainCPU, 65); -// WriteSampleToBuffer(); // According to "Understanding The Apple IIe", VBL asserted after // the last byte of the screen is read and let go on the first read // of the first byte of the screen. We now know that the screen // starts on line #6 and ends on line #197 (of the vertical - // counter--actual VBLANK happens on lines 230 thru 233). -// vbl = ((i > 17) && (i < 592) ? true : false); + // counter--actual VBLANK proper happens on lines 230 thru 233). vbl = ((i >= 6) && (i <= 197) ? true : false); } -WriteLog("*** Frame ran for %d cycles (%.3lf µs, %d samples).\n", mainCPU.clock - oldClock, ((double)(SDL_GetPerformanceCounter() - cpuFrameTickStart) * 1000000.0) / (double)SDL_GetPerformanceFrequency(), sampleCount); +//WriteLog("*** Frame ran for %d cycles (%.3lf µs, %d samples).\n", mainCPU.clock - oldClock, ((double)(SDL_GetPerformanceCounter() - cpuFrameTickStart) * 1000000.0) / (double)SDL_GetPerformanceFrequency(), sampleCount); // frameTicks = ((SDL_GetPerformanceCounter() - startTicks) * 1000) / SDL_GetPerformanceFrequency(); /* Other timings from UTA2E: @@ -325,7 +301,7 @@ bool LoadImg(char * filename, uint8_t * ram, int size) } -const uint8_t stateHeader[19] = "APPLE2SAVESTATE1.1"; +const uint8_t stateHeader[19] = "APPLE2SAVESTATE1.2"; static void SaveApple2State(const char * filename) { WriteLog("Main: Saving Apple2 state...\n"); @@ -353,8 +329,9 @@ static void SaveApple2State(const char * filename) fputc((uint8_t)closedAppleDown, file); fputc((uint8_t)store80Mode, file); fputc((uint8_t)vbl, file); - fputc((uint8_t)slotCXROM, file); + fputc((uint8_t)intCXROM, file); fputc((uint8_t)slotC3ROM, file); + fputc((uint8_t)intC8ROM, file); fputc((uint8_t)ramrd, file); fputc((uint8_t)ramwrt, file); fputc((uint8_t)altzp, file); @@ -370,7 +347,10 @@ static void SaveApple2State(const char * filename) fputc(lcState, file); // Write out floppy state - floppyDrive.SaveState(file); + floppyDrive[0].SaveState(file); + + // Write out Mockingboard state + MBSaveState(file); fclose(file); } @@ -410,8 +390,9 @@ static bool LoadApple2State(const char * filename) closedAppleDown = (bool)fgetc(file); store80Mode = (bool)fgetc(file); vbl = (bool)fgetc(file); - slotCXROM = (bool)fgetc(file); + intCXROM = (bool)fgetc(file); slotC3ROM = (bool)fgetc(file); + intC8ROM = (bool)fgetc(file); ramrd = (bool)fgetc(file); ramwrt = (bool)fgetc(file); altzp = (bool)fgetc(file); @@ -427,8 +408,10 @@ static bool LoadApple2State(const char * filename) lcState = fgetc(file); // Read in floppy state - floppyDrive.LoadState(file); + floppyDrive[0].LoadState(file); + // Read in Mockingboard state + MBLoadState(file); fclose(file); // Make sure things are in a sane state before execution :-P @@ -448,8 +431,9 @@ static void ResetApple2State(void) closedAppleDown = false; store80Mode = false; vbl = false; - slotCXROM = false; + intCXROM = false; slotC3ROM = false; + intC8ROM = false; ramrd = false; ramwrt = false; altzp = false; @@ -457,14 +441,7 @@ static void ResetApple2State(void) dhires = false; lcState = 0x02; ResetMMUPointers(); - ResetMBVIAs(); -#ifdef USE_NEW_AY8910 - AYReset(0); - AYReset(1); -#else - AY8910_reset(0); - AY8910_reset(1); -#endif + MBReset(); // Without this, you can wedge the system :-/ memset(ram, 0, 0x10000); @@ -477,54 +454,12 @@ static double cyclesForSample = 0; static void AppleTimer(uint16_t cycles) { // Handle PHI2 clocked stuff here... - bool via1T1HitZero = (mbvia[0].timer1counter <= cycles ? true : false); - bool via2T1HitZero = (mbvia[1].timer1counter <= cycles ? true : false); - - mbvia[0].timer1counter -= cycles; - mbvia[0].timer2counter -= cycles; - mbvia[1].timer1counter -= cycles; - mbvia[1].timer2counter -= cycles; - - if (via1T1HitZero) - { - if (mbvia[0].acr & 0x40) - { - mbvia[0].timer1counter += mbvia[0].timer1latch; - - if (mbvia[0].ier & 0x40) - { - mbvia[0].ifr |= (0x80 | 0x40); - mainCPU.cpuFlags |= V65C02_ASSERT_LINE_IRQ; - } - } - else - { - mbvia[0].ier &= 0x3F; // Disable T1 interrupt (VIA #1) - } - } - - if (via2T1HitZero) - { - if (mbvia[1].acr & 0x40) - { - mbvia[1].timer1counter += mbvia[1].timer1latch; - - if (mbvia[1].ier & 0x40) - { - mbvia[1].ifr |= (0x80 | 0x40); - mainCPU.cpuFlags |= V65C02_ASSERT_LINE_NMI; - } - } - else - { - mbvia[1].ier &= 0x3F; // Disable T1 interrupt (VIA #2) - } - } + MBRun(cycles); + floppyDrive[0].RunSequencer(cycles); #if 1 // Handle sound // 21.26009 cycles per sample @ 48000 (running @ 1,020,484.32 Hz) - // Noooooope. We need ~801 cycles per frame. Averaging about 786, so missing 15 or so. // 16.688154500083 ms = 1 frame cyclesForSample += (double)cycles; @@ -608,15 +543,9 @@ int main(int /*argc*/, char * /*argv*/[]) SetupAddressMap(); ResetMMUPointers(); - // Set up Mockingboard - memset(&mbvia[0], 0, sizeof(MOS6522VIA)); - memset(&mbvia[1], 0, sizeof(MOS6522VIA)); -//(at some point this shite will have to go into the state file...) -#ifdef USE_NEW_AY8910 - AYInit(); -#else - AY8910_InitAll(1020484, 48000); -#endif + // Install devices in slots + InstallFloppy(6); + InstallMockingboard(4); // Set up V65C02 execution context memset(&mainCPU, 0, sizeof(V65C02REGS)); @@ -670,7 +599,7 @@ So we need to decouple the CPU thread from the host video thread, and have the C // Set frame to fire at 1/60 s interval SetCallbackTime(FrameCallback, 16666.66666667); // Set up blinking at 1/4 s intervals - SetCallbackTime(BlinkTimer, 250000); +// SetCallbackTime(BlinkTimer, 250000); startTicks = SDL_GetTicks(); #ifdef THREADED_65C02 @@ -722,8 +651,19 @@ WriteLog("Main: SDL_DestroyCond(cpuCond);\n"); if (settings.autoStateSaving) SaveApple2State(settings.autoStatePath); - floppyDrive.SaveImage(0); - floppyDrive.SaveImage(1); + floppyDrive[0].SaveImage(0); + floppyDrive[0].SaveImage(1); + +#if 0 +#include "dis65c02.h" +static char disbuf[80]; +uint16_t pc=0x801; +while (pc < 0x9FF) +{ + pc += Decode65C02(&mainCPU, disbuf, pc); + WriteLog("%s\n", disbuf); +} +#endif SoundDone(); VideoDone(); @@ -822,6 +762,10 @@ static void FrameCallback(void) { //seems to leave the machine in an inconsistent state vis-a-vis the language card... [does it anymore?] resetKeyDown = true; + // Need to reset the MMU switches as well on RESET + intCXROM = false; + slotC3ROM = false; + intC8ROM = false; break; } @@ -910,9 +854,7 @@ static void FrameCallback(void) lastKeyPressed -= 0x20; // Handle key repeat if the key hasn't been held -// if (keyDelay == 0) - keyDelay = 15; - + keyDelay = 15; keyDownCount++; // Buffer the key held. Note that the last key is always @@ -951,29 +893,6 @@ static void FrameCallback(void) openAppleDown = true; else if (event.key.keysym.sym == SDLK_RALT) closedAppleDown = true; - // Toggle the disassembly process - else if (event.key.keysym.sym == SDLK_F11) - { - dumpDis = !dumpDis; - SpawnMessage("Trace: %s", (dumpDis ? "ON" : "off")); - } - else if (event.key.keysym.sym == SDLK_F12) - { - logAYInternal = !logAYInternal; - SpawnMessage("AY Trace: %s", (logAYInternal ? "ON" : "off")); - } - -/*else if (event.key.keysym.sym == SDLK_F9) -{ - floppyDrive.CreateBlankImage(0); -// SpawnMessage("Image cleared..."); -}//*/ -/*else if (event.key.keysym.sym == SDLK_F10) -{ - floppyDrive.SwapImages(); -// SpawnMessage("Image swapped..."); -}//*/ - else if (event.key.keysym.sym == SDLK_F2) TogglePalette(); else if (event.key.keysym.sym == SDLK_F3) @@ -1003,13 +922,30 @@ static void FrameCallback(void) else if (event.key.keysym.sym == SDLK_F7) { // 4th root of 2 is ~1.18920711500272 (~1.5 dB) - maxVolume /= 1.4142135f; // This attenuates by ~3 dB - SpawnMessage("MB Volume: %d", (int)maxVolume); + // This attenuates by ~3 dB + VAY_3_8910::maxVolume /= 1.4142135f; + SpawnMessage("MB Volume: %d", (int)VAY_3_8910::maxVolume); } else if (event.key.keysym.sym == SDLK_F8) { - maxVolume *= 1.4142135f; - SpawnMessage("MB Volume: %d", (int)maxVolume); + VAY_3_8910::maxVolume *= 1.4142135f; + SpawnMessage("MB Volume: %d", (int)VAY_3_8910::maxVolume); + } +else if (event.key.keysym.sym == SDLK_F9) +{ + floppyDrive[0].CreateBlankImage(1); +// SpawnMessage("Image cleared..."); +}//*/ +/*else if (event.key.keysym.sym == SDLK_F10) +{ + floppyDrive[0].SwapImages(); +// SpawnMessage("Image swapped..."); +}//*/ + // Toggle the disassembly process + else if (event.key.keysym.sym == SDLK_F11) + { + dumpDis = !dumpDis; + SpawnMessage("Trace: %s", (dumpDis ? "ON" : "off")); } else if (event.key.keysym.sym == SDLK_F12) { @@ -1133,6 +1069,11 @@ static void FrameCallback(void) powerStateChangeRequested = false; } + blinkTimer = (blinkTimer + 1) & 0x1F; + + if (blinkTimer == 0) + flash = !flash; + // Render the Apple screen + GUI overlay RenderAppleScreen(sdlRenderer); GUI::Render(sdlRenderer); diff --git a/src/apple2.h b/src/apple2.h index 3e8559e..0bbf6d0 100644 --- a/src/apple2.h +++ b/src/apple2.h @@ -3,7 +3,7 @@ // #include -#include "floppy.h" +#include "floppydrive.h" #include "v65c02.h" enum { APPLE_TYPE_II, APPLE_TYPE_IIE, APPLE_TYPE_IIC }; @@ -19,15 +19,15 @@ extern uint8_t ram[0x10000], rom[0x10000]; // RAM & ROM pointers extern uint8_t ram2[0x10000]; // Auxillary RAM extern V65C02REGS mainCPU; // v65C02 execution context extern uint8_t appleType; -extern FloppyDrive floppyDrive; extern uint8_t lastKeyPressed; extern bool keyDown; extern bool openAppleDown; extern bool closedAppleDown; extern bool store80Mode; extern bool vbl; -extern bool slotCXROM; +extern bool intCXROM; extern bool slotC3ROM; +extern bool intC8ROM; extern bool ramrd; extern bool ramwrt; extern bool altzp; diff --git a/src/ay8910.cpp b/src/ay8910.cpp deleted file mode 100644 index 50862ed..0000000 --- a/src/ay8910.cpp +++ /dev/null @@ -1,1176 +0,0 @@ -// -// AY-3-8910 Emulator -// -// This was written mainly from the General Instruments datasheet for the 8910 -// part. I would have used the one from MAME, but it was so poorly written and -// so utterly incomprehensible that I decided to start from scratch to see if I -// could do any better; and so here we are. I did use a bit of code from -// MAME's AY-3-8910 RNG, as it was just too neat not to use. :-) -// -// by James Hammons -// (C) 2018 Underground Software -// - -#include "ay8910.h" - -#include // for memset() -#include "log.h" -#include "sound.h" - - -struct AY_3_8910 -{ - // User visible registers - uint16_t period[3]; // Channel A-C period - int16_t volume[3]; // Channel A-C volume (non-envelope mode) - bool envEnable[3]; // Channel A-C envelope enable - bool toneEnable[3]; // Channel A-C tone enable - bool noiseEnable[3]; // Channel A-C noise enable - uint16_t noisePeriod; // Noise period (5 bits * 16) - uint32_t envPeriod; // Envelope period (16 bits * 256) - bool envAttack; // Envelope Attack bit - bool envAlternate; // Envelope Alternate bit - bool envHold; // Envelope Hold bit - // Internal registers - uint16_t count[3]; // Channel A-C current count - bool state[3]; // Channel A-C current state - uint16_t noiseCount; // Noise current count - bool noiseState; // Noise state - uint32_t envCount[3]; // Envelope current count - int16_t envDirection[3];// Envelope direction (rising, 0, or falling) - uint32_t prng; // Psuedo RNG (17 bits) -}; - - -// Maximum volume that can be generated by one voice -float maxVolume = 8192.0f; - -// Normalized volumes (zero to one) for AY-3-8910 output, in 16 steps -static float normalizedVolume[16];// = {}; - -// AY-3-8910 register IDs -enum { AY_AFINE = 0, AY_ACOARSE, AY_BFINE, AY_BCOARSE, AY_CFINE, AY_CCOARSE, - AY_NOISEPER, AY_ENABLE, AY_AVOL, AY_BVOL, AY_CVOL, AY_EFINE, AY_ECOARSE, - AY_ESHAPE, AY_PORTA, AY_PORTB }; - -// Chip structs (for up to four separate chips) -static AY_3_8910 ay[4]; - - -void AYInit(void) -{ - for(int chip=0; chip<4; chip++) - AYReset(chip); - - // Our normalized volume levels are from 0 to -48 dB, in 3 dB steps. - // N.B.: It's 3dB steps because those sound the best. Dunno what it really - // is, as nothing in the documentation tells you (it only says that - // each channel's volume is normalized from 0 to 1.0V). - float level = 1.0f; - - for(int i=15; i>=0; i--) - { - normalizedVolume[i] = level; - level /= 1.4125375446228; // 10.0 ^ (3.0 / 20.0) = 3 dB - } - - // In order to get a scale that goes from 0 to 1 smoothly, we renormalize - // our volumes so that volume[0] is actually 0, and volume[15] is 1. - // Basically, we're sliding the curve down the Y-axis so that volume[0] - // touches the X-axis, then stretching the result so that it fits into the - // interval (0, 1). - float vol0 = normalizedVolume[0]; - float vol15 = normalizedVolume[15] - vol0; - - for(int i=0; i<16; i++) - normalizedVolume[i] = (normalizedVolume[i] - vol0) / vol15; - -#if 0 - WriteLog("\nRenormalized volume, level (max=%d):\n", (int)maxVolume); - for(int i=0; i<16; i++) - WriteLog("%lf, %d\n", normalizedVolume[i], (int)(normalizedVolume[i] * maxVolume)); - WriteLog("\n"); -#endif -} -/* -Renormalized: -0.000000, 0 -0.002333, 13 -0.005628, 33 -0.010283, 61 -0.016859, 101 -0.026146, 156 -0.039266, 235 -0.057797, 346 -0.083974, 503 -0.120949, 725 -0.173178, 1039 -0.246954, 1481 -0.351165, 2106 -0.498366, 2990 -0.706294, 4237 -1.000000, 6000 -*/ - - -void AYReset(int chipNum) -{ - memset(&ay[chipNum], 0, sizeof(struct AY_3_8910)); - ay[chipNum].prng = 1; // Set correct PRNG seed -} - - -void AYWrite(int chipNum, int reg, int value) -{ -#if 0 -static char regname[16][32] = { - "AY_AFINE ", - "AY_ACOARSE ", - "AY_BFINE ", - "AY_BCOARSE ", - "AY_CFINE ", - "AY_CCOARSE ", - "AY_NOISEPER", - "AY_ENABLE ", - "AY_AVOL ", - "AY_BVOL ", - "AY_CVOL ", - "AY_EFINE ", - "AY_ECOARSE ", - "AY_ESHAPE ", - "AY_PORTA ", - "AY_PORTB " -}; -WriteLog("*** AY(%d) Reg: %s = $%02X\n", chipNum, regname[reg], value); -#endif - AY_3_8910 * chip = &ay[chipNum]; - value &= 0xFF; // Ensure passed in value is no larger than 8 bits - - switch (reg) - { - case AY_AFINE: - // The square wave period is the passed in value times 16, so we handle - // that here. - chip->period[0] = (chip->period[0] & 0xF000) | (value << 4); - break; - case AY_ACOARSE: - chip->period[0] = ((value & 0x0F) << 12) | (chip->period[0] & 0xFF0); - break; - case AY_BFINE: - chip->period[1] = (chip->period[1] & 0xF000) | (value << 4); - break; - case AY_BCOARSE: - chip->period[1] = ((value & 0x0F) << 12) | (chip->period[1] & 0xFF0); - break; - case AY_CFINE: - chip->period[2] = (chip->period[2] & 0xF000) | (value << 4); - break; - case AY_CCOARSE: - chip->period[2] = ((value & 0x0F) << 12) | (chip->period[2] & 0xFF0); - break; - case AY_NOISEPER: - // Like the square wave period, the value is the what's passed * 16. - chip->noisePeriod = (value & 0x1F) << 4; - break; - case AY_ENABLE: - chip->toneEnable[0] = (value & 0x01 ? false : true); - chip->toneEnable[1] = (value & 0x02 ? false : true); - chip->toneEnable[2] = (value & 0x04 ? false : true); - chip->noiseEnable[0] = (value & 0x08 ? false : true); - chip->noiseEnable[1] = (value & 0x10 ? false : true); - chip->noiseEnable[2] = (value & 0x20 ? false : true); - break; - case AY_AVOL: - chip->volume[0] = value & 0x0F; - chip->envEnable[0] = (value & 0x10 ? true : false); - - if (chip->envEnable[0]) - { - chip->envCount[0] = 0; - chip->volume[0] = (chip->envAttack ? 0 : 15); - chip->envDirection[0] = (chip->envAttack ? 1 : -1); - } - break; - case AY_BVOL: - chip->volume[1] = value & 0x0F; - chip->envEnable[1] = (value & 0x10 ? true : false); - - if (chip->envEnable[1]) - { - chip->envCount[1] = 0; - chip->volume[1] = (chip->envAttack ? 0 : 15); - chip->envDirection[1] = (chip->envAttack ? 1 : -1); - } - break; - case AY_CVOL: - chip->volume[2] = value & 0x0F; - chip->envEnable[2] = (value & 0x10 ? true : false); - - if (chip->envEnable[2]) - { - chip->envCount[2] = 0; - chip->volume[2] = (chip->envAttack ? 0 : 15); - chip->envDirection[2] = (chip->envAttack ? 1 : -1); - } - break; - case AY_EFINE: - // The envelope period is 256 times the passed in value - chip->envPeriod = (chip->envPeriod & 0xFF0000) | (value << 8); - break; - case AY_ECOARSE: - chip->envPeriod = (value << 16) | (chip->envPeriod & 0xFF00); - break; - case AY_ESHAPE: - chip->envAttack = (value & 0x04 ? true : false); - chip->envAlternate = (value & 0x02 ? true : false); - chip->envHold = (value & 0x01 ? true : false); - - // If the Continue bit is *not* set, the Alternate bit is forced to the - // Attack bit, and Hold is forced on. - if (!(value & 0x08)) - { - chip->envAlternate = chip->envAttack; - chip->envHold = true; - } - - // Reset all voice envelope counts... - for(int i=0; i<3; i++) - { - chip->envCount[i] = 0; - chip->envDirection[i] = (chip->envAttack ? 1 : -1); - - // Only reset the volume if the envelope is enabled! - if (chip->envEnable[i]) - chip->volume[i] = (chip->envAttack ? 0 : 15); - } - break; - } -} - - -// -// Generate one sample and quit -// -bool logAYInternal = false; -uint16_t AYGetSample(int chipNum) -{ - AY_3_8910 * chip = &ay[chipNum]; - uint16_t sample = 0; - - // Number of cycles per second to run the PSG is the 6502 clock rate - // divided by the host sample rate - const static double exactCycles = 1020484.32 / (double)SAMPLE_RATE; - static double overflow = 0; - - int fullCycles = (int)exactCycles; - overflow += exactCycles - (double)fullCycles; - - if (overflow >= 1.0) - { - fullCycles++; - overflow -= 1.0; - } - - for(int i=0; itoneEnable[j] && (chip->period[j] > 16)) - { - chip->count[j]++; - - // It's (period / 2) because one full period of a square wave - // is 0 for half of its period and 1 for the other half! - if (chip->count[j] > (chip->period[j] / 2)) - { - chip->count[j] = 0; - chip->state[j] = !chip->state[j]; - } - } - - // Envelope generator only runs if the corresponding voice flag is - // enabled. - if (chip->envEnable[j]) - { - chip->envCount[j]++; - - // It's (EP / 16) because there are 16 volume steps in each EP. - if (chip->envCount[j] > (chip->envPeriod / 16)) - { - // Attack 0 = \, 1 = / (attack lasts one EP) - // Alternate = mirror envelope's last attack - // Hold = run 1 EP, hold at level (Alternate XOR Attack) - chip->envCount[j] = 0; - - // We've hit a point where we need to make a change to the - // envelope's volume, so do it: - chip->volume[j] += chip->envDirection[j]; - - // If we hit the end of the EP, change the state of the - // envelope according to the envelope's variables. - if ((chip->volume[j] > 15) || (chip->volume[j] < 0)) - { - // Hold means we set the volume to (Alternate XOR - // Attack) and stay there after the Attack EP. - if (chip->envHold) - { - chip->volume[j] = (chip->envAttack != chip->envAlternate ? 15: 0); - chip->envDirection[j] = 0; - } - else - { - // If the Alternate bit is set, we mirror the - // Attack pattern; otherwise we reset it to the - // whatever level was set by the Attack bit. - if (chip->envAlternate) - { - chip->envDirection[j] = -chip->envDirection[j]; - chip->volume[j] += chip->envDirection[j]; - } - else - chip->volume[j] = (chip->envAttack ? 0 : 15); - } - } - } - } - } - - // Noise generator (the PRNG) runs all the time: - chip->noiseCount++; - - if (chip->noiseCount > chip->noisePeriod) - { - chip->noiseCount = 0; - - // The following is from MAME's AY-3-8910 code: - // The Pseudo Random Number Generator of the 8910 is a 17-bit shift - // register. The input to the shift register is bit0 XOR bit3 (bit0 - // is the output). This was verified on AY-3-8910 and YM2149 chips. - - // The following is a fast way to compute bit17 = bit0 ^ bit3. - // Instead of doing all the logic operations, we only check bit0, - // relying on the fact that after three shifts of the register, - // what now is bit3 will become bit0, and will invert, if - // necessary, bit14, which previously was bit17. - if (chip->prng & 0x00001) - { - // This version is called the "Galois configuration". - chip->prng ^= 0x24000; - // The noise wave *toggles* when a one shows up in bit0... - chip->noiseState = !chip->noiseState; - } - - chip->prng >>= 1; - } - } - - // We mix channels A-C here into one sample, because the Mockingboard just - // sums the output of the AY-3-8910 by tying their lines together. - // We also handle the various cases (of which there are four) of mixing - // pure tones and "noise" tones together. - for(int i=0; i<3; i++) - { - // Set the volume level scaled by the maximum volume (which can be - // altered outside of this module). - int level = (int)(normalizedVolume[chip->volume[i]] * maxVolume); - - if (chip->toneEnable[i] && !chip->noiseEnable[i]) - sample += (chip->state[i] ? level : 0); - else if (!chip->toneEnable[i] && chip->noiseEnable[i]) - sample += (chip->noiseState ? level : 0); - else if (chip->toneEnable[i] && chip->noiseEnable[i]) - sample += (chip->state[i] & chip->noiseState ? level : 0); - else if (!chip->toneEnable[i] && !chip->noiseEnable[i]) - sample += level; - } - - if (logAYInternal) - { - WriteLog(" (%d) State A,B,C: %s %s %s, Sample: $%04X, P: $%X, $%X, $%X\n", chipNum, (chip->state[0] ? "1" : "0"), (chip->state[1] ? "1" : "0"), (chip->state[2] ? "1" : "0"), sample, chip->period[0], chip->period[1], chip->period[2]); - } - - return sample; -} - - - - - -// STUFF TO DELETE... - -#if 0 - -/*************************************************************************** - - ay8910.cpp - - Emulation of the AY-3-8910 / YM2149 sound chip. - - Based on various code snippets by Ville Hallik, Michael Cuddy, - Tatsuyuki Satoh, Fabrice Frances, Nicola Salmoria. - -***************************************************************************/ - -// -// From mame.txt (http://www.mame.net/readme.html) -// -// VI. Reuse of Source Code -// -------------------------- -// This chapter might not apply to specific portions of MAME (e.g. CPU -// emulators) which bear different copyright notices. -// The source code cannot be used in a commercial product without the -// written authorization of the authors. Use in non-commercial products is -// allowed, and indeed encouraged. If you use portions of the MAME source -// code in your program, however, you must make the full source code freely -// available as well. -// Usage of the _information_ contained in the source code is free for any -// use. However, given the amount of time and energy it took to collect this -// information, if you find new information we would appreciate if you made -// it freely available as well. -// - -// JLH: Commented out MAME specific crap - -#define MAX_OUTPUT 0x7FFF - -// See AY8910_set_clock() for definition of STEP -#define STEP 0x8000 - -struct AY8910 -{ - int Channel; - int SampleRate; - int register_latch; - unsigned char Regs[16]; - unsigned int UpdateStep; - int PeriodA, PeriodB, PeriodC, PeriodN, PeriodE; - int CountA, CountB, CountC, CountN, CountE; - unsigned int VolA, VolB, VolC, VolE; - unsigned char EnvelopeA, EnvelopeB, EnvelopeC; - unsigned char OutputA, OutputB, OutputC, OutputN; - signed char CountEnv; - unsigned char Hold, Alternate, Attack, Holding; - int RNG; - unsigned int VolTable[32]; -}; - -static struct AY8910 AYPSG[MAX_8910]; /* array of PSG's */ - -#define AY_AFINE (0) -#define AY_ACOARSE (1) -#define AY_BFINE (2) -#define AY_BCOARSE (3) -#define AY_CFINE (4) -#define AY_CCOARSE (5) -#define AY_NOISEPER (6) -#define AY_ENABLE (7) -#define AY_AVOL (8) -#define AY_BVOL (9) -#define AY_CVOL (10) -#define AY_EFINE (11) -#define AY_ECOARSE (12) -#define AY_ESHAPE (13) -//#define AY_PORTA (14) -//#define AY_PORTB (15) - - -void _AYWriteReg(int n, int r, int v) -{ -#if 1 -static char regname[16][32] = { -"AY_AFINE ", -"AY_ACOARSE ", -"AY_BFINE ", -"AY_BCOARSE ", -"AY_CFINE ", -"AY_CCOARSE ", -"AY_NOISEPER", -"AY_ENABLE ", -"AY_AVOL ", -"AY_BVOL ", -"AY_CVOL ", -"AY_EFINE ", -"AY_ECOARSE ", -"AY_ESHAPE ", -"AY_PORTA ", -"AY_PORTB " -}; -WriteLog("*** AY(%d) Reg: %s = $%02X\n", n, regname[r], v); -#endif - struct AY8910 * PSG = &AYPSG[n]; - int old; - - PSG->Regs[r] = v; - - /* A note about the period of tones, noise and envelope: for speed reasons, - * we count down from the period to 0, but careful studies of the chip - * output prove that it instead counts up from 0 until the counter becomes - * greater or equal to the period. This is an important difference when the - * program is rapidly changing the period to modulate the sound. - * To compensate for the difference, when the period is changed we adjust - * our internal counter. - * Also, note that period = 0 is the same as period = 1. This is mentioned - * in the YM2203 data sheets. However, this does NOT apply to the Envelope - * period. In that case, period = 0 is half as period = 1. */ - switch (r) - { - case AY_AFINE: - case AY_ACOARSE: - PSG->Regs[AY_ACOARSE] &= 0x0F; - old = PSG->PeriodA; -// PSG->PeriodA = (PSG->Regs[AY_AFINE] + 256 * PSG->Regs[AY_ACOARSE]) * PSG->UpdateStep; - PSG->PeriodA = ((PSG->Regs[AY_ACOARSE] << 8) | PSG->Regs[AY_AFINE]) * PSG->UpdateStep; - - if (PSG->PeriodA == 0) - PSG->PeriodA = PSG->UpdateStep; - - PSG->CountA += PSG->PeriodA - old; - - if (PSG->CountA <= 0) - PSG->CountA = 1; - break; - case AY_BFINE: - case AY_BCOARSE: - PSG->Regs[AY_BCOARSE] &= 0x0F; - old = PSG->PeriodB; - PSG->PeriodB = (PSG->Regs[AY_BFINE] + 256 * PSG->Regs[AY_BCOARSE]) * PSG->UpdateStep; - - if (PSG->PeriodB == 0) - PSG->PeriodB = PSG->UpdateStep; - - PSG->CountB += PSG->PeriodB - old; - - if (PSG->CountB <= 0) - PSG->CountB = 1; - break; - case AY_CFINE: - case AY_CCOARSE: - PSG->Regs[AY_CCOARSE] &= 0x0F; - old = PSG->PeriodC; - PSG->PeriodC = (PSG->Regs[AY_CFINE] + 256 * PSG->Regs[AY_CCOARSE]) * PSG->UpdateStep; - - if (PSG->PeriodC == 0) - PSG->PeriodC = PSG->UpdateStep; - - PSG->CountC += PSG->PeriodC - old; - - if (PSG->CountC <= 0) - PSG->CountC = 1; - break; - case AY_NOISEPER: - PSG->Regs[AY_NOISEPER] &= 0x1F; - old = PSG->PeriodN; - PSG->PeriodN = PSG->Regs[AY_NOISEPER] * PSG->UpdateStep; - - if (PSG->PeriodN == 0) - PSG->PeriodN = PSG->UpdateStep; - - PSG->CountN += PSG->PeriodN - old; - - if (PSG->CountN <= 0) - PSG->CountN = 1; - break; -/* case AY_ENABLE: - if ((PSG->lastEnable == -1) || - ((PSG->lastEnable & 0x40) != (PSG->Regs[AY_ENABLE] & 0x40))) - { - // write out $FF if port set to input - if (PSG->PortAwrite) - (*PSG->PortAwrite)(0, (UINT8) ((PSG->Regs[AY_ENABLE] & 0x40) ? PSG->Regs[AY_PORTA] : 0xff)); // [TC: UINT8 cast] - } - - if ((PSG->lastEnable == -1) || - ((PSG->lastEnable & 0x80) != (PSG->Regs[AY_ENABLE] & 0x80))) - { - // write out $FF if port set to input - if (PSG->PortBwrite) - (*PSG->PortBwrite)(0, (UINT8) ((PSG->Regs[AY_ENABLE] & 0x80) ? PSG->Regs[AY_PORTB] : 0xff)); // [TC: UINT8 cast] - } - - PSG->lastEnable = PSG->Regs[AY_ENABLE]; - break;*/ - case AY_AVOL: - PSG->Regs[AY_AVOL] &= 0x1F; - PSG->EnvelopeA = PSG->Regs[AY_AVOL] & 0x10; - PSG->VolA = (PSG->EnvelopeA ? PSG->VolE : - (PSG->VolTable[PSG->Regs[AY_AVOL] ? PSG->Regs[AY_AVOL] * 2 + 1 - : 0])); - break; - case AY_BVOL: - PSG->Regs[AY_BVOL] &= 0x1F; - PSG->EnvelopeB = PSG->Regs[AY_BVOL] & 0x10; - PSG->VolB = (PSG->EnvelopeB ? PSG->VolE : - (PSG->VolTable[PSG->Regs[AY_BVOL] ? PSG->Regs[AY_BVOL] * 2 + 1 - : 0])); - break; - case AY_CVOL: - PSG->Regs[AY_CVOL] &= 0x1F; - PSG->EnvelopeC = PSG->Regs[AY_CVOL] & 0x10; - PSG->VolC = (PSG->EnvelopeC ? PSG->VolE - : (PSG->VolTable[PSG->Regs[AY_CVOL] ? PSG->Regs[AY_CVOL] * 2 + 1 - : 0])); - break; - case AY_EFINE: - case AY_ECOARSE: - old = PSG->PeriodE; - PSG->PeriodE = ((PSG->Regs[AY_EFINE] + 256 * PSG->Regs[AY_ECOARSE])) * PSG->UpdateStep; - - if (PSG->PeriodE == 0) - PSG->PeriodE = PSG->UpdateStep / 2; - - PSG->CountE += PSG->PeriodE - old; - - if (PSG->CountE <= 0) - PSG->CountE = 1; - break; - case AY_ESHAPE: - /* envelope shapes: - C AtAlH - 0 0 x x \___ - - 0 1 x x /___ - - 1 0 0 0 \\\\ - - 1 0 0 1 \___ - - 1 0 1 0 \/\/ - ___ - 1 0 1 1 \ - - 1 1 0 0 //// - ___ - 1 1 0 1 / - - 1 1 1 0 /\/\ - - 1 1 1 1 /___ - - The envelope counter on the AY-3-8910 has 16 steps. On the YM2149 it - has twice the steps, happening twice as fast. Since the end result is - just a smoother curve, we always use the YM2149 behaviour. - */ - PSG->Regs[AY_ESHAPE] &= 0x0F; - PSG->Attack = (PSG->Regs[AY_ESHAPE] & 0x04 ? 0x1F : 0x00); - - if ((PSG->Regs[AY_ESHAPE] & 0x08) == 0) - { - /* if Continue = 0, map the shape to the equivalent one which has Continue = 1 */ - PSG->Hold = 1; - PSG->Alternate = PSG->Attack; - } - else - { - PSG->Hold = PSG->Regs[AY_ESHAPE] & 0x01; - PSG->Alternate = PSG->Regs[AY_ESHAPE] & 0x02; - } - - PSG->CountE = PSG->PeriodE; - PSG->CountEnv = 0x1F; - PSG->Holding = 0; - PSG->VolE = PSG->VolTable[PSG->CountEnv ^ PSG->Attack]; - - if (PSG->EnvelopeA) - PSG->VolA = PSG->VolE; - - if (PSG->EnvelopeB) - PSG->VolB = PSG->VolE; - - if (PSG->EnvelopeC) - PSG->VolC = PSG->VolE; - break; -/* case AY_PORTA: - if (PSG->Regs[AY_ENABLE] & 0x40) - { - if (PSG->PortAwrite) - (*PSG->PortAwrite)(0, PSG->Regs[AY_PORTA]); - else - logerror("PC %04x: warning - write %02x to 8910 #%d Port A\n",activecpu_get_pc(),PSG->Regs[AY_PORTA],n); - } - else - { - logerror("warning: write to 8910 #%d Port A set as input - ignored\n",n); - } - break; - case AY_PORTB: - if (PSG->Regs[AY_ENABLE] & 0x80) - { - if (PSG->PortBwrite) - (*PSG->PortBwrite)(0, PSG->Regs[AY_PORTB]); - else - logerror("PC %04x: warning - write %02x to 8910 #%d Port B\n",activecpu_get_pc(),PSG->Regs[AY_PORTB],n); - } - else - { - logerror("warning: write to 8910 #%d Port B set as input - ignored\n",n); - } - break;*/ - } -} - - -//#define DEBUG_AY -// /length/ is the number of samples we require -void AY8910Update(int chip, int16_t ** buffer, int length) // [TC: Removed static] -{ -#ifdef DEBUG_AY -WriteLog("AY8910Update: chip=%d, buffer=%X, length=%d\n", chip, buffer, length); -#endif - struct AY8910 * PSG = &AYPSG[chip]; - - int16_t * buf1 = buffer[0]; - int16_t * buf2 = buffer[1]; - int16_t * buf3 = buffer[2]; - - /* The 8910 has three outputs, each output is the mix of one of the three - * tone generators and of the (single) noise generator. The two are mixed - * BEFORE going into the DAC. The formula to mix each channel is: - * (ToneOn | ToneDisable) & (NoiseOn | NoiseDisable). - * Note that this means that if both tone and noise are disabled, the - * output is 1, not 0, and can be modulated changing the volume. - * - * If the channels are disabled, set their output to 1, and increase the - * counter, if necessary, so they will not be inverted during this update. - * Setting the output to 1 is necessary because a disabled channel is - * locked into the ON state (see above); and it has no effect if the volume - * is 0. If the volume is 0, increase the counter, but don't touch the - * output. - */ - // N.B.: The bits in AY_ENABLE (0-5) are all active LOW, which means if the - // channel bit is set, it is DISABLED. 5-3 are noise, 2-0 tone. - if (PSG->Regs[AY_ENABLE] & 0x01) - { - if (PSG->CountA <= length * STEP) - PSG->CountA += length * STEP; - - PSG->OutputA = 1; - } - else if (PSG->Regs[AY_AVOL] == 0) - { - /* note that I do count += length, NOT count = length + 1. You might - * think it's the same since the volume is 0, but doing the latter - * could cause interferencies when the program is rapidly modulating - * the volume. - */ - if (PSG->CountA <= length * STEP) - PSG->CountA += length * STEP; - } - - if (PSG->Regs[AY_ENABLE] & 0x02) - { - if (PSG->CountB <= length * STEP) - PSG->CountB += length * STEP; - - PSG->OutputB = 1; - } - else if (PSG->Regs[AY_BVOL] == 0) - { - if (PSG->CountB <= length * STEP) - PSG->CountB += length * STEP; - } - - if (PSG->Regs[AY_ENABLE] & 0x04) - { - if (PSG->CountC <= length * STEP) - PSG->CountC += length * STEP; - - PSG->OutputC = 1; - } - else if (PSG->Regs[AY_CVOL] == 0) - { - if (PSG->CountC <= length * STEP) - PSG->CountC += length * STEP; - } - - /* for the noise channel we must not touch OutputN - it's also not - * necessary since we use outn. */ - if ((PSG->Regs[AY_ENABLE] & 0x38) == 0x38) /* all off */ - if (PSG->CountN <= length * STEP) - PSG->CountN += length * STEP; - - int outn = (PSG->OutputN | PSG->Regs[AY_ENABLE]); - -#ifdef DEBUG_AY -WriteLog("AY8910Update: Stepping into while (length)...\n"); -#endif - /* buffering loop */ - while (length) - { - /* vola, volb and volc keep track of how long each square wave stays - * in the 1 position during the sample period. - */ - int vola = 0, volb = 0, volc = 0; - int left = STEP; - -#ifdef DEBUG_AY -WriteLog("AY8910Update: Stepping into inner do loop... (length=%d)\n", length); -#endif - do - { - int nextevent = (PSG->CountN < left ? PSG->CountN : left); -//Note: nextevent is 0 here when first initialized... -//so let's try this: - if (nextevent == 0) - left = 0; -#ifdef DEBUG_AY -WriteLog("AY8910Update: nextevent=$%X, left=$%X\n", nextevent, left); -#endif - - if (outn & 0x08) - { - if (PSG->OutputA) - vola += PSG->CountA; - - PSG->CountA -= nextevent; - /* PeriodA is the half period of the square wave. Here, in each - * loop I add PeriodA twice, so that at the end of the loop the - * square wave is in the same status (0 or 1) it was at the - * start. vola is also incremented by PeriodA, since the wave - * has been 1 exactly half of the time, regardless of the - * initial position. If we exit the loop in the middle, OutputA - * has to be inverted and vola incremented only if the exit - * status of the square wave is 1. */ - while (PSG->CountA <= 0) - { - PSG->CountA += PSG->PeriodA; - - if (PSG->CountA > 0) - { - PSG->OutputA ^= 1; - - if (PSG->OutputA) - vola += PSG->PeriodA; - - break; - } - - PSG->CountA += PSG->PeriodA; - vola += PSG->PeriodA; - } - - if (PSG->OutputA) - vola -= PSG->CountA; - } - else - { - PSG->CountA -= nextevent; - - while (PSG->CountA <= 0) - { - PSG->CountA += PSG->PeriodA; - - if (PSG->CountA > 0) - { - PSG->OutputA ^= 1; - break; - } - - PSG->CountA += PSG->PeriodA; - } - } - - if (outn & 0x10) - { - if (PSG->OutputB) - volb += PSG->CountB; - - PSG->CountB -= nextevent; - - while (PSG->CountB <= 0) - { - PSG->CountB += PSG->PeriodB; - - if (PSG->CountB > 0) - { - PSG->OutputB ^= 1; - - if (PSG->OutputB) - volb += PSG->PeriodB; - break; - } - - PSG->CountB += PSG->PeriodB; - volb += PSG->PeriodB; - } - - if (PSG->OutputB) - volb -= PSG->CountB; - } - else - { - PSG->CountB -= nextevent; - - while (PSG->CountB <= 0) - { - PSG->CountB += PSG->PeriodB; - - if (PSG->CountB > 0) - { - PSG->OutputB ^= 1; - break; - } - - PSG->CountB += PSG->PeriodB; - } - } - - if (outn & 0x20) - { - if (PSG->OutputC) - volc += PSG->CountC; - - PSG->CountC -= nextevent; - - while (PSG->CountC <= 0) - { - PSG->CountC += PSG->PeriodC; - - if (PSG->CountC > 0) - { - PSG->OutputC ^= 1; - - if (PSG->OutputC) - volc += PSG->PeriodC; - break; - } - - PSG->CountC += PSG->PeriodC; - volc += PSG->PeriodC; - } - - if (PSG->OutputC) - volc -= PSG->CountC; - } - else - { - PSG->CountC -= nextevent; - - while (PSG->CountC <= 0) - { - PSG->CountC += PSG->PeriodC; - - if (PSG->CountC > 0) - { - PSG->OutputC ^= 1; - break; - } - - PSG->CountC += PSG->PeriodC; - } - } - - PSG->CountN -= nextevent; - - if (PSG->CountN <= 0) - { - /* Is noise output going to change? */ - if ((PSG->RNG + 1) & 0x00002) // (bit0 XOR bit1) == 1? - { - PSG->OutputN = ~PSG->OutputN; - outn = (PSG->OutputN | PSG->Regs[AY_ENABLE]); - } - - /* The Random Number Generator of the 8910 is a 17-bit shift - * register. The input to the shift register is bit0 XOR bit3 - * (bit0 is the output). This was verified on AY-3-8910 and - * YM2149 chips. - * - * The following is a fast way to compute bit17 = bit0^bit3. - * Instead of doing all the logic operations, we only check - * bit0, relying on the fact that after three shifts of the - * register, what now is bit3 will become bit0, and will - * invert, if necessary, bit14, which previously was bit17. */ - if (PSG->RNG & 0x00001) - PSG->RNG ^= 0x24000; /* This version is called the "Galois configuration". */ - - PSG->RNG >>= 1; - PSG->CountN += PSG->PeriodN; - } - - left -= nextevent; - } - while (left > 0); - -#ifdef DEBUG_AY -WriteLog("AY8910Update: About to update envelope...\n"); -#endif - /* update envelope */ - if (PSG->Holding == 0) - { - PSG->CountE -= STEP; - - if (PSG->CountE <= 0) - { -#ifdef DEBUG_AY -WriteLog("AY8910Update: About to enter do loop... (CountEnv = $%X, CountE =$%X, PeriodE = $%X)\n", PSG->CountEnv, PSG->CountE, PSG->PeriodE); -#endif - // JLH: Sanity check... - if (PSG->PeriodE > 0) - { - do - { - PSG->CountEnv--; - PSG->CountE += PSG->PeriodE; - } - while (PSG->CountE <= 0); - } - - /* check envelope current position */ - if (PSG->CountEnv < 0) - { - if (PSG->Hold) - { - if (PSG->Alternate) - PSG->Attack ^= 0x1F; - - PSG->Holding = 1; - PSG->CountEnv = 0; - } - else - { - /* if CountEnv has looped an odd number of times - * (usually 1), invert the output. */ - if (PSG->Alternate && (PSG->CountEnv & 0x20)) - PSG->Attack ^= 0x1F; - - PSG->CountEnv &= 0x1F; - } - } - - PSG->VolE = PSG->VolTable[PSG->CountEnv ^ PSG->Attack]; - - /* reload volume */ - if (PSG->EnvelopeA) - PSG->VolA = PSG->VolE; - - if (PSG->EnvelopeB) - PSG->VolB = PSG->VolE; - - if (PSG->EnvelopeC) - PSG->VolC = PSG->VolE; - } - } - -#if 1 - *(buf1++) = (vola * PSG->VolA) / STEP; - *(buf2++) = (volb * PSG->VolB) / STEP; - *(buf3++) = (volc * PSG->VolC) / STEP; -#else // [Tom's code...] - // Output PCM wave [-32768...32767] instead of MAME's voltage level [0...32767] - // - This allows for better s/w mixing - - if (PSG->VolA) - { - if (vola) - *(buf1++) = (vola * PSG->VolA) / STEP; - else - *(buf1++) = -(int)PSG->VolA; - } - else - *(buf1++) = 0; - - if (PSG->VolB) - { - if (volb) - *(buf2++) = (volb * PSG->VolB) / STEP; - else - *(buf2++) = -(int)PSG->VolB; - } - else - *(buf2++) = 0; - - if (PSG->VolC) - { - if (volc) - *(buf3++) = (volc * PSG->VolC) / STEP; - else - *(buf3++) = -(int)PSG->VolC; - } - else - *(buf3++) = 0; -#endif - length--; - } -#ifdef DEBUG_AY -WriteLog("AY8910Update: Done.\n"); -#endif -} - - -static void AY8910_set_clock(int chip, int clock) -{ -// struct AY8910 * PSG = &AYPSG[chip]; - - /* The step clock for the tone and noise generators is the chip clock - * divided by 8; for the envelope generator of the AY-3-8910, it is half - * that much (clock/16), but the envelope of the YM2149 goes twice as - * fast, therefore again clock/8. - * Here we calculate the number of steps which happen during one sample - * at the given sample rate. No. of events = sample rate / (clock/8). - * STEP is a multiplier used to turn the fraction into a fixed point - * number. - */ - AYPSG[chip].UpdateStep = (unsigned int)(((double)STEP * AYPSG[chip].SampleRate * 8 + clock / 2) / clock); // [TC: unsigned int cast] -} - - -static void build_mixer_table(int chip) -{ - /* calculate the volume->voltage conversion table - * The AY-3-8910 has 16 levels, in a logarithmic scale (3dB per step) - * The YM2149 still has 16 levels for the tone generators, but 32 for - * the envelope generator (1.5dB per step). - */ - double out = MAX_OUTPUT; - - for(int i=31; i>0; i--) - { - AYPSG[chip].VolTable[i] = (unsigned int)(out + 0.5); /* round to nearest */ // [TC: unsigned int cast] - out /= 1.188502227; /* = 10 ^ (1.5/20) = 1.5dB */ - } - - AYPSG[chip].VolTable[0] = 0; -} - - -void AY8910_reset(int chip) -{ - AYPSG[chip].register_latch = 0; - AYPSG[chip].RNG = 1; - AYPSG[chip].OutputA = 0; - AYPSG[chip].OutputB = 0; - AYPSG[chip].OutputC = 0; - AYPSG[chip].OutputN = 0xFF; - - for(int i=0; i<=AY_ESHAPE; i++) - _AYWriteReg(chip, i, 0); /* AYWriteReg() uses the timer system; we - * cannot call it at this time because the - * timer system has not been initialized. */ -} - -// This stuff looks like Tom's code, so let's streamline and un-MSHungarianize this shit: -// [DONE] -// N.B.: Looks like 'clock' is the 65C02 clock rate, and 'sampleRate' is the -// sample rate set by the audio subsystem. - -void AY8910_InitAll(int clock, int sampleRate) -{ - for(int chip=0; chip - -#define USE_NEW_AY8910 - -#define MAX_8910 4 - -#ifndef USE_NEW_AY8910 -void _AYWriteReg(int n, int r, int v); -void AY8910_reset(int chip); -void AY8910Update(int chip, int16_t ** buffer, int length); - -void AY8910_InitAll(int clock, int sampleRate); -void AY8910_InitClock(int clock); -#else - -// Exported functions -void AYInit(void); -void AYReset(int chipNum); -void AYWrite(int chipNum, int reg, int value); -uint16_t AYGetSample(int chipNum); - -// Exported variables -extern bool logAYInternal; -extern float maxVolume; -#endif - -#endif - diff --git a/src/charset.cpp b/src/charset.cpp index 6e59b6a..478f00c 100644 --- a/src/charset.cpp +++ b/src/charset.cpp @@ -340,523 +340,3 @@ uint8_t textChar2e[0x3800] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; -#if 0 -char textChar[0x7000] = { - 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - - 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - - 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, - 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, - 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, - 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, - 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, - 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, - 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, - 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, - 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, - 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -#endif diff --git a/src/crc32.cpp b/src/crc32.cpp index 8c26370..0e8cb89 100644 --- a/src/crc32.cpp +++ b/src/crc32.cpp @@ -1,14 +1,10 @@ // // CRC32 support // -// by David Raingeard & James Hammons +// by James Hammons // (C) 2010-2018 Underground Software // -// JLH = James Hammons -// -// Who When What -// --- ---------- ----------------------------------------------------------- -// JLH 01/16/2010 Created this log ;-) +// Based on the original 1986 implementation by Gary S. Brown // #include "crc32.h" @@ -51,13 +47,13 @@ static uint32_t crcTable[256] = }; -uint32_t CRC32(uint8_t * data, uint32_t length) +uint32_t CRC32(const uint8_t * data, uint32_t length) { uint32_t crc = 0xFFFFFFFF; for(uint32_t i=0; i> 8); - return crc ^ 0xFFFFFFFF; + return ~crc; } diff --git a/src/crc32.h b/src/crc32.h index 1821847..f390ee9 100644 --- a/src/crc32.h +++ b/src/crc32.h @@ -7,7 +7,7 @@ #include -uint32_t CRC32(uint8_t * data, uint32_t length); +uint32_t CRC32(const uint8_t * data, uint32_t length); #endif // __CRC32_H__ diff --git a/src/floppy.cpp b/src/floppy.cpp deleted file mode 100644 index 859db6d..0000000 --- a/src/floppy.cpp +++ /dev/null @@ -1,872 +0,0 @@ -// -// Apple 2 floppy disk support -// -// by James Hammons -// (c) 2005 Underground Software -// -// JLH = James Hammons -// -// WHO WHEN WHAT -// --- ---------- ----------------------------------------------------------- -// JLH 12/03/2005 Created this file -// JLH 12/15/2005 Fixed nybblization functions to work properly -// JLH 12/27/2005 Added blank disk creation, fixed saving to work properly -// - -#include "floppy.h" - -#include -#include -#include "apple2.h" -#include "log.h" -#include "video.h" // For message spawning... Though there's probably a - // better approach than this! - -// Useful enums - -enum { IO_MODE_READ, IO_MODE_WRITE }; - -// FloppyDrive class variable initialization - -uint8_t FloppyDrive::header[21] = { - 0xD5, 0xAA, 0x96, 0xFF, 0xFE, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xDE, 0xAA, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xD5, 0xAA, 0xAD }; -uint8_t FloppyDrive::doSector[16] = { - 0x0, 0x7, 0xE, 0x6, 0xD, 0x5, 0xC, 0x4, 0xB, 0x3, 0xA, 0x2, 0x9, 0x1, 0x8, 0xF }; -uint8_t FloppyDrive::poSector[16] = { - 0x0, 0x8, 0x1, 0x9, 0x2, 0xA, 0x3, 0xB, 0x4, 0xC, 0x5, 0xD, 0x6, 0xE, 0x7, 0xF }; -char FloppyDrive::nameBuf[MAX_PATH]; - - -// FloppyDrive class implementation... - -FloppyDrive::FloppyDrive(): motorOn(0), activeDrive(0), ioMode(IO_MODE_READ), phase(0), track(0), ioHappened(false) -{ - disk[0] = disk[1] = NULL; - diskSize[0] = diskSize[1] = 0; - diskType[0] = diskType[1] = DFT_UNKNOWN; - imageDirty[0] = imageDirty[1] = false; - writeProtected[0] = writeProtected[1] = false; - imageName[0][0] = imageName[1][0] = 0; // Zero out filenames -} - - -FloppyDrive::~FloppyDrive() -{ - if (disk[0]) - delete[] disk[0]; - - if (disk[1]) - delete[] disk[1]; -} - - -bool FloppyDrive::LoadImage(const char * filename, uint8_t driveNum/*= 0*/) -{ - WriteLog("FLOPPY: Attempting to load image '%s' in drive #%u.\n", filename, driveNum); - - if (driveNum > 1) - { - WriteLog("FLOPPY: Attempted to load image to drive #%u!\n", driveNum); - return false; - } - - imageName[driveNum][0] = 0; // Zero out filename, in case it doesn't load - - FILE * fp = fopen(filename, "rb"); - - if (fp == NULL) - { - WriteLog("FLOPPY: Failed to open image file '%s' for reading...\n", filename); - return false; - } - - if (disk[driveNum]) - delete[] disk[driveNum]; - - fseek(fp, 0, SEEK_END); - diskSize[driveNum] = ftell(fp); - fseek(fp, 0, SEEK_SET); - disk[driveNum] = new uint8_t[diskSize[driveNum]]; - fread(disk[driveNum], 1, diskSize[driveNum], fp); - - fclose(fp); -//printf("Read disk image: %u bytes.\n", diskSize); - DetectImageType(filename, driveNum); - strcpy(imageName[driveNum], filename); - -#if 0 - WriteLog("FLOPPY: Opening image for drive #%u.\n", driveNum); - FILE * fp2 = fopen("bt-nybblized.nyb", "wb"); - - if (fp2 == NULL) - WriteLog("FLOPPY: Failed to open image file 'bt-nybblized.nyb' for writing...\n"); - else - { - fwrite(nybblizedImage[driveNum], 1, 232960, fp2); - fclose(fp2); - } -#endif -//writeProtected[driveNum] = true; - WriteLog("FLOPPY: Loaded image '%s' for drive #%u.\n", filename, driveNum); - - return true; -} - - -bool FloppyDrive::SaveImage(uint8_t driveNum/*= 0*/) -{ - // Various sanity checks... - if (driveNum > 1) - { - WriteLog("FLOPPY: Attempted to save image to drive #%u!\n", driveNum); - return false; - } - - if (!imageDirty[driveNum]) - { - WriteLog("FLOPPY: No need to save unchanged image...\n"); - return false; - } - - if (imageName[driveNum][0] == 0) - { - WriteLog("FLOPPY: Attempted to save non-existant image!\n"); - return false; - } - - // Handle nybbylization, if necessary - if (diskType[driveNum] == DT_NYBBLE) - memcpy(disk[driveNum], nybblizedImage[driveNum], 232960); - else - DenybblizeImage(driveNum); - - // Finally, write the damn image - FILE * fp = fopen(imageName[driveNum], "wb"); - - if (fp == NULL) - { - WriteLog("FLOPPY: Failed to open image file '%s' for writing...\n", imageName[driveNum]); - return false; - } - - fwrite(disk[driveNum], 1, diskSize[driveNum], fp); - fclose(fp); - - WriteLog("FLOPPY: Successfully wrote image file '%s'...\n", imageName[driveNum]); - - return true; -} - - -bool FloppyDrive::SaveImageAs(const char * filename, uint8_t driveNum/*= 0*/) -{ -//WARNING: Buffer overflow possibility -#warning "Buffer overflow possible--!!! FIX !!!" - strcpy(imageName[driveNum], filename); - return SaveImage(driveNum); -} - - -void FloppyDrive::CreateBlankImage(uint8_t driveNum/*= 0*/) -{ - if (disk[driveNum] != NULL) - delete disk[driveNum]; - - disk[driveNum] = new uint8_t[143360]; - diskSize[driveNum] = 143360; - memset(disk[driveNum], 0x00, 143360); - memset(nybblizedImage[driveNum], 0x00, 232960); // Set it to 0 instead of $FF for proper formatting... - diskType[driveNum] = DT_DOS33; - strcpy(imageName[driveNum], "newblank.dsk"); - writeProtected[driveNum] = false; -SpawnMessage("New blank image inserted in drive %u...", driveNum); -} - - -void FloppyDrive::SwapImages(void) -{ - uint8_t nybblizedImageTmp[232960]; - char imageNameTmp[MAX_PATH]; - - memcpy(nybblizedImageTmp, nybblizedImage[0], 232960); - memcpy(nybblizedImage[0], nybblizedImage[1], 232960); - memcpy(nybblizedImage[1], nybblizedImageTmp, 232960); - - memcpy(imageNameTmp, imageName[0], MAX_PATH); - memcpy(imageName[0], imageName[1], MAX_PATH); - memcpy(imageName[1], imageNameTmp, MAX_PATH); - - uint8_t * diskTmp = disk[0]; - disk[0] = disk[1]; - disk[1] = diskTmp; - - uint32_t diskSizeTmp = diskSize[0]; - diskSize[0] = diskSize[1]; - diskSize[1] = diskSizeTmp; - - uint8_t diskTypeTmp = diskType[0]; - diskType[0] = diskType[1]; - diskType[1] = diskTypeTmp; - - uint8_t imageDirtyTmp = imageDirty[0]; - imageDirty[0] = imageDirty[1]; - imageDirty[1] = imageDirtyTmp; - - uint8_t writeProtectedTmp = writeProtected[0]; - writeProtected[0] = writeProtected[1]; - writeProtected[1] = writeProtectedTmp; -SpawnMessage("Drive 0: %s...", imageName[0]); -} - - -void FloppyDrive::DetectImageType(const char * filename, uint8_t driveNum) -{ - diskType[driveNum] = DFT_UNKNOWN; - - if (diskSize[driveNum] == 232960) - { - diskType[driveNum] = DT_NYBBLE; - memcpy(nybblizedImage[driveNum], disk[driveNum], 232960); - } - else if (diskSize[driveNum] == 143360) - { - const char * ext = strrchr(filename, '.'); - - if (ext == NULL) - return; -WriteLog("FLOPPY: Found extension [%s]...\n", ext); - -//Apparently .dsk can house either DOS order OR PRODOS order... !!! FIX !!! - if (strcasecmp(ext, ".po") == 0) - diskType[driveNum] = DT_PRODOS; - else if ((strcasecmp(ext, ".do") == 0) || (strcasecmp(ext, ".dsk") == 0)) - { - // We assume this, but check for a PRODOS fingerprint. Trust, but - // verify. ;-) - diskType[driveNum] = DT_DOS33; - - uint8_t fingerprint[4][4] = { - { 0x00, 0x00, 0x03, 0x00 }, // @ $400 - { 0x02, 0x00, 0x04, 0x00 }, // @ $600 - { 0x03, 0x00, 0x05, 0x00 }, // @ $800 - { 0x04, 0x00, 0x00, 0x00 } // @ $A00 - }; - - bool foundProdos = true; - - for(uint32_t i=0; i<4; i++) - { - for(uint32_t j=0; j<4; j++) - { - if (disk[driveNum][0x400 + (i * 0x200) + j] != fingerprint[i][j]) - { - foundProdos = false; - break; - } - } - } - - if (foundProdos) - diskType[driveNum] = DT_PRODOS; - } - -// Actually, it just might matter WRT to nybblyzing/denybblyzing -// (and, it does... :-P) - NybblizeImage(driveNum); - } - else if (diskSize[driveNum] == 143488) - { - diskType[driveNum] = DT_DOS33_HDR; - NybblizeImage(driveNum); - } - -#warning "Should we attempt to nybblize unknown images here? Definitely SHOULD issue a warning!" - -WriteLog("FLOPPY: Detected image type %s...\n", (diskType[driveNum] == DT_NYBBLE ? - "Nybble image" : (diskType[driveNum] == DT_DOS33 ? - "DOS 3.3 image" : (diskType[driveNum] == DT_DOS33_HDR ? - "DOS 3.3 image (headered)" : (diskType[driveNum] == DT_PRODOS ? "ProDOS image" : "unknown"))))); -} - - -void FloppyDrive::NybblizeImage(uint8_t driveNum) -{ - // Format of a sector is header (23) + nybbles (343) + footer (30) = 396 - // (short by 20 bytes of 416 [413 if 48 byte header is one time only]) -// Hmph. Who'da thunk that AppleWin's nybblization routines would be wrong? -// This is now correct, BTW - // hdr (21) + nybbles (343) + footer (48) = 412 bytes per sector - // (not incl. 64 byte track marker) - - uint8_t footer[48] = { - 0xDE, 0xAA, 0xEB, 0xFF, 0xEB, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF }; - - uint8_t diskbyte[0x40] = { - 0x96, 0x97, 0x9A, 0x9B, 0x9D, 0x9E, 0x9F, 0xA6, - 0xA7, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB2, 0xB3, - 0xB4, 0xB5, 0xB6, 0xB7, 0xB9, 0xBA, 0xBB, 0xBC, - 0xBD, 0xBE, 0xBF, 0xCB, 0xCD, 0xCE, 0xCF, 0xD3, - 0xD6, 0xD7, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, - 0xDF, 0xE5, 0xE6, 0xE7, 0xE9, 0xEA, 0xEB, 0xEC, - 0xED, 0xEE, 0xEF, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, - 0xF7, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF }; - - uint8_t * img = nybblizedImage[driveNum]; - memset(img, 0xFF, 232960); // Doesn't matter if 00s or FFs... - - for(uint8_t trk=0; trk<35; trk++) - { - memset(img, 0xFF, 64); // Write gap 1, 64 bytes (self-sync) - img += 64; - - for(uint8_t sector=0; sector<16; sector++) - { - memcpy(img, header, 21); // Set up the sector header - - img[5] = ((trk >> 1) & 0x55) | 0xAA; - img[6] = (trk & 0x55) | 0xAA; - img[7] = ((sector >> 1) & 0x55) | 0xAA; - img[8] = (sector & 0x55) | 0xAA; - img[9] = (((trk ^ sector ^ 0xFE) >> 1) & 0x55) | 0xAA; - img[10] = ((trk ^ sector ^ 0xFE) & 0x55) | 0xAA; - - img += 21; - uint8_t * bytes = disk[driveNum]; - - if (diskType[driveNum] == DT_DOS33) - bytes += (doSector[sector] * 256) + (trk * 256 * 16); - else if (diskType[driveNum] == DT_DOS33_HDR) - bytes += (doSector[sector] * 256) + (trk * 256 * 16) + 128; - else if (diskType[driveNum] == DT_PRODOS) - bytes += (poSector[sector] * 256) + (trk * 256 * 16); - else - bytes += (sector * 256) + (trk * 256 * 16); - - // Convert the 256 8-bit bytes into 342 6-bit bytes. - - for(uint16_t i=0; i<0x56; i++) - { - img[i] = ((bytes[(i + 0xAC) & 0xFF] & 0x01) << 7) - | ((bytes[(i + 0xAC) & 0xFF] & 0x02) << 5) - | ((bytes[(i + 0x56) & 0xFF] & 0x01) << 5) - | ((bytes[(i + 0x56) & 0xFF] & 0x02) << 3) - | ((bytes[(i + 0x00) & 0xFF] & 0x01) << 3) - | ((bytes[(i + 0x00) & 0xFF] & 0x02) << 1); - } - - img[0x54] &= 0x3F; - img[0x55] &= 0x3F; - memcpy(img + 0x56, bytes, 256); - - // XOR the data block with itself, offset by one byte, - // creating a 343rd byte which is used as a cheksum. - - img[342] = 0x00; - - for(uint16_t i=342; i>0; i--) - img[i] = img[i] ^ img[i - 1]; - - // Using a lookup table, convert the 6-bit bytes into disk bytes. - - for(uint16_t i=0; i<343; i++) -//#define TEST_NYBBLIZATION -#ifdef TEST_NYBBLIZATION -{ -WriteLog("FL: i = %u, img[i] = %02X, diskbyte = %02X\n", i, img[i], diskbyte[img[i] >> 2]); -#endif - img[i] = diskbyte[img[i] >> 2]; -#ifdef TEST_NYBBLIZATION -//WriteLog(" img[i] = %02X\n", img[i]); -} -#endif - img += 343; - - // Done with the nybblization, now for the epilogue... - - memcpy(img, footer, 48); - img += 48; - } - } -} - - -void FloppyDrive::DenybblizeImage(uint8_t driveNum) -{ - uint8_t decodeNybble[0x80] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, - 0x00, 0x00, 0x08, 0x0C, 0x00, 0x10, 0x14, 0x18, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x20, - 0x00, 0x00, 0x00, 0x24, 0x28, 0x2C, 0x30, 0x34, - 0x00, 0x00, 0x38, 0x3C, 0x40, 0x44, 0x48, 0x4C, - 0x00, 0x50, 0x54, 0x58, 0x5C, 0x60, 0x64, 0x68, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x6C, 0x00, 0x70, 0x74, 0x78, - 0x00, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x80, 0x84, - 0x00, 0x88, 0x8C, 0x90, 0x94, 0x98, 0x9C, 0xA0, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xA4, 0xA8, 0xAC, - 0x00, 0xB0, 0xB4, 0xB8, 0xBC, 0xC0, 0xC4, 0xC8, - 0x00, 0x00, 0xCC, 0xD0, 0xD4, 0xD8, 0xDC, 0xE0, - 0x00, 0xE4, 0xE8, 0xEC, 0xF0, 0xF4, 0xF8, 0xFC }; - - // Sanity checks... - if (disk[driveNum] == NULL || diskSize[driveNum] < 143360) - { - WriteLog("FLOPPY: Source disk image invalid! [drive=%u, disk=%08X, diskSize=%u]\n", - driveNum, disk[driveNum], diskSize[driveNum]); - return; - } - - uint8_t * srcImg = nybblizedImage[driveNum]; - uint8_t * dstImg = disk[driveNum]; - uint8_t buffer[345]; // 2 extra bytes for the unpack routine below... - - for(uint8_t trk=0; trk<35; trk++) - { - uint8_t * trackBase = srcImg + (trk * 6656); - - for(uint8_t sector=0; sector<16; sector++) - { - uint16_t sectorStart = (uint16_t)-1; - - for(uint16_t i=0; i<6656; i++) - { - if (trackBase[i] == header[0] - && trackBase[(i + 1) % 6656] == header[1] - && trackBase[(i + 2) % 6656] == header[2] - && trackBase[(i + 3) % 6656] == header[3] - && trackBase[(i + 4) % 6656] == header[4]) - { -//Could also check the track # at +5,6... - uint8_t foundSector = ((trackBase[(i + 7) % 6656] & 0x55) << 1) - | (trackBase[(i + 8) % 6656] & 0x55); - - if (foundSector == sector) - { - sectorStart = (i + 21) % 6656; - break; - } - } - } - - // Sanity check... - if (sectorStart == (uint16_t)-1) - { - WriteLog("FLOPPY: Failed to find sector %u (track %u) in nybble image!\n", - sector, trk); - return; - } - - // Using a lookup table, convert the disk bytes into 6-bit bytes. - - for(uint16_t i=0; i<343; i++) - buffer[i] = decodeNybble[trackBase[(sectorStart + i) % 6656] & 0x7F]; - - // XOR the data block with itself, offset by one byte. - - for(uint16_t i=1; i<342; i++) - buffer[i] = buffer[i] ^ buffer[i - 1]; - - // Convert the 342 6-bit bytes into 256 8-bit bytes (at buffer + $56). - - for(uint16_t i=0; i<0x56; i++) - { - buffer[0x056 + i] |= ((buffer[i] >> 3) & 0x01) | ((buffer[i] >> 1) & 0x02); - buffer[0x0AC + i] |= ((buffer[i] >> 5) & 0x01) | ((buffer[i] >> 3) & 0x02); - buffer[0x102 + i] |= ((buffer[i] >> 7) & 0x01) | ((buffer[i] >> 5) & 0x02); - } - - uint8_t * bytes = dstImg; - - if (diskType[driveNum] == DT_DOS33) - bytes += (doSector[sector] * 256) + (trk * 256 * 16); - else if (diskType[driveNum] == DT_DOS33_HDR) - bytes += (doSector[sector] * 256) + (trk * 256 * 16) + 128; - else if (diskType[driveNum] == DT_PRODOS) - bytes += (poSector[sector] * 256) + (trk * 256 * 16); - else - bytes += (sector * 256) + (trk * 256 * 16);//*/ - - memcpy(bytes, buffer + 0x56, 256); - } - } -} - - -const char * FloppyDrive::ImageName(uint8_t driveNum/*= 0*/) -{ - // Set up a zero-length string for return value - nameBuf[0] = 0; - - if (driveNum > 1) - { - WriteLog("FLOPPY: Attempted to get image name for drive #%u!\n", driveNum); - return nameBuf; - } - - // Now we attempt to strip out extraneous paths/extensions to get just the filename - const char * startOfFile = strrchr(imageName[driveNum], '/'); - const char * startOfExt = strrchr(imageName[driveNum], '.'); - - // If there isn't a path, assume we're starting at the beginning - if (startOfFile == NULL) - startOfFile = &imageName[driveNum][0]; - else - startOfFile++; - - // If there isn't an extension, assume it's at the terminating NULL - if (startOfExt == NULL) - startOfExt = &imageName[driveNum][0] + strlen(imageName[driveNum]); - - // Now copy the filename (may copy nothing!) - int j = 0; - - for(const char * i=startOfFile; i 1) - { - WriteLog("FLOPPY: Attempted DriveIsEmtpy() for drive #%u!\n", driveNum); - return true; - } - - // This is kinda gay, but it works - return (imageName[driveNum][0] == 0 ? true : false); -} - - -bool FloppyDrive::IsWriteProtected(uint8_t driveNum/*= 0*/) -{ - if (driveNum > 1) - { - WriteLog("FLOPPY: Attempted DiskIsWriteProtected() for drive #%u!\n", driveNum); - return true; - } - - return writeProtected[driveNum]; -} - - -void FloppyDrive::SetWriteProtect(bool state, uint8_t driveNum/*= 0*/) -{ - if (driveNum > 1) - { - WriteLog("FLOPPY: Attempted set write protect for drive #%u!\n", driveNum); - return; - } - - writeProtected[driveNum] = state; -} - - -int FloppyDrive::DriveLightStatus(uint8_t driveNum/*= 0*/) -{ - int retval = DLS_OFF; - - if (activeDrive != driveNum) - return DLS_OFF; - - if (ioHappened) - retval = (ioMode == IO_MODE_READ ? DLS_READ : DLS_WRITE); - - ioHappened = false; - return retval; -} - - -void FloppyDrive::SaveState(FILE * file) -{ - // Internal state vars - fputc(motorOn, file); - fputc(activeDrive, file); - fputc(ioMode, file); - fputc(latchValue, file); - fputc(phase, file); - fputc(track, file); - fputc((ioHappened ? 1 : 0), file); - WriteLong(file, currentPos); - - // Disk #1 - if (disk[0] != NULL) - { - WriteLong(file, diskSize[0]); - WriteLong(file, diskType[0]); - fputc((imageDirty[0] ? 1 : 0), file); - fputc((writeProtected[0] ? 1 : 0), file); - fwrite(nybblizedImage[0], 1, 232960, file); - fwrite(imageName[0], 1, MAX_PATH, file); - } - else - WriteLong(file, 0); - - // Disk #2 - if (disk[1] != NULL) - { - WriteLong(file, diskSize[1]); - WriteLong(file, diskType[1]); - fputc((imageDirty[1] ? 1 : 0), file); - fputc((writeProtected[1] ? 1 : 0), file); - fwrite(nybblizedImage[1], 1, 232960, file); - fwrite(imageName[1], 1, MAX_PATH, file); - } - else - WriteLong(file, 0); -} - - -void FloppyDrive::LoadState(FILE * file) -{ - // Eject images if they're loaded - EjectImage(0); - EjectImage(1); - - // Read internal state variables - motorOn = fgetc(file); - activeDrive = fgetc(file); - ioMode = fgetc(file); - latchValue = fgetc(file); - phase = fgetc(file); - track = fgetc(file); - ioHappened = (fgetc(file) == 1 ? true : false); - currentPos = ReadLong(file); - - diskSize[0] = ReadLong(file); - - if (diskSize[0]) - { - disk[0] = new uint8_t[diskSize[0]]; - diskType[0] = (uint8_t)ReadLong(file); - imageDirty[0] = (fgetc(file) == 1 ? true : false); - writeProtected[0] = (fgetc(file) == 1 ? true : false); - fread(nybblizedImage[0], 1, 232960, file); - fread(imageName[0], 1, MAX_PATH, file); - } - - diskSize[1] = ReadLong(file); - - if (diskSize[1]) - { - disk[1] = new uint8_t[diskSize[1]]; - diskType[1] = (uint8_t)ReadLong(file); - imageDirty[1] = (fgetc(file) == 1 ? true : false); - writeProtected[1] = (fgetc(file) == 1 ? true : false); - fread(nybblizedImage[1], 1, 232960, file); - fread(imageName[1], 1, MAX_PATH, file); - } -} - - -uint32_t FloppyDrive::ReadLong(FILE * file) -{ - uint32_t r = 0; - - for(int i=0; i<4; i++) - r = (r << 8) | fgetc(file); - - return r; -} - - -void FloppyDrive::WriteLong(FILE * file, uint32_t l) -{ - for(int i=0; i<4; i++) - { - fputc((l >> 24) & 0xFF, file); - l = l << 8; - } -} - - -// Memory mapped I/O functions - -/* -The DSK format is a byte-for-byte image of a 16-sector Apple II floppy disk: 35 -tracks of 16 sectors of 256 bytes each, making 143,360 bytes in total. The PO -format is exactly the same size as DSK and is also organized as 35 sequential -tracks, but the sectors within each track are in a different sequence. The NIB -format is a nybblized format: a more direct representation of the disk's data -as encoded by the Apple II floppy drive hardware. NIB contains 35 tracks of -6656 bytes each, for a total size of 232,960 bytes. Although this format is -much larger, it is also more versatile and can represent the older 13-sector -disks, many copy-protected disks, and other unusual encodings. -*/ - -void FloppyDrive::ControlStepper(uint8_t addr) -{ - // $C0E0 - 7 -/* -What I can gather here: -bits 1-2 are the "phase" of the track (which is 1/4 of a full track (?)) -bit 0 is the "do something" bit. -*/ - if (addr & 0x01) - { - uint8_t newPhase = (addr >> 1) & 0x03; -//WriteLog("*** Stepper change [%u]: track = %u, phase = %u, newPhase = %u\n", addr, track, phase, newPhase); - - if (((phase + 1) & 0x03) == newPhase) - phase += (phase < 79 ? 1 : 0); - - if (((phase - 1) & 0x03) == newPhase) - phase -= (phase > 0 ? 1 : 0); - - if (!(phase & 0x01)) - { - track = ((phase >> 1) < 35 ? phase >> 1 : 34); - currentPos = 0; - } -//WriteLog(" track = %u, phase = %u, newPhase = %u\n", track, phase, newPhase); -SpawnMessage("Stepping to track %u...", track); - } - -// return something if read mode... -} - - -void FloppyDrive::ControlMotor(uint8_t addr) -{ - // $C0E8 - 9 - motorOn = addr; -} - - -void FloppyDrive::DriveEnable(uint8_t addr) -{ - // $C0EA - B - activeDrive = addr; -} - - -uint8_t FloppyDrive::ReadWrite(void) -{ -SpawnMessage("%u:%sing %s track %u, sector %u...", activeDrive, - (ioMode == IO_MODE_READ ? "Read" : "Write"), - (ioMode == IO_MODE_READ ? "from" : "to"), track, currentPos / 396); - // $C0EC - ioHappened = true; -/* -I think what happens here is that once a track is read its nybblized form -is fed through here, one byte at a time--which means for DO disks, we have -to convert the actual 256 byte sector to a 416 byte nybblized data "sector". -Which we now do. :-) -*/ - if (ioMode == IO_MODE_WRITE && (latchValue & 0x80)) - { - // Does it behave like this? -#warning "Write protection kludged in--investigate real behavior!" - if (writeProtected[activeDrive]) -//doesn't seem to do anything - return 0;//is this more like it? - - nybblizedImage[activeDrive][(track * 6656) + currentPos] = latchValue; - imageDirty[activeDrive] = true; - } - - uint8_t diskByte = nybblizedImage[activeDrive][(track * 6656) + currentPos]; - currentPos = (currentPos + 1) % 6656; - -//WriteLog("FL: diskByte=%02X, currentPos=%u\n", diskByte, currentPos); - return diskByte; -} - - -uint8_t FloppyDrive::GetLatchValue(void) -{ - // $C0ED - return latchValue; -} - - -void FloppyDrive::SetLatchValue(uint8_t value) -{ - // $C0ED - latchValue = value; -} - - -void FloppyDrive::SetReadMode(void) -{ - // $C0EE - ioMode = IO_MODE_READ; -} - - -void FloppyDrive::SetWriteMode(void) -{ - // $C0EF - ioMode = IO_MODE_WRITE; -} - -/* -PRODOS 8 MLI ERROR CODES - -$00: No error -$01: Bad system call number -$04: Bad system call parameter count -$25: Interrupt table full -$27: I/O error -$28: No device connected -$2B: Disk write protected -$2E: Disk switched -$40: Invalid pathname -$42: Maximum number of files open -$43: Invalid reference number -$44: Directory not found -$45: Volume not found -$46: File not found -$47: Duplicate filename -$48: Volume full -$49: Volume directory full -$4A: Incompatible file format, also a ProDOS directory -$4B: Unsupported storage_type -$4C: End of file encountered -$4D: Position out of range -$4E: File access error, also file locked -$50: File is open -$51: Directory structure damaged -$52: Not a ProDOS volume -$53: Invalid system call parameter -$55: Volume Control Block table full -$56: Bad buffer address -$57: Duplicate volume -$5A: File structure damaged -*/ diff --git a/src/floppy.h b/src/floppy.h deleted file mode 100644 index 0438d65..0000000 --- a/src/floppy.h +++ /dev/null @@ -1,92 +0,0 @@ -// -// Apple 2 floppy disk support -// - -#ifndef __FLOPPY_H__ -#define __FLOPPY_H__ - -// MAX_PATH isn't defined in stdlib.h on *nix, so we do it here... -#ifdef __GCCUNIX__ -#include -#define MAX_PATH _POSIX_PATH_MAX -#else -#include // for MAX_PATH on MinGW/Darwin -// Kludge for Win64 -#ifndef MAX_PATH -#define MAX_PATH _MAX_PATH -#endif -#endif -#include -#include - -enum { DFT_UNKNOWN, DT_DOS33, DT_DOS33_HDR, DT_PRODOS, DT_NYBBLE }; -enum { DLS_OFF, DLS_READ, DLS_WRITE }; - -class FloppyDrive -{ - public: - FloppyDrive(); - ~FloppyDrive(); - - bool LoadImage(const char * filename, uint8_t driveNum = 0); - bool SaveImage(uint8_t driveNum = 0); - bool SaveImageAs(const char * filename, uint8_t driveNum = 0); - void CreateBlankImage(uint8_t driveNum = 0); - void SwapImages(void); - const char * ImageName(uint8_t driveNum = 0); - void EjectImage(uint8_t driveNum = 0); - bool IsEmpty(uint8_t driveNum = 0); - bool IsWriteProtected(uint8_t driveNum = 0); - void SetWriteProtect(bool, uint8_t driveNum = 0); - int DriveLightStatus(uint8_t driveNum = 0); - void SaveState(FILE *); - void LoadState(FILE *); - - private: - uint32_t ReadLong(FILE *); - void WriteLong(FILE *, uint32_t); - - // I/O functions ($C0Ex accesses) - - public: - void ControlStepper(uint8_t addr); - void ControlMotor(uint8_t addr); - void DriveEnable(uint8_t addr); - uint8_t ReadWrite(void); - uint8_t GetLatchValue(void); - void SetLatchValue(uint8_t value); - void SetReadMode(void); - void SetWriteMode(void); - - protected: - void DetectImageType(const char * filename, uint8_t driveNum); - void NybblizeImage(uint8_t driveNum); - void DenybblizeImage(uint8_t driveNum); - - private: - char imageName[2][MAX_PATH]; - uint8_t * disk[2]; - uint32_t diskSize[2]; - uint8_t diskType[2]; - bool imageDirty[2]; - bool writeProtected[2]; - uint8_t motorOn; - uint8_t activeDrive; - uint8_t ioMode; - uint8_t latchValue; - uint8_t phase; - uint8_t track; - bool ioHappened; - - uint8_t nybblizedImage[2][232960]; - uint32_t currentPos; - - // And here are some private class variables (to reduce function redundancy): - static uint8_t header[21]; - static uint8_t doSector[16]; - static uint8_t poSector[16]; - static char nameBuf[MAX_PATH]; -}; - -#endif // __FLOPPY_H__ - diff --git a/src/floppydrive.cpp b/src/floppydrive.cpp new file mode 100644 index 0000000..056ca2b --- /dev/null +++ b/src/floppydrive.cpp @@ -0,0 +1,1500 @@ +// +// Apple 2 floppy disk support +// +// by James Hammons +// (c) 2005-2018 Underground Software +// +// JLH = James Hammons +// +// WHO WHEN WHAT +// --- ---------- ----------------------------------------------------------- +// JLH 12/03/2005 Created this file +// JLH 12/15/2005 Fixed nybblization functions to work properly +// JLH 12/27/2005 Added blank disk creation, fixed saving to work properly +// + +#include "floppydrive.h" + +#include +#include +#include "apple2.h" +#include "crc32.h" +#include "firmware.h" +#include "log.h" +#include "mmu.h" +#include "video.h" // For message spawning... Though there's probably a + // better approach than this! + +// Useful enums + +enum { IO_MODE_READ, IO_MODE_WRITE }; + +// FloppyDrive class variable initialization + +uint8_t FloppyDrive::doSector[16] = { + 0x0, 0x7, 0xE, 0x6, 0xD, 0x5, 0xC, 0x4, 0xB, 0x3, 0xA, 0x2, 0x9, 0x1, 0x8, 0xF }; +uint8_t FloppyDrive::poSector[16] = { + 0x0, 0x8, 0x1, 0x9, 0x2, 0xA, 0x3, 0xB, 0x4, 0xC, 0x5, 0xD, 0x6, 0xE, 0x7, 0xF }; +uint8_t FloppyDrive::wozHeader[9] = "WOZ1\xFF\x0A\x0D\x0A"; +uint8_t FloppyDrive::wozHeader2[9] = "WOZ2\xFF\x0A\x0D\x0A"; +uint8_t FloppyDrive::standardTMAP[141] = { + 0, 0, 0xFF, 1, 1, 1, 0xFF, 2, 2, 2, 0xFF, 3, 3, 3, 0xFF, 4, 4, 4, 0xFF, + 5, 5, 5, 0xFF, 6, 6, 6, 0xFF, 7, 7, 7, 0xFF, 8, 8, 8, 0xFF, 9, 9, 9, 0xFF, + 10, 10, 10, 0xFF, 11, 11, 11, 0xFF, 12, 12, 12, 0xFF, 13, 13, 13, 0xFF, + 14, 14, 14, 0xFF, 15, 15, 15, 0xFF, 16, 16, 16, 0xFF, 17, 17, 17, 0xFF, + 18, 18, 18, 0xFF, 19, 19, 19, 0xFF, 20, 20, 20, 0xFF, 21, 21, 21, 0xFF, + 22, 22, 22, 0xFF, 23, 23, 23, 0xFF, 24, 24, 24, 0xFF, 25, 25, 25, 0xFF, + 26, 26, 26, 0xFF, 27, 27, 27, 0xFF, 28, 28, 28, 0xFF, 29, 29, 29, 0xFF, + 30, 30, 30, 0xFF, 31, 31, 31, 0xFF, 32, 32, 32, 0xFF, 33, 33, 33, 0xFF, + 34, 34, 34, 0xFF, 0xFF, 0xFF +}; +uint8_t FloppyDrive::bitMask[8] = { 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01 }; +uint8_t FloppyDrive::sequencerROM[256] = { +0x18, 0x18, 0x18, 0x18, 0x0A, 0x0A, 0x0A, 0x0A, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, +0x2D, 0x38, 0x2D, 0x38, 0x0A, 0x0A, 0x0A, 0x0A, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, +0x38, 0x28, 0xD8, 0x08, 0x0A, 0x0A, 0x0A, 0x0A, 0x39, 0x39, 0x39, 0x39, 0x3B, 0x3B, 0x3B, 0x3B, +0x48, 0x48, 0xD8, 0x48, 0x0A, 0x0A, 0x0A, 0x0A, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, +0x58, 0x58, 0xD8, 0xD8, 0x0A, 0x0A, 0x0A, 0x0A, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, +0x68, 0x68, 0xD8, 0xD8, 0x0A, 0x0A, 0x0A, 0x0A, 0x68, 0x68, 0x68, 0x68, 0x68, 0x68, 0x68, 0x68, +0x78, 0x78, 0xD8, 0xD8, 0x0A, 0x0A, 0x0A, 0x0A, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, +0x88, 0x88, 0xD8, 0xD8, 0x0A, 0x0A, 0x0A, 0x0A, 0x08, 0x88, 0x08, 0x88, 0x08, 0x88, 0x08, 0x88, +0x98, 0x98, 0xD8, 0xD8, 0x0A, 0x0A, 0x0A, 0x0A, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, +0x29, 0xA8, 0xD8, 0xD8, 0x0A, 0x0A, 0x0A, 0x0A, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, +0xBD, 0xB8, 0xCD, 0xD8, 0x0A, 0x0A, 0x0A, 0x0A, 0xB9, 0xB9, 0xB9, 0xB9, 0xBB, 0xBB, 0xBB, 0xBB, +0x59, 0xC8, 0xD9, 0xD8, 0x0A, 0x0A, 0x0A, 0x0A, 0xC8, 0xC8, 0xC8, 0xC8, 0xC8, 0xC8, 0xC8, 0xC8, +0xD9, 0xA0, 0xD9, 0xD8, 0x0A, 0x0A, 0x0A, 0x0A, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, +0x08, 0xE8, 0xD8, 0xE8, 0x0A, 0x0A, 0x0A, 0x0A, 0xE8, 0xE8, 0xE8, 0xE8, 0xE8, 0xE8, 0xE8, 0xE8, +0xFD, 0xF8, 0xFD, 0xF8, 0x0A, 0x0A, 0x0A, 0x0A, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, +0x4D, 0xE0, 0xDD, 0xE0, 0x0A, 0x0A, 0x0A, 0x0A, 0x88, 0x08, 0x88, 0x08, 0x88, 0x08, 0x88, 0x08 +}; + +char FloppyDrive::nameBuf[MAX_PATH]; + + +// Static in-line functions, for clarity & speed, mostly for reading values out +// of the WOZ struct, which stores its data in LE; some for swapping variables +static inline uint16_t Uint16LE(uint16_t v) +{ +#if SDL_BYTEORDER == SDL_BIG_ENDIAN + return ((v & 0xFF) << 8) | ((v & 0xFF00) >> 8); +#else + return v; +#endif +} + + +static inline uint32_t Uint32LE(uint32_t v) +{ +#if SDL_BYTEORDER == SDL_BIG_ENDIAN + return ((v & 0xFF) << 24) | ((v & 0xFF00) << 8) + | ((v & 0xFF0000) >> 8) | ((v & 0xFF000000) >> 24); +#else + return v; +#endif +} + + +static inline void Swap(uint8_t & a, uint8_t & b) +{ + uint8_t t = a; + a = b; + b = t; +} + + +static inline void Swap(uint32_t & a, uint32_t & b) +{ + uint32_t t = a; + a = b; + b = t; +} + + +static inline void Swap(bool & a, bool & b) +{ + bool t = a; + a = b; + b = t; +} + + +static inline void Swap(uint8_t * & a, uint8_t * & b) +{ + uint8_t * t = a; + a = b; + b = t; +} + + +static inline void Swap(WOZ * & a, WOZ * & b) +{ + WOZ * t = a; + a = b; + b = t; +} + + +// FloppyDrive class implementation... + +FloppyDrive::FloppyDrive(): motorOn(0), activeDrive(0), ioMode(IO_MODE_READ), ioHappened(false) +{ + phase[0] = phase[1] = 0; + headPos[0] = headPos[1] = 0; + trackLength[0] = trackLength[1] = 51200; + disk[0] = disk[1] = NULL; + woz[0] = woz[1] = NULL; + diskSize[0] = diskSize[1] = 0; + diskType[0] = diskType[1] = DT_EMPTY; + imageDirty[0] = imageDirty[1] = false; + imageName[0][0] = imageName[1][0] = 0; // Zero out filenames +} + + +FloppyDrive::~FloppyDrive() +{ + if (disk[0]) + delete[] disk[0]; + + if (disk[1]) + delete[] disk[1]; +} + + +bool FloppyDrive::LoadImage(const char * filename, uint8_t driveNum/*= 0*/) +{ + WriteLog("FLOPPY: Attempting to load image '%s' in drive #%u.\n", filename, driveNum); + + if (driveNum > 1) + { + WriteLog("FLOPPY: Attempted to load image to drive #%u!\n", driveNum); + return false; + } + + // Zero out filename, in case it doesn't load + imageName[driveNum][0] = 0; + + FILE * fp = fopen(filename, "rb"); + + if (fp == NULL) + { + WriteLog("FLOPPY: Failed to open image file '%s' for reading...\n", filename); + return false; + } + + if (disk[driveNum]) + delete[] disk[driveNum]; + + fseek(fp, 0, SEEK_END); + diskSize[driveNum] = ftell(fp); + fseek(fp, 0, SEEK_SET); + disk[driveNum] = new uint8_t[diskSize[driveNum]]; + woz[driveNum] = (WOZ *)disk[driveNum]; + fread(disk[driveNum], 1, diskSize[driveNum], fp); + + fclose(fp); +//printf("Read disk image: %u bytes.\n", diskSize); + DetectImageType(filename, driveNum); + strcpy(imageName[driveNum], filename); + + WriteLog("FLOPPY: Loaded image '%s' for drive #%u.\n", filename, driveNum); + + return true; +} + + +bool FloppyDrive::SaveImage(uint8_t driveNum/*= 0*/) +{ +// comment out for now... +#if 0 + // Various sanity checks... + if (driveNum > 1) + { + WriteLog("FLOPPY: Attempted to save image to drive #%u!\n", driveNum); + return false; + } + + if (!imageDirty[driveNum]) + { + WriteLog("FLOPPY: No need to save unchanged image...\n"); + return false; + } + + if (imageName[driveNum][0] == 0) + { + WriteLog("FLOPPY: Attempted to save non-existant image!\n"); + return false; + } + + // Finally, write the damn image + FILE * fp = fopen(imageName[driveNum], "wb"); + + if (fp == NULL) + { + WriteLog("FLOPPY: Failed to open image file '%s' for writing...\n", imageName[driveNum]); + return false; + } + + fwrite(disk[driveNum], 1, diskSize[driveNum], fp); + fclose(fp); + + WriteLog("FLOPPY: Successfully wrote image file '%s'...\n", imageName[driveNum]); + + return true; +#else + char * ext = strrchr(imageName[driveNum], '.'); + + if ((ext != NULL) && (diskType[driveNum] != DT_WOZ)) + memcpy(ext, ".woz", 4); + + return SaveWOZ(driveNum); +#endif +} + + +bool FloppyDrive::SaveImageAs(const char * filename, uint8_t driveNum/*= 0*/) +{ + strncpy(imageName[driveNum], filename, MAX_PATH); + // Ensure a NULL terminated string here, as strncpy() won't terminate the + // string if the source length is >= MAX_PATH + imageName[driveNum][MAX_PATH - 1] = 0; + return SaveImage(driveNum); +} + + +void FloppyDrive::CreateBlankImage(uint8_t driveNum/*= 0*/) +{ + if (disk[driveNum] != NULL) + delete disk[driveNum]; + + InitWOZ(driveNum); + diskType[driveNum] = DT_WOZ; + strcpy(imageName[driveNum], "newblank.woz"); + SpawnMessage("New blank image inserted in drive %u...", driveNum); +} + + +void FloppyDrive::SwapImages(void) +{ +#if 0 +WriteLog("SwapImages BEFORE:\n"); +WriteLog("\tdisk[0]=%X, disk[1]=%X\n", disk[0], disk[1]); +WriteLog("\twoz[0]=%X, woz[1]=%X\n", woz[0], woz[1]); +WriteLog("\tdiskSize[0]=%X, diskSize[1]=%X\n", diskSize[0], diskSize[1]); +WriteLog("\tdiskType[0]=%X, diskType[1]=%X\n", diskType[0], diskType[1]); +WriteLog("\timageDirty[0]=%X, imageDirty[1]=%X\n", imageDirty[0], imageDirty[1]); +WriteLog("\tphase[0]=%X, phase[1]=%X\n", phase[0], phase[1]); +WriteLog("\theadPos[0]=%X, headPos[1]=%X\n", headPos[0], headPos[1]); +WriteLog("\tcurrentPos[0]=%X, currentPos[1]=%X\n", currentPos[0], currentPos[1]); +#endif + char imageNameTmp[MAX_PATH]; + + memcpy(imageNameTmp, imageName[0], MAX_PATH); + memcpy(imageName[0], imageName[1], MAX_PATH); + memcpy(imageName[1], imageNameTmp, MAX_PATH); + + Swap(disk[0], disk[1]); + Swap(woz[0], woz[1]); + Swap(diskSize[0], diskSize[1]); + Swap(diskType[0], diskType[1]); + Swap(imageDirty[0], imageDirty[1]); + + Swap(phase[0], phase[1]); + Swap(headPos[0], headPos[1]); + Swap(currentPos[0], currentPos[1]); +SpawnMessage("Drive 0: %s...", imageName[0]); +#if 0 +WriteLog("SwapImages AFTER:\n"); +WriteLog("\tdisk[0]=%X, disk[1]=%X\n", disk[0], disk[1]); +WriteLog("\twoz[0]=%X, woz[1]=%X\n", woz[0], woz[1]); +WriteLog("\tdiskSize[0]=%X, diskSize[1]=%X\n", diskSize[0], diskSize[1]); +WriteLog("\tdiskType[0]=%X, diskType[1]=%X\n", diskType[0], diskType[1]); +WriteLog("\timageDirty[0]=%X, imageDirty[1]=%X\n", imageDirty[0], imageDirty[1]); +WriteLog("\tphase[0]=%X, phase[1]=%X\n", phase[0], phase[1]); +WriteLog("\theadPos[0]=%X, headPos[1]=%X\n", headPos[0], headPos[1]); +WriteLog("\tcurrentPos[0]=%X, currentPos[1]=%X\n", currentPos[0], currentPos[1]); +#endif +} + + +/* +Need to add some type of error checking here, so we can report back on bad images, etc. +*/ +void FloppyDrive::DetectImageType(const char * filename, uint8_t driveNum) +{ + diskType[driveNum] = DFT_UNKNOWN; + + if (memcmp(disk[driveNum], wozHeader, 8) == 0) + { + diskType[driveNum] = DT_WOZ; + /*bool r =*/ CheckWOZ(disk[driveNum], diskSize[driveNum], driveNum); + } + else if (diskSize[driveNum] == 143360) + { + const char * ext = strrchr(filename, '.'); + + if (ext == NULL) + return; + + WriteLog("FLOPPY: Found extension [%s]...\n", ext); + + if (strcasecmp(ext, ".po") == 0) + diskType[driveNum] = DT_PRODOS; + else if ((strcasecmp(ext, ".do") == 0) || (strcasecmp(ext, ".dsk") == 0)) + { + // We assume this, but check for a PRODOS fingerprint. Trust, but + // verify. ;-) + diskType[driveNum] = DT_DOS33; + + uint8_t fingerprint[4][4] = { + { 0x00, 0x00, 0x03, 0x00 }, // @ $400 + { 0x02, 0x00, 0x04, 0x00 }, // @ $600 + { 0x03, 0x00, 0x05, 0x00 }, // @ $800 + { 0x04, 0x00, 0x00, 0x00 } // @ $A00 + }; + + bool foundProdos = true; + + for(uint32_t i=0; i<4; i++) + { + for(uint32_t j=0; j<4; j++) + { + if (disk[driveNum][0x400 + (i * 0x200) + j] != fingerprint[i][j]) + { + foundProdos = false; + break; + } + } + } + + if (foundProdos) + diskType[driveNum] = DT_PRODOS; + } + +// Actually, it just might matter WRT to nybblyzing/denybblyzing +// (and, it does... :-P) + WOZifyImage(driveNum); + } + else if (diskSize[driveNum] == 143488) + { + diskType[driveNum] = DT_DOS33_HDR; + WOZifyImage(driveNum); + } + +#warning "Should we attempt to nybblize unknown images here? Definitely SHOULD issue a warning!" +// No, we don't nybblize anymore. But we should tell the user that the loading failed with a return value + + WriteLog("FLOPPY: Detected image type %s...\n", (diskType[driveNum] == DT_DOS33 ? + "DOS 3.3 image" : (diskType[driveNum] == DT_DOS33_HDR ? + "DOS 3.3 image (headered)" : (diskType[driveNum] == DT_PRODOS ? "ProDOS image" : (diskType[driveNum] == DT_WOZ ? "WOZ image" : "unknown"))))); +} + + +// +// Write a bitstream (source left justified to bit 7) to destination buffer. +// Writes 'bits' number of bits to 'dest', starting at bit position 'dstPtr', +// updating 'dstPtr' for the caller. +// +void FloppyDrive::WriteBits(uint8_t * dest, uint8_t * src, uint16_t bits, uint16_t * dstPtr) +{ + for(uint16_t i=0; itmap, standardTMAP, 141); + InitWOZ(driveNum); + + // Upconvert data from DSK & friends format to WOZ tracks :-) + for(uint8_t trk=0; trk<35; trk++) + { + uint16_t dstBitPtr = 0; + uint8_t * img = woz[driveNum]->track[trk].bits; +//already done +// memset(img, 0, 6646); + + // Write self-sync header bytes (16, should it be 64? Dunno.) + for(int i=0; i<64; i++) + WriteBits(img, ff10, 10, &dstBitPtr); + + // Write out the following sectors + for(uint8_t sector=0; sector<16; sector++) + { + // Set up the sector address header + addressHeader[5] = ((trk >> 1) & 0x55) | 0xAA; + addressHeader[6] = (trk & 0x55) | 0xAA; + addressHeader[7] = ((sector >> 1) & 0x55) | 0xAA; + addressHeader[8] = (sector & 0x55) | 0xAA; + addressHeader[9] = (((trk ^ sector ^ 0xFE) >> 1) & 0x55) | 0xAA; + addressHeader[10] = ((trk ^ sector ^ 0xFE) & 0x55) | 0xAA; + + WriteBits(img, addressHeader, 14 * 8, &dstBitPtr); + + // Write 5 self-sync bytes for actual sector header + for(int i=0; i<5; i++) + WriteBits(img, ff10, 10, &dstBitPtr); + + // Write sector header (D5 AA AD) + WriteBits(img, sectorHeader, 3 * 8, &dstBitPtr); +// uint8_t * bytes = disk[driveNum]; + uint8_t * bytes = tmpDisk; + +//Need to fix this so it writes the correct sector in the correct place *and* put the correct sector # into the header above as well. !!! FIX !!! + // Figure out location of sector data in disk image + if (diskType[driveNum] == DT_DOS33) + bytes += (doSector[sector] * 256) + (trk * 256 * 16); + else if (diskType[driveNum] == DT_DOS33_HDR) + bytes += (doSector[sector] * 256) + (trk * 256 * 16) + 128; + else if (diskType[driveNum] == DT_PRODOS) + bytes += (poSector[sector] * 256) + (trk * 256 * 16); + else + bytes += (sector * 256) + (trk * 256 * 16); + + // Convert the 256 8-bit bytes into 342 6-bit bytes. + for(uint16_t i=0; i<0x56; i++) + { + tmpNib[i] = ((bytes[(i + 0xAC) & 0xFF] & 0x01) << 7) + | ((bytes[(i + 0xAC) & 0xFF] & 0x02) << 5) + | ((bytes[(i + 0x56) & 0xFF] & 0x01) << 5) + | ((bytes[(i + 0x56) & 0xFF] & 0x02) << 3) + | ((bytes[(i + 0x00) & 0xFF] & 0x01) << 3) + | ((bytes[(i + 0x00) & 0xFF] & 0x02) << 1); + } + + tmpNib[0x54] &= 0x3F; + tmpNib[0x55] &= 0x3F; + memcpy(tmpNib + 0x56, bytes, 256); + + // XOR the data block with itself, offset by one byte, creating a + // 343rd byte which is used as a checksum. + tmpNib[342] = 0x00; + + for(uint16_t i=342; i>0; i--) + tmpNib[i] = tmpNib[i] ^ tmpNib[i - 1]; + + // Using a lookup table, convert the 6-bit bytes into disk bytes. + for(uint16_t i=0; i<343; i++) + tmpNib[i] = diskbyte[tmpNib[i] >> 2]; + + WriteBits(img, tmpNib, 343 * 8, &dstBitPtr); + + // Done with the nybblization, now add the epilogue... + WriteBits(img, footer, 3 * 8, &dstBitPtr); + + // (Should the footer be 30 or 48? would be 45 FF10s here for 48) + for(int i=0; i<27; i++) + WriteBits(img, ff10, 10, &dstBitPtr); + } + + // Set the proper bit/byte lengths in the WOZ for this track + woz[driveNum]->track[trk].bitCount = Uint16LE(dstBitPtr); + woz[driveNum]->track[trk].byteCount = Uint16LE((dstBitPtr + 7) / 8); + } + + delete[] tmpDisk; +} + + +const char * FloppyDrive::ImageName(uint8_t driveNum/*= 0*/) +{ + // Set up a zero-length string for return value + nameBuf[0] = 0; + + if (driveNum > 1) + { + WriteLog("FLOPPY: Attempted to get image name for drive #%u!\n", driveNum); + return nameBuf; + } + + // Now we attempt to strip out extraneous paths/extensions to get just the filename + const char * startOfFile = strrchr(imageName[driveNum], '/'); + const char * startOfExt = strrchr(imageName[driveNum], '.'); + + // If there isn't a path, assume we're starting at the beginning + if (startOfFile == NULL) + startOfFile = &imageName[driveNum][0]; + else + startOfFile++; + + // If there isn't an extension, assume it's at the terminating NULL + if (startOfExt == NULL) + startOfExt = &imageName[driveNum][0] + strlen(imageName[driveNum]); + + // Now copy the filename (may copy nothing!) + int j = 0; + + for(const char * i=startOfFile; i 1) + { + WriteLog("FLOPPY: Attempted DriveIsEmtpy() for drive #%u!\n", driveNum); + return true; + } + + return (diskType[driveNum] == DT_EMPTY ? true : false); +} + + +bool FloppyDrive::IsWriteProtected(uint8_t driveNum/*= 0*/) +{ + if (driveNum > 1) + { + WriteLog("FLOPPY: Attempted DiskIsWriteProtected() for drive #%u!\n", driveNum); + return true; + } + + return (bool)woz[driveNum]->writeProtected; +} + + +void FloppyDrive::SetWriteProtect(bool state, uint8_t driveNum/*= 0*/) +{ + if (driveNum > 1) + { + WriteLog("FLOPPY: Attempted set write protect for drive #%u!\n", driveNum); + return; + } + + woz[driveNum]->writeProtected = (uint8_t)state; +} + + +int FloppyDrive::DriveLightStatus(uint8_t driveNum/*= 0*/) +{ + int retval = DLS_OFF; + + if (activeDrive != driveNum) + return DLS_OFF; + + if (ioHappened) + retval = (ioMode == IO_MODE_READ ? DLS_READ : DLS_WRITE); + + ioHappened = false; + return retval; +} + + +void FloppyDrive::SaveState(FILE * file) +{ + // Internal state vars + fputc(motorOn, file); + fputc(activeDrive, file); + fputc(ioMode, file); + fputc(dataRegister, file); + fputc((ioHappened ? 1 : 0), file); + + // Disk #1 + if (disk[0] != NULL) + { + WriteLong(file, diskSize[0]); + WriteLong(file, diskType[0]); + fputc(phase[0], file); + fputc(headPos[0], file); + WriteLong(file, currentPos[0]); + fputc((imageDirty[0] ? 1 : 0), file); + fwrite(disk[0], 1, diskSize[0], file); + fwrite(imageName[0], 1, MAX_PATH, file); + } + else + WriteLong(file, 0); + + // Disk #2 + if (disk[1] != NULL) + { + WriteLong(file, diskSize[1]); + WriteLong(file, diskType[1]); + fputc(phase[1], file); + fputc(headPos[1], file); + WriteLong(file, currentPos[1]); + fputc((imageDirty[1] ? 1 : 0), file); + fwrite(disk[1], 1, diskSize[1], file); + fwrite(imageName[1], 1, MAX_PATH, file); + } + else + WriteLong(file, 0); +} + + +void FloppyDrive::LoadState(FILE * file) +{ + // Eject images if they're loaded + EjectImage(0); + EjectImage(1); + + // Read internal state variables + motorOn = fgetc(file); + activeDrive = fgetc(file); + ioMode = fgetc(file); + dataRegister = fgetc(file); + ioHappened = (fgetc(file) == 1 ? true : false); + + diskSize[0] = ReadLong(file); + + if (diskSize[0]) + { + disk[0] = new uint8_t[diskSize[0]]; + diskType[0] = (uint8_t)ReadLong(file); + phase[0] = fgetc(file); + headPos[0] = fgetc(file); + currentPos[0] = ReadLong(file); + imageDirty[0] = (fgetc(file) == 1 ? true : false); + fread(disk[0], 1, diskSize[0], file); + fread(imageName[0], 1, MAX_PATH, file); + woz[0] = (WOZ *)disk[0]; + } + + diskSize[1] = ReadLong(file); + + if (diskSize[1]) + { + disk[1] = new uint8_t[diskSize[1]]; + diskType[1] = (uint8_t)ReadLong(file); + phase[1] = fgetc(file); + headPos[1] = fgetc(file); + currentPos[1] = ReadLong(file); + imageDirty[1] = (fgetc(file) == 1 ? true : false); + fread(disk[1], 1, diskSize[1], file); + fread(imageName[1], 1, MAX_PATH, file); + woz[1] = (WOZ *)disk[1]; + } +} + + +uint32_t FloppyDrive::ReadLong(FILE * file) +{ + uint32_t r = 0; + + for(int i=0; i<4; i++) + r = (r << 8) | fgetc(file); + + return r; +} + + +void FloppyDrive::WriteLong(FILE * file, uint32_t l) +{ + for(int i=0; i<4; i++) + { + fputc((l >> 24) & 0xFF, file); + l = l << 8; + } +} + + +void FloppyDrive::WriteLongLE(FILE * file, uint32_t l) +{ + for(int i=0; i<4; i++) + { + fputc(l & 0xFF, file); + l >>= 8; + } +} + + +void FloppyDrive::WriteWordLE(FILE * file, uint16_t w) +{ + fputc(w & 0xFF, file); + fputc((w >> 8) & 0xFF, file); +} + + +void FloppyDrive::WriteZeroes(FILE * file, uint32_t num) +{ + for(uint32_t i=0; i> 1) & 0x03); + + // Set the state of the phase solenoid accessed using the phase bit + if (addr & 0x01) + phase[activeDrive] |= phaseBit; + else + phase[activeDrive] &= ~phaseBit; + + // See if the new phase solenoid is energized, & move the stepper/head + // appropriately. + // N.B.: The head stub is located by bits 1 & 2 of the headPos variable + uint8_t oldHeadPos = headPos[activeDrive]; + uint8_t nextUp = 1 << (((oldHeadPos >> 1) + 1) & 0x03); + uint8_t nextDown = 1 << (((oldHeadPos >> 1) - 1) & 0x03); + + // We simulate cogging here by seeing if there's a valid up and/or down + // position to go to. If both are valid, the head goes nowhere. + if (phase[activeDrive] & nextUp) + headPos[activeDrive] += (headPos[activeDrive] < 140 ? 2 : 0); + + if (phase[activeDrive] & nextDown) + headPos[activeDrive] -= (headPos[activeDrive] > 0 ? 2 : 0); + + if (oldHeadPos != headPos[activeDrive]) + { + uint8_t newTIdx = woz[activeDrive]->tmap[headPos[activeDrive]]; + float newBitLen = (newTIdx == 0xFF ? 51200.0f + : Uint16LE(woz[activeDrive]->track[newTIdx].bitCount)); + + uint8_t oldTIdx = woz[activeDrive]->tmap[oldHeadPos]; + float oldBitLen = (oldTIdx == 0xFF ? 51200.0f + : Uint16LE(woz[activeDrive]->track[oldTIdx].bitCount)); + currentPos[activeDrive] = (uint32_t)((float)currentPos[activeDrive] * (newBitLen / oldBitLen)); + + trackLength[activeDrive] = (uint16_t)newBitLen; + SpawnMessage("Stepping to track %u...", headPos[activeDrive] >> 2); + } + +WriteLog("FLOPPY: Stepper phase %d set to %s [%c%c%c%c] (track=%2.2f)\n", (addr >> 1) & 0x03, (addr & 0x01 ? "ON " : "off"), (phase[activeDrive] & 0x08 ? '|' : '.'), (phase[activeDrive] & 0x04 ? '|' : '.'), (phase[activeDrive] & 0x02 ? '|' : '.'), (phase[activeDrive] & 0x01 ? '|' : '.'), (float)headPos[activeDrive] / 4.0f); +} + + +void FloppyDrive::ControlMotor(uint8_t addr) +{ + // $C0E8 - 9 + motorOn = addr; + + if (motorOn) + readPulse = 0; + else + driveOffTimeout = 2000000; + +WriteLog("FLOPPY: Turning drive motor %s\n", (motorOn ? "ON" : "off")); +} + + +void FloppyDrive::DriveEnable(uint8_t addr) +{ + // $C0EA - B + activeDrive = addr; +WriteLog("FLOPPY: Selecting drive #%hhd\n", addr + 1); +} + + +/* +So for $C08C-F, we have two switches (Q6 & Q7) which combine to make four states ($C-D is off/on for Q6, $E-F is off/on for Q7). + +So it forms a matrix like so: + + $C08E $C08F + +----------------------------------------------------------------------- +$C08C |Enable READ sequencing |Data reg SHL every 8th clock while writing + +----------------------------+------------------------------------------ +$C08D |Check write prot./init write|Data reg LOAD every 8th clk while writing + +Looks like reads from even addresses in $C080-F block transfer data from the sequencer to the MPU, does write from odd do the inverse (transfer from MPU to sequencer)? Looks like it. + +*/ + + +void FloppyDrive::SetShiftLoadSwitch(uint8_t state) +{ + // $C0EC - D + slSwitch = state; +} + + +void FloppyDrive::SetReadWriteSwitch(uint8_t state) +{ + // $C0EE - F + rwSwitch = state; +} + + +// MMIO: Reads from $C08x to $C0XX on even addresses +uint8_t FloppyDrive::DataRegister(void) +{ + // Sanity check + if (diskType[activeDrive] != DT_EMPTY) + { + uint8_t tIdx = woz[activeDrive]->tmap[headPos[activeDrive]]; + uint32_t bitLen = (tIdx == 0xFF ? 51200 + : Uint16LE(woz[activeDrive]->track[tIdx].bitCount)); + SpawnMessage("%u:Reading $%02X from track %u, sector %u...", + activeDrive, dataRegister, headPos[activeDrive] >> 2, (uint32_t)(((float)currentPos[activeDrive] / (float)bitLen) * 16.0f)); + ioMode = IO_MODE_READ; + ioHappened = true; + } + + return dataRegister; +} + + +// MMIO: Writes from $C08x to $C0XX on odd addresses +void FloppyDrive::DataRegister(uint8_t data) +{ + cpuDataBus = data; + ioMode = IO_MODE_WRITE; + ioHappened = true; +} + + +/* + OFF switches ON switches +Switch Addr Func Addr Func +Q0 $C080 Phase 0 off $C081 Phase 0 on +Q1 $C082 Phase 1 off $C083 Phase 1 on +Q2 $C084 Phase 2 off $C085 Phase 2 on +Q3 $C086 Phase 3 off $C087 Phase 3 on +Q4 $C088 Drive off $C089 Drive on +Q5 $C08A Select Drive 1 $C08B Select Drive 2 +Q6 $C08C Shift data register $C08D Load data register +Q7 $C08E Read $C08F Write + +From "Beneath Apple ProDOS", description of combinations of $C0EC-EF + +$C08C, $C08E: Enable read sequencing +$C08C, $C08F: Shift data register every four cycles while writing +$C08D, $C08E: Check write protect and initialize sequencer for writing +$C08D, $C08F: Load data register every four cycles while writing + + +Sense Write Protect: + + LDX #SLOT Put slot number times 16 in X-register. + LDA $C08D, X + LDA $C08E, X Sense write protect. + BMI ERROR If high bit set, protected. + +*/ + +/* +PRODOS 8 MLI ERROR CODES + +$00: No error +$01: Bad system call number +$04: Bad system call parameter count +$25: Interrupt table full +$27: I/O error +$28: No device connected +$2B: Disk write protected +$2E: Disk switched +$40: Invalid pathname +$42: Maximum number of files open +$43: Invalid reference number +$44: Directory not found +$45: Volume not found +$46: File not found +$47: Duplicate filename +$48: Volume full +$49: Volume directory full +$4A: Incompatible file format, also a ProDOS directory +$4B: Unsupported storage_type +$4C: End of file encountered +$4D: Position out of range +$4E: File access error, also file locked +$50: File is open +$51: Directory structure damaged +$52: Not a ProDOS volume +$53: Invalid system call parameter +$55: Volume Control Block table full +$56: Bad buffer address +$57: Duplicate volume +$5A: File structure damaged +*/ + + +// +// This is used mainly to initialize blank disks and upconvert non-WOZ disks +// +void FloppyDrive::InitWOZ(uint8_t driveNum/*= 0*/) +{ + // Sanity check + if (disk[driveNum] != NULL) + { + WriteLog("FLOPPY: Attempted to initialize non-NULL WOZ structure\n"); + return; + } + + diskSize[driveNum] = 256 + (35 * sizeof(WOZTrack)); + disk[driveNum] = new uint8_t[diskSize[driveNum]]; + woz[driveNum] = (WOZ *)disk[driveNum]; + + // Zero out WOZ image in memory + memset(woz[driveNum], 0, diskSize[driveNum]); + + // Set up header (leave CRC as 0 for now) + memcpy(woz[driveNum]->magic, wozHeader, 8); + + // INFO header + memcpy(woz[driveNum]->infoTag, "INFO", 4); + woz[driveNum]->infoSize = Uint32LE(60); + woz[driveNum]->infoVersion = 1; + woz[driveNum]->diskType = 1; + woz[driveNum]->writeProtected = 0; + woz[driveNum]->synchronized = 0; + woz[driveNum]->cleaned = 1; + memset(woz[driveNum]->creator, ' ', 32); + memcpy(woz[driveNum]->creator, "Apple2 emulator v1.0.0", 22); + + // TMAP header + memcpy(woz[driveNum]->tmapTag, "TMAP", 4); + woz[driveNum]->tmapSize = Uint32LE(160); + memcpy(woz[driveNum]->tmap, standardTMAP, 141); + + // TRKS header + memcpy(woz[driveNum]->trksTag, "TRKS", 4); + woz[driveNum]->trksSize = Uint32LE(35 * sizeof(WOZTrack)); + + for(int i=0; i<35; i++) + { + woz[driveNum]->track[i].bitCount = Uint16LE(51200); + woz[driveNum]->track[i].byteCount = Uint16LE((51200 + 7) / 8); + } + + // META header (how to handle? prolly with a separate pointer) +} + + +// +// Do basic sanity checks on the passed in contents (file loaded elsewhere). +// Returns true if successful, false on failure. +// +bool FloppyDrive::CheckWOZ(const uint8_t * wozData, uint32_t wozSize, uint8_t driveNum/*= 0*/) +{ + // Hey! This reference works!! :-D + WOZ & woz1 = *((WOZ *)wozData); + woz[driveNum] = (WOZ *)wozData; + + // Basic sanity checking + if (wozData == NULL) + { + WriteLog("FLOPPY: NULL pointer passed in to CheckWOZ()...\n"); + return false; + } + + if (memcmp(woz1.magic, wozHeader, 8) != 0) + { + WriteLog("FLOPPY: Invalid WOZ header in file\n"); + return false; + } + + uint32_t crc = CRC32(&wozData[12], wozSize - 12); + uint32_t wozCRC = Uint32LE(woz1.crc32); + + if ((wozCRC != 0) && (wozCRC != crc)) + { + WriteLog("FLOPPY: Corrupted data found in WOZ. CRC32: %08X, computed: %08X\n", wozCRC, crc); + return false; + } + else if (wozCRC == 0) + WriteLog("FLOPPY: Warning--WOZ file has no CRC...\n"); + +#if 1 + WriteLog("Track map:\n"); + WriteLog(" 1 1 1 1 1 1 1 1\n"); + WriteLog("0.,.1.,.2.,.3.,.4.,.5.,.6.,.7.,.8.,.9.,.0.,.1.,.2.,.3.,.4.,.5.,.6.,.7.,.\n"); + WriteLog("------------------------------------------------------------------------\n"); + + for(uint8_t j=0; j<2; j++) + { + for(uint8_t i=0; i<72; i++) + { + char buf[64] = ".."; + buf[0] = buf[1] = '.'; + + if (woz1.tmap[i] != 0xFF) + sprintf(buf, "%02d", woz1.tmap[i]); + + WriteLog("%c", buf[j]); + } + + WriteLog("\n"); + } + + WriteLog("\n1 1 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3\n"); + WriteLog("8.,.9.,.0.,.1.,.2.,.3.,.4.,.5.,.6.,.7.,.8.,.9.,.0.,.1.,.2.,.3.,.4.,.5\n"); + WriteLog("---------------------------------------------------------------------\n"); + + for(uint8_t j=0; j<2; j++) + { + for(uint8_t i=72; i<141; i++) + { + char buf[64] = ".."; + + if (woz1.tmap[i] != 0xFF) + sprintf(buf, "%02d", woz1.tmap[i]); + + WriteLog("%c", buf[j]); + } + + WriteLog("\n"); + } + + WriteLog("\n"); + + uint8_t numTracks = woz1.trksSize / sizeof(WOZTrack); + + // N.B.: Need to check the track[] to have this tell the correct track... Right now, it doesn't + for(uint8_t i=0; i 1) + { + WriteLog("FLOPPY: Attempted to save image to drive #%u!\n", driveNum); + return false; + } + + if (diskType[driveNum] == DT_EMPTY) + { + WriteLog("FLOPPY: No image in drive #%u to save\n", driveNum); + return false; + } + + if (!imageDirty[driveNum]) + { + WriteLog("FLOPPY: No need to save unchanged image in drive #%u...\n", driveNum); + return false; + } + + // Set up CRC32 before writing + woz[driveNum]->crc32 = Uint32LE(CRC32(&disk[driveNum][12], diskSize[driveNum] - 12)); + + // META header (skip for now) (actually, should be in the disk[] image already) + + // Finally, write the damn image + FILE * fp = fopen(imageName[driveNum], "wb"); + + if (fp == NULL) + { + WriteLog("FLOPPY: Failed to open image file '%s' for writing...\n", imageName[driveNum]); + return false; + } + + fwrite(disk[driveNum], 1, diskSize[driveNum], fp); + fclose(fp); + + WriteLog("FLOPPY: Successfully wrote image file '%s'...\n", imageName[driveNum]); + + return true; +} + + +// N.B.: The WOZ documentation says that the bitstream is normalized to 4µs. +// Which means on the //e that you would have to run it at that clock +// rate (instead of the //e clock rate 0.9799µs/cycle) to get the +// simulated drive running at 300 RPM. So, instead of doing that, we're +// just gonna run it at twice the clock rate of the base 6502 clock, +// which will make the simulated drive run in the neighborhood of around +// 306 RPM. Should be close enough to get away with it. :-) (And it +// seems to run OK, for the most part.) + + +static bool logSeq = false; +// +// Logic State Sequencer & Data Register +// +void FloppyDrive::RunSequencer(uint32_t cyclesToRun) +{ + static uint32_t prng = 1; + + // Sanity checks + if (diskType[activeDrive] == DT_EMPTY) + return; + else if (motorOn == false) + { + if (driveOffTimeout == 0) + return; + else + driveOffTimeout--; + } + + // It's x2 because the sequencer clock runs twice as fast as the CPU clock. + cyclesToRun *= 2; + +//extern bool dumpDis; +//static bool tripwire = false; +uint8_t chop = 0; +//static uint32_t lastPos = 0; +if (logSeq) +{ + WriteLog("DISKSEQ: Running for %d cycles [rw=%hhd, sl=%hhd, reg=%02X, bus=%02X]\n", cyclesToRun, rwSwitch, slSwitch, dataRegister, cpuDataBus); +} + + while (cyclesToRun-- > 0) + { + pulseClock = (pulseClock + 1) & 0x07; + + if (pulseClock == 0) + { + uint16_t bytePos = currentPos[activeDrive] / 8; + uint8_t bitPos = currentPos[activeDrive] % 8; + uint8_t tIdx = woz[activeDrive]->tmap[headPos[activeDrive]]; + + if (tIdx != 0xFF) + { + if (woz[activeDrive]->track[tIdx].bits[bytePos] & bitMask[bitPos]) + { + // According to Jim Sather (Understanding the Apple II), + // the Read Pulse, when it happens, is 1µs long, which is 2 + // sequencer clock pulses long. + readPulse = 2; + zeroBitCount = 0; + } + else + zeroBitCount++; +#if 0 + currentPos[activeDrive] = (currentPos[activeDrive] + 1) % Uint16LE(woz[activeDrive]->track[tIdx].bitCount); + } + else + currentPos[activeDrive] = (currentPos[activeDrive] + 1) % 51200; +#else + } + +//this doesn't work reliably for some reason... +//seems to work OK now... + currentPos[activeDrive] = (currentPos[activeDrive] + 1) % trackLength[activeDrive]; +#endif + + // If we hit more than 2 zero bits in a row, simulate the disk head + // reader's Automatic Gain Control (AGC) turning itself up too high + // by stuffing random bits in the bitstream. We also do this if + // the current track is marked as unformatted. +/* +N.B.: Had to up this to 3 because Up N' Down had some weird sync bytes (FE10). May have to up it some more. +*/ + if ((zeroBitCount > 3) || (tIdx == 0xFF)) + { + if (prng & 0x00001) + { + // This PRNG is called the "Galois configuration". + prng ^= 0x24000; + readPulse = 2; + } + + prng >>= 1; + } + } + + // Find and run the Sequencer's next state + uint8_t nextState = (sequencerState & 0xF0) | (rwSwitch << 3) + | (slSwitch << 2) | (readPulse ? 0x02 : 0) + | ((dataRegister & 0x80) >> 7); +if (logSeq) + WriteLog("[%02X:%02X]%s", sequencerState, nextState, (chop == 15 ? "\n" : "")); +chop = (chop + 1) % 20; + sequencerState = sequencerROM[nextState]; + + switch (sequencerState & 0x0F) + { + case 0x00: + case 0x01: + case 0x02: + case 0x03: + case 0x04: + case 0x05: + case 0x06: + case 0x07: + // CLR (clear data register) + dataRegister = 0; + break; + case 0x08: + case 0x0C: + // NOP (no operation) + break; + case 0x09: + // SL0 (shift left, 0 fill LSB) + dataRegister <<= 1; +//if (!stopWriting) +{ + uint8_t tIdx = woz[activeDrive]->tmap[headPos[activeDrive]]; + + if (rwSwitch && (tIdx != 0xFF) + && !woz[activeDrive]->writeProtected) + { + imageDirty[activeDrive] = true; + uint16_t bytePos = currentPos[activeDrive] / 8; + uint8_t bitPos = currentPos[activeDrive] % 8; + + if (dataRegister & 0x80) + // Fill in the one, if necessary + woz[activeDrive]->track[tIdx].bits[bytePos] |= bitMask[bitPos]; + else + // Otherwise, punch in the zero + woz[activeDrive]->track[tIdx].bits[bytePos] &= ~bitMask[bitPos]; + +#if 0 +if (dumpDis || tripwire) +{ +tripwire = true; +WriteLog("[%s]", (dataRegister & 0x80 ? "1" : "0")); +if (lastPos == currentPos[activeDrive]) + WriteLog("{STOMP}"); +else if ((lastPos + 1) != currentPos[activeDrive]) + WriteLog("{LAG}"); +lastPos = currentPos[activeDrive]; +} +#endif + } +} + break; + case 0x0A: + case 0x0E: + // SR (shift right write protect bit) + dataRegister >>= 1; + dataRegister |= (woz[activeDrive]->writeProtected ? 0x80 : 0x00); + break; + case 0x0B: + case 0x0F: + // LD (load data register from data bus) + dataRegister = cpuDataBus; +//if (!stopWriting) +{ + uint8_t tIdx = woz[activeDrive]->tmap[headPos[activeDrive]]; + + if (rwSwitch && (tIdx != 0xFF) + && !woz[activeDrive]->writeProtected) + { + imageDirty[activeDrive] = true; + uint16_t bytePos = currentPos[activeDrive] / 8; + uint8_t bitPos = currentPos[activeDrive] % 8; + woz[activeDrive]->track[tIdx].bits[bytePos] |= bitMask[bitPos]; +#if 0 +if (dumpDis || tripwire) +{ +tripwire = true; +WriteLog("[%s]", (dataRegister & 0x80 ? "1" : "0")); +if (lastPos == currentPos[activeDrive]) + WriteLog("{STOMP}"); +else if ((lastPos + 1) != currentPos[activeDrive]) + WriteLog("{LAG}"); +lastPos = currentPos[activeDrive]; +} +#endif + } +} + break; + case 0x0D: + // SL1 (shift left, 1 fill LSB) + dataRegister <<= 1; + dataRegister |= 0x01; + break; + } + + if (readPulse > 0) + readPulse--; + } + +if (logSeq) + WriteLog("\n"); +} + + +FloppyDrive floppyDrive[2]; + +static uint8_t SlotIOR(uint16_t address) +{ + uint8_t state = address & 0x0F; + + switch (state) + { + case 0x00: + case 0x01: + case 0x02: + case 0x03: + case 0x04: + case 0x05: + case 0x06: + case 0x07: + floppyDrive[0].ControlStepper(state); + break; + case 0x08: + case 0x09: + floppyDrive[0].ControlMotor(state & 0x01); + break; + case 0x0A: + case 0x0B: + floppyDrive[0].DriveEnable(state & 0x01); + break; + case 0x0C: + case 0x0D: + floppyDrive[0].SetShiftLoadSwitch(state & 0x01); + break; + case 0x0E: + case 0x0F: + floppyDrive[0].SetReadWriteSwitch(state & 0x01); + break; + } + + // Even addresses return the data register, odd (we suppose) returns a + // floating bus read... + return (address & 0x01 ? ReadFloatingBus(0) : floppyDrive[0].DataRegister()); +} + + +static void SlotIOW(uint16_t address, uint8_t byte) +{ + uint8_t state = address & 0x0F; + + switch (state) + { + case 0x00: + case 0x01: + case 0x02: + case 0x03: + case 0x04: + case 0x05: + case 0x06: + case 0x07: + floppyDrive[0].ControlStepper(state); + break; + case 0x08: + case 0x09: + floppyDrive[0].ControlMotor(state & 0x01); + break; + case 0x0A: + case 0x0B: + floppyDrive[0].DriveEnable(state & 0x01); + break; + case 0x0C: + case 0x0D: + floppyDrive[0].SetShiftLoadSwitch(state & 0x01); + break; + case 0x0E: + case 0x0F: + floppyDrive[0].SetReadWriteSwitch(state & 0x01); + break; + } + + // Odd addresses write to the Data register, even addresses (we assume) go + // into the ether + if (state & 0x01) + floppyDrive[0].DataRegister(byte); +} + + +// This slot function doesn't need to differentiate between separate instances +// of FloppyDrive +static uint8_t SlotROM(uint16_t address) +{ + return diskROM[address]; +} + + +void InstallFloppy(uint8_t slot) +{ + SlotData disk = { SlotIOR, SlotIOW, SlotROM, 0, 0, 0 }; + InstallSlotHandler(slot, &disk); +} + diff --git a/src/floppydrive.h b/src/floppydrive.h new file mode 100644 index 0000000..a98415c --- /dev/null +++ b/src/floppydrive.h @@ -0,0 +1,210 @@ +// +// Apple 2 floppy disk support +// + +#ifndef __FLOPPY_H__ +#define __FLOPPY_H__ + +// MAX_PATH isn't defined in stdlib.h on *nix, so we do it here... +#ifdef __GCCUNIX__ +#include +#define MAX_PATH _POSIX_PATH_MAX +#else +#include // for MAX_PATH on MinGW/Darwin +// Kludge for Win64 +#ifndef MAX_PATH +#define MAX_PATH _MAX_PATH +#endif +#endif + +#include +#include + +enum { DT_EMPTY = 0, DT_WOZ, DT_DOS33, DT_DOS33_HDR, DT_PRODOS, DT_NYBBLE, + DFT_UNKNOWN }; +enum { DLS_OFF, DLS_READ, DLS_WRITE }; + +// N.B.: All 32/16-bit values are stored in little endian. Which means, to +// read/write them safely, we need to use translators as this code may or +// may not be compiled on an architecture that supports little endian +// natively. + +struct WOZTrack +{ + uint8_t bits[6646]; + uint16_t byteCount; + uint16_t bitCount; + uint16_t splicePoint; + uint8_t spliceNibble; + uint8_t spliceBitCount; + uint16_t reserved; +}; + +struct WOZMetadata +{ + uint8_t metaTag[4]; // "META" + uint32_t metaSize; // Size of the META chunk + uint8_t data[]; // Variable length array of metadata +}; + +struct WOZ +{ + // Header + uint8_t magic[8]; // "WOZ1" $FF $0A $0D $0A + uint32_t crc32; // CRC32 of the remaining data in the file + + // INFO chunk + uint8_t infoTag[4]; // "INFO" + uint32_t infoSize; // Always 60 bytes long + uint8_t infoVersion; // Currently 1 + uint8_t diskType; // 1 = 5 1/4", 2 = 3 1/2" + uint8_t writeProtected; // 1 = write protected disk + uint8_t synchronized; // 1 = cross-track sync was used during imaging + uint8_t cleaned; // 1 = fake bits removed from image + uint8_t creator[32]; // Software that made this image, padded with 0x20 + uint8_t pad1[23]; // Padding to 60 bytes + + // TMAP chunk + uint8_t tmapTag[4]; // "TMAP" + uint32_t tmapSize; // Always 160 bytes long + uint8_t tmap[160]; // Track map, with empty tracks set to $FF + + // TRKS chunk + uint8_t trksTag[4]; // "TRKS" + uint32_t trksSize; // Varies, depending on # of tracks imaged + WOZTrack track[]; // Variable length array for the track data proper +}; + +struct WOZTrack2 +{ + uint16_t startingBlock; // 512 byte block # where this track starts (relative to the start of the file) + uint16_t blockCount; // # of blocks in this track + uint32_t bitCount; // # of bits in this track +}; + +struct WOZ2 +{ + // Header + uint8_t magic[8]; // "WOZ2" $FF $0A $0D $0A + uint32_t crc32; // CRC32 of the remaining data in the file + + // INFO chunk + uint8_t infoTag[4]; // "INFO" + uint32_t infoSize; // Always 60 bytes long + uint8_t infoVersion; // Currently 1 + uint8_t diskType; // 1 = 5 1/4", 2 = 3 1/2" + uint8_t writeProtected; // 1 = write protected disk + uint8_t synchronized; // 1 = cross-track sync was used during imaging + uint8_t cleaned; // 1 = fake bits removed from image + uint8_t creator[32]; // Software that made this image, padded with 0x20 + uint8_t diskSides; // 5 1/4" disks always have 1 side (v2 from here on) + uint8_t bootSectorFmt; // 5 1/4" only (0=unknown, 1=16 sector, 2=13 sector, 3=both) + uint8_t optimalBitTmg; // In ticks, standard for 5 1/4" is 32 (4 µs) + uint16_t compatibleHW; // Bitfield showing hardware compatibility (1=][, 2=][+, 4=//e (unenh), 8=//c, 16=//e (enh), 32=IIgs, 64=//c+, 128=///, 256=///+) + uint16_t requiredRAM; // Minimum size in K, 0=unknown + uint16_t largestTrack; // Number of 512 byte blocks used by largest track + uint8_t pad1[14]; // Padding to 60 bytes + + // TMAP chunk + uint8_t tmapTag[4]; // "TMAP" + uint32_t tmapSize; // Always 160 bytes long + uint8_t tmap[160]; // Track map, with empty tracks set to $FF + + // TRKS chunk + uint8_t trksTag[4]; // "TRKS" + uint32_t trksSize; // Varies, depending on # of tracks imaged + WOZTrack2 track[160]; // Actual track info (corresponding to TMAP data) + uint8_t data[]; // Variable length array for the track data proper +}; + +class FloppyDrive +{ + public: + FloppyDrive(); + ~FloppyDrive(); + + bool LoadImage(const char * filename, uint8_t driveNum = 0); + bool SaveImage(uint8_t driveNum = 0); + bool SaveImageAs(const char * filename, uint8_t driveNum = 0); + void CreateBlankImage(uint8_t driveNum = 0); + void SwapImages(void); + const char * ImageName(uint8_t driveNum = 0); + void EjectImage(uint8_t driveNum = 0); + bool IsEmpty(uint8_t driveNum = 0); + bool IsWriteProtected(uint8_t driveNum = 0); + void SetWriteProtect(bool, uint8_t driveNum = 0); + int DriveLightStatus(uint8_t driveNum = 0); + void SaveState(FILE *); + void LoadState(FILE *); + void InitWOZ(uint8_t driveNum = 0); + bool CheckWOZ(const uint8_t * wozData, uint32_t wozSize, uint8_t driveNum = 0); + bool SaveWOZ(uint8_t driveNum); + + private: + uint32_t ReadLong(FILE *); + void WriteLong(FILE *, uint32_t); + void WriteLongLE(FILE *, uint32_t); + void WriteWordLE(FILE *, uint16_t); + void WriteZeroes(FILE *, uint32_t); + + // I/O functions ($C0Ex accesses) + + public: + void ControlStepper(uint8_t addr); + void ControlMotor(uint8_t addr); + void DriveEnable(uint8_t addr); + void SetShiftLoadSwitch(uint8_t state); + void SetReadWriteSwitch(uint8_t state); + uint8_t DataRegister(void); + void DataRegister(uint8_t); + void RunSequencer(uint32_t); + + protected: + void DetectImageType(const char * filename, uint8_t driveNum); + void WriteBits(uint8_t * dest, uint8_t * src, uint16_t bits, uint16_t * start); + void WOZifyImage(uint8_t driveNum); + + private: + char imageName[2][MAX_PATH]; + uint8_t * disk[2]; + uint32_t diskSize[2]; + uint8_t diskType[2]; + bool imageDirty[2]; + uint8_t motorOn; + uint8_t activeDrive; + uint8_t ioMode; + uint8_t dataRegister; + uint8_t phase[2]; + uint8_t headPos[2]; + bool ioHappened; + + uint32_t currentPos[2]; + WOZ * woz[2]; + + uint8_t cpuDataBus; + uint8_t slSwitch; // Shift/Load soft switch + uint8_t rwSwitch; // Read/Write soft switch + uint8_t readPulse; // Disk read head "pulse" signal + uint8_t pulseClock; // Disk read head bitstream "pulse clock" + uint8_t sequencerState; + uint32_t driveOffTimeout; + uint8_t zeroBitCount; + uint16_t trackLength[2]; + + // And here are some private class variables (to reduce function + // redundancy): + static uint8_t doSector[16]; + static uint8_t poSector[16]; + static uint8_t wozHeader[9]; + static uint8_t wozHeader2[9]; + static uint8_t standardTMAP[141]; + static uint8_t sequencerROM[256]; + static uint8_t bitMask[8]; + static char nameBuf[MAX_PATH]; +}; + +void InstallFloppy(uint8_t slot); +extern FloppyDrive floppyDrive[]; + +#endif // __FLOPPY_H__ + diff --git a/src/gui/diskselector.cpp b/src/gui/diskselector.cpp index d13d9bb..80595ee 100644 --- a/src/gui/diskselector.cpp +++ b/src/gui/diskselector.cpp @@ -3,7 +3,7 @@ // // Floppy disk selector GUI // by James Hammons -// © 2014 Underground Software +// © 2014-2018 Underground Software // // JLH = James Hammons // @@ -13,6 +13,8 @@ // // STILL TO DO: // +// - Fix bug where hovering on scroll image causes it to fly across the screen +// [DONE] // #include "diskselector.h" @@ -20,7 +22,8 @@ #include #include #include -#include "apple2.h" +#include "crc32.h" +#include "floppydrive.h" #include "font10pt.h" #include "gui.h" #include "log.h" @@ -44,8 +47,6 @@ enum { DSS_SHOWING, DSS_HIDING, DSS_SHOWN, DSS_HIDDEN, DSS_LSB_SHOWING, DSS_LSB_ #define DS_WIDTH 402 #define DS_HEIGHT 322 #define SCROLL_HOT_WIDTH 48 -// Need to add logic for left/right scroll buttons (they show when the mouse -// is in the left or right hand portion of the rect). #define DS_XPOS ((VIRTUAL_SCREEN_WIDTH - DS_WIDTH) / 2) #define DS_YPOS ((VIRTUAL_SCREEN_HEIGHT - DS_HEIGHT) / 2) @@ -69,6 +70,24 @@ So, how this will work for multiple columns, where the number of columns is grea */ +// We make provision for sets of 32 or less... +/* +The way the manifests are laid out, we make the assumption that the boot disk of a set is always listed first. Therefore, image[0] will always be the boot disk. +*/ +struct DiskSet +{ + uint8_t num; // # of disks in this set + std::string name; // The name of this disk set +// std::string fullPath; // The path to the containing folder + std::string image[32]; // List of disk images in this set + std::string imgName[32];// List of human readable names of disk images + uint32_t crc[32]; // List of CRC32s of the disk images in the set + uint32_t crcFound[32]; // List of CRC32s actually discovered on filesystem + + DiskSet(): num(0) {} +}; + + // // Struct to hold filenames & full paths to same // @@ -76,6 +95,10 @@ struct FileStruct { std::string image; std::string fullPath; + DiskSet diskSet; + +// FileStruct(): diskSet(NULL) {} +// ~FileStruct() { if (diskSet != NULL) delete diskSet; } // Functor, to presumably make the std::sort go faster bool operator()(const FileStruct & a, const FileStruct & b) const @@ -139,7 +162,9 @@ void DiskSelector::FindDisks(void) WriteLog("GUI (DiskSelector)::FindDisks(): # of columns is %i (%i files)\n", numColumns, fsList.size()); } - +/* +OK, so the way that you can determine if a file is a directory in a cross-platform way is to do an opendir() call on a discovered filename. If it returns NULL, then it's a regular file and not a directory. Though I think the Linux method is more elegant. :-P +*/ // // Find all disks images within path (recursive call does depth first search) // @@ -160,19 +185,63 @@ void DiskSelector::FindDisks(const char * path) char buf[0x10000]; sprintf(buf, "%s/%s", path, ent->d_name); - if ((ent->d_type == DT_REG) && HasLegalExtension(ent->d_name)) + // Cross-platform way to test if it's a directory... + DIR * test = opendir(buf); + +// if ((ent->d_type == DT_REG) && HasLegalExtension(ent->d_name)) + if (test == NULL) { - FileStruct fs; - fs.image = ent->d_name; - fs.fullPath = buf; - fsList.push_back(fs); + if (HasLegalExtension(ent->d_name)) + { + FileStruct fs; + fs.image = ent->d_name; + fs.fullPath = buf; + fsList.push_back(fs); + } } - else if (ent->d_type == DT_DIR) +// else if (ent->d_type == DT_DIR) + else { + // Make sure we close the thing, since it's a bona-fide dir! + closedir(test); + // Only recurse if the directory is not one of the special ones... if ((strcmp(ent->d_name, "..") != 0) && (strcmp(ent->d_name, ".") != 0)) - FindDisks(buf); + { + // Check to see if this is a special directory with a manifest + char buf2[0x10000]; + sprintf(buf2, "%s/manifest.txt", buf); + FILE * fp = fopen(buf2, "r"); + + // No manifest means it's just a regular directory... + if (fp == NULL) + FindDisks(buf); + else + { + // Read the manifest and all that good stuff + FileStruct fs; + ReadManifest(fp, &fs.diskSet); + fclose(fp); + + // Finally, check that the stuff in the manifest is + // actually in the directory... + if (CheckManifest(buf, &fs.diskSet) == true) + { + fs.fullPath = buf; + fs.image = fs.diskSet.name; + fsList.push_back(fs); + } + else + WriteLog("Manifest for '%s' failed check phase.\n", fs.diskSet.name.c_str()); +#if 0 + printf("Name found: \"%s\" (%d)\nDisks:\n", fs.diskSet.name.c_str(), fs.diskSet.num); + for(int i=0; iname = buf; + } + else if (strncmp(line, "disks", 5) == 0) + { + sscanf(line, "disks=%hhd", &ds->num); + } + else if (strncmp(line, "disk", 4) == 0) + { + int n = sscanf(line, "disk=%s %s (%s)", buf, crcbuf, altName); + + if ((n == 2) || (n == 3)) + { + ds->image[disksFound] = buf; + ds->crc[disksFound] = strtoul(crcbuf, NULL, 16); + disksFound++; + + if (n == 3) + ds->imgName[disksFound] = altName; + else + { + // Find the file's extension, if any + char * ext = strrchr(buf, '.'); + + // Kill the disk extension, if it exists + if (ext != NULL) + *ext = 0; + + ds->imgName[disksFound] = buf; + } + } + else + WriteLog("Malformed disk descriptor in manifest at line %d\n", lineNo); + } + } + } + + if (disksFound != ds->num) + WriteLog("Found only %d entries in manifest, expected %hhd\n", disksFound, ds->num); +} + + +bool DiskSelector::CheckManifest(const char * path, DiskSet * ds) +{ + uint8_t found = 0; + + for(int i=0; inum; i++) + { + std::string filename = path; + filename += "/"; + filename += ds->image[i]; + uint32_t size; + uint8_t * buf = ReadFile(filename.c_str(), &size); + + if (buf != NULL) + { + ds->crcFound[i] = CRC32(buf, size); + free(buf); + found++; + + if (ds->crc[i] != ds->crcFound[i]) + { + WriteLog("Warning: Bad CRC32 for '%s'. Expected: %08X, found: %08X\n", ds->image[i], ds->crc[i], ds->crcFound[i]); + } + } + } + + return (found == ds->num ? true : false); +} + + +uint8_t * DiskSelector::ReadFile(const char * filename, uint32_t * size) +{ + FILE * fp = fopen(filename, "r"); + + if (!fp) + return NULL; + + fseek(fp, 0, SEEK_END); + *size = ftell(fp); + fseek(fp, 0, SEEK_SET); + + uint8_t * buffer = (uint8_t *)malloc(*size); + fread(buffer, 1, *size, fp); + fclose(fp); + + return buffer; +} + + bool DiskSelector::HasLegalExtension(const char * name) { // Find the file's extension, if any @@ -194,7 +374,7 @@ bool DiskSelector::HasLegalExtension(const char * name) if ((strcasecmp(ext, ".dsk") == 0) || (strcasecmp(ext, ".do") == 0) || (strcasecmp(ext, ".po") == 0) - || (strcasecmp(ext, ".nib") == 0)) + || (strcasecmp(ext, ".woz") == 0)) return true; return false; @@ -317,6 +497,7 @@ void DiskSelector::DrawCharacter(SDL_Renderer * renderer, int x, int y, uint8_t void DiskSelector::ShowWindow(int drive) { + diskSelectorState = DSS_SHOWN; entered = false; showWindow = true; driveNumber = drive; @@ -325,24 +506,18 @@ void DiskSelector::ShowWindow(int drive) void DiskSelector::MouseDown(int32_t x, int32_t y, uint32_t buttons) { - if (!showWindow) - return; - - if (!entered) + if (!showWindow || !entered) return; if ((diskSelectorState == DSS_LSB_SHOWING) || (diskSelectorState == DSS_LSB_SHOWN)) { - if (colStart > 0) - { - colStart--; - textScrollCount = 21; + colStart--; + textScrollCount = 21; - if (colStart == 0) - { - diskSelectorState = DSS_LSB_HIDING; - dxLeft = -8; - } + if (colStart == 0) + { + diskSelectorState = DSS_LSB_HIDING; + dxLeft = -8; } return; @@ -350,16 +525,13 @@ void DiskSelector::MouseDown(int32_t x, int32_t y, uint32_t buttons) if ((diskSelectorState == DSS_RSB_SHOWING) || (diskSelectorState == DSS_RSB_SHOWN)) { - if (colStart + 3 < numColumns) - { - colStart++; - textScrollCount = -21; + colStart++; + textScrollCount = -21; - if ((colStart + 3) == numColumns) - { - diskSelectorState = DSS_RSB_HIDING; - dxRight = 8; - } + if ((colStart + 3) == numColumns) + { + diskSelectorState = DSS_RSB_HIDING; + dxRight = 8; } return; @@ -367,7 +539,7 @@ void DiskSelector::MouseDown(int32_t x, int32_t y, uint32_t buttons) if (diskSelected != -1) { - floppyDrive.LoadImage(fsList[diskSelected].fullPath.c_str(), driveNumber); + floppyDrive[0].LoadImage(fsList[diskSelected].fullPath.c_str(), driveNumber); } showWindow = false; @@ -395,60 +567,66 @@ void DiskSelector::MouseMove(int32_t x, int32_t y, uint32_t buttons) // Check to see if the DS, since being hovered, is now no longer being // hovered +//N.B.: Should probably make like a 1/2 to 1 second timeout to allow for overshooting the edge of the thing, maybe have the window fade out gradually and let it come back if you enter before it leaves... if (entered && ((x < DS_XPOS) || (x > (DS_XPOS + DS_WIDTH)) || (y < DS_YPOS) || (y > (DS_YPOS + DS_HEIGHT)))) { + diskSelectorState = DSS_HIDDEN; + dxLeft = 0; + dxRight = 0; + rsbPos = DS_WIDTH; + lsbPos = -40; showWindow = false; + refresh = true; return; } - if (entered && (colStart > 0)) + // Bail out if the DS hasn't been entered yet + if (!entered) + return; + +/* +states: ++-----+---------------------+-----+ +| | | | +| | | | ++-----+---------------------+-----+ + ^ ^ ^ + | | x is here and state is DSS_SHOWN + | x is here and state is DSS_LSB_SHOWING or DSS_RSB_SHOWING + x is here and state is DSS_SHOWN + +*/ + if (x < (DS_XPOS + SCROLL_HOT_WIDTH)) { - if (diskSelectorState != DSS_LSB_SHOWN) + if ((colStart > 0) && (diskSelectorState == DSS_SHOWN)) { - if (x < (DS_XPOS + SCROLL_HOT_WIDTH)) - { - diskSelectorState = DSS_LSB_SHOWING; - dxLeft = 8; - } - else - { - diskSelectorState = DSS_LSB_HIDING; - dxLeft = -8; - } - } - else - { - if (x >= (DS_XPOS + SCROLL_HOT_WIDTH)) - { - diskSelectorState = DSS_LSB_HIDING; - dxLeft = -8; - } + diskSelectorState = DSS_LSB_SHOWING; + dxLeft = 8; } } - - if (entered && ((colStart + 3) < numColumns)) + else if (x > (DS_XPOS + DS_WIDTH - SCROLL_HOT_WIDTH)) { - if (diskSelectorState != DSS_RSB_SHOWN) + if (((colStart + 3) < numColumns) && (diskSelectorState == DSS_SHOWN)) { - if (x > (DS_XPOS + DS_WIDTH - SCROLL_HOT_WIDTH)) - { - diskSelectorState = DSS_RSB_SHOWING; - dxRight = -8; - } - else - { - diskSelectorState = DSS_RSB_HIDING; - dxRight = 8; - } + diskSelectorState = DSS_RSB_SHOWING; + dxRight = -8; } - else + } + else + { + // Handle the excluded middle :-P + if ((diskSelectorState == DSS_LSB_SHOWING) + || (diskSelectorState == DSS_LSB_SHOWN)) { - if (x <= (DS_XPOS + DS_WIDTH - SCROLL_HOT_WIDTH)) - { - diskSelectorState = DSS_RSB_HIDING; - dxRight = 8; - } + diskSelectorState = DSS_LSB_HIDING; + dxLeft = -8; + } + else if ((diskSelectorState == DSS_RSB_SHOWING) + || (diskSelectorState == DSS_RSB_SHOWN)) + { + diskSelectorState = DSS_RSB_HIDING; + dxRight = 8; } } diff --git a/src/gui/diskselector.h b/src/gui/diskselector.h index 961e99a..9889172 100644 --- a/src/gui/diskselector.h +++ b/src/gui/diskselector.h @@ -4,6 +4,9 @@ #include #include +class DiskSet; +class FileStruct; + class DiskSelector { public: @@ -14,6 +17,9 @@ class DiskSelector static void Init(SDL_Renderer *); static void FindDisks(); static void FindDisks(const char *); + static void ReadManifest(FILE *, DiskSet *); + static bool CheckManifest(const char *, DiskSet *); + static uint8_t * ReadFile(const char *, uint32_t *); static bool HasLegalExtension(const char *); static void DrawFilenames(SDL_Renderer *); static void DrawCharacter(SDL_Renderer *, int, int, uint8_t, bool inv=false); diff --git a/src/gui/font10pt.cpp b/src/gui/font10pt.cpp index 1ce4121..8a4f38d 100644 --- a/src/gui/font10pt.cpp +++ b/src/gui/font10pt.cpp @@ -6,1156 +6,1172 @@ #include uint8_t font10pt[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, - 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, - 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, - 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, - 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, - 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x15, 0xAF, 0x06, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x02, 0xAE, 0x44, 0x42, 0xA5, 0x03, - 0x00, 0x9A, 0x39, 0x34, 0x97, 0x00, - 0x00, 0x7A, 0x2C, 0x25, 0x7A, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x6D, 0x34, 0x87, 0x23, - 0x00, 0x03, 0xA9, 0x18, 0xB2, 0x06, - 0x26, 0xC6, 0xC4, 0xD3, 0xC0, 0x85, - 0x00, 0x2A, 0x74, 0x40, 0x5D, 0x00, - 0x00, 0x41, 0x5A, 0x68, 0x35, 0x00, - 0x7C, 0xDC, 0xB3, 0xE3, 0xAD, 0x30, - 0x03, 0xA9, 0x17, 0xAF, 0x06, 0x00, - 0x13, 0x87, 0x2C, 0x79, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x18, 0xDE, 0x39, 0x06, 0x00, - 0x05, 0xBA, 0xFD, 0x7B, 0x81, 0x02, - 0x16, 0xF5, 0xB9, 0x0A, 0x00, 0x13, - 0x11, 0xDA, 0xB9, 0x0A, 0x00, 0x13, - 0x00, 0x82, 0xC4, 0x2F, 0x00, 0x01, - 0x00, 0x18, 0xF0, 0xF2, 0x5B, 0x00, - 0x00, 0x16, 0xD9, 0x3D, 0xAA, 0x07, - 0x0C, 0x23, 0xD9, 0x51, 0xA0, 0x05, - 0x21, 0xC5, 0xFF, 0xA6, 0x26, 0x07, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x1A, 0x50, - 0x6A, 0xD4, 0x4F, 0x02, 0x9E, 0x54, - 0xDE, 0x3C, 0xD6, 0x55, 0x99, 0x03, - 0xDD, 0x36, 0xE4, 0xDA, 0x2A, 0x00, - 0x6B, 0xD5, 0xC7, 0x80, 0x00, 0x00, - 0x00, 0x18, 0xD5, 0x85, 0xD2, 0x4D, - 0x01, 0x90, 0x70, 0xDA, 0x3D, 0xA6, - 0x32, 0x9E, 0x1B, 0xDB, 0x32, 0xD7, - 0xB0, 0x31, 0x01, 0x79, 0xE4, 0x60, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x01, 0x00, 0x5A, 0xD2, 0x51, 0x00, - 0x00, 0x0C, 0xD5, 0x3C, 0xD5, 0x06, - 0x00, 0x13, 0xDE, 0x31, 0xD5, 0x06, - 0x00, 0x07, 0xC0, 0xB5, 0x70, 0x00, - 0x00, 0x19, 0xC6, 0x98, 0x05, 0x00, - 0x07, 0xB8, 0x6D, 0xD4, 0x0D, 0x1D, - 0x20, 0xDE, 0x0B, 0x8B, 0x87, 0x64, - 0x13, 0xDC, 0x2F, 0x15, 0xDA, 0xFC, - 0x00, 0x48, 0xDD, 0xA9, 0x77, 0xF7, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x96, 0x9B, 0x00, 0x00, - 0x00, 0x00, 0x76, 0x81, 0x00, 0x00, - 0x00, 0x00, 0x56, 0x65, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xD5, 0x07, 0x00, 0x00, 0x00, 0x00, - 0x8E, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x25, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x30, 0x3D, - 0x00, 0x00, 0x02, 0x77, 0x93, 0x2D, - 0x00, 0x00, 0x49, 0x94, 0x04, 0x00, - 0x00, 0x03, 0xAD, 0x32, 0x00, 0x00, - 0x00, 0x10, 0xDE, 0x0D, 0x00, 0x00, - 0x00, 0x18, 0xDC, 0x08, 0x00, 0x00, - 0x00, 0x11, 0xDE, 0x0D, 0x00, 0x00, - 0x00, 0x04, 0xB0, 0x2F, 0x00, 0x00, - 0x00, 0x00, 0x51, 0x8E, 0x03, 0x00, - 0x00, 0x00, 0x02, 0x85, 0x89, 0x23, - 0x00, 0x00, 0x00, 0x00, 0x3E, 0x46, - - 0x4E, 0x23, 0x00, 0x00, 0x00, 0x00, - 0x3C, 0xB5, 0x5A, 0x00, 0x00, 0x00, - 0x00, 0x0D, 0xC9, 0x28, 0x00, 0x00, - 0x00, 0x00, 0x59, 0x86, 0x00, 0x00, - 0x00, 0x00, 0x28, 0xA4, 0x06, 0x00, - 0x00, 0x00, 0x1C, 0xD9, 0x07, 0x00, - 0x00, 0x00, 0x27, 0xA3, 0x06, 0x00, - 0x00, 0x00, 0x54, 0x8A, 0x00, 0x00, - 0x00, 0x09, 0xC4, 0x2C, 0x00, 0x00, - 0x30, 0xAA, 0x64, 0x00, 0x00, 0x00, - 0x5A, 0x2F, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x4F, 0x59, 0x00, 0x00, - 0x07, 0x5B, 0x51, 0x5A, 0x56, 0x09, - 0x10, 0x8A, 0x52, 0x4A, 0x7D, 0x14, - 0x00, 0x18, 0xA5, 0x9F, 0x1E, 0x00, - 0x00, 0x4A, 0x4A, 0x42, 0x51, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, - 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, - 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, - 0x2F, 0xD1, 0xCB, 0xFE, 0xAA, 0x9F, - 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, - 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x16, 0xBA, 0x08, 0x00, 0x00, - 0x00, 0x1B, 0xD7, 0x07, 0x00, 0x00, - 0x00, 0x03, 0x8A, 0x04, 0x00, 0x00, - 0x00, 0x0C, 0x25, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x08, 0xAD, 0xD7, 0xD7, 0x9E, 0x0A, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x16, 0xBA, 0x08, 0x00, 0x00, - 0x00, 0x1B, 0xDB, 0x0A, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x4F, 0x66, - 0x00, 0x00, 0x00, 0x05, 0xB1, 0x13, - 0x00, 0x00, 0x00, 0x36, 0x76, 0x00, - 0x00, 0x00, 0x02, 0x96, 0x22, 0x00, - 0x00, 0x00, 0x26, 0x83, 0x01, 0x00, - 0x00, 0x00, 0x85, 0x2D, 0x00, 0x00, - 0x00, 0x17, 0xB3, 0x03, 0x00, 0x00, - 0x00, 0x70, 0x3A, 0x00, 0x00, 0x00, - 0x0F, 0xB8, 0x06, 0x00, 0x00, 0x00, - 0x5A, 0x5C, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x08, 0x8B, 0xD3, 0x6C, 0x02, - 0x00, 0x6F, 0x71, 0x05, 0x94, 0x3C, - 0x06, 0xCA, 0x1A, 0x00, 0x38, 0x93, - 0x12, 0xDD, 0x0C, 0x00, 0x24, 0xD2, - 0x19, 0xDB, 0x08, 0x00, 0x1C, 0xD9, - 0x13, 0xDE, 0x0C, 0x00, 0x23, 0xD4, - 0x07, 0xCE, 0x18, 0x00, 0x35, 0x97, - 0x00, 0x7C, 0x66, 0x01, 0x88, 0x59, - 0x00, 0x0D, 0xA4, 0xAD, 0x80, 0x05, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, - 0x03, 0x56, 0xB0, 0xB5, 0x0A, 0x00, - 0x07, 0x4F, 0x36, 0xDB, 0x0A, 0x00, - 0x06, 0x00, 0x1B, 0xDB, 0x0A, 0x00, - 0x08, 0x00, 0x1B, 0xDB, 0x0A, 0x00, - 0x07, 0x00, 0x1B, 0xDB, 0x0A, 0x00, - 0x01, 0x00, 0x1B, 0xDB, 0x0A, 0x00, - 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, - 0x0C, 0xB4, 0xCE, 0xFF, 0xAD, 0x8F, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x04, 0x88, 0xC5, 0x9E, 0x25, 0x00, - 0x02, 0x2F, 0x00, 0x50, 0xA3, 0x04, - 0x00, 0x00, 0x00, 0x23, 0xD8, 0x07, - 0x00, 0x00, 0x00, 0x6D, 0x83, 0x00, - 0x00, 0x00, 0x37, 0x97, 0x0D, 0x00, - 0x00, 0x1D, 0xC2, 0x10, 0x00, 0x00, - 0x03, 0x9F, 0x37, 0x00, 0x00, 0x00, - 0x1E, 0xF5, 0xAF, 0xD7, 0x91, 0x05, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x07, 0xA1, 0xC9, 0xA1, 0x2A, 0x00, - 0x03, 0x21, 0x01, 0x51, 0xA6, 0x04, - 0x00, 0x00, 0x00, 0x21, 0xD6, 0x07, - 0x00, 0x00, 0x02, 0x76, 0x70, 0x00, - 0x00, 0x4B, 0xD6, 0xAA, 0x0D, 0x00, - 0x00, 0x00, 0x02, 0x72, 0x8F, 0x01, - 0x00, 0x00, 0x00, 0x21, 0xD9, 0x07, - 0x02, 0x04, 0x00, 0x57, 0x9E, 0x03, - 0x15, 0xC3, 0xCD, 0xA2, 0x21, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x5C, 0xB7, 0x0A, - 0x00, 0x00, 0x14, 0xC7, 0xB6, 0x0A, - 0x00, 0x01, 0x83, 0x59, 0xDB, 0x0A, - 0x00, 0x2E, 0x85, 0x25, 0xDB, 0x0A, - 0x05, 0xB1, 0x20, 0x1B, 0xDB, 0x0A, - 0x17, 0xD8, 0xA6, 0xCB, 0xFE, 0x95, - 0x00, 0x00, 0x00, 0x1B, 0xDB, 0x0A, - 0x00, 0x00, 0x00, 0x1B, 0xDB, 0x0A, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x17, 0xCB, 0xA8, 0xD3, 0x81, 0x01, - 0x1B, 0xDB, 0x0A, 0x00, 0x00, 0x00, - 0x1B, 0xDB, 0x0A, 0x00, 0x00, 0x00, - 0x18, 0xCE, 0xAE, 0x7A, 0x0B, 0x00, - 0x00, 0x00, 0x08, 0x81, 0x8E, 0x01, - 0x05, 0x00, 0x00, 0x21, 0xD8, 0x09, - 0x01, 0x01, 0x00, 0x5F, 0x9B, 0x02, - 0x15, 0xBD, 0xCD, 0x9E, 0x1C, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x01, 0x5F, 0xC1, 0xA6, 0x4F, - 0x00, 0x4C, 0xA2, 0x0D, 0x09, 0x21, - 0x04, 0xB2, 0x39, 0x00, 0x00, 0x00, - 0x0E, 0xE2, 0x15, 0x00, 0x00, 0x00, - 0x18, 0xE1, 0x7B, 0xC0, 0x92, 0x19, - 0x16, 0xEC, 0x35, 0x01, 0x6D, 0x9B, - 0x09, 0xCA, 0x0B, 0x00, 0x21, 0xD9, - 0x00, 0x89, 0x35, 0x00, 0x52, 0x95, - 0x00, 0x14, 0xAB, 0x9F, 0x9E, 0x1B, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x09, 0xAF, 0xD3, 0xC5, 0xAB, 0x0B, - 0x00, 0x00, 0x00, 0x20, 0x82, 0x01, - 0x00, 0x00, 0x00, 0x7E, 0x2C, 0x00, - 0x00, 0x00, 0x15, 0xB5, 0x03, 0x00, - 0x02, 0x00, 0x6E, 0x56, 0x00, 0x00, - 0x07, 0x0C, 0xCB, 0x13, 0x00, 0x00, - 0x02, 0x41, 0x99, 0x01, 0x00, 0x00, - 0x00, 0x82, 0x72, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x48, 0xBE, 0xA9, 0x4A, 0x00, - 0x0D, 0xD9, 0x19, 0x39, 0xAB, 0x06, - 0x15, 0xE3, 0x15, 0x2A, 0xA2, 0x05, - 0x02, 0x8E, 0x9A, 0xB5, 0x31, 0x00, - 0x00, 0x4C, 0xD3, 0xAA, 0x16, 0x00, - 0x07, 0xCD, 0x23, 0x93, 0x96, 0x01, - 0x18, 0xDD, 0x0B, 0x26, 0xDB, 0x09, - 0x0D, 0xDD, 0x25, 0x38, 0x9C, 0x03, - 0x00, 0x54, 0xDE, 0xA5, 0x26, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x17, 0xA3, 0xD8, 0x72, 0x04, - 0x02, 0xA1, 0x56, 0x03, 0x88, 0x5A, - 0x12, 0xDB, 0x0C, 0x00, 0x27, 0x94, - 0x16, 0xE1, 0x0D, 0x00, 0x22, 0xD5, - 0x05, 0xB6, 0x5F, 0x02, 0x72, 0xB6, - 0x00, 0x20, 0xAE, 0xA1, 0x5E, 0xA4, - 0x00, 0x00, 0x00, 0x00, 0x40, 0x8C, - 0x00, 0x0D, 0x00, 0x0A, 0xAE, 0x31, - 0x00, 0x7E, 0xAD, 0xDC, 0x5B, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x07, 0x1B, 0xDB, 0x0A, 0x00, 0x00, - 0x08, 0x16, 0xBA, 0x08, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x16, 0xBA, 0x08, 0x00, 0x00, - 0x00, 0x1B, 0xDB, 0x0A, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x1B, 0xDB, 0x0A, 0x00, 0x00, - 0x00, 0x16, 0xBA, 0x08, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x16, 0xBA, 0x08, 0x00, 0x00, - 0x00, 0x1B, 0xD7, 0x07, 0x00, 0x00, - 0x00, 0x1B, 0x96, 0x04, 0x00, 0x00, - 0x00, 0x0C, 0x25, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x06, 0x65, - 0x00, 0x00, 0x02, 0x50, 0xCD, 0x62, - 0x00, 0x37, 0xB2, 0x79, 0x10, 0x00, - 0x06, 0x77, 0xA8, 0x41, 0x00, 0x00, - 0x00, 0x00, 0x17, 0x92, 0x95, 0x2E, - 0x00, 0x00, 0x00, 0x00, 0x2B, 0xA8, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x00, 0x07, - 0x03, 0x00, 0x00, 0x00, 0x00, 0x02, - 0x68, 0xD2, 0xD3, 0xD3, 0xD3, 0x6D, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x6A, 0xD6, 0xD7, 0xD7, 0xD7, 0x6F, - 0x0B, 0x00, 0x00, 0x00, 0x00, 0x0A, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x6A, 0x06, 0x00, 0x00, 0x00, 0x00, - 0x64, 0xD0, 0x50, 0x02, 0x00, 0x00, - 0x00, 0x0F, 0x81, 0x9E, 0x3A, 0x00, - 0x00, 0x00, 0x3F, 0xC0, 0x72, 0x06, - 0x2B, 0xA6, 0x86, 0x17, 0x00, 0x00, - 0xA9, 0x2F, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x10, 0xA9, 0xAC, 0xA2, 0x42, 0x00, - 0x1A, 0xD9, 0x08, 0x39, 0xAA, 0x06, - 0x00, 0x00, 0x00, 0x30, 0xA1, 0x05, - 0x00, 0x00, 0x13, 0xC7, 0x33, 0x00, - 0x00, 0x02, 0x9E, 0x54, 0x00, 0x00, - 0x00, 0x11, 0xD9, 0x0C, 0x00, 0x00, - 0x00, 0x02, 0x1A, 0x00, 0x00, 0x00, - 0x00, 0x12, 0xAD, 0x06, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x4F, 0xBB, 0xA6, 0x3D, - 0x00, 0x37, 0xA1, 0x0E, 0x51, 0xA5, - 0x02, 0xA8, 0x3C, 0x4A, 0xCA, 0xB7, - 0x0D, 0xDD, 0x1E, 0xCE, 0x43, 0xDB, - 0x18, 0xDC, 0x25, 0xDD, 0x35, 0xE5, - 0x15, 0xDE, 0x24, 0xDE, 0x75, 0xB3, - 0x07, 0xD4, 0x2A, 0x93, 0x58, 0xDC, - 0x00, 0x7E, 0x89, 0x02, 0x0E, 0x01, - 0x00, 0x0C, 0xA3, 0xB5, 0x85, 0x08, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x08, 0x00, 0x95, 0x95, 0x00, 0x00, - 0x0A, 0x10, 0xBA, 0xD0, 0x14, 0x00, - 0x0A, 0x4A, 0x57, 0x77, 0x58, 0x00, - 0x0B, 0x9A, 0x13, 0x25, 0x92, 0x02, - 0x7A, 0xE1, 0xA8, 0xC6, 0xEF, 0x18, - 0x56, 0x3A, 0x00, 0x00, 0x6C, 0x65, - 0xAC, 0x14, 0x00, 0x00, 0x2B, 0x9F, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x1B, 0xF3, 0xA0, 0xE8, 0x62, 0x00, - 0x1B, 0xDB, 0x0A, 0x2B, 0xDC, 0x07, - 0x1B, 0xDB, 0x0B, 0x4F, 0x93, 0x02, - 0x1B, 0xF3, 0xA1, 0xBB, 0x4D, 0x02, - 0x1B, 0xDB, 0x0A, 0x09, 0x7B, 0x8A, - 0x1C, 0xDB, 0x0A, 0x00, 0x2B, 0xD9, - 0x20, 0xF3, 0xAD, 0xCC, 0xB0, 0x50, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x07, 0x80, 0xE2, 0xCD, 0x93, - 0x00, 0x80, 0x8D, 0x05, 0x00, 0x12, - 0x0C, 0xDC, 0x18, 0x00, 0x00, 0x00, - 0x18, 0xDC, 0x0B, 0x00, 0x00, 0x00, - 0x10, 0xDE, 0x19, 0x00, 0x00, 0x00, - 0x09, 0x86, 0x92, 0x09, 0x00, 0x06, - 0x00, 0x08, 0x86, 0xE6, 0xA9, 0x8D, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x21, 0xF3, 0xAD, 0xE1, 0x81, 0x0A, - 0x20, 0xDB, 0x0A, 0x04, 0x91, 0x7D, - 0x1B, 0xDB, 0x0A, 0x00, 0x2C, 0xA6, - 0x1B, 0xDB, 0x0A, 0x00, 0x1C, 0xD9, - 0x1B, 0xDB, 0x0A, 0x00, 0x2C, 0xA1, - 0x1C, 0xDB, 0x0A, 0x06, 0x93, 0x68, - 0x21, 0xF3, 0x9F, 0xE3, 0x77, 0x04, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x1B, 0xF3, 0xAD, 0xD7, 0xA4, 0x23, - 0x1D, 0xDB, 0x0A, 0x00, 0x00, 0x00, - 0x23, 0xDB, 0x0A, 0x00, 0x00, 0x00, - 0x26, 0xF3, 0xAA, 0xD3, 0x7D, 0x00, - 0x20, 0xDB, 0x0A, 0x00, 0x00, 0x00, - 0x1C, 0xDB, 0x0A, 0x00, 0x00, 0x00, - 0x1B, 0xF3, 0xAD, 0xD7, 0xD6, 0x50, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x1B, 0xF3, 0xAD, 0xD7, 0xD6, 0x50, - 0x1B, 0xDB, 0x0A, 0x00, 0x00, 0x00, - 0x1B, 0xDB, 0x0A, 0x00, 0x00, 0x00, - 0x1B, 0xF3, 0xAA, 0xD3, 0x91, 0x06, - 0x1B, 0xDB, 0x0A, 0x00, 0x00, 0x00, - 0x1B, 0xDB, 0x0A, 0x00, 0x00, 0x00, - 0x1B, 0xDB, 0x0A, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x07, 0x7F, 0xDC, 0xCA, 0x95, - 0x00, 0x80, 0x8A, 0x04, 0x00, 0x0A, - 0x0C, 0xDC, 0x18, 0x00, 0x00, 0x00, - 0x18, 0xDC, 0x0B, 0x23, 0xBE, 0xA6, - 0x0D, 0xDD, 0x19, 0x00, 0x1B, 0xDB, - 0x00, 0x85, 0x91, 0x08, 0x1B, 0xDB, - 0x00, 0x08, 0x85, 0xE4, 0x9C, 0x99, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x22, 0xDB, 0x0A, 0x00, 0x1B, 0xDB, - 0x1D, 0xDB, 0x0A, 0x00, 0x1B, 0xDB, - 0x1B, 0xDB, 0x0A, 0x00, 0x1B, 0xDB, - 0x25, 0xF3, 0xAA, 0xD3, 0xCB, 0xB8, - 0x27, 0xDB, 0x0A, 0x00, 0x1B, 0xDB, - 0x27, 0xDB, 0x0A, 0x00, 0x1B, 0xDB, - 0x22, 0xDB, 0x0A, 0x00, 0x1B, 0xDB, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x0E, 0x92, 0xCE, 0xFF, 0xAD, 0x71, - 0x0A, 0x00, 0x1B, 0xDB, 0x0A, 0x00, - 0x0A, 0x00, 0x1B, 0xDB, 0x0A, 0x00, - 0x0A, 0x00, 0x1B, 0xDB, 0x0A, 0x00, - 0x0A, 0x00, 0x1B, 0xDB, 0x0A, 0x00, - 0x0A, 0x00, 0x1B, 0xDB, 0x0A, 0x00, - 0x0E, 0x92, 0xCE, 0xFF, 0xAD, 0x71, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x1F, 0xBC, 0xCE, 0xB9, 0x0A, - 0x00, 0x00, 0x00, 0x1B, 0xDB, 0x0A, - 0x00, 0x00, 0x00, 0x1B, 0xDB, 0x0A, - 0x00, 0x00, 0x00, 0x1B, 0xDB, 0x0A, - 0x00, 0x00, 0x00, 0x1C, 0xD8, 0x07, - 0x00, 0x07, 0x00, 0x39, 0xA0, 0x03, - 0x00, 0x71, 0xCA, 0xAD, 0x2E, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x1B, 0xDB, 0x0A, 0x09, 0xB7, 0x29, - 0x1B, 0xDB, 0x0B, 0x84, 0x59, 0x00, - 0x1B, 0xDB, 0x69, 0x7F, 0x02, 0x00, - 0x1B, 0xE7, 0xE5, 0x31, 0x00, 0x00, - 0x1B, 0xDB, 0x3D, 0xD8, 0x13, 0x00, - 0x1B, 0xDB, 0x0B, 0x5A, 0x9C, 0x07, - 0x1B, 0xDB, 0x0A, 0x01, 0x80, 0x82, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x1B, 0xDB, 0x0A, 0x00, 0x00, 0x00, - 0x1B, 0xDB, 0x0A, 0x00, 0x00, 0x00, - 0x1B, 0xDB, 0x0A, 0x00, 0x00, 0x00, - 0x1B, 0xDB, 0x0A, 0x00, 0x00, 0x00, - 0x1B, 0xDB, 0x0A, 0x00, 0x00, 0x00, - 0x1B, 0xDB, 0x0A, 0x00, 0x00, 0x00, - 0x23, 0xF3, 0xAD, 0xD7, 0xA8, 0x2F, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x1B, 0xF6, 0x69, 0x00, 0x85, 0xB9, - 0x1B, 0xEA, 0x8D, 0x07, 0xA7, 0xB3, - 0x1B, 0xDE, 0xAA, 0x28, 0x71, 0xDD, - 0x1B, 0xDB, 0x6D, 0x6B, 0x51, 0xDB, - 0x1B, 0xDB, 0x2E, 0xE1, 0x2D, 0xDB, - 0x1B, 0xDB, 0x0F, 0x5F, 0x24, 0xDB, - 0x1B, 0xDB, 0x0A, 0x00, 0x1B, 0xDB, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x27, 0xF5, 0x40, 0x00, 0x1B, 0xDB, - 0x27, 0xF6, 0xB3, 0x09, 0x1B, 0xDB, - 0x27, 0xE1, 0xB9, 0x69, 0x1C, 0xDB, - 0x27, 0xDB, 0x2E, 0xE2, 0x36, 0xDB, - 0x27, 0xDB, 0x0A, 0x89, 0x9A, 0xDF, - 0x27, 0xDB, 0x0A, 0x17, 0xDB, 0xB9, - 0x27, 0xDB, 0x0A, 0x00, 0x6D, 0xBA, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x0A, 0x1B, 0xB4, 0xB0, 0x8F, 0x0C, - 0x0E, 0xA1, 0x5A, 0x00, 0x78, 0x79, - 0x1F, 0xDE, 0x0E, 0x00, 0x2A, 0xA4, - 0x26, 0xDC, 0x08, 0x00, 0x1C, 0xD9, - 0x1F, 0xDE, 0x0E, 0x00, 0x2A, 0xA4, - 0x0E, 0xA0, 0x59, 0x00, 0x77, 0x7A, - 0x0A, 0x1B, 0xB5, 0x9F, 0x91, 0x0C, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x1B, 0xF3, 0xAD, 0xCB, 0xB3, 0x53, - 0x1B, 0xDB, 0x0A, 0x00, 0x31, 0xDA, - 0x1B, 0xDB, 0x0A, 0x02, 0x62, 0x9B, - 0x1B, 0xF3, 0xAA, 0xA6, 0x7F, 0x14, - 0x1B, 0xDB, 0x0A, 0x00, 0x00, 0x00, - 0x1B, 0xDB, 0x0A, 0x00, 0x00, 0x00, - 0x1B, 0xDB, 0x0A, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x1B, 0xB4, 0xB0, 0x8F, 0x0C, - 0x0B, 0xA1, 0x5A, 0x00, 0x78, 0x79, - 0x14, 0xDE, 0x0E, 0x00, 0x2A, 0xA4, - 0x19, 0xDC, 0x08, 0x00, 0x1C, 0xD9, - 0x10, 0xDD, 0x0E, 0x00, 0x2A, 0xA3, - 0x02, 0x9F, 0x59, 0x00, 0x77, 0x76, - 0x00, 0x1B, 0xB8, 0xD6, 0xA3, 0x0B, - 0x00, 0x00, 0x00, 0x0D, 0xA9, 0x88, - 0x00, 0x00, 0x00, 0x00, 0x05, 0x52, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x1B, 0xF3, 0x9F, 0xE9, 0x65, 0x00, - 0x1D, 0xDB, 0x0A, 0x2A, 0xDB, 0x07, - 0x22, 0xDB, 0x0B, 0x57, 0x95, 0x02, - 0x26, 0xF3, 0xD5, 0xAB, 0x0F, 0x00, - 0x21, 0xDB, 0x17, 0xCC, 0x23, 0x00, - 0x1C, 0xDB, 0x0A, 0x4E, 0x9A, 0x04, - 0x1B, 0xDB, 0x0A, 0x04, 0xA8, 0x61, - 0x0D, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x01, 0x65, 0xDC, 0xC9, 0xAB, 0x32, - 0x13, 0xE0, 0x13, 0x00, 0x05, 0x0C, - 0x0C, 0xCC, 0x73, 0x12, 0x00, 0x00, - 0x00, 0x1D, 0x92, 0xF2, 0x9B, 0x22, - 0x00, 0x00, 0x00, 0x06, 0x72, 0xA8, - 0x0B, 0x1E, 0x00, 0x00, 0x3A, 0xA4, - 0x19, 0xB6, 0xB0, 0xCA, 0xA0, 0x27, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x5D, 0xD6, 0xCE, 0xFF, 0xAD, 0xD6, - 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, - 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, - 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, - 0x05, 0x00, 0x1B, 0xDB, 0x0A, 0x00, - 0x05, 0x00, 0x1B, 0xDB, 0x0A, 0x00, - 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x54, 0xDB, 0x0A, 0x00, 0x1B, 0xE1, - 0x1B, 0xDB, 0x0A, 0x00, 0x1B, 0xDB, - 0x1B, 0xDB, 0x0A, 0x00, 0x1B, 0xDB, - 0x1B, 0xDB, 0x0A, 0x00, 0x1B, 0xDB, - 0x18, 0xDD, 0x0B, 0x00, 0x21, 0xD6, - 0x07, 0xD3, 0x2E, 0x00, 0x56, 0x97, - 0x00, 0x3F, 0xC6, 0x9C, 0xA0, 0x1E, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xC0, 0x36, 0x00, 0x00, 0x15, 0xC4, - 0x70, 0x8B, 0x00, 0x00, 0x5B, 0x64, - 0x24, 0xDB, 0x11, 0x04, 0xB4, 0x18, - 0x0B, 0xA3, 0x42, 0x24, 0x90, 0x02, - 0x07, 0x51, 0x9A, 0x7B, 0x56, 0x00, - 0x01, 0x12, 0xD5, 0xB1, 0x13, 0x00, - 0x00, 0x01, 0x9C, 0x93, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xC7, 0x0C, 0x00, 0x00, 0x06, 0xAD, - 0x9D, 0x1A, 0x36, 0x41, 0x0E, 0xAD, - 0x83, 0x32, 0x93, 0x9E, 0x28, 0x75, - 0x62, 0x5C, 0xA7, 0xC9, 0x4E, 0x5D, - 0x3C, 0x83, 0x84, 0x94, 0x69, 0x35, - 0x28, 0xE3, 0x65, 0x61, 0xAF, 0x24, - 0x13, 0xEF, 0x32, 0x2F, 0xED, 0x0D, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x6E, 0x99, 0x04, 0x00, 0x65, 0x6E, - 0x07, 0xA8, 0x5D, 0x29, 0x93, 0x07, - 0x00, 0x20, 0xE1, 0xD0, 0x23, 0x00, - 0x00, 0x00, 0x98, 0xA2, 0x03, 0x00, - 0x00, 0x32, 0x95, 0xBE, 0x55, 0x00, - 0x0E, 0xBF, 0x16, 0x2A, 0xDD, 0x13, - 0x85, 0x54, 0x00, 0x00, 0x74, 0x8B, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x2F, 0xD9, 0x0E, 0x00, 0x06, 0xB6, - 0x01, 0x8D, 0x72, 0x00, 0x61, 0x72, - 0x00, 0x17, 0xDB, 0x3C, 0xC9, 0x0E, - 0x00, 0x00, 0x6C, 0xFB, 0x3D, 0x00, - 0x00, 0x00, 0x1B, 0xDC, 0x08, 0x00, - 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, - 0x02, 0x00, 0x1B, 0xDB, 0x0A, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x27, 0x8E, 0xD7, 0xD7, 0xCF, 0xC0, - 0x00, 0x00, 0x00, 0x01, 0x83, 0x72, - 0x00, 0x00, 0x00, 0x49, 0x9B, 0x07, - 0x00, 0x00, 0x1B, 0xD3, 0x20, 0x00, - 0x00, 0x05, 0xA6, 0x53, 0x00, 0x00, - 0x00, 0x6F, 0x84, 0x01, 0x00, 0x00, - 0x0B, 0xDA, 0xB4, 0xD7, 0xD7, 0xA0, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x1B, 0xF3, 0xAD, 0xA1, 0x14, - 0x00, 0x1B, 0xDB, 0x0A, 0x00, 0x00, - 0x0C, 0x1B, 0xDB, 0x0A, 0x00, 0x00, - 0x00, 0x1B, 0xDB, 0x0A, 0x00, 0x00, - 0x00, 0x1B, 0xDB, 0x0A, 0x00, 0x00, - 0x00, 0x1B, 0xDB, 0x0A, 0x00, 0x00, - 0x00, 0x1B, 0xDB, 0x0A, 0x00, 0x00, - 0x00, 0x1B, 0xDB, 0x0A, 0x00, 0x00, - 0x10, 0x1B, 0xDB, 0x0A, 0x00, 0x00, - 0x00, 0x17, 0xCB, 0xA8, 0x9E, 0x13, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x5A, 0x5C, 0x00, 0x00, 0x00, 0x00, - 0x0F, 0xB8, 0x06, 0x00, 0x00, 0x00, - 0x00, 0x71, 0x39, 0x00, 0x00, 0x00, - 0x00, 0x17, 0xB2, 0x03, 0x00, 0x00, - 0x00, 0x00, 0x85, 0x2C, 0x00, 0x00, - 0x00, 0x00, 0x26, 0x82, 0x01, 0x00, - 0x00, 0x00, 0x02, 0x96, 0x19, 0x00, - 0x00, 0x00, 0x00, 0x36, 0x74, 0x00, - 0x00, 0x00, 0x00, 0x05, 0xB0, 0x12, - 0x00, 0x00, 0x00, 0x00, 0x4F, 0x62, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x2B, 0xC2, 0xCE, 0xB9, 0x0A, 0x00, - 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, - 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, - 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, - 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, - 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, - 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, - 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, - 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, - 0x2B, 0xBE, 0xC8, 0xA6, 0x07, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x05, 0x05, 0x00, 0x00, - 0x00, 0x00, 0x4B, 0x57, 0x00, 0x00, - 0x00, 0x03, 0xA9, 0xA1, 0x04, 0x00, - 0x00, 0x24, 0x87, 0x8C, 0x2B, 0x00, - 0x00, 0x7C, 0x33, 0x2D, 0x7C, 0x00, - 0x0E, 0xB9, 0x06, 0x05, 0xB0, 0x12, - 0x51, 0x63, 0x00, 0x00, 0x57, 0x5B, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xB2, 0xD7, 0xD7, 0xD7, 0xD7, 0x9F, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x03, 0x61, 0x7A, 0x08, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x67, 0xC0, 0xE9, 0x72, 0x00, - 0x00, 0x0D, 0x00, 0x25, 0xD9, 0x07, - 0x00, 0x37, 0xB5, 0xCE, 0xB8, 0x0A, - 0x0B, 0xD8, 0x2C, 0x1B, 0xDB, 0x0A, - 0x16, 0xE1, 0x13, 0x3C, 0xE7, 0x0B, - 0x02, 0x87, 0xB1, 0x7A, 0xAC, 0x85, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x1B, 0xDB, 0x0A, 0x00, 0x00, 0x00, - 0x1B, 0xDB, 0x0A, 0x00, 0x00, 0x00, - 0x1B, 0xDB, 0x0A, 0x00, 0x00, 0x00, - 0x1B, 0xDF, 0x81, 0xC5, 0xAC, 0x24, - 0x1B, 0xF0, 0x52, 0x00, 0x56, 0x99, - 0x1B, 0xDB, 0x0A, 0x00, 0x22, 0xD9, - 0x1B, 0xDB, 0x0A, 0x00, 0x24, 0xD5, - 0x1B, 0xE9, 0x29, 0x00, 0x6B, 0x84, - 0x24, 0xD4, 0x9F, 0xCA, 0x98, 0x0F, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x20, 0xB2, 0xAF, 0xDA, 0x38, - 0x08, 0xB3, 0x5E, 0x00, 0x00, 0x06, - 0x21, 0xDF, 0x0C, 0x00, 0x00, 0x00, - 0x1F, 0xDF, 0x0C, 0x00, 0x00, 0x00, - 0x06, 0xB4, 0x5E, 0x00, 0x00, 0x05, - 0x00, 0x22, 0xB6, 0xB0, 0xD5, 0x36, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x1B, 0xDB, - 0x00, 0x00, 0x00, 0x00, 0x1B, 0xDB, - 0x00, 0x00, 0x00, 0x00, 0x1B, 0xDB, - 0x00, 0x24, 0xBE, 0xAC, 0x7E, 0xE2, - 0x04, 0xAE, 0x52, 0x00, 0x4E, 0xE4, - 0x13, 0xDF, 0x0C, 0x00, 0x1B, 0xDB, - 0x18, 0xDF, 0x09, 0x00, 0x1B, 0xDB, - 0x07, 0xD4, 0x2E, 0x01, 0x6F, 0xB7, - 0x00, 0x46, 0xE2, 0xA5, 0x62, 0xDD, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x0A, 0x18, 0xA8, 0xC9, 0xAA, 0x2D, - 0x0F, 0x9F, 0x2B, 0x00, 0x33, 0x9D, - 0x21, 0xEE, 0xAA, 0xD3, 0xC8, 0xA5, - 0x23, 0xE0, 0x0D, 0x00, 0x00, 0x00, - 0x0E, 0xB4, 0x61, 0x00, 0x00, 0x13, - 0x0A, 0x1D, 0xAC, 0xAF, 0xCA, 0x91, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x69, 0xE3, 0x9B, 0x7C, - 0x00, 0x10, 0xE0, 0x18, 0x00, 0x02, - 0x00, 0x1A, 0xDB, 0x08, 0x00, 0x00, - 0x67, 0xCE, 0xFF, 0xAD, 0xD6, 0x58, - 0x03, 0x1B, 0xDB, 0x0A, 0x00, 0x00, - 0x07, 0x1B, 0xDB, 0x0A, 0x00, 0x00, - 0x00, 0x1B, 0xDB, 0x0A, 0x00, 0x00, - 0x01, 0x1B, 0xDB, 0x0A, 0x00, 0x00, - 0x05, 0x1B, 0xDB, 0x0A, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x21, 0xBC, 0xAB, 0x79, 0xDF, - 0x03, 0xAB, 0x52, 0x00, 0x52, 0xB4, - 0x13, 0xDE, 0x0C, 0x00, 0x1B, 0xDB, - 0x18, 0xDF, 0x09, 0x00, 0x1B, 0xDB, - 0x08, 0xD2, 0x32, 0x01, 0x72, 0xB7, - 0x00, 0x41, 0xE2, 0xA8, 0x6A, 0xD6, - 0x00, 0x06, 0x00, 0x00, 0x41, 0x8F, - 0x00, 0x71, 0xD9, 0xC9, 0x9A, 0x1B, - - 0x1B, 0xDB, 0x0A, 0x00, 0x00, 0x00, - 0x1B, 0xDB, 0x0A, 0x00, 0x00, 0x00, - 0x1B, 0xDB, 0x0A, 0x00, 0x00, 0x00, - 0x26, 0xE1, 0x93, 0xD5, 0x76, 0x00, - 0x26, 0xF2, 0x39, 0x29, 0xDA, 0x07, - 0x26, 0xDB, 0x0A, 0x1B, 0xDB, 0x0A, - 0x26, 0xDB, 0x0A, 0x1B, 0xDB, 0x0A, - 0x26, 0xDB, 0x0A, 0x1B, 0xDB, 0x0A, - 0x24, 0xDB, 0x0A, 0x1B, 0xDB, 0x0A, - 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x15, 0xAF, 0x06, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x0E, 0xB5, 0xCE, 0xB9, 0x0A, 0x00, - 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, - 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, - 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, - 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, - 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x15, 0xAF, 0x06, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x25, 0xBF, 0xCE, 0xB9, 0x0A, 0x00, - 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, - 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, - 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, - 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, - 0x00, 0x00, 0x1B, 0xDA, 0x08, 0x00, - 0x09, 0x00, 0x2E, 0xA1, 0x05, 0x00, - 0x70, 0xDA, 0xDE, 0x49, 0x00, 0x00, - - 0x1B, 0xDB, 0x0A, 0x00, 0x00, 0x00, - 0x1B, 0xDB, 0x0A, 0x00, 0x00, 0x00, - 0x1B, 0xDB, 0x0A, 0x00, 0x00, 0x00, - 0x1B, 0xDB, 0x0A, 0x36, 0x98, 0x08, - 0x1B, 0xDB, 0x25, 0xCB, 0x1E, 0x00, - 0x1B, 0xE5, 0xC1, 0x3F, 0x00, 0x00, - 0x1B, 0xDF, 0x96, 0x99, 0x06, 0x00, - 0x1B, 0xDB, 0x13, 0xAA, 0x79, 0x00, - 0x1B, 0xDB, 0x0A, 0x14, 0xC9, 0x53, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x1C, 0xBB, 0xCE, 0xB9, 0x0A, 0x00, - 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, - 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, - 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, - 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, - 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, - 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, - 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, - 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x1B, 0xE1, 0x9D, 0x90, 0x93, 0x92, - 0x1B, 0xF0, 0x4C, 0xEE, 0x47, 0xD9, - 0x1B, 0xDC, 0x28, 0xDB, 0x28, 0xDB, - 0x1B, 0xDB, 0x28, 0xDB, 0x28, 0xDB, - 0x1B, 0xDB, 0x28, 0xDB, 0x28, 0xDB, - 0x1B, 0xDB, 0x28, 0xDB, 0x28, 0xDB, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x24, 0xE1, 0x93, 0xD5, 0x76, 0x00, - 0x25, 0xF2, 0x39, 0x29, 0xDA, 0x07, - 0x26, 0xDB, 0x0A, 0x1B, 0xDB, 0x0A, - 0x26, 0xDB, 0x0A, 0x1B, 0xDB, 0x0A, - 0x26, 0xDB, 0x0A, 0x1B, 0xDB, 0x0A, - 0x26, 0xDB, 0x0A, 0x1B, 0xDB, 0x0A, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x27, 0xBE, 0xA1, 0x9A, 0x17, - 0x05, 0xB5, 0x3D, 0x00, 0x6D, 0x8D, - 0x15, 0xDE, 0x0C, 0x00, 0x23, 0xD7, - 0x15, 0xDE, 0x0C, 0x00, 0x23, 0xD7, - 0x05, 0xB6, 0x3B, 0x01, 0x6B, 0x8E, - 0x00, 0x29, 0xBF, 0xA1, 0x9B, 0x18, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x1B, 0xDF, 0x81, 0xC5, 0xAB, 0x24, - 0x1B, 0xF0, 0x51, 0x00, 0x56, 0x99, - 0x1B, 0xDB, 0x0A, 0x00, 0x22, 0xD9, - 0x1B, 0xDB, 0x0A, 0x00, 0x24, 0xD5, - 0x1B, 0xE9, 0x29, 0x00, 0x6B, 0x84, - 0x1B, 0xE6, 0xA6, 0xCA, 0x98, 0x0F, - 0x1B, 0xDB, 0x0A, 0x00, 0x00, 0x00, - 0x1B, 0xDB, 0x0A, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x24, 0xBE, 0xAC, 0x75, 0xD9, - 0x07, 0xAE, 0x52, 0x00, 0x4E, 0xE4, - 0x20, 0xDF, 0x0C, 0x00, 0x1B, 0xDB, - 0x21, 0xDF, 0x09, 0x00, 0x1B, 0xDB, - 0x08, 0xD4, 0x2E, 0x01, 0x6F, 0xB7, - 0x00, 0x46, 0xE2, 0xA5, 0x62, 0xDD, - 0x00, 0x00, 0x00, 0x00, 0x1B, 0xDB, - 0x00, 0x00, 0x00, 0x00, 0x1B, 0xDB, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x0A, 0x1B, 0xDF, 0x83, 0xC5, 0xAE, - 0x0A, 0x1B, 0xF5, 0x5D, 0x04, 0x6F, - 0x0A, 0x1B, 0xDB, 0x0A, 0x00, 0x00, - 0x0A, 0x1B, 0xDB, 0x0A, 0x00, 0x00, - 0x0A, 0x1B, 0xDB, 0x0A, 0x00, 0x00, - 0x0A, 0x1B, 0xDB, 0x0A, 0x00, 0x00, - 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x0D, 0x80, 0xE3, 0xD9, 0x72, 0x00, - 0x1C, 0xE3, 0x13, 0x00, 0x05, 0x00, - 0x06, 0xAE, 0xAC, 0x55, 0x06, 0x00, - 0x00, 0x03, 0x46, 0xB5, 0x99, 0x02, - 0x0A, 0x0D, 0x00, 0x2E, 0xD9, 0x07, - 0x22, 0xBF, 0x9D, 0xB0, 0x4D, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x1B, 0xDB, 0x0A, 0x00, 0x00, - 0x49, 0xCD, 0xFF, 0xAD, 0xA7, 0x2D, - 0x00, 0x1B, 0xDB, 0x0A, 0x00, 0x00, - 0x00, 0x1B, 0xDB, 0x0A, 0x00, 0x00, - 0x00, 0x1A, 0xDB, 0x0A, 0x00, 0x00, - 0x00, 0x13, 0xDE, 0x12, 0x00, 0x00, - 0x00, 0x02, 0x86, 0xEE, 0xAB, 0x39, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x1B, 0xDB, 0x0A, 0x1B, 0xDB, 0x0B, - 0x1B, 0xDB, 0x0A, 0x1B, 0xDB, 0x0A, - 0x1B, 0xDB, 0x0A, 0x1B, 0xDB, 0x0A, - 0x1B, 0xDB, 0x0A, 0x1B, 0xDB, 0x0A, - 0x16, 0xE3, 0x14, 0x70, 0xB8, 0x0A, - 0x03, 0x9C, 0xBC, 0x70, 0xDE, 0x0A, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x75, 0x6F, 0x00, 0x00, 0x3E, 0x7B, - 0x24, 0xD0, 0x06, 0x02, 0x97, 0x2A, - 0x03, 0xAD, 0x2F, 0x18, 0xBD, 0x04, - 0x00, 0x5B, 0x82, 0x66, 0x60, 0x00, - 0x00, 0x15, 0xDC, 0xD2, 0x15, 0x00, - 0x00, 0x01, 0x9E, 0x94, 0x01, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xC3, 0x13, 0x29, 0x39, 0x07, 0xAF, - 0x9A, 0x2C, 0x89, 0x9B, 0x12, 0xAD, - 0x78, 0x44, 0xA1, 0xB3, 0x30, 0x6F, - 0x47, 0x84, 0x70, 0x7D, 0x62, 0x3F, - 0x2C, 0xEA, 0x3D, 0x45, 0xA9, 0x29, - 0x13, 0xE9, 0x19, 0x23, 0xE9, 0x0D, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x3F, 0xE2, 0x15, 0x06, 0xBA, 0x27, - 0x02, 0x7C, 0x91, 0x67, 0x75, 0x00, - 0x00, 0x0C, 0xC3, 0xB2, 0x0E, 0x00, - 0x00, 0x0E, 0xC2, 0xB8, 0x13, 0x00, - 0x00, 0x7F, 0x62, 0x7F, 0x8D, 0x02, - 0x32, 0x94, 0x04, 0x0C, 0xC0, 0x3E, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x53, 0x87, 0x00, 0x00, 0x3D, 0x79, - 0x10, 0xD1, 0x12, 0x02, 0x99, 0x27, - 0x00, 0x85, 0x5E, 0x1C, 0x91, 0x03, - 0x00, 0x2A, 0x9E, 0x7B, 0x54, 0x00, - 0x00, 0x04, 0xB4, 0xB2, 0x0C, 0x00, - 0x00, 0x00, 0x66, 0x7C, 0x00, 0x00, - 0x00, 0x05, 0xA6, 0x26, 0x00, 0x00, - 0x2F, 0xDE, 0x70, 0x01, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x05, 0x9E, 0xD7, 0xC9, 0xFB, 0x72, - 0x00, 0x00, 0x00, 0x29, 0xD4, 0x12, - 0x00, 0x00, 0x0F, 0xCB, 0x2F, 0x00, - 0x00, 0x03, 0x98, 0x65, 0x00, 0x00, - 0x00, 0x68, 0x8A, 0x03, 0x00, 0x00, - 0x0B, 0xDA, 0xB5, 0xD7, 0xD7, 0x6C, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x02, 0x85, 0xB3, 0x4D, - 0x00, 0x00, 0x17, 0xE1, 0x0D, 0x00, - 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, - 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, - 0x00, 0x00, 0x2F, 0xA0, 0x05, 0x00, - 0x00, 0x39, 0xF1, 0x54, 0x00, 0x00, - 0x00, 0x00, 0x2A, 0xD4, 0x06, 0x00, - 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, - 0x00, 0x00, 0x19, 0xE1, 0x0D, 0x00, - 0x00, 0x00, 0x03, 0x7E, 0xD6, 0x4C, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, - 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, - 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, - 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, - 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, - 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, - 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, - 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, - 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, - 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x6E, 0xE2, 0x61, 0x00, 0x00, - 0x00, 0x00, 0x27, 0xDA, 0x07, 0x00, - 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, - 0x00, 0x00, 0x1A, 0xDB, 0x0A, 0x00, - 0x00, 0x00, 0x0D, 0xD8, 0x15, 0x00, - 0x00, 0x00, 0x00, 0x76, 0xB8, 0x24, - 0x00, 0x00, 0x13, 0xDD, 0x13, 0x00, - 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, - 0x00, 0x00, 0x27, 0xDD, 0x08, 0x00, - 0x00, 0x6C, 0xD7, 0x62, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x01, 0x70, 0xD2, 0x67, 0x0B, 0x72, - 0x07, 0x79, 0x0A, 0x69, 0xD2, 0x71, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +// " " + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + +// ! + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, + 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, + 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, + 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, + 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, + 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x15, 0xAF, 0x06, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + +// " + 0x02, 0xAE, 0x44, 0x42, 0xA5, 0x03, + 0x00, 0x9A, 0x39, 0x34, 0x97, 0x00, + 0x00, 0x7A, 0x2C, 0x25, 0x7A, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + +// # + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x6D, 0x34, 0x87, 0x23, + 0x00, 0x03, 0xA9, 0x18, 0xB2, 0x06, + 0x26, 0xC6, 0xC4, 0xD3, 0xC0, 0x85, + 0x00, 0x2A, 0x74, 0x40, 0x5D, 0x00, + 0x00, 0x41, 0x5A, 0x68, 0x35, 0x00, + 0x7C, 0xDC, 0xB3, 0xE3, 0xAD, 0x30, + 0x03, 0xA9, 0x17, 0xAF, 0x06, 0x00, + 0x13, 0x87, 0x2C, 0x79, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + +// $ + 0x00, 0x18, 0xDE, 0x39, 0x06, 0x00, + 0x05, 0xBA, 0xFD, 0x7B, 0x81, 0x02, + 0x16, 0xF5, 0xB9, 0x0A, 0x00, 0x13, + 0x11, 0xDA, 0xB9, 0x0A, 0x00, 0x13, + 0x00, 0x82, 0xC4, 0x2F, 0x00, 0x01, + 0x00, 0x18, 0xF0, 0xF2, 0x5B, 0x00, + 0x00, 0x16, 0xD9, 0x3D, 0xAA, 0x07, + 0x0C, 0x23, 0xD9, 0x51, 0xA0, 0x05, + 0x21, 0xC5, 0xFF, 0xA6, 0x26, 0x07, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + +// % + 0x00, 0x00, 0x00, 0x00, 0x1A, 0x50, + 0x6A, 0xD4, 0x4F, 0x02, 0x9E, 0x54, + 0xDE, 0x3C, 0xD6, 0x55, 0x99, 0x03, + 0xDD, 0x36, 0xE4, 0xDA, 0x2A, 0x00, + 0x6B, 0xD5, 0xC7, 0x80, 0x00, 0x00, + 0x00, 0x18, 0xD5, 0x85, 0xD2, 0x4D, + 0x01, 0x90, 0x70, 0xDA, 0x3D, 0xA6, + 0x32, 0x9E, 0x1B, 0xDB, 0x32, 0xD7, + 0xB0, 0x31, 0x01, 0x79, 0xE4, 0x60, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + +// & + 0x01, 0x00, 0x5A, 0xD2, 0x51, 0x00, + 0x00, 0x0C, 0xD5, 0x3C, 0xD5, 0x06, + 0x00, 0x13, 0xDE, 0x31, 0xD5, 0x06, + 0x00, 0x07, 0xC0, 0xB5, 0x70, 0x00, + 0x00, 0x19, 0xC6, 0x98, 0x05, 0x00, + 0x07, 0xB8, 0x6D, 0xD4, 0x0D, 0x1D, + 0x20, 0xDE, 0x0B, 0x8B, 0x87, 0x64, + 0x13, 0xDC, 0x2F, 0x15, 0xDA, 0xFC, + 0x00, 0x48, 0xDD, 0xA9, 0x77, 0xF7, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + +// ' + 0x00, 0x00, 0x96, 0x9B, 0x00, 0x00, + 0x00, 0x00, 0x76, 0x81, 0x00, 0x00, + 0x00, 0x00, 0x56, 0x65, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + +// ( + 0x00, 0x00, 0x00, 0x00, 0x30, 0x3D, + 0x00, 0x00, 0x02, 0x77, 0x93, 0x2D, + 0x00, 0x00, 0x49, 0x94, 0x04, 0x00, + 0x00, 0x03, 0xAD, 0x32, 0x00, 0x00, + 0x00, 0x10, 0xDE, 0x0D, 0x00, 0x00, + 0x00, 0x18, 0xDC, 0x08, 0x00, 0x00, + 0x00, 0x11, 0xDE, 0x0D, 0x00, 0x00, + 0x00, 0x04, 0xB0, 0x2F, 0x00, 0x00, + 0x00, 0x00, 0x51, 0x8E, 0x03, 0x00, + 0x00, 0x00, 0x02, 0x85, 0x89, 0x23, + 0x00, 0x00, 0x00, 0x00, 0x3E, 0x46, + +// ) + 0x4E, 0x23, 0x00, 0x00, 0x00, 0x00, + 0x3C, 0xB5, 0x5A, 0x00, 0x00, 0x00, + 0x00, 0x0D, 0xC9, 0x28, 0x00, 0x00, + 0x00, 0x00, 0x59, 0x86, 0x00, 0x00, + 0x00, 0x00, 0x28, 0xA4, 0x06, 0x00, + 0x00, 0x00, 0x1C, 0xD9, 0x07, 0x00, + 0x00, 0x00, 0x27, 0xA3, 0x06, 0x00, + 0x00, 0x00, 0x54, 0x8A, 0x00, 0x00, + 0x00, 0x09, 0xC4, 0x2C, 0x00, 0x00, + 0x30, 0xAA, 0x64, 0x00, 0x00, 0x00, + 0x5A, 0x2F, 0x00, 0x00, 0x00, 0x00, + +// * + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x4F, 0x59, 0x00, 0x00, + 0x07, 0x5B, 0x51, 0x5A, 0x56, 0x09, + 0x10, 0x8A, 0x52, 0x4A, 0x7D, 0x14, + 0x00, 0x18, 0xA5, 0x9F, 0x1E, 0x00, + 0x00, 0x4A, 0x4A, 0x42, 0x51, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + +// + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, + 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, + 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, + 0x2F, 0xD1, 0xCB, 0xFE, 0xAA, 0x9F, + 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, + 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + +// , + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x16, 0xBA, 0x08, 0x00, 0x00, + 0x00, 0x1B, 0xD7, 0x07, 0x00, 0x00, + 0x00, 0x03, 0x8A, 0x04, 0x00, 0x00, + 0x00, 0x0C, 0x25, 0x00, 0x00, 0x00, + +// - + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x08, 0xAD, 0xD7, 0xD7, 0x9E, 0x0A, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + +// . + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x16, 0xBA, 0x08, 0x00, 0x00, + 0x00, 0x1B, 0xDB, 0x0A, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + +// / + 0x00, 0x00, 0x00, 0x00, 0x4F, 0x66, + 0x00, 0x00, 0x00, 0x05, 0xB1, 0x13, + 0x00, 0x00, 0x00, 0x36, 0x76, 0x00, + 0x00, 0x00, 0x02, 0x96, 0x22, 0x00, + 0x00, 0x00, 0x26, 0x83, 0x01, 0x00, + 0x00, 0x00, 0x85, 0x2D, 0x00, 0x00, + 0x00, 0x17, 0xB3, 0x03, 0x00, 0x00, + 0x00, 0x70, 0x3A, 0x00, 0x00, 0x00, + 0x0F, 0xB8, 0x06, 0x00, 0x00, 0x00, + 0x5A, 0x5C, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x08, 0x8B, 0xD3, 0x6C, 0x02, + 0x00, 0x6F, 0x71, 0x05, 0x94, 0x3C, + 0x06, 0xCA, 0x1A, 0x00, 0x38, 0x93, + 0x12, 0xDD, 0x0C, 0x00, 0x24, 0xD2, + 0x19, 0xDB, 0x08, 0x00, 0x1C, 0xD9, + 0x13, 0xDE, 0x0C, 0x00, 0x23, 0xD4, + 0x07, 0xCE, 0x18, 0x00, 0x35, 0x97, + 0x00, 0x7C, 0x66, 0x01, 0x88, 0x59, + 0x00, 0x0D, 0xA4, 0xAD, 0x80, 0x05, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, + 0x03, 0x56, 0xB0, 0xB5, 0x0A, 0x00, + 0x07, 0x4F, 0x36, 0xDB, 0x0A, 0x00, + 0x06, 0x00, 0x1B, 0xDB, 0x0A, 0x00, + 0x08, 0x00, 0x1B, 0xDB, 0x0A, 0x00, + 0x07, 0x00, 0x1B, 0xDB, 0x0A, 0x00, + 0x01, 0x00, 0x1B, 0xDB, 0x0A, 0x00, + 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, + 0x0C, 0xB4, 0xCE, 0xFF, 0xAD, 0x8F, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x04, 0x88, 0xC5, 0x9E, 0x25, 0x00, + 0x02, 0x2F, 0x00, 0x50, 0xA3, 0x04, + 0x00, 0x00, 0x00, 0x23, 0xD8, 0x07, + 0x00, 0x00, 0x00, 0x6D, 0x83, 0x00, + 0x00, 0x00, 0x37, 0x97, 0x0D, 0x00, + 0x00, 0x1D, 0xC2, 0x10, 0x00, 0x00, + 0x03, 0x9F, 0x37, 0x00, 0x00, 0x00, + 0x1E, 0xF5, 0xAF, 0xD7, 0x91, 0x05, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x07, 0xA1, 0xC9, 0xA1, 0x2A, 0x00, + 0x03, 0x21, 0x01, 0x51, 0xA6, 0x04, + 0x00, 0x00, 0x00, 0x21, 0xD6, 0x07, + 0x00, 0x00, 0x02, 0x76, 0x70, 0x00, + 0x00, 0x4B, 0xD6, 0xAA, 0x0D, 0x00, + 0x00, 0x00, 0x02, 0x72, 0x8F, 0x01, + 0x00, 0x00, 0x00, 0x21, 0xD9, 0x07, + 0x02, 0x04, 0x00, 0x57, 0x9E, 0x03, + 0x15, 0xC3, 0xCD, 0xA2, 0x21, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x5C, 0xB7, 0x0A, + 0x00, 0x00, 0x14, 0xC7, 0xB6, 0x0A, + 0x00, 0x01, 0x83, 0x59, 0xDB, 0x0A, + 0x00, 0x2E, 0x85, 0x25, 0xDB, 0x0A, + 0x05, 0xB1, 0x20, 0x1B, 0xDB, 0x0A, + 0x17, 0xD8, 0xA6, 0xCB, 0xFE, 0x95, + 0x00, 0x00, 0x00, 0x1B, 0xDB, 0x0A, + 0x00, 0x00, 0x00, 0x1B, 0xDB, 0x0A, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x17, 0xCB, 0xA8, 0xD3, 0x81, 0x01, + 0x1B, 0xDB, 0x0A, 0x00, 0x00, 0x00, + 0x1B, 0xDB, 0x0A, 0x00, 0x00, 0x00, + 0x18, 0xCE, 0xAE, 0x7A, 0x0B, 0x00, + 0x00, 0x00, 0x08, 0x81, 0x8E, 0x01, + 0x05, 0x00, 0x00, 0x21, 0xD8, 0x09, + 0x01, 0x01, 0x00, 0x5F, 0x9B, 0x02, + 0x15, 0xBD, 0xCD, 0x9E, 0x1C, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x01, 0x5F, 0xC1, 0xA6, 0x4F, + 0x00, 0x4C, 0xA2, 0x0D, 0x09, 0x21, + 0x04, 0xB2, 0x39, 0x00, 0x00, 0x00, + 0x0E, 0xE2, 0x15, 0x00, 0x00, 0x00, + 0x18, 0xE1, 0x7B, 0xC0, 0x92, 0x19, + 0x16, 0xEC, 0x35, 0x01, 0x6D, 0x9B, + 0x09, 0xCA, 0x0B, 0x00, 0x21, 0xD9, + 0x00, 0x89, 0x35, 0x00, 0x52, 0x95, + 0x00, 0x14, 0xAB, 0x9F, 0x9E, 0x1B, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x09, 0xAF, 0xD3, 0xC5, 0xAB, 0x0B, + 0x00, 0x00, 0x00, 0x20, 0x82, 0x01, + 0x00, 0x00, 0x00, 0x7E, 0x2C, 0x00, + 0x00, 0x00, 0x15, 0xB5, 0x03, 0x00, + 0x02, 0x00, 0x6E, 0x56, 0x00, 0x00, + 0x07, 0x0C, 0xCB, 0x13, 0x00, 0x00, + 0x02, 0x41, 0x99, 0x01, 0x00, 0x00, + 0x00, 0x82, 0x72, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x48, 0xBE, 0xA9, 0x4A, 0x00, + 0x0D, 0xD9, 0x19, 0x39, 0xAB, 0x06, + 0x15, 0xE3, 0x15, 0x2A, 0xA2, 0x05, + 0x02, 0x8E, 0x9A, 0xB5, 0x31, 0x00, + 0x00, 0x4C, 0xD3, 0xAA, 0x16, 0x00, + 0x07, 0xCD, 0x23, 0x93, 0x96, 0x01, + 0x18, 0xDD, 0x0B, 0x26, 0xDB, 0x09, + 0x0D, 0xDD, 0x25, 0x38, 0x9C, 0x03, + 0x00, 0x54, 0xDE, 0xA5, 0x26, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x17, 0xA3, 0xD8, 0x72, 0x04, + 0x02, 0xA1, 0x56, 0x03, 0x88, 0x5A, + 0x12, 0xDB, 0x0C, 0x00, 0x27, 0x94, + 0x16, 0xE1, 0x0D, 0x00, 0x22, 0xD5, + 0x05, 0xB6, 0x5F, 0x02, 0x72, 0xB6, + 0x00, 0x20, 0xAE, 0xA1, 0x5E, 0xA4, + 0x00, 0x00, 0x00, 0x00, 0x40, 0x8C, + 0x00, 0x0D, 0x00, 0x0A, 0xAE, 0x31, + 0x00, 0x7E, 0xAD, 0xDC, 0x5B, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x07, 0x1B, 0xDB, 0x0A, 0x00, 0x00, + 0x08, 0x16, 0xBA, 0x08, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x16, 0xBA, 0x08, 0x00, 0x00, + 0x00, 0x1B, 0xDB, 0x0A, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x1B, 0xDB, 0x0A, 0x00, 0x00, + 0x00, 0x16, 0xBA, 0x08, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x16, 0xBA, 0x08, 0x00, 0x00, + 0x00, 0x1B, 0xD7, 0x07, 0x00, 0x00, + 0x00, 0x1B, 0x96, 0x04, 0x00, 0x00, + 0x00, 0x0C, 0x25, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x06, 0x65, + 0x00, 0x00, 0x02, 0x50, 0xCD, 0x62, + 0x00, 0x37, 0xB2, 0x79, 0x10, 0x00, + 0x06, 0x77, 0xA8, 0x41, 0x00, 0x00, + 0x00, 0x00, 0x17, 0x92, 0x95, 0x2E, + 0x00, 0x00, 0x00, 0x00, 0x2B, 0xA8, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x07, 0x00, 0x00, 0x00, 0x00, 0x07, + 0x03, 0x00, 0x00, 0x00, 0x00, 0x02, + 0x68, 0xD2, 0xD3, 0xD3, 0xD3, 0x6D, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x6A, 0xD6, 0xD7, 0xD7, 0xD7, 0x6F, + 0x0B, 0x00, 0x00, 0x00, 0x00, 0x0A, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x6A, 0x06, 0x00, 0x00, 0x00, 0x00, + 0x64, 0xD0, 0x50, 0x02, 0x00, 0x00, + 0x00, 0x0F, 0x81, 0x9E, 0x3A, 0x00, + 0x00, 0x00, 0x3F, 0xC0, 0x72, 0x06, + 0x2B, 0xA6, 0x86, 0x17, 0x00, 0x00, + 0xA9, 0x2F, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x10, 0xA9, 0xAC, 0xA2, 0x42, 0x00, + 0x1A, 0xD9, 0x08, 0x39, 0xAA, 0x06, + 0x00, 0x00, 0x00, 0x30, 0xA1, 0x05, + 0x00, 0x00, 0x13, 0xC7, 0x33, 0x00, + 0x00, 0x02, 0x9E, 0x54, 0x00, 0x00, + 0x00, 0x11, 0xD9, 0x0C, 0x00, 0x00, + 0x00, 0x02, 0x1A, 0x00, 0x00, 0x00, + 0x00, 0x12, 0xAD, 0x06, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x4F, 0xBB, 0xA6, 0x3D, + 0x00, 0x37, 0xA1, 0x0E, 0x51, 0xA5, + 0x02, 0xA8, 0x3C, 0x4A, 0xCA, 0xB7, + 0x0D, 0xDD, 0x1E, 0xCE, 0x43, 0xDB, + 0x18, 0xDC, 0x25, 0xDD, 0x35, 0xE5, + 0x15, 0xDE, 0x24, 0xDE, 0x75, 0xB3, + 0x07, 0xD4, 0x2A, 0x93, 0x58, 0xDC, + 0x00, 0x7E, 0x89, 0x02, 0x0E, 0x01, + 0x00, 0x0C, 0xA3, 0xB5, 0x85, 0x08, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x08, 0x00, 0x95, 0x95, 0x00, 0x00, + 0x0A, 0x10, 0xBA, 0xD0, 0x14, 0x00, + 0x0A, 0x4A, 0x57, 0x77, 0x58, 0x00, + 0x0B, 0x9A, 0x13, 0x25, 0x92, 0x02, + 0x7A, 0xE1, 0xA8, 0xC6, 0xEF, 0x18, + 0x56, 0x3A, 0x00, 0x00, 0x6C, 0x65, + 0xAC, 0x14, 0x00, 0x00, 0x2B, 0x9F, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x1B, 0xF3, 0xA0, 0xE8, 0x62, 0x00, + 0x1B, 0xDB, 0x0A, 0x2B, 0xDC, 0x07, + 0x1B, 0xDB, 0x0B, 0x4F, 0x93, 0x02, + 0x1B, 0xF3, 0xA1, 0xBB, 0x4D, 0x02, + 0x1B, 0xDB, 0x0A, 0x09, 0x7B, 0x8A, + 0x1C, 0xDB, 0x0A, 0x00, 0x2B, 0xD9, + 0x20, 0xF3, 0xAD, 0xCC, 0xB0, 0x50, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x07, 0x80, 0xE2, 0xCD, 0x93, + 0x00, 0x80, 0x8D, 0x05, 0x00, 0x12, + 0x0C, 0xDC, 0x18, 0x00, 0x00, 0x00, + 0x18, 0xDC, 0x0B, 0x00, 0x00, 0x00, + 0x10, 0xDE, 0x19, 0x00, 0x00, 0x00, + 0x09, 0x86, 0x92, 0x09, 0x00, 0x06, + 0x00, 0x08, 0x86, 0xE6, 0xA9, 0x8D, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x21, 0xF3, 0xAD, 0xE1, 0x81, 0x0A, + 0x20, 0xDB, 0x0A, 0x04, 0x91, 0x7D, + 0x1B, 0xDB, 0x0A, 0x00, 0x2C, 0xA6, + 0x1B, 0xDB, 0x0A, 0x00, 0x1C, 0xD9, + 0x1B, 0xDB, 0x0A, 0x00, 0x2C, 0xA1, + 0x1C, 0xDB, 0x0A, 0x06, 0x93, 0x68, + 0x21, 0xF3, 0x9F, 0xE3, 0x77, 0x04, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x1B, 0xF3, 0xAD, 0xD7, 0xA4, 0x23, + 0x1D, 0xDB, 0x0A, 0x00, 0x00, 0x00, + 0x23, 0xDB, 0x0A, 0x00, 0x00, 0x00, + 0x26, 0xF3, 0xAA, 0xD3, 0x7D, 0x00, + 0x20, 0xDB, 0x0A, 0x00, 0x00, 0x00, + 0x1C, 0xDB, 0x0A, 0x00, 0x00, 0x00, + 0x1B, 0xF3, 0xAD, 0xD7, 0xD6, 0x50, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x1B, 0xF3, 0xAD, 0xD7, 0xD6, 0x50, + 0x1B, 0xDB, 0x0A, 0x00, 0x00, 0x00, + 0x1B, 0xDB, 0x0A, 0x00, 0x00, 0x00, + 0x1B, 0xF3, 0xAA, 0xD3, 0x91, 0x06, + 0x1B, 0xDB, 0x0A, 0x00, 0x00, 0x00, + 0x1B, 0xDB, 0x0A, 0x00, 0x00, 0x00, + 0x1B, 0xDB, 0x0A, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x07, 0x7F, 0xDC, 0xCA, 0x95, + 0x00, 0x80, 0x8A, 0x04, 0x00, 0x0A, + 0x0C, 0xDC, 0x18, 0x00, 0x00, 0x00, + 0x18, 0xDC, 0x0B, 0x23, 0xBE, 0xA6, + 0x0D, 0xDD, 0x19, 0x00, 0x1B, 0xDB, + 0x00, 0x85, 0x91, 0x08, 0x1B, 0xDB, + 0x00, 0x08, 0x85, 0xE4, 0x9C, 0x99, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x22, 0xDB, 0x0A, 0x00, 0x1B, 0xDB, + 0x1D, 0xDB, 0x0A, 0x00, 0x1B, 0xDB, + 0x1B, 0xDB, 0x0A, 0x00, 0x1B, 0xDB, + 0x25, 0xF3, 0xAA, 0xD3, 0xCB, 0xB8, + 0x27, 0xDB, 0x0A, 0x00, 0x1B, 0xDB, + 0x27, 0xDB, 0x0A, 0x00, 0x1B, 0xDB, + 0x22, 0xDB, 0x0A, 0x00, 0x1B, 0xDB, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x0E, 0x92, 0xCE, 0xFF, 0xAD, 0x71, + 0x0A, 0x00, 0x1B, 0xDB, 0x0A, 0x00, + 0x0A, 0x00, 0x1B, 0xDB, 0x0A, 0x00, + 0x0A, 0x00, 0x1B, 0xDB, 0x0A, 0x00, + 0x0A, 0x00, 0x1B, 0xDB, 0x0A, 0x00, + 0x0A, 0x00, 0x1B, 0xDB, 0x0A, 0x00, + 0x0E, 0x92, 0xCE, 0xFF, 0xAD, 0x71, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x1F, 0xBC, 0xCE, 0xB9, 0x0A, + 0x00, 0x00, 0x00, 0x1B, 0xDB, 0x0A, + 0x00, 0x00, 0x00, 0x1B, 0xDB, 0x0A, + 0x00, 0x00, 0x00, 0x1B, 0xDB, 0x0A, + 0x00, 0x00, 0x00, 0x1C, 0xD8, 0x07, + 0x00, 0x07, 0x00, 0x39, 0xA0, 0x03, + 0x00, 0x71, 0xCA, 0xAD, 0x2E, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x1B, 0xDB, 0x0A, 0x09, 0xB7, 0x29, + 0x1B, 0xDB, 0x0B, 0x84, 0x59, 0x00, + 0x1B, 0xDB, 0x69, 0x7F, 0x02, 0x00, + 0x1B, 0xE7, 0xE5, 0x31, 0x00, 0x00, + 0x1B, 0xDB, 0x3D, 0xD8, 0x13, 0x00, + 0x1B, 0xDB, 0x0B, 0x5A, 0x9C, 0x07, + 0x1B, 0xDB, 0x0A, 0x01, 0x80, 0x82, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x1B, 0xDB, 0x0A, 0x00, 0x00, 0x00, + 0x1B, 0xDB, 0x0A, 0x00, 0x00, 0x00, + 0x1B, 0xDB, 0x0A, 0x00, 0x00, 0x00, + 0x1B, 0xDB, 0x0A, 0x00, 0x00, 0x00, + 0x1B, 0xDB, 0x0A, 0x00, 0x00, 0x00, + 0x1B, 0xDB, 0x0A, 0x00, 0x00, 0x00, + 0x23, 0xF3, 0xAD, 0xD7, 0xA8, 0x2F, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x1B, 0xF6, 0x69, 0x00, 0x85, 0xB9, + 0x1B, 0xEA, 0x8D, 0x07, 0xA7, 0xB3, + 0x1B, 0xDE, 0xAA, 0x28, 0x71, 0xDD, + 0x1B, 0xDB, 0x6D, 0x6B, 0x51, 0xDB, + 0x1B, 0xDB, 0x2E, 0xE1, 0x2D, 0xDB, + 0x1B, 0xDB, 0x0F, 0x5F, 0x24, 0xDB, + 0x1B, 0xDB, 0x0A, 0x00, 0x1B, 0xDB, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x27, 0xF5, 0x40, 0x00, 0x1B, 0xDB, + 0x27, 0xF6, 0xB3, 0x09, 0x1B, 0xDB, + 0x27, 0xE1, 0xB9, 0x69, 0x1C, 0xDB, + 0x27, 0xDB, 0x2E, 0xE2, 0x36, 0xDB, + 0x27, 0xDB, 0x0A, 0x89, 0x9A, 0xDF, + 0x27, 0xDB, 0x0A, 0x17, 0xDB, 0xB9, + 0x27, 0xDB, 0x0A, 0x00, 0x6D, 0xBA, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x0A, 0x1B, 0xB4, 0xB0, 0x8F, 0x0C, + 0x0E, 0xA1, 0x5A, 0x00, 0x78, 0x79, + 0x1F, 0xDE, 0x0E, 0x00, 0x2A, 0xA4, + 0x26, 0xDC, 0x08, 0x00, 0x1C, 0xD9, + 0x1F, 0xDE, 0x0E, 0x00, 0x2A, 0xA4, + 0x0E, 0xA0, 0x59, 0x00, 0x77, 0x7A, + 0x0A, 0x1B, 0xB5, 0x9F, 0x91, 0x0C, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x1B, 0xF3, 0xAD, 0xCB, 0xB3, 0x53, + 0x1B, 0xDB, 0x0A, 0x00, 0x31, 0xDA, + 0x1B, 0xDB, 0x0A, 0x02, 0x62, 0x9B, + 0x1B, 0xF3, 0xAA, 0xA6, 0x7F, 0x14, + 0x1B, 0xDB, 0x0A, 0x00, 0x00, 0x00, + 0x1B, 0xDB, 0x0A, 0x00, 0x00, 0x00, + 0x1B, 0xDB, 0x0A, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x1B, 0xB4, 0xB0, 0x8F, 0x0C, + 0x0B, 0xA1, 0x5A, 0x00, 0x78, 0x79, + 0x14, 0xDE, 0x0E, 0x00, 0x2A, 0xA4, + 0x19, 0xDC, 0x08, 0x00, 0x1C, 0xD9, + 0x10, 0xDD, 0x0E, 0x00, 0x2A, 0xA3, + 0x02, 0x9F, 0x59, 0x00, 0x77, 0x76, + 0x00, 0x1B, 0xB8, 0xD6, 0xA3, 0x0B, + 0x00, 0x00, 0x00, 0x0D, 0xA9, 0x88, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x52, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x1B, 0xF3, 0x9F, 0xE9, 0x65, 0x00, + 0x1D, 0xDB, 0x0A, 0x2A, 0xDB, 0x07, + 0x22, 0xDB, 0x0B, 0x57, 0x95, 0x02, + 0x26, 0xF3, 0xD5, 0xAB, 0x0F, 0x00, + 0x21, 0xDB, 0x17, 0xCC, 0x23, 0x00, + 0x1C, 0xDB, 0x0A, 0x4E, 0x9A, 0x04, + 0x1B, 0xDB, 0x0A, 0x04, 0xA8, 0x61, + 0x0D, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x65, 0xDC, 0xC9, 0xAB, 0x32, + 0x13, 0xE0, 0x13, 0x00, 0x05, 0x0C, + 0x0C, 0xCC, 0x73, 0x12, 0x00, 0x00, + 0x00, 0x1D, 0x92, 0xF2, 0x9B, 0x22, + 0x00, 0x00, 0x00, 0x06, 0x72, 0xA8, + 0x0B, 0x1E, 0x00, 0x00, 0x3A, 0xA4, + 0x19, 0xB6, 0xB0, 0xCA, 0xA0, 0x27, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x5D, 0xD6, 0xCE, 0xFF, 0xAD, 0xD6, + 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, + 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, + 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, + 0x05, 0x00, 0x1B, 0xDB, 0x0A, 0x00, + 0x05, 0x00, 0x1B, 0xDB, 0x0A, 0x00, + 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x54, 0xDB, 0x0A, 0x00, 0x1B, 0xE1, + 0x1B, 0xDB, 0x0A, 0x00, 0x1B, 0xDB, + 0x1B, 0xDB, 0x0A, 0x00, 0x1B, 0xDB, + 0x1B, 0xDB, 0x0A, 0x00, 0x1B, 0xDB, + 0x18, 0xDD, 0x0B, 0x00, 0x21, 0xD6, + 0x07, 0xD3, 0x2E, 0x00, 0x56, 0x97, + 0x00, 0x3F, 0xC6, 0x9C, 0xA0, 0x1E, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xC0, 0x36, 0x00, 0x00, 0x15, 0xC4, + 0x70, 0x8B, 0x00, 0x00, 0x5B, 0x64, + 0x24, 0xDB, 0x11, 0x04, 0xB4, 0x18, + 0x0B, 0xA3, 0x42, 0x24, 0x90, 0x02, + 0x07, 0x51, 0x9A, 0x7B, 0x56, 0x00, + 0x01, 0x12, 0xD5, 0xB1, 0x13, 0x00, + 0x00, 0x01, 0x9C, 0x93, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xC7, 0x0C, 0x00, 0x00, 0x06, 0xAD, + 0x9D, 0x1A, 0x36, 0x41, 0x0E, 0xAD, + 0x83, 0x32, 0x93, 0x9E, 0x28, 0x75, + 0x62, 0x5C, 0xA7, 0xC9, 0x4E, 0x5D, + 0x3C, 0x83, 0x84, 0x94, 0x69, 0x35, + 0x28, 0xE3, 0x65, 0x61, 0xAF, 0x24, + 0x13, 0xEF, 0x32, 0x2F, 0xED, 0x0D, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x6E, 0x99, 0x04, 0x00, 0x65, 0x6E, + 0x07, 0xA8, 0x5D, 0x29, 0x93, 0x07, + 0x00, 0x20, 0xE1, 0xD0, 0x23, 0x00, + 0x00, 0x00, 0x98, 0xA2, 0x03, 0x00, + 0x00, 0x32, 0x95, 0xBE, 0x55, 0x00, + 0x0E, 0xBF, 0x16, 0x2A, 0xDD, 0x13, + 0x85, 0x54, 0x00, 0x00, 0x74, 0x8B, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x2F, 0xD9, 0x0E, 0x00, 0x06, 0xB6, + 0x01, 0x8D, 0x72, 0x00, 0x61, 0x72, + 0x00, 0x17, 0xDB, 0x3C, 0xC9, 0x0E, + 0x00, 0x00, 0x6C, 0xFB, 0x3D, 0x00, + 0x00, 0x00, 0x1B, 0xDC, 0x08, 0x00, + 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, + 0x02, 0x00, 0x1B, 0xDB, 0x0A, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x27, 0x8E, 0xD7, 0xD7, 0xCF, 0xC0, + 0x00, 0x00, 0x00, 0x01, 0x83, 0x72, + 0x00, 0x00, 0x00, 0x49, 0x9B, 0x07, + 0x00, 0x00, 0x1B, 0xD3, 0x20, 0x00, + 0x00, 0x05, 0xA6, 0x53, 0x00, 0x00, + 0x00, 0x6F, 0x84, 0x01, 0x00, 0x00, + 0x0B, 0xDA, 0xB4, 0xD7, 0xD7, 0xA0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x1B, 0xF3, 0xAD, 0xA1, 0x14, + 0x00, 0x1B, 0xDB, 0x0A, 0x00, 0x00, + 0x0C, 0x1B, 0xDB, 0x0A, 0x00, 0x00, + 0x00, 0x1B, 0xDB, 0x0A, 0x00, 0x00, + 0x00, 0x1B, 0xDB, 0x0A, 0x00, 0x00, + 0x00, 0x1B, 0xDB, 0x0A, 0x00, 0x00, + 0x00, 0x1B, 0xDB, 0x0A, 0x00, 0x00, + 0x00, 0x1B, 0xDB, 0x0A, 0x00, 0x00, + 0x10, 0x1B, 0xDB, 0x0A, 0x00, 0x00, + 0x00, 0x17, 0xCB, 0xA8, 0x9E, 0x13, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x5A, 0x5C, 0x00, 0x00, 0x00, 0x00, + 0x0F, 0xB8, 0x06, 0x00, 0x00, 0x00, + 0x00, 0x71, 0x39, 0x00, 0x00, 0x00, + 0x00, 0x17, 0xB2, 0x03, 0x00, 0x00, + 0x00, 0x00, 0x85, 0x2C, 0x00, 0x00, + 0x00, 0x00, 0x26, 0x82, 0x01, 0x00, + 0x00, 0x00, 0x02, 0x96, 0x19, 0x00, + 0x00, 0x00, 0x00, 0x36, 0x74, 0x00, + 0x00, 0x00, 0x00, 0x05, 0xB0, 0x12, + 0x00, 0x00, 0x00, 0x00, 0x4F, 0x62, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x2B, 0xC2, 0xCE, 0xB9, 0x0A, 0x00, + 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, + 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, + 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, + 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, + 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, + 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, + 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, + 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, + 0x2B, 0xBE, 0xC8, 0xA6, 0x07, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x05, 0x05, 0x00, 0x00, + 0x00, 0x00, 0x4B, 0x57, 0x00, 0x00, + 0x00, 0x03, 0xA9, 0xA1, 0x04, 0x00, + 0x00, 0x24, 0x87, 0x8C, 0x2B, 0x00, + 0x00, 0x7C, 0x33, 0x2D, 0x7C, 0x00, + 0x0E, 0xB9, 0x06, 0x05, 0xB0, 0x12, + 0x51, 0x63, 0x00, 0x00, 0x57, 0x5B, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xB2, 0xD7, 0xD7, 0xD7, 0xD7, 0x9F, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x03, 0x61, 0x7A, 0x08, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x67, 0xC0, 0xE9, 0x72, 0x00, + 0x00, 0x0D, 0x00, 0x25, 0xD9, 0x07, + 0x00, 0x37, 0xB5, 0xCE, 0xB8, 0x0A, + 0x0B, 0xD8, 0x2C, 0x1B, 0xDB, 0x0A, + 0x16, 0xE1, 0x13, 0x3C, 0xE7, 0x0B, + 0x02, 0x87, 0xB1, 0x7A, 0xAC, 0x85, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x1B, 0xDB, 0x0A, 0x00, 0x00, 0x00, + 0x1B, 0xDB, 0x0A, 0x00, 0x00, 0x00, + 0x1B, 0xDB, 0x0A, 0x00, 0x00, 0x00, + 0x1B, 0xDF, 0x81, 0xC5, 0xAC, 0x24, + 0x1B, 0xF0, 0x52, 0x00, 0x56, 0x99, + 0x1B, 0xDB, 0x0A, 0x00, 0x22, 0xD9, + 0x1B, 0xDB, 0x0A, 0x00, 0x24, 0xD5, + 0x1B, 0xE9, 0x29, 0x00, 0x6B, 0x84, + 0x24, 0xD4, 0x9F, 0xCA, 0x98, 0x0F, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x20, 0xB2, 0xAF, 0xDA, 0x38, + 0x08, 0xB3, 0x5E, 0x00, 0x00, 0x06, + 0x21, 0xDF, 0x0C, 0x00, 0x00, 0x00, + 0x1F, 0xDF, 0x0C, 0x00, 0x00, 0x00, + 0x06, 0xB4, 0x5E, 0x00, 0x00, 0x05, + 0x00, 0x22, 0xB6, 0xB0, 0xD5, 0x36, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x1B, 0xDB, + 0x00, 0x00, 0x00, 0x00, 0x1B, 0xDB, + 0x00, 0x00, 0x00, 0x00, 0x1B, 0xDB, + 0x00, 0x24, 0xBE, 0xAC, 0x7E, 0xE2, + 0x04, 0xAE, 0x52, 0x00, 0x4E, 0xE4, + 0x13, 0xDF, 0x0C, 0x00, 0x1B, 0xDB, + 0x18, 0xDF, 0x09, 0x00, 0x1B, 0xDB, + 0x07, 0xD4, 0x2E, 0x01, 0x6F, 0xB7, + 0x00, 0x46, 0xE2, 0xA5, 0x62, 0xDD, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x0A, 0x18, 0xA8, 0xC9, 0xAA, 0x2D, + 0x0F, 0x9F, 0x2B, 0x00, 0x33, 0x9D, + 0x21, 0xEE, 0xAA, 0xD3, 0xC8, 0xA5, + 0x23, 0xE0, 0x0D, 0x00, 0x00, 0x00, + 0x0E, 0xB4, 0x61, 0x00, 0x00, 0x13, + 0x0A, 0x1D, 0xAC, 0xAF, 0xCA, 0x91, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x69, 0xE3, 0x9B, 0x7C, + 0x00, 0x10, 0xE0, 0x18, 0x00, 0x02, + 0x00, 0x1A, 0xDB, 0x08, 0x00, 0x00, + 0x67, 0xCE, 0xFF, 0xAD, 0xD6, 0x58, + 0x03, 0x1B, 0xDB, 0x0A, 0x00, 0x00, + 0x07, 0x1B, 0xDB, 0x0A, 0x00, 0x00, + 0x00, 0x1B, 0xDB, 0x0A, 0x00, 0x00, + 0x01, 0x1B, 0xDB, 0x0A, 0x00, 0x00, + 0x05, 0x1B, 0xDB, 0x0A, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x21, 0xBC, 0xAB, 0x79, 0xDF, + 0x03, 0xAB, 0x52, 0x00, 0x52, 0xB4, + 0x13, 0xDE, 0x0C, 0x00, 0x1B, 0xDB, + 0x18, 0xDF, 0x09, 0x00, 0x1B, 0xDB, + 0x08, 0xD2, 0x32, 0x01, 0x72, 0xB7, + 0x00, 0x41, 0xE2, 0xA8, 0x6A, 0xD6, + 0x00, 0x06, 0x00, 0x00, 0x41, 0x8F, + 0x00, 0x71, 0xD9, 0xC9, 0x9A, 0x1B, + + 0x1B, 0xDB, 0x0A, 0x00, 0x00, 0x00, + 0x1B, 0xDB, 0x0A, 0x00, 0x00, 0x00, + 0x1B, 0xDB, 0x0A, 0x00, 0x00, 0x00, + 0x26, 0xE1, 0x93, 0xD5, 0x76, 0x00, + 0x26, 0xF2, 0x39, 0x29, 0xDA, 0x07, + 0x26, 0xDB, 0x0A, 0x1B, 0xDB, 0x0A, + 0x26, 0xDB, 0x0A, 0x1B, 0xDB, 0x0A, + 0x26, 0xDB, 0x0A, 0x1B, 0xDB, 0x0A, + 0x24, 0xDB, 0x0A, 0x1B, 0xDB, 0x0A, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x15, 0xAF, 0x06, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x0E, 0xB5, 0xCE, 0xB9, 0x0A, 0x00, + 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, + 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, + 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, + 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, + 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x15, 0xAF, 0x06, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x25, 0xBF, 0xCE, 0xB9, 0x0A, 0x00, + 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, + 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, + 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, + 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, + 0x00, 0x00, 0x1B, 0xDA, 0x08, 0x00, + 0x09, 0x00, 0x2E, 0xA1, 0x05, 0x00, + 0x70, 0xDA, 0xDE, 0x49, 0x00, 0x00, + + 0x1B, 0xDB, 0x0A, 0x00, 0x00, 0x00, + 0x1B, 0xDB, 0x0A, 0x00, 0x00, 0x00, + 0x1B, 0xDB, 0x0A, 0x00, 0x00, 0x00, + 0x1B, 0xDB, 0x0A, 0x36, 0x98, 0x08, + 0x1B, 0xDB, 0x25, 0xCB, 0x1E, 0x00, + 0x1B, 0xE5, 0xC1, 0x3F, 0x00, 0x00, + 0x1B, 0xDF, 0x96, 0x99, 0x06, 0x00, + 0x1B, 0xDB, 0x13, 0xAA, 0x79, 0x00, + 0x1B, 0xDB, 0x0A, 0x14, 0xC9, 0x53, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x1C, 0xBB, 0xCE, 0xB9, 0x0A, 0x00, + 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, + 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, + 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, + 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, + 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, + 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, + 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, + 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x1B, 0xE1, 0x9D, 0x90, 0x93, 0x92, + 0x1B, 0xF0, 0x4C, 0xEE, 0x47, 0xD9, + 0x1B, 0xDC, 0x28, 0xDB, 0x28, 0xDB, + 0x1B, 0xDB, 0x28, 0xDB, 0x28, 0xDB, + 0x1B, 0xDB, 0x28, 0xDB, 0x28, 0xDB, + 0x1B, 0xDB, 0x28, 0xDB, 0x28, 0xDB, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x24, 0xE1, 0x93, 0xD5, 0x76, 0x00, + 0x25, 0xF2, 0x39, 0x29, 0xDA, 0x07, + 0x26, 0xDB, 0x0A, 0x1B, 0xDB, 0x0A, + 0x26, 0xDB, 0x0A, 0x1B, 0xDB, 0x0A, + 0x26, 0xDB, 0x0A, 0x1B, 0xDB, 0x0A, + 0x26, 0xDB, 0x0A, 0x1B, 0xDB, 0x0A, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x27, 0xBE, 0xA1, 0x9A, 0x17, + 0x05, 0xB5, 0x3D, 0x00, 0x6D, 0x8D, + 0x15, 0xDE, 0x0C, 0x00, 0x23, 0xD7, + 0x15, 0xDE, 0x0C, 0x00, 0x23, 0xD7, + 0x05, 0xB6, 0x3B, 0x01, 0x6B, 0x8E, + 0x00, 0x29, 0xBF, 0xA1, 0x9B, 0x18, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x1B, 0xDF, 0x81, 0xC5, 0xAB, 0x24, + 0x1B, 0xF0, 0x51, 0x00, 0x56, 0x99, + 0x1B, 0xDB, 0x0A, 0x00, 0x22, 0xD9, + 0x1B, 0xDB, 0x0A, 0x00, 0x24, 0xD5, + 0x1B, 0xE9, 0x29, 0x00, 0x6B, 0x84, + 0x1B, 0xE6, 0xA6, 0xCA, 0x98, 0x0F, + 0x1B, 0xDB, 0x0A, 0x00, 0x00, 0x00, + 0x1B, 0xDB, 0x0A, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x24, 0xBE, 0xAC, 0x75, 0xD9, + 0x07, 0xAE, 0x52, 0x00, 0x4E, 0xE4, + 0x20, 0xDF, 0x0C, 0x00, 0x1B, 0xDB, + 0x21, 0xDF, 0x09, 0x00, 0x1B, 0xDB, + 0x08, 0xD4, 0x2E, 0x01, 0x6F, 0xB7, + 0x00, 0x46, 0xE2, 0xA5, 0x62, 0xDD, + 0x00, 0x00, 0x00, 0x00, 0x1B, 0xDB, + 0x00, 0x00, 0x00, 0x00, 0x1B, 0xDB, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x0A, 0x1B, 0xDF, 0x83, 0xC5, 0xAE, + 0x0A, 0x1B, 0xF5, 0x5D, 0x04, 0x6F, + 0x0A, 0x1B, 0xDB, 0x0A, 0x00, 0x00, + 0x0A, 0x1B, 0xDB, 0x0A, 0x00, 0x00, + 0x0A, 0x1B, 0xDB, 0x0A, 0x00, 0x00, + 0x0A, 0x1B, 0xDB, 0x0A, 0x00, 0x00, + 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x0D, 0x80, 0xE3, 0xD9, 0x72, 0x00, + 0x1C, 0xE3, 0x13, 0x00, 0x05, 0x00, + 0x06, 0xAE, 0xAC, 0x55, 0x06, 0x00, + 0x00, 0x03, 0x46, 0xB5, 0x99, 0x02, + 0x0A, 0x0D, 0x00, 0x2E, 0xD9, 0x07, + 0x22, 0xBF, 0x9D, 0xB0, 0x4D, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x1B, 0xDB, 0x0A, 0x00, 0x00, + 0x49, 0xCD, 0xFF, 0xAD, 0xA7, 0x2D, + 0x00, 0x1B, 0xDB, 0x0A, 0x00, 0x00, + 0x00, 0x1B, 0xDB, 0x0A, 0x00, 0x00, + 0x00, 0x1A, 0xDB, 0x0A, 0x00, 0x00, + 0x00, 0x13, 0xDE, 0x12, 0x00, 0x00, + 0x00, 0x02, 0x86, 0xEE, 0xAB, 0x39, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x1B, 0xDB, 0x0A, 0x1B, 0xDB, 0x0B, + 0x1B, 0xDB, 0x0A, 0x1B, 0xDB, 0x0A, + 0x1B, 0xDB, 0x0A, 0x1B, 0xDB, 0x0A, + 0x1B, 0xDB, 0x0A, 0x1B, 0xDB, 0x0A, + 0x16, 0xE3, 0x14, 0x70, 0xB8, 0x0A, + 0x03, 0x9C, 0xBC, 0x70, 0xDE, 0x0A, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x75, 0x6F, 0x00, 0x00, 0x3E, 0x7B, + 0x24, 0xD0, 0x06, 0x02, 0x97, 0x2A, + 0x03, 0xAD, 0x2F, 0x18, 0xBD, 0x04, + 0x00, 0x5B, 0x82, 0x66, 0x60, 0x00, + 0x00, 0x15, 0xDC, 0xD2, 0x15, 0x00, + 0x00, 0x01, 0x9E, 0x94, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xC3, 0x13, 0x29, 0x39, 0x07, 0xAF, + 0x9A, 0x2C, 0x89, 0x9B, 0x12, 0xAD, + 0x78, 0x44, 0xA1, 0xB3, 0x30, 0x6F, + 0x47, 0x84, 0x70, 0x7D, 0x62, 0x3F, + 0x2C, 0xEA, 0x3D, 0x45, 0xA9, 0x29, + 0x13, 0xE9, 0x19, 0x23, 0xE9, 0x0D, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x3F, 0xE2, 0x15, 0x06, 0xBA, 0x27, + 0x02, 0x7C, 0x91, 0x67, 0x75, 0x00, + 0x00, 0x0C, 0xC3, 0xB2, 0x0E, 0x00, + 0x00, 0x0E, 0xC2, 0xB8, 0x13, 0x00, + 0x00, 0x7F, 0x62, 0x7F, 0x8D, 0x02, + 0x32, 0x94, 0x04, 0x0C, 0xC0, 0x3E, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x53, 0x87, 0x00, 0x00, 0x3D, 0x79, + 0x10, 0xD1, 0x12, 0x02, 0x99, 0x27, + 0x00, 0x85, 0x5E, 0x1C, 0x91, 0x03, + 0x00, 0x2A, 0x9E, 0x7B, 0x54, 0x00, + 0x00, 0x04, 0xB4, 0xB2, 0x0C, 0x00, + 0x00, 0x00, 0x66, 0x7C, 0x00, 0x00, + 0x00, 0x05, 0xA6, 0x26, 0x00, 0x00, + 0x2F, 0xDE, 0x70, 0x01, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x05, 0x9E, 0xD7, 0xC9, 0xFB, 0x72, + 0x00, 0x00, 0x00, 0x29, 0xD4, 0x12, + 0x00, 0x00, 0x0F, 0xCB, 0x2F, 0x00, + 0x00, 0x03, 0x98, 0x65, 0x00, 0x00, + 0x00, 0x68, 0x8A, 0x03, 0x00, 0x00, + 0x0B, 0xDA, 0xB5, 0xD7, 0xD7, 0x6C, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x02, 0x85, 0xB3, 0x4D, + 0x00, 0x00, 0x17, 0xE1, 0x0D, 0x00, + 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, + 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, + 0x00, 0x00, 0x2F, 0xA0, 0x05, 0x00, + 0x00, 0x39, 0xF1, 0x54, 0x00, 0x00, + 0x00, 0x00, 0x2A, 0xD4, 0x06, 0x00, + 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, + 0x00, 0x00, 0x19, 0xE1, 0x0D, 0x00, + 0x00, 0x00, 0x03, 0x7E, 0xD6, 0x4C, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, + 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, + 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, + 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, + 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, + 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, + 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, + 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, + 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, + 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x6E, 0xE2, 0x61, 0x00, 0x00, + 0x00, 0x00, 0x27, 0xDA, 0x07, 0x00, + 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, + 0x00, 0x00, 0x1A, 0xDB, 0x0A, 0x00, + 0x00, 0x00, 0x0D, 0xD8, 0x15, 0x00, + 0x00, 0x00, 0x00, 0x76, 0xB8, 0x24, + 0x00, 0x00, 0x13, 0xDD, 0x13, 0x00, + 0x00, 0x00, 0x1B, 0xDB, 0x0A, 0x00, + 0x00, 0x00, 0x27, 0xDD, 0x08, 0x00, + 0x00, 0x6C, 0xD7, 0x62, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x70, 0xD2, 0x67, 0x0B, 0x72, + 0x07, 0x79, 0x0A, 0x69, 0xD2, 0x71, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }; diff --git a/src/gui/gui.cpp b/src/gui/gui.cpp index 78d4a74..022c2fd 100644 --- a/src/gui/gui.cpp +++ b/src/gui/gui.cpp @@ -23,6 +23,7 @@ #include "gui.h" #include "apple2.h" #include "diskselector.h" +#include "floppydrive.h" #include "log.h" #include "video.h" @@ -224,9 +225,9 @@ void GUI::MouseDown(int32_t x, int32_t y, uint32_t buttons) case 1: SpawnMessage("*** DISK #1 ***"); - if (disk1EjectHovered && !floppyDrive.IsEmpty(0)) + if (disk1EjectHovered && !floppyDrive[0].IsEmpty(0)) { - floppyDrive.EjectImage(0); + floppyDrive[0].EjectImage(0); SpawnMessage("*** DISK #1 EJECTED ***"); } @@ -241,9 +242,9 @@ void GUI::MouseDown(int32_t x, int32_t y, uint32_t buttons) case 2: SpawnMessage("*** DISK #2 ***"); - if (disk2EjectHovered && !floppyDrive.IsEmpty(1)) + if (disk2EjectHovered && !floppyDrive[0].IsEmpty(1)) { - floppyDrive.EjectImage(1); + floppyDrive[0].EjectImage(1); SpawnMessage("*** DISK #2 EJECTED ***"); } @@ -256,7 +257,7 @@ void GUI::MouseDown(int32_t x, int32_t y, uint32_t buttons) break; // Swap disks case 3: - floppyDrive.SwapImages(); + floppyDrive[0].SwapImages(); SpawnMessage("*** DISKS SWAPPED ***"); break; // Save state @@ -345,8 +346,8 @@ void GUI::MouseMove(int32_t x, int32_t y, uint32_t buttons) // Show what's in the selected drive if (iconSelected >= 1 && iconSelected <= 2) { - if (!floppyDrive.IsEmpty(iconSelected - 1)) - SpawnMessage("\"%s\"", floppyDrive.ImageName(iconSelected - 1)); + if (!floppyDrive[0].IsEmpty(iconSelected - 1)) + SpawnMessage("\"%s\"", floppyDrive[0].ImageName(iconSelected - 1)); } } } @@ -401,7 +402,7 @@ void GUI::AssembleDriveIcon(SDL_Renderer * renderer, int driveNumber) // Drive door @ (16, 7) SDL_Rect dst; dst.w = 8, dst.h = 10, dst.x = 16, dst.y = 7; - SDL_RenderCopy(renderer, (floppyDrive.IsEmpty(driveNumber) ? + SDL_RenderCopy(renderer, (floppyDrive[0].IsEmpty(driveNumber) ? doorOpen : doorClosed), NULL, &dst); // Numeral @ (30, 20) @@ -416,7 +417,7 @@ void GUI::AssembleDriveIcon(SDL_Renderer * renderer, int driveNumber) void GUI::DrawEjectButton(SDL_Renderer * renderer, int driveNumber) { - if (floppyDrive.IsEmpty(driveNumber)) + if (floppyDrive[0].IsEmpty(driveNumber)) return; uint8_t r = 0x00, g = 0xAA, b = 0x00; @@ -431,7 +432,7 @@ void GUI::DrawEjectButton(SDL_Renderer * renderer, int driveNumber) void GUI::DrawDriveLight(SDL_Renderer * renderer, int driveNumber) { - int lightState = floppyDrive.DriveLightStatus(driveNumber); + int lightState = floppyDrive[0].DriveLightStatus(driveNumber); int r = 0x77, g = 0x00, b = 0x00; if (lightState == DLS_READ) diff --git a/src/log.cpp b/src/log.cpp index fb05d36..0c20bf4 100644 --- a/src/log.cpp +++ b/src/log.cpp @@ -27,7 +27,7 @@ static uint32_t logSize = 0; bool InitLog(const char * path) { - log_stream = fopen(path, "wrt"); + log_stream = fopen(path, "w"); if (log_stream == NULL) return false; diff --git a/src/mmu.cpp b/src/mmu.cpp index 653eac9..d0f6b5d 100644 --- a/src/mmu.cpp +++ b/src/mmu.cpp @@ -13,10 +13,9 @@ #include "mmu.h" #include "apple2.h" -#include "ay8910.h" #include "firmware.h" #include "log.h" -#include "mos6522via.h" +#include "mockingboard.h" #include "sound.h" #include "video.h" @@ -27,10 +26,6 @@ // Address Map enumeration enum { AM_RAM, AM_ROM, AM_BANKED, AM_READ, AM_WRITE, AM_READ_WRITE, AM_END_OF_LIST }; -// Macros for function pointers -#define READFUNC(x) uint8_t (* x)(uint16_t) -#define WRITEFUNC(x) void (* x)(uint16_t, uint8_t) - // Internal vars uint8_t ** addrPtrRead[0x10000]; uint8_t ** addrPtrWrite[0x10000]; @@ -39,6 +34,14 @@ uint16_t addrOffset[0x10000]; READFUNC(funcMapRead[0x10000]); WRITEFUNC(funcMapWrite[0x10000]); +READFUNC(slotHandlerR[8]); +WRITEFUNC(slotHandlerW[8]); + +READFUNC(slotHandler2KR[8]); +WRITEFUNC(slotHandler2KW[8]); + +uint8_t enabledSlot; + struct AddressMap { uint16_t start; @@ -69,7 +72,8 @@ uint8_t * mainMemoryTextW = &ram[0x0400]; // $0400 - $07FF (write) uint8_t * mainMemoryHGRR = &ram[0x2000]; // $2000 - $3FFF (read) uint8_t * mainMemoryHGRW = &ram[0x2000]; // $2000 - $3FFF (write) -uint8_t * slotMemory = &rom[0xC100]; // $C100 - $CFFF +uint8_t * slotMemory = &rom[0xC100]; // $C100 - $C7FF +uint8_t * peripheralMemory= &rom[0xC800]; // $C800 - $CFFF uint8_t * slot3Memory = &rom[0xC300]; // $C300 - $C3FF uint8_t * slot4Memory = &rom[0xC400]; // $C400 - $C4FF uint8_t * slot6Memory = &diskROM[0]; // $C600 - $C6FF @@ -84,6 +88,10 @@ uint8_t ReadNOP(uint16_t); void WriteNOP(uint16_t, uint8_t); uint8_t ReadMemory(uint16_t); void WriteMemory(uint16_t, uint8_t); +uint8_t SlotR(uint16_t address); +void SlotW(uint16_t address, uint8_t byte); +uint8_t Slot2KR(uint16_t address); +void Slot2KW(uint16_t address, uint8_t byte); uint8_t ReadKeyboard(uint16_t); void Switch80STORE(uint16_t, uint8_t); void SwitchRAMRD(uint16_t, uint8_t); @@ -91,6 +99,8 @@ void SwitchRAMWRT(uint16_t, uint8_t); void SwitchSLOTCXROM(uint16_t, uint8_t); void SwitchALTZP(uint16_t, uint8_t); void SwitchSLOTC3ROM(uint16_t, uint8_t); +uint8_t SwitchINTC8ROMR(uint16_t); +void SwitchINTC8ROMW(uint16_t, uint8_t); void Switch80COL(uint16_t, uint8_t); void SwitchALTCHARSET(uint16_t, uint8_t); uint8_t ReadKeyStrobe(uint16_t); @@ -126,19 +136,11 @@ void SwitchHIRESW(uint16_t, uint8_t); uint8_t SwitchDHIRESR(uint16_t); void SwitchDHIRESW(uint16_t, uint8_t); void SwitchIOUDIS(uint16_t, uint8_t); -uint8_t Slot6R(uint16_t); -void Slot6W(uint16_t, uint8_t); -void HandleSlot6(uint16_t, uint8_t); -uint8_t MBRead(uint16_t); -void MBWrite(uint16_t, uint8_t); uint8_t ReadButton0(uint16_t); uint8_t ReadButton1(uint16_t); uint8_t ReadPaddle0(uint16_t); uint8_t ReadIOUDIS(uint16_t); uint8_t ReadDHIRES(uint16_t); -uint8_t ReadFloatingBus(uint16_t); -//uint8_t SwitchR(uint16_t); -//void SwitchW(uint16_t, uint8_t); // The main Apple //e memory map @@ -191,22 +193,42 @@ AddressMap memoryMap[] = { { 0xC061, 0xC061, AM_READ, 0, 0, ReadButton0, 0 }, { 0xC062, 0xC062, AM_READ, 0, 0, ReadButton1, 0 }, { 0xC064, 0xC067, AM_READ, 0, 0, ReadPaddle0, 0 }, -// { 0xC07E, 0xC07F, AM_READ_WRITE, 0, 0, SwitchIOUDISR, SwitchIOUDISW }, { 0xC07E, 0xC07E, AM_READ_WRITE, 0, 0, ReadIOUDIS, SwitchIOUDIS }, { 0xC07F, 0xC07F, AM_READ_WRITE, 0, 0, ReadDHIRES, SwitchIOUDIS }, { 0xC080, 0xC08F, AM_READ_WRITE, 0, 0, SwitchLCR, SwitchLCW }, - { 0xC0E0, 0xC0EF, AM_READ_WRITE, 0, 0, Slot6R, Slot6W }, - { 0xC100, 0xCFFF, AM_ROM, &slotMemory, 0, 0, 0 }, - // This will overlay the slotMemory accessors for slot 6 ROM - { 0xC300, 0xC3FF, AM_ROM, &slot3Memory, 0, 0, 0 }, - { 0xC600, 0xC6FF, AM_ROM, &slot6Memory, 0, 0, 0 }, - { 0xC400, 0xC4FF, AM_READ_WRITE, 0, 0, MBRead, MBWrite }, + { 0xC100, 0xC7FF, AM_READ_WRITE, 0, 0, SlotR, SlotW }, + { 0xC800, 0xCFFE, AM_READ_WRITE, 0, 0, Slot2KR, Slot2KW }, + { 0xCFFF, 0xCFFF, AM_READ_WRITE, 0, 0, SwitchINTC8ROMR, SwitchINTC8ROMW }, { 0xD000, 0xDFFF, AM_BANKED, &lcBankMemoryR, &lcBankMemoryW, 0, 0 }, { 0xE000, 0xFFFF, AM_BANKED, &upperMemoryR, &upperMemoryW, 0, 0 }, ADDRESS_MAP_END }; +/* +Some stuff that may be useful: + +N.B.: Page 5-22 of UTA2E has INTC8ROM ON/OFF backwards +INTC8ROM is turned OFF by R/W access to $CFFF +INTC8ROM is turned ON by $C3xx access and SLOTC3ROM' (off) +WRONG: (INTC8ROM on puts card's slot ROM/RAM(?) access in $C800-$CFFF) + +OK, so it's slightly more complex than that. Basically, when there is an access to $CFFF, all peripheral cards must *stop* responding to I/O STROBE'. Only when a card gets an I/O SELECT' signal, can it respond to I/O STROBE'. + +INTC8ROM inhibits I/O STROBE' and activates the MB ROM in $C800-$CFFF +INTC8ROM is 1 by access to $C3xx when SLOTC3ROM is 0 +INTC8ROM is 0 by access to $CFFF + +ICX = INTCXROM (aka SLOTCXROM), SC3 = SLOTC3ROM + + ICX=0,SC3=0 ICX=0,SC3=1 ICX=1,SC3=0 ICX=1,SC3=1 +$C100-$C2FF slot slot internal internal +$C300-$C3FF internal slot internal internal +$C400-$CFFF slot slot internal internal + +Read from $C800-$CFFF causes I/O STROBE to go low (and INTCXROM and INTC8ROM are not set) + +*/ void SetupAddressMap(void) @@ -220,6 +242,14 @@ void SetupAddressMap(void) addrOffset[i] = 0; } + for(uint32_t i=0; i<8; i++) + { + slotHandlerR[i] = ReadNOP; + slotHandlerW[i] = WriteNOP; + slotHandler2KR[i] = ReadNOP; + slotHandler2KW[i] = WriteNOP; + } + uint32_t i=0; while (memoryMap[i].type != AM_END_OF_LIST) @@ -310,10 +340,54 @@ void ResetMMUPointers(void) mainMemoryW = (ramwrt ? &ram2[0x0200] : &ram[0x0200]); mainMemoryHGRW = (ramwrt ? &ram2[0x2000] : &ram[0x2000]); - slot6Memory = (slotCXROM ? &diskROM[0] : &rom[0xC600]); - slot3Memory = (slotC3ROM ? &rom[0] : &rom[0xC300]); +// slot6Memory = (intCXROM ? &rom[0xC600] : &diskROM[0]); +// slot3Memory = (slotC3ROM ? &rom[0] : &rom[0xC300]); pageZeroMemory = (altzp ? &ram2[0x0000] : &ram[0x0000]); SwitchLC(); +#if 1 +WriteLog("RAMWRT = %s\n", (ramwrt ? "ON" : "off")); +WriteLog("RAMRD = %s\n", (ramrd ? "ON" : "off")); +WriteLog("SLOTCXROM = %s\n", (intCXROM ? "ON" : "off")); +WriteLog("SLOTC3ROM = %s\n", (slotC3ROM ? "ON" : "off")); +WriteLog("ALTZP = %s\n", (altzp ? "ON" : "off")); +#endif +} + + +// +// Set up slot access +// +void InstallSlotHandler(uint8_t slot, SlotData * slotData) +{ + // Sanity check + if (slot > 7) + { + WriteLog("InstallSlotHanlder: Caller attempted to put device into slot #%u...\n", slot); + return; + } + + // Set up I/O read & write functions + for(uint32_t i=0; i<16; i++) + { + if (slotData->ioR) + funcMapRead[0xC080 + (slot * 16) + i] = slotData->ioR; + + if (slotData->ioW) + funcMapWrite[0xC080 + (slot * 16) + i] = slotData->ioW; + } + + // Set up memory access read/write functions + if (slotData->pageR) + slotHandlerR[slot] = slotData->pageR; + + if (slotData->pageW) + slotHandlerW[slot] = slotData->pageW; + + if (slotData->extraR) + slotHandler2KR[slot] = slotData->extraR; + + if (slotData->extraW) + slotHandler2KW[slot] = slotData->extraW; } @@ -322,7 +396,8 @@ void ResetMMUPointers(void) // uint8_t ReadNOP(uint16_t) { - return 0; + // This is for unconnected reads, and some software looks at addresses like these. In particular, Mr. Robot and His Robot Factory failed in that it was looking at the first byte of each slots 256 byte driver space and failing if it saw a zero there. Now I have no idea what happens in the real hardware, but I suspect it would return something that looks like ReadFloatingBus(). + return 0xFF; } @@ -357,16 +432,130 @@ void WriteMemory(uint16_t address, uint8_t byte) // uint8_t AppleReadMem(uint16_t address) { +#if 0 +if (address == 0xD4 || address == 0xAC20) + WriteLog("Reading $%X...\n", address); +#endif +#if 0 + uint8_t memRead = (*(funcMapRead[address]))(address); +static uint16_t lastAddr = 0; +static uint32_t lastCount = 0; +if ((address > 0xC000 && address < 0xC100) || address == 0xC601) +{ + if (lastAddr == address) + lastCount++; + else + { + if (lastCount > 1) + WriteLog("%d times...\n", lastCount); + + WriteLog("Reading $%02X from $%X ($%02X, $%02X)\n", memRead, address, diskROM[1], rom[0xC601]); + lastCount = 1; + lastAddr = address; + } +} + return memRead; +#else return (*(funcMapRead[address]))(address); +#endif } void AppleWriteMem(uint16_t address, uint8_t byte) { +#if 0 +static uint16_t lastAddr = 0; +static uint32_t lastCount = 0; +if ((address > 0xC000 && address < 0xC100) || address == 0xC601) +{ + if (lastAddr == address) + lastCount++; + else + { + if (lastCount > 1) + WriteLog("%d times...\n", lastCount); + + WriteLog("Writing to $%X\n", address); + lastCount = 1; + lastAddr = address; + } +} +#endif +#if 0 +if (address == 0xD4 || address == 0xAC20) + WriteLog("Writing $%02X @ $%X...\n", byte, address); +#endif +#if 0 +//if (address >= 0x0827 && address <= 0x082A) +if (address == 0x000D) + WriteLog("Writing $%02X @ $%X (PC=$%04X)...\n", byte, address, mainCPU.pc); +#endif (*(funcMapWrite[address]))(address, byte); } +// +// Generic slot handlers. These are set up here so that we can catch INTCXROM, +// INTC8ROM & SLOTC3ROM here instead of having to catch them in each slot handler. +// +uint8_t SlotR(uint16_t address) +{ +//WriteLog("SlotR: address=$%04X, intCXROM=%d, slotC3ROM=%d, intC8ROM=%d\n", address, intCXROM, slotC3ROM, intC8ROM); + if (intCXROM) + return rom[address]; + + uint8_t slot = (address & 0xF00) >> 8; + enabledSlot = slot; + + if ((slotC3ROM == 0) && (slot == 3)) + { + intC8ROM = 1; + return rom[address]; + } + + return (*(slotHandlerR[slot]))(address & 0xFF); +} + + +void SlotW(uint16_t address, uint8_t byte) +{ + if (intCXROM) + return; + + uint8_t slot = (address & 0xF00) >> 8; + enabledSlot = slot; + + if ((slotC3ROM == 0) && (slot == 3)) + { + intC8ROM = 1; + return; + } + + (*(slotHandlerW[slot]))(address & 0xFF, byte); +} + + +// +// Slot handling for 2K address space at $C800-$CFFF +// +uint8_t Slot2KR(uint16_t address) +{ + if (intCXROM || intC8ROM) + return rom[address]; + + return (*(slotHandler2KR[enabledSlot]))(address & 0x7FF); +} + + +void Slot2KW(uint16_t address, uint8_t byte) +{ + if (intCXROM || intC8ROM) + return; + + (*(slotHandler2KW[enabledSlot]))(address & 0x7FF, byte); +} + + // // Actual emulated I/O functions follow // @@ -420,13 +609,39 @@ void SwitchRAMWRT(uint16_t address, uint8_t) } +// +// Since any slots that aren't populated are set to read from the ROM anyway, +// we only concern ourselves with switching populated slots here. (Note that +// the MB slot is a split ROM / I/O device, and it's taken care of in the +// MB handler.) +// +// N.B.: SLOTCXROM is also INTCXROM +// void SwitchSLOTCXROM(uint16_t address, uint8_t) { -//WriteLog("Setting SLOTCXROM to %s...\n", ((address & 0x01) ^ 0x01 ? "ON" : "off")); - // This is the only soft switch that breaks the usual convention. - slotCXROM = !((bool)(address & 0x01)); -// slot3Memory = (slotCXROM ? &rom[0] : &rom[0xC300]); - slot6Memory = (slotCXROM ? &diskROM[0] : &rom[0xC600]); +WriteLog("Setting SLOTCXROM to %s...\n", (address & 0x01 ? "ON" : "off")); + intCXROM = (bool)(address & 0x01); + + // INTC8ROM trumps all (only in the $C800--$CFFF range... which we don't account for yet... :-/) +// if (intC8ROM) +// return; +#if 0 +#if 1 + if (intCXROM) + { + slot3Memory = &rom[0xC300]; + slot6Memory = &rom[0xC600]; + } + else + { + slot3Memory = (slotC3ROM ? &rom[0] : &rom[0xC300]); + slot6Memory = &diskROM[0]; + } +#else +// slot3Memory = (intCXROM ? &rom[0xC300] : &rom[0]); + slot6Memory = (intCXROM ? &rom[0xC600] : &diskROM[0]); +#endif +#endif } @@ -438,16 +653,54 @@ void SwitchALTZP(uint16_t address, uint8_t) } //extern bool dumpDis; - +// +// The interpretation of this name is that if it's set then we access the ROM +// for the card actually sitting in SLOT 3 (if any) +// void SwitchSLOTC3ROM(uint16_t address, uint8_t) { //dumpDis = true; //WriteLog("Setting SLOTC3ROM to %s...\n", (address & 0x01 ? "ON" : "off")); slotC3ROM = (bool)(address & 0x01); +#if 1 + if (intCXROM) + slot3Memory = &rom[0xC300]; + else + slot3Memory = (slotC3ROM ? &rom[0] : &rom[0xC300]); +#else // slotC3ROM = false; // Seems the h/w forces this with an 80 column card in slot 3... slot3Memory = (slotC3ROM ? &rom[0] : &rom[0xC300]); // slot3Memory = &rom[0xC300]; +#endif +} + + +/* +We need to see where this is being switched from; if we know that, we can switch in the appropriate ROM to $C800-$CFFF. N.B.: Will probably need a custom handler routine, as some cards (like the Apple Hi-Speed SCSI card) split the 2K range into a 1K RAM space and a 1K bank switch ROM space. +*/ +// +// This is a problem with split ROM / I/O regions. Because we can't do that +// cleanly, we have to have a read handler for this. +// +// N.B.: We could add AM_IOREAD_WRITE and AM_READ_IOWRITE to the memory handlers +// to take care of split ROM / I/O regions... +// +uint8_t SwitchINTC8ROMR(uint16_t) +{ +WriteLog("Hitting INTC8ROM (read)...\n"); + intC8ROM = false; + return rom[0xCFFF]; +} + + +// +// This resets the INTC8ROM switch (RW) +// +void SwitchINTC8ROMW(uint16_t, uint8_t) +{ +WriteLog("Hitting INTC8ROM (write)...\n"); + intC8ROM = false; } @@ -460,13 +713,14 @@ void Switch80COL(uint16_t address, uint8_t) void SwitchALTCHARSET(uint16_t address, uint8_t) { alternateCharset = (bool)(address & 0x01); +WriteLog("Setting ALTCHARSET to %s...\n", (alternateCharset ? "ON" : "off")); } uint8_t ReadKeyStrobe(uint16_t) { -// No character data is read from here, just the 'any key was pressed' signal... -// uint8_t byte = lastKeyPressed | ((uint8_t)keyDown << 7); + // No character data is read from here, just the 'any key was pressed' + // signal... uint8_t byte = (uint8_t)keyDown << 7; keyDown = false; return byte; @@ -501,7 +755,7 @@ uint8_t ReadRAMWRT(uint16_t) uint8_t ReadSLOTCXROM(uint16_t) { - return (uint8_t)slotCXROM << 7; + return (uint8_t)intCXROM << 7; } @@ -513,7 +767,6 @@ uint8_t ReadALTZP(uint16_t) uint8_t ReadSLOTC3ROM(uint16_t) { -// return 0; return (uint8_t)slotC3ROM << 7; } @@ -774,300 +1027,6 @@ void SwitchIOUDIS(uint16_t address, uint8_t) } -uint8_t Slot6R(uint16_t address) -{ -//WriteLog("Slot6R: address = %X\n", address & 0x0F); -// HandleSlot6(address, 0); -// return 0; - uint8_t state = address & 0x0F; - - switch (state) - { - case 0x00: - case 0x01: - case 0x02: - case 0x03: - case 0x04: - case 0x05: - case 0x06: - case 0x07: - floppyDrive.ControlStepper(state); - break; - case 0x08: - case 0x09: - floppyDrive.ControlMotor(state & 0x01); - break; - case 0x0A: - case 0x0B: - floppyDrive.DriveEnable(state & 0x01); - break; - case 0x0C: - return floppyDrive.ReadWrite(); - break; - case 0x0D: - return floppyDrive.GetLatchValue(); - break; - case 0x0E: - floppyDrive.SetReadMode(); - break; - case 0x0F: - floppyDrive.SetWriteMode(); - break; - } - - return 0; -} - - -void Slot6W(uint16_t address, uint8_t byte) -{ -//WriteLog("Slot6W: address = %X, byte= %X\n", address & 0x0F, byte); -// HandleSlot6(address, byte); - uint8_t state = address & 0x0F; - - switch (state) - { - case 0x00: - case 0x01: - case 0x02: - case 0x03: - case 0x04: - case 0x05: - case 0x06: - case 0x07: - floppyDrive.ControlStepper(state); - break; - case 0x08: - case 0x09: - floppyDrive.ControlMotor(state & 0x01); - break; - case 0x0A: - case 0x0B: - floppyDrive.DriveEnable(state & 0x01); - break; - case 0x0C: - floppyDrive.ReadWrite(); - break; - case 0x0D: - floppyDrive.SetLatchValue(byte); - break; - case 0x0E: - floppyDrive.SetReadMode(); - break; - case 0x0F: - floppyDrive.SetWriteMode(); - break; - } -} - - -void HandleSlot6(uint16_t address, uint8_t byte) -{ -} - - -uint8_t MBRead(uint16_t address) -{ -#if 1 - // Not sure [Seems to work OK] - if (!slotCXROM) - { - return slot4Memory[address & 0x00FF]; - } -#endif - - uint8_t regNum = address & 0x0F; - uint8_t chipNum = (address & 0x80) >> 7; - -#if 0 - WriteLog("MBRead: address = %X [chip %d, reg %X, clock=$%X]\n", address & 0xFF, chipNum, regNum, GetCurrentV65C02Clock()); -#endif - - switch (regNum) - { - case 0x00: - return mbvia[chipNum].orb & mbvia[chipNum].ddrb; - - case 0x01: - return mbvia[chipNum].ora & mbvia[chipNum].ddra; - - case 0x02: - return mbvia[chipNum].ddrb; - - case 0x03: - return mbvia[chipNum].ddra; - - case 0x04: - return mbvia[chipNum].timer1counter & 0xFF; - - case 0x05: - return (mbvia[chipNum].timer1counter & 0xFF00) >> 8; - - case 0x06: - return mbvia[chipNum].timer1latch & 0xFF; - - case 0x07: - return (mbvia[chipNum].timer1latch & 0xFF00) >> 8; - - case 0x08: - return mbvia[chipNum].timer2counter & 0xFF; - - case 0x09: - return (mbvia[chipNum].timer2counter & 0xFF00) >> 8; - - case 0x0B: - return mbvia[chipNum].acr; - - case 0x0D: - return (mbvia[chipNum].ifr & 0x7F) - | (mbvia[chipNum].ifr & 0x7F ? 0x80 : 0); - - case 0x0E: - return mbvia[chipNum].ier | 0x80; - - default: - WriteLog("Unhandled 6522 register %X read (chip %d)\n", regNum, chipNum); - } - - return 0; -} - - -static uint8_t regLatch[2]; -void MBWrite(uint16_t address, uint8_t byte) -{ - uint8_t regNum = address & 0x0F; - uint8_t chipNum = (address & 0x80) >> 7; -/* -NOTES: -bit 7 = L/R channel select (AY chip 1 versus AY chip 2) - 0 = Left, 1 = Right - -Reg. B is connected to BC1, BDIR, RST' (bits 0, 1, 2) - -Left VIA IRQ line is tied to 6502 IRQ line -Rght VIA IRQ line is tied to 6502 NMI line - -Register Function --------- ------------------------- -0 Output Register B -1 Output Register A -2 Data Direction Register B -3 Data Direction Register A -4 Timer 1 Low byte counter (& latch) -5 Timer 1 Hgh byte counter (& latch) -6 Timer 1 Low byte latch -7 Timer 1 Hgh byte latch (& reset IRQ flag) -B Aux Control Register -D Interrupt Flag Register -E Interrupt Enable Register - -bit 6 of ACR is like so: -0: Timed interrupt each time Timer 1 is loaded -1: Continuous interrupts - -bit 7 enables PB7 (bit 6 controls output type): -0: One shot output -1: Square wave output - - -*/ -#if 0 - WriteLog("MBWrite: address = %X, byte= %X [clock=$%X]", address & 0xFF, byte, GetCurrentV65C02Clock()); - - if (regNum == 0) - WriteLog("[OUTB -> %s%s%s]\n", (byte & 0x01 ? "BC1" : ""), (byte & 0x02 ? " BDIR" : ""), (byte & 0x04 ? " RST'" : "")); - else if (regNum == 1) - WriteLog("[OUTA -> %02X]\n", byte); - else if (regNum == 2) - WriteLog("[DDRB -> %02X]\n", byte); - else if (regNum == 3) - WriteLog("[DDRA -> %02X]\n", byte); - else - WriteLog("\n"); -#endif - - switch (regNum) - { - case 0x00: - // Control of the AY-3-8912 is thru this port pretty much... - mbvia[chipNum].orb = byte; - - if ((byte & 0x04) == 0) -#ifdef USE_NEW_AY8910 - AYReset(chipNum); -#else - AY8910_reset(chipNum); -#endif - else if ((byte & 0x03) == 0x03) - regLatch[chipNum] = mbvia[chipNum].ora; - else if ((byte & 0x03) == 0x02) -#ifdef USE_NEW_AY8910 - AYWrite(chipNum, regLatch[chipNum], mbvia[chipNum].ora); -#else - _AYWriteReg(chipNum, regLatch[chipNum], mbvia[chipNum].ora); -#endif - - break; - - case 0x01: - mbvia[chipNum].ora = byte; - break; - - case 0x02: - mbvia[chipNum].ddrb = byte; - break; - - case 0x03: - mbvia[chipNum].ddra = byte; - break; - - case 0x04: - mbvia[chipNum].timer1latch = (mbvia[chipNum].timer1latch & 0xFF00) - | byte; - break; - - case 0x05: - mbvia[chipNum].timer1latch = (mbvia[chipNum].timer1latch & 0x00FF) - | (((uint16_t)byte) << 8); - mbvia[chipNum].timer1counter = mbvia[chipNum].timer1latch; - mbvia[chipNum].ifr &= 0x3F; // Clear T1 interrupt flag - break; - - case 0x06: - mbvia[chipNum].timer1latch = (mbvia[chipNum].timer1latch & 0xFF00) - | byte; - break; - - case 0x07: - mbvia[chipNum].timer1latch = (mbvia[chipNum].timer1latch & 0x00FF) - | (((uint16_t)byte) << 8); - mbvia[chipNum].ifr &= 0x3F; // Clear T1 interrupt flag - break; - - case 0x0B: - mbvia[chipNum].acr = byte; - break; - - case 0x0D: - mbvia[chipNum].ifr &= ~byte; - break; - - case 0x0E: - if (byte & 0x80) - // Setting bits in the IER - mbvia[chipNum].ier |= byte; - else - // Clearing bits in the IER - mbvia[chipNum].ier &= ~byte; - - break; - default: - WriteLog("Unhandled 6522 register $%X write $%02X (chip %d)\n", regNum, byte, chipNum); - } -} - - uint8_t ReadButton0(uint16_t) { return (uint8_t)openAppleDown << 7; diff --git a/src/mmu.h b/src/mmu.h index aed258b..8427e76 100644 --- a/src/mmu.h +++ b/src/mmu.h @@ -3,11 +3,27 @@ #include +// Macros for function pointers +#define READFUNC(x) uint8_t (* x)(uint16_t) +#define WRITEFUNC(x) void (* x)(uint16_t, uint8_t) + +struct SlotData +{ + READFUNC(ioR); // I/O read function + WRITEFUNC(ioW); // I/O write function + READFUNC(pageR); // Driver page read function + WRITEFUNC(pageW); // Driver page write function + READFUNC(extraR); // Driver 2K read function + WRITEFUNC(extraW); // Driver 2K write function +}; + void SetupAddressMap(void); void ResetMMUPointers(void); +void InstallSlotHandler(uint8_t slot, SlotData *); uint8_t AppleReadMem(uint16_t); void AppleWriteMem(uint16_t, uint8_t); void SwitchLC(void); +uint8_t ReadFloatingBus(uint16_t); #endif // __MMU_H__ diff --git a/src/mockingboard.cpp b/src/mockingboard.cpp new file mode 100644 index 0000000..c32e5e3 --- /dev/null +++ b/src/mockingboard.cpp @@ -0,0 +1,100 @@ +// +// Mockingboard support +// +// by James Hammons +// (C) 2018 Underground Software +// +// NOTES: +// bit 7 = L/R channel select (AY chip 1 versus AY chip 2) +// 0 = Left, 1 = Right +// +// Reg. B is connected to BC1, BDIR, RST' (bits 0, 1, 2) +// +// Left VIA IRQ line is tied to 6502 IRQ line +// Rght VIA IRQ line is tied to 6502 NMI line +// + + +#include "mockingboard.h" +#include "apple2.h" +#include "mmu.h" + + +MOCKINGBOARD mb[2]; + + +void MBReset(void) +{ + mb[0].via[0].Reset(); + mb[0].via[1].Reset(); + mb[0].ay[0].Reset(); + mb[0].ay[1].Reset(); +} + + +void MBWrite(int chipNum, uint8_t reg, uint8_t byte) +{ + V6522VIA * chip1 = &mb[0].via[chipNum]; + chip1->Write(reg, byte); + + if (reg == 0) + mb[0].ay[chipNum].WriteControl(chip1->orb & chip1->ddrb); + else if (reg == 1) + mb[0].ay[chipNum].WriteData(chip1->ora & chip1->ddra); +} + + +uint8_t MBRead(int chipNum, uint8_t reg) +{ + return mb[0].via[chipNum].Read(reg); +} + + +void MBRun(uint16_t cycles) +{ + if (mb[0].via[0].Run(cycles)) + mainCPU.cpuFlags |= V65C02_ASSERT_LINE_IRQ; + + if (mb[0].via[1].Run(cycles)) + mainCPU.cpuFlags |= V65C02_ASSERT_LINE_NMI; +} + + +void MBSaveState(FILE * file) +{ + fwrite(&mb[0], 1, sizeof(struct MOCKINGBOARD), file); + fwrite(&mb[1], 1, sizeof(struct MOCKINGBOARD), file); +} + + +void MBLoadState(FILE * file) +{ + fread(&mb[0], 1, sizeof(struct MOCKINGBOARD), file); + fread(&mb[1], 1, sizeof(struct MOCKINGBOARD), file); +} + + +static uint8_t SlotPageR(uint16_t address) +{ + uint8_t regNum = address & 0x0F; + uint8_t chipNum = (address & 0x80) >> 7; + + return MBRead(chipNum, regNum); +} + + +static void SlotPageW(uint16_t address, uint8_t byte) +{ + uint8_t regNum = address & 0x0F; + uint8_t chipNum = (address & 0x80) >> 7; + + MBWrite(chipNum, regNum, byte); +} + + +void InstallMockingboard(uint8_t slot) +{ + SlotData mbDevice = { 0, 0, SlotPageR, SlotPageW, 0, 0 }; + InstallSlotHandler(slot, &mbDevice); +} + diff --git a/src/mockingboard.h b/src/mockingboard.h new file mode 100644 index 0000000..f0b99f8 --- /dev/null +++ b/src/mockingboard.h @@ -0,0 +1,35 @@ +// +// Mockingboard support +// +// by James Hammons +// (C) 2018 Underground Software +// + +#ifndef __MOCKINGBOARD_H__ +#define __MOCKINGBOARD_H__ + +#include +#include +#include "v6522via.h" +#include "vay8910.h" + +struct MOCKINGBOARD +{ + V6522VIA via[2]; + VAY_3_8910 ay[2]; +}; + +// Exported variables +extern MOCKINGBOARD mb[]; + +// Exported functions +void MBReset(void); +void MBWrite(int chipNum, uint8_t reg, uint8_t byte); +uint8_t MBRead(int chipNum, uint8_t reg); +void MBRun(uint16_t cycles); +void MBSaveState(FILE *); +void MBLoadState(FILE *); +void InstallMockingboard(uint8_t slot); + +#endif // __MOCKINGBOARD_H__ + diff --git a/src/mos6522via.cpp b/src/mos6522via.cpp deleted file mode 100644 index 6632691..0000000 --- a/src/mos6522via.cpp +++ /dev/null @@ -1,20 +0,0 @@ -// Mockingboard support (6522 interface) -// -// by James Hammons -// (C) 2018 Underground Software -// - -#include "mos6522via.h" - -#include // for memset() - - -MOS6522VIA mbvia[4]; - - -void ResetMBVIAs(void) -{ - for(int i=0; i<4; i++) - memset(&mbvia[i], 0, sizeof(MOS6522VIA)); -} - diff --git a/src/sound.cpp b/src/sound.cpp index 67b3090..04b2670 100644 --- a/src/sound.cpp +++ b/src/sound.cpp @@ -24,8 +24,9 @@ #include // For memset, memcpy #include -#include "ay8910.h" #include "log.h" +#include "mockingboard.h" + // Useful defines @@ -133,7 +134,7 @@ sndFrmCnt++; if (soundBufferPos < length) { -WriteLog("*** Sound buffer starved (%d short) *** [%d delta %d]\n", length - soundBufferPos, sndFrmCnt, sndFrmCnt - lastStarve); +//WriteLog("*** Sound buffer starved (%d short) *** [%d delta %d]\n", length - soundBufferPos, sndFrmCnt, sndFrmCnt - lastStarve); lastStarve = sndFrmCnt; #if 1 for(uint32_t i=0; i= (SOUND_BUFFER_SIZE - 1)) @@ -192,7 +185,7 @@ void WriteSampleToBuffer(void) } SDL_LockAudioDevice(device); - soundBuffer[soundBufferPos++] = sample + adjustedMockingboard; + soundBuffer[soundBufferPos++] = sample + s1 + s2; SDL_UnlockAudioDevice(device); } diff --git a/src/v6522via.cpp b/src/v6522via.cpp new file mode 100644 index 0000000..f43a267 --- /dev/null +++ b/src/v6522via.cpp @@ -0,0 +1,198 @@ +// +// Virtual 6522 Versatile Interface Adapter +// +// by James Hammons +// (C) 2018 Underground Software +// + +#include "v6522via.h" + +#include // for memset() +#include "log.h" + + +/* +Register Function +-------- ------------------------- +0 Output Register B +1 Output Register A +2 Data Direction Register B +3 Data Direction Register A +4 Timer 1 Low byte counter (& latch) +5 Timer 1 Hgh byte counter (& latch) +6 Timer 1 Low byte latch +7 Timer 1 Hgh byte latch (& reset IRQ flag) +B Aux Control Register +D Interrupt Flag Register +E Interrupt Enable Register + +bit 6 of ACR: +0: Timed interrupt each time Timer 1 is loaded +1: Continuous interrupts + +bit 7 enables PB7 (bit 6 controls output type): +0: One shot output +1: Square wave output +*/ + + +V6522VIA::V6522VIA(): orb(0), ora(0), ddrb(0), ddra(0), + timer1counter(0), timer1latch(0), timer2counter(0), + acr(0), ifr(0), ier(0) +{ +} + + +void V6522VIA::Reset(void) +{ + memset(this, 0, sizeof(V6522VIA)); +} + + +uint8_t V6522VIA::Read(uint8_t regNum) +{ + switch (regNum) + { + case 0x00: +//For some reason, this prevents Ankh from loading. Need to figure out what the MB *really* returns in its uninitialized state... +// return orb & ddrb; + return 0xFF; + + case 0x01: + return ora & ddra; + + case 0x02: + return ddrb; + + case 0x03: + return ddra; + + case 0x04: + return timer1counter & 0xFF; + + case 0x05: + return (timer1counter & 0xFF00) >> 8; + + case 0x06: + return timer1latch & 0xFF; + + case 0x07: + return (timer1latch & 0xFF00) >> 8; + + case 0x08: + return timer2counter & 0xFF; + + case 0x09: + return (timer2counter & 0xFF00) >> 8; + + case 0x0B: + return acr; + + case 0x0D: + return (ifr & 0x7F) | (ifr & 0x7F ? 0x80 : 0); + + case 0x0E: + return ier | 0x80; + + default: + WriteLog("Unhandled 6522 register %X read (chip %d)\n", regNum, id); + } + + return 0; +} + + +void V6522VIA::Write(uint8_t regNum, uint8_t byte) +{ + switch (regNum) + { + case 0x00: + orb = byte; + break; + + case 0x01: + ora = byte; + break; + + case 0x02: + ddrb = byte; + break; + + case 0x03: + ddra = byte; + break; + + case 0x04: + timer1latch = (timer1latch & 0xFF00) | byte; + break; + + case 0x05: + timer1latch = (timer1latch & 0x00FF) | (((uint16_t)byte) << 8); + timer1counter = timer1latch; + ifr &= 0x3F; // Clear T1 interrupt flag + break; + + case 0x06: + timer1latch = (timer1latch & 0xFF00) + | byte; + break; + + case 0x07: + timer1latch = (timer1latch & 0x00FF) | (((uint16_t)byte) << 8); + ifr &= 0x3F; // Clear T1 interrupt flag + break; + + case 0x0B: + acr = byte; + break; + + case 0x0D: + ifr &= ~byte; + break; + + case 0x0E: + if (byte & 0x80) + // Setting bits in the IER + ier |= byte; + else + // Clearing bits in the IER + ier &= ~byte; + + break; + default: + WriteLog("Unhandled 6522 register $%X write $%02X (chip %d)\n", regNum, byte, id); + } +} + + +bool V6522VIA::Run(uint16_t cycles) +{ + // This is to signal to the caller that we hit an IRQ condition + bool response = false; + bool viaT1HitZero = (timer1counter <= cycles ? true : false); + + timer1counter -= cycles; + timer2counter -= cycles; + + if (viaT1HitZero) + { + if (acr & 0x40) + { + timer1counter += timer1latch; + + if (ier & 0x40) + { + ifr |= (0x80 | 0x40); + response = true; + } + } + else + { + // Disable T1 interrupt + ier &= 0x3F; + } + } + + return response; +} + diff --git a/src/mos6522via.h b/src/v6522via.h similarity index 61% rename from src/mos6522via.h rename to src/v6522via.h index 4d494a9..6e52022 100644 --- a/src/mos6522via.h +++ b/src/v6522via.h @@ -1,15 +1,16 @@ -// Mockingboard support +// +// Virtual 6522 Versatile Interface Adapter // // by James Hammons // (C) 2018 Underground Software // -#ifndef __MOS6522VIA_H__ -#define __MOS6522VIA_H__ +#ifndef __V6522VIA_H__ +#define __V6522VIA_H__ #include -struct MOS6522VIA +struct V6522VIA { uint8_t orb, ora; // Output Register B, A uint8_t ddrb, ddra; // Data Direction Register B, A @@ -19,13 +20,14 @@ struct MOS6522VIA uint8_t acr; // Auxillary Control Register uint8_t ifr; // Interrupt Flags Register uint8_t ier; // Interrupt Enable Register + uint8_t id; // Chip ID # (optional) + + V6522VIA(); + void Reset(void); + uint8_t Read(uint8_t); + void Write(uint8_t, uint8_t); + bool Run(uint16_t); }; - -extern MOS6522VIA mbvia[]; - - -void ResetMBVIAs(void); - -#endif // __MOS6522VIA_H__ +#endif // __V6522VIA_H__ diff --git a/src/v65c02.cpp b/src/v65c02.cpp index 02dd846..6a525b7 100644 --- a/src/v65c02.cpp +++ b/src/v65c02.cpp @@ -17,6 +17,8 @@ //Apple versions do not--which would seem to indicate a bug either in the RNG //algorithm, the 65C02 core, or the Apple hardware. Need to investigate all //three! +//N.B.: There were some lingering bugs in the BCD portions of the ADC and SBC +// opcodes; need to test to see if that clears up the problem. #define __DEBUG__ //#define __DEBUGMON__ @@ -24,6 +26,7 @@ #include "v65c02.h" #ifdef __DEBUG__ +#include #include "dis65c02.h" #include "log.h" #endif @@ -42,6 +45,15 @@ #define SET_I (regs->cc |= FLAG_I) //Not sure that this code is computing the carry correctly... Investigate! [Seems to be] +/* +Not 100% sure (for SET_C_CMP), when we have things like this: +D0BE: AC 6F D3 LDY $D36F [SP=01EC, CC=--.--IZ-, A=AA, X=60, Y=00] +D0C1: CC 5A D3 CPY $D35A [SP=01EC, CC=--.--IZC, A=AA, X=60, Y=00] +D0C4: F0 0F BEQ $D0D5 [SP=01EC, CC=--.--IZC, A=AA, X=60, Y=00] +D0D5: AD 6E D3 LDA $D36E [SP=01EC, CC=--.--I-C, A=0A, X=60, Y=00] + +Which shows that $D35A has to be 0 since the Z flag is set. Why would the carry flag be set on a comparison where the compared items are equal? +*/ #define SET_C_ADD(a,b) (regs->cc = ((uint8_t)(b) > (uint8_t)(~(a)) ? regs->cc | FLAG_C : regs->cc & ~FLAG_C)) #define SET_C_CMP(a,b) (regs->cc = ((uint8_t)(b) >= (uint8_t)(a) ? regs->cc | FLAG_C : regs->cc & ~FLAG_C)) #define SET_ZN(r) SET_N(r); SET_Z(r) @@ -55,9 +67,9 @@ #define EA_ABS FetchMemW(regs->pc) #define EA_ABS_X FetchMemW(regs->pc) + regs->x #define EA_ABS_Y FetchMemW(regs->pc) + regs->y -#define EA_IND_ZP_X RdMemW((regs->RdMem(regs->pc++) + regs->x) & 0xFF) -#define EA_IND_ZP_Y RdMemW(regs->RdMem(regs->pc++)) + regs->y -#define EA_IND_ZP RdMemW(regs->RdMem(regs->pc++)) +#define EA_IND_ZP_X RdMemWZP((regs->RdMem(regs->pc++) + regs->x) & 0xFF) +#define EA_IND_ZP_Y RdMemWZP(regs->RdMem(regs->pc++)) + regs->y +#define EA_IND_ZP RdMemWZP(regs->RdMem(regs->pc++)) #define READ_IMM regs->RdMem(EA_IMM) #define READ_ZP regs->RdMem(EA_ZP) @@ -87,608 +99,26 @@ static V65C02REGS * regs; - -//This is probably incorrect, at least WRT to the $x7 and $xF opcodes... !!! FIX !!! -//Also this doesn't take into account the extra cycle it takes when an indirect -//fetch (ABS, ABS X/Y, ZP) crosses a page boundary, or extra cycle for BCD -//add/subtract... -#warning "Cycle counts are not 100% accurate--!!! FIX !!!" +// Cycle counts should be correct for the the Rockwell version of the 65C02. +// Extra cycles for page crossing or BCD mode are accounted for in their +// respective opcode handlers. static uint8_t CPUCycles[256] = { -#if 0 - 7, 6, 1, 1, 5, 3, 5, 1, 3, 2, 2, 1, 6, 4, 6, 1, - 2, 5, 5, 1, 5, 4, 6, 1, 2, 4, 2, 1, 6, 4, 6, 1, - 6, 6, 1, 1, 3, 3, 5, 1, 4, 2, 2, 1, 4, 4, 6, 1, - 2, 5, 5, 1, 4, 4, 6, 1, 2, 4, 2, 1, 4, 4, 6, 1, - 6, 6, 1, 1, 1, 3, 5, 1, 3, 2, 2, 1, 3, 4, 6, 1, - 2, 5, 5, 1, 1, 4, 6, 1, 2, 4, 3, 1, 1, 4, 6, 1, - 6, 6, 1, 1, 3, 3, 5, 1, 4, 2, 2, 1, 6, 4, 6, 1, - 2, 5, 5, 1, 4, 4, 6, 1, 2, 4, 4, 1, 6, 4, 6, 1, - 2, 6, 1, 1, 3, 3, 3, 1, 2, 2, 2, 1, 4, 4, 4, 1, - 2, 6, 5, 1, 4, 4, 4, 1, 2, 5, 2, 1, 4, 5, 5, 1, - 2, 6, 2, 1, 3, 3, 3, 1, 2, 2, 2, 1, 4, 4, 4, 1, - 2, 5, 5, 1, 4, 4, 4, 1, 2, 4, 2, 1, 4, 4, 4, 1, - 2, 6, 1, 1, 3, 3, 5, 1, 2, 2, 2, 1, 4, 4, 6, 1, - 2, 5, 5, 1, 1, 4, 6, 1, 2, 4, 3, 1, 1, 4, 6, 1, - 2, 6, 1, 1, 3, 3, 5, 1, 2, 2, 2, 1, 4, 4, 6, 1, - 2, 5, 5, 1, 1, 4, 6, 1, 2, 4, 4, 1, 1, 4, 6, 1 }; -#else - 7, 6, 2, 2, 5, 3, 5, 2, 3, 2, 2, 2, 6, 4, 6, 2, - 2, 5, 5, 2, 5, 4, 6, 2, 2, 4, 2, 2, 6, 4, 6, 2, - 6, 6, 2, 2, 3, 3, 5, 2, 4, 2, 2, 2, 4, 2, 6, 2, - 2, 5, 5, 2, 4, 4, 6, 2, 2, 4, 2, 2, 4, 4, 6, 2, - 6, 6, 2, 2, 3, 3, 5, 2, 3, 2, 2, 2, 3, 4, 6, 2, - 2, 5, 5, 2, 4, 4, 6, 2, 2, 4, 3, 2, 8, 4, 6, 2, - 6, 6, 2, 2, 3, 3, 5, 2, 4, 2, 2, 2, 6, 4, 6, 2, - 2, 5, 5, 2, 4, 4, 6, 2, 2, 4, 4, 2, 6, 4, 6, 2, - 2, 6, 2, 2, 3, 3, 3, 2, 2, 2, 2, 2, 4, 4, 4, 2, - 2, 6, 5, 2, 4, 4, 4, 2, 2, 5, 2, 2, 4, 5, 5, 2, - 2, 6, 2, 2, 3, 3, 3, 2, 2, 2, 2, 2, 4, 4, 4, 2, - 2, 5, 5, 2, 4, 4, 4, 2, 2, 4, 2, 2, 4, 4, 4, 2, - 2, 6, 2, 2, 3, 3, 5, 2, 2, 2, 2, 2, 4, 4, 5, 2, - 2, 5, 5, 2, 4, 4, 6, 2, 2, 4, 3, 2, 4, 4, 6, 2, - 2, 6, 2, 2, 3, 3, 5, 2, 2, 2, 2, 2, 4, 4, 6, 2, - 2, 5, 5, 2, 4, 4, 6, 2, 2, 4, 4, 2, 4, 4, 6, 2 }; -#endif - -#if 0 -static uint8_t _6502Cycles[256] = { - 7, 6, 2, 8, 3, 3, 5, 5, 3, 2, 2, 2, 4, 4, 6, 6, - 2, 5, 2, 8, 4, 4, 6, 6, 2, 4, 2, 7, 4, 4, 6, 7, - 6, 6, 2, 8, 3, 3, 5, 5, 4, 2, 2, 2, 4, 2, 6, 6, - 2, 5, 2, 8, 4, 4, 6, 6, 2, 4, 2, 7, 4, 4, 6, 7, - 6, 6, 2, 8, 3, 3, 5, 5, 3, 2, 2, 2, 3, 4, 6, 6, - 2, 5, 2, 8, 4, 4, 6, 6, 2, 4, 2, 7, 4, 4, 6, 7, - 6, 6, 2, 8, 3, 3, 5, 5, 4, 2, 2, 2, 6, 4, 6, 6, - 2, 5, 2, 8, 4, 4, 6, 6, 2, 4, 2, 7, 4, 4, 6, 7, - 2, 6, 2, 6, 3, 3, 3, 3, 2, 2, 2, 2, 4, 4, 4, 4, - 2, 6, 2, 6, 4, 4, 4, 4, 2, 5, 2, 5, 5, 5, 5, 5, - 2, 6, 2, 6, 3, 3, 3, 3, 2, 2, 2, 2, 4, 4, 4, 4, - 2, 5, 2, 5, 4, 4, 4, 4, 2, 4, 2, 4, 4, 4, 4, 4, - 2, 6, 2, 8, 3, 3, 5, 5, 2, 2, 2, 2, 4, 4, 5, 6, - 2, 5, 2, 8, 4, 4, 6, 6, 2, 4, 2, 7, 4, 4, 6, 7, - 2, 6, 2, 8, 3, 3, 5, 5, 2, 2, 2, 2, 4, 4, 6, 6, - 2, 5, 2, 8, 4, 4, 6, 6, 2, 4, 2, 7, 4, 4, 6, 7 }; - -static uint8_t _65C02Cycles[256] = { - 7, 6, 2, 2, 5, 3, 5, 2, 3, 2, 2, 2, 6, 4, 6, 2, - 2, 5, 5, 2, 5, 4, 6, 2, 2, 4, 2, 2, 6, 4, 6, 2, - 6, 6, 2, 2, 3, 3, 5, 2, 4, 2, 2, 2, 4, 2, 6, 2, - 2, 5, 5, 2, 4, 4, 6, 2, 2, 4, 2, 2, 4, 4, 6, 2, - 6, 6, 2, 2, 3, 3, 5, 2, 3, 2, 2, 2, 3, 4, 6, 2, - 2, 5, 5, 2, 4, 4, 6, 2, 2, 4, 3, 2, 8, 4, 6, 2, - 6, 6, 2, 2, 3, 3, 5, 2, 4, 2, 2, 2, 6, 4, 6, 2, - 2, 5, 5, 2, 4, 4, 6, 2, 2, 4, 4, 2, 6, 4, 6, 2, - 2, 6, 2, 2, 3, 3, 3, 2, 2, 2, 2, 2, 4, 4, 4, 2, - 2, 6, 5, 2, 4, 4, 4, 2, 2, 5, 2, 2, 4, 5, 5, 2, - 2, 6, 2, 2, 3, 3, 3, 2, 2, 2, 2, 2, 4, 4, 4, 2, - 2, 5, 5, 2, 4, 4, 4, 2, 2, 4, 2, 2, 4, 4, 4, 2, - 2, 6, 2, 2, 3, 3, 5, 2, 2, 2, 2, 2, 4, 4, 5, 2, - 2, 5, 5, 2, 4, 4, 6, 2, 2, 4, 3, 2, 4, 4, 6, 2, - 2, 6, 2, 2, 3, 3, 5, 2, 2, 2, 2, 2, 4, 4, 6, 2, - 2, 5, 5, 2, 4, 4, 6, 2, 2, 4, 4, 2, 4, 4, 6, 2 }; -#endif - - -/* -6502 cycles (includes illegal opcodes): - - case 0x00: BRK CYC(7) break; - case 0x01: INDX ORA CYC(6) break; - case 0x02: INV HLT CYC(2) break; - case 0x03: INV INDX ASO CYC(8) break; - case 0x04: INV ZPG NOP CYC(3) break; - case 0x05: ZPG ORA CYC(3) break; - case 0x06: ZPG ASL_NMOS CYC(5) break; - case 0x07: INV ZPG ASO CYC(5) break; - case 0x08: PHP CYC(3) break; - case 0x09: IMM ORA CYC(2) break; - case 0x0A: ASLA CYC(2) break; - case 0x0B: INV IMM ANC CYC(2) break; - case 0x0C: INV ABSX NOP CYC(4) break; - case 0x0D: ABS ORA CYC(4) break; - case 0x0E: ABS ASL_NMOS CYC(6) break; - case 0x0F: INV ABS ASO CYC(6) break; - case 0x10: REL BPL CYC(2) break; - case 0x11: INDY ORA CYC(5) break; - case 0x12: INV HLT CYC(2) break; - case 0x13: INV INDY ASO CYC(8) break; - case 0x14: INV ZPGX NOP CYC(4) break; - case 0x15: ZPGX ORA CYC(4) break; - case 0x16: ZPGX ASL_NMOS CYC(6) break; - case 0x17: INV ZPGX ASO CYC(6) break; - case 0x18: CLC CYC(2) break; - case 0x19: ABSY ORA CYC(4) break; - case 0x1A: INV NOP CYC(2) break; - case 0x1B: INV ABSY ASO CYC(7) break; - case 0x1C: INV ABSX NOP CYC(4) break; - case 0x1D: ABSX ORA CYC(4) break; - case 0x1E: ABSX ASL_NMOS CYC(6) break; - case 0x1F: INV ABSX ASO CYC(7) break; - case 0x20: ABS JSR CYC(6) break; - case 0x21: INDX AND CYC(6) break; - case 0x22: INV HLT CYC(2) break; - case 0x23: INV INDX RLA CYC(8) break; - case 0x24: ZPG BIT CYC(3) break; - case 0x25: ZPG AND CYC(3) break; - case 0x26: ZPG ROL_NMOS CYC(5) break; - case 0x27: INV ZPG RLA CYC(5) break; - case 0x28: PLP CYC(4) break; - case 0x29: IMM AND CYC(2) break; - case 0x2A: ROLA CYC(2) break; - case 0x2B: INV IMM ANC CYC(2) break; - case 0x2C: ABS BIT CYC(4) break; - case 0x2D: ABS AND CYC(2) break; - case 0x2E: ABS ROL_NMOS CYC(6) break; - case 0x2F: INV ABS RLA CYC(6) break; - case 0x30: REL BMI CYC(2) break; - case 0x31: INDY AND CYC(5) break; - case 0x32: INV HLT CYC(2) break; - case 0x33: INV INDY RLA CYC(8) break; - case 0x34: INV ZPGX NOP CYC(4) break; - case 0x35: ZPGX AND CYC(4) break; - case 0x36: ZPGX ROL_NMOS CYC(6) break; - case 0x37: INV ZPGX RLA CYC(6) break; - case 0x38: SEC CYC(2) break; - case 0x39: ABSY AND CYC(4) break; - case 0x3A: INV NOP CYC(2) break; - case 0x3B: INV ABSY RLA CYC(7) break; - case 0x3C: INV ABSX NOP CYC(4) break; - case 0x3D: ABSX AND CYC(4) break; - case 0x3E: ABSX ROL_NMOS CYC(6) break; - case 0x3F: INV ABSX RLA CYC(7) break; - case 0x40: RTI CYC(6) DoIrqProfiling(uExecutedCycles); break; - case 0x41: INDX EOR CYC(6) break; - case 0x42: INV HLT CYC(2) break; - case 0x43: INV INDX LSE CYC(8) break; - case 0x44: INV ZPG NOP CYC(3) break; - case 0x45: ZPG EOR CYC(3) break; - case 0x46: ZPG LSR_NMOS CYC(5) break; - case 0x47: INV ZPG LSE CYC(5) break; - case 0x48: PHA CYC(3) break; - case 0x49: IMM EOR CYC(2) break; - case 0x4A: LSRA CYC(2) break; - case 0x4B: INV IMM ALR CYC(2) break; - case 0x4C: ABS JMP CYC(3) break; - case 0x4D: ABS EOR CYC(4) break; - case 0x4E: ABS LSR_NMOS CYC(6) break; - case 0x4F: INV ABS LSE CYC(6) break; - case 0x50: REL BVC CYC(2) break; - case 0x51: INDY EOR CYC(5) break; - case 0x52: INV HLT CYC(2) break; - case 0x53: INV INDY LSE CYC(8) break; - case 0x54: INV ZPGX NOP CYC(4) break; - case 0x55: ZPGX EOR CYC(4) break; - case 0x56: ZPGX LSR_NMOS CYC(6) break; - case 0x57: INV ZPGX LSE CYC(6) break; - case 0x58: CLI CYC(2) break; - case 0x59: ABSY EOR CYC(4) break; - case 0x5A: INV NOP CYC(2) break; - case 0x5B: INV ABSY LSE CYC(7) break; - case 0x5C: INV ABSX NOP CYC(4) break; - case 0x5D: ABSX EOR CYC(4) break; - case 0x5E: ABSX LSR_NMOS CYC(6) break; - case 0x5F: INV ABSX LSE CYC(7) break; - case 0x60: RTS CYC(6) break; - case 0x61: INDX ADC_NMOS CYC(6) break; - case 0x62: INV HLT CYC(2) break; - case 0x63: INV INDX RRA CYC(8) break; - case 0x64: INV ZPG NOP CYC(3) break; - case 0x65: ZPG ADC_NMOS CYC(3) break; - case 0x66: ZPG ROR_NMOS CYC(5) break; - case 0x67: INV ZPG RRA CYC(5) break; - case 0x68: PLA CYC(4) break; - case 0x69: IMM ADC_NMOS CYC(2) break; - case 0x6A: RORA CYC(2) break; - case 0x6B: INV IMM ARR CYC(2) break; - case 0x6C: IABSNMOS JMP CYC(6) break; - case 0x6D: ABS ADC_NMOS CYC(4) break; - case 0x6E: ABS ROR_NMOS CYC(6) break; - case 0x6F: INV ABS RRA CYC(6) break; - case 0x70: REL BVS CYC(2) break; - case 0x71: INDY ADC_NMOS CYC(5) break; - case 0x72: INV HLT CYC(2) break; - case 0x73: INV INDY RRA CYC(8) break; - case 0x74: INV ZPGX NOP CYC(4) break; - case 0x75: ZPGX ADC_NMOS CYC(4) break; - case 0x76: ZPGX ROR_NMOS CYC(6) break; - case 0x77: INV ZPGX RRA CYC(6) break; - case 0x78: SEI CYC(2) break; - case 0x79: ABSY ADC_NMOS CYC(4) break; - case 0x7A: INV NOP CYC(2) break; - case 0x7B: INV ABSY RRA CYC(7) break; - case 0x7C: INV ABSX NOP CYC(4) break; - case 0x7D: ABSX ADC_NMOS CYC(4) break; - case 0x7E: ABSX ROR_NMOS CYC(6) break; - case 0x7F: INV ABSX RRA CYC(7) break; - case 0x80: INV IMM NOP CYC(2) break; - case 0x81: INDX STA CYC(6) break; - case 0x82: INV IMM NOP CYC(2) break; - case 0x83: INV INDX AXS CYC(6) break; - case 0x84: ZPG STY CYC(3) break; - case 0x85: ZPG STA CYC(3) break; - case 0x86: ZPG STX CYC(3) break; - case 0x87: INV ZPG AXS CYC(3) break; - case 0x88: DEY CYC(2) break; - case 0x89: INV IMM NOP CYC(2) break; - case 0x8A: TXA CYC(2) break; - case 0x8B: INV IMM XAA CYC(2) break; - case 0x8C: ABS STY CYC(4) break; - case 0x8D: ABS STA CYC(4) break; - case 0x8E: ABS STX CYC(4) break; - case 0x8F: INV ABS AXS CYC(4) break; - case 0x90: REL BCC CYC(2) break; - case 0x91: INDY STA CYC(6) break; - case 0x92: INV HLT CYC(2) break; - case 0x93: INV INDY AXA CYC(6) break; - case 0x94: ZPGX STY CYC(4) break; - case 0x95: ZPGX STA CYC(4) break; - case 0x96: ZPGY STX CYC(4) break; - case 0x97: INV ZPGY AXS CYC(4) break; - case 0x98: TYA CYC(2) break; - case 0x99: ABSY STA CYC(5) break; - case 0x9A: TXS CYC(2) break; - case 0x9B: INV ABSY TAS CYC(5) break; - case 0x9C: INV ABSX SAY CYC(5) break; - case 0x9D: ABSX STA CYC(5) break; - case 0x9E: INV ABSY XAS CYC(5) break; - case 0x9F: INV ABSY AXA CYC(5) break; - case 0xA0: IMM LDY CYC(2) break; - case 0xA1: INDX LDA CYC(6) break; - case 0xA2: IMM LDX CYC(2) break; - case 0xA3: INV INDX LAX CYC(6) break; - case 0xA4: ZPG LDY CYC(3) break; - case 0xA5: ZPG LDA CYC(3) break; - case 0xA6: ZPG LDX CYC(3) break; - case 0xA7: INV ZPG LAX CYC(3) break; - case 0xA8: TAY CYC(2) break; - case 0xA9: IMM LDA CYC(2) break; - case 0xAA: TAX CYC(2) break; - case 0xAB: INV IMM OAL CYC(2) break; - case 0xAC: ABS LDY CYC(4) break; - case 0xAD: ABS LDA CYC(4) break; - case 0xAE: ABS LDX CYC(4) break; - case 0xAF: INV ABS LAX CYC(4) break; - case 0xB0: REL BCS CYC(2) break; - case 0xB1: INDY LDA CYC(5) break; - case 0xB2: INV HLT CYC(2) break; - case 0xB3: INV INDY LAX CYC(5) break; - case 0xB4: ZPGX LDY CYC(4) break; - case 0xB5: ZPGX LDA CYC(4) break; - case 0xB6: ZPGY LDX CYC(4) break; - case 0xB7: INV ZPGY LAX CYC(4) break; - case 0xB8: CLV CYC(2) break; - case 0xB9: ABSY LDA CYC(4) break; - case 0xBA: TSX CYC(2) break; - case 0xBB: INV ABSY LAS CYC(4) break; - case 0xBC: ABSX LDY CYC(4) break; - case 0xBD: ABSX LDA CYC(4) break; - case 0xBE: ABSY LDX CYC(4) break; - case 0xBF: INV ABSY LAX CYC(4) break; - case 0xC0: IMM CPY CYC(2) break; - case 0xC1: INDX CMP CYC(6) break; - case 0xC2: INV IMM NOP CYC(2) break; - case 0xC3: INV INDX DCM CYC(8) break; - case 0xC4: ZPG CPY CYC(3) break; - case 0xC5: ZPG CMP CYC(3) break; - case 0xC6: ZPG DEC_NMOS CYC(5) break; - case 0xC7: INV ZPG DCM CYC(5) break; - case 0xC8: INY CYC(2) break; - case 0xC9: IMM CMP CYC(2) break; - case 0xCA: DEX CYC(2) break; - case 0xCB: INV IMM SAX CYC(2) break; - case 0xCC: ABS CPY CYC(4) break; - case 0xCD: ABS CMP CYC(4) break; - case 0xCE: ABS DEC_NMOS CYC(5) break; - case 0xCF: INV ABS DCM CYC(6) break; - case 0xD0: REL BNE CYC(2) break; - case 0xD1: INDY CMP CYC(5) break; - case 0xD2: INV HLT CYC(2) break; - case 0xD3: INV INDY DCM CYC(8) break; - case 0xD4: INV ZPGX NOP CYC(4) break; - case 0xD5: ZPGX CMP CYC(4) break; - case 0xD6: ZPGX DEC_NMOS CYC(6) break; - case 0xD7: INV ZPGX DCM CYC(6) break; - case 0xD8: CLD CYC(2) break; - case 0xD9: ABSY CMP CYC(4) break; - case 0xDA: INV NOP CYC(2) break; - case 0xDB: INV ABSY DCM CYC(7) break; - case 0xDC: INV ABSX NOP CYC(4) break; - case 0xDD: ABSX CMP CYC(4) break; - case 0xDE: ABSX DEC_NMOS CYC(6) break; - case 0xDF: INV ABSX DCM CYC(7) break; - case 0xE0: IMM CPX CYC(2) break; - case 0xE1: INDX SBC_NMOS CYC(6) break; - case 0xE2: INV IMM NOP CYC(2) break; - case 0xE3: INV INDX INS CYC(8) break; - case 0xE4: ZPG CPX CYC(3) break; - case 0xE5: ZPG SBC_NMOS CYC(3) break; - case 0xE6: ZPG INC_NMOS CYC(5) break; - case 0xE7: INV ZPG INS CYC(5) break; - case 0xE8: INX CYC(2) break; - case 0xE9: IMM SBC_NMOS CYC(2) break; - case 0xEA: NOP CYC(2) break; - case 0xEB: INV IMM SBC_NMOS CYC(2) break; - case 0xEC: ABS CPX CYC(4) break; - case 0xED: ABS SBC_NMOS CYC(4) break; - case 0xEE: ABS INC_NMOS CYC(6) break; - case 0xEF: INV ABS INS CYC(6) break; - case 0xF0: REL BEQ CYC(2) break; - case 0xF1: INDY SBC_NMOS CYC(5) break; - case 0xF2: INV HLT CYC(2) break; - case 0xF3: INV INDY INS CYC(8) break; - case 0xF4: INV ZPGX NOP CYC(4) break; - case 0xF5: ZPGX SBC_NMOS CYC(4) break; - case 0xF6: ZPGX INC_NMOS CYC(6) break; - case 0xF7: INV ZPGX INS CYC(6) break; - case 0xF8: SED CYC(2) break; - case 0xF9: ABSY SBC_NMOS CYC(4) break; - case 0xFA: INV NOP CYC(2) break; - case 0xFB: INV ABSY INS CYC(7) break; - case 0xFC: INV ABSX NOP CYC(4) break; - case 0xFD: ABSX SBC_NMOS CYC(4) break; - case 0xFE: ABSX INC_NMOS CYC(6) break; - case 0xFF: INV ABSX INS CYC(7) break; - - -65C02 opcodes: (all illegal are NOP, but have cycle counts) - - case 0x00: BRK CYC(7) break; - case 0x01: INDX ORA CYC(6) break; - case 0x02: INV IMM NOP CYC(2) break; - case 0x03: INV NOP CYC(2) break; - case 0x04: ZPG TSB CYC(5) break; - case 0x05: ZPG ORA CYC(3) break; - case 0x06: ZPG ASL_CMOS CYC(5) break; - case 0x07: INV NOP CYC(2) break; - case 0x08: PHP CYC(3) break; - case 0x09: IMM ORA CYC(2) break; - case 0x0A: ASLA CYC(2) break; - case 0x0B: INV NOP CYC(2) break; - case 0x0C: ABS TSB CYC(6) break; - case 0x0D: ABS ORA CYC(4) break; - case 0x0E: ABS ASL_CMOS CYC(6) break; - case 0x0F: INV NOP CYC(2) break; - case 0x10: REL BPL CYC(2) break; - case 0x11: INDY ORA CYC(5) break; - case 0x12: IZPG ORA CYC(5) break; - case 0x13: INV NOP CYC(2) break; - case 0x14: ZPG TRB CYC(5) break; - case 0x15: ZPGX ORA CYC(4) break; - case 0x16: ZPGX ASL_CMOS CYC(6) break; - case 0x17: INV NOP CYC(2) break; - case 0x18: CLC CYC(2) break; - case 0x19: ABSY ORA CYC(4) break; - case 0x1A: INA CYC(2) break; - case 0x1B: INV NOP CYC(2) break; - case 0x1C: ABS TRB CYC(6) break; - case 0x1D: ABSX ORA CYC(4) break; - case 0x1E: ABSX ASL_CMOS CYC(6) break; - case 0x1F: INV NOP CYC(2) break; - case 0x20: ABS JSR CYC(6) break; - case 0x21: INDX AND CYC(6) break; - case 0x22: INV IMM NOP CYC(2) break; - case 0x23: INV NOP CYC(2) break; - case 0x24: ZPG BIT CYC(3) break; - case 0x25: ZPG AND CYC(3) break; - case 0x26: ZPG ROL_CMOS CYC(5) break; - case 0x27: INV NOP CYC(2) break; - case 0x28: PLP CYC(4) break; - case 0x29: IMM AND CYC(2) break; - case 0x2A: ROLA CYC(2) break; - case 0x2B: INV NOP CYC(2) break; - case 0x2C: ABS BIT CYC(4) break; - case 0x2D: ABS AND CYC(2) break; - case 0x2E: ABS ROL_CMOS CYC(6) break; - case 0x2F: INV NOP CYC(2) break; - case 0x30: REL BMI CYC(2) break; - case 0x31: INDY AND CYC(5) break; - case 0x32: IZPG AND CYC(5) break; - case 0x33: INV NOP CYC(2) break; - case 0x34: ZPGX BIT CYC(4) break; - case 0x35: ZPGX AND CYC(4) break; - case 0x36: ZPGX ROL_CMOS CYC(6) break; - case 0x37: INV NOP CYC(2) break; - case 0x38: SEC CYC(2) break; - case 0x39: ABSY AND CYC(4) break; - case 0x3A: DEA CYC(2) break; - case 0x3B: INV NOP CYC(2) break; - case 0x3C: ABSX BIT CYC(4) break; - case 0x3D: ABSX AND CYC(4) break; - case 0x3E: ABSX ROL_CMOS CYC(6) break; - case 0x3F: INV NOP CYC(2) break; - case 0x40: RTI CYC(6) DoIrqProfiling(uExecutedCycles); break; - case 0x41: INDX EOR CYC(6) break; - case 0x42: INV IMM NOP CYC(2) break; - case 0x43: INV NOP CYC(2) break; - case 0x44: INV ZPG NOP CYC(3) break; - case 0x45: ZPG EOR CYC(3) break; - case 0x46: ZPG LSR_CMOS CYC(5) break; - case 0x47: INV NOP CYC(2) break; - case 0x48: PHA CYC(3) break; - case 0x49: IMM EOR CYC(2) break; - case 0x4A: LSRA CYC(2) break; - case 0x4B: INV NOP CYC(2) break; - case 0x4C: ABS JMP CYC(3) break; - case 0x4D: ABS EOR CYC(4) break; - case 0x4E: ABS LSR_CMOS CYC(6) break; - case 0x4F: INV NOP CYC(2) break; - case 0x50: REL BVC CYC(2) break; - case 0x51: INDY EOR CYC(5) break; - case 0x52: IZPG EOR CYC(5) break; - case 0x53: INV NOP CYC(2) break; - case 0x54: INV ZPGX NOP CYC(4) break; - case 0x55: ZPGX EOR CYC(4) break; - case 0x56: ZPGX LSR_CMOS CYC(6) break; - case 0x57: INV NOP CYC(2) break; - case 0x58: CLI CYC(2) break; - case 0x59: ABSY EOR CYC(4) break; - case 0x5A: PHY CYC(3) break; - case 0x5B: INV NOP CYC(2) break; - case 0x5C: INV ABSX NOP CYC(8) break; - case 0x5D: ABSX EOR CYC(4) break; - case 0x5E: ABSX LSR_CMOS CYC(6) break; - case 0x5F: INV NOP CYC(2) break; - case 0x60: RTS CYC(6) break; - case 0x61: INDX ADC_CMOS CYC(6) break; - case 0x62: INV IMM NOP CYC(2) break; - case 0x63: INV NOP CYC(2) break; - case 0x64: ZPG STZ CYC(3) break; - case 0x65: ZPG ADC_CMOS CYC(3) break; - case 0x66: ZPG ROR_CMOS CYC(5) break; - case 0x67: INV NOP CYC(2) break; - case 0x68: PLA CYC(4) break; - case 0x69: IMM ADC_CMOS CYC(2) break; - case 0x6A: RORA CYC(2) break; - case 0x6B: INV NOP CYC(2) break; - case 0x6C: IABSCMOS JMP CYC(6) break; - case 0x6D: ABS ADC_CMOS CYC(4) break; - case 0x6E: ABS ROR_CMOS CYC(6) break; - case 0x6F: INV NOP CYC(2) break; - case 0x70: REL BVS CYC(2) break; - case 0x71: INDY ADC_CMOS CYC(5) break; - case 0x72: IZPG ADC_CMOS CYC(5) break; - case 0x73: INV NOP CYC(2) break; - case 0x74: ZPGX STZ CYC(4) break; - case 0x75: ZPGX ADC_CMOS CYC(4) break; - case 0x76: ZPGX ROR_CMOS CYC(6) break; - case 0x77: INV NOP CYC(2) break; - case 0x78: SEI CYC(2) break; - case 0x79: ABSY ADC_CMOS CYC(4) break; - case 0x7A: PLY CYC(4) break; - case 0x7B: INV NOP CYC(2) break; - case 0x7C: IABSX JMP CYC(6) break; - case 0x7D: ABSX ADC_CMOS CYC(4) break; - case 0x7E: ABSX ROR_CMOS CYC(6) break; - case 0x7F: INV NOP CYC(2) break; - case 0x80: REL BRA CYC(2) break; - case 0x81: INDX STA CYC(6) break; - case 0x82: INV IMM NOP CYC(2) break; - case 0x83: INV NOP CYC(2) break; - case 0x84: ZPG STY CYC(3) break; - case 0x85: ZPG STA CYC(3) break; - case 0x86: ZPG STX CYC(3) break; - case 0x87: INV NOP CYC(2) break; - case 0x88: DEY CYC(2) break; - case 0x89: IMM BITI CYC(2) break; - case 0x8A: TXA CYC(2) break; - case 0x8B: INV NOP CYC(2) break; - case 0x8C: ABS STY CYC(4) break; - case 0x8D: ABS STA CYC(4) break; - case 0x8E: ABS STX CYC(4) break; - case 0x8F: INV NOP CYC(2) break; - case 0x90: REL BCC CYC(2) break; - case 0x91: INDY STA CYC(6) break; - case 0x92: IZPG STA CYC(5) break; - case 0x93: INV NOP CYC(2) break; - case 0x94: ZPGX STY CYC(4) break; - case 0x95: ZPGX STA CYC(4) break; - case 0x96: ZPGY STX CYC(4) break; - case 0x97: INV NOP CYC(2) break; - case 0x98: TYA CYC(2) break; - case 0x99: ABSY STA CYC(5) break; - case 0x9A: TXS CYC(2) break; - case 0x9B: INV NOP CYC(2) break; - case 0x9C: ABS STZ CYC(4) break; - case 0x9D: ABSX STA CYC(5) break; - case 0x9E: ABSX STZ CYC(5) break; - case 0x9F: INV NOP CYC(2) break; - case 0xA0: IMM LDY CYC(2) break; - case 0xA1: INDX LDA CYC(6) break; - case 0xA2: IMM LDX CYC(2) break; - case 0xA3: INV NOP CYC(2) break; - case 0xA4: ZPG LDY CYC(3) break; - case 0xA5: ZPG LDA CYC(3) break; - case 0xA6: ZPG LDX CYC(3) break; - case 0xA7: INV NOP CYC(2) break; - case 0xA8: TAY CYC(2) break; - case 0xA9: IMM LDA CYC(2) break; - case 0xAA: TAX CYC(2) break; - case 0xAB: INV NOP CYC(2) break; - case 0xAC: ABS LDY CYC(4) break; - case 0xAD: ABS LDA CYC(4) break; - case 0xAE: ABS LDX CYC(4) break; - case 0xAF: INV NOP CYC(2) break; - case 0xB0: REL BCS CYC(2) break; - case 0xB1: INDY LDA CYC(5) break; - case 0xB2: IZPG LDA CYC(5) break; - case 0xB3: INV NOP CYC(2) break; - case 0xB4: ZPGX LDY CYC(4) break; - case 0xB5: ZPGX LDA CYC(4) break; - case 0xB6: ZPGY LDX CYC(4) break; - case 0xB7: INV NOP CYC(2) break; - case 0xB8: CLV CYC(2) break; - case 0xB9: ABSY LDA CYC(4) break; - case 0xBA: TSX CYC(2) break; - case 0xBB: INV NOP CYC(2) break; - case 0xBC: ABSX LDY CYC(4) break; - case 0xBD: ABSX LDA CYC(4) break; - case 0xBE: ABSY LDX CYC(4) break; - case 0xBF: INV NOP CYC(2) break; - case 0xC0: IMM CPY CYC(2) break; - case 0xC1: INDX CMP CYC(6) break; - case 0xC2: INV IMM NOP CYC(2) break; - case 0xC3: INV NOP CYC(2) break; - case 0xC4: ZPG CPY CYC(3) break; - case 0xC5: ZPG CMP CYC(3) break; - case 0xC6: ZPG DEC_CMOS CYC(5) break; - case 0xC7: INV NOP CYC(2) break; - case 0xC8: INY CYC(2) break; - case 0xC9: IMM CMP CYC(2) break; - case 0xCA: DEX CYC(2) break; - case 0xCB: INV NOP CYC(2) break; - case 0xCC: ABS CPY CYC(4) break; - case 0xCD: ABS CMP CYC(4) break; - case 0xCE: ABS DEC_CMOS CYC(5) break; - case 0xCF: INV NOP CYC(2) break; - case 0xD0: REL BNE CYC(2) break; - case 0xD1: INDY CMP CYC(5) break; - case 0xD2: IZPG CMP CYC(5) break; - case 0xD3: INV NOP CYC(2) break; - case 0xD4: INV ZPGX NOP CYC(4) break; - case 0xD5: ZPGX CMP CYC(4) break; - case 0xD6: ZPGX DEC_CMOS CYC(6) break; - case 0xD7: INV NOP CYC(2) break; - case 0xD8: CLD CYC(2) break; - case 0xD9: ABSY CMP CYC(4) break; - case 0xDA: PHX CYC(3) break; - case 0xDB: INV NOP CYC(2) break; - case 0xDC: INV ABSX NOP CYC(4) break; - case 0xDD: ABSX CMP CYC(4) break; - case 0xDE: ABSX DEC_CMOS CYC(6) break; - case 0xDF: INV NOP CYC(2) break; - case 0xE0: IMM CPX CYC(2) break; - case 0xE1: INDX SBC_CMOS CYC(6) break; - case 0xE2: INV IMM NOP CYC(2) break; - case 0xE3: INV NOP CYC(2) break; - case 0xE4: ZPG CPX CYC(3) break; - case 0xE5: ZPG SBC_CMOS CYC(3) break; - case 0xE6: ZPG INC_CMOS CYC(5) break; - case 0xE7: INV NOP CYC(2) break; - case 0xE8: INX CYC(2) break; - case 0xE9: IMM SBC_CMOS CYC(2) break; - case 0xEA: NOP CYC(2) break; - case 0xEB: INV NOP CYC(2) break; - case 0xEC: ABS CPX CYC(4) break; - case 0xED: ABS SBC_CMOS CYC(4) break; - case 0xEE: ABS INC_CMOS CYC(6) break; - case 0xEF: INV NOP CYC(2) break; - case 0xF0: REL BEQ CYC(2) break; - case 0xF1: INDY SBC_CMOS CYC(5) break; - case 0xF2: IZPG SBC_CMOS CYC(5) break; - case 0xF3: INV NOP CYC(2) break; - case 0xF4: INV ZPGX NOP CYC(4) break; - case 0xF5: ZPGX SBC_CMOS CYC(4) break; - case 0xF6: ZPGX INC_CMOS CYC(6) break; - case 0xF7: INV NOP CYC(2) break; - case 0xF8: SED CYC(2) break; - case 0xF9: ABSY SBC_CMOS CYC(4) break; - case 0xFA: PLX CYC(4) break; - case 0xFB: INV NOP CYC(2) break; - case 0xFC: INV ABSX NOP CYC(4) break; - case 0xFD: ABSX SBC_CMOS CYC(4) break; - case 0xFE: ABSX INC_CMOS CYC(6) break; - case 0xFF: INV NOP CYC(2) break; -*/ + 7, 6, 2, 2, 5, 3, 5, 5, 3, 2, 2, 2, 6, 4, 6, 5, + 2, 5, 5, 2, 5, 4, 6, 5, 2, 4, 2, 2, 6, 4, 6, 5, + 6, 6, 2, 2, 3, 3, 5, 5, 4, 2, 2, 2, 4, 2, 6, 5, + 2, 5, 5, 2, 4, 4, 6, 5, 2, 4, 2, 2, 4, 4, 6, 5, + 6, 6, 2, 2, 3, 3, 5, 5, 3, 2, 2, 2, 3, 4, 6, 5, + 2, 5, 5, 2, 4, 4, 6, 5, 2, 4, 3, 2, 8, 4, 6, 5, + 6, 6, 2, 2, 3, 3, 5, 5, 4, 2, 2, 2, 6, 4, 6, 5, + 2, 5, 5, 2, 4, 4, 6, 5, 2, 4, 4, 2, 6, 4, 6, 5, + 2, 6, 2, 2, 3, 3, 3, 5, 2, 2, 2, 2, 4, 4, 4, 5, + 2, 6, 5, 2, 4, 4, 4, 5, 2, 5, 2, 2, 4, 5, 5, 5, + 2, 6, 2, 2, 3, 3, 3, 5, 2, 2, 2, 2, 4, 4, 4, 5, + 2, 5, 5, 2, 4, 4, 4, 5, 2, 4, 2, 2, 4, 4, 4, 5, + 2, 6, 2, 2, 3, 3, 5, 5, 2, 2, 2, 2, 4, 4, 5, 5, + 2, 5, 5, 2, 4, 4, 6, 5, 2, 4, 3, 2, 4, 4, 6, 5, + 2, 6, 2, 2, 3, 3, 5, 5, 2, 2, 2, 2, 4, 4, 6, 5, + 2, 5, 5, 2, 4, 4, 6, 5, 2, 4, 4, 2, 4, 4, 6, 5 }; // @@ -696,7 +126,18 @@ static uint8_t _65C02Cycles[256] = { // static inline uint16_t RdMemW(uint16_t address) { - return (uint16_t)(regs->RdMem(address + 1) << 8) | regs->RdMem(address + 0); + return (uint16_t)(regs->RdMem(address + 1) << 8) + | regs->RdMem(address + 0); +} + + +// +// Read a uint16_t out of 65C02 memory (big endian format), wrapping on page 0 +// +static inline uint16_t RdMemWZP(uint16_t address) +{ + return (uint16_t)(regs->RdMem((address + 1) & 0xFF) << 8) + | regs->RdMem(address + 0); } @@ -706,19 +147,53 @@ static inline uint16_t RdMemW(uint16_t address) static inline uint16_t FetchMemW(uint16_t address) { regs->pc += 2; - return (uint16_t)(regs->RdMem(address + 1) << 8) | regs->RdMem(address + 0); + return (uint16_t)(regs->RdMem(address + 1) << 8) + | regs->RdMem(address + 0); } // // 65C02 OPCODE IMPLEMENTATION // -// NOTE: Lots of macros are used here to save a LOT of typing. Also -// helps speed the debugging process. :-) Because of this, combining +// NOTE: Lots of macros are used here to save a LOT of typing. Also +// helps speed the debugging process. :-) Because of this, combining // certain lines may look like a good idea but would end in disaster. -// You have been warned! ;-) +// You have been warned! ;-) // +// Page crossing macros. These catch the cases where access of a certain type +// will incur a one cycle penalty when crossing a page boundary. + +#define HANDLE_PAGE_CROSSING_IND_Y \ + uint16_t addressLo = regs->RdMem(regs->RdMem(regs->pc)); \ +\ + if ((addressLo + regs->y) > 0xFF) \ + regs->clock++; + +#define HANDLE_PAGE_CROSSING_ABS_X \ + uint16_t addressLo = regs->RdMem(regs->pc); \ +\ + if ((addressLo + regs->x) > 0xFF) \ + regs->clock++; + +#define HANDLE_PAGE_CROSSING_ABS_Y \ + uint16_t addressLo = regs->RdMem(regs->pc); \ +\ + if ((addressLo + regs->y) > 0xFF) \ + regs->clock++; + +// Branch taken adds a cycle, crossing page adds one more + +#define HANDLE_BRANCH_TAKEN(m) \ +{ \ + uint16_t oldpc = regs->pc; \ + regs->pc += m; \ + regs->clock++; \ + \ + if ((oldpc ^ regs->pc) & 0xFF00) \ + regs->clock++; \ +} + /* Mnemonic Addressing mode Form Opcode Size Timing @@ -736,16 +211,24 @@ ADC Immediate ADC #Oper 69 2 2 // ADC opcodes //This is non-optimal, but it works--optimize later. :-) +//N.B.: We have to pull the low nybble from each part of the sum in order to +// check BCD addition of the low nybble correctly. It doesn't work to +// look at the sum after summing the bytes. Also, Decimal mode incurs a +// one cycle penalty (for the decimal correction). #define OP_ADC_HANDLER(m) \ uint16_t sum = (uint16_t)regs->a + (m) + (uint16_t)(regs->cc & FLAG_C); \ \ if (regs->cc & FLAG_D) \ { \ - if ((sum & 0x0F) > 0x09) \ + uint8_t an = regs->a & 0x0F, mn = (m) & 0x0F, cn = (uint8_t)(regs->cc & FLAG_C); \ +\ + if ((an + mn + cn) > 9) \ sum += 0x06; \ \ - if ((sum & 0xF0) > 0x90) \ + if ((sum & 0x1F0) > 0x90) \ sum += 0x60; \ +\ + regs->clock++;\ } \ \ regs->cc = (regs->cc & ~FLAG_C) | (sum >> 8); \ @@ -779,12 +262,14 @@ static void Op6D(void) // ADC ABS static void Op7D(void) // ADC ABS, X { + HANDLE_PAGE_CROSSING_ABS_X; uint16_t m = READ_ABS_X; OP_ADC_HANDLER(m); } static void Op79(void) // ADC ABS, Y { + HANDLE_PAGE_CROSSING_ABS_Y; uint16_t m = READ_ABS_Y; OP_ADC_HANDLER(m); } @@ -797,6 +282,7 @@ static void Op61(void) // ADC (ZP, X) static void Op71(void) // ADC (ZP), Y { + HANDLE_PAGE_CROSSING_IND_Y; uint16_t m = READ_IND_ZP_Y; OP_ADC_HANDLER(m); } @@ -851,12 +337,14 @@ static void Op2D(void) // AND ABS static void Op3D(void) // AND ABS, X { + HANDLE_PAGE_CROSSING_ABS_X; uint8_t m = READ_ABS_X; OP_AND_HANDLER(m); } static void Op39(void) // AND ABS, Y { + HANDLE_PAGE_CROSSING_ABS_Y; uint8_t m = READ_ABS_Y; OP_AND_HANDLER(m); } @@ -869,6 +357,7 @@ static void Op21(void) // AND (ZP, X) static void Op31(void) // AND (ZP), Y { + HANDLE_PAGE_CROSSING_IND_Y; uint8_t m = READ_IND_ZP_Y; OP_AND_HANDLER(m); } @@ -925,6 +414,7 @@ static void Op0E(void) // ASL ABS static void Op1E(void) // ASL ABS, X { + HANDLE_PAGE_CROSSING_ABS_X; uint8_t m; READ_ABS_X_WB(m); OP_ASL_HANDLER(m); @@ -932,152 +422,168 @@ static void Op1E(void) // ASL ABS, X } /* -BBR0 Relative BBR0 Oper 0F 2 2 -BBR1 Relative BBR1 Oper 1F 2 2 -BBR2 Relative BBR2 Oper 2F 2 2 -BBR3 Relative BBR3 Oper 3F 2 2 -BBR4 Relative BBR4 Oper 4F 2 2 -BBR5 Relative BBR5 Oper 5F 2 2 -BBR6 Relative BBR6 Oper 6F 2 2 -BBR7 Relative BBR7 Oper 7F 2 2 -BBS0 Relative BBS0 Oper 8F 2 2 -BBS1 Relative BBS1 Oper 9F 2 2 -BBS2 Relative BBS2 Oper AF 2 2 -BBS3 Relative BBS3 Oper BF 2 2 -BBS4 Relative BBS4 Oper CF 2 2 -BBS5 Relative BBS5 Oper DF 2 2 -BBS6 Relative BBS6 Oper EF 2 2 -BBS7 Relative BBS7 Oper FF 2 2 +BBR0 ZP, Relative BBR0 Oper 0F 3 5 +BBR1 ZP, Relative BBR1 Oper 1F 3 5 +BBR2 ZP, Relative BBR2 Oper 2F 3 5 +BBR3 ZP, Relative BBR3 Oper 3F 3 5 +BBR4 ZP, Relative BBR4 Oper 4F 3 5 +BBR5 ZP, Relative BBR5 Oper 5F 3 5 +BBR6 ZP, Relative BBR6 Oper 6F 3 5 +BBR7 ZP, Relative BBR7 Oper 7F 3 5 +BBS0 ZP, Relative BBS0 Oper 8F 3 5 +BBS1 ZP, Relative BBS1 Oper 9F 3 5 +BBS2 ZP, Relative BBS2 Oper AF 3 5 +BBS3 ZP, Relative BBS3 Oper BF 3 5 +BBS4 ZP, Relative BBS4 Oper CF 3 5 +BBS5 ZP, Relative BBS5 Oper DF 3 5 +BBS6 ZP, Relative BBS6 Oper EF 3 5 +BBS7 ZP, Relative BBS7 Oper FF 3 5 */ // BBR/Sn opcodes static void Op0F(void) // BBR0 { + uint8_t b = READ_ZP; int16_t m = (int16_t)(int8_t)READ_IMM; - if (!(regs->a & 0x01)) - regs->pc += m; + if (!(b & 0x01)) + HANDLE_BRANCH_TAKEN(m); } static void Op1F(void) // BBR1 { + uint8_t b = READ_ZP; int16_t m = (int16_t)(int8_t)READ_IMM; - if (!(regs->a & 0x02)) - regs->pc += m; + if (!(b & 0x02)) + HANDLE_BRANCH_TAKEN(m); } static void Op2F(void) // BBR2 { + uint8_t b = READ_ZP; int16_t m = (int16_t)(int8_t)READ_IMM; - if (!(regs->a & 0x04)) - regs->pc += m; + if (!(b & 0x04)) + HANDLE_BRANCH_TAKEN(m); } static void Op3F(void) // BBR3 { + uint8_t b = READ_ZP; int16_t m = (int16_t)(int8_t)READ_IMM; - if (!(regs->a & 0x08)) - regs->pc += m; + if (!(b & 0x08)) + HANDLE_BRANCH_TAKEN(m); } static void Op4F(void) // BBR4 { + uint8_t b = READ_ZP; int16_t m = (int16_t)(int8_t)READ_IMM; - if (!(regs->a & 0x10)) - regs->pc += m; + if (!(b & 0x10)) + HANDLE_BRANCH_TAKEN(m); } static void Op5F(void) // BBR5 { + uint8_t b = READ_ZP; int16_t m = (int16_t)(int8_t)READ_IMM; - if (!(regs->a & 0x20)) - regs->pc += m; + if (!(b & 0x20)) + HANDLE_BRANCH_TAKEN(m); } static void Op6F(void) // BBR6 { + uint8_t b = READ_ZP; int16_t m = (int16_t)(int8_t)READ_IMM; - if (!(regs->a & 0x40)) - regs->pc += m; + if (!(b & 0x40)) + HANDLE_BRANCH_TAKEN(m); } static void Op7F(void) // BBR7 { + uint8_t b = READ_ZP; int16_t m = (int16_t)(int8_t)READ_IMM; - if (!(regs->a & 0x80)) - regs->pc += m; + if (!(b & 0x80)) + HANDLE_BRANCH_TAKEN(m); } static void Op8F(void) // BBS0 { + uint8_t b = READ_ZP; int16_t m = (int16_t)(int8_t)READ_IMM; - if (regs->a & 0x01) - regs->pc += m; + if (b & 0x01) + HANDLE_BRANCH_TAKEN(m); } static void Op9F(void) // BBS1 { + uint8_t b = READ_ZP; int16_t m = (int16_t)(int8_t)READ_IMM; - if (regs->a & 0x02) - regs->pc += m; + if (b & 0x02) + HANDLE_BRANCH_TAKEN(m); } static void OpAF(void) // BBS2 { + uint8_t b = READ_ZP; int16_t m = (int16_t)(int8_t)READ_IMM; - if (regs->a & 0x04) - regs->pc += m; + if (b & 0x04) + HANDLE_BRANCH_TAKEN(m); } static void OpBF(void) // BBS3 { + uint8_t b = READ_ZP; int16_t m = (int16_t)(int8_t)READ_IMM; - if (regs->a & 0x08) - regs->pc += m; + if (b & 0x08) + HANDLE_BRANCH_TAKEN(m); } static void OpCF(void) // BBS4 { + uint8_t b = READ_ZP; int16_t m = (int16_t)(int8_t)READ_IMM; - if (regs->a & 0x10) - regs->pc += m; + if (b & 0x10) + HANDLE_BRANCH_TAKEN(m); } static void OpDF(void) // BBS5 { + uint8_t b = READ_ZP; int16_t m = (int16_t)(int8_t)READ_IMM; - if (regs->a & 0x20) - regs->pc += m; + if (b & 0x20) + HANDLE_BRANCH_TAKEN(m); } static void OpEF(void) // BBS6 { + uint8_t b = READ_ZP; int16_t m = (int16_t)(int8_t)READ_IMM; - if (regs->a & 0x40) - regs->pc += m; + if (b & 0x40) + HANDLE_BRANCH_TAKEN(m); } static void OpFF(void) // BBS7 { + uint8_t b = READ_ZP; int16_t m = (int16_t)(int8_t)READ_IMM; - if (regs->a & 0x80) - regs->pc += m; + if (b & 0x80) + HANDLE_BRANCH_TAKEN(m); } /* @@ -1086,18 +592,6 @@ BCS Relative BCS Oper B0 2 2 BEQ Relative BEQ Oper F0 2 2 */ -// Branch taken adds a cycle, crossing page adds one more - -#define HANDLE_BRANCH_TAKEN(m) \ -{ \ - uint16_t oldpc = regs->pc; \ - regs->pc += m; \ - regs->clock++; \ -\ - if ((oldpc ^ regs->pc) & 0xFF00) \ - regs->clock++; \ -} - // Branch opcodes static void Op90(void) // BCC @@ -1172,6 +666,7 @@ static void Op2C(void) // BIT ABS static void Op3C(void) // BIT ABS, X { + HANDLE_PAGE_CROSSING_ABS_X; uint8_t m = READ_ABS_X; OP_BIT_HANDLER(m); } @@ -1344,12 +839,14 @@ static void OpCD(void) // CMP ABS static void OpDD(void) // CMP ABS, X { + HANDLE_PAGE_CROSSING_ABS_X; uint8_t m = READ_ABS_X; OP_CMP_HANDLER(m); } static void OpD9(void) // CMP ABS, Y { + HANDLE_PAGE_CROSSING_ABS_Y; uint8_t m = READ_ABS_Y; OP_CMP_HANDLER(m); } @@ -1362,6 +859,7 @@ static void OpC1(void) // CMP (ZP, X) static void OpD1(void) // CMP (ZP), Y { + HANDLE_PAGE_CROSSING_IND_Y; uint8_t m = READ_IND_ZP_Y; OP_CMP_HANDLER(m); } @@ -1481,6 +979,7 @@ static void OpCE(void) // DEC ABS static void OpDE(void) // DEC ABS, X { + HANDLE_PAGE_CROSSING_ABS_X; uint8_t m; READ_ABS_X_WB(m); OP_DEC_HANDLER(m); @@ -1551,12 +1050,14 @@ static void Op4D(void) // EOR ABS static void Op5D(void) // EOR ABS, X { + HANDLE_PAGE_CROSSING_ABS_X; uint8_t m = READ_ABS_X; OP_EOR_HANDLER(m); } static void Op59(void) // EOR ABS, Y { + HANDLE_PAGE_CROSSING_ABS_Y; uint8_t m = READ_ABS_Y; OP_EOR_HANDLER(m); } @@ -1569,6 +1070,7 @@ static void Op41(void) // EOR (ZP, X) static void Op51(void) // EOR (ZP), Y { + HANDLE_PAGE_CROSSING_IND_Y; uint8_t m = READ_IND_ZP_Y; OP_EOR_HANDLER(m); } @@ -1628,6 +1130,7 @@ static void OpEE(void) // INC ABS static void OpFE(void) // INC ABS, X { + HANDLE_PAGE_CROSSING_ABS_X; uint8_t m; READ_ABS_X_WB(m); OP_INC_HANDLER(m); @@ -1669,6 +1172,12 @@ static void Op4C(void) // JMP ABS static void Op6C(void) // JMP (ABS) { + // Check for page crossing + uint16_t addressLo = regs->RdMem(regs->pc); + + if (addressLo == 0xFF) + regs->clock++; + regs->pc = RdMemW(RdMemW(regs->pc)); } @@ -1734,12 +1243,14 @@ static void OpAD(void) // LDA ABS static void OpBD(void) // LDA ABS, X { + HANDLE_PAGE_CROSSING_ABS_X; uint8_t m = READ_ABS_X; OP_LDA_HANDLER(m); } static void OpB9(void) // LDA ABS, Y { + HANDLE_PAGE_CROSSING_ABS_Y; uint8_t m = READ_ABS_Y; OP_LDA_HANDLER(m); } @@ -1752,6 +1263,7 @@ static void OpA1(void) // LDA (ZP, X) static void OpB1(void) // LDA (ZP), Y { + HANDLE_PAGE_CROSSING_IND_Y; uint8_t m = READ_IND_ZP_Y; OP_LDA_HANDLER(m); } @@ -1802,6 +1314,7 @@ static void OpAE(void) // LDX ABS static void OpBE(void) // LDX ABS, Y { + HANDLE_PAGE_CROSSING_ABS_Y; uint8_t m = READ_ABS_Y; OP_LDX_HANDLER(m); } @@ -1809,9 +1322,9 @@ static void OpBE(void) // LDX ABS, Y /* LDY Immediate LDY #Oper A0 2 2 Zero Page LDY Zpg A4 2 3 -Zero Page,Y LDY Zpg,X B4 2 4 +Zero Page,X LDY Zpg,X B4 2 4 Absolute LDY Abs AC 3 4 -Absolute,Y LDY Abs,X BC 3 4 +Absolute,X LDY Abs,X BC 3 4 */ // LDY opcodes @@ -1846,6 +1359,7 @@ static void OpAC(void) // LDY ABS static void OpBC(void) // LDY ABS, X { + HANDLE_PAGE_CROSSING_ABS_X; uint8_t m = READ_ABS_X; OP_LDY_HANDLER(m); } @@ -1896,6 +1410,7 @@ static void Op4E(void) // LSR ABS static void Op5E(void) // LSR ABS, X { + HANDLE_PAGE_CROSSING_ABS_X; uint8_t m; READ_ABS_X_WB(m); OP_LSR_HANDLER(m); @@ -1954,12 +1469,14 @@ static void Op0D(void) // ORA ABS static void Op1D(void) // ORA ABS, X { + HANDLE_PAGE_CROSSING_ABS_X; uint8_t m = READ_ABS_X; OP_ORA_HANDLER(m); } static void Op19(void) // ORA ABS, Y { + HANDLE_PAGE_CROSSING_ABS_Y; uint8_t m = READ_ABS_Y; OP_ORA_HANDLER(m); } @@ -1972,6 +1489,7 @@ static void Op01(void) // ORA (ZP, X) static void Op11(void) // ORA (ZP), Y { + HANDLE_PAGE_CROSSING_IND_Y; uint8_t m = READ_IND_ZP_Y; OP_ORA_HANDLER(m); } @@ -2171,6 +1689,7 @@ static void Op2E(void) // ROL ABS static void Op3E(void) // ROL ABS, X { + HANDLE_PAGE_CROSSING_ABS_X; uint8_t m; READ_ABS_X_WB(m); OP_ROL_HANDLER(m); @@ -2224,6 +1743,7 @@ static void Op6E(void) // ROR ABS static void Op7E(void) // ROR ABS, X { + HANDLE_PAGE_CROSSING_ABS_X; uint8_t m; READ_ABS_X_WB(m); OP_ROR_HANDLER(m); @@ -2267,17 +1787,27 @@ Absolute,Y SBC Abs,Y F9 3 4 // SBC opcodes //This is non-optimal, but it works--optimize later. :-) -//This is correct except for the BCD handling... !!! FIX !!! [Possibly DONE] +// We do the BCD subtraction one nybble at a time to ensure a correct result. +// 9 - m is a "Nine's Complement". We do the BCD subtraction as a 9s +// complement addition because it's easier and it works. :-) Also, Decimal +// mode incurs a once cycle penalty (for the decimal correction). #define OP_SBC_HANDLER(m) \ uint16_t sum = (uint16_t)regs->a - (m) - (uint16_t)((regs->cc & FLAG_C) ^ 0x01); \ \ if (regs->cc & FLAG_D) \ { \ - if ((sum & 0x0F) > 0x09) \ - sum -= 0x06; \ + sum = (regs->a & 0x0F) + (9 - ((m) & 0x0F)) + (uint16_t)(regs->cc & FLAG_C); \ \ - if ((sum & 0xF0) > 0x90) \ - sum -= 0x60; \ + if (sum > 0x09) \ + sum += 0x06; \ +\ + sum += (regs->a & 0xF0) + (0x90 - ((m) & 0xF0)); \ +\ + if (sum > 0x99) \ + sum += 0x60; \ +\ + sum ^= 0x100; /* Invert carry, for active low borrow */ \ + regs->clock++;\ } \ \ regs->cc = (regs->cc & ~FLAG_C) | (((sum >> 8) ^ 0x01) & FLAG_C); \ @@ -2311,12 +1841,14 @@ static void OpED(void) // SBC ABS static void OpFD(void) // SBC ABS, X { + HANDLE_PAGE_CROSSING_ABS_X; uint16_t m = READ_ABS_X; OP_SBC_HANDLER(m); } static void OpF9(void) // SBC ABS, Y { + HANDLE_PAGE_CROSSING_ABS_Y; uint16_t m = READ_ABS_Y; OP_SBC_HANDLER(m); } @@ -2329,6 +1861,7 @@ static void OpE1(void) // SBC (ZP, X) static void OpF1(void) // SBC (ZP), Y { + HANDLE_PAGE_CROSSING_IND_Y; uint16_t m = READ_IND_ZP_Y; OP_SBC_HANDLER(m); } @@ -2764,6 +2297,196 @@ void Execute65C02(V65C02REGS * context, uint32_t cycles) while (regs->clock < endCycles) { #if 0 +//Epoch +if (regs->pc == 0x0518) +{ + dumpDis = true; +} +else if (regs->pc == 0x051E) +{ + uint16_t c1 = regs->RdMem(0xFF); + uint16_t c2 = regs->RdMem(0x00); + WriteLog("$FF/$00 = $%02X $%02X\n", c1, c2); + WriteLog("--> $%02X\n", regs->RdMem((c2 << 8) | c1)); +} +else if (regs->pc == 0x0522) +{ + uint16_t c1 = regs->RdMem(0xFF); + uint16_t c2 = regs->RdMem(0x00); + WriteLog("$FF/$00 = $%02X $%02X\n", c1, c2); + WriteLog("--> $%02X\n", regs->RdMem(((c2 << 8) | c1) + 1)); +} +#endif +#if 0 +// Up N Down testing +// Now Ankh testing... +static bool inDelay = false; +static bool inBell = false; +static bool inReadSector = false; +if (regs->pc == 0xFCA8 && !inBell && !inReadSector) +{ + dumpDis = false; + inDelay = true; + WriteLog("*** DELAY\n"); +} +else if (regs->pc == 0xFCB3 && inDelay && !inBell && !inReadSector) +{ + dumpDis = true; + inDelay = false; +} +if (regs->pc == 0xFBD9) +{ + dumpDis = false; + inBell = true; + WriteLog("*** BELL1\n"); +} +else if (regs->pc == 0xFBEF && inBell) +{ + dumpDis = true; + inBell = false; +} +else if (regs->pc == 0xC600) +{ + dumpDis = false; + WriteLog("*** DISK @ $C600\n"); +} +else if (regs->pc == 0x801) +{ + WriteLog("*** DISK @ $801\n"); + dumpDis = true; +} +else if (regs->pc == 0xC119) +{ + dumpDis = false; + WriteLog("*** BIOS @ $C119\n"); +} +else if (regs->pc == 0xC117) +{ + dumpDis = true; +} +else if (regs->pc == 0x843) +{ + dumpDis = false; + inReadSector = true; + uint16_t lo = regs->RdMem(0x26); + uint16_t hi = regs->RdMem(0x27); + WriteLog("\n*** DISK Read sector ($26=$%04X)...\n\n", (hi << 8) | lo); +} +else if (regs->pc == 0x8FC) +{ + dumpDis = true; + inReadSector = false; +} +else if (regs->pc == 0xA8A8 || regs->pc == 0xC100) +{ + dumpDis = false; +} +else if (regs->pc == 0x8FD) +{ +// regs->WrMem(0x827, 3); +// regs->WrMem(0x82A, 0); +//1 doesn't work, but 2 does (only with WOZ, not with DSK; DSK needs 4)... +// regs->WrMem(0x0D, 4); +} + +#endif +#if 0 +static bool inDelay = false; +static bool inMLI = false; +static uint16_t mliReturnAddr = 0; +static uint8_t mliCmd = 0; +if (regs->pc == 0x160B && dumpDis) +{ + inDelay = true; + dumpDis = false; + WriteLog("*** DELAY\n"); +} +else if (regs->pc == 0x1616 && inDelay) +{ + inDelay = false; + dumpDis = true; +} +else if (regs->pc == 0xD385 && dumpDis) +{ + inDelay = true; + dumpDis = false; + WriteLog("*** DELAY\n"); +} +else if (regs->pc == 0xD397 && inDelay) +{ + inDelay = false; + dumpDis = true; +} +else if (regs->pc == 0xBF00 && dumpDis) +{ + uint16_t lo = regs->RdMem(regs->sp + 0x101); + uint16_t hi = regs->RdMem(regs->sp + 0x102); + mliReturnAddr = ((hi << 8) | lo) + 1; + mliCmd = regs->RdMem(mliReturnAddr); + WriteLog("*** Calling ProDOS MLI with params: %02X %04X\n", mliCmd, RdMemW(mliReturnAddr + 1)); + mliReturnAddr += 3; + inMLI = true; + + // We want to see what's going on in the WRITE BLOCK command... :-P +// if (mliCmd != 0x81) +// dumpDis = false; +} +else if (regs->pc == mliReturnAddr && inMLI) +{ +//extern bool stopWriting; +//Stop writing to disk after the first block is done +// if (mliCmd == 0x81) +// stopWriting = true; + + inMLI = false; + dumpDis = true; +} +else if (regs->pc == 0xAB3A && dumpDis && !inDelay) +{ + dumpDis = false; + inDelay = true; + WriteLog("\n*** DELAY (A=$%02X)\n\n", regs->a); +} +else if (regs->pc == 0xAB4A && inDelay) +{ + dumpDis = true; + inDelay = false; +} + +if (regs->pc == 0xA80B) + dumpDis = true; + +#endif +#if 0 +static bool weGo = false; +static bool inDelay = false; +if (regs->pc == 0x92BA) +{ + dumpDis = true; + weGo = true; +} +else if (regs->pc == 0xAB3A && weGo && !inDelay) +{ + dumpDis = false; + inDelay = true; + WriteLog("\n*** DELAY (A=$%02X)\n\n", regs->a); +} +else if (regs->pc == 0xAB4A && weGo) +{ + dumpDis = true; + inDelay = false; +} +else if (regs->pc == 0xA8B5 && weGo) +{ + WriteLog("\n$D4=%02X, $AC1F=%02X, $AC20=%02X\n\n", regs->RdMem(0xD4), regs->RdMem(0xAC1F), regs->RdMem(0xAC20)); +} +/*else if (regs->pc == 0xA8C4 && weGo) +{ + WriteLog("Cheating... (clearing Carry flag)\n"); + regs->cc &= ~FLAG_C; +}*/ +#endif +#if 0 static bool weGo = false; if (regs->pc == 0x80AE) { @@ -2892,6 +2615,15 @@ if (regs->pc == 0x2000) dumpDis = true; #endif +#ifdef __DEBUG__ +#ifdef DO_BACKTRACE +//uint32_t btQueuePtr = 0; +//V65C02REGS btQueue[BACKTRACE_SIZE]; +//uint8_t btQueueInst[BACKTRACE_SIZE][4]; +memcpy(&btQueue[btQueuePtr], regs, sizeof(V65C02REGS)); +btQueuePtr = (btQueuePtr + 1) % BACKTRACE_SIZE; +#endif +#endif #ifdef __DEBUG__ static char disbuf[80]; if (dumpDis) @@ -2902,6 +2634,19 @@ if (dumpDis) #endif uint8_t opcode = regs->RdMem(regs->pc++); +#if 0 +if (opcode == 0) +{ + static char disbuf[80]; + uint32_t btStart = btQueuePtr - 12 + (btQueuePtr < 12 ? BACKTRACE_SIZE : 0); + + for(uint32_t i=btStart; icpuFlags & V65C02_STATE_ILLEGAL_INST)) //instCount[opcode]++; @@ -2919,12 +2664,12 @@ if (dumpDis) #ifdef __DEBUG__ if (dumpDis) - WriteLog(" [SP=01%02X, CC=%s%s.%s%s%s%s%s, A=%02X, X=%02X, Y=%02X]\n", + WriteLog(" [SP=01%02X, CC=%s%s.%s%s%s%s%s, A=%02X, X=%02X, Y=%02X](%d)\n", regs->sp, (regs->cc & FLAG_N ? "N" : "-"), (regs->cc & FLAG_V ? "V" : "-"), (regs->cc & FLAG_B ? "B" : "-"), (regs->cc & FLAG_D ? "D" : "-"), (regs->cc & FLAG_I ? "I" : "-"), (regs->cc & FLAG_Z ? "Z" : "-"), - (regs->cc & FLAG_C ? "C" : "-"), regs->a, regs->x, regs->y); + (regs->cc & FLAG_C ? "C" : "-"), regs->a, regs->x, regs->y, regs->clock - clockSave); #endif #ifdef __DEBUGMON__ diff --git a/src/vay8910.cpp b/src/vay8910.cpp new file mode 100644 index 0000000..e0fcc11 --- /dev/null +++ b/src/vay8910.cpp @@ -0,0 +1,360 @@ +// +// Virtual AY-3-8910 Emulator +// +// by James Hammons +// (C) 2018 Underground Software +// +// This was written mainly from the General Instruments datasheet for the 8910 +// part. I would have used the one from MAME, but it was so poorly written and +// so utterly incomprehensible that I decided to start from scratch to see if I +// could do any better; and so here we are. I *did* use a bit of code from +// MAME's AY-3-8910 RNG, as it was just too neat not to use. :-) +// + +#include "vay8910.h" + +#include // for memset() +#include "log.h" +#include "sound.h" + + +// AY-3-8910 register IDs +enum { AY_AFINE = 0, AY_ACOARSE, AY_BFINE, AY_BCOARSE, AY_CFINE, AY_CCOARSE, + AY_NOISEPER, AY_ENABLE, AY_AVOL, AY_BVOL, AY_CVOL, AY_EFINE, AY_ECOARSE, + AY_ESHAPE, AY_PORTA, AY_PORTB }; + +// Class variable instantiation/initialization +float VAY_3_8910::maxVolume = 8192.0f; +float VAY_3_8910::normalizedVolume[16];// = {}; + + +VAY_3_8910::VAY_3_8910() +{ + // Our normalized volume levels are from 0 to -48 dB, in 3 dB steps. + // N.B.: It's 3dB steps because those sound the best. Dunno what it really + // is, as nothing in the documentation tells you (it only says that + // each channel's volume is normalized from 0 to 1.0V). + float level = 1.0f; + + for(int i=15; i>=0; i--) + { + normalizedVolume[i] = level; + level /= 1.4125375446228; // 10.0 ^ (3.0 / 20.0) = 3 dB + } + + // In order to get a scale that goes from 0 to 1 smoothly, we renormalize + // our volumes so that volume[0] is actually 0, and volume[15] is 1. + // Basically, we're sliding the curve down the Y-axis so that volume[0] + // touches the X-axis, then stretching the result so that it fits into the + // interval (0, 1). + float vol0 = normalizedVolume[0]; + float vol15 = normalizedVolume[15] - vol0; + + for(int i=0; i<16; i++) + normalizedVolume[i] = (normalizedVolume[i] - vol0) / vol15; + +#if 0 + WriteLog("\nRenormalized volume, level (max=%d):\n", (int)maxVolume); + for(int i=0; i<16; i++) + WriteLog("%lf, %d\n", normalizedVolume[i], (int)(normalizedVolume[i] * maxVolume)); + WriteLog("\n"); +#endif +} + + +void VAY_3_8910::Reset(void) +{ + memset(this, 0, sizeof(struct VAY_3_8910)); + prng = 1; // Set correct PRNG seed +} + + +void VAY_3_8910::WriteControl(uint8_t value) +{ + if ((value & 0x04) == 0) + Reset(); + else if ((value & 0x03) == 0x03) + regLatch = data; + else if ((value & 0x03) == 0x02) + SetRegister(); +} + + +void VAY_3_8910::WriteData(uint8_t value) +{ + data = value; +} + + +void VAY_3_8910::SetRegister(void) +{ +#if 0 +static char regname[16][32] = { + "AY_AFINE ", + "AY_ACOARSE ", + "AY_BFINE ", + "AY_BCOARSE ", + "AY_CFINE ", + "AY_CCOARSE ", + "AY_NOISEPER", + "AY_ENABLE ", + "AY_AVOL ", + "AY_BVOL ", + "AY_CVOL ", + "AY_EFINE ", + "AY_ECOARSE ", + "AY_ESHAPE ", + "AY_PORTA ", + "AY_PORTB " +}; +WriteLog("*** AY(%d) Reg: %s = $%02X\n", chipNum, regname[reg], value); +#endif + uint16_t value = (uint16_t)data; + + switch (regLatch) + { + case AY_AFINE: + // The square wave period is the passed in value times 16, so we handle + // that here. + period[0] = (period[0] & 0xF000) | (value << 4); + break; + case AY_ACOARSE: + period[0] = ((value & 0x0F) << 12) | (period[0] & 0xFF0); + break; + case AY_BFINE: + period[1] = (period[1] & 0xF000) | (value << 4); + break; + case AY_BCOARSE: + period[1] = ((value & 0x0F) << 12) | (period[1] & 0xFF0); + break; + case AY_CFINE: + period[2] = (period[2] & 0xF000) | (value << 4); + break; + case AY_CCOARSE: + period[2] = ((value & 0x0F) << 12) | (period[2] & 0xFF0); + break; + case AY_NOISEPER: + // Like the square wave period, the value is the what's passed * 16. + noisePeriod = (value & 0x1F) << 4; + break; + case AY_ENABLE: + toneEnable[0] = (value & 0x01 ? false : true); + toneEnable[1] = (value & 0x02 ? false : true); + toneEnable[2] = (value & 0x04 ? false : true); + noiseEnable[0] = (value & 0x08 ? false : true); + noiseEnable[1] = (value & 0x10 ? false : true); + noiseEnable[2] = (value & 0x20 ? false : true); + break; + case AY_AVOL: + volume[0] = value & 0x0F; + envEnable[0] = (value & 0x10 ? true : false); + + if (envEnable[0]) + { + envCount[0] = 0; + volume[0] = (envAttack ? 0 : 15); + envDirection[0] = (envAttack ? 1 : -1); + } + break; + case AY_BVOL: + volume[1] = value & 0x0F; + envEnable[1] = (value & 0x10 ? true : false); + + if (envEnable[1]) + { + envCount[1] = 0; + volume[1] = (envAttack ? 0 : 15); + envDirection[1] = (envAttack ? 1 : -1); + } + break; + case AY_CVOL: + volume[2] = value & 0x0F; + envEnable[2] = (value & 0x10 ? true : false); + + if (envEnable[2]) + { + envCount[2] = 0; + volume[2] = (envAttack ? 0 : 15); + envDirection[2] = (envAttack ? 1 : -1); + } + break; + case AY_EFINE: + // The envelope period is 256 times the passed in value + envPeriod = (envPeriod & 0xFF0000) | (value << 8); + break; + case AY_ECOARSE: + envPeriod = (value << 16) | (envPeriod & 0xFF00); + break; + case AY_ESHAPE: + envAttack = (value & 0x04 ? true : false); + envAlternate = (value & 0x02 ? true : false); + envHold = (value & 0x01 ? true : false); + + // If the Continue bit is *not* set, the Alternate bit is forced to the + // Attack bit, and Hold is forced on. + if (!(value & 0x08)) + { + envAlternate = envAttack; + envHold = true; + } + + // Reset all voice envelope counts... + for(int i=0; i<3; i++) + { + envCount[i] = 0; + envDirection[i] = (envAttack ? 1 : -1); + + // Only reset the volume if the envelope is enabled! + if (envEnable[i]) + volume[i] = (envAttack ? 0 : 15); + } + break; + } +} + + +// +// Generate one sample and quit +// +bool logAYInternal = false; +uint16_t VAY_3_8910::GetSample(void) +{ + uint16_t sample = 0; + + // Number of cycles per second to run the PSG is the 6502 clock rate + // divided by the host sample rate + const static double exactCycles = 1020484.32 / (double)SAMPLE_RATE; + static double overflow = 0; + + int fullCycles = (int)exactCycles; + overflow += exactCycles - (double)fullCycles; + + if (overflow >= 1.0) + { + fullCycles++; + overflow -= 1.0; + } + + for(int i=0; i 16)) + { + count[j]++; + + // It's (period / 2) because one full period of a square wave + // is zero for half of its period and one for the other half! + if (count[j] > (period[j] / 2)) + { + count[j] = 0; + state[j] = !state[j]; + } + } + + // Envelope generator only runs if the corresponding voice flag is + // enabled. + if (envEnable[j]) + { + envCount[j]++; + + // It's (EP / 16) because there are 16 volume steps in each EP. + if (envCount[j] > (envPeriod / 16)) + { + // Attack 0 = \, 1 = / (attack lasts one EP) + // Alternate = mirror envelope's last attack + // Hold = run 1 EP, hold at level (Alternate XOR Attack) + envCount[j] = 0; + + // We've hit a point where we need to make a change to the + // envelope's volume, so do it: + volume[j] += envDirection[j]; + + // If we hit the end of the EP, change the state of the + // envelope according to the envelope's variables. + if ((volume[j] > 15) || (volume[j] < 0)) + { + // Hold means we set the volume to (Alternate XOR + // Attack) and stay there after the Attack EP. + if (envHold) + { + volume[j] = (envAttack != envAlternate ? 15: 0); + envDirection[j] = 0; + } + else + { + // If the Alternate bit is set, we mirror the + // Attack pattern; otherwise we reset it to the + // whatever level was set by the Attack bit. + if (envAlternate) + { + envDirection[j] = -envDirection[j]; + volume[j] += envDirection[j]; + } + else + volume[j] = (envAttack ? 0 : 15); + } + } + } + } + } + + // Noise generator (the PRNG) runs all the time: + noiseCount++; + + if (noiseCount > noisePeriod) + { + noiseCount = 0; + + // The following is from MAME's AY-3-8910 code: + // The Pseudo Random Number Generator of the 8910 is a 17-bit shift + // register. The input to the shift register is bit0 XOR bit3 (bit0 + // is the output). This was verified on AY-3-8910 and YM2149 chips. + + // The following is a fast way to compute bit17 = bit0 ^ bit3. + // Instead of doing all the logic operations, we only check bit0, + // relying on the fact that after three shifts of the register, + // what now is bit3 will become bit0, and will invert, if + // necessary, bit14, which previously was bit17. + if (prng & 0x00001) + { + // This version is called the "Galois configuration". + prng ^= 0x24000; + // The noise wave *toggles* when a one shows up in bit0... + noiseState = !noiseState; + } + + prng >>= 1; + } + } + + // We mix channels A-C here into one sample, because the Mockingboard just + // sums the output of the AY-3-8910 by tying their lines together. + // We also handle the various cases (of which there are four) of mixing + // pure tones and "noise" tones together. + for(int i=0; i<3; i++) + { + // Set the volume level scaled by the maximum volume (which can be + // altered outside of this module). + int level = (int)(normalizedVolume[volume[i]] * maxVolume); + + if (toneEnable[i] && !noiseEnable[i]) + sample += (state[i] ? level : 0); + else if (!toneEnable[i] && noiseEnable[i]) + sample += (noiseState ? level : 0); + else if (toneEnable[i] && noiseEnable[i]) + sample += (state[i] & noiseState ? level : 0); + else if (!toneEnable[i] && !noiseEnable[i]) + sample += level; + } + + if (logAYInternal) + { + WriteLog(" (%d) State A,B,C: %s %s %s, Sample: $%04X, P: $%X, $%X, $%X\n", id, (state[0] ? "1" : "0"), (state[1] ? "1" : "0"), (state[2] ? "1" : "0"), sample, period[0], period[1], period[2]); + } + + return sample; +} + diff --git a/src/vay8910.h b/src/vay8910.h new file mode 100644 index 0000000..4eb0fe9 --- /dev/null +++ b/src/vay8910.h @@ -0,0 +1,57 @@ +// +// Virtual AY-3-8910 Emulator +// +// by James Hammons +// (C) 2018 Underground Software +// + +#ifndef VAY8910_H +#define VAY8910_H + +#include + +struct VAY_3_8910 +{ + // User visible registers + uint16_t period[3]; // Channel A-C period + int16_t volume[3]; // Channel A-C volume (non-envelope mode) + bool envEnable[3]; // Channel A-C envelope enable + bool toneEnable[3]; // Channel A-C tone enable + bool noiseEnable[3]; // Channel A-C noise enable + uint16_t noisePeriod; // Noise period (5 bits * 16) + uint32_t envPeriod; // Envelope period (16 bits * 256) + bool envAttack; // Envelope Attack bit + bool envAlternate; // Envelope Alternate bit + bool envHold; // Envelope Hold bit + // Internal registers + uint16_t count[3]; // Channel A-C current count + bool state[3]; // Channel A-C current state + uint16_t noiseCount; // Noise current count + bool noiseState; // Noise state + uint32_t envCount[3]; // Envelope current count + int16_t envDirection[3];// Envelope direction (rising, 0, or falling) + uint32_t prng; // Psuedo RNG (17 bits) + uint8_t regLatch; // Register latch (written by 6522VIA) + uint8_t data; // Data lines (written by 6522VIA) + uint8_t id; // Chip ID (optional) + + VAY_3_8910(); + void Reset(void); + void WriteControl(uint8_t); + void WriteData(uint8_t); + void SetRegister(void); + uint16_t GetSample(void); + + // Class variables + + // Maximum volume that can be generated by one voice + static float maxVolume; + // Normalized volumes (zero to one) for AY-3-8910 output, in 16 steps + static float normalizedVolume[16]; +}; + +// Exported variables +extern bool logAYInternal; + +#endif // VAY8910_H + diff --git a/src/video.cpp b/src/video.cpp index 5bc12e0..e027dfa 100644 --- a/src/video.cpp +++ b/src/video.cpp @@ -251,6 +251,7 @@ static void Render80ColumnTextLine(uint8_t line); static void Render40ColumnText(void); static void Render80ColumnText(void); static void RenderLoRes(uint16_t toLine = 24); +static void RenderDLoRes(uint16_t toLine = 24); static void RenderHiRes(uint16_t toLine = 192); static void RenderDHiRes(uint16_t toLine = 192); static void RenderVideoFrame(/*uint32_t *, int*/); @@ -342,6 +343,7 @@ void SpawnMessage(const char * text, ...) va_end(arg); msgTicks = 120; +//WriteLog("\n%s\n", message); } @@ -493,19 +495,24 @@ static void Render40ColumnTextLine(uint8_t line) if (alternateCharset) { - if (textChar[((chr & 0x3F) * 56) + cx + (cy * 7)]) + if (textChar2e[(chr * 56) + cx + (cy * 7)]) pixel = pixelOn; - - if (chr < 0x80) - pixel = pixel ^ (screenType == ST_GREEN_MONO ? 0x0061FF61 : 0x00FFFFFF); - - if ((chr & 0xC0) == 0x40 && flash) - pixel = 0xFF000000; } else { - if (textChar2e[(chr * 56) + cx + (cy * 7)]) - pixel = pixelOn; + if ((chr & 0xC0) == 0x40) + { + if (textChar2e[((chr & 0x3F) * 56) + cx + (cy * 7)]) + pixel = pixelOn; + + if (flash) + pixel = pixel ^ (screenType == ST_GREEN_MONO ? 0x0061FF61 : 0x00FFFFFF); + } + else + { + if (textChar2e[(chr * 56) + cx + (cy * 7)]) + pixel = pixelOn; + } } scrBuffer[(x * 7 * 2) + (line * VIRTUAL_SCREEN_WIDTH * 8 * 2) + (cx * 2) + 0 + (cy * VIRTUAL_SCREEN_WIDTH * 2)] = pixel; @@ -548,19 +555,24 @@ static void Render80ColumnTextLine(uint8_t line) if (alternateCharset) { - if (textChar[((chr & 0x3F) * 56) + cx + (cy * 7)]) + if (textChar2e[(chr * 56) + cx + (cy * 7)]) pixel = pixelOn; - - if (chr < 0x80) - pixel = pixel ^ (screenType == ST_GREEN_MONO ? 0x0061FF61 : 0x00FFFFFF); - - if ((chr & 0xC0) == 0x40 && flash) - pixel = 0xFF000000; } else { - if (textChar2e[(chr * 56) + cx + (cy * 7)]) - pixel = pixelOn; + if ((chr & 0xC0) == 0x40) + { + if (textChar2e[((chr & 0x3F) * 56) + cx + (cy * 7)]) + pixel = pixelOn; + + if (flash) + pixel = pixel ^ (screenType == ST_GREEN_MONO ? 0x0061FF61 : 0x00FFFFFF); + } + else + { + if (textChar2e[(chr * 56) + cx + (cy * 7)]) + pixel = pixelOn; + } } scrBuffer[(x * 7) + (line * VIRTUAL_SCREEN_WIDTH * 8 * 2) + cx + (cy * 2 * VIRTUAL_SCREEN_WIDTH)] = pixel; @@ -764,7 +776,7 @@ fb fb fb -> 15 [1111] -> 15 WHITE // // Render the Double Lo Res screen (HIRES off, DHIRES on) // -static void RenderDLoRes(void) +static void RenderDLoRes(uint16_t toLine/*= 24*/) { // NOTE: The green mono rendering doesn't skip every other line... !!! FIX !!! // Also, we could set up three different Render functions depending on @@ -799,7 +811,7 @@ FB FB FB -> 15 [1111] -> 15 WHITE uint8_t mirrorNybble2[16] = { 0, 4, 2, 6, 1, 5, 3, 7, 8, 12, 10, 14, 9, 13, 11, 15 }; uint32_t pixelOn = (screenType == ST_WHITE_MONO ? 0xFFFFFFFF : 0xFF61FF61); - for(uint16_t y=0; y<24; y++) + for(uint16_t y=0; y^`5n0Od$3#t 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 RfBuH4sj8<^p=2BOe*jW+I1T^+ literal 0 HcmV?d00001 diff --git a/web/img/ss-01.png b/web/img/ss-01.png new file mode 100644 index 0000000000000000000000000000000000000000..2939cd6130c6e23162cf34009b6a90a9c44007b9 GIT binary patch literal 108708 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 MBO_KUqT}=b0rAxnH2?qr literal 0 HcmV?d00001 diff --git a/web/img/ss-01s.png b/web/img/ss-01s.png new file mode 100644 index 0000000000000000000000000000000000000000..b05e38e5c635549f7945029a0e9e0b49c5f49742 GIT binary patch literal 83793 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 z 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�N#XtN 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 z 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