From f9098d0570ae6462781e8189518085cb1c8c00ef Mon Sep 17 00:00:00 2001 From: Shamus Hammons Date: Sun, 2 Nov 2008 20:34:45 +0000 Subject: [PATCH] Major refactoring of GUI: Phase I --- Makefile | 58 +- docs/WHATSNEW | 4 +- src/gui/button.cpp | 121 ++ src/gui/button.h | 37 + src/gui/element.cpp | 18 + src/gui/element.h | 40 + src/gui/filelist.cpp | 112 ++ src/gui/filelist.h | 29 + src/gui/font14pt.h | 3264 +++++++++++++++++++------------------- src/gui/gui.cpp | 1583 +----------------- src/gui/guielements.h | 163 +- src/gui/guimisc.cpp | 397 +++++ src/gui/guimisc.h | 74 + src/gui/image.cpp | 20 + src/gui/image.h | 27 + src/gui/listbox.cpp | 242 +++ src/gui/listbox.h | 45 + src/gui/menu.cpp | 177 +++ src/gui/menu.h | 68 + src/gui/pushbutton.cpp | 38 + src/gui/pushbutton.h | 36 + src/gui/slideswitch.cpp | 38 + src/gui/slideswitch.h | 33 + src/gui/text.cpp | 26 + src/gui/text.h | 29 + src/gui/textedit.cpp | 52 + src/gui/textedit.h | 32 + src/gui/vj_title_small.c | 13 +- src/gui/window.cpp | 94 ++ src/gui/window.h | 35 + 30 files changed, 3604 insertions(+), 3301 deletions(-) create mode 100644 src/gui/button.cpp create mode 100644 src/gui/button.h create mode 100644 src/gui/element.cpp create mode 100644 src/gui/element.h create mode 100644 src/gui/filelist.cpp create mode 100644 src/gui/filelist.h create mode 100644 src/gui/guimisc.cpp create mode 100644 src/gui/guimisc.h create mode 100644 src/gui/image.cpp create mode 100644 src/gui/image.h create mode 100644 src/gui/listbox.cpp create mode 100644 src/gui/listbox.h create mode 100644 src/gui/menu.cpp create mode 100644 src/gui/menu.h create mode 100644 src/gui/pushbutton.cpp create mode 100644 src/gui/pushbutton.h create mode 100644 src/gui/slideswitch.cpp create mode 100644 src/gui/slideswitch.h create mode 100644 src/gui/text.cpp create mode 100644 src/gui/text.h create mode 100644 src/gui/textedit.cpp create mode 100644 src/gui/textedit.h create mode 100644 src/gui/window.cpp create mode 100644 src/gui/window.h diff --git a/Makefile b/Makefile index 5df0a73..d205e3b 100644 --- a/Makefile +++ b/Makefile @@ -72,7 +72,19 @@ OBJS = \ obj/m68kopnz.o \ obj/m68kdasm.o \ \ + obj/button.o \ + obj/element.o \ + obj/filelist.o \ obj/gui.o \ + obj/guimisc.o \ + obj/image.o \ + obj/listbox.o \ + obj/menu.o \ + obj/pushbutton.o \ + obj/slideswitch.o \ + obj/text.o \ + obj/textedit.o \ + obj/window.o \ \ obj/blitter.o \ obj/cdrom.o \ @@ -102,37 +114,37 @@ OBJS = \ all: checkenv message obj $(TARGET)$(EXESUFFIX) @echo - @echo "*** Looks like it compiled OK... Give it a whirl!" + @echo -e "\033[01;33m***\033[00;32m Looks like it compiled OK... Give it a whirl!\033[00m" # Check the compilation environment, barf if not appropriate checkenv: @echo - @echo -n "*** Checking compilation environment... " + @echo -en "\033[01;33m***\033[00;32m Checking compilation environment... \033[00m" ifeq "" "$(shell which sdl-config)" @echo @echo - @echo "It seems that you don't have the SDL development libraries installed. If you" - @echo "have installed them, make sure that the sdl-config file is somewhere in your" - @echo "path and is executable." + @echo -e "\033[01;33mIt seems that you don't have the SDL development libraries installed. If you" + @echo -e "have installed them, make sure that the sdl-config file is somewhere in your" + @echo -e "path and is executable.\033[00m" @echo #Is there a better way to break out of the makefile? - @break + @breaky else - @echo "OK" + @echo -e "\033[01;37mOK\033[00m" endif -# !!! NOTE !!! Need to put a check here for libcdio, GL, etc. +# !!! NOTE !!! Need to put a check here for libcdio, GL, zlib message: @echo - @echo "*** Building Virtual Jaguar for $(MSG)..." + @echo -e "\033[01;33m***\033[00;32m Building Virtual Jaguar for $(MSG)...\033[00m" @echo clean: - @echo -n "*** Cleaning out the garbage..." + @echo -en "\033[01;33m***\033[00;32m Cleaning out the garbage...\033[00m" @rm -rf obj @rm -f ./$(TARGET)$(EXESUFFIX) - @echo done! + @echo -e "\033[01;37mdone!\033[00m" obj: @mkdir obj @@ -141,24 +153,24 @@ obj: ifneq "" "$(ICON)" $(ICON): res/$(TARGET).rc res/$(TARGET).ico - @echo \*\*\* Processing icon... + @echo -e "\033[01;33m***\033[00;32m Processing icon...\033[00m" @windres -i res/$(TARGET).rc -o $(ICON) --include-dir=./res endif obj/%.o: src/%.c - @echo "*** Compiling $<..." + @echo -e "\033[01;33m***\033[00;32m Compiling $<...\033[00m" @$(CC) $(CFLAGS) $(INCS) -c $< -o $@ obj/%.o: src/%.cpp - @echo "*** Compiling $<..." + @echo -e "\033[01;33m***\033[00;32m Compiling $<...\033[00m" @$(CC) $(CPPFLAGS) $(INCS) -c $< -o $@ obj/%.o: src/gui/%.cpp - @echo "*** Compiling $<..." + @echo -e "\033[01;33m***\033[00;32m Compiling $<...\033[00m" @$(CC) $(CPPFLAGS) $(INCS) -c $< -o $@ $(TARGET)$(EXESUFFIX): $(OBJS) - @echo "*** Linking it all together..." + @echo -e "\033[01;33m***\033[00;32m Linking it all together...\033[00m" @$(LD) $(LDFLAGS) -o $@ $(OBJS) $(LIBS) # strip --strip-all vj$(EXESUFFIX) # upx -9 vj$(EXESUFFIX) @@ -182,32 +194,32 @@ $(TARGET)$(EXESUFFIX): $(OBJS) #NOTE: The above doesn't work for some reason... obj/m68kcpu.o: obj/m68kops.h src/m68k.h src/m68kconf.h - @echo "*** Compiling m68kcpu.c..." + @echo -e "\033[01;33m***\033[00;32m Compiling m68kcpu.c...\033[00m" @$(CC) $(CFLAGS) -Iobj -c src/m68kcpu.c -o obj/m68kcpu.o obj/m68kops.o: obj/m68kmake$(EXESUFFIX) obj/m68kops.h obj/m68kops.c src/m68k.h src/m68kconf.h - @echo "*** Compiling m68kops.c..." + @echo -e "\033[01;33m***\033[00;32m Compiling m68kops.c...\033[00m" @$(CC) $(CFLAGS) -Isrc -c obj/m68kops.c -o obj/m68kops.o obj/m68kopac.o: obj/m68kmake$(EXESUFFIX) obj/m68kops.h obj/m68kopac.c src/m68k.h src/m68kconf.h - @echo "*** Compiling m68kopac.c..." + @echo -e "\033[01;33m***\033[00;32m Compiling m68kopac.c...\033[00m" @$(CC) $(CFLAGS) -Isrc -c obj/m68kopac.c -o obj/m68kopac.o obj/m68kopdm.o: obj/m68kmake$(EXESUFFIX) obj/m68kops.h obj/m68kopdm.c src/m68k.h src/m68kconf.h - @echo "*** Compiling m68kopdm.c..." + @echo -e "\033[01;33m***\033[00;32m Compiling m68kopdm.c...\033[00m" @$(CC) $(CFLAGS) -Isrc -c obj/m68kopdm.c -o obj/m68kopdm.o obj/m68kopnz.o: obj/m68kmake$(EXESUFFIX) obj/m68kops.h obj/m68kopnz.c src/m68k.h src/m68kconf.h - @echo "*** Compiling m68kopnz.c..." + @echo -e "\033[01;33m***\033[00;32m Compiling m68kopnz.c...\033[00m" @$(CC) $(CFLAGS) -Isrc -c obj/m68kopnz.c -o obj/m68kopnz.o obj/m68kdasm.o: src/m68kdasm.c src/m68k.h src/m68kconf.h - @echo "*** Compiling m68kdasm.c..." + @echo -e "\033[01;33m***\033[00;32m Compiling m68kdasm.c...\033[00m" @$(CC) $(CFLAGS) -Isrc -c src/m68kdasm.c -o obj/m68kdasm.o obj/m68kops.h: obj/m68kmake$(EXESUFFIX) @obj/m68kmake obj src/m68k_in.c obj/m68kmake$(EXESUFFIX): src/m68kmake.c src/m68k_in.c - @echo "*** Preparing to make the Musashi core..." + @echo -e "\033[01;33m***\033[00;32m Preparing to make the Musashi core...\033[00m" @$(CC) $(WARNINGS) src/m68kmake.c -o obj/m68kmake$(EXESUFFIX) diff --git a/docs/WHATSNEW b/docs/WHATSNEW index 7c5f49e..64bb4df 100644 --- a/docs/WHATSNEW +++ b/docs/WHATSNEW @@ -7,9 +7,11 @@ Virtual Jaguar v1.1.0 GCC/SDL such can happen when they're supposed to. [Shamus] * Fixed blitter writes so that Intensity[0-3] and Z[0-3] are written in the correct order. [Shamus] -* Rewrote blitter to conform the the Oberon ASIC nets. This should fix a +* Major rewrite of blitter to conform the the TOM ASIC nets. This should fix a bunch of stuff that wasn't working correctly before. [Shamus] * Fixed writes to 64 bit blitter registers. [Shamus] +* Refactored GUI to be more maintainable, better looking and more responsive. + [Shamus] Virtual Jaguar v1.0.7 GCC/SDL diff --git a/src/gui/button.cpp b/src/gui/button.cpp new file mode 100644 index 0000000..052d19c --- /dev/null +++ b/src/gui/button.cpp @@ -0,0 +1,121 @@ +// +// Button class +// +// by James L. Hammons +// + +#include "button.h" + +//#include "font14pt.h" +#include "guimisc.h" + +// Various constructors + +Button::Button(uint32 x/*= 0*/, uint32 y/*= 0*/, uint32 w/*= 0*/, uint32 h/*= 0*/): + Element(x, y, w, h), activated(false), clicked(false), inside(false), + fgColor(0xFFFFFFFF), bgColor(0xFF00FF00), pic(NULL), elementToTell(NULL) +{ +} + +Button::Button(uint32 x, uint32 y, uint32 w, uint32 h, uint32 * p): + Element(x, y, w, h), activated(false), clicked(false), inside(false), + fgColor(0xFFFFFFFF), bgColor(0xFF00FF00), pic(p), elementToTell(NULL) +{ +} + +// Button::Button(uint32 x, uint32 y, uint32 * p): Element(x, y, 0, 0), + +Button::Button(uint32 x, uint32 y, uint32 * p, uint32 * pH/*= NULL*/, uint32 * pD/*= NULL*/): + Element(x, y, 0, 0), activated(false), clicked(false), inside(false), + fgColor(0xFFFFFFFF), bgColor(0xFF00FF00), pic(p), picHover(pH), picDown(pD), + elementToTell(NULL) +{ + if (pic) + extents.w = pic[0], extents.h = pic[1]; +} + +Button::Button(uint32 x, uint32 y, uint32 w, uint32 h, std::string s): + Element(x, y, w, h), activated(false), clicked(false), inside(false), + fgColor(0xFFFFFFFF), bgColor(0xFF00FF00), pic(NULL), text(s), elementToTell(NULL) +{ +} + +Button::Button(uint32 x, uint32 y, std::string s): + Element(x, y, 0, FONT_HEIGHT), activated(false), clicked(false), inside(false), + fgColor(0xFFFFFFFF), bgColor(0xFF00FF00), pic(NULL), text(s), elementToTell(NULL) +{ + extents.w = s.length() * FONT_WIDTH; +} + +// Implementation + +void Button::HandleMouseMove(uint32 x, uint32 y) +{ + inside = Inside(x, y); +} + +void Button::HandleMouseButton(uint32 x, uint32 y, bool mouseDown) +{ + if (inside) + { + if (mouseDown) + clicked = true; + + if (clicked && !mouseDown) + { + clicked = false, activated = true; + + // Send a message that we're activated (if there's someone to tell, that is) + if (elementToTell) + elementToTell->Notify(this); + } + } + else + clicked = activated = false; +} + +void Button::Draw(uint32 offsetX/*= 0*/, uint32 offsetY/*= 0*/) +{ + uint32 addr = (extents.x + offsetX) + ((extents.y + offsetY) * pitch); + + if (text.length() > 0) // Simple text button +// if (pic == NULL) + { + for(uint32 y=0; y 010000 11111 10000 -> 0100 0001 1111 1111 1000 0100 -> 41 FF 84 + = (clicked && inside ? fgColor : (inside ? 0xFF84FF41 : bgColor)); + } + } + + DrawString(screenBuffer, extents.x + offsetX, extents.y + offsetY, false, "%s", text.c_str()); + } + else // Graphical button + { + uint32 * picToShow = pic; + + if (picHover != NULL && inside && !clicked) + picToShow = picHover; + + if (picDown != NULL && inside && clicked) + picToShow = picDown; + + DrawTransparentBitmapDeprecated(screenBuffer, extents.x + offsetX, extents.y + offsetY, picToShow); + } +} + +bool Button::ButtonClicked(void) +{ + return activated; +} + +void Button::SetNotificationElement(Element * e) +{ + elementToTell = e; +} diff --git a/src/gui/button.h b/src/gui/button.h new file mode 100644 index 0000000..c024e39 --- /dev/null +++ b/src/gui/button.h @@ -0,0 +1,37 @@ +// +// Button class +// +// by James L. Hammons +// + +#ifndef __BUTTON_H__ +#define __BUTTON_H__ + +#include +#include "element.h" + +class Button: public Element +{ + public: + Button(uint32 x = 0, uint32 y = 0, uint32 w = 0, uint32 h = 0); + Button(uint32 x, uint32 y, uint32 w, uint32 h, uint32 * p); + Button(uint32 x, uint32 y, uint32 * p, uint32 * pH = NULL, uint32 * pD = NULL); + Button(uint32 x, uint32 y, uint32 w, uint32 h, std::string s); + Button(uint32 x, uint32 y, std::string s); + virtual void HandleKey(SDLKey key) {} + virtual void HandleMouseMove(uint32 x, uint32 y); + virtual void HandleMouseButton(uint32 x, uint32 y, bool mouseDown); + virtual void Draw(uint32 offsetX = 0, uint32 offsetY = 0); + virtual void Notify(Element *) {} + bool ButtonClicked(void); + void SetNotificationElement(Element * e); + + protected: + bool activated, clicked, inside; + uint32 fgColor, bgColor; + uint32 * pic, * picHover, * picDown; + std::string text; + Element * elementToTell; +}; + +#endif // __BUTTON_H__ diff --git a/src/gui/element.cpp b/src/gui/element.cpp new file mode 100644 index 0000000..1aa63f7 --- /dev/null +++ b/src/gui/element.cpp @@ -0,0 +1,18 @@ +// +// GUI element base class +// +// by James L. Hammons +// + +#include "element.h" + +// Initialize class variables (Element) + +uint32 * Element::screenBuffer = NULL; +uint32 Element::pitch = 0; + +bool Element::Inside(uint32 x, uint32 y) +{ + return (x >= (uint32)extents.x && x < (uint32)(extents.x + extents.w) + && y >= (uint32)extents.y && y < (uint32)(extents.y + extents.h) ? true : false); +} diff --git a/src/gui/element.h b/src/gui/element.h new file mode 100644 index 0000000..b54fc7c --- /dev/null +++ b/src/gui/element.h @@ -0,0 +1,40 @@ +// +// GUI element base class +// +// by James L. Hammons +// + +#ifndef __ELEMENT_H__ +#define __ELEMENT_H__ + +#include "SDL.h" +#include "types.h" + +class Element +{ + public: + Element(uint32 x = 0, uint32 y = 0, uint32 w = 0, uint32 h = 0) + { extents.x = x, extents.y = y, extents.w = w, extents.h = h; } + // These are "pure" virtual functions... + virtual void HandleKey(SDLKey key) = 0; + virtual void HandleMouseMove(uint32 x, uint32 y) = 0; + virtual void HandleMouseButton(uint32 x, uint32 y, bool mouseDown) = 0; + virtual void Draw(uint32, uint32) = 0; + virtual void Notify(Element *) = 0; +//Needed? virtual ~Element() = 0; +//We're not allocating anything in the base class, so the answer would be NO. + bool Inside(uint32 x, uint32 y); + + // Class method + static void SetScreenAndPitch(uint32 * s, uint32 p) { screenBuffer = s, pitch = p; } + + protected: + SDL_Rect extents; + uint32 state; + + // Class variables... + static uint32 * screenBuffer; + static uint32 pitch; +}; + +#endif // __ELEMENT_H__ diff --git a/src/gui/filelist.cpp b/src/gui/filelist.cpp new file mode 100644 index 0000000..e2bcb75 --- /dev/null +++ b/src/gui/filelist.cpp @@ -0,0 +1,112 @@ +// +// FileList class +// +// by James L. Hammons +// + +#include "filelist.h" + +#include // For MacOS dependency +#include +#include "settings.h" +#include "file.h" +#include "guimisc.h" + +//Need 4 buttons, one scrollbar... +FileList::FileList(uint32 x, uint32 y, uint32 w, uint32 h): Window(x, y, w, h) +{ + files = new ListBox(8, 8, w - 16, h - 32); + AddElement(files); + load = new Button(8, h - 16, " Load "); + AddElement(load); + load->SetNotificationElement(this); + +#warning !!! FIX !!! Directory might not exist--this shouldn't cause VJ to crash! + DIR * dp = opendir(vjs.ROMPath); + dirent * de; + + if (dp != NULL) + { + while ((de = readdir(dp)) != NULL) + { + char * ext = strrchr(de->d_name, '.'); + + if (ext != NULL) + if (strcasecmp(ext, ".zip") == 0 || strcasecmp(ext, ".j64") == 0 + || strcasecmp(ext, ".abs") == 0 || strcasecmp(ext, ".jag") == 0 + || strcasecmp(ext, ".rom") == 0) + files->AddItem(std::string(de->d_name)); + } + + closedir(dp); + } + else + { +//Give a diagnostic message here so that the (l)user can figure out what went wrong. !!! FIX !!! + } +} + +void FileList::HandleKey(SDLKey key) +{ + if (key == SDLK_RETURN) + Notify(load); + else + Window::HandleKey(key); +} + +void FileList::HandleMouseMove(uint32 x, uint32 y) +{ + Window::HandleMouseMove(x, y); +} + +void FileList::HandleMouseButton(uint32 x, uint32 y, bool mouseDown) +{ + Window::HandleMouseButton(x, y, mouseDown); +} + +void FileList::Draw(uint32 offsetX/*= 0*/, uint32 offsetY/*= 0*/) +{ + Window::Draw(offsetX, offsetY); +} + +extern Window * ResetJaguar(void); +#warning ICKY KLUDGE--FIX THIS MESS!!! +void FileList::Notify(Element * e) +{ + if (e == load) + { + char filename[MAX_PATH]; + strcpy(filename, vjs.ROMPath); + + if (strlen(filename) > 0) + if (filename[strlen(filename) - 1] != '/') + strcat(filename, "/"); + + strcat(filename, files->GetSelectedItem().c_str()); + +// uint32 romSize = JaguarLoadROM(jaguar_mainRom, filename); +// JaguarLoadCart(jaguar_mainRom, filename); + if (JaguarLoadFile(filename)) + { + SDL_Event event; + event.type = SDL_USEREVENT, event.user.code = WINDOW_CLOSE; + SDL_PushEvent(&event); + + event.type = SDL_USEREVENT, event.user.code = MENU_ITEM_CHOSEN; + event.user.data1 = (void *)ResetJaguar; + SDL_PushEvent(&event); + } + else + { + SDL_Event event; + event.type = SDL_USEREVENT, event.user.code = WINDOW_CLOSE; + SDL_PushEvent(&event); + + // Handle the error, but don't run... + // Tell the user that we couldn't run their file for some reason... !!! FIX !!! +//how to kludge: Make a function like ResetJaguar which creates the dialog window + } + } + else + Window::Notify(e); +} diff --git a/src/gui/filelist.h b/src/gui/filelist.h new file mode 100644 index 0000000..943cbd7 --- /dev/null +++ b/src/gui/filelist.h @@ -0,0 +1,29 @@ +// +// FileList class +// +// by James L. Hammons +// + +#ifndef __FILELIST_H__ +#define __FILELIST_H__ + +#include "window.h" +#include "listbox.h" + +class FileList: public Window +{ + public: + FileList(uint32 x = 0, uint32 y = 0, uint32 w = 0, uint32 h = 0); + virtual ~FileList() {} + virtual void HandleKey(SDLKey key); + virtual void HandleMouseMove(uint32 x, uint32 y); + virtual void HandleMouseButton(uint32 x, uint32 y, bool mouseDown); + virtual void Draw(uint32 offsetX = 0, uint32 offsetY = 0); + virtual void Notify(Element * e); + + protected: + ListBox * files; + Button * load; +}; + +#endif // __FILELIST_H__ diff --git a/src/gui/font14pt.h b/src/gui/font14pt.h index 4a5b56e..3fcb6a0 100644 --- a/src/gui/font14pt.h +++ b/src/gui/font14pt.h @@ -1,1640 +1,1640 @@ -#define FONT_WIDTH 8 -#define FONT_HEIGHT 16 +//#define FONT_WIDTH 8 +//#define FONT_HEIGHT 16 // // This file was automagically generated by rawfont2c (by James L. Hammons) // char font2[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x05, 0x10, 0x02, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x45, 0xFF, 0x55, 0x00, 0xE5, 0xB5, 0x00, - 0x00, 0x2F, 0xFF, 0x3F, 0x00, 0xCF, 0x9F, 0x00, - 0x00, 0x19, 0xFF, 0x29, 0x00, 0xB9, 0x89, 0x00, - 0x00, 0x04, 0xFE, 0x13, 0x00, 0xA3, 0x73, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x0F, 0x1E, 0x00, 0x1F, 0x0E, - 0x00, 0x00, 0x00, 0x7D, 0x8F, 0x00, 0xDC, 0x2F, - 0x00, 0x00, 0x00, 0xB9, 0x52, 0x17, 0xEF, 0x02, - 0x00, 0x00, 0x03, 0xF2, 0x16, 0x52, 0xB6, 0x00, - 0x00, 0xEF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0x00, 0x10, 0x71, 0xA9, 0x10, 0xCB, 0x4C, 0x0F, - 0x00, 0x00, 0x90, 0x7A, 0x00, 0xF0, 0x18, 0x00, - 0x00, 0x00, 0xB9, 0x4F, 0x1C, 0xEE, 0x00, 0x00, - 0x80, 0xF0, 0xFC, 0xF3, 0xF3, 0xFD, 0xF0, 0x6F, - 0x14, 0x4B, 0xDB, 0x20, 0x9F, 0x88, 0x20, 0x0B, - 0x00, 0x72, 0x97, 0x00, 0xD0, 0x39, 0x00, 0x00, - 0x00, 0xB6, 0x55, 0x14, 0xF2, 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, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x45, 0xE9, 0xFF, 0xF2, 0xB8, 0x12, - 0x00, 0x13, 0xF3, 0xAE, 0xFF, 0x3C, 0x6F, 0x31, - 0x00, 0x48, 0xFF, 0x75, 0xFF, 0x20, 0x00, 0x4B, - 0x10, 0x27, 0xFF, 0x9A, 0xFF, 0x20, 0x00, 0x2A, - 0x00, 0x00, 0x9F, 0xF5, 0xFF, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x04, 0xAA, 0xFF, 0xA5, 0x07, 0x00, - 0x00, 0x00, 0x00, 0x50, 0xFF, 0xEF, 0x99, 0x00, - 0x00, 0x00, 0x00, 0x50, 0xFF, 0x92, 0xFB, 0x0B, - 0x00, 0x00, 0x00, 0x50, 0xFF, 0x75, 0xFF, 0x14, - 0x00, 0x3B, 0x6E, 0x66, 0xFF, 0xB1, 0xC0, 0x00, - 0x00, 0x26, 0xBA, 0xF8, 0xFF, 0xC9, 0x18, 0x13, - 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x60, 0xDF, 0xD5, 0x3F, 0x00, 0x00, 0xA5, 0xCB, - 0xFC, 0x75, 0xA0, 0xE6, 0x02, 0x48, 0xFB, 0x30, - 0xFF, 0x25, 0x56, 0xFF, 0x26, 0xDF, 0x88, 0x00, - 0xFF, 0x50, 0x82, 0xF3, 0x94, 0xDC, 0x09, 0x00, - 0x8C, 0xFB, 0xF8, 0x96, 0xFB, 0x43, 0x00, 0x00, - 0x00, 0x11, 0x10, 0xCE, 0x9F, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x75, 0xE9, 0x36, 0xCA, 0xDE, 0x6E, - 0x00, 0x21, 0xF5, 0x59, 0xB0, 0xC6, 0x90, 0xFF, - 0x00, 0xB9, 0xB6, 0x00, 0xDB, 0x94, 0x54, 0xFF, - 0x5C, 0xF4, 0x1F, 0x00, 0xB7, 0xBF, 0x85, 0xF1, - 0xEB, 0x71, 0x00, 0x00, 0x2D, 0xDC, 0xEF, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x03, 0x00, 0x6D, 0xE0, 0xDD, 0x5C, 0x00, 0x00, - 0x00, 0x2A, 0xFF, 0x6D, 0x91, 0xFA, 0x0D, 0x00, - 0x00, 0x47, 0xFF, 0x2D, 0x62, 0xFB, 0x0E, 0x00, - 0x00, 0x11, 0xF8, 0x90, 0xDC, 0x7E, 0x00, 0x00, - 0x00, 0x3D, 0xE0, 0xFD, 0x5B, 0x00, 0x00, 0x00, - 0x85, 0xF2, 0x75, 0xFB, 0x55, 0x00, 0x51, 0xFF, - 0xFE, 0x59, 0x00, 0x9A, 0xE4, 0x0F, 0x5D, 0xF5, - 0xFF, 0x26, 0x00, 0x17, 0xEF, 0xA7, 0x87, 0xB1, - 0xFF, 0x61, 0x00, 0x00, 0x61, 0xFF, 0xEE, 0x32, - 0xC7, 0xEC, 0x48, 0x17, 0x5D, 0xF9, 0xE8, 0x1A, - 0x12, 0xA2, 0xF1, 0xF7, 0xC4, 0x5D, 0xE9, 0xC8, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xBB, 0xFF, 0x2B, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x9A, 0xFF, 0x0B, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x79, 0xE9, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x58, 0xC8, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x34, - 0x00, 0x00, 0x00, 0x00, 0x05, 0x8A, 0xF0, 0x7E, - 0x00, 0x00, 0x00, 0x00, 0xA6, 0xCF, 0x1E, 0x00, - 0x00, 0x00, 0x00, 0x58, 0xF4, 0x1C, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xCF, 0x95, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x19, 0xFF, 0x4E, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x41, 0xFF, 0x2B, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x4B, 0xFF, 0x22, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x3B, 0xFF, 0x30, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x0E, 0xFD, 0x5B, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xB7, 0xAC, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x37, 0xFB, 0x3A, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x71, 0xED, 0x53, 0x01, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x4E, 0xD1, 0xA5, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x1B, 0x34, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x34, 0xDA, 0xD8, 0x42, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x01, 0x5E, 0xF3, 0x53, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x5E, 0xF2, 0x1E, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xD3, 0x92, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x85, 0xE2, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x5E, 0xFF, 0x0E, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x54, 0xFF, 0x1A, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x64, 0xFE, 0x09, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x94, 0xD5, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x09, 0xE7, 0x79, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x8E, 0xDE, 0x0C, 0x00, 0x00, - 0x00, 0x1A, 0x9E, 0xEA, 0x2C, 0x00, 0x00, 0x00, - 0x47, 0xF1, 0x9D, 0x19, 0x00, 0x00, 0x00, 0x00, - 0x07, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x1F, 0x1F, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xB6, 0xB5, 0x00, 0x00, 0x00, - 0x01, 0x87, 0x23, 0x94, 0x93, 0x25, 0x87, 0x00, - 0x17, 0xBE, 0xF1, 0x1F, 0x20, 0xF1, 0xBE, 0x16, - 0x00, 0x00, 0x2F, 0x5D, 0x5D, 0x2E, 0x00, 0x00, - 0x00, 0x19, 0xE1, 0x76, 0x77, 0xE1, 0x19, 0x00, - 0x00, 0x1C, 0xA3, 0x05, 0x06, 0xA3, 0x1C, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, - 0x00, 0xF0, 0xF0, 0xF5, 0xFF, 0xF2, 0xF0, 0xF0, - 0x00, 0x20, 0x20, 0x66, 0xFF, 0x3C, 0x20, 0x20, - 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 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, 0x20, 0x04, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x50, 0xFF, 0x1D, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xC0, 0x09, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x27, 0xAF, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x12, 0x0B, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0x00, - 0x00, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 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, 0x20, 0x04, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x72, 0xB2, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xE5, 0x36, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x6A, 0xBA, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x04, 0xE0, 0x3E, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x61, 0xC2, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x02, 0xD9, 0x46, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x58, 0xC9, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x01, 0xD2, 0x4E, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x50, 0xD1, 0x01, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xCB, 0x56, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x47, 0xD7, 0x02, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xC2, 0x5E, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x3E, 0xDE, 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, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x75, 0xDF, 0xD4, 0x53, 0x00, 0x00, - 0x00, 0x60, 0xEB, 0x3F, 0x58, 0xF8, 0x34, 0x00, - 0x00, 0xDA, 0x7D, 0x00, 0x00, 0xAE, 0xAA, 0x00, - 0x1F, 0xFF, 0x42, 0x00, 0x00, 0x73, 0xEE, 0x00, - 0x42, 0xFF, 0x28, 0x00, 0x00, 0x5A, 0xFF, 0x11, - 0x4D, 0xFF, 0x21, 0x00, 0x00, 0x52, 0xFF, 0x1C, - 0x43, 0xFF, 0x28, 0x00, 0x00, 0x59, 0xFF, 0x13, - 0x22, 0xFF, 0x40, 0x00, 0x00, 0x71, 0xF1, 0x00, - 0x00, 0xDF, 0x78, 0x00, 0x00, 0xA9, 0xAF, 0x00, - 0x00, 0x6A, 0xE5, 0x2E, 0x47, 0xF8, 0x3B, 0x00, - 0x00, 0x01, 0x86, 0xF0, 0xE6, 0x61, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 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, 0x65, 0xB8, 0x1C, 0x00, 0x00, - 0x00, 0xC1, 0xE8, 0xCF, 0xFF, 0x20, 0x00, 0x00, - 0x00, 0x29, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, - 0x00, 0x10, 0x10, 0x5B, 0xFF, 0x2E, 0x10, 0x10, - 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, 0x2F, 0xB2, 0xE4, 0xE4, 0x9F, 0x12, 0x00, - 0x00, 0x51, 0x75, 0x2E, 0x3E, 0xE0, 0xBA, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x69, 0xFF, 0x11, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x5F, 0xFF, 0x10, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xB1, 0xC3, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x57, 0xF3, 0x2D, 0x00, - 0x00, 0x00, 0x00, 0x40, 0xEF, 0x44, 0x00, 0x00, - 0x00, 0x00, 0x2A, 0xED, 0x4F, 0x00, 0x00, 0x00, - 0x00, 0x0F, 0xDE, 0x91, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xAC, 0xFE, 0x28, 0x10, 0x10, 0x10, 0x02, - 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x20, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 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, 0xB9, 0xE2, 0xE9, 0xBD, 0x3B, 0x00, - 0x00, 0x23, 0x61, 0x30, 0x31, 0xBE, 0xF1, 0x09, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x5B, 0xFE, 0x10, - 0x00, 0x00, 0x00, 0x00, 0x19, 0xC4, 0x92, 0x00, - 0x00, 0x00, 0x4B, 0xF3, 0xFF, 0xA7, 0x01, 0x00, - 0x00, 0x00, 0x0A, 0x24, 0x5C, 0xF1, 0x7B, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0xF2, 0x03, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x54, 0xFF, 0x19, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x74, 0xFA, 0x08, - 0x00, 0x23, 0x57, 0x1A, 0x3B, 0xE8, 0x9E, 0x00, - 0x00, 0x2D, 0xDB, 0xF9, 0xEB, 0x94, 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, 0x9E, 0xFF, 0x20, 0x00, - 0x00, 0x00, 0x00, 0x3B, 0xFE, 0xFF, 0x20, 0x00, - 0x00, 0x00, 0x04, 0xD2, 0xB2, 0xFF, 0x20, 0x00, - 0x00, 0x00, 0x73, 0xC4, 0x51, 0xFF, 0x20, 0x00, - 0x00, 0x1B, 0xEF, 0x2E, 0x50, 0xFF, 0x20, 0x00, - 0x00, 0xAB, 0x8F, 0x00, 0x50, 0xFF, 0x20, 0x00, - 0x46, 0xE5, 0x0D, 0x00, 0x50, 0xFF, 0x20, 0x00, - 0x88, 0xFA, 0xF0, 0xF0, 0xF5, 0xFF, 0xF2, 0xA5, - 0x11, 0x20, 0x20, 0x20, 0x66, 0xFF, 0x3C, 0x16, - 0x00, 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x4B, 0xF0, 0xF0, 0xF0, 0xF0, 0xB0, 0x00, - 0x00, 0x50, 0xFF, 0x3C, 0x20, 0x20, 0x17, 0x00, - 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x50, 0xFF, 0xEB, 0xC3, 0x5A, 0x00, 0x00, - 0x00, 0x0A, 0x21, 0x35, 0x84, 0xFC, 0x75, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x89, 0xF0, 0x04, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0xFF, 0x19, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x7D, 0xF7, 0x07, - 0x00, 0x27, 0x46, 0x16, 0x49, 0xF0, 0x8D, 0x00, - 0x00, 0x38, 0xDB, 0xF9, 0xE4, 0x80, 0x03, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x32, 0xBA, 0xE8, 0xD3, 0x6D, 0x00, - 0x00, 0x2A, 0xF2, 0x7E, 0x27, 0x47, 0x5E, 0x00, - 0x00, 0xB4, 0xA9, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x0F, 0xFC, 0x53, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x3A, 0xFF, 0x53, 0xC0, 0xE7, 0x9D, 0x0A, 0x00, - 0x4C, 0xFF, 0xBB, 0x33, 0x4A, 0xF0, 0xA0, 0x00, - 0x48, 0xFF, 0x45, 0x00, 0x00, 0x7F, 0xFB, 0x09, - 0x2D, 0xFF, 0x25, 0x00, 0x00, 0x55, 0xFF, 0x1A, - 0x04, 0xF0, 0x4D, 0x00, 0x00, 0x74, 0xF3, 0x04, - 0x00, 0x87, 0xD4, 0x2D, 0x2D, 0xE1, 0x8D, 0x00, - 0x00, 0x05, 0x93, 0xEF, 0xF0, 0x93, 0x05, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0x00, - 0x00, 0x20, 0x20, 0x20, 0x20, 0x8C, 0xBA, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x0A, 0xE9, 0x36, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x75, 0xB6, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x0B, 0xEA, 0x3D, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x75, 0xCB, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x09, 0xE9, 0x62, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x6A, 0xF5, 0x0C, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xD9, 0xAC, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x2E, 0xFF, 0x66, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x64, 0xFF, 0x33, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x28, 0xAC, 0xE4, 0xE8, 0xB8, 0x33, 0x00, - 0x10, 0xEB, 0xA9, 0x2E, 0x3B, 0xCC, 0xEB, 0x06, - 0x48, 0xFF, 0x2D, 0x00, 0x00, 0x5C, 0xFF, 0x17, - 0x21, 0xFD, 0x9F, 0x03, 0x01, 0xAB, 0xC2, 0x00, - 0x00, 0x6A, 0xFC, 0xCE, 0xB7, 0xB7, 0x14, 0x00, - 0x00, 0x3E, 0xEE, 0xD8, 0xFF, 0xAF, 0x0F, 0x00, - 0x06, 0xE6, 0x83, 0x04, 0x7E, 0xFE, 0xB4, 0x00, - 0x3D, 0xFF, 0x2E, 0x00, 0x00, 0x90, 0xFF, 0x0F, - 0x45, 0xFF, 0x35, 0x00, 0x00, 0x5C, 0xFE, 0x11, - 0x0B, 0xE8, 0xBD, 0x23, 0x2F, 0xD0, 0xB5, 0x00, - 0x00, 0x2D, 0xC0, 0xF8, 0xED, 0x9A, 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, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x0C, 0x9A, 0xE6, 0xD5, 0x61, 0x00, 0x00, - 0x00, 0xAD, 0xCE, 0x31, 0x54, 0xF4, 0x4A, 0x00, - 0x20, 0xFF, 0x4B, 0x00, 0x00, 0x89, 0xBD, 0x00, - 0x49, 0xFF, 0x27, 0x00, 0x00, 0x56, 0xF7, 0x02, - 0x3C, 0xFF, 0x45, 0x00, 0x00, 0x6B, 0xFF, 0x16, - 0x05, 0xE1, 0xBE, 0x0C, 0x16, 0xCF, 0xFF, 0x1C, - 0x00, 0x35, 0xE2, 0xFA, 0xD5, 0x7F, 0xFF, 0x0D, - 0x00, 0x00, 0x03, 0x18, 0x02, 0x7D, 0xE4, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xCD, 0x97, 0x00, - 0x00, 0x26, 0x39, 0x1B, 0x8E, 0xF2, 0x20, 0x00, - 0x00, 0x3B, 0xDC, 0xF8, 0xD2, 0x3D, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x0B, 0x24, 0x04, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x0A, 0x20, 0x04, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x50, 0xFF, 0xFF, 0x20, 0x00, - 0x00, 0x00, 0x00, 0x50, 0xFF, 0xFF, 0x20, 0x00, - 0x00, 0x00, 0x00, 0x0B, 0x24, 0x24, 0x04, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x0A, 0x20, 0x20, 0x04, 0x00, - 0x00, 0x00, 0x00, 0x50, 0xFF, 0xFF, 0x20, 0x00, - 0x00, 0x00, 0x00, 0x50, 0xFF, 0xFF, 0x1B, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x60, 0xF1, 0x03, 0x00, - 0x00, 0x00, 0x00, 0x24, 0xD5, 0x71, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x13, 0x1F, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x60, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x51, 0xD5, 0xCE, - 0x00, 0x00, 0x00, 0x43, 0xCA, 0xD9, 0x57, 0x01, - 0x00, 0x36, 0xBC, 0xE3, 0x65, 0x04, 0x00, 0x00, - 0x08, 0x94, 0xFA, 0x95, 0x14, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x21, 0xA3, 0xF0, 0x81, 0x0E, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x2B, 0xB0, 0xEC, 0x76, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x37, 0xBD, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, - 0x00, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, - 0x00, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x60, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xCE, 0xD5, 0x51, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x01, 0x58, 0xDA, 0xC9, 0x43, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x04, 0x67, 0xE5, 0xBC, 0x35, - 0x00, 0x00, 0x00, 0x00, 0x15, 0x98, 0xFA, 0x94, - 0x00, 0x00, 0x0F, 0x83, 0xF0, 0xA2, 0x21, 0x00, - 0x00, 0x77, 0xED, 0xAF, 0x2B, 0x00, 0x00, 0x00, - 0x00, 0xBD, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x2B, 0xB1, 0xDB, 0xEB, 0xDD, 0xA0, 0x1F, 0x00, - 0x50, 0xFF, 0x5F, 0x25, 0x43, 0xD6, 0xDA, 0x02, - 0x50, 0xFF, 0x20, 0x00, 0x00, 0x5D, 0xFF, 0x18, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x7B, 0xE4, 0x02, - 0x00, 0x00, 0x00, 0x00, 0x4F, 0xF1, 0x49, 0x00, - 0x00, 0x00, 0x00, 0x63, 0xEC, 0x3F, 0x00, 0x00, - 0x00, 0x00, 0x14, 0xF7, 0x59, 0x00, 0x00, 0x00, - 0x08, 0x00, 0x45, 0xF8, 0x21, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x05, 0x10, 0x02, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 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, 0x83, 0xD6, 0xE9, 0xB6, 0x23, - 0x00, 0x09, 0xC8, 0xCD, 0x3F, 0x32, 0xC5, 0xC9, - 0x00, 0x86, 0xED, 0x1B, 0x8F, 0xE5, 0xDE, 0xFF, - 0x04, 0xEE, 0x84, 0x8E, 0xDE, 0x38, 0x7D, 0xFF, - 0x30, 0xFF, 0x50, 0xF8, 0x5F, 0x00, 0x53, 0xFF, - 0x49, 0xFF, 0x65, 0xFF, 0x2A, 0x00, 0x95, 0xFF, - 0x46, 0xFF, 0x71, 0xFF, 0x23, 0x0D, 0xE4, 0xFF, - 0x21, 0xFF, 0x74, 0xFF, 0x4D, 0x8E, 0x9D, 0xFF, - 0x00, 0xD1, 0xB2, 0xA6, 0xFD, 0xA5, 0x50, 0xFF, - 0x00, 0x42, 0xFC, 0x85, 0x31, 0x25, 0x41, 0x20, - 0x00, 0x00, 0x4A, 0xD0, 0xFA, 0xD8, 0x5F, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x0F, 0x00, 0x00, 0xA5, 0xFB, 0x18, 0x00, 0x00, - 0x1F, 0x00, 0x10, 0xF3, 0xEC, 0x77, 0x00, 0x00, - 0x20, 0x00, 0x6B, 0xBA, 0x92, 0xD8, 0x00, 0x00, - 0x20, 0x00, 0xCD, 0x60, 0x38, 0xFF, 0x3B, 0x00, - 0x20, 0x30, 0xF8, 0x0F, 0x00, 0xDC, 0x9D, 0x00, - 0x20, 0x93, 0xAE, 0x00, 0x00, 0x83, 0xF3, 0x0C, - 0xF1, 0xED, 0xF7, 0xF0, 0xF0, 0xF5, 0xFF, 0x62, - 0x77, 0xE4, 0x21, 0x20, 0x20, 0x20, 0xC0, 0xC4, - 0xBB, 0x78, 0x00, 0x00, 0x00, 0x00, 0x4D, 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, 0x50, 0xFF, 0xFF, 0xFF, 0xF4, 0xC6, 0x43, - 0x00, 0x50, 0xFF, 0x2E, 0x15, 0x30, 0xB6, 0xF3, - 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x59, 0xFE, - 0x00, 0x50, 0xFF, 0x20, 0x01, 0x30, 0xCB, 0x81, - 0x00, 0x50, 0xFF, 0xF2, 0xFA, 0xFF, 0x82, 0x00, - 0x00, 0x50, 0xFF, 0x3C, 0x30, 0x70, 0xEE, 0x96, - 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x64, 0xFF, - 0x00, 0x50, 0xFF, 0x2E, 0x11, 0x24, 0xA5, 0xFA, - 0x27, 0x50, 0xFF, 0xFF, 0xFF, 0xF8, 0xD5, 0x64, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x33, 0xB2, 0xEE, 0xF8, 0xDB, 0x74, - 0x08, 0x43, 0xF8, 0x9C, 0x2A, 0x16, 0x41, 0x5D, - 0x14, 0xDE, 0xAB, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x32, 0xFF, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x4A, 0xFF, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x36, 0xFF, 0x45, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x17, 0xE6, 0xBA, 0x02, 0x00, 0x00, 0x00, 0x00, - 0x0A, 0x4F, 0xFC, 0xB6, 0x3A, 0x16, 0x30, 0x4B, - 0x00, 0x00, 0x3B, 0xB7, 0xF1, 0xF8, 0xD8, 0x6E, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x50, 0xFF, 0xFF, 0xFD, 0xEB, 0xB3, 0x3E, 0x00, - 0x50, 0xFF, 0x2E, 0x14, 0x32, 0x9B, 0xFD, 0x4C, - 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, 0xB6, 0xD2, - 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, 0x67, 0xFF, - 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, 0x54, 0xFF, - 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, 0x67, 0xFA, - 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, 0xBA, 0xB5, - 0x50, 0xFF, 0x2E, 0x18, 0x3E, 0xA7, 0xEF, 0x2A, - 0x50, 0xFF, 0xFF, 0xFD, 0xE8, 0xAA, 0x29, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x50, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xB4, - 0x00, 0x50, 0xFF, 0x2E, 0x10, 0x10, 0x10, 0x0B, - 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, 0x00, - 0x0E, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, 0x00, - 0x1A, 0x50, 0xFF, 0xF2, 0xF0, 0xF0, 0xF0, 0x00, - 0x06, 0x50, 0xFF, 0x3C, 0x20, 0x20, 0x20, 0x00, - 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x50, 0xFF, 0x2E, 0x10, 0x10, 0x10, 0x10, - 0x00, 0x50, 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, 0x50, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0x00, 0x50, 0xFF, 0x2E, 0x10, 0x10, 0x10, 0x10, - 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x50, 0xFF, 0xF2, 0xF0, 0xF0, 0xF0, 0x4B, - 0x00, 0x50, 0xFF, 0x3C, 0x20, 0x20, 0x20, 0x0A, - 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, 0x00, - 0x04, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 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, 0x25, 0xA2, 0xE5, 0xFA, 0xE9, 0xB9, - 0x00, 0x38, 0xF3, 0xA8, 0x30, 0x14, 0x2C, 0x66, - 0x01, 0xD9, 0xB2, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x30, 0xFF, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x4A, 0xFF, 0x25, 0x00, 0x00, 0xE8, 0xF0, 0xF0, - 0x34, 0xFF, 0x47, 0x00, 0x00, 0x1F, 0x66, 0xFF, - 0x03, 0xDF, 0xC0, 0x04, 0x00, 0x00, 0x50, 0xFF, - 0x00, 0x40, 0xF6, 0xC0, 0x43, 0x15, 0x63, 0xFF, - 0x00, 0x00, 0x2C, 0xA8, 0xEA, 0xFB, 0xE8, 0xB9, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x62, 0xFF, 0x20, 0x00, 0x00, 0x50, 0xFF, 0x20, - 0x61, 0xFF, 0x20, 0x00, 0x00, 0x50, 0xFF, 0x20, - 0x50, 0xFF, 0x20, 0x00, 0x00, 0x50, 0xFF, 0x20, - 0x50, 0xFF, 0x20, 0x00, 0x00, 0x50, 0xFF, 0x20, - 0x6E, 0xFF, 0xF2, 0xF0, 0xF0, 0xF5, 0xFF, 0x20, - 0x70, 0xFF, 0x3C, 0x20, 0x20, 0x66, 0xFF, 0x20, - 0x70, 0xFF, 0x20, 0x00, 0x00, 0x50, 0xFF, 0x20, - 0x70, 0xFF, 0x20, 0x00, 0x00, 0x50, 0xFF, 0x20, - 0x63, 0xFF, 0x20, 0x00, 0x00, 0x50, 0xFF, 0x20, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 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, 0x00, - 0x00, 0x10, 0x10, 0x5B, 0xFF, 0x2E, 0x10, 0x00, - 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, - 0x00, 0x10, 0x10, 0x5B, 0xFF, 0x2E, 0x10, 0x00, - 0x00, 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, 0x58, 0xFF, 0xFF, 0xFF, 0xFF, 0x20, - 0x00, 0x00, 0x05, 0x10, 0x10, 0x5B, 0xFF, 0x20, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0xFF, 0x1F, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0xFF, 0x1C, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x61, 0xFD, 0x09, - 0x00, 0x26, 0x53, 0x1E, 0x22, 0xC5, 0xB3, 0x00, - 0x00, 0x37, 0xD5, 0xF9, 0xF2, 0xA8, 0x13, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x50, 0xFF, 0x20, 0x00, 0x00, 0x9E, 0xB9, 0x03, - 0x50, 0xFF, 0x20, 0x00, 0x74, 0xD7, 0x0F, 0x00, - 0x50, 0xFF, 0x20, 0x4B, 0xEA, 0x24, 0x00, 0x00, - 0x50, 0xFF, 0x4C, 0xED, 0x41, 0x00, 0x00, 0x00, - 0x50, 0xFF, 0xC6, 0xD7, 0x0A, 0x00, 0x00, 0x00, - 0x50, 0xFF, 0x31, 0xD5, 0xB3, 0x03, 0x00, 0x00, - 0x50, 0xFF, 0x20, 0x1E, 0xE5, 0x9A, 0x00, 0x00, - 0x50, 0xFF, 0x20, 0x00, 0x2E, 0xF0, 0x7E, 0x00, - 0x50, 0xFF, 0x20, 0x00, 0x00, 0x41, 0xF8, 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, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x50, 0xFF, 0x2E, 0x10, 0x10, 0x10, 0x0D, - 0x00, 0x50, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xDC, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x50, 0xFF, 0xE5, 0x02, 0x00, 0x0C, 0xF6, 0xFF, - 0x50, 0xFF, 0xD7, 0x40, 0x00, 0x5A, 0xD6, 0xFF, - 0x50, 0xFF, 0x8C, 0x98, 0x00, 0xB0, 0x8A, 0xFF, - 0x50, 0xFF, 0x41, 0xEB, 0x12, 0xE5, 0x52, 0xFF, - 0x50, 0xFF, 0x20, 0xD7, 0xA5, 0xA4, 0x50, 0xFF, - 0x50, 0xFF, 0x20, 0x8C, 0xFF, 0x58, 0x50, 0xFF, - 0x50, 0xFF, 0x20, 0x41, 0xFC, 0x11, 0x50, 0xFF, - 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, 0x50, 0xFF, - 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, 0x50, 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, - 0x70, 0xFF, 0x90, 0x00, 0x00, 0x50, 0xFF, 0x20, - 0x70, 0xFF, 0xFA, 0x25, 0x00, 0x50, 0xFF, 0x20, - 0x70, 0xFF, 0xBD, 0xB1, 0x00, 0x50, 0xFF, 0x20, - 0x70, 0xFF, 0x44, 0xFC, 0x42, 0x50, 0xFF, 0x20, - 0x70, 0xFF, 0x20, 0xA3, 0xCF, 0x52, 0xFF, 0x20, - 0x70, 0xFF, 0x20, 0x28, 0xFD, 0xB3, 0xFF, 0x20, - 0x70, 0xFF, 0x20, 0x00, 0xA9, 0xFF, 0xFF, 0x20, - 0x70, 0xFF, 0x20, 0x00, 0x2D, 0xFE, 0xFF, 0x20, - 0x70, 0xFF, 0x20, 0x00, 0x00, 0xAF, 0xFF, 0x20, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x73, 0xDF, 0xF9, 0xD2, 0x50, 0x00, - 0x00, 0x79, 0xEF, 0x4A, 0x17, 0x68, 0xFB, 0x48, - 0x09, 0xF2, 0x73, 0x00, 0x00, 0x00, 0xA7, 0xCA, - 0x3A, 0xFF, 0x33, 0x00, 0x00, 0x00, 0x64, 0xFE, - 0x4C, 0xFF, 0x22, 0x00, 0x00, 0x00, 0x53, 0xFF, - 0x3A, 0xFF, 0x33, 0x00, 0x00, 0x00, 0x64, 0xFE, - 0x0A, 0xF3, 0x74, 0x00, 0x00, 0x00, 0xA7, 0xCB, - 0x00, 0x7D, 0xEE, 0x4A, 0x16, 0x68, 0xFB, 0x4B, - 0x00, 0x01, 0x75, 0xE0, 0xFA, 0xD3, 0x53, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x50, 0xFF, 0xFF, 0xFF, 0xF7, 0xD0, 0x44, - 0x00, 0x50, 0xFF, 0x2E, 0x11, 0x29, 0xB3, 0xF0, - 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x59, 0xFF, - 0x00, 0x50, 0xFF, 0x20, 0x00, 0x27, 0xC8, 0xCF, - 0x00, 0x50, 0xFF, 0xF2, 0xF6, 0xF8, 0xAB, 0x1B, - 0x00, 0x50, 0xFF, 0x3C, 0x1B, 0x04, 0x00, 0x00, - 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x73, 0xDF, 0xF9, 0xD2, 0x50, 0x00, - 0x06, 0x79, 0xEF, 0x4A, 0x17, 0x68, 0xFB, 0x48, - 0x20, 0xF2, 0x73, 0x00, 0x00, 0x00, 0xA7, 0xCA, - 0x3A, 0xFF, 0x33, 0x00, 0x00, 0x00, 0x64, 0xFE, - 0x4C, 0xFF, 0x22, 0x00, 0x00, 0x00, 0x53, 0xFF, - 0x3A, 0xFF, 0x33, 0x00, 0x00, 0x00, 0x64, 0xFE, - 0x09, 0xF2, 0x74, 0x00, 0x00, 0x00, 0xA7, 0xCA, - 0x00, 0x79, 0xEE, 0x4A, 0x16, 0x68, 0xFB, 0x47, - 0x00, 0x00, 0x77, 0xE3, 0xFE, 0xFF, 0x64, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x05, 0xA4, 0xEF, 0x82, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x61, 0xE4, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x50, 0xFF, 0xFF, 0xF9, 0xD5, 0x4C, 0x00, - 0x00, 0x50, 0xFF, 0x2E, 0x1D, 0xA5, 0xF5, 0x09, - 0x00, 0x50, 0xFF, 0x20, 0x00, 0x59, 0xFF, 0x11, - 0x0A, 0x50, 0xFF, 0x20, 0x17, 0xC0, 0xB1, 0x00, - 0x1C, 0x50, 0xFF, 0xF3, 0xFF, 0xA5, 0x0A, 0x00, - 0x0B, 0x50, 0xFF, 0x3C, 0xA2, 0xBB, 0x01, 0x00, - 0x00, 0x50, 0xFF, 0x20, 0x12, 0xE9, 0x74, 0x00, - 0x00, 0x50, 0xFF, 0x20, 0x00, 0x59, 0xF9, 0x30, - 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0xB5, 0xD6, - 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x4F, 0xCF, 0xF9, 0xF1, 0xCE, 0x5F, 0x00, - 0x20, 0xFB, 0x83, 0x19, 0x1F, 0x4E, 0x4F, 0x00, - 0x4A, 0xFF, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x12, 0xE6, 0xE3, 0x6F, 0x14, 0x00, 0x00, 0x00, - 0x00, 0x15, 0x88, 0xE7, 0xFB, 0xAD, 0x22, 0x00, - 0x00, 0x00, 0x00, 0x03, 0x50, 0xDC, 0xDE, 0x02, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x5B, 0xFF, 0x17, - 0x3D, 0x86, 0x3B, 0x15, 0x32, 0xC3, 0xD1, 0x00, - 0x33, 0xB2, 0xE5, 0xFC, 0xEB, 0xA3, 0x19, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 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, 0x00, 0x00, 0x00, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0x10, 0x10, 0x10, 0x5B, 0xFF, 0x2E, 0x10, 0x10, - 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x50, 0xFF, 0x20, 0x00, 0x00, 0x50, 0xFF, 0x20, - 0x50, 0xFF, 0x20, 0x00, 0x00, 0x50, 0xFF, 0x20, - 0x50, 0xFF, 0x20, 0x00, 0x00, 0x50, 0xFF, 0x20, - 0x50, 0xFF, 0x20, 0x00, 0x00, 0x50, 0xFF, 0x20, - 0x50, 0xFF, 0x20, 0x00, 0x00, 0x50, 0xFF, 0x20, - 0x4C, 0xFF, 0x22, 0x00, 0x00, 0x52, 0xFF, 0x1C, - 0x33, 0xFF, 0x3E, 0x00, 0x00, 0x71, 0xFC, 0x07, - 0x03, 0xDE, 0xB7, 0x1F, 0x2F, 0xDC, 0xAE, 0x00, - 0x00, 0x2C, 0xBF, 0xF7, 0xF0, 0xA3, 0x10, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xB8, 0xB6, 0x00, 0x00, 0x00, 0x00, 0x0E, 0xF3, - 0x57, 0xFD, 0x1D, 0x00, 0x00, 0x00, 0x6A, 0xBF, - 0x07, 0xEE, 0x7F, 0x00, 0x00, 0x00, 0xCF, 0x5D, - 0x00, 0x95, 0xE0, 0x02, 0x00, 0x36, 0xF0, 0x09, - 0x00, 0x34, 0xFF, 0x48, 0x00, 0x9D, 0x97, 0x00, - 0x00, 0x00, 0xD3, 0xAD, 0x0E, 0xF4, 0x35, 0x00, - 0x00, 0x00, 0x72, 0xFA, 0x80, 0xD2, 0x00, 0x00, - 0x00, 0x00, 0x16, 0xFB, 0xFD, 0x6F, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xB0, 0xF9, 0x13, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xF4, 0x57, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC9, - 0xAC, 0x7D, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF1, - 0x87, 0xA4, 0x00, 0x84, 0xFB, 0x0C, 0x1B, 0xE9, - 0x61, 0xCB, 0x00, 0xC5, 0xFF, 0x48, 0x44, 0xC0, - 0x3C, 0xF2, 0x0C, 0xF9, 0xBF, 0x88, 0x6D, 0x97, - 0x17, 0xFF, 0x61, 0xD2, 0x6F, 0xC8, 0x96, 0x6E, - 0x00, 0xF1, 0xC8, 0x93, 0x30, 0xFB, 0xCC, 0x45, - 0x00, 0xCC, 0xFF, 0x55, 0x02, 0xEF, 0xFF, 0x1C, - 0x00, 0xA7, 0xFF, 0x17, 0x00, 0xB3, 0xF3, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x81, 0xFE, 0x52, 0x00, 0x00, 0x00, 0x89, 0xC2, - 0x12, 0x90, 0xEC, 0x1A, 0x00, 0x4B, 0xE9, 0x1B, - 0x00, 0x07, 0xD2, 0xBB, 0x20, 0xEB, 0x46, 0x00, - 0x00, 0x00, 0x2C, 0xF7, 0xEB, 0x82, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xAC, 0xFF, 0x33, 0x00, 0x00, - 0x00, 0x00, 0x4C, 0xE9, 0xC4, 0xD5, 0x08, 0x00, - 0x00, 0x1E, 0xEB, 0x46, 0x1C, 0xEE, 0x92, 0x00, - 0x04, 0xC6, 0x84, 0x00, 0x00, 0x55, 0xFE, 0x46, - 0x8C, 0xC0, 0x03, 0x00, 0x00, 0x00, 0x9F, 0xE6, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x58, 0xFE, 0x39, 0x00, 0x00, 0x00, 0x15, 0xE9, - 0x00, 0xB4, 0xD3, 0x05, 0x00, 0x00, 0xAD, 0xA2, - 0x00, 0x1F, 0xF4, 0x79, 0x00, 0x5C, 0xE7, 0x12, - 0x00, 0x00, 0x73, 0xF6, 0x3D, 0xEE, 0x51, 0x00, - 0x00, 0x00, 0x03, 0xCF, 0xFB, 0xA8, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x57, 0xFF, 0x28, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, - 0x13, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x4B, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0x00, 0x10, 0x10, 0x10, 0x10, 0x21, 0xE4, 0xA1, - 0x00, 0x00, 0x00, 0x00, 0x02, 0xB7, 0xC4, 0x07, - 0x00, 0x00, 0x00, 0x00, 0x83, 0xE0, 0x16, 0x00, - 0x00, 0x00, 0x00, 0x4D, 0xF1, 0x2D, 0x00, 0x00, - 0x00, 0x00, 0x24, 0xED, 0x4B, 0x00, 0x00, 0x00, - 0x00, 0x0B, 0xD3, 0x73, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xA7, 0xA9, 0x10, 0x10, 0x10, 0x10, 0x10, - 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, 0x50, 0xFF, 0xFF, 0xFF, 0xFF, 0x28, - 0x00, 0x00, 0x50, 0xFF, 0x2E, 0x10, 0x10, 0x02, - 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x50, 0xFF, 0xF2, 0xF0, 0xF0, 0x25, - 0x00, 0x00, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x05, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x42, 0xDD, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xC6, 0x5D, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x4A, 0xD6, 0x02, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xCD, 0x54, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x52, 0xCF, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x01, 0xD4, 0x4C, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x5A, 0xC7, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x03, 0xDA, 0x43, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x62, 0xBF, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x05, 0xE0, 0x3A, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x6A, 0xB6, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xE5, 0x32, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x72, 0xAE, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x58, 0xFF, 0xFF, 0xFF, 0xFF, 0x20, 0x00, - 0x00, 0x05, 0x10, 0x10, 0x5B, 0xFF, 0x20, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, - 0x00, 0x52, 0xF0, 0xF0, 0xF5, 0xFF, 0x20, 0x00, - 0x00, 0x0B, 0x20, 0x20, 0x20, 0x20, 0x04, 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, 0x38, 0xA7, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xA5, 0xFA, 0x19, 0x00, - 0x00, 0x00, 0x00, 0x18, 0xF2, 0xB4, 0x81, 0x00, - 0x00, 0x00, 0x00, 0x7F, 0xA1, 0x34, 0xE7, 0x05, - 0x00, 0x00, 0x05, 0xE6, 0x34, 0x00, 0xC7, 0x5A, - 0x00, 0x00, 0x58, 0xC7, 0x00, 0x00, 0x5B, 0xC7, - 0x00, 0x00, 0xC5, 0x5A, 0x00, 0x00, 0x06, 0xE8, - 0x00, 0x31, 0xE8, 0x06, 0x00, 0x00, 0x00, 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, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xA1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x18, 0xCD, 0xBE, 0x03, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x0C, 0xB6, 0x86, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 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, 0xB1, 0xE9, 0xFC, 0xE3, 0x60, 0x00, - 0x00, 0x25, 0x55, 0x1A, 0x1D, 0xAE, 0xF6, 0x07, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x54, 0xFF, 0x1E, - 0x00, 0x12, 0x89, 0xD2, 0xEB, 0xF5, 0xFF, 0x20, - 0x08, 0xD7, 0xCA, 0x51, 0x29, 0x66, 0xFF, 0x20, - 0x44, 0xFF, 0x2E, 0x00, 0x00, 0x50, 0xFF, 0x20, - 0x2C, 0xFF, 0x87, 0x18, 0x47, 0xCF, 0xFF, 0x4B, - 0x00, 0x6B, 0xE7, 0xF6, 0xB7, 0x30, 0xAD, 0xF4, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x50, 0xFF, 0x40, 0xC1, 0xF7, 0xBD, 0x16, 0x00, - 0x50, 0xFF, 0xCB, 0x42, 0x25, 0xD8, 0xA9, 0x00, - 0x50, 0xFF, 0x3C, 0x00, 0x00, 0x72, 0xF9, 0x05, - 0x50, 0xFF, 0x20, 0x00, 0x00, 0x53, 0xFF, 0x1B, - 0x50, 0xFF, 0x20, 0x00, 0x00, 0x5A, 0xFF, 0x11, - 0x50, 0xFF, 0x21, 0x00, 0x00, 0x8A, 0xE1, 0x00, - 0x56, 0xFF, 0xBA, 0x28, 0x3C, 0xEF, 0x76, 0x00, - 0x8F, 0xEB, 0x58, 0xE4, 0xF2, 0x8E, 0x02, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x07, 0x89, 0xE4, 0xFA, 0xE4, 0x7C, 0x00, - 0x00, 0xA2, 0xEF, 0x52, 0x16, 0x33, 0x4D, 0x00, - 0x1A, 0xFE, 0x6A, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x47, 0xFF, 0x2A, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x47, 0xFF, 0x2A, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x1B, 0xFE, 0x6B, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xA5, 0xF0, 0x5A, 0x17, 0x2A, 0x47, 0x00, - 0x00, 0x08, 0x8C, 0xE5, 0xFA, 0xE1, 0x74, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, - 0x00, 0x10, 0xAB, 0xF6, 0xD4, 0x84, 0xFF, 0x20, - 0x00, 0xAA, 0xD8, 0x2A, 0x37, 0xD6, 0xFF, 0x20, - 0x16, 0xFD, 0x5A, 0x00, 0x00, 0x51, 0xFF, 0x20, - 0x43, 0xFF, 0x29, 0x00, 0x00, 0x50, 0xFF, 0x20, - 0x4B, 0xFF, 0x23, 0x00, 0x00, 0x50, 0xFF, 0x20, - 0x30, 0xFF, 0x41, 0x00, 0x00, 0x6E, 0xFF, 0x20, - 0x02, 0xDC, 0xB6, 0x1C, 0x5A, 0xDD, 0xFF, 0x20, - 0x00, 0x32, 0xD4, 0xF6, 0xA8, 0x5D, 0xFF, 0x20, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x04, 0x87, 0xE9, 0xF7, 0xBB, 0x1E, 0x00, - 0x00, 0x92, 0xC7, 0x28, 0x28, 0xC9, 0xB9, 0x00, - 0x13, 0xFB, 0x3B, 0x00, 0x00, 0x5D, 0xFC, 0x08, - 0x44, 0xFF, 0xF1, 0xF0, 0xF0, 0xF5, 0xFF, 0x1C, - 0x48, 0xFF, 0x42, 0x20, 0x20, 0x20, 0x20, 0x04, - 0x1E, 0xFF, 0x5D, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xA9, 0xE8, 0x4F, 0x16, 0x22, 0x65, 0x13, - 0x00, 0x08, 0x89, 0xE1, 0xFB, 0xE8, 0xB0, 0x11, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x59, 0xD4, 0xFA, 0xF4, 0xCD, - 0x00, 0x00, 0x21, 0xFC, 0x85, 0x1B, 0x16, 0x34, - 0x00, 0x00, 0x4E, 0xFF, 0x22, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0x00, 0x10, 0x5B, 0xFF, 0x2E, 0x10, 0x10, 0x10, - 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x0D, 0xA9, 0xF6, 0xCF, 0x7F, 0xFF, 0x20, - 0x00, 0xA4, 0xD8, 0x29, 0x38, 0xD9, 0xFF, 0x20, - 0x15, 0xFC, 0x5B, 0x00, 0x00, 0x53, 0xFF, 0x20, - 0x43, 0xFF, 0x2A, 0x00, 0x00, 0x50, 0xFF, 0x20, - 0x4B, 0xFF, 0x23, 0x00, 0x00, 0x50, 0xFF, 0x20, - 0x2E, 0xFF, 0x46, 0x00, 0x00, 0x72, 0xFF, 0x20, - 0x01, 0xD8, 0xBF, 0x1D, 0x56, 0xE3, 0xFF, 0x1E, - 0x00, 0x2E, 0xD1, 0xF7, 0xB7, 0x66, 0xFF, 0x14, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0xEF, 0x01, - 0x00, 0x4A, 0x3A, 0x14, 0x36, 0xDB, 0x8D, 0x00, - 0x00, 0x75, 0xDF, 0xFA, 0xE9, 0x92, 0x07, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x50, 0xFF, 0x42, 0xB5, 0xF5, 0xE8, 0x5A, - 0x00, 0x50, 0xFF, 0xE4, 0x5F, 0x1B, 0xAA, 0xF1, - 0x00, 0x50, 0xFF, 0x4E, 0x00, 0x00, 0x55, 0xFF, - 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x50, 0xFF, - 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x50, 0xFF, - 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x50, 0xFF, - 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x50, 0xFF, - 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x50, 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, 0x50, 0xFF, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x43, 0xD8, 0x1B, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x04, 0xFF, 0xFF, 0xFF, 0xFF, 0x20, 0x00, 0x00, - 0x04, 0x10, 0x10, 0x5B, 0xFF, 0x20, 0x00, 0x00, - 0x1C, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x43, 0xD8, 0x1B, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x58, 0xFF, 0xFF, 0xFF, 0xFF, 0x20, 0x00, - 0x00, 0x05, 0x10, 0x10, 0x5B, 0xFF, 0x20, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x50, 0xFF, 0x1D, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x5D, 0xFE, 0x0A, 0x00, - 0x2A, 0x54, 0x1F, 0x1A, 0xB6, 0xBF, 0x00, 0x00, - 0x35, 0xD1, 0xF5, 0xF5, 0xB8, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x50, 0xFF, 0x20, 0x00, 0x32, 0xF4, 0x4D, - 0x00, 0x50, 0xFF, 0x20, 0x17, 0xE2, 0x7B, 0x00, - 0x00, 0x50, 0xFF, 0x26, 0xC5, 0xA9, 0x00, 0x00, - 0x00, 0x50, 0xFF, 0xB7, 0xEE, 0x0B, 0x00, 0x00, - 0x00, 0x50, 0xFF, 0x6F, 0xFD, 0x82, 0x00, 0x00, - 0x00, 0x50, 0xFF, 0x20, 0x77, 0xFF, 0x5A, 0x00, - 0x00, 0x50, 0xFF, 0x20, 0x00, 0xA0, 0xF7, 0x38, - 0x00, 0x50, 0xFF, 0x20, 0x00, 0x06, 0xC4, 0xE8, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x2C, 0xFF, 0xFF, 0xFF, 0xFF, 0x20, 0x00, 0x00, - 0x02, 0x10, 0x10, 0x5B, 0xFF, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, - 0x1F, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x50, 0xFF, 0x45, 0xE8, 0x7A, 0x2E, 0xEB, 0xAA, - 0x50, 0xFF, 0x9E, 0x7C, 0xEF, 0x83, 0x79, 0xFF, - 0x50, 0xFF, 0x5F, 0x53, 0xFF, 0x5D, 0x51, 0xFF, - 0x50, 0xFF, 0x22, 0x50, 0xFF, 0x22, 0x50, 0xFF, - 0x50, 0xFF, 0x20, 0x50, 0xFF, 0x20, 0x50, 0xFF, - 0x50, 0xFF, 0x20, 0x50, 0xFF, 0x20, 0x50, 0xFF, - 0x50, 0xFF, 0x20, 0x50, 0xFF, 0x20, 0x50, 0xFF, - 0x50, 0xFF, 0x20, 0x50, 0xFF, 0x20, 0x50, 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, 0x50, 0xFF, 0x42, 0xB5, 0xF5, 0xE8, 0x5A, - 0x10, 0x50, 0xFF, 0xE4, 0x5F, 0x1B, 0xAA, 0xF1, - 0x1F, 0x50, 0xFF, 0x4E, 0x00, 0x00, 0x55, 0xFF, - 0x20, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x50, 0xFF, - 0x20, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x50, 0xFF, - 0x20, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x50, 0xFF, - 0x20, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x50, 0xFF, - 0x20, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x50, 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, 0x05, 0x85, 0xE3, 0xFA, 0xD9, 0x6A, 0x00, - 0x04, 0x9C, 0xE8, 0x45, 0x16, 0x61, 0xFA, 0x6F, - 0x35, 0xFD, 0x62, 0x00, 0x00, 0x00, 0x94, 0xE6, - 0x66, 0xFF, 0x28, 0x00, 0x00, 0x00, 0x59, 0xFF, - 0x67, 0xFF, 0x28, 0x00, 0x00, 0x00, 0x59, 0xFF, - 0x3A, 0xFE, 0x61, 0x00, 0x00, 0x00, 0x93, 0xE6, - 0x20, 0xA2, 0xE6, 0x44, 0x16, 0x5E, 0xF9, 0x71, - 0x20, 0x07, 0x8A, 0xE5, 0xFA, 0xDA, 0x6D, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x50, 0xFF, 0x40, 0xC1, 0xF7, 0xBD, 0x16, - 0x00, 0x50, 0xFF, 0xCB, 0x42, 0x25, 0xD8, 0xA9, - 0x00, 0x50, 0xFF, 0x3C, 0x00, 0x00, 0x72, 0xF9, - 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x53, 0xFF, - 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x5A, 0xFF, - 0x00, 0x50, 0xFF, 0x21, 0x00, 0x00, 0x8A, 0xE1, - 0x00, 0x50, 0xFF, 0xBA, 0x27, 0x3C, 0xEF, 0x76, - 0x00, 0x50, 0xFF, 0x74, 0xE5, 0xF1, 0x8E, 0x02, - 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x10, 0xAB, 0xF6, 0xD4, 0x5A, 0xFF, 0x20, - 0x00, 0xAA, 0xD8, 0x2A, 0x37, 0xD5, 0xFF, 0x20, - 0x1B, 0xFD, 0x5A, 0x00, 0x00, 0x51, 0xFF, 0x20, - 0x5E, 0xFF, 0x29, 0x00, 0x00, 0x50, 0xFF, 0x20, - 0x5C, 0xFF, 0x23, 0x00, 0x00, 0x50, 0xFF, 0x20, - 0x30, 0xFF, 0x41, 0x00, 0x00, 0x6E, 0xFF, 0x20, - 0x02, 0xDC, 0xB6, 0x1C, 0x5A, 0xDD, 0xFF, 0x20, - 0x00, 0x32, 0xD4, 0xF6, 0xA8, 0x5D, 0xFF, 0x20, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x50, 0xFF, 0x44, 0xBE, 0xF8, 0xFF, 0x20, - 0x00, 0x50, 0xFF, 0xD3, 0x42, 0x5F, 0xFF, 0x20, - 0x00, 0x50, 0xFF, 0x4B, 0x00, 0x11, 0x38, 0x07, - 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x66, 0xDA, 0xFB, 0xF0, 0xC9, 0x1D, - 0x00, 0x2D, 0xFF, 0x82, 0x1C, 0x1C, 0x45, 0x13, - 0x00, 0x3F, 0xFF, 0x70, 0x03, 0x00, 0x00, 0x00, - 0x00, 0x01, 0xA1, 0xFE, 0xEB, 0x9D, 0x47, 0x01, - 0x00, 0x00, 0x00, 0x22, 0x71, 0xC1, 0xFF, 0xAD, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0xFF, - 0x00, 0x36, 0x70, 0x2C, 0x14, 0x33, 0xBD, 0xE0, - 0x00, 0x2B, 0xB8, 0xE8, 0xFD, 0xEF, 0xAE, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0x00, 0x10, 0x5B, 0xFF, 0x2E, 0x10, 0x10, 0x10, - 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, - 0x15, 0x00, 0x48, 0xFF, 0x24, 0x00, 0x00, 0x00, - 0x03, 0x00, 0x1D, 0xFE, 0x95, 0x26, 0x18, 0x31, - 0x00, 0x00, 0x00, 0x6F, 0xDE, 0xFB, 0xF8, 0xE0, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x50, 0xFF, 0x20, 0x00, 0x00, 0x50, 0xFF, 0x20, - 0x50, 0xFF, 0x20, 0x00, 0x00, 0x50, 0xFF, 0x20, - 0x50, 0xFF, 0x20, 0x00, 0x00, 0x50, 0xFF, 0x20, - 0x50, 0xFF, 0x20, 0x00, 0x00, 0x50, 0xFF, 0x20, - 0x50, 0xFF, 0x20, 0x00, 0x00, 0x50, 0xFF, 0x20, - 0x4C, 0xFF, 0x27, 0x00, 0x00, 0x8E, 0xFF, 0x20, - 0x26, 0xFF, 0x93, 0x37, 0x99, 0xE6, 0xFF, 0x20, - 0x00, 0x82, 0xF2, 0xEF, 0x97, 0x5A, 0xFF, 0x20, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x63, 0xF4, 0x0C, 0x00, 0x00, 0x00, 0x63, 0xD1, - 0x0C, 0xF3, 0x63, 0x00, 0x00, 0x00, 0xC9, 0x6C, - 0x00, 0x9E, 0xC5, 0x00, 0x00, 0x2E, 0xF6, 0x10, - 0x00, 0x3B, 0xFF, 0x27, 0x00, 0x95, 0xA2, 0x00, - 0x00, 0x00, 0xD8, 0x89, 0x0A, 0xF0, 0x3D, 0x00, - 0x00, 0x00, 0x76, 0xE6, 0x63, 0xD7, 0x00, 0x00, - 0x00, 0x00, 0x18, 0xFB, 0xEF, 0x73, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xB1, 0xF9, 0x14, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xD6, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC4, - 0xAB, 0x93, 0x00, 0x7E, 0xFE, 0x0F, 0x00, 0xEB, - 0x7F, 0xBD, 0x00, 0xC1, 0xC1, 0x43, 0x14, 0xE1, - 0x54, 0xE7, 0x0A, 0xD5, 0x71, 0x79, 0x3C, 0xB1, - 0x28, 0xFF, 0x58, 0x9E, 0x3A, 0xAE, 0x64, 0x82, - 0x04, 0xF8, 0xC5, 0x61, 0x08, 0xDD, 0x8C, 0x52, - 0x00, 0xD1, 0xFF, 0x23, 0x00, 0xCB, 0xCC, 0x23, - 0x00, 0xA6, 0xE6, 0x00, 0x00, 0x94, 0xF2, 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, - 0x56, 0xE9, 0xB0, 0x00, 0x00, 0x1B, 0xF1, 0x7A, - 0x11, 0x4E, 0xFF, 0x61, 0x00, 0xB0, 0xA6, 0x00, - 0x00, 0x00, 0x9D, 0xF2, 0x73, 0xEC, 0x15, 0x00, - 0x00, 0x00, 0x0D, 0xDF, 0xFF, 0x5E, 0x00, 0x00, - 0x00, 0x00, 0x13, 0xE8, 0xFF, 0x75, 0x00, 0x00, - 0x00, 0x00, 0xA9, 0xB2, 0x88, 0xF8, 0x2E, 0x00, - 0x00, 0x58, 0xEC, 0x17, 0x06, 0xD0, 0xD1, 0x06, - 0x18, 0xED, 0x56, 0x00, 0x00, 0x2C, 0xF8, 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, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 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, 0x33, 0x00, 0x00, 0x00, 0x53, 0xE0, - 0x00, 0xC9, 0x99, 0x00, 0x00, 0x00, 0xBA, 0x79, - 0x00, 0x62, 0xF3, 0x0D, 0x00, 0x23, 0xF8, 0x16, - 0x00, 0x0A, 0xF0, 0x67, 0x00, 0x88, 0xA7, 0x00, - 0x00, 0x00, 0x93, 0xCE, 0x05, 0xE9, 0x3E, 0x00, - 0x00, 0x00, 0x2B, 0xFF, 0x8C, 0xD5, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xC4, 0xFF, 0x6C, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x63, 0xF4, 0x0E, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x9B, 0x99, 0x00, 0x00, 0x00, - 0x00, 0x12, 0x4D, 0xF7, 0x2B, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0xE4, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x02, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, - 0x00, 0x10, 0x10, 0x10, 0x17, 0xD3, 0xA9, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x97, 0xD7, 0x0C, 0x00, - 0x00, 0x00, 0x00, 0x5C, 0xF4, 0x2A, 0x00, 0x00, - 0x00, 0x00, 0x2B, 0xF4, 0x59, 0x00, 0x00, 0x00, - 0x00, 0x0D, 0xD8, 0x93, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xA9, 0xD1, 0x16, 0x10, 0x10, 0x10, 0x00, - 0x00, 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, 0x7A, 0xDF, 0xFC, 0x84, - 0x00, 0x00, 0x00, 0x37, 0xFF, 0x6B, 0x15, 0x08, - 0x00, 0x00, 0x00, 0x4F, 0xFF, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x02, 0x53, 0xFF, 0x1D, 0x00, 0x00, - 0x00, 0x00, 0x01, 0x90, 0xE8, 0x04, 0x00, 0x00, - 0x00, 0x70, 0xF7, 0xF4, 0x3B, 0x00, 0x00, 0x00, - 0x00, 0x0F, 0x29, 0xAF, 0xCF, 0x01, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x53, 0xFF, 0x1A, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x3F, 0xFF, 0x4D, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x01, 0x96, 0xF8, 0xF4, 0x7B, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x1D, 0x10, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xB4, 0xF9, 0xD1, 0x50, 0x00, 0x00, 0x00, - 0x00, 0x0B, 0x19, 0x96, 0xF8, 0x0C, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x50, 0xFF, 0x1F, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x4D, 0xFF, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x21, 0xFB, 0x62, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x61, 0xFE, 0xF4, 0x47, - 0x00, 0x00, 0x00, 0x14, 0xEE, 0x8A, 0x25, 0x09, - 0x00, 0x00, 0x00, 0x4B, 0xFF, 0x22, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x7E, 0xFE, 0x11, 0x00, 0x00, - 0x00, 0xA8, 0xF7, 0xF2, 0x76, 0x00, 0x00, 0x00, - 0x00, 0x16, 0x1A, 0x03, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 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, 0xE2, 0x8F, 0x00, 0x00, 0x00, 0x00, - 0x10, 0xF6, 0x72, 0xA8, 0xE2, 0x4C, 0x5C, 0xDF, - 0x44, 0xFF, 0x26, 0x09, 0xA8, 0xFC, 0xFC, 0x8D, - 0x09, 0x20, 0x04, 0x00, 0x00, 0x0E, 0x12, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x05, 0x10, 0x02, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x45, 0xFF, 0x55, 0x00, 0xE5, 0xB5, 0x00, + 0x00, 0x2F, 0xFF, 0x3F, 0x00, 0xCF, 0x9F, 0x00, + 0x00, 0x19, 0xFF, 0x29, 0x00, 0xB9, 0x89, 0x00, + 0x00, 0x04, 0xFE, 0x13, 0x00, 0xA3, 0x73, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x0F, 0x1E, 0x00, 0x1F, 0x0E, + 0x00, 0x00, 0x00, 0x7D, 0x8F, 0x00, 0xDC, 0x2F, + 0x00, 0x00, 0x00, 0xB9, 0x52, 0x17, 0xEF, 0x02, + 0x00, 0x00, 0x03, 0xF2, 0x16, 0x52, 0xB6, 0x00, + 0x00, 0xEF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x00, 0x10, 0x71, 0xA9, 0x10, 0xCB, 0x4C, 0x0F, + 0x00, 0x00, 0x90, 0x7A, 0x00, 0xF0, 0x18, 0x00, + 0x00, 0x00, 0xB9, 0x4F, 0x1C, 0xEE, 0x00, 0x00, + 0x80, 0xF0, 0xFC, 0xF3, 0xF3, 0xFD, 0xF0, 0x6F, + 0x14, 0x4B, 0xDB, 0x20, 0x9F, 0x88, 0x20, 0x0B, + 0x00, 0x72, 0x97, 0x00, 0xD0, 0x39, 0x00, 0x00, + 0x00, 0xB6, 0x55, 0x14, 0xF2, 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, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x45, 0xE9, 0xFF, 0xF2, 0xB8, 0x12, + 0x00, 0x13, 0xF3, 0xAE, 0xFF, 0x3C, 0x6F, 0x31, + 0x00, 0x48, 0xFF, 0x75, 0xFF, 0x20, 0x00, 0x4B, + 0x10, 0x27, 0xFF, 0x9A, 0xFF, 0x20, 0x00, 0x2A, + 0x00, 0x00, 0x9F, 0xF5, 0xFF, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x04, 0xAA, 0xFF, 0xA5, 0x07, 0x00, + 0x00, 0x00, 0x00, 0x50, 0xFF, 0xEF, 0x99, 0x00, + 0x00, 0x00, 0x00, 0x50, 0xFF, 0x92, 0xFB, 0x0B, + 0x00, 0x00, 0x00, 0x50, 0xFF, 0x75, 0xFF, 0x14, + 0x00, 0x3B, 0x6E, 0x66, 0xFF, 0xB1, 0xC0, 0x00, + 0x00, 0x26, 0xBA, 0xF8, 0xFF, 0xC9, 0x18, 0x13, + 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x60, 0xDF, 0xD5, 0x3F, 0x00, 0x00, 0xA5, 0xCB, + 0xFC, 0x75, 0xA0, 0xE6, 0x02, 0x48, 0xFB, 0x30, + 0xFF, 0x25, 0x56, 0xFF, 0x26, 0xDF, 0x88, 0x00, + 0xFF, 0x50, 0x82, 0xF3, 0x94, 0xDC, 0x09, 0x00, + 0x8C, 0xFB, 0xF8, 0x96, 0xFB, 0x43, 0x00, 0x00, + 0x00, 0x11, 0x10, 0xCE, 0x9F, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x75, 0xE9, 0x36, 0xCA, 0xDE, 0x6E, + 0x00, 0x21, 0xF5, 0x59, 0xB0, 0xC6, 0x90, 0xFF, + 0x00, 0xB9, 0xB6, 0x00, 0xDB, 0x94, 0x54, 0xFF, + 0x5C, 0xF4, 0x1F, 0x00, 0xB7, 0xBF, 0x85, 0xF1, + 0xEB, 0x71, 0x00, 0x00, 0x2D, 0xDC, 0xEF, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x6D, 0xE0, 0xDD, 0x5C, 0x00, 0x00, + 0x00, 0x2A, 0xFF, 0x6D, 0x91, 0xFA, 0x0D, 0x00, + 0x00, 0x47, 0xFF, 0x2D, 0x62, 0xFB, 0x0E, 0x00, + 0x00, 0x11, 0xF8, 0x90, 0xDC, 0x7E, 0x00, 0x00, + 0x00, 0x3D, 0xE0, 0xFD, 0x5B, 0x00, 0x00, 0x00, + 0x85, 0xF2, 0x75, 0xFB, 0x55, 0x00, 0x51, 0xFF, + 0xFE, 0x59, 0x00, 0x9A, 0xE4, 0x0F, 0x5D, 0xF5, + 0xFF, 0x26, 0x00, 0x17, 0xEF, 0xA7, 0x87, 0xB1, + 0xFF, 0x61, 0x00, 0x00, 0x61, 0xFF, 0xEE, 0x32, + 0xC7, 0xEC, 0x48, 0x17, 0x5D, 0xF9, 0xE8, 0x1A, + 0x12, 0xA2, 0xF1, 0xF7, 0xC4, 0x5D, 0xE9, 0xC8, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xBB, 0xFF, 0x2B, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x9A, 0xFF, 0x0B, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x79, 0xE9, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x58, 0xC8, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x34, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x8A, 0xF0, 0x7E, + 0x00, 0x00, 0x00, 0x00, 0xA6, 0xCF, 0x1E, 0x00, + 0x00, 0x00, 0x00, 0x58, 0xF4, 0x1C, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xCF, 0x95, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x19, 0xFF, 0x4E, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x41, 0xFF, 0x2B, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x4B, 0xFF, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x3B, 0xFF, 0x30, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x0E, 0xFD, 0x5B, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xB7, 0xAC, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x37, 0xFB, 0x3A, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x71, 0xED, 0x53, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x4E, 0xD1, 0xA5, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x1B, 0x34, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x34, 0xDA, 0xD8, 0x42, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x5E, 0xF3, 0x53, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x5E, 0xF2, 0x1E, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xD3, 0x92, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x85, 0xE2, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x5E, 0xFF, 0x0E, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x54, 0xFF, 0x1A, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x64, 0xFE, 0x09, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x94, 0xD5, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x09, 0xE7, 0x79, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x8E, 0xDE, 0x0C, 0x00, 0x00, + 0x00, 0x1A, 0x9E, 0xEA, 0x2C, 0x00, 0x00, 0x00, + 0x47, 0xF1, 0x9D, 0x19, 0x00, 0x00, 0x00, 0x00, + 0x07, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x1F, 0x1F, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xB6, 0xB5, 0x00, 0x00, 0x00, + 0x01, 0x87, 0x23, 0x94, 0x93, 0x25, 0x87, 0x00, + 0x17, 0xBE, 0xF1, 0x1F, 0x20, 0xF1, 0xBE, 0x16, + 0x00, 0x00, 0x2F, 0x5D, 0x5D, 0x2E, 0x00, 0x00, + 0x00, 0x19, 0xE1, 0x76, 0x77, 0xE1, 0x19, 0x00, + 0x00, 0x1C, 0xA3, 0x05, 0x06, 0xA3, 0x1C, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, + 0x00, 0xF0, 0xF0, 0xF5, 0xFF, 0xF2, 0xF0, 0xF0, + 0x00, 0x20, 0x20, 0x66, 0xFF, 0x3C, 0x20, 0x20, + 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 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, 0x20, 0x04, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x50, 0xFF, 0x1D, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xC0, 0x09, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x27, 0xAF, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x12, 0x0B, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0x00, + 0x00, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 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, 0x20, 0x04, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x72, 0xB2, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xE5, 0x36, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x6A, 0xBA, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x04, 0xE0, 0x3E, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x61, 0xC2, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x02, 0xD9, 0x46, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x58, 0xC9, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0xD2, 0x4E, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x50, 0xD1, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xCB, 0x56, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x47, 0xD7, 0x02, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xC2, 0x5E, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x3E, 0xDE, 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, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x75, 0xDF, 0xD4, 0x53, 0x00, 0x00, + 0x00, 0x60, 0xEB, 0x3F, 0x58, 0xF8, 0x34, 0x00, + 0x00, 0xDA, 0x7D, 0x00, 0x00, 0xAE, 0xAA, 0x00, + 0x1F, 0xFF, 0x42, 0x00, 0x00, 0x73, 0xEE, 0x00, + 0x42, 0xFF, 0x28, 0x00, 0x00, 0x5A, 0xFF, 0x11, + 0x4D, 0xFF, 0x21, 0x00, 0x00, 0x52, 0xFF, 0x1C, + 0x43, 0xFF, 0x28, 0x00, 0x00, 0x59, 0xFF, 0x13, + 0x22, 0xFF, 0x40, 0x00, 0x00, 0x71, 0xF1, 0x00, + 0x00, 0xDF, 0x78, 0x00, 0x00, 0xA9, 0xAF, 0x00, + 0x00, 0x6A, 0xE5, 0x2E, 0x47, 0xF8, 0x3B, 0x00, + 0x00, 0x01, 0x86, 0xF0, 0xE6, 0x61, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 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, 0x65, 0xB8, 0x1C, 0x00, 0x00, + 0x00, 0xC1, 0xE8, 0xCF, 0xFF, 0x20, 0x00, 0x00, + 0x00, 0x29, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, + 0x00, 0x10, 0x10, 0x5B, 0xFF, 0x2E, 0x10, 0x10, + 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, 0x2F, 0xB2, 0xE4, 0xE4, 0x9F, 0x12, 0x00, + 0x00, 0x51, 0x75, 0x2E, 0x3E, 0xE0, 0xBA, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x69, 0xFF, 0x11, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x5F, 0xFF, 0x10, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xB1, 0xC3, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x57, 0xF3, 0x2D, 0x00, + 0x00, 0x00, 0x00, 0x40, 0xEF, 0x44, 0x00, 0x00, + 0x00, 0x00, 0x2A, 0xED, 0x4F, 0x00, 0x00, 0x00, + 0x00, 0x0F, 0xDE, 0x91, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xAC, 0xFE, 0x28, 0x10, 0x10, 0x10, 0x02, + 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x20, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 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, 0xB9, 0xE2, 0xE9, 0xBD, 0x3B, 0x00, + 0x00, 0x23, 0x61, 0x30, 0x31, 0xBE, 0xF1, 0x09, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x5B, 0xFE, 0x10, + 0x00, 0x00, 0x00, 0x00, 0x19, 0xC4, 0x92, 0x00, + 0x00, 0x00, 0x4B, 0xF3, 0xFF, 0xA7, 0x01, 0x00, + 0x00, 0x00, 0x0A, 0x24, 0x5C, 0xF1, 0x7B, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0xF2, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x54, 0xFF, 0x19, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x74, 0xFA, 0x08, + 0x00, 0x23, 0x57, 0x1A, 0x3B, 0xE8, 0x9E, 0x00, + 0x00, 0x2D, 0xDB, 0xF9, 0xEB, 0x94, 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, 0x9E, 0xFF, 0x20, 0x00, + 0x00, 0x00, 0x00, 0x3B, 0xFE, 0xFF, 0x20, 0x00, + 0x00, 0x00, 0x04, 0xD2, 0xB2, 0xFF, 0x20, 0x00, + 0x00, 0x00, 0x73, 0xC4, 0x51, 0xFF, 0x20, 0x00, + 0x00, 0x1B, 0xEF, 0x2E, 0x50, 0xFF, 0x20, 0x00, + 0x00, 0xAB, 0x8F, 0x00, 0x50, 0xFF, 0x20, 0x00, + 0x46, 0xE5, 0x0D, 0x00, 0x50, 0xFF, 0x20, 0x00, + 0x88, 0xFA, 0xF0, 0xF0, 0xF5, 0xFF, 0xF2, 0xA5, + 0x11, 0x20, 0x20, 0x20, 0x66, 0xFF, 0x3C, 0x16, + 0x00, 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x4B, 0xF0, 0xF0, 0xF0, 0xF0, 0xB0, 0x00, + 0x00, 0x50, 0xFF, 0x3C, 0x20, 0x20, 0x17, 0x00, + 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x50, 0xFF, 0xEB, 0xC3, 0x5A, 0x00, 0x00, + 0x00, 0x0A, 0x21, 0x35, 0x84, 0xFC, 0x75, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x89, 0xF0, 0x04, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0xFF, 0x19, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x7D, 0xF7, 0x07, + 0x00, 0x27, 0x46, 0x16, 0x49, 0xF0, 0x8D, 0x00, + 0x00, 0x38, 0xDB, 0xF9, 0xE4, 0x80, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x32, 0xBA, 0xE8, 0xD3, 0x6D, 0x00, + 0x00, 0x2A, 0xF2, 0x7E, 0x27, 0x47, 0x5E, 0x00, + 0x00, 0xB4, 0xA9, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x0F, 0xFC, 0x53, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x3A, 0xFF, 0x53, 0xC0, 0xE7, 0x9D, 0x0A, 0x00, + 0x4C, 0xFF, 0xBB, 0x33, 0x4A, 0xF0, 0xA0, 0x00, + 0x48, 0xFF, 0x45, 0x00, 0x00, 0x7F, 0xFB, 0x09, + 0x2D, 0xFF, 0x25, 0x00, 0x00, 0x55, 0xFF, 0x1A, + 0x04, 0xF0, 0x4D, 0x00, 0x00, 0x74, 0xF3, 0x04, + 0x00, 0x87, 0xD4, 0x2D, 0x2D, 0xE1, 0x8D, 0x00, + 0x00, 0x05, 0x93, 0xEF, 0xF0, 0x93, 0x05, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0x00, + 0x00, 0x20, 0x20, 0x20, 0x20, 0x8C, 0xBA, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x0A, 0xE9, 0x36, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x75, 0xB6, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x0B, 0xEA, 0x3D, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x75, 0xCB, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x09, 0xE9, 0x62, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x6A, 0xF5, 0x0C, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xD9, 0xAC, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x2E, 0xFF, 0x66, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x64, 0xFF, 0x33, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x28, 0xAC, 0xE4, 0xE8, 0xB8, 0x33, 0x00, + 0x10, 0xEB, 0xA9, 0x2E, 0x3B, 0xCC, 0xEB, 0x06, + 0x48, 0xFF, 0x2D, 0x00, 0x00, 0x5C, 0xFF, 0x17, + 0x21, 0xFD, 0x9F, 0x03, 0x01, 0xAB, 0xC2, 0x00, + 0x00, 0x6A, 0xFC, 0xCE, 0xB7, 0xB7, 0x14, 0x00, + 0x00, 0x3E, 0xEE, 0xD8, 0xFF, 0xAF, 0x0F, 0x00, + 0x06, 0xE6, 0x83, 0x04, 0x7E, 0xFE, 0xB4, 0x00, + 0x3D, 0xFF, 0x2E, 0x00, 0x00, 0x90, 0xFF, 0x0F, + 0x45, 0xFF, 0x35, 0x00, 0x00, 0x5C, 0xFE, 0x11, + 0x0B, 0xE8, 0xBD, 0x23, 0x2F, 0xD0, 0xB5, 0x00, + 0x00, 0x2D, 0xC0, 0xF8, 0xED, 0x9A, 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, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x0C, 0x9A, 0xE6, 0xD5, 0x61, 0x00, 0x00, + 0x00, 0xAD, 0xCE, 0x31, 0x54, 0xF4, 0x4A, 0x00, + 0x20, 0xFF, 0x4B, 0x00, 0x00, 0x89, 0xBD, 0x00, + 0x49, 0xFF, 0x27, 0x00, 0x00, 0x56, 0xF7, 0x02, + 0x3C, 0xFF, 0x45, 0x00, 0x00, 0x6B, 0xFF, 0x16, + 0x05, 0xE1, 0xBE, 0x0C, 0x16, 0xCF, 0xFF, 0x1C, + 0x00, 0x35, 0xE2, 0xFA, 0xD5, 0x7F, 0xFF, 0x0D, + 0x00, 0x00, 0x03, 0x18, 0x02, 0x7D, 0xE4, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xCD, 0x97, 0x00, + 0x00, 0x26, 0x39, 0x1B, 0x8E, 0xF2, 0x20, 0x00, + 0x00, 0x3B, 0xDC, 0xF8, 0xD2, 0x3D, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x0B, 0x24, 0x04, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x0A, 0x20, 0x04, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x50, 0xFF, 0xFF, 0x20, 0x00, + 0x00, 0x00, 0x00, 0x50, 0xFF, 0xFF, 0x20, 0x00, + 0x00, 0x00, 0x00, 0x0B, 0x24, 0x24, 0x04, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x0A, 0x20, 0x20, 0x04, 0x00, + 0x00, 0x00, 0x00, 0x50, 0xFF, 0xFF, 0x20, 0x00, + 0x00, 0x00, 0x00, 0x50, 0xFF, 0xFF, 0x1B, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x60, 0xF1, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x24, 0xD5, 0x71, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x13, 0x1F, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x60, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x51, 0xD5, 0xCE, + 0x00, 0x00, 0x00, 0x43, 0xCA, 0xD9, 0x57, 0x01, + 0x00, 0x36, 0xBC, 0xE3, 0x65, 0x04, 0x00, 0x00, + 0x08, 0x94, 0xFA, 0x95, 0x14, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x21, 0xA3, 0xF0, 0x81, 0x0E, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x2B, 0xB0, 0xEC, 0x76, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x37, 0xBD, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, + 0x00, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, + 0x00, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x60, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xCE, 0xD5, 0x51, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x58, 0xDA, 0xC9, 0x43, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x04, 0x67, 0xE5, 0xBC, 0x35, + 0x00, 0x00, 0x00, 0x00, 0x15, 0x98, 0xFA, 0x94, + 0x00, 0x00, 0x0F, 0x83, 0xF0, 0xA2, 0x21, 0x00, + 0x00, 0x77, 0xED, 0xAF, 0x2B, 0x00, 0x00, 0x00, + 0x00, 0xBD, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x2B, 0xB1, 0xDB, 0xEB, 0xDD, 0xA0, 0x1F, 0x00, + 0x50, 0xFF, 0x5F, 0x25, 0x43, 0xD6, 0xDA, 0x02, + 0x50, 0xFF, 0x20, 0x00, 0x00, 0x5D, 0xFF, 0x18, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x7B, 0xE4, 0x02, + 0x00, 0x00, 0x00, 0x00, 0x4F, 0xF1, 0x49, 0x00, + 0x00, 0x00, 0x00, 0x63, 0xEC, 0x3F, 0x00, 0x00, + 0x00, 0x00, 0x14, 0xF7, 0x59, 0x00, 0x00, 0x00, + 0x08, 0x00, 0x45, 0xF8, 0x21, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x05, 0x10, 0x02, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 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, 0x83, 0xD6, 0xE9, 0xB6, 0x23, + 0x00, 0x09, 0xC8, 0xCD, 0x3F, 0x32, 0xC5, 0xC9, + 0x00, 0x86, 0xED, 0x1B, 0x8F, 0xE5, 0xDE, 0xFF, + 0x04, 0xEE, 0x84, 0x8E, 0xDE, 0x38, 0x7D, 0xFF, + 0x30, 0xFF, 0x50, 0xF8, 0x5F, 0x00, 0x53, 0xFF, + 0x49, 0xFF, 0x65, 0xFF, 0x2A, 0x00, 0x95, 0xFF, + 0x46, 0xFF, 0x71, 0xFF, 0x23, 0x0D, 0xE4, 0xFF, + 0x21, 0xFF, 0x74, 0xFF, 0x4D, 0x8E, 0x9D, 0xFF, + 0x00, 0xD1, 0xB2, 0xA6, 0xFD, 0xA5, 0x50, 0xFF, + 0x00, 0x42, 0xFC, 0x85, 0x31, 0x25, 0x41, 0x20, + 0x00, 0x00, 0x4A, 0xD0, 0xFA, 0xD8, 0x5F, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x0F, 0x00, 0x00, 0xA5, 0xFB, 0x18, 0x00, 0x00, + 0x1F, 0x00, 0x10, 0xF3, 0xEC, 0x77, 0x00, 0x00, + 0x20, 0x00, 0x6B, 0xBA, 0x92, 0xD8, 0x00, 0x00, + 0x20, 0x00, 0xCD, 0x60, 0x38, 0xFF, 0x3B, 0x00, + 0x20, 0x30, 0xF8, 0x0F, 0x00, 0xDC, 0x9D, 0x00, + 0x20, 0x93, 0xAE, 0x00, 0x00, 0x83, 0xF3, 0x0C, + 0xF1, 0xED, 0xF7, 0xF0, 0xF0, 0xF5, 0xFF, 0x62, + 0x77, 0xE4, 0x21, 0x20, 0x20, 0x20, 0xC0, 0xC4, + 0xBB, 0x78, 0x00, 0x00, 0x00, 0x00, 0x4D, 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, 0x50, 0xFF, 0xFF, 0xFF, 0xF4, 0xC6, 0x43, + 0x00, 0x50, 0xFF, 0x2E, 0x15, 0x30, 0xB6, 0xF3, + 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x59, 0xFE, + 0x00, 0x50, 0xFF, 0x20, 0x01, 0x30, 0xCB, 0x81, + 0x00, 0x50, 0xFF, 0xF2, 0xFA, 0xFF, 0x82, 0x00, + 0x00, 0x50, 0xFF, 0x3C, 0x30, 0x70, 0xEE, 0x96, + 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x64, 0xFF, + 0x00, 0x50, 0xFF, 0x2E, 0x11, 0x24, 0xA5, 0xFA, + 0x27, 0x50, 0xFF, 0xFF, 0xFF, 0xF8, 0xD5, 0x64, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x33, 0xB2, 0xEE, 0xF8, 0xDB, 0x74, + 0x08, 0x43, 0xF8, 0x9C, 0x2A, 0x16, 0x41, 0x5D, + 0x14, 0xDE, 0xAB, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x32, 0xFF, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x4A, 0xFF, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x36, 0xFF, 0x45, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x17, 0xE6, 0xBA, 0x02, 0x00, 0x00, 0x00, 0x00, + 0x0A, 0x4F, 0xFC, 0xB6, 0x3A, 0x16, 0x30, 0x4B, + 0x00, 0x00, 0x3B, 0xB7, 0xF1, 0xF8, 0xD8, 0x6E, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x50, 0xFF, 0xFF, 0xFD, 0xEB, 0xB3, 0x3E, 0x00, + 0x50, 0xFF, 0x2E, 0x14, 0x32, 0x9B, 0xFD, 0x4C, + 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, 0xB6, 0xD2, + 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, 0x67, 0xFF, + 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, 0x54, 0xFF, + 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, 0x67, 0xFA, + 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, 0xBA, 0xB5, + 0x50, 0xFF, 0x2E, 0x18, 0x3E, 0xA7, 0xEF, 0x2A, + 0x50, 0xFF, 0xFF, 0xFD, 0xE8, 0xAA, 0x29, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x50, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xB4, + 0x00, 0x50, 0xFF, 0x2E, 0x10, 0x10, 0x10, 0x0B, + 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, 0x00, + 0x0E, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, 0x00, + 0x1A, 0x50, 0xFF, 0xF2, 0xF0, 0xF0, 0xF0, 0x00, + 0x06, 0x50, 0xFF, 0x3C, 0x20, 0x20, 0x20, 0x00, + 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x50, 0xFF, 0x2E, 0x10, 0x10, 0x10, 0x10, + 0x00, 0x50, 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, 0x50, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x00, 0x50, 0xFF, 0x2E, 0x10, 0x10, 0x10, 0x10, + 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x50, 0xFF, 0xF2, 0xF0, 0xF0, 0xF0, 0x4B, + 0x00, 0x50, 0xFF, 0x3C, 0x20, 0x20, 0x20, 0x0A, + 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, 0x00, + 0x04, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 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, 0x25, 0xA2, 0xE5, 0xFA, 0xE9, 0xB9, + 0x00, 0x38, 0xF3, 0xA8, 0x30, 0x14, 0x2C, 0x66, + 0x01, 0xD9, 0xB2, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x30, 0xFF, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x4A, 0xFF, 0x25, 0x00, 0x00, 0xE8, 0xF0, 0xF0, + 0x34, 0xFF, 0x47, 0x00, 0x00, 0x1F, 0x66, 0xFF, + 0x03, 0xDF, 0xC0, 0x04, 0x00, 0x00, 0x50, 0xFF, + 0x00, 0x40, 0xF6, 0xC0, 0x43, 0x15, 0x63, 0xFF, + 0x00, 0x00, 0x2C, 0xA8, 0xEA, 0xFB, 0xE8, 0xB9, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x62, 0xFF, 0x20, 0x00, 0x00, 0x50, 0xFF, 0x20, + 0x61, 0xFF, 0x20, 0x00, 0x00, 0x50, 0xFF, 0x20, + 0x50, 0xFF, 0x20, 0x00, 0x00, 0x50, 0xFF, 0x20, + 0x50, 0xFF, 0x20, 0x00, 0x00, 0x50, 0xFF, 0x20, + 0x6E, 0xFF, 0xF2, 0xF0, 0xF0, 0xF5, 0xFF, 0x20, + 0x70, 0xFF, 0x3C, 0x20, 0x20, 0x66, 0xFF, 0x20, + 0x70, 0xFF, 0x20, 0x00, 0x00, 0x50, 0xFF, 0x20, + 0x70, 0xFF, 0x20, 0x00, 0x00, 0x50, 0xFF, 0x20, + 0x63, 0xFF, 0x20, 0x00, 0x00, 0x50, 0xFF, 0x20, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 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, 0x00, + 0x00, 0x10, 0x10, 0x5B, 0xFF, 0x2E, 0x10, 0x00, + 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, + 0x00, 0x10, 0x10, 0x5B, 0xFF, 0x2E, 0x10, 0x00, + 0x00, 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, 0x58, 0xFF, 0xFF, 0xFF, 0xFF, 0x20, + 0x00, 0x00, 0x05, 0x10, 0x10, 0x5B, 0xFF, 0x20, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0xFF, 0x1F, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0xFF, 0x1C, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x61, 0xFD, 0x09, + 0x00, 0x26, 0x53, 0x1E, 0x22, 0xC5, 0xB3, 0x00, + 0x00, 0x37, 0xD5, 0xF9, 0xF2, 0xA8, 0x13, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x50, 0xFF, 0x20, 0x00, 0x00, 0x9E, 0xB9, 0x03, + 0x50, 0xFF, 0x20, 0x00, 0x74, 0xD7, 0x0F, 0x00, + 0x50, 0xFF, 0x20, 0x4B, 0xEA, 0x24, 0x00, 0x00, + 0x50, 0xFF, 0x4C, 0xED, 0x41, 0x00, 0x00, 0x00, + 0x50, 0xFF, 0xC6, 0xD7, 0x0A, 0x00, 0x00, 0x00, + 0x50, 0xFF, 0x31, 0xD5, 0xB3, 0x03, 0x00, 0x00, + 0x50, 0xFF, 0x20, 0x1E, 0xE5, 0x9A, 0x00, 0x00, + 0x50, 0xFF, 0x20, 0x00, 0x2E, 0xF0, 0x7E, 0x00, + 0x50, 0xFF, 0x20, 0x00, 0x00, 0x41, 0xF8, 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, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x50, 0xFF, 0x2E, 0x10, 0x10, 0x10, 0x0D, + 0x00, 0x50, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xDC, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x50, 0xFF, 0xE5, 0x02, 0x00, 0x0C, 0xF6, 0xFF, + 0x50, 0xFF, 0xD7, 0x40, 0x00, 0x5A, 0xD6, 0xFF, + 0x50, 0xFF, 0x8C, 0x98, 0x00, 0xB0, 0x8A, 0xFF, + 0x50, 0xFF, 0x41, 0xEB, 0x12, 0xE5, 0x52, 0xFF, + 0x50, 0xFF, 0x20, 0xD7, 0xA5, 0xA4, 0x50, 0xFF, + 0x50, 0xFF, 0x20, 0x8C, 0xFF, 0x58, 0x50, 0xFF, + 0x50, 0xFF, 0x20, 0x41, 0xFC, 0x11, 0x50, 0xFF, + 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, 0x50, 0xFF, + 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, 0x50, 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, + 0x70, 0xFF, 0x90, 0x00, 0x00, 0x50, 0xFF, 0x20, + 0x70, 0xFF, 0xFA, 0x25, 0x00, 0x50, 0xFF, 0x20, + 0x70, 0xFF, 0xBD, 0xB1, 0x00, 0x50, 0xFF, 0x20, + 0x70, 0xFF, 0x44, 0xFC, 0x42, 0x50, 0xFF, 0x20, + 0x70, 0xFF, 0x20, 0xA3, 0xCF, 0x52, 0xFF, 0x20, + 0x70, 0xFF, 0x20, 0x28, 0xFD, 0xB3, 0xFF, 0x20, + 0x70, 0xFF, 0x20, 0x00, 0xA9, 0xFF, 0xFF, 0x20, + 0x70, 0xFF, 0x20, 0x00, 0x2D, 0xFE, 0xFF, 0x20, + 0x70, 0xFF, 0x20, 0x00, 0x00, 0xAF, 0xFF, 0x20, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x73, 0xDF, 0xF9, 0xD2, 0x50, 0x00, + 0x00, 0x79, 0xEF, 0x4A, 0x17, 0x68, 0xFB, 0x48, + 0x09, 0xF2, 0x73, 0x00, 0x00, 0x00, 0xA7, 0xCA, + 0x3A, 0xFF, 0x33, 0x00, 0x00, 0x00, 0x64, 0xFE, + 0x4C, 0xFF, 0x22, 0x00, 0x00, 0x00, 0x53, 0xFF, + 0x3A, 0xFF, 0x33, 0x00, 0x00, 0x00, 0x64, 0xFE, + 0x0A, 0xF3, 0x74, 0x00, 0x00, 0x00, 0xA7, 0xCB, + 0x00, 0x7D, 0xEE, 0x4A, 0x16, 0x68, 0xFB, 0x4B, + 0x00, 0x01, 0x75, 0xE0, 0xFA, 0xD3, 0x53, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x50, 0xFF, 0xFF, 0xFF, 0xF7, 0xD0, 0x44, + 0x00, 0x50, 0xFF, 0x2E, 0x11, 0x29, 0xB3, 0xF0, + 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x59, 0xFF, + 0x00, 0x50, 0xFF, 0x20, 0x00, 0x27, 0xC8, 0xCF, + 0x00, 0x50, 0xFF, 0xF2, 0xF6, 0xF8, 0xAB, 0x1B, + 0x00, 0x50, 0xFF, 0x3C, 0x1B, 0x04, 0x00, 0x00, + 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x73, 0xDF, 0xF9, 0xD2, 0x50, 0x00, + 0x06, 0x79, 0xEF, 0x4A, 0x17, 0x68, 0xFB, 0x48, + 0x20, 0xF2, 0x73, 0x00, 0x00, 0x00, 0xA7, 0xCA, + 0x3A, 0xFF, 0x33, 0x00, 0x00, 0x00, 0x64, 0xFE, + 0x4C, 0xFF, 0x22, 0x00, 0x00, 0x00, 0x53, 0xFF, + 0x3A, 0xFF, 0x33, 0x00, 0x00, 0x00, 0x64, 0xFE, + 0x09, 0xF2, 0x74, 0x00, 0x00, 0x00, 0xA7, 0xCA, + 0x00, 0x79, 0xEE, 0x4A, 0x16, 0x68, 0xFB, 0x47, + 0x00, 0x00, 0x77, 0xE3, 0xFE, 0xFF, 0x64, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x05, 0xA4, 0xEF, 0x82, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x61, 0xE4, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x50, 0xFF, 0xFF, 0xF9, 0xD5, 0x4C, 0x00, + 0x00, 0x50, 0xFF, 0x2E, 0x1D, 0xA5, 0xF5, 0x09, + 0x00, 0x50, 0xFF, 0x20, 0x00, 0x59, 0xFF, 0x11, + 0x0A, 0x50, 0xFF, 0x20, 0x17, 0xC0, 0xB1, 0x00, + 0x1C, 0x50, 0xFF, 0xF3, 0xFF, 0xA5, 0x0A, 0x00, + 0x0B, 0x50, 0xFF, 0x3C, 0xA2, 0xBB, 0x01, 0x00, + 0x00, 0x50, 0xFF, 0x20, 0x12, 0xE9, 0x74, 0x00, + 0x00, 0x50, 0xFF, 0x20, 0x00, 0x59, 0xF9, 0x30, + 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0xB5, 0xD6, + 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x4F, 0xCF, 0xF9, 0xF1, 0xCE, 0x5F, 0x00, + 0x20, 0xFB, 0x83, 0x19, 0x1F, 0x4E, 0x4F, 0x00, + 0x4A, 0xFF, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x12, 0xE6, 0xE3, 0x6F, 0x14, 0x00, 0x00, 0x00, + 0x00, 0x15, 0x88, 0xE7, 0xFB, 0xAD, 0x22, 0x00, + 0x00, 0x00, 0x00, 0x03, 0x50, 0xDC, 0xDE, 0x02, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x5B, 0xFF, 0x17, + 0x3D, 0x86, 0x3B, 0x15, 0x32, 0xC3, 0xD1, 0x00, + 0x33, 0xB2, 0xE5, 0xFC, 0xEB, 0xA3, 0x19, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 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, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x10, 0x10, 0x10, 0x5B, 0xFF, 0x2E, 0x10, 0x10, + 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x50, 0xFF, 0x20, 0x00, 0x00, 0x50, 0xFF, 0x20, + 0x50, 0xFF, 0x20, 0x00, 0x00, 0x50, 0xFF, 0x20, + 0x50, 0xFF, 0x20, 0x00, 0x00, 0x50, 0xFF, 0x20, + 0x50, 0xFF, 0x20, 0x00, 0x00, 0x50, 0xFF, 0x20, + 0x50, 0xFF, 0x20, 0x00, 0x00, 0x50, 0xFF, 0x20, + 0x4C, 0xFF, 0x22, 0x00, 0x00, 0x52, 0xFF, 0x1C, + 0x33, 0xFF, 0x3E, 0x00, 0x00, 0x71, 0xFC, 0x07, + 0x03, 0xDE, 0xB7, 0x1F, 0x2F, 0xDC, 0xAE, 0x00, + 0x00, 0x2C, 0xBF, 0xF7, 0xF0, 0xA3, 0x10, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xB8, 0xB6, 0x00, 0x00, 0x00, 0x00, 0x0E, 0xF3, + 0x57, 0xFD, 0x1D, 0x00, 0x00, 0x00, 0x6A, 0xBF, + 0x07, 0xEE, 0x7F, 0x00, 0x00, 0x00, 0xCF, 0x5D, + 0x00, 0x95, 0xE0, 0x02, 0x00, 0x36, 0xF0, 0x09, + 0x00, 0x34, 0xFF, 0x48, 0x00, 0x9D, 0x97, 0x00, + 0x00, 0x00, 0xD3, 0xAD, 0x0E, 0xF4, 0x35, 0x00, + 0x00, 0x00, 0x72, 0xFA, 0x80, 0xD2, 0x00, 0x00, + 0x00, 0x00, 0x16, 0xFB, 0xFD, 0x6F, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xB0, 0xF9, 0x13, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xF4, 0x57, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC9, + 0xAC, 0x7D, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF1, + 0x87, 0xA4, 0x00, 0x84, 0xFB, 0x0C, 0x1B, 0xE9, + 0x61, 0xCB, 0x00, 0xC5, 0xFF, 0x48, 0x44, 0xC0, + 0x3C, 0xF2, 0x0C, 0xF9, 0xBF, 0x88, 0x6D, 0x97, + 0x17, 0xFF, 0x61, 0xD2, 0x6F, 0xC8, 0x96, 0x6E, + 0x00, 0xF1, 0xC8, 0x93, 0x30, 0xFB, 0xCC, 0x45, + 0x00, 0xCC, 0xFF, 0x55, 0x02, 0xEF, 0xFF, 0x1C, + 0x00, 0xA7, 0xFF, 0x17, 0x00, 0xB3, 0xF3, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x81, 0xFE, 0x52, 0x00, 0x00, 0x00, 0x89, 0xC2, + 0x12, 0x90, 0xEC, 0x1A, 0x00, 0x4B, 0xE9, 0x1B, + 0x00, 0x07, 0xD2, 0xBB, 0x20, 0xEB, 0x46, 0x00, + 0x00, 0x00, 0x2C, 0xF7, 0xEB, 0x82, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xAC, 0xFF, 0x33, 0x00, 0x00, + 0x00, 0x00, 0x4C, 0xE9, 0xC4, 0xD5, 0x08, 0x00, + 0x00, 0x1E, 0xEB, 0x46, 0x1C, 0xEE, 0x92, 0x00, + 0x04, 0xC6, 0x84, 0x00, 0x00, 0x55, 0xFE, 0x46, + 0x8C, 0xC0, 0x03, 0x00, 0x00, 0x00, 0x9F, 0xE6, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x58, 0xFE, 0x39, 0x00, 0x00, 0x00, 0x15, 0xE9, + 0x00, 0xB4, 0xD3, 0x05, 0x00, 0x00, 0xAD, 0xA2, + 0x00, 0x1F, 0xF4, 0x79, 0x00, 0x5C, 0xE7, 0x12, + 0x00, 0x00, 0x73, 0xF6, 0x3D, 0xEE, 0x51, 0x00, + 0x00, 0x00, 0x03, 0xCF, 0xFB, 0xA8, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x57, 0xFF, 0x28, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, + 0x13, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x4B, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x00, 0x10, 0x10, 0x10, 0x10, 0x21, 0xE4, 0xA1, + 0x00, 0x00, 0x00, 0x00, 0x02, 0xB7, 0xC4, 0x07, + 0x00, 0x00, 0x00, 0x00, 0x83, 0xE0, 0x16, 0x00, + 0x00, 0x00, 0x00, 0x4D, 0xF1, 0x2D, 0x00, 0x00, + 0x00, 0x00, 0x24, 0xED, 0x4B, 0x00, 0x00, 0x00, + 0x00, 0x0B, 0xD3, 0x73, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xA7, 0xA9, 0x10, 0x10, 0x10, 0x10, 0x10, + 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, 0x50, 0xFF, 0xFF, 0xFF, 0xFF, 0x28, + 0x00, 0x00, 0x50, 0xFF, 0x2E, 0x10, 0x10, 0x02, + 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x50, 0xFF, 0xF2, 0xF0, 0xF0, 0x25, + 0x00, 0x00, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x05, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x42, 0xDD, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xC6, 0x5D, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x4A, 0xD6, 0x02, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xCD, 0x54, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x52, 0xCF, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0xD4, 0x4C, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x5A, 0xC7, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x03, 0xDA, 0x43, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x62, 0xBF, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x05, 0xE0, 0x3A, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x6A, 0xB6, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xE5, 0x32, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x72, 0xAE, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x58, 0xFF, 0xFF, 0xFF, 0xFF, 0x20, 0x00, + 0x00, 0x05, 0x10, 0x10, 0x5B, 0xFF, 0x20, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, + 0x00, 0x52, 0xF0, 0xF0, 0xF5, 0xFF, 0x20, 0x00, + 0x00, 0x0B, 0x20, 0x20, 0x20, 0x20, 0x04, 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, 0x38, 0xA7, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xA5, 0xFA, 0x19, 0x00, + 0x00, 0x00, 0x00, 0x18, 0xF2, 0xB4, 0x81, 0x00, + 0x00, 0x00, 0x00, 0x7F, 0xA1, 0x34, 0xE7, 0x05, + 0x00, 0x00, 0x05, 0xE6, 0x34, 0x00, 0xC7, 0x5A, + 0x00, 0x00, 0x58, 0xC7, 0x00, 0x00, 0x5B, 0xC7, + 0x00, 0x00, 0xC5, 0x5A, 0x00, 0x00, 0x06, 0xE8, + 0x00, 0x31, 0xE8, 0x06, 0x00, 0x00, 0x00, 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, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xA1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x18, 0xCD, 0xBE, 0x03, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x0C, 0xB6, 0x86, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 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, 0xB1, 0xE9, 0xFC, 0xE3, 0x60, 0x00, + 0x00, 0x25, 0x55, 0x1A, 0x1D, 0xAE, 0xF6, 0x07, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x54, 0xFF, 0x1E, + 0x00, 0x12, 0x89, 0xD2, 0xEB, 0xF5, 0xFF, 0x20, + 0x08, 0xD7, 0xCA, 0x51, 0x29, 0x66, 0xFF, 0x20, + 0x44, 0xFF, 0x2E, 0x00, 0x00, 0x50, 0xFF, 0x20, + 0x2C, 0xFF, 0x87, 0x18, 0x47, 0xCF, 0xFF, 0x4B, + 0x00, 0x6B, 0xE7, 0xF6, 0xB7, 0x30, 0xAD, 0xF4, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x50, 0xFF, 0x40, 0xC1, 0xF7, 0xBD, 0x16, 0x00, + 0x50, 0xFF, 0xCB, 0x42, 0x25, 0xD8, 0xA9, 0x00, + 0x50, 0xFF, 0x3C, 0x00, 0x00, 0x72, 0xF9, 0x05, + 0x50, 0xFF, 0x20, 0x00, 0x00, 0x53, 0xFF, 0x1B, + 0x50, 0xFF, 0x20, 0x00, 0x00, 0x5A, 0xFF, 0x11, + 0x50, 0xFF, 0x21, 0x00, 0x00, 0x8A, 0xE1, 0x00, + 0x56, 0xFF, 0xBA, 0x28, 0x3C, 0xEF, 0x76, 0x00, + 0x8F, 0xEB, 0x58, 0xE4, 0xF2, 0x8E, 0x02, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x07, 0x89, 0xE4, 0xFA, 0xE4, 0x7C, 0x00, + 0x00, 0xA2, 0xEF, 0x52, 0x16, 0x33, 0x4D, 0x00, + 0x1A, 0xFE, 0x6A, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0xFF, 0x2A, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0xFF, 0x2A, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x1B, 0xFE, 0x6B, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xA5, 0xF0, 0x5A, 0x17, 0x2A, 0x47, 0x00, + 0x00, 0x08, 0x8C, 0xE5, 0xFA, 0xE1, 0x74, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, + 0x00, 0x10, 0xAB, 0xF6, 0xD4, 0x84, 0xFF, 0x20, + 0x00, 0xAA, 0xD8, 0x2A, 0x37, 0xD6, 0xFF, 0x20, + 0x16, 0xFD, 0x5A, 0x00, 0x00, 0x51, 0xFF, 0x20, + 0x43, 0xFF, 0x29, 0x00, 0x00, 0x50, 0xFF, 0x20, + 0x4B, 0xFF, 0x23, 0x00, 0x00, 0x50, 0xFF, 0x20, + 0x30, 0xFF, 0x41, 0x00, 0x00, 0x6E, 0xFF, 0x20, + 0x02, 0xDC, 0xB6, 0x1C, 0x5A, 0xDD, 0xFF, 0x20, + 0x00, 0x32, 0xD4, 0xF6, 0xA8, 0x5D, 0xFF, 0x20, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x04, 0x87, 0xE9, 0xF7, 0xBB, 0x1E, 0x00, + 0x00, 0x92, 0xC7, 0x28, 0x28, 0xC9, 0xB9, 0x00, + 0x13, 0xFB, 0x3B, 0x00, 0x00, 0x5D, 0xFC, 0x08, + 0x44, 0xFF, 0xF1, 0xF0, 0xF0, 0xF5, 0xFF, 0x1C, + 0x48, 0xFF, 0x42, 0x20, 0x20, 0x20, 0x20, 0x04, + 0x1E, 0xFF, 0x5D, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xA9, 0xE8, 0x4F, 0x16, 0x22, 0x65, 0x13, + 0x00, 0x08, 0x89, 0xE1, 0xFB, 0xE8, 0xB0, 0x11, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x59, 0xD4, 0xFA, 0xF4, 0xCD, + 0x00, 0x00, 0x21, 0xFC, 0x85, 0x1B, 0x16, 0x34, + 0x00, 0x00, 0x4E, 0xFF, 0x22, 0x00, 0x00, 0x00, + 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x00, 0x10, 0x5B, 0xFF, 0x2E, 0x10, 0x10, 0x10, + 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x0D, 0xA9, 0xF6, 0xCF, 0x7F, 0xFF, 0x20, + 0x00, 0xA4, 0xD8, 0x29, 0x38, 0xD9, 0xFF, 0x20, + 0x15, 0xFC, 0x5B, 0x00, 0x00, 0x53, 0xFF, 0x20, + 0x43, 0xFF, 0x2A, 0x00, 0x00, 0x50, 0xFF, 0x20, + 0x4B, 0xFF, 0x23, 0x00, 0x00, 0x50, 0xFF, 0x20, + 0x2E, 0xFF, 0x46, 0x00, 0x00, 0x72, 0xFF, 0x20, + 0x01, 0xD8, 0xBF, 0x1D, 0x56, 0xE3, 0xFF, 0x1E, + 0x00, 0x2E, 0xD1, 0xF7, 0xB7, 0x66, 0xFF, 0x14, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0xEF, 0x01, + 0x00, 0x4A, 0x3A, 0x14, 0x36, 0xDB, 0x8D, 0x00, + 0x00, 0x75, 0xDF, 0xFA, 0xE9, 0x92, 0x07, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x50, 0xFF, 0x42, 0xB5, 0xF5, 0xE8, 0x5A, + 0x00, 0x50, 0xFF, 0xE4, 0x5F, 0x1B, 0xAA, 0xF1, + 0x00, 0x50, 0xFF, 0x4E, 0x00, 0x00, 0x55, 0xFF, + 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x50, 0xFF, + 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x50, 0xFF, + 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x50, 0xFF, + 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x50, 0xFF, + 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x50, 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, 0x50, 0xFF, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x43, 0xD8, 0x1B, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x04, 0xFF, 0xFF, 0xFF, 0xFF, 0x20, 0x00, 0x00, + 0x04, 0x10, 0x10, 0x5B, 0xFF, 0x20, 0x00, 0x00, + 0x1C, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x43, 0xD8, 0x1B, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x58, 0xFF, 0xFF, 0xFF, 0xFF, 0x20, 0x00, + 0x00, 0x05, 0x10, 0x10, 0x5B, 0xFF, 0x20, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x50, 0xFF, 0x1D, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x5D, 0xFE, 0x0A, 0x00, + 0x2A, 0x54, 0x1F, 0x1A, 0xB6, 0xBF, 0x00, 0x00, + 0x35, 0xD1, 0xF5, 0xF5, 0xB8, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x50, 0xFF, 0x20, 0x00, 0x32, 0xF4, 0x4D, + 0x00, 0x50, 0xFF, 0x20, 0x17, 0xE2, 0x7B, 0x00, + 0x00, 0x50, 0xFF, 0x26, 0xC5, 0xA9, 0x00, 0x00, + 0x00, 0x50, 0xFF, 0xB7, 0xEE, 0x0B, 0x00, 0x00, + 0x00, 0x50, 0xFF, 0x6F, 0xFD, 0x82, 0x00, 0x00, + 0x00, 0x50, 0xFF, 0x20, 0x77, 0xFF, 0x5A, 0x00, + 0x00, 0x50, 0xFF, 0x20, 0x00, 0xA0, 0xF7, 0x38, + 0x00, 0x50, 0xFF, 0x20, 0x00, 0x06, 0xC4, 0xE8, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x2C, 0xFF, 0xFF, 0xFF, 0xFF, 0x20, 0x00, 0x00, + 0x02, 0x10, 0x10, 0x5B, 0xFF, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, + 0x1F, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x50, 0xFF, 0x45, 0xE8, 0x7A, 0x2E, 0xEB, 0xAA, + 0x50, 0xFF, 0x9E, 0x7C, 0xEF, 0x83, 0x79, 0xFF, + 0x50, 0xFF, 0x5F, 0x53, 0xFF, 0x5D, 0x51, 0xFF, + 0x50, 0xFF, 0x22, 0x50, 0xFF, 0x22, 0x50, 0xFF, + 0x50, 0xFF, 0x20, 0x50, 0xFF, 0x20, 0x50, 0xFF, + 0x50, 0xFF, 0x20, 0x50, 0xFF, 0x20, 0x50, 0xFF, + 0x50, 0xFF, 0x20, 0x50, 0xFF, 0x20, 0x50, 0xFF, + 0x50, 0xFF, 0x20, 0x50, 0xFF, 0x20, 0x50, 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, 0x50, 0xFF, 0x42, 0xB5, 0xF5, 0xE8, 0x5A, + 0x10, 0x50, 0xFF, 0xE4, 0x5F, 0x1B, 0xAA, 0xF1, + 0x1F, 0x50, 0xFF, 0x4E, 0x00, 0x00, 0x55, 0xFF, + 0x20, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x50, 0xFF, + 0x20, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x50, 0xFF, + 0x20, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x50, 0xFF, + 0x20, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x50, 0xFF, + 0x20, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x50, 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, 0x05, 0x85, 0xE3, 0xFA, 0xD9, 0x6A, 0x00, + 0x04, 0x9C, 0xE8, 0x45, 0x16, 0x61, 0xFA, 0x6F, + 0x35, 0xFD, 0x62, 0x00, 0x00, 0x00, 0x94, 0xE6, + 0x66, 0xFF, 0x28, 0x00, 0x00, 0x00, 0x59, 0xFF, + 0x67, 0xFF, 0x28, 0x00, 0x00, 0x00, 0x59, 0xFF, + 0x3A, 0xFE, 0x61, 0x00, 0x00, 0x00, 0x93, 0xE6, + 0x20, 0xA2, 0xE6, 0x44, 0x16, 0x5E, 0xF9, 0x71, + 0x20, 0x07, 0x8A, 0xE5, 0xFA, 0xDA, 0x6D, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x50, 0xFF, 0x40, 0xC1, 0xF7, 0xBD, 0x16, + 0x00, 0x50, 0xFF, 0xCB, 0x42, 0x25, 0xD8, 0xA9, + 0x00, 0x50, 0xFF, 0x3C, 0x00, 0x00, 0x72, 0xF9, + 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x53, 0xFF, + 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x5A, 0xFF, + 0x00, 0x50, 0xFF, 0x21, 0x00, 0x00, 0x8A, 0xE1, + 0x00, 0x50, 0xFF, 0xBA, 0x27, 0x3C, 0xEF, 0x76, + 0x00, 0x50, 0xFF, 0x74, 0xE5, 0xF1, 0x8E, 0x02, + 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x10, 0xAB, 0xF6, 0xD4, 0x5A, 0xFF, 0x20, + 0x00, 0xAA, 0xD8, 0x2A, 0x37, 0xD5, 0xFF, 0x20, + 0x1B, 0xFD, 0x5A, 0x00, 0x00, 0x51, 0xFF, 0x20, + 0x5E, 0xFF, 0x29, 0x00, 0x00, 0x50, 0xFF, 0x20, + 0x5C, 0xFF, 0x23, 0x00, 0x00, 0x50, 0xFF, 0x20, + 0x30, 0xFF, 0x41, 0x00, 0x00, 0x6E, 0xFF, 0x20, + 0x02, 0xDC, 0xB6, 0x1C, 0x5A, 0xDD, 0xFF, 0x20, + 0x00, 0x32, 0xD4, 0xF6, 0xA8, 0x5D, 0xFF, 0x20, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x50, 0xFF, 0x44, 0xBE, 0xF8, 0xFF, 0x20, + 0x00, 0x50, 0xFF, 0xD3, 0x42, 0x5F, 0xFF, 0x20, + 0x00, 0x50, 0xFF, 0x4B, 0x00, 0x11, 0x38, 0x07, + 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x66, 0xDA, 0xFB, 0xF0, 0xC9, 0x1D, + 0x00, 0x2D, 0xFF, 0x82, 0x1C, 0x1C, 0x45, 0x13, + 0x00, 0x3F, 0xFF, 0x70, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x01, 0xA1, 0xFE, 0xEB, 0x9D, 0x47, 0x01, + 0x00, 0x00, 0x00, 0x22, 0x71, 0xC1, 0xFF, 0xAD, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0xFF, + 0x00, 0x36, 0x70, 0x2C, 0x14, 0x33, 0xBD, 0xE0, + 0x00, 0x2B, 0xB8, 0xE8, 0xFD, 0xEF, 0xAE, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, + 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x00, 0x10, 0x5B, 0xFF, 0x2E, 0x10, 0x10, 0x10, + 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x48, 0xFF, 0x24, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x1D, 0xFE, 0x95, 0x26, 0x18, 0x31, + 0x00, 0x00, 0x00, 0x6F, 0xDE, 0xFB, 0xF8, 0xE0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x50, 0xFF, 0x20, 0x00, 0x00, 0x50, 0xFF, 0x20, + 0x50, 0xFF, 0x20, 0x00, 0x00, 0x50, 0xFF, 0x20, + 0x50, 0xFF, 0x20, 0x00, 0x00, 0x50, 0xFF, 0x20, + 0x50, 0xFF, 0x20, 0x00, 0x00, 0x50, 0xFF, 0x20, + 0x50, 0xFF, 0x20, 0x00, 0x00, 0x50, 0xFF, 0x20, + 0x4C, 0xFF, 0x27, 0x00, 0x00, 0x8E, 0xFF, 0x20, + 0x26, 0xFF, 0x93, 0x37, 0x99, 0xE6, 0xFF, 0x20, + 0x00, 0x82, 0xF2, 0xEF, 0x97, 0x5A, 0xFF, 0x20, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x63, 0xF4, 0x0C, 0x00, 0x00, 0x00, 0x63, 0xD1, + 0x0C, 0xF3, 0x63, 0x00, 0x00, 0x00, 0xC9, 0x6C, + 0x00, 0x9E, 0xC5, 0x00, 0x00, 0x2E, 0xF6, 0x10, + 0x00, 0x3B, 0xFF, 0x27, 0x00, 0x95, 0xA2, 0x00, + 0x00, 0x00, 0xD8, 0x89, 0x0A, 0xF0, 0x3D, 0x00, + 0x00, 0x00, 0x76, 0xE6, 0x63, 0xD7, 0x00, 0x00, + 0x00, 0x00, 0x18, 0xFB, 0xEF, 0x73, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xB1, 0xF9, 0x14, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xD6, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC4, + 0xAB, 0x93, 0x00, 0x7E, 0xFE, 0x0F, 0x00, 0xEB, + 0x7F, 0xBD, 0x00, 0xC1, 0xC1, 0x43, 0x14, 0xE1, + 0x54, 0xE7, 0x0A, 0xD5, 0x71, 0x79, 0x3C, 0xB1, + 0x28, 0xFF, 0x58, 0x9E, 0x3A, 0xAE, 0x64, 0x82, + 0x04, 0xF8, 0xC5, 0x61, 0x08, 0xDD, 0x8C, 0x52, + 0x00, 0xD1, 0xFF, 0x23, 0x00, 0xCB, 0xCC, 0x23, + 0x00, 0xA6, 0xE6, 0x00, 0x00, 0x94, 0xF2, 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, + 0x56, 0xE9, 0xB0, 0x00, 0x00, 0x1B, 0xF1, 0x7A, + 0x11, 0x4E, 0xFF, 0x61, 0x00, 0xB0, 0xA6, 0x00, + 0x00, 0x00, 0x9D, 0xF2, 0x73, 0xEC, 0x15, 0x00, + 0x00, 0x00, 0x0D, 0xDF, 0xFF, 0x5E, 0x00, 0x00, + 0x00, 0x00, 0x13, 0xE8, 0xFF, 0x75, 0x00, 0x00, + 0x00, 0x00, 0xA9, 0xB2, 0x88, 0xF8, 0x2E, 0x00, + 0x00, 0x58, 0xEC, 0x17, 0x06, 0xD0, 0xD1, 0x06, + 0x18, 0xED, 0x56, 0x00, 0x00, 0x2C, 0xF8, 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, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 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, 0x33, 0x00, 0x00, 0x00, 0x53, 0xE0, + 0x00, 0xC9, 0x99, 0x00, 0x00, 0x00, 0xBA, 0x79, + 0x00, 0x62, 0xF3, 0x0D, 0x00, 0x23, 0xF8, 0x16, + 0x00, 0x0A, 0xF0, 0x67, 0x00, 0x88, 0xA7, 0x00, + 0x00, 0x00, 0x93, 0xCE, 0x05, 0xE9, 0x3E, 0x00, + 0x00, 0x00, 0x2B, 0xFF, 0x8C, 0xD5, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xC4, 0xFF, 0x6C, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x63, 0xF4, 0x0E, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x9B, 0x99, 0x00, 0x00, 0x00, + 0x00, 0x12, 0x4D, 0xF7, 0x2B, 0x00, 0x00, 0x00, + 0x00, 0xFF, 0xE4, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x02, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, + 0x00, 0x10, 0x10, 0x10, 0x17, 0xD3, 0xA9, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x97, 0xD7, 0x0C, 0x00, + 0x00, 0x00, 0x00, 0x5C, 0xF4, 0x2A, 0x00, 0x00, + 0x00, 0x00, 0x2B, 0xF4, 0x59, 0x00, 0x00, 0x00, + 0x00, 0x0D, 0xD8, 0x93, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xA9, 0xD1, 0x16, 0x10, 0x10, 0x10, 0x00, + 0x00, 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, 0x7A, 0xDF, 0xFC, 0x84, + 0x00, 0x00, 0x00, 0x37, 0xFF, 0x6B, 0x15, 0x08, + 0x00, 0x00, 0x00, 0x4F, 0xFF, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x02, 0x53, 0xFF, 0x1D, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x90, 0xE8, 0x04, 0x00, 0x00, + 0x00, 0x70, 0xF7, 0xF4, 0x3B, 0x00, 0x00, 0x00, + 0x00, 0x0F, 0x29, 0xAF, 0xCF, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x53, 0xFF, 0x1A, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x3F, 0xFF, 0x4D, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x01, 0x96, 0xF8, 0xF4, 0x7B, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x1D, 0x10, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xB4, 0xF9, 0xD1, 0x50, 0x00, 0x00, 0x00, + 0x00, 0x0B, 0x19, 0x96, 0xF8, 0x0C, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x50, 0xFF, 0x1F, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x4D, 0xFF, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x21, 0xFB, 0x62, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x61, 0xFE, 0xF4, 0x47, + 0x00, 0x00, 0x00, 0x14, 0xEE, 0x8A, 0x25, 0x09, + 0x00, 0x00, 0x00, 0x4B, 0xFF, 0x22, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x50, 0xFF, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x7E, 0xFE, 0x11, 0x00, 0x00, + 0x00, 0xA8, 0xF7, 0xF2, 0x76, 0x00, 0x00, 0x00, + 0x00, 0x16, 0x1A, 0x03, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 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, 0xE2, 0x8F, 0x00, 0x00, 0x00, 0x00, + 0x10, 0xF6, 0x72, 0xA8, 0xE2, 0x4C, 0x5C, 0xDF, + 0x44, 0xFF, 0x26, 0x09, 0xA8, 0xFC, 0xFC, 0x8D, + 0x09, 0x20, 0x04, 0x00, 0x00, 0x0E, 0x12, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 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 a8805c9..95e0192 100644 --- a/src/gui/gui.cpp +++ b/src/gui/gui.cpp @@ -7,19 +7,9 @@ #include "gui.h" -#include -#include // For toupper() #include -#include -#include // For MacOS dependency -#include -#include #include "crc32.h" -#include "event.h" #include "file.h" -#include "font1.h" -#include "font14pt.h" // Also 15, 16, 17, 18 -#include "guielements.h" #include "jaguar.h" #include "log.h" #include "sdlemu_opengl.h" @@ -27,23 +17,22 @@ #include "tom.h" #include "video.h" -using namespace std; // For STL stuff +// Once these are split off, these may not be needed anymore... +#include "button.h" +#include "element.h" +#include "filelist.h" +#include "guimisc.h" +#include "image.h" +#include "listbox.h" +#include "menu.h" +#include "pushbutton.h" +#include "slideswitch.h" +#include "text.h" +#include "textedit.h" +#include "window.h" // Private function prototypes -class Window; // Forward declaration... - -//void DrawTransparentBitmap(uint32 * screen, uint32 x, uint32 y, uint32 * bitmap, uint8 * alpha = NULL); -void DrawTransparentBitmapDeprecated(uint32 * screen, uint32 x, uint32 y, uint32 * bitmap); -void DrawTransparentBitmap(uint32 * screen, uint32 x, uint32 y, const void * bitmap); -void DrawBitmap(uint32 * screen, uint32 x, uint32 y, const void * bitmap); -//Should call this FillScreenRectangle with a number representing the RGBA value to fill. !!! FIX !!! -//void ClearScreenRectangle(uint32 * screen, uint32 x, uint32 y, uint32 w, uint32 h); -void FillScreenRectangle(uint32 * screen, uint32 x, uint32 y, uint32 w, uint32 h, uint32 color); -void DrawStringTrans(uint32 * screen, uint32 x, uint32 y, uint32 color, uint8 opacity, const char * text, ...); -void DrawStringOpaque(uint32 * screen, uint32 x, uint32 y, uint32 color1, uint32 color2, const char * text, ...); -void DrawString(uint32 * screen, uint32 x, uint32 y, bool invert, const char * text, ...); -void DrawString2(uint32 * screen, uint32 x, uint32 y, uint32 color, uint8 transparency, const char * text, ...); Window * LoadROM(void); Window * ResetJaguar(void); Window * ResetJaguarCD(void); @@ -63,1549 +52,6 @@ bool showMessage = false; //char messageBuffer[200]; bool finished = false; -const char separator[] = "--------------------------------------------------------"; - -// -// Case insensitive string compare function -// Taken straight out of Thinking In C++ by Bruce Eckel. Thanks Bruce! -// - -int stringCmpi(const string &s1, const string &s2) -{ - // Select the first element of each string: - string::const_iterator p1 = s1.begin(), p2 = s2.begin(); - - while (p1 != s1.end() && p2 != s2.end()) // Don�t run past the end - { - if (toupper(*p1) != toupper(*p2)) // Compare upper-cased chars - return (toupper(*p1) < toupper(*p2) ? -1 : 1);// Report which was lexically greater - - p1++; - p2++; - } - - // If they match up to the detected eos, say which was longer. Return 0 if the same. - return s2.size() - s1.size(); -} - -// -// Local GUI classes -// - -enum { WINDOW_CLOSE, MENU_ITEM_CHOSEN }; - -class Element -{ - public: - Element(uint32 x = 0, uint32 y = 0, uint32 w = 0, uint32 h = 0) - { extents.x = x, extents.y = y, extents.w = w, extents.h = h; } - virtual void HandleKey(SDLKey key) = 0; // These are "pure" virtual functions... - virtual void HandleMouseMove(uint32 x, uint32 y) = 0; - virtual void HandleMouseButton(uint32 x, uint32 y, bool mouseDown) = 0; - virtual void Draw(uint32, uint32) = 0; - virtual void Notify(Element *) = 0; -//Needed? virtual ~Element() = 0; -//We're not allocating anything in the base class, so the answer would be NO. - bool Inside(uint32 x, uint32 y); - // Class method -// static void SetScreenAndPitch(int16 * s, uint32 p) { screenBuffer = s, pitch = p; } - static void SetScreenAndPitch(uint32 * s, uint32 p) { screenBuffer = s, pitch = p; } - - protected: - SDL_Rect extents; - uint32 state; - // Class variables... -// static int16 * screenBuffer; - static uint32 * screenBuffer; - static uint32 pitch; -}; - -// Initialize class variables (Element) -//int16 * Element::screenBuffer = NULL; -uint32 * Element::screenBuffer = NULL; -uint32 Element::pitch = 0; - -bool Element::Inside(uint32 x, uint32 y) -{ - return (x >= (uint32)extents.x && x < (uint32)(extents.x + extents.w) - && y >= (uint32)extents.y && y < (uint32)(extents.y + extents.h) ? true : false); -} - - -// -// Button class -// - -class Button: public Element -{ - public: - Button(uint32 x = 0, uint32 y = 0, uint32 w = 0, uint32 h = 0): Element(x, y, w, h), - activated(false), clicked(false), inside(false), fgColor(0xFFFFFFFF), - bgColor(0xFF00FF00), pic(NULL), elementToTell(NULL) {} - Button(uint32 x, uint32 y, uint32 w, uint32 h, uint32 * p): Element(x, y, w, h), - activated(false), clicked(false), inside(false), fgColor(0xFFFFFFFF), - bgColor(0xFF00FF00), pic(p), elementToTell(NULL) {} -// Button(uint32 x, uint32 y, uint32 * p): Element(x, y, 0, 0), - Button(uint32 x, uint32 y, uint32 * p, uint32 * pH = NULL, uint32 * pD = NULL): Element(x, y, 0, 0), - activated(false), clicked(false), inside(false), fgColor(0xFFFFFFFF), - bgColor(0xFF00FF00), pic(p), picHover(pH), picDown(pD), elementToTell(NULL) - { if (pic) extents.w = pic[0], extents.h = pic[1]; } - Button(uint32 x, uint32 y, uint32 w, uint32 h, string s): Element(x, y, w, h), - activated(false), clicked(false), inside(false), fgColor(0xFFFFFFFF), - bgColor(0xFF00FF00), pic(NULL), text(s), elementToTell(NULL) {} - Button(uint32 x, uint32 y, string s): Element(x, y, 0, FONT_HEIGHT), - activated(false), clicked(false), inside(false), fgColor(0xFFFFFFFF), - bgColor(0xFF00FF00), pic(NULL), text(s), elementToTell(NULL) - { extents.w = s.length() * FONT_WIDTH; } - virtual void HandleKey(SDLKey key) {} - virtual void HandleMouseMove(uint32 x, uint32 y); - virtual void HandleMouseButton(uint32 x, uint32 y, bool mouseDown); - virtual void Draw(uint32 offsetX = 0, uint32 offsetY = 0); - virtual void Notify(Element *) {} - bool ButtonClicked(void) { return activated; } - void SetNotificationElement(Element * e) { elementToTell = e; } - - protected: - bool activated, clicked, inside; - uint32 fgColor, bgColor; - uint32 * pic, * picHover, * picDown; - string text; - Element * elementToTell; -}; - -void Button::HandleMouseMove(uint32 x, uint32 y) -{ - inside = Inside(x, y); -} - -void Button::HandleMouseButton(uint32 x, uint32 y, bool mouseDown) -{ - if (inside) - { - if (mouseDown) - clicked = true; - - if (clicked && !mouseDown) - { - clicked = false, activated = true; - - // Send a message that we're activated (if there's someone to tell, that is) - if (elementToTell) - elementToTell->Notify(this); - } - } - else - clicked = activated = false; -} - -void Button::Draw(uint32 offsetX/*= 0*/, uint32 offsetY/*= 0*/) -{ - uint32 addr = (extents.x + offsetX) + ((extents.y + offsetY) * pitch); - - if (text.length() > 0) // Simple text button -// if (pic == NULL) - { - for(uint32 y=0; y 010000 11111 10000 -> 0100 0001 1111 1111 1000 0100 -> 41 FF 84 - = (clicked && inside ? fgColor : (inside ? 0xFF84FF41 : bgColor)); - } - } - - DrawString(screenBuffer, extents.x + offsetX, extents.y + offsetY, false, "%s", text.c_str()); - } - else // Graphical button - { - uint32 * picToShow = pic; - - if (picHover != NULL && inside && !clicked) - picToShow = picHover; - - if (picDown != NULL && inside && clicked) - picToShow = picDown; - - DrawTransparentBitmapDeprecated(screenBuffer, extents.x + offsetX, extents.y + offsetY, picToShow); - } -} - - -// -// PushButton class -// - -class PushButton: public Element -{ -// How to handle? -// Save state externally? -//We pass in a state variable if we want to track it externally, otherwise we use our own -//internal state var. Still need to do some kind of callback for pushbuttons that do things -//like change from fullscreen to windowed... !!! FIX !!! - - public: -// PushButton(uint32 x = 0, uint32 y = 0, uint32 w = 0, uint32 h = 0): Element(x, y, w, h), -// activated(false), clicked(false), inside(false), fgColor(0xFFFF), -// bgColor(0x03E0), pic(NULL), elementToTell(NULL) {} -// PushButton(uint32 x, uint32 y, bool * st, string s): Element(x, y, 8, 8), state(st), -// inside(false), text(s) { if (st == NULL) state = &internalState; } - PushButton(uint32 x, uint32 y, bool * st, string s): Element(x, y, 16, 16), state(st), - inside(false), text(s) { if (st == NULL) state = &internalState; } -/* Button(uint32 x, uint32 y, uint32 w, uint32 h, uint32 * p): Element(x, y, w, h), - activated(false), clicked(false), inside(false), fgColor(0xFFFF), - bgColor(0x03E0), pic(p), elementToTell(NULL) {} - Button(uint32 x, uint32 y, uint32 * p): Element(x, y, 0, 0), - activated(false), clicked(false), inside(false), fgColor(0xFFFF), - bgColor(0x03E0), pic(p), elementToTell(NULL) - { if (pic) extents.w = pic[0], extents.h = pic[1]; } - Button(uint32 x, uint32 y, uint32 w, uint32 h, string s): Element(x, y, w, h), - activated(false), clicked(false), inside(false), fgColor(0xFFFF), - bgColor(0x03E0), pic(NULL), text(s), elementToTell(NULL) {} - PushButton(uint32 x, uint32 y, string s): Element(x, y, 0, 8), - activated(false), clicked(false), inside(false), fgColor(0xFFFF), - bgColor(0x03E0), pic(NULL), text(s), elementToTell(NULL) - { extents.w = s.length() * 8; }*/ - virtual void HandleKey(SDLKey key) {} - virtual void HandleMouseMove(uint32 x, uint32 y); - virtual void HandleMouseButton(uint32 x, uint32 y, bool mouseDown); - virtual void Draw(uint32 offsetX = 0, uint32 offsetY = 0); - virtual void Notify(Element *) {} -// bool ButtonClicked(void) { return activated; } -// void SetNotificationElement(Element * e) { elementToTell = e; } - - protected: - bool * state; - bool inside; -// bool activated, clicked, inside; -// uint16 fgColor, bgColor; -// uint32 * pic; - string text; -// Element * elementToTell; - bool internalState; -}; - -void PushButton::HandleMouseMove(uint32 x, uint32 y) -{ - inside = Inside(x, y); -} - -void PushButton::HandleMouseButton(uint32 x, uint32 y, bool mouseDown) -{ - if (inside && mouseDown) - { -/* if (mouseDown) - clicked = true; - - if (clicked && !mouseDown) - { - clicked = false, activated = true; - - // Send a message that we're activated (if there's someone to tell, that is) - if (elementToTell) - elementToTell->Notify(this); - }*/ - *state = !(*state); - } -// else -// clicked = activated = false; -} - -void PushButton::Draw(uint32 offsetX/*= 0*/, uint32 offsetY/*= 0*/) -{ -/* uint32 addr = (extents.x + offsetX) + ((extents.y + offsetY) * pitch); - - for(uint32 y=0; y 0) - DrawString(screenBuffer, extents.x + offsetX + 24, extents.y + offsetY, false, "%s", text.c_str()); -} - - -// -// SlideSwitch class -// - -class SlideSwitch: public Element -{ -// How to handle? -// Save state externally? -//Seems to be handled the same as PushButton, but without sanity checks. !!! FIX !!! - - public: - SlideSwitch(uint32 x, uint32 y, bool * st, string s1, string s2): Element(x, y, 16, 32), state(st), - inside(false), text1(s1), text2(s2) {} - virtual void HandleKey(SDLKey key) {} - virtual void HandleMouseMove(uint32 x, uint32 y); - virtual void HandleMouseButton(uint32 x, uint32 y, bool mouseDown); - virtual void Draw(uint32 offsetX = 0, uint32 offsetY = 0); - virtual void Notify(Element *) {} -// bool ButtonClicked(void) { return activated; } -// void SetNotificationElement(Element * e) { elementToTell = e; } - - protected: - bool * state; - bool inside; -// bool activated, clicked, inside; -// uint16 fgColor, bgColor; -// uint32 * pic; - string text1, text2; -// Element * elementToTell; -}; - -void SlideSwitch::HandleMouseMove(uint32 x, uint32 y) -{ - inside = Inside(x, y); -} - -void SlideSwitch::HandleMouseButton(uint32 x, uint32 y, bool mouseDown) -{ - if (inside && mouseDown) - { -/* if (mouseDown) - clicked = true; - - if (clicked && !mouseDown) - { - clicked = false, activated = true; - - // Send a message that we're activated (if there's someone to tell, that is) - if (elementToTell) - elementToTell->Notify(this); - }*/ - *state = !(*state); - } -// else -// clicked = activated = false; -} - -void SlideSwitch::Draw(uint32 offsetX/*= 0*/, uint32 offsetY/*= 0*/) -{ - DrawTransparentBitmapDeprecated(screenBuffer, extents.x + offsetX, extents.y + offsetY, (*state ? slideSwitchDown : slideSwitchUp)); - - if (text1.length() > 0) - DrawString(screenBuffer, extents.x + offsetX + 24, extents.y + offsetY, false, "%s", text1.c_str()); - - if (text2.length() > 0) - DrawString(screenBuffer, extents.x + offsetX + 24, extents.y + offsetY + 16, false, "%s", text2.c_str()); -} - - -// -// Window class -// - -class Window: public Element -{ - public: -/* Window(uint32 x = 0, uint32 y = 0, uint32 w = 0, uint32 h = 0): Element(x, y, w, h), - fgColor(0x4FF0), bgColor(0xFE10) - { close = new Button(w - 8, 1, closeBox); list.push_back(close); }*/ - Window(uint32 x = 0, uint32 y = 0, uint32 w = 0, uint32 h = 0, - void (* f)(Element *) = NULL): Element(x, y, w, h), -// /*clicked(false), inside(false),*/ fgColor(0x4FF0), bgColor(0x1E10), -//4FF0 -> 010011 11111 10000 -> 0100 1101 1111 1111 1000 0100 -> 4D FF 84 -//1E10 -> 000111 10000 10000 -> 0001 1111 1000 0100 1000 0100 -> 1F 84 84 - /*clicked(false), inside(false),*/ fgColor(0xFF84FF4D), bgColor(0xFF84841F), - handler(f) - { close = new Button(w - (CLOSEBOX_WIDTH + 1), 1, closeBox, closeBoxHover, closeBoxDown); - list.push_back(close); - close->SetNotificationElement(this); } - virtual ~Window(); - virtual void HandleKey(SDLKey key); - virtual void HandleMouseMove(uint32 x, uint32 y); - virtual void HandleMouseButton(uint32 x, uint32 y, bool mouseDown); - virtual void Draw(uint32 offsetX = 0, uint32 offsetY = 0); - virtual void Notify(Element * e); - void AddElement(Element * e); -// bool WindowActive(void) { return true; }//return !close->ButtonClicked(); } - - protected: -// bool clicked, inside; - uint32 fgColor, bgColor; - void (* handler)(Element *); - Button * close; -//We have to use a list of Element *pointers* because we can't make a list that will hold -//all the different object types in the same list... - vector list; -}; - -Window::~Window() -{ - for(uint32 i=0; iHandleKey(key); -} - -void Window::HandleMouseMove(uint32 x, uint32 y) -{ - // Handle the items this window contains... - for(uint32 i=0; iHandleMouseMove(x - extents.x, y - extents.y); -} - -void Window::HandleMouseButton(uint32 x, uint32 y, bool mouseDown) -{ - // Handle the items this window contains... - for(uint32 i=0; iHandleMouseButton(x - extents.x, y - extents.y, mouseDown); -} - -void Window::Draw(uint32 offsetX/*= 0*/, uint32 offsetY/*= 0*/) -{ - uint32 addr = (extents.x + offsetX) + ((extents.y + offsetY) * pitch); - - for(uint32 y=0; yDraw(extents.x, extents.y); -} - -void Window::AddElement(Element * e) -{ - list.push_back(e); -} - -void Window::Notify(Element * e) -{ - if (e == close) - { - SDL_Event event; - event.type = SDL_USEREVENT, event.user.code = WINDOW_CLOSE; - SDL_PushEvent(&event); - } -} - - -// -// Static text class -// - -class Text: public Element -{ - public: -// Text(uint32 x = 0, uint32 y = 0, uint32 w = 0, uint32 h = 0): Element(x, y, w, h), -// fgColor(0x4FF0), bgColor(0xFE10) {} -// Text(uint32 x, uint32 y, string s, uint16 fg = 0x4FF0, uint16 bg = 0xFE10): Element(x, y, 0, 0), -// fgColor(fg), bgColor(bg), text(s) {} -//4FF0 -> 010011 11111 10000 -> 0100 1101 1111 1111 1000 0100 -> 4D FF 84 -//FE10 -> 111111 10000 10000 -> 1111 1111 1000 0100 1000 0100 -> FF 84 84 - Text(uint32 x = 0, uint32 y = 0, uint32 w = 0, uint32 h = 0): Element(x, y, w, h), - fgColor(0xFF8484FF), bgColor(0xFF84FF4D) {} - Text(uint32 x, uint32 y, string s, uint32 fg = 0xFF8484FF, uint32 bg = 0xFF84FF4D): - Element(x, y, 0, 0), fgColor(fg), bgColor(bg), text(s) {} - virtual void HandleKey(SDLKey key) {} - virtual void HandleMouseMove(uint32 x, uint32 y) {} - virtual void HandleMouseButton(uint32 x, uint32 y, bool mouseDown) {} - virtual void Draw(uint32 offsetX = 0, uint32 offsetY = 0); - virtual void Notify(Element *) {} - - protected: - uint32 fgColor, bgColor; - string text; -}; - -void Text::Draw(uint32 offsetX/*= 0*/, uint32 offsetY/*= 0*/) -{ - if (text.length() > 0) -// DrawString(screenBuffer, extents.x + offsetX, extents.y + offsetY, false, "%s", text.c_str()); - DrawStringOpaque(screenBuffer, extents.x + offsetX, extents.y + offsetY, fgColor, bgColor, "%s", text.c_str()); -} - - -// -// Static image class -// - -class Image: public Element -{ - public: - Image(uint32 x, uint32 y, const void * img): Element(x, y, 0, 0), image(img) {} - virtual void HandleKey(SDLKey key) {} - virtual void HandleMouseMove(uint32 x, uint32 y) {} - virtual void HandleMouseButton(uint32 x, uint32 y, bool mouseDown) {} - virtual void Draw(uint32 offsetX = 0, uint32 offsetY = 0); - virtual void Notify(Element *) {} - - protected: - uint32 fgColor, bgColor; - const void * image; -}; - -void Image::Draw(uint32 offsetX/*= 0*/, uint32 offsetY/*= 0*/) -{ - if (image != NULL) - DrawTransparentBitmap(screenBuffer, extents.x + offsetX, extents.y + offsetY, image); -} - - -// -// TextEdit class -// - -class TextEdit: public Element -{ - public: - TextEdit(uint32 x = 0, uint32 y = 0, uint32 w = 0, uint32 h = 0): Element(x, y, w, h), - fgColor(0xFF8484FF), bgColor(0xFF84FF4D), text(""), caretPos(0), - maxScreenSize(10) {} - TextEdit(uint32 x, uint32 y, string s, uint32 mss = 10, uint32 fg = 0xFF8484FF, - uint32 bg = 0xFF84FF4D): Element(x, y, 0, 0), fgColor(fg), bgColor(bg), text(s), - caretPos(0), maxScreenSize(mss) {} - virtual void HandleKey(SDLKey key); - virtual void HandleMouseMove(uint32 x, uint32 y) {} - virtual void HandleMouseButton(uint32 x, uint32 y, bool mouseDown) {} - virtual void Draw(uint32 offsetX = 0, uint32 offsetY = 0); - virtual void Notify(Element *) {} - - protected: - uint32 fgColor, bgColor; - string text; - uint32 caretPos; - uint32 maxScreenSize; -}; - -//Set different filters depending on type passed in on construction, e.g., filename, amount, etc...? -void TextEdit::HandleKey(SDLKey key) -{ - if ((key >= SDLK_a && key <= SDLK_z) || (key >= SDLK_0 && key <= SDLK_9) || key == SDLK_PERIOD - || key == SDLK_SLASH) - { - //Need to handle shift key as well... - text[caretPos++] = key; - Draw(); - } - else if (key == SDLK_BACKSPACE) - { - - } - else if (key == SDLK_DELETE) - { - } -//left, right arrow -} - -void TextEdit::Draw(uint32 offsetX/*= 0*/, uint32 offsetY/*= 0*/) -{ - if (text.length() > 0) - { - FillScreenRectangle(screenBuffer, extents.x + offsetX, extents.y + offsetY, FONT_WIDTH * maxScreenSize, FONT_HEIGHT, bgColor); -// DrawString(screenBuffer, extents.x + offsetX, extents.y + offsetY, false, "%s", text.c_str()); - DrawStringOpaque(screenBuffer, extents.x + offsetX, extents.y + offsetY, fgColor, bgColor, "%s", text.c_str()); - } - - // Draw the caret (underscore? or vertical line?) -} - - -// -// ListBox class -// - -class ListBox: public Element -//class ListBox: public Window -{ - public: -// ListBox(uint32 x = 0, uint32 y = 0, uint32 w = 0, uint32 h = 0): Element(x, y, w, h), - ListBox(uint32 x = 0, uint32 y = 0, uint32 w = 0, uint32 h = 0);//: Window(x, y, w, h), -// windowPtr(0), cursor(0), limit(0), charWidth((w / 8) - 1), charHeight(h / 8), -// elementToTell(NULL), upArrow(w - 8, 0, upArrowBox), -// downArrow(w - 8, h - 8, downArrowBox), upArrow2(w - 8, h - 16, upArrowBox) {} - virtual void HandleKey(SDLKey key); - virtual void HandleMouseMove(uint32 x, uint32 y); - virtual void HandleMouseButton(uint32 x, uint32 y, bool mouseDown); - virtual void Draw(uint32 offsetX = 0, uint32 offsetY = 0); - virtual void Notify(Element * e); - void SetNotificationElement(Element * e) { elementToTell = e; } - void AddItem(string s); - string GetSelectedItem(void); - - protected: - bool thumbClicked; - uint32 windowPtr, cursor, limit; - uint32 charWidth, charHeight; // Box width/height in characters - Element * elementToTell; - Button upArrow, downArrow, upArrow2; - vector item; - - private: - uint32 yRelativePoint; -}; - -ListBox::ListBox(uint32 x, uint32 y, uint32 w, uint32 h): Element(x, y, w, h), - thumbClicked(false), windowPtr(0), cursor(0), limit(0), charWidth((w / FONT_WIDTH) - 1), - charHeight(h / FONT_HEIGHT), elementToTell(NULL), upArrow(w - 8, 0, upArrowBox), - downArrow(w - 8, h - 8, downArrowBox), upArrow2(w - 8, h - 16, upArrowBox) -{ - upArrow.SetNotificationElement(this); - downArrow.SetNotificationElement(this); - upArrow2.SetNotificationElement(this); - extents.w -= 8; // Make room for scrollbar... -} - -void ListBox::HandleKey(SDLKey key) -{ - if (key == SDLK_DOWN) - { - if (cursor != limit - 1) // Cursor is within its window - cursor++; - else // Otherwise, scroll the window... - { - if (cursor + windowPtr != item.size() - 1) - windowPtr++; - } - } - else if (key == SDLK_UP) - { - if (cursor != 0) - cursor--; - else - { - if (windowPtr != 0) - windowPtr--; - } - } - else if (key == SDLK_PAGEDOWN) - { - if (cursor != limit - 1) - cursor = limit - 1; - else - { - windowPtr += limit; - if (windowPtr > item.size() - limit) - windowPtr = item.size() - limit; - } - } - else if (key == SDLK_PAGEUP) - { - if (cursor != 0) - cursor = 0; - else - { - if (windowPtr < limit) - windowPtr = 0; - else - windowPtr -= limit; - } - } - else if (key >= SDLK_a && key <= SDLK_z) - { - // Advance cursor to filename with first letter pressed... - uint8 which = (key - SDLK_a) + 65; // Convert key to A-Z char - - for(uint32 i=0; i windowPtr + limit - 1) - windowPtr = i - limit + 1, cursor = limit - 1; - if (i < windowPtr) - windowPtr = i, cursor = 0; - break; - } - } - } -} - -void ListBox::HandleMouseMove(uint32 x, uint32 y) -{ - upArrow.HandleMouseMove(x - extents.x, y - extents.y); - downArrow.HandleMouseMove(x - extents.x, y - extents.y); - upArrow2.HandleMouseMove(x - extents.x, y - extents.y); - - if (thumbClicked) - { - uint32 sbHeight = extents.h - 24, - thumb = (uint32)(((float)limit / (float)item.size()) * (float)sbHeight); - -//yRelativePoint is the spot on the thumb where we clicked... - int32 newThumbStart = y - yRelativePoint; - - if (newThumbStart < 0) - newThumbStart = 0; - - if ((uint32)newThumbStart > sbHeight - thumb) - newThumbStart = sbHeight - thumb; - - windowPtr = (uint32)(((float)newThumbStart / (float)sbHeight) * (float)item.size()); -//Check for cursor bounds as well... Or do we need to??? -//Actually, we don't...! - } -} - -void ListBox::HandleMouseButton(uint32 x, uint32 y, bool mouseDown) -{ - if (Inside(x, y) && mouseDown) - { - // Why do we have to do this??? (- extents.y?) - // I guess it's because only the Window class has offsetting implemented... !!! FIX !!! -// cursor = (y - extents.y) / 8; - cursor = (y - extents.y) / FONT_HEIGHT; - } - - // Check for a hit on the scrollbar... - if (x > (uint32)(extents.x + extents.w) && x <= (uint32)(extents.x + extents.w + 8) - && y > (uint32)(extents.y + 8) && y <= (uint32)(extents.y + extents.h - 16)) - { - if (mouseDown) - { -// This shiaut should be calculated in AddItem(), not here... (or in Draw() for that matter) - uint32 sbHeight = extents.h - 24, - thumb = (uint32)(((float)limit / (float)item.size()) * (float)sbHeight), - thumbStart = (uint32)(((float)windowPtr / (float)item.size()) * (float)sbHeight); - - // Did we hit the thumb? - if (y >= (extents.y + 8 + thumbStart) && y < (extents.y + 8 + thumbStart + thumb)) - thumbClicked = true, yRelativePoint = y - thumbStart; - } -//Seems that this is useless--never reached except in rare cases and that the code outside is -//more effective... -// else -// thumbClicked = false; - } - - if (!mouseDown) - thumbClicked = false; - - upArrow.HandleMouseButton(x - extents.x, y - extents.y, mouseDown); - downArrow.HandleMouseButton(x - extents.x, y - extents.y, mouseDown); - upArrow2.HandleMouseButton(x - extents.x, y - extents.y, mouseDown); -} - -void ListBox::Draw(uint32 offsetX/*= 0*/, uint32 offsetY/*= 0*/) -{ - for(uint32 i=0; i= thumbStart + (extents.y+offsetY+8) && y < thumbStart + thumb + (extents.y+offsetY+8)) -// screenBuffer[x + (y * pitch)] = (thumbClicked ? 0x458E : 0xFFFF); -//458E -> 01 0001 0 1100 0 1110 -> 0100 0101 0110 0011 0111 0011 -> 45 63 73 - screenBuffer[x + (y * pitch)] = (thumbClicked ? 0xFF736345 : 0xFFFFFFFF); - else -// screenBuffer[x + (y * pitch)] = 0x0200; -//0200 -> 000000 10000 00000 -> 00 1000 0100 00 - screenBuffer[x + (y * pitch)] = 0xFF008400; - } - } -} - -void ListBox::Notify(Element * e) -{ - if (e == &upArrow || e == &upArrow2) - { - if (windowPtr != 0) - { - windowPtr--; - - if (cursor < limit - 1) - cursor++; - } - } - else if (e == &downArrow) - { - if (windowPtr < item.size() - limit) - { - windowPtr++; - - if (cursor != 0) - cursor--; - } - } -} - -void ListBox::AddItem(string s) -{ - // Do a simple insertion sort - bool inserted = false; - - for(vector::iterator i=item.begin(); i charHeight ? charHeight : item.size()); -} - -string ListBox::GetSelectedItem(void) -{ - return item[windowPtr + cursor]; -} - - -// -// FileList class -// - -class FileList: public Window -{ - public: - FileList(uint32 x = 0, uint32 y = 0, uint32 w = 0, uint32 h = 0); - virtual ~FileList() {} - virtual void HandleKey(SDLKey key); - virtual void HandleMouseMove(uint32 x, uint32 y) { Window::HandleMouseMove(x, y); } - virtual void HandleMouseButton(uint32 x, uint32 y, bool mouseDown) { Window::HandleMouseButton(x, y, mouseDown); } - virtual void Draw(uint32 offsetX = 0, uint32 offsetY = 0) { Window::Draw(offsetX, offsetY); } - virtual void Notify(Element * e); - - protected: - ListBox * files; - Button * load; -}; - -//Need 4 buttons, one scrollbar... -FileList::FileList(uint32 x, uint32 y, uint32 w, uint32 h): Window(x, y, w, h) -{ - files = new ListBox(8, 8, w - 16, h - 32); - AddElement(files); - load = new Button(8, h - 16, " Load "); - AddElement(load); - load->SetNotificationElement(this); - -#warning !!! FIX !!! Directory might not exist--this shouldn't cause VJ to crash! - DIR * dp = opendir(vjs.ROMPath); - dirent * de; - - if (dp != NULL) - { - while ((de = readdir(dp)) != NULL) - { - char * ext = strrchr(de->d_name, '.'); - - if (ext != NULL) - if (strcasecmp(ext, ".zip") == 0 || strcasecmp(ext, ".j64") == 0 - || strcasecmp(ext, ".abs") == 0 || strcasecmp(ext, ".jag") == 0 - || strcasecmp(ext, ".rom") == 0) - files->AddItem(string(de->d_name)); - } - - closedir(dp); - } - else - { -//Give a diagnostic message here so that the (l)user can figure out what went wrong. !!! FIX !!! - } -} - -void FileList::HandleKey(SDLKey key) -{ - if (key == SDLK_RETURN) - Notify(load); - else - Window::HandleKey(key); -} - -void FileList::Notify(Element * e) -{ - if (e == load) - { - char filename[MAX_PATH]; - strcpy(filename, vjs.ROMPath); - - if (strlen(filename) > 0) - if (filename[strlen(filename) - 1] != '/') - strcat(filename, "/"); - - strcat(filename, files->GetSelectedItem().c_str()); - -// uint32 romSize = JaguarLoadROM(jaguar_mainRom, filename); -// JaguarLoadCart(jaguar_mainRom, filename); - if (JaguarLoadFile(filename)) - { - SDL_Event event; - event.type = SDL_USEREVENT, event.user.code = WINDOW_CLOSE; - SDL_PushEvent(&event); - - event.type = SDL_USEREVENT, event.user.code = MENU_ITEM_CHOSEN; - event.user.data1 = (void *)ResetJaguar; - SDL_PushEvent(&event); - } - else - { - SDL_Event event; - event.type = SDL_USEREVENT, event.user.code = WINDOW_CLOSE; - SDL_PushEvent(&event); - - // Handle the error, but don't run... - // Tell the user that we couldn't run their file for some reason... !!! FIX !!! -//how to kludge: Make a function like ResetJaguar which creates the dialog window - } - } - else - Window::Notify(e); -} - - -// -// Menu class & supporting structs/classes -// - -struct NameAction -{ - string name; - Window * (* action)(void); - SDLKey hotKey; - - NameAction(string n, Window * (* a)(void) = NULL, SDLKey k = SDLK_UNKNOWN): name(n), - action(a), hotKey(k) {} -}; - -class MenuItems -{ - public: - MenuItems(): charLength(0) {} - bool Inside(uint32 x, uint32 y) - { return (x >= (uint32)extents.x && x < (uint32)(extents.x + extents.w) - && y >= (uint32)extents.y && y < (uint32)(extents.y + extents.h) ? true : false); } - - string title; - vector item; - uint32 charLength; - SDL_Rect extents; -}; - -class Menu: public Element -{ - public: -// 1CFF -> 0 001 11 00 111 1 1111 -// 421F -> 0 100 00 10 000 1 1111 - Menu(uint32 x = 0, uint32 y = 0, uint32 w = 0, uint32 h = FONT_HEIGHT, -/* uint16 fgc = 0x1CFF, uint16 bgc = 0x000F, uint16 fgch = 0x421F, - uint16 bgch = 0x1CFF): Element(x, y, w, h), activated(false), clicked(false),*/ -/* uint32 fgc = 0xFF3F3F00, uint32 bgc = 0x7F000000, uint32 fgch = 0xFF878700, - uint32 bgch = 0xFF3F3F00): Element(x, y, w, h), activated(false), clicked(false),*/ -/* uint32 fgc = 0xFFFF3F3F, uint32 bgc = 0xFF7F0000, uint32 fgch = 0xFFFF8787, - uint32 bgch = 0xFFFF3F3F): Element(x, y, w, h), activated(false), clicked(false),*/ - uint32 fgc = 0xFF7F0000, uint32 bgc = 0xFFFF3F3F, uint32 fgch = 0xFFFF3F3F, - uint32 bgch = 0xFFFF8787): Element(x, y, w, h), activated(false), clicked(false), - inside(0), insidePopup(0), fgColor(fgc), bgColor(bgc), fgColorHL(fgch), - bgColorHL(bgch), menuChosen(-1), menuItemChosen(-1) {} - virtual void HandleKey(SDLKey key); - virtual void HandleMouseMove(uint32 x, uint32 y); - virtual void HandleMouseButton(uint32 x, uint32 y, bool mouseDown); - virtual void Draw(uint32 offsetX = 0, uint32 offsetY = 0); - virtual void Notify(Element *) {} - void Add(MenuItems mi); - - protected: - bool activated, clicked; - uint32 inside, insidePopup; -// uint16 fgColor, bgColor, fgColorHL, bgColorHL; - uint32 fgColor, bgColor, fgColorHL, bgColorHL; - int menuChosen, menuItemChosen; - - private: - vector itemList; -}; - -void Menu::HandleKey(SDLKey key) -{ - for(uint32 i=0; i= xpos && x < xpos + width) - { - inside = i + 1; - menuChosen = i; - break; - } - - xpos += width; - } - } - - if (!Inside(x, y) && !clicked) - { - menuChosen = -1; - } - - if (itemList[menuChosen].Inside(x, y) && clicked) - { - insidePopup = ((y - itemList[menuChosen].extents.y) / FONT_HEIGHT) + 1; - menuItemChosen = insidePopup - 1; - } -} - -void Menu::HandleMouseButton(uint32 x, uint32 y, bool mouseDown) -{ - if (!clicked) - { - if (mouseDown) - { - if (inside) - clicked = true; - else - menuChosen = -1; // clicked is already false...! - } - } - else // clicked == true - { - if (insidePopup && !mouseDown) // I.e., mouse-button-up - { - activated = true; - if (itemList[menuChosen].item[menuItemChosen].action != NULL) - { -// itemList[menuChosen].item[menuItemChosen].action(); - SDL_Event event; - event.type = SDL_USEREVENT; - event.user.code = MENU_ITEM_CHOSEN; - event.user.data1 = (void *)itemList[menuChosen].item[menuItemChosen].action; - SDL_PushEvent(&event); - - clicked = false, menuChosen = menuItemChosen = -1; - -/* SDL_Event event; - while (SDL_PollEvent(&event)); // Flush the event queue... - event.type = SDL_MOUSEMOTION; - int mx, my; - SDL_GetMouseState(&mx, &my); - event.motion.x = mx, event.motion.y = my; - SDL_PushEvent(&event); // & update mouse position...! -*/ } - } - - if (!inside && !insidePopup && mouseDown) - clicked = false, menuChosen = menuItemChosen = -1; - } -} - -void Menu::Draw(uint32 offsetX/*= 0*/, uint32 offsetY/*= 0*/) -{ - uint32 xpos = extents.x + offsetX; - - for(uint32 i=0; i 0) - DrawStringOpaque(screenBuffer, itemList[menuChosen].extents.x, ypos, - color1, color2, " %-*.*s ", itemList[menuChosen].charLength, - itemList[menuChosen].charLength, itemList[menuChosen].item[i].name.c_str()); - else - DrawStringOpaque(screenBuffer, itemList[menuChosen].extents.x, ypos, - fgColor, bgColor, "%.*s", itemList[menuChosen].charLength + 2, separator); - - ypos += FONT_HEIGHT; - } - } -} - -void Menu::Add(MenuItems mi) -{ - for(uint32 i=0; i mi.charLength) - mi.charLength = mi.item[i].name.length(); - - // Set extents here as well... - mi.extents.x = extents.x + extents.w, mi.extents.y = extents.y + FONT_HEIGHT + 1; - mi.extents.w = (mi.charLength + 2) * FONT_WIDTH, mi.extents.h = mi.item.size() * FONT_HEIGHT; - - itemList.push_back(mi); - extents.w += (mi.title.length() + 2) * FONT_WIDTH; -} - - -//Do we even *need* this? -//Doesn't seem like it... -/*class RootWindow: public Window -{ - public: - RootWindow(Menu * m, Window * w = NULL): menu(m), window(w) {} -//Do we even need to care about this crap? -// { extents.x = extents.y = 0, extents.w = 320, extents.h = 240; } - virtual void HandleKey(SDLKey key) {} - virtual void HandleMouseMove(uint32 x, uint32 y) {} - virtual void HandleMouseButton(uint32 x, uint32 y, bool mouseDown) {} - virtual void Draw(uint32 offsetX = 0, uint32 offsetY = 0) {} - virtual void Notify(Element *) {} - - private: - Menu * menu; - Window * window; - int16 * rootImage[1280 * 240 * 2]; -};//*/ - - -// -// Draw text at the given x/y coordinates. Can invert text as well. -// -void DrawString(uint32 * screen, uint32 x, uint32 y, bool invert, const char * text, ...) -{ - char string[4096]; - va_list arg; - - va_start(arg, text); - vsprintf(string, text, arg); - va_end(arg); - - uint32 pitch = sdlemuGetOverlayWidthInPixels();//GetSDLScreenWidthInPixels(); - uint32 length = strlen(string), address = x + (y * pitch); - - uint32 color1 = 0x0080FF; - uint8 nBlue = (color1 >> 16) & 0xFF, nGreen = (color1 >> 8) & 0xFF, nRed = color1 & 0xFF; - uint8 xorMask = (invert ? 0xFF : 0x00); - - for(uint32 i=0; i> 16) & 0xFF, - eGreen = (existingColor >> 8) & 0xFF, - eRed = existingColor & 0xFF; - - uint8 trans = font2[fontAddr] ^ xorMask; - uint8 invTrans = trans ^ 0xFF; - - uint32 bRed = (eRed * invTrans + nRed * trans) / 255, - bGreen = (eGreen * invTrans + nGreen * trans) / 255, - bBlue = (eBlue * invTrans + nBlue * trans) / 255; - - *(screen + address + xx + (yy * pitch)) = 0xFF000000 | (bBlue << 16) | (bGreen << 8) | bRed; - fontAddr++; - } - } - - address += FONT_WIDTH; - } -} - -// -// Draw text at the given x/y coordinates, using FG/BG colors. -// -void DrawStringOpaque(uint32 * screen, uint32 x, uint32 y, uint32 color1, uint32 color2, const char * text, ...) -{ - char string[4096]; - va_list arg; - - va_start(arg, text); - vsprintf(string, text, arg); - va_end(arg); - - uint32 pitch = sdlemuGetOverlayWidthInPixels(); - uint32 length = strlen(string), address = x + (y * pitch); - - uint8 eBlue = (color2 >> 16) & 0xFF, eGreen = (color2 >> 8) & 0xFF, eRed = color2 & 0xFF, - nBlue = (color1 >> 16) & 0xFF, nGreen = (color1 >> 8) & 0xFF, nRed = color1 & 0xFF; - - for(uint32 i=0; i> 16) & 0xFF, - eGreen = (existingColor >> 8) & 0xFF, - eRed = existingColor & 0xFF, -//This could be done ahead of time, instead of on each pixel... - nBlue = (color >> 16) & 0xFF, - nGreen = (color >> 8) & 0xFF, - nRed = color & 0xFF; - -//This could be sped up by using a table of 5 + 5 + 5 bits (32 levels transparency -> 32768 entries) -//Here we've modified it to have 33 levels of transparency (could have any # we want!) -//because dividing by 32 is faster than dividing by 31...! - uint8 invTrans = 32 - trans; - - uint32 bRed = (eRed * trans + nRed * invTrans) / 32; - uint32 bGreen = (eGreen * trans + nGreen * invTrans) / 32; - uint32 bBlue = (eBlue * trans + nBlue * invTrans) / 32; - - *(screen + address + xx + (yy * pitch)) = 0xFF000000 | (bBlue << 16) | (bGreen << 8) | bRed; - } - - fontAddr++; - } - } - - address += 8; - } -} - -// -// Draw text at the given x/y coordinates, using FG color and overlay alpha blending. -// -void DrawString2(uint32 * screen, uint32 x, uint32 y, uint32 color, uint8 transparency, const char * text, ...) -{ - char string[4096]; - va_list arg; - - va_start(arg, text); - vsprintf(string, text, arg); - va_end(arg); - - uint32 pitch = sdlemuGetOverlayWidthInPixels(); - uint32 length = strlen(string), address = x + (y * pitch); - - color &= 0x00FFFFFF; // Just in case alpha was passed in... - - for(uint32 i=0; i> 8) & 0xFF, - eBlue = (existingColor >> 16) & 0xFF, - - nRed = color & 0xFF, - nGreen = (color >> 8) & 0xFF, - nBlue = (color >> 16) & 0xFF; - - uint8 invTrans = 255 - trans; - uint32 bRed = (eRed * trans + nRed * invTrans) / 255; - uint32 bGreen = (eGreen * trans + nGreen * invTrans) / 255; - uint32 bBlue = (eBlue * trans + nBlue * invTrans) / 255; - - uint32 blendedColor = 0xFF000000 | bRed | (bGreen << 8) | (bBlue << 16); - - *(screen + address + xx + (yy * pitch)) = blendedColor; - - alpha++; - } - - bitmap++; - } - } -}*/ -void DrawTransparentBitmapDeprecated(uint32 * screen, uint32 x, uint32 y, uint32 * bitmap) -{ - uint32 width = bitmap[0], height = bitmap[1]; - bitmap += 2; - - uint32 pitch = sdlemuGetOverlayWidthInPixels();//GetSDLScreenWidthInPixels(); - uint32 address = x + (y * pitch); - - for(uint32 yy=0; yy> 24 != 0x00) // Pixel needs blending - { - uint8 trans = color >> 24; - uint8 invTrans = trans ^ 0xFF;//255 - trans; - - uint8 eRed = existingColor & 0xFF, - eGreen = (existingColor >> 8) & 0xFF, - eBlue = (existingColor >> 16) & 0xFF, - - nRed = color & 0xFF, - nGreen = (color >> 8) & 0xFF, - nBlue = (color >> 16) & 0xFF; - - uint32 bRed = (eRed * invTrans + nRed * trans) / 255; - uint32 bGreen = (eGreen * invTrans + nGreen * trans) / 255; - uint32 bBlue = (eBlue * invTrans + nBlue * trans) / 255; - - blendedColor = 0xFF000000 | bRed | (bGreen << 8) | (bBlue << 16); - } - - *(screen + address + xx + (yy * pitch)) = blendedColor; - bitmap++; - } - } -} - -void DrawTransparentBitmap(uint32 * screen, uint32 x, uint32 y, const void * bitmap) -{ - uint32 pitch = sdlemuGetOverlayWidthInPixels(); - uint32 address = x + (y * pitch); - uint32 count = 0; - - for(uint32 yy=0; yy<((Bitmap *)bitmap)->height; yy++) - { - for(uint32 xx=0; xx<((Bitmap *)bitmap)->width; xx++) - { - uint32 color = ((uint32 *)((Bitmap *)bitmap)->pixelData)[count]; - uint32 blendedColor = color; - uint32 existingColor = *(screen + address + xx + (yy * pitch)); - - if (existingColor >> 24 != 0x00) // Pixel needs blending - { - uint8 trans = color >> 24; - uint8 invTrans = trans ^ 0xFF; - - uint8 eRed = existingColor & 0xFF, - eGreen = (existingColor >> 8) & 0xFF, - eBlue = (existingColor >> 16) & 0xFF, - - nRed = color & 0xFF, - nGreen = (color >> 8) & 0xFF, - nBlue = (color >> 16) & 0xFF; - - uint32 bRed = (eRed * invTrans + nRed * trans) / 255; - uint32 bGreen = (eGreen * invTrans + nGreen * trans) / 255; - uint32 bBlue = (eBlue * invTrans + nBlue * trans) / 255; - -// Instead of $FF, should use the alpha from the destination pixel as the final alpha value... - blendedColor = 0xFF000000 | bRed | (bGreen << 8) | (bBlue << 16); - } - - *(screen + address + xx + (yy * pitch)) = blendedColor; - count++; - } - } -} - -// -// Draw a bitmap without using blending -// -void DrawBitmap(uint32 * screen, uint32 x, uint32 y, const void * bitmap) -{ - uint32 pitch = sdlemuGetOverlayWidthInPixels(); - uint32 address = x + (y * pitch); - uint32 count = 0; - - for(uint32 yy=0; yy<((Bitmap *)bitmap)->height; yy++) - { - for(uint32 xx=0; xx<((Bitmap *)bitmap)->width; xx++) - { - *(screen + address + xx + (yy * pitch)) = ((uint32 *)((Bitmap *)bitmap)->pixelData)[count]; - count++; - } - } -} - -// -// Fill a portion of the screen with the passed in color -// -void FillScreenRectangle(uint32 * screen, uint32 x, uint32 y, uint32 w, uint32 h, uint32 color) -//void ClearScreenRectangle(uint32 * screen, uint32 x, uint32 y, uint32 w, uint32 h) -{ - uint32 pitch = sdlemuGetOverlayWidthInPixels(); - uint32 address = x + (y * pitch); - - for(uint32 yy=0; yyAddElement(new Text(16, 8+15*FONT_HEIGHT, "Curt Vendel for various Jaguar goodies")); window->AddElement(new Text(16, 8+16*FONT_HEIGHT, "The guys over at Atari Age ;-)")); // window->AddElement(new Image(8, 8, &vj_title_small)); - window->AddElement(new Image(width - (vj_title_small.width + 8), 8, &vj_title_small)); +// window->AddElement(new Image(width - (vj_title_small.width + 8), 8, &vj_title_small)); + window->AddElement(new Image(width - (((Bitmap *)vj_title_small)->width + 8), 8, &vj_title_small)); return window; } diff --git a/src/gui/guielements.h b/src/gui/guielements.h index 4ea89a3..ea4100e 100644 --- a/src/gui/guielements.h +++ b/src/gui/guielements.h @@ -9,10 +9,11 @@ #include "types.h" -#ifdef __cplusplus -extern "C" { -#endif +//#ifdef __cplusplus +//extern "C" { +//#endif +#if 0 // Okay, this is ugly but works and I can't think of any better way to handle this. So what // we do when we pass the GIMP bitmaps into a function is pass them as a (void *) and then // cast them as type (Bitmap *) in order to use them. Yes, it's ugly. Come up with something @@ -24,6 +25,7 @@ struct Bitmap { unsigned int bytesPerPixel; // 3:RGB, 4:RGBA unsigned char pixelData[]; }; +#endif //NOTE: 32-bit pixels are in the format of ABGR... // This may not be endian safe... Mac users? @@ -90,14 +92,21 @@ uint32 downArrowBox[] = { }; /* GIMP RGBA C-Source image dump (unlit button (16x16).png.c) */ - -static const struct { +#if 0 +const struct { unsigned int width; unsigned int height; - unsigned int bytes_per_pixel; /* 3:RGB, 4:RGBA */ + unsigned int bytes_per_pixel; /* 3:RGB, 4:RGBA */ unsigned char pixel_data[16 * 16 * 4 + 1]; -} pbUp = { - 16, 16, 4, +} +#endif +#warning Nonportable--!!! FIX !!! +uint8 pbUp[] = { +// 16, 16, 4, +//nonportable--!!! FIX !!! + "\01\0\0\0" + "\01\0\0\0" + "\4\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\26\26\26\40`__\203\205rr\305\216mm\344\205" "cc\345kWW\306@??\202\16\16\16\37\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\2\2\2\4nll\205\277\217\217\372\251LL\377\23588\377\23155\377\227" @@ -131,7 +140,7 @@ static const struct { "9\377\231,,\377\231**\377\233**\377\236++\377\23388\377\207VV\365766w\1\1" "\1\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\12\12\12\30""777w]M" "M\272rSS\330sSS\330]MM\270777w\12\12\12\30\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0", + "\0" }; uint32 pushButtonUp[] = { @@ -148,25 +157,31 @@ uint32 pushButtonUp[] = { }; uint8 pbuAlpha[] = { - 0xFF, 0xE4, 0xA0, 0x99, 0xA4, 0xBE, 0xF0, 0xFF, - 0xE3, 0x85, 0x00, 0x00, 0x00, 0x00, 0xAF, 0xF0, - 0x9F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, - 0x98, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xAD, - 0xA3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xAC, - 0xBD, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBF, - 0xF1, 0xAD, 0x00, 0x00, 0x00, 0x00, 0xAC, 0xF1, + 0xFF, 0xE4, 0xA0, 0x99, 0xA4, 0xBE, 0xF0, 0xFF, + 0xE3, 0x85, 0x00, 0x00, 0x00, 0x00, 0xAF, 0xF0, + 0x9F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, + 0x98, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xAD, + 0xA3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xAC, + 0xBD, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBF, + 0xF1, 0xAD, 0x00, 0x00, 0x00, 0x00, 0xAC, 0xF1, 0xFF, 0xF2, 0xC0, 0xAD, 0xAD, 0xC0, 0xF2, 0xFF }; /* GIMP RGBA C-Source image dump (Lit Button (16x16).png.c) */ - -static const struct { +#if 0 +const struct { unsigned int width; unsigned int height; - unsigned int bytes_per_pixel; /* 3:RGB, 4:RGBA */ + unsigned int bytes_per_pixel; /* 3:RGB, 4:RGBA */ unsigned char pixel_data[16 * 16 * 4 + 1]; -} pbDown = { - 16, 16, 4, +} +#endif +uint8 pbDown[] = { +// 16, 16, 4, +//nonportable--!!! FIX !!! + "\01\0\0\0" + "\01\0\0\0" + "\4\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\261\261\261\36\276\276\276\200\272\272\272" "\302\255\255\255\343\236\236\236\343\214\214\214\302~~~\177uuu\35\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\223\223\223\3\332\332\332\200\353" @@ -218,13 +233,13 @@ uint32 pushButtonDown[] = { }; uint8 pbdAlpha[] = { - 0xFF, 0xE4, 0x72, 0x68, 0x7E, 0xA7, 0xF0, 0xFF, - 0xE4, 0x3E, 0x00, 0x00, 0x00, 0x00, 0x93, 0xF0, - 0x71, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB2, - 0x67, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9A, - 0x7D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9A, - 0xA6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB1, - 0xEF, 0x91, 0x00, 0x00, 0x00, 0x00, 0x96, 0xEF, + 0xFF, 0xE4, 0x72, 0x68, 0x7E, 0xA7, 0xF0, 0xFF, + 0xE4, 0x3E, 0x00, 0x00, 0x00, 0x00, 0x93, 0xF0, + 0x71, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB2, + 0x67, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9A, + 0x7D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9A, + 0xA6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB1, + 0xEF, 0x91, 0x00, 0x00, 0x00, 0x00, 0x96, 0xEF, 0xFF, 0xEF, 0xAE, 0x98, 0x97, 0xAF, 0xEF, 0xFF }; @@ -277,67 +292,67 @@ uint32 slideSwitchDown[] = { uint32 closeBox[] = { 15, 15, - 0x00000000, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0x00000000, - 0xFF3838ED, 0xFF5858E7, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF5858E7, 0xFF3838ED, - 0xFF3838ED, 0xFF6B6BFB, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF6B6BFB, 0xFF3838ED, - 0xFF3838ED, 0xFF6B6BFB, 0xFF000000, 0xFF3838ED, 0xFF3838ED, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF3838ED, 0xFF3838ED, 0xFF000000, 0xFF6B6BFB, 0xFF3838ED, - 0xFF3838ED, 0xFF6B6BFB, 0xFF000000, 0xFF3838ED, 0xFF6B6BFB, 0xFF3838ED, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF3838ED, 0xFF6B6BFB, 0xFF3838ED, 0xFF000000, 0xFF6B6BFB, 0xFF3838ED, - 0xFF3838ED, 0xFF6B6BFB, 0xFF000000, 0xFF000000, 0xFF3838ED, 0xFF6B6BFB, 0xFF3838ED, 0xFF000000, 0xFF3838ED, 0xFF6B6BFB, 0xFF3838ED, 0xFF000000, 0xFF000000, 0xFF6B6BFB, 0xFF3838ED, - 0xFF3838ED, 0xFF6B6BFB, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF3838ED, 0xFF6B6BFB, 0xFF3838ED, 0xFF6B6BFB, 0xFF3838ED, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF6B6BFB, 0xFF3838ED, - 0xFF3838ED, 0xFF6B6BFB, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF3838ED, 0xFF6B6BFB, 0xFF3838ED, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF6B6BFB, 0xFF3838ED, - 0xFF3838ED, 0xFF6B6BFB, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF3838ED, 0xFF6B6BFB, 0xFF3838ED, 0xFF6B6BFB, 0xFF3838ED, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF6B6BFB, 0xFF3838ED, - 0xFF3838ED, 0xFF6B6BFB, 0xFF000000, 0xFF000000, 0xFF3838ED, 0xFF6B6BFB, 0xFF3838ED, 0xFF000000, 0xFF3838ED, 0xFF6B6BFB, 0xFF3838ED, 0xFF000000, 0xFF000000, 0xFF6B6BFB, 0xFF3838ED, - 0xFF3838ED, 0xFF6B6BFB, 0xFF000000, 0xFF3838ED, 0xFF6B6BFB, 0xFF3838ED, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF3838ED, 0xFF6B6BFB, 0xFF3838ED, 0xFF000000, 0xFF6B6BFB, 0xFF3838ED, - 0xFF3838ED, 0xFF6B6BFB, 0xFF000000, 0xFF3838ED, 0xFF3838ED, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF3838ED, 0xFF3838ED, 0xFF000000, 0xFF6B6BFB, 0xFF3838ED, - 0xFF3838ED, 0xFF6B6BFB, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF6B6BFB, 0xFF3838ED, - 0xFF3838ED, 0xFF5858E7, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF5858E7, 0xFF3838ED, + 0x00000000, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0x00000000, + 0xFF3838ED, 0xFF5858E7, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF5858E7, 0xFF3838ED, + 0xFF3838ED, 0xFF6B6BFB, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF6B6BFB, 0xFF3838ED, + 0xFF3838ED, 0xFF6B6BFB, 0xFF000000, 0xFF3838ED, 0xFF3838ED, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF3838ED, 0xFF3838ED, 0xFF000000, 0xFF6B6BFB, 0xFF3838ED, + 0xFF3838ED, 0xFF6B6BFB, 0xFF000000, 0xFF3838ED, 0xFF6B6BFB, 0xFF3838ED, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF3838ED, 0xFF6B6BFB, 0xFF3838ED, 0xFF000000, 0xFF6B6BFB, 0xFF3838ED, + 0xFF3838ED, 0xFF6B6BFB, 0xFF000000, 0xFF000000, 0xFF3838ED, 0xFF6B6BFB, 0xFF3838ED, 0xFF000000, 0xFF3838ED, 0xFF6B6BFB, 0xFF3838ED, 0xFF000000, 0xFF000000, 0xFF6B6BFB, 0xFF3838ED, + 0xFF3838ED, 0xFF6B6BFB, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF3838ED, 0xFF6B6BFB, 0xFF3838ED, 0xFF6B6BFB, 0xFF3838ED, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF6B6BFB, 0xFF3838ED, + 0xFF3838ED, 0xFF6B6BFB, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF3838ED, 0xFF6B6BFB, 0xFF3838ED, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF6B6BFB, 0xFF3838ED, + 0xFF3838ED, 0xFF6B6BFB, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF3838ED, 0xFF6B6BFB, 0xFF3838ED, 0xFF6B6BFB, 0xFF3838ED, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF6B6BFB, 0xFF3838ED, + 0xFF3838ED, 0xFF6B6BFB, 0xFF000000, 0xFF000000, 0xFF3838ED, 0xFF6B6BFB, 0xFF3838ED, 0xFF000000, 0xFF3838ED, 0xFF6B6BFB, 0xFF3838ED, 0xFF000000, 0xFF000000, 0xFF6B6BFB, 0xFF3838ED, + 0xFF3838ED, 0xFF6B6BFB, 0xFF000000, 0xFF3838ED, 0xFF6B6BFB, 0xFF3838ED, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF3838ED, 0xFF6B6BFB, 0xFF3838ED, 0xFF000000, 0xFF6B6BFB, 0xFF3838ED, + 0xFF3838ED, 0xFF6B6BFB, 0xFF000000, 0xFF3838ED, 0xFF3838ED, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF3838ED, 0xFF3838ED, 0xFF000000, 0xFF6B6BFB, 0xFF3838ED, + 0xFF3838ED, 0xFF6B6BFB, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF6B6BFB, 0xFF3838ED, + 0xFF3838ED, 0xFF5858E7, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF5858E7, 0xFF3838ED, 0x00000000, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0x00000000 }; uint32 closeBoxHover[] = { 15, 15, - 0x00000000, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0x00000000, - 0xFF3838ED, 0xFF5858E7, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF5858E7, 0xFF3838ED, - 0xFF3838ED, 0xFF6B6BFB, 0xFF20A2FF, 0xFF20A2FF, 0xFF20A2FF, 0xFF20A2FF, 0xFF20A2FF, 0xFF20A2FF, 0xFF20A2FF, 0xFF20A2FF, 0xFF20A2FF, 0xFF20A2FF, 0xFF20A2FF, 0xFF6B6BFB, 0xFF3838ED, - 0xFF3838ED, 0xFF6B6BFB, 0xFF20A2FF, 0xFF3838ED, 0xFF3838ED, 0xFF40AFFF, 0xFF40AFFF, 0xFF40AFFF, 0xFF40AFFF, 0xFF40AFFF, 0xFF3838ED, 0xFF3838ED, 0xFF20A2FF, 0xFF6B6BFB, 0xFF3838ED, - 0xFF3838ED, 0xFF6B6BFB, 0xFF20A2FF, 0xFF3838ED, 0xFF6B6BFB, 0xFF3838ED, 0xFF52B7FF, 0xFF52B7FF, 0xFF52B7FF, 0xFF3838ED, 0xFF6B6BFB, 0xFF3838ED, 0xFF20A2FF, 0xFF6B6BFB, 0xFF3838ED, - 0xFF3838ED, 0xFF6B6BFB, 0xFF20A2FF, 0xFF40AFFF, 0xFF3838ED, 0xFF6B6BFB, 0xFF3838ED, 0xFF63BEFF, 0xFF3838ED, 0xFF6B6BFB, 0xFF3838ED, 0xFF40AFFF, 0xFF20A2FF, 0xFF6B6BFB, 0xFF3838ED, - 0xFF3838ED, 0xFF6B6BFB, 0xFF20A2FF, 0xFF40AFFF, 0xFF52B7FF, 0xFF3838ED, 0xFF6B6BFB, 0xFF3838ED, 0xFF6B6BFB, 0xFF3838ED, 0xFF52B7FF, 0xFF40AFFF, 0xFF20A2FF, 0xFF6B6BFB, 0xFF3838ED, - 0xFF3838ED, 0xFF6B6BFB, 0xFF20A2FF, 0xFF40AFFF, 0xFF52B7FF, 0xFF63BEFF, 0xFF3838ED, 0xFF6B6BFB, 0xFF3838ED, 0xFF63BEFF, 0xFF52B7FF, 0xFF40AFFF, 0xFF20A2FF, 0xFF6B6BFB, 0xFF3838ED, - 0xFF3838ED, 0xFF6B6BFB, 0xFF20A2FF, 0xFF40AFFF, 0xFF52B7FF, 0xFF3838ED, 0xFF6B6BFB, 0xFF3838ED, 0xFF6B6BFB, 0xFF3838ED, 0xFF52B7FF, 0xFF40AFFF, 0xFF20A2FF, 0xFF6B6BFB, 0xFF3838ED, - 0xFF3838ED, 0xFF6B6BFB, 0xFF20A2FF, 0xFF40AFFF, 0xFF3838ED, 0xFF6B6BFB, 0xFF3838ED, 0xFF63BEFF, 0xFF3838ED, 0xFF6B6BFB, 0xFF3838ED, 0xFF40AFFF, 0xFF20A2FF, 0xFF6B6BFB, 0xFF3838ED, - 0xFF3838ED, 0xFF6B6BFB, 0xFF20A2FF, 0xFF3838ED, 0xFF6B6BFB, 0xFF3838ED, 0xFF52B7FF, 0xFF52B7FF, 0xFF52B7FF, 0xFF3838ED, 0xFF6B6BFB, 0xFF3838ED, 0xFF20A2FF, 0xFF6B6BFB, 0xFF3838ED, - 0xFF3838ED, 0xFF6B6BFB, 0xFF20A2FF, 0xFF3838ED, 0xFF3838ED, 0xFF40AFFF, 0xFF40AFFF, 0xFF40AFFF, 0xFF40AFFF, 0xFF40AFFF, 0xFF3838ED, 0xFF3838ED, 0xFF20A2FF, 0xFF6B6BFB, 0xFF3838ED, - 0xFF3838ED, 0xFF6B6BFB, 0xFF20A2FF, 0xFF20A2FF, 0xFF20A2FF, 0xFF20A2FF, 0xFF20A2FF, 0xFF20A2FF, 0xFF20A2FF, 0xFF20A2FF, 0xFF20A2FF, 0xFF20A2FF, 0xFF20A2FF, 0xFF6B6BFB, 0xFF3838ED, - 0xFF3838ED, 0xFF5858E7, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF5858E7, 0xFF3838ED, + 0x00000000, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0x00000000, + 0xFF3838ED, 0xFF5858E7, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF5858E7, 0xFF3838ED, + 0xFF3838ED, 0xFF6B6BFB, 0xFF20A2FF, 0xFF20A2FF, 0xFF20A2FF, 0xFF20A2FF, 0xFF20A2FF, 0xFF20A2FF, 0xFF20A2FF, 0xFF20A2FF, 0xFF20A2FF, 0xFF20A2FF, 0xFF20A2FF, 0xFF6B6BFB, 0xFF3838ED, + 0xFF3838ED, 0xFF6B6BFB, 0xFF20A2FF, 0xFF3838ED, 0xFF3838ED, 0xFF40AFFF, 0xFF40AFFF, 0xFF40AFFF, 0xFF40AFFF, 0xFF40AFFF, 0xFF3838ED, 0xFF3838ED, 0xFF20A2FF, 0xFF6B6BFB, 0xFF3838ED, + 0xFF3838ED, 0xFF6B6BFB, 0xFF20A2FF, 0xFF3838ED, 0xFF6B6BFB, 0xFF3838ED, 0xFF52B7FF, 0xFF52B7FF, 0xFF52B7FF, 0xFF3838ED, 0xFF6B6BFB, 0xFF3838ED, 0xFF20A2FF, 0xFF6B6BFB, 0xFF3838ED, + 0xFF3838ED, 0xFF6B6BFB, 0xFF20A2FF, 0xFF40AFFF, 0xFF3838ED, 0xFF6B6BFB, 0xFF3838ED, 0xFF63BEFF, 0xFF3838ED, 0xFF6B6BFB, 0xFF3838ED, 0xFF40AFFF, 0xFF20A2FF, 0xFF6B6BFB, 0xFF3838ED, + 0xFF3838ED, 0xFF6B6BFB, 0xFF20A2FF, 0xFF40AFFF, 0xFF52B7FF, 0xFF3838ED, 0xFF6B6BFB, 0xFF3838ED, 0xFF6B6BFB, 0xFF3838ED, 0xFF52B7FF, 0xFF40AFFF, 0xFF20A2FF, 0xFF6B6BFB, 0xFF3838ED, + 0xFF3838ED, 0xFF6B6BFB, 0xFF20A2FF, 0xFF40AFFF, 0xFF52B7FF, 0xFF63BEFF, 0xFF3838ED, 0xFF6B6BFB, 0xFF3838ED, 0xFF63BEFF, 0xFF52B7FF, 0xFF40AFFF, 0xFF20A2FF, 0xFF6B6BFB, 0xFF3838ED, + 0xFF3838ED, 0xFF6B6BFB, 0xFF20A2FF, 0xFF40AFFF, 0xFF52B7FF, 0xFF3838ED, 0xFF6B6BFB, 0xFF3838ED, 0xFF6B6BFB, 0xFF3838ED, 0xFF52B7FF, 0xFF40AFFF, 0xFF20A2FF, 0xFF6B6BFB, 0xFF3838ED, + 0xFF3838ED, 0xFF6B6BFB, 0xFF20A2FF, 0xFF40AFFF, 0xFF3838ED, 0xFF6B6BFB, 0xFF3838ED, 0xFF63BEFF, 0xFF3838ED, 0xFF6B6BFB, 0xFF3838ED, 0xFF40AFFF, 0xFF20A2FF, 0xFF6B6BFB, 0xFF3838ED, + 0xFF3838ED, 0xFF6B6BFB, 0xFF20A2FF, 0xFF3838ED, 0xFF6B6BFB, 0xFF3838ED, 0xFF52B7FF, 0xFF52B7FF, 0xFF52B7FF, 0xFF3838ED, 0xFF6B6BFB, 0xFF3838ED, 0xFF20A2FF, 0xFF6B6BFB, 0xFF3838ED, + 0xFF3838ED, 0xFF6B6BFB, 0xFF20A2FF, 0xFF3838ED, 0xFF3838ED, 0xFF40AFFF, 0xFF40AFFF, 0xFF40AFFF, 0xFF40AFFF, 0xFF40AFFF, 0xFF3838ED, 0xFF3838ED, 0xFF20A2FF, 0xFF6B6BFB, 0xFF3838ED, + 0xFF3838ED, 0xFF6B6BFB, 0xFF20A2FF, 0xFF20A2FF, 0xFF20A2FF, 0xFF20A2FF, 0xFF20A2FF, 0xFF20A2FF, 0xFF20A2FF, 0xFF20A2FF, 0xFF20A2FF, 0xFF20A2FF, 0xFF20A2FF, 0xFF6B6BFB, 0xFF3838ED, + 0xFF3838ED, 0xFF5858E7, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF5858E7, 0xFF3838ED, 0x00000000, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0x00000000 }; uint32 closeBoxDown[] = { 15, 15, - 0x00000000, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0x00000000, - 0xFF3838ED, 0xFF1D1DE2, 0xFF2B2BC0, 0xFF2B2BC0, 0xFF2B2BC0, 0xFF2B2BC0, 0xFF2B2BC0, 0xFF2B2BC0, 0xFF2B2BC0, 0xFF2B2BC0, 0xFF2B2BC0, 0xFF2B2BC0, 0xFF2B2BC0, 0xFF1D1DE2, 0xFF3838ED, - 0xFF3838ED, 0xFF2B2BC0, 0xFF1F9DF7, 0xFF1F9DF7, 0xFF1F9DF7, 0xFF1F9DF7, 0xFF1F9DF7, 0xFF1F9DF7, 0xFF1F9DF7, 0xFF1F9DF7, 0xFF1F9DF7, 0xFF1F9DF7, 0xFF1F9DF7, 0xFF2B2BC0, 0xFF3838ED, - 0xFF3838ED, 0xFF2B2BC0, 0xFF1F9DF7, 0xFF3838ED, 0xFF3838ED, 0xFF0786E2, 0xFF0786E2, 0xFF0786E2, 0xFF0786E2, 0xFF0786E2, 0xFF3838ED, 0xFF3838ED, 0xFF1F9DF7, 0xFF2B2BC0, 0xFF3838ED, - 0xFF3838ED, 0xFF2B2BC0, 0xFF1F9DF7, 0xFF3838ED, 0xFF2B2BC0, 0xFF3838ED, 0xFF0077CC, 0xFF0077CC, 0xFF0077CC, 0xFF3838ED, 0xFF2B2BC0, 0xFF3838ED, 0xFF1F9DF7, 0xFF2B2BC0, 0xFF3838ED, - 0xFF3838ED, 0xFF2B2BC0, 0xFF1F9DF7, 0xFF0786E2, 0xFF3838ED, 0xFF2B2BC0, 0xFF3838ED, 0xFF006EBD, 0xFF3838ED, 0xFF2B2BC0, 0xFF3838ED, 0xFF0786E2, 0xFF1F9DF7, 0xFF2B2BC0, 0xFF3838ED, - 0xFF3838ED, 0xFF2B2BC0, 0xFF1F9DF7, 0xFF0786E2, 0xFF0077CC, 0xFF3838ED, 0xFF2B2BC0, 0xFF3838ED, 0xFF2B2BC0, 0xFF3838ED, 0xFF0077CC, 0xFF0786E2, 0xFF1F9DF7, 0xFF2B2BC0, 0xFF3838ED, - 0xFF3838ED, 0xFF2B2BC0, 0xFF1F9DF7, 0xFF0786E2, 0xFF0077CC, 0xFF006EBD, 0xFF3838ED, 0xFF2B2BC0, 0xFF3838ED, 0xFF006EBD, 0xFF0077CC, 0xFF0786E2, 0xFF1F9DF7, 0xFF2B2BC0, 0xFF3838ED, - 0xFF3838ED, 0xFF2B2BC0, 0xFF1F9DF7, 0xFF0786E2, 0xFF0077CC, 0xFF3838ED, 0xFF2B2BC0, 0xFF3838ED, 0xFF2B2BC0, 0xFF3838ED, 0xFF0077CC, 0xFF0786E2, 0xFF1F9DF7, 0xFF2B2BC0, 0xFF3838ED, - 0xFF3838ED, 0xFF2B2BC0, 0xFF1F9DF7, 0xFF0786E2, 0xFF3838ED, 0xFF2B2BC0, 0xFF3838ED, 0xFF006EBD, 0xFF3838ED, 0xFF2B2BC0, 0xFF3838ED, 0xFF0786E2, 0xFF1F9DF7, 0xFF2B2BC0, 0xFF3838ED, - 0xFF3838ED, 0xFF2B2BC0, 0xFF1F9DF7, 0xFF3838ED, 0xFF2B2BC0, 0xFF3838ED, 0xFF0077CC, 0xFF0077CC, 0xFF0077CC, 0xFF3838ED, 0xFF2B2BC0, 0xFF3838ED, 0xFF1F9DF7, 0xFF2B2BC0, 0xFF3838ED, - 0xFF3838ED, 0xFF2B2BC0, 0xFF1F9DF7, 0xFF3838ED, 0xFF3838ED, 0xFF0786E2, 0xFF0786E2, 0xFF0786E2, 0xFF0786E2, 0xFF0786E2, 0xFF3838ED, 0xFF3838ED, 0xFF1F9DF7, 0xFF2B2BC0, 0xFF3838ED, - 0xFF3838ED, 0xFF2B2BC0, 0xFF1F9DF7, 0xFF1F9DF7, 0xFF1F9DF7, 0xFF1F9DF7, 0xFF1F9DF7, 0xFF1F9DF7, 0xFF1F9DF7, 0xFF1F9DF7, 0xFF1F9DF7, 0xFF1F9DF7, 0xFF1F9DF7, 0xFF2B2BC0, 0xFF3838ED, - 0xFF3838ED, 0xFF1D1DE2, 0xFF2B2BC0, 0xFF2B2BC0, 0xFF2B2BC0, 0xFF2B2BC0, 0xFF2B2BC0, 0xFF2B2BC0, 0xFF2B2BC0, 0xFF2B2BC0, 0xFF2B2BC0, 0xFF2B2BC0, 0xFF2B2BC0, 0xFF1D1DE2, 0xFF3838ED, + 0x00000000, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0x00000000, + 0xFF3838ED, 0xFF1D1DE2, 0xFF2B2BC0, 0xFF2B2BC0, 0xFF2B2BC0, 0xFF2B2BC0, 0xFF2B2BC0, 0xFF2B2BC0, 0xFF2B2BC0, 0xFF2B2BC0, 0xFF2B2BC0, 0xFF2B2BC0, 0xFF2B2BC0, 0xFF1D1DE2, 0xFF3838ED, + 0xFF3838ED, 0xFF2B2BC0, 0xFF1F9DF7, 0xFF1F9DF7, 0xFF1F9DF7, 0xFF1F9DF7, 0xFF1F9DF7, 0xFF1F9DF7, 0xFF1F9DF7, 0xFF1F9DF7, 0xFF1F9DF7, 0xFF1F9DF7, 0xFF1F9DF7, 0xFF2B2BC0, 0xFF3838ED, + 0xFF3838ED, 0xFF2B2BC0, 0xFF1F9DF7, 0xFF3838ED, 0xFF3838ED, 0xFF0786E2, 0xFF0786E2, 0xFF0786E2, 0xFF0786E2, 0xFF0786E2, 0xFF3838ED, 0xFF3838ED, 0xFF1F9DF7, 0xFF2B2BC0, 0xFF3838ED, + 0xFF3838ED, 0xFF2B2BC0, 0xFF1F9DF7, 0xFF3838ED, 0xFF2B2BC0, 0xFF3838ED, 0xFF0077CC, 0xFF0077CC, 0xFF0077CC, 0xFF3838ED, 0xFF2B2BC0, 0xFF3838ED, 0xFF1F9DF7, 0xFF2B2BC0, 0xFF3838ED, + 0xFF3838ED, 0xFF2B2BC0, 0xFF1F9DF7, 0xFF0786E2, 0xFF3838ED, 0xFF2B2BC0, 0xFF3838ED, 0xFF006EBD, 0xFF3838ED, 0xFF2B2BC0, 0xFF3838ED, 0xFF0786E2, 0xFF1F9DF7, 0xFF2B2BC0, 0xFF3838ED, + 0xFF3838ED, 0xFF2B2BC0, 0xFF1F9DF7, 0xFF0786E2, 0xFF0077CC, 0xFF3838ED, 0xFF2B2BC0, 0xFF3838ED, 0xFF2B2BC0, 0xFF3838ED, 0xFF0077CC, 0xFF0786E2, 0xFF1F9DF7, 0xFF2B2BC0, 0xFF3838ED, + 0xFF3838ED, 0xFF2B2BC0, 0xFF1F9DF7, 0xFF0786E2, 0xFF0077CC, 0xFF006EBD, 0xFF3838ED, 0xFF2B2BC0, 0xFF3838ED, 0xFF006EBD, 0xFF0077CC, 0xFF0786E2, 0xFF1F9DF7, 0xFF2B2BC0, 0xFF3838ED, + 0xFF3838ED, 0xFF2B2BC0, 0xFF1F9DF7, 0xFF0786E2, 0xFF0077CC, 0xFF3838ED, 0xFF2B2BC0, 0xFF3838ED, 0xFF2B2BC0, 0xFF3838ED, 0xFF0077CC, 0xFF0786E2, 0xFF1F9DF7, 0xFF2B2BC0, 0xFF3838ED, + 0xFF3838ED, 0xFF2B2BC0, 0xFF1F9DF7, 0xFF0786E2, 0xFF3838ED, 0xFF2B2BC0, 0xFF3838ED, 0xFF006EBD, 0xFF3838ED, 0xFF2B2BC0, 0xFF3838ED, 0xFF0786E2, 0xFF1F9DF7, 0xFF2B2BC0, 0xFF3838ED, + 0xFF3838ED, 0xFF2B2BC0, 0xFF1F9DF7, 0xFF3838ED, 0xFF2B2BC0, 0xFF3838ED, 0xFF0077CC, 0xFF0077CC, 0xFF0077CC, 0xFF3838ED, 0xFF2B2BC0, 0xFF3838ED, 0xFF1F9DF7, 0xFF2B2BC0, 0xFF3838ED, + 0xFF3838ED, 0xFF2B2BC0, 0xFF1F9DF7, 0xFF3838ED, 0xFF3838ED, 0xFF0786E2, 0xFF0786E2, 0xFF0786E2, 0xFF0786E2, 0xFF0786E2, 0xFF3838ED, 0xFF3838ED, 0xFF1F9DF7, 0xFF2B2BC0, 0xFF3838ED, + 0xFF3838ED, 0xFF2B2BC0, 0xFF1F9DF7, 0xFF1F9DF7, 0xFF1F9DF7, 0xFF1F9DF7, 0xFF1F9DF7, 0xFF1F9DF7, 0xFF1F9DF7, 0xFF1F9DF7, 0xFF1F9DF7, 0xFF1F9DF7, 0xFF1F9DF7, 0xFF2B2BC0, 0xFF3838ED, + 0xFF3838ED, 0xFF1D1DE2, 0xFF2B2BC0, 0xFF2B2BC0, 0xFF2B2BC0, 0xFF2B2BC0, 0xFF2B2BC0, 0xFF2B2BC0, 0xFF2B2BC0, 0xFF2B2BC0, 0xFF2B2BC0, 0xFF2B2BC0, 0xFF2B2BC0, 0xFF1D1DE2, 0xFF3838ED, 0x00000000, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0x00000000 }; -#include "vj_title_small.c" +//#include "vj_title_small.c" -#ifdef __cplusplus -} -#endif +//#ifdef __cplusplus +//} +//#endif #endif // __GUIELEMENTS_H__ diff --git a/src/gui/guimisc.cpp b/src/gui/guimisc.cpp new file mode 100644 index 0000000..dcd0e9c --- /dev/null +++ b/src/gui/guimisc.cpp @@ -0,0 +1,397 @@ +// +// Miscellaneous GUI utility functions +// +// by James L. Hammons +// + +#include "guimisc.h" + +#include +#include "font1.h" +#include "font14pt.h" +#include "guielements.h" // Make this go away... +#include "sdlemu_opengl.h" +#include "vj_title_small.c" +//#include "video.h" + +// +// Case insensitive string compare function +// Taken straight out of Thinking In C++ by Bruce Eckel. Thanks Bruce! +// + +int stringCmpi(const std::string &s1, const std::string &s2) +{ + // Select the first element of each string: + std::string::const_iterator p1 = s1.begin(), p2 = s2.begin(); + + while (p1 != s1.end() && p2 != s2.end()) // Don�t run past the end + { + if (toupper(*p1) != toupper(*p2)) // Compare upper-cased chars + return (toupper(*p1) < toupper(*p2) ? -1 : 1);// Report which was lexically greater + + p1++; + p2++; + } + + // If they match up to the detected eos, say which was longer. Return 0 if the same. + return s2.size() - s1.size(); +} + +// +// Draw text at the given x/y coordinates. Can invert text as well. +// +void DrawString(uint32 * screen, uint32 x, uint32 y, bool invert, const char * text, ...) +{ + char string[4096]; + va_list arg; + + va_start(arg, text); + vsprintf(string, text, arg); + va_end(arg); + + uint32 pitch = sdlemuGetOverlayWidthInPixels();//GetSDLScreenWidthInPixels(); + uint32 length = strlen(string), address = x + (y * pitch); + + uint32 color1 = 0x0080FF; + uint8 nBlue = (color1 >> 16) & 0xFF, nGreen = (color1 >> 8) & 0xFF, nRed = color1 & 0xFF; + uint8 xorMask = (invert ? 0xFF : 0x00); + + for(uint32 i=0; i> 16) & 0xFF, + eGreen = (existingColor >> 8) & 0xFF, + eRed = existingColor & 0xFF; + + uint8 trans = font2[fontAddr] ^ xorMask; + uint8 invTrans = trans ^ 0xFF; + + uint32 bRed = (eRed * invTrans + nRed * trans) / 255, + bGreen = (eGreen * invTrans + nGreen * trans) / 255, + bBlue = (eBlue * invTrans + nBlue * trans) / 255; + + *(screen + address + xx + (yy * pitch)) = 0xFF000000 | (bBlue << 16) | (bGreen << 8) | bRed; + fontAddr++; + } + } + + address += FONT_WIDTH; + } +} + +// +// Draw text at the given x/y coordinates, using FG/BG colors. +// +void DrawStringOpaque(uint32 * screen, uint32 x, uint32 y, uint32 color1, uint32 color2, const char * text, ...) +{ + char string[4096]; + va_list arg; + + va_start(arg, text); + vsprintf(string, text, arg); + va_end(arg); + + uint32 pitch = sdlemuGetOverlayWidthInPixels(); + uint32 length = strlen(string), address = x + (y * pitch); + + uint8 eBlue = (color2 >> 16) & 0xFF, eGreen = (color2 >> 8) & 0xFF, eRed = color2 & 0xFF, + nBlue = (color1 >> 16) & 0xFF, nGreen = (color1 >> 8) & 0xFF, nRed = color1 & 0xFF; + + for(uint32 i=0; i> 16) & 0xFF, + eGreen = (existingColor >> 8) & 0xFF, + eRed = existingColor & 0xFF, +//This could be done ahead of time, instead of on each pixel... + nBlue = (color >> 16) & 0xFF, + nGreen = (color >> 8) & 0xFF, + nRed = color & 0xFF; + +//This could be sped up by using a table of 5 + 5 + 5 bits (32 levels transparency -> 32768 entries) +//Here we've modified it to have 33 levels of transparency (could have any # we want!) +//because dividing by 32 is faster than dividing by 31...! + uint8 invTrans = 32 - trans; + + uint32 bRed = (eRed * trans + nRed * invTrans) / 32; + uint32 bGreen = (eGreen * trans + nGreen * invTrans) / 32; + uint32 bBlue = (eBlue * trans + nBlue * invTrans) / 32; + + *(screen + address + xx + (yy * pitch)) = 0xFF000000 | (bBlue << 16) | (bGreen << 8) | bRed; + } + + fontAddr++; + } + } + + address += 8; + } +} + +// +// Draw text at the given x/y coordinates, using FG color and overlay alpha blending. +// +void DrawString2(uint32 * screen, uint32 x, uint32 y, uint32 color, uint8 transparency, const char * text, ...) +{ + char string[4096]; + va_list arg; + + va_start(arg, text); + vsprintf(string, text, arg); + va_end(arg); + + uint32 pitch = sdlemuGetOverlayWidthInPixels(); + uint32 length = strlen(string), address = x + (y * pitch); + + color &= 0x00FFFFFF; // Just in case alpha was passed in... + + for(uint32 i=0; i> 8) & 0xFF, + eBlue = (existingColor >> 16) & 0xFF, + + nRed = color & 0xFF, + nGreen = (color >> 8) & 0xFF, + nBlue = (color >> 16) & 0xFF; + + uint8 invTrans = 255 - trans; + uint32 bRed = (eRed * trans + nRed * invTrans) / 255; + uint32 bGreen = (eGreen * trans + nGreen * invTrans) / 255; + uint32 bBlue = (eBlue * trans + nBlue * invTrans) / 255; + + uint32 blendedColor = 0xFF000000 | bRed | (bGreen << 8) | (bBlue << 16); + + *(screen + address + xx + (yy * pitch)) = blendedColor; + + alpha++; + } + + bitmap++; + } + } +}*/ +void DrawTransparentBitmapDeprecated(uint32 * screen, uint32 x, uint32 y, uint32 * bitmap) +{ + uint32 width = bitmap[0], height = bitmap[1]; + bitmap += 2; + + uint32 pitch = sdlemuGetOverlayWidthInPixels();//GetSDLScreenWidthInPixels(); + uint32 address = x + (y * pitch); + + for(uint32 yy=0; yy> 24 != 0x00) // Pixel needs blending + { + uint8 trans = color >> 24; + uint8 invTrans = trans ^ 0xFF;//255 - trans; + + uint8 eRed = existingColor & 0xFF, + eGreen = (existingColor >> 8) & 0xFF, + eBlue = (existingColor >> 16) & 0xFF, + + nRed = color & 0xFF, + nGreen = (color >> 8) & 0xFF, + nBlue = (color >> 16) & 0xFF; + + uint32 bRed = (eRed * invTrans + nRed * trans) / 255; + uint32 bGreen = (eGreen * invTrans + nGreen * trans) / 255; + uint32 bBlue = (eBlue * invTrans + nBlue * trans) / 255; + + blendedColor = 0xFF000000 | bRed | (bGreen << 8) | (bBlue << 16); + } + + *(screen + address + xx + (yy * pitch)) = blendedColor; + bitmap++; + } + } +} + +void DrawTransparentBitmap(uint32 * screen, uint32 x, uint32 y, const void * bitmap) +{ + uint32 pitch = sdlemuGetOverlayWidthInPixels(); + uint32 address = x + (y * pitch); + uint32 count = 0; + + for(uint32 yy=0; yy<((Bitmap *)bitmap)->height; yy++) + { + for(uint32 xx=0; xx<((Bitmap *)bitmap)->width; xx++) + { + uint32 color = ((uint32 *)((Bitmap *)bitmap)->pixelData)[count]; + uint32 blendedColor = color; + uint32 existingColor = *(screen + address + xx + (yy * pitch)); + + if (existingColor >> 24 != 0x00) // Pixel needs blending + { + uint8 trans = color >> 24; + uint8 invTrans = trans ^ 0xFF; + + uint8 eRed = existingColor & 0xFF, + eGreen = (existingColor >> 8) & 0xFF, + eBlue = (existingColor >> 16) & 0xFF, + + nRed = color & 0xFF, + nGreen = (color >> 8) & 0xFF, + nBlue = (color >> 16) & 0xFF; + + uint32 bRed = (eRed * invTrans + nRed * trans) / 255; + uint32 bGreen = (eGreen * invTrans + nGreen * trans) / 255; + uint32 bBlue = (eBlue * invTrans + nBlue * trans) / 255; + +// Instead of $FF, should use the alpha from the destination pixel as the final alpha value... + blendedColor = 0xFF000000 | bRed | (bGreen << 8) | (bBlue << 16); + } + + *(screen + address + xx + (yy * pitch)) = blendedColor; + count++; + } + } +} + +// +// Draw a bitmap without using blending +// +void DrawBitmap(uint32 * screen, uint32 x, uint32 y, const void * bitmap) +{ + uint32 pitch = sdlemuGetOverlayWidthInPixels(); + uint32 address = x + (y * pitch); + uint32 count = 0; + + for(uint32 yy=0; yy<((Bitmap *)bitmap)->height; yy++) + { + for(uint32 xx=0; xx<((Bitmap *)bitmap)->width; xx++) + { + *(screen + address + xx + (yy * pitch)) = ((uint32 *)((Bitmap *)bitmap)->pixelData)[count]; + count++; + } + } +} + +// +// Fill a portion of the screen with the passed in color +// +void FillScreenRectangle(uint32 * screen, uint32 x, uint32 y, uint32 w, uint32 h, uint32 color) +//void ClearScreenRectangle(uint32 * screen, uint32 x, uint32 y, uint32 w, uint32 h) +{ + uint32 pitch = sdlemuGetOverlayWidthInPixels(); + uint32 address = x + (y * pitch); + + for(uint32 yy=0; yy +#include "types.h" + +int stringCmpi(const std::string &, const std::string &); +//void DrawTransparentBitmap(uint32 * screen, uint32 x, uint32 y, uint32 * bitmap, uint8 * alpha = NULL); +void DrawTransparentBitmapDeprecated(uint32 * screen, uint32 x, uint32 y, uint32 * bitmap); +void DrawTransparentBitmap(uint32 * screen, uint32 x, uint32 y, const void * bitmap); +void DrawBitmap(uint32 * screen, uint32 x, uint32 y, const void * bitmap); +//Should call this FillScreenRectangle with a number representing the RGBA value to fill. !!! FIX !!! +//void ClearScreenRectangle(uint32 * screen, uint32 x, uint32 y, uint32 w, uint32 h); +void FillScreenRectangle(uint32 * screen, uint32 x, uint32 y, uint32 w, uint32 h, uint32 color); +void DrawStringTrans(uint32 * screen, uint32 x, uint32 y, uint32 color, uint8 opacity, const char * text, ...); +void DrawStringOpaque(uint32 * screen, uint32 x, uint32 y, uint32 color1, uint32 color2, const char * text, ...); +void DrawString(uint32 * screen, uint32 x, uint32 y, bool invert, const char * text, ...); +void DrawString2(uint32 * screen, uint32 x, uint32 y, uint32 color, uint8 transparency, const char * text, ...); + +// Useful enumerations + +enum { WINDOW_CLOSE, MENU_ITEM_CHOSEN }; + +// This is for font2 (crappy--fix!!!) + +#define FONT_WIDTH 8 +#define FONT_HEIGHT 16 + +// And this is for the various closeBox stuff--crappy--fix!!! + +#define CLOSEBOX_WIDTH 15 +#define CLOSEBOX_HEIGHT 15 + +// Okay, this is ugly but works and I can't think of any better way to handle this. So what +// we do when we pass the GIMP bitmaps into a function is pass them as a (void *) and then +// cast them as type (Bitmap *) in order to use them. Yes, it's ugly. Come up with something +// better! + +struct Bitmap { + unsigned int width; + unsigned int height; + unsigned int bytesPerPixel; // 3:RGB, 4:RGBA + unsigned char pixelData[]; +}; + +// GUI bitmaps/fonts (exported) + +extern char font1[]; +extern char font2[]; + +extern uint32 mousePic[]; +extern uint32 upArrowBox[]; +extern uint32 downArrowBox[]; +extern uint32 pushButtonUp[]; +extern uint8 pbuAlpha[]; +extern uint32 pushButtonDown[]; +extern uint8 pbdAlpha[]; +extern uint32 slideSwitchUp[]; +extern uint32 slideSwitchDown[]; +extern uint32 closeBox[]; +extern uint32 closeBoxHover[]; +extern uint32 closeBoxDown[]; + +extern uint8 pbUp[]; +extern uint8 pbDown[]; +extern uint8 vj_title_small[]; + +#endif // __GUIMISC_H__ diff --git a/src/gui/image.cpp b/src/gui/image.cpp new file mode 100644 index 0000000..c48a6ff --- /dev/null +++ b/src/gui/image.cpp @@ -0,0 +1,20 @@ +// +// Static image class +// +// by James L. Hammons +// + +#include "image.h" + +#include "guimisc.h" + +Image::Image(uint32 x, uint32 y, const void * img): + Element(x, y, 0, 0), image(img) +{ +} + +void Image::Draw(uint32 offsetX/*= 0*/, uint32 offsetY/*= 0*/) +{ + if (image != NULL) + DrawTransparentBitmap(screenBuffer, extents.x + offsetX, extents.y + offsetY, image); +} diff --git a/src/gui/image.h b/src/gui/image.h new file mode 100644 index 0000000..05de59c --- /dev/null +++ b/src/gui/image.h @@ -0,0 +1,27 @@ +// +// Static image class +// +// by James L. Hammons +// + +#ifndef __IMAGE_H__ +#define __IMAGE_H__ + +#include "element.h" + +class Image: public Element +{ + public: + Image(uint32 x, uint32 y, const void * img); + virtual void HandleKey(SDLKey key) {} + virtual void HandleMouseMove(uint32 x, uint32 y) {} + virtual void HandleMouseButton(uint32 x, uint32 y, bool mouseDown) {} + virtual void Draw(uint32 offsetX = 0, uint32 offsetY = 0); + virtual void Notify(Element *) {} + + protected: + uint32 fgColor, bgColor; + const void * image; +}; + +#endif // __IMAGE_H__ diff --git a/src/gui/listbox.cpp b/src/gui/listbox.cpp new file mode 100644 index 0000000..9b47ff9 --- /dev/null +++ b/src/gui/listbox.cpp @@ -0,0 +1,242 @@ +// +// ListBox class +// +// by James L. Hammons +// + +#include "listbox.h" + +#include "guimisc.h" + +ListBox::ListBox(uint32 x, uint32 y, uint32 w, uint32 h): Element(x, y, w, h), + thumbClicked(false), windowPtr(0), cursor(0), limit(0), charWidth((w / FONT_WIDTH) - 1), + charHeight(h / FONT_HEIGHT), elementToTell(NULL), upArrow(w - 8, 0, upArrowBox), + downArrow(w - 8, h - 8, downArrowBox), upArrow2(w - 8, h - 16, upArrowBox) +{ + upArrow.SetNotificationElement(this); + downArrow.SetNotificationElement(this); + upArrow2.SetNotificationElement(this); + extents.w -= 8; // Make room for scrollbar... +} + +void ListBox::HandleKey(SDLKey key) +{ + if (key == SDLK_DOWN) + { + if (cursor != limit - 1) // Cursor is within its window + cursor++; + else // Otherwise, scroll the window... + { + if (cursor + windowPtr != item.size() - 1) + windowPtr++; + } + } + else if (key == SDLK_UP) + { + if (cursor != 0) + cursor--; + else + { + if (windowPtr != 0) + windowPtr--; + } + } + else if (key == SDLK_PAGEDOWN) + { + if (cursor != limit - 1) + cursor = limit - 1; + else + { + windowPtr += limit; + if (windowPtr > item.size() - limit) + windowPtr = item.size() - limit; + } + } + else if (key == SDLK_PAGEUP) + { + if (cursor != 0) + cursor = 0; + else + { + if (windowPtr < limit) + windowPtr = 0; + else + windowPtr -= limit; + } + } + else if (key >= SDLK_a && key <= SDLK_z) + { + // Advance cursor to filename with first letter pressed... + uint8 which = (key - SDLK_a) + 65; // Convert key to A-Z char + + for(uint32 i=0; i windowPtr + limit - 1) + windowPtr = i - limit + 1, cursor = limit - 1; + if (i < windowPtr) + windowPtr = i, cursor = 0; + break; + } + } + } +} + +void ListBox::HandleMouseMove(uint32 x, uint32 y) +{ + upArrow.HandleMouseMove(x - extents.x, y - extents.y); + downArrow.HandleMouseMove(x - extents.x, y - extents.y); + upArrow2.HandleMouseMove(x - extents.x, y - extents.y); + + if (thumbClicked) + { + uint32 sbHeight = extents.h - 24, + thumb = (uint32)(((float)limit / (float)item.size()) * (float)sbHeight); + +//yRelativePoint is the spot on the thumb where we clicked... + int32 newThumbStart = y - yRelativePoint; + + if (newThumbStart < 0) + newThumbStart = 0; + + if ((uint32)newThumbStart > sbHeight - thumb) + newThumbStart = sbHeight - thumb; + + windowPtr = (uint32)(((float)newThumbStart / (float)sbHeight) * (float)item.size()); +//Check for cursor bounds as well... Or do we need to??? +//Actually, we don't...! + } +} + +void ListBox::HandleMouseButton(uint32 x, uint32 y, bool mouseDown) +{ + if (Inside(x, y) && mouseDown) + { + // Why do we have to do this??? (- extents.y?) + // I guess it's because only the Window class has offsetting implemented... !!! FIX !!! +// cursor = (y - extents.y) / 8; + cursor = (y - extents.y) / FONT_HEIGHT; + } + + // Check for a hit on the scrollbar... + if (x > (uint32)(extents.x + extents.w) && x <= (uint32)(extents.x + extents.w + 8) + && y > (uint32)(extents.y + 8) && y <= (uint32)(extents.y + extents.h - 16)) + { + if (mouseDown) + { +// This shiaut should be calculated in AddItem(), not here... (or in Draw() for that matter) + uint32 sbHeight = extents.h - 24, + thumb = (uint32)(((float)limit / (float)item.size()) * (float)sbHeight), + thumbStart = (uint32)(((float)windowPtr / (float)item.size()) * (float)sbHeight); + + // Did we hit the thumb? + if (y >= (extents.y + 8 + thumbStart) && y < (extents.y + 8 + thumbStart + thumb)) + thumbClicked = true, yRelativePoint = y - thumbStart; + } +//Seems that this is useless--never reached except in rare cases and that the code outside is +//more effective... +// else +// thumbClicked = false; + } + + if (!mouseDown) + thumbClicked = false; + + upArrow.HandleMouseButton(x - extents.x, y - extents.y, mouseDown); + downArrow.HandleMouseButton(x - extents.x, y - extents.y, mouseDown); + upArrow2.HandleMouseButton(x - extents.x, y - extents.y, mouseDown); +} + +void ListBox::Draw(uint32 offsetX/*= 0*/, uint32 offsetY/*= 0*/) +{ + for(uint32 i=0; i= thumbStart + (extents.y+offsetY+8) && y < thumbStart + thumb + (extents.y+offsetY+8)) +// screenBuffer[x + (y * pitch)] = (thumbClicked ? 0x458E : 0xFFFF); +//458E -> 01 0001 0 1100 0 1110 -> 0100 0101 0110 0011 0111 0011 -> 45 63 73 + screenBuffer[x + (y * pitch)] = (thumbClicked ? 0xFF736345 : 0xFFFFFFFF); + else +// screenBuffer[x + (y * pitch)] = 0x0200; +//0200 -> 000000 10000 00000 -> 00 1000 0100 00 + screenBuffer[x + (y * pitch)] = 0xFF008400; + } + } +} + +void ListBox::Notify(Element * e) +{ + if (e == &upArrow || e == &upArrow2) + { + if (windowPtr != 0) + { + windowPtr--; + + if (cursor < limit - 1) + cursor++; + } + } + else if (e == &downArrow) + { + if (windowPtr < item.size() - limit) + { + windowPtr++; + + if (cursor != 0) + cursor--; + } + } +} + +void ListBox::SetNotificationElement(Element * e) +{ + elementToTell = e; +} + +void ListBox::AddItem(std::string s) +{ + // Do a simple insertion sort + bool inserted = false; + + for(std::vector::iterator i=item.begin(); i charHeight ? charHeight : item.size()); +} + +std::string ListBox::GetSelectedItem(void) +{ + return item[windowPtr + cursor]; +} diff --git a/src/gui/listbox.h b/src/gui/listbox.h new file mode 100644 index 0000000..854a27f --- /dev/null +++ b/src/gui/listbox.h @@ -0,0 +1,45 @@ +// +// ListBox class +// +// by James L. Hammons +// + +#ifndef __LISTBOX_H__ +#define __LISTBOX_H__ + +#include +#include +#include "button.h" +//#include "element.h" + +class ListBox: public Element +//class ListBox: public Window +{ + public: +// ListBox(uint32 x = 0, uint32 y = 0, uint32 w = 0, uint32 h = 0): Element(x, y, w, h), + ListBox(uint32 x = 0, uint32 y = 0, uint32 w = 0, uint32 h = 0);//: Window(x, y, w, h), +// windowPtr(0), cursor(0), limit(0), charWidth((w / 8) - 1), charHeight(h / 8), +// elementToTell(NULL), upArrow(w - 8, 0, upArrowBox), +// downArrow(w - 8, h - 8, downArrowBox), upArrow2(w - 8, h - 16, upArrowBox) {} + virtual void HandleKey(SDLKey key); + virtual void HandleMouseMove(uint32 x, uint32 y); + virtual void HandleMouseButton(uint32 x, uint32 y, bool mouseDown); + virtual void Draw(uint32 offsetX = 0, uint32 offsetY = 0); + virtual void Notify(Element * e); + void SetNotificationElement(Element * e); + void AddItem(std::string s); + std::string GetSelectedItem(void); + + protected: + bool thumbClicked; + uint32 windowPtr, cursor, limit; + uint32 charWidth, charHeight; // Box width/height in characters + Element * elementToTell; + Button upArrow, downArrow, upArrow2; + std::vector item; + + private: + uint32 yRelativePoint; +}; + +#endif // __LISTBOX_H__ diff --git a/src/gui/menu.cpp b/src/gui/menu.cpp new file mode 100644 index 0000000..f033977 --- /dev/null +++ b/src/gui/menu.cpp @@ -0,0 +1,177 @@ +// +// Menu class & supporting structs/classes +// +// by James L. Hammons +// + +#include "menu.h" + +// Local variables +static const char separator[] = "--------------------------------------------------------"; + +// Implementation + +Menu::Menu(uint32 x/*= 0*/, uint32 y/*= 0*/, uint32 w/*= 0*/, uint32 h/*= FONT_HEIGHT*/, + uint32 fgc/*= 0xFF7F0000*/, uint32 bgc/*= 0xFFFF3F3F*/, uint32 fgch/*= 0xFFFF3F3F*/, + uint32 bgch/*= 0xFFFF8787*/): + Element(x, y, w, h), activated(false), clicked(false), inside(0), insidePopup(0), + fgColor(fgc), bgColor(bgc), fgColorHL(fgch), bgColorHL(bgch), menuChosen(-1), + menuItemChosen(-1) +{ +} + +void Menu::HandleKey(SDLKey key) +{ + for(uint32 i=0; i= xpos && x < xpos + width) + { + inside = i + 1; + menuChosen = i; + break; + } + + xpos += width; + } + } + + if (!Inside(x, y) && !clicked) + { + menuChosen = -1; + } + + if (itemList[menuChosen].Inside(x, y) && clicked) + { + insidePopup = ((y - itemList[menuChosen].extents.y) / FONT_HEIGHT) + 1; + menuItemChosen = insidePopup - 1; + } +} + +void Menu::HandleMouseButton(uint32 x, uint32 y, bool mouseDown) +{ + if (!clicked) + { + if (mouseDown) + { + if (inside) + clicked = true; + else + menuChosen = -1; // clicked is already false...! + } + } + else // clicked == true + { + if (insidePopup && !mouseDown) // I.e., mouse-button-up + { + activated = true; + if (itemList[menuChosen].item[menuItemChosen].action != NULL) + { +// itemList[menuChosen].item[menuItemChosen].action(); + SDL_Event event; + event.type = SDL_USEREVENT; + event.user.code = MENU_ITEM_CHOSEN; + event.user.data1 = (void *)itemList[menuChosen].item[menuItemChosen].action; + SDL_PushEvent(&event); + + clicked = false, menuChosen = menuItemChosen = -1; + +/* SDL_Event event; + while (SDL_PollEvent(&event)); // Flush the event queue... + event.type = SDL_MOUSEMOTION; + int mx, my; + SDL_GetMouseState(&mx, &my); + event.motion.x = mx, event.motion.y = my; + SDL_PushEvent(&event); // & update mouse position...! +*/ } + } + + if (!inside && !insidePopup && mouseDown) + clicked = false, menuChosen = menuItemChosen = -1; + } +} + +void Menu::Draw(uint32 offsetX/*= 0*/, uint32 offsetY/*= 0*/) +{ + uint32 xpos = extents.x + offsetX; + + for(uint32 i=0; i 0) + DrawStringOpaque(screenBuffer, itemList[menuChosen].extents.x, ypos, + color1, color2, " %-*.*s ", itemList[menuChosen].charLength, + itemList[menuChosen].charLength, itemList[menuChosen].item[i].name.c_str()); + else + DrawStringOpaque(screenBuffer, itemList[menuChosen].extents.x, ypos, + fgColor, bgColor, "%.*s", itemList[menuChosen].charLength + 2, separator); + + ypos += FONT_HEIGHT; + } + } +} + +void Menu::Add(MenuItems mi) +{ + for(uint32 i=0; i mi.charLength) + mi.charLength = mi.item[i].name.length(); + + // Set extents here as well... + mi.extents.x = extents.x + extents.w, mi.extents.y = extents.y + FONT_HEIGHT + 1; + mi.extents.w = (mi.charLength + 2) * FONT_WIDTH, mi.extents.h = mi.item.size() * FONT_HEIGHT; + + itemList.push_back(mi); + extents.w += (mi.title.length() + 2) * FONT_WIDTH; +} diff --git a/src/gui/menu.h b/src/gui/menu.h new file mode 100644 index 0000000..9847418 --- /dev/null +++ b/src/gui/menu.h @@ -0,0 +1,68 @@ +// +// Menu class & supporting structs/classes +// +// by James L. Hammons +// + +#ifndef __MENU_H__ +#define __MENU_H__ + +#include +#include +#include "element.h" +#include "guimisc.h" // Ick. + +class Window; + +struct NameAction +{ + std::string name; + Window * (* action)(void); + SDLKey hotKey; + + NameAction(std::string n, Window * (* a)(void) = NULL, SDLKey k = SDLK_UNKNOWN): + name(n), action(a), hotKey(k) {} +}; + +class MenuItems +{ + public: + MenuItems(): charLength(0) {} + // Normally, we avoid implementation in a header file but in this case + // we can make an exception. ;-) + bool Inside(uint32 x, uint32 y) + { return (x >= (uint32)extents.x && x < (uint32)(extents.x + extents.w) + && y >= (uint32)extents.y && y < (uint32)(extents.y + extents.h) ? true : false); } + + std::string title; + std::vector item; + uint32 charLength; + SDL_Rect extents; +}; + +class Menu: public Element +{ + public: +// 1CFF -> 0 001 11 00 111 1 1111 +// 421F -> 0 100 00 10 000 1 1111 + Menu(uint32 x = 0, uint32 y = 0, uint32 w = 0, uint32 h = FONT_HEIGHT, + uint32 fgc = 0xFF7F0000, uint32 bgc = 0xFFFF3F3F, uint32 fgch = 0xFFFF3F3F, + uint32 bgch = 0xFFFF8787); + virtual void HandleKey(SDLKey key); + virtual void HandleMouseMove(uint32 x, uint32 y); + virtual void HandleMouseButton(uint32 x, uint32 y, bool mouseDown); + virtual void Draw(uint32 offsetX = 0, uint32 offsetY = 0); + virtual void Notify(Element *) {} + void Add(MenuItems mi); + + protected: + bool activated, clicked; + uint32 inside, insidePopup; + uint32 fgColor, bgColor, fgColorHL, bgColorHL; + int menuChosen, menuItemChosen; + + private: + std::vector itemList; +}; + +#endif // __MENU_H__ diff --git a/src/gui/pushbutton.cpp b/src/gui/pushbutton.cpp new file mode 100644 index 0000000..738b3ac --- /dev/null +++ b/src/gui/pushbutton.cpp @@ -0,0 +1,38 @@ +// +// PushButton class +// +// by James L. Hammons +// + +#include "pushbutton.h" + +#include "guimisc.h" + +PushButton::PushButton(uint32 x, uint32 y, bool * st, std::string s): + Element(x, y, 16, 16), state(st), inside(false), text(s) +{ + if (st == NULL) + state = &internalState; +} + +void PushButton::HandleMouseMove(uint32 x, uint32 y) +{ + inside = Inside(x, y); +} + +void PushButton::HandleMouseButton(uint32 x, uint32 y, bool mouseDown) +{ + if (inside && mouseDown) + *state = !(*state); +} + +void PushButton::Draw(uint32 offsetX/*= 0*/, uint32 offsetY/*= 0*/) +{ + if (*state) + DrawTransparentBitmap(screenBuffer, extents.x + offsetX, extents.y + offsetY, &pbDown); + else + DrawTransparentBitmap(screenBuffer, extents.x + offsetX, extents.y + offsetY, &pbUp); + + if (text.length() > 0) + DrawString(screenBuffer, extents.x + offsetX + 24, extents.y + offsetY, false, "%s", text.c_str()); +} diff --git a/src/gui/pushbutton.h b/src/gui/pushbutton.h new file mode 100644 index 0000000..2593b57 --- /dev/null +++ b/src/gui/pushbutton.h @@ -0,0 +1,36 @@ +// +// PushButton class +// +// by James L. Hammons +// + +#ifndef __PUSHBUTTON_H__ +#define __PUSHBUTTON_H__ + +#include +#include "element.h" + +// How to handle? +// Save state externally? +//We pass in a state variable if we want to track it externally, otherwise we use our own +//internal state var. Still need to do some kind of callback for pushbuttons that do things +//like change from fullscreen to windowed... !!! FIX !!! + +class PushButton: public Element +{ + public: + PushButton(uint32 x, uint32 y, bool * st, std::string s); + virtual void HandleKey(SDLKey key) {} + virtual void HandleMouseMove(uint32 x, uint32 y); + virtual void HandleMouseButton(uint32 x, uint32 y, bool mouseDown); + virtual void Draw(uint32 offsetX = 0, uint32 offsetY = 0); + virtual void Notify(Element *) {} + + protected: + bool * state; + bool inside; + std::string text; + bool internalState; +}; + +#endif // __PUSHBUTTON_H__ diff --git a/src/gui/slideswitch.cpp b/src/gui/slideswitch.cpp new file mode 100644 index 0000000..fcf0520 --- /dev/null +++ b/src/gui/slideswitch.cpp @@ -0,0 +1,38 @@ +// +// SlideSwitch class +// +// by James L. Hammons +// + +#include "slideswitch.h" + +#include "guimisc.h" + +SlideSwitch::SlideSwitch(uint32 x, uint32 y, bool * st, std::string s1, std::string s2): + Element(x, y, 16, 32), state(st), inside(false), text1(s1), text2(s2) +{ +} + +void SlideSwitch::HandleMouseMove(uint32 x, uint32 y) +{ + inside = Inside(x, y); +} + +void SlideSwitch::HandleMouseButton(uint32 x, uint32 y, bool mouseDown) +{ + if (inside && mouseDown) + { + *state = !(*state); + } +} + +void SlideSwitch::Draw(uint32 offsetX/*= 0*/, uint32 offsetY/*= 0*/) +{ + DrawTransparentBitmapDeprecated(screenBuffer, extents.x + offsetX, extents.y + offsetY, (*state ? slideSwitchDown : slideSwitchUp)); + + if (text1.length() > 0) + DrawString(screenBuffer, extents.x + offsetX + 24, extents.y + offsetY, false, "%s", text1.c_str()); + + if (text2.length() > 0) + DrawString(screenBuffer, extents.x + offsetX + 24, extents.y + offsetY + 16, false, "%s", text2.c_str()); +} diff --git a/src/gui/slideswitch.h b/src/gui/slideswitch.h new file mode 100644 index 0000000..b23fe3d --- /dev/null +++ b/src/gui/slideswitch.h @@ -0,0 +1,33 @@ +// +// SlideSwitch class +// +// by James L. Hammons +// + +#ifndef __SLIDESWITCH_H__ +#define __SLIDESWITCH_H__ + +#include +#include "element.h" + +// How to handle? +// Save state externally? +#warning Seems to be handled the same as PushButton, but without sanity checks. !!! FIX !!! + +class SlideSwitch: public Element +{ + public: + SlideSwitch(uint32 x, uint32 y, bool * st, std::string s1, std::string s2); + virtual void HandleKey(SDLKey key) {} + virtual void HandleMouseMove(uint32 x, uint32 y); + virtual void HandleMouseButton(uint32 x, uint32 y, bool mouseDown); + virtual void Draw(uint32 offsetX = 0, uint32 offsetY = 0); + virtual void Notify(Element *) {} + + protected: + bool * state; + bool inside; + std::string text1, text2; +}; + +#endif // __SLIDESWITCH_H__ diff --git a/src/gui/text.cpp b/src/gui/text.cpp new file mode 100644 index 0000000..2d35242 --- /dev/null +++ b/src/gui/text.cpp @@ -0,0 +1,26 @@ +// +// Static text class +// +// by James L. Hammons +// + +#include "text.h" + +#include "guimisc.h" + +Text::Text(uint32 x/*= 0*/, uint32 y/*= 0*/, uint32 w/*= 0*/, uint32 h/*= 0*/): + Element(x, y, w, h), fgColor(0xFF8484FF), bgColor(0xFF84FF4D) +{ +} + +Text::Text(uint32 x, uint32 y, std::string s, uint32 fg/*= 0xFF8484FF*/, uint32 bg/*= 0xFF84FF4D*/): + Element(x, y, 0, 0), fgColor(fg), bgColor(bg), text(s) +{ +} + +void Text::Draw(uint32 offsetX/*= 0*/, uint32 offsetY/*= 0*/) +{ + if (text.length() > 0) +// DrawString(screenBuffer, extents.x + offsetX, extents.y + offsetY, false, "%s", text.c_str()); + DrawStringOpaque(screenBuffer, extents.x + offsetX, extents.y + offsetY, fgColor, bgColor, "%s", text.c_str()); +} diff --git a/src/gui/text.h b/src/gui/text.h new file mode 100644 index 0000000..9651efd --- /dev/null +++ b/src/gui/text.h @@ -0,0 +1,29 @@ +// +// Static text class +// +// by James L. Hammons +// + +#ifndef __TEXT_H__ +#define __TEXT_H__ + +#include +#include "element.h" + +class Text: public Element +{ + public: + Text(uint32 x = 0, uint32 y = 0, uint32 w = 0, uint32 h = 0); + Text(uint32 x, uint32 y, std::string s, uint32 fg = 0xFF8484FF, uint32 bg = 0xFF84FF4D); + virtual void HandleKey(SDLKey key) {} + virtual void HandleMouseMove(uint32 x, uint32 y) {} + virtual void HandleMouseButton(uint32 x, uint32 y, bool mouseDown) {} + virtual void Draw(uint32 offsetX = 0, uint32 offsetY = 0); + virtual void Notify(Element *) {} + + protected: + uint32 fgColor, bgColor; + std::string text; +}; + +#endif // __TEXT_H__ diff --git a/src/gui/textedit.cpp b/src/gui/textedit.cpp new file mode 100644 index 0000000..301dd3e --- /dev/null +++ b/src/gui/textedit.cpp @@ -0,0 +1,52 @@ +// +// TextEdit class +// +// by James L. Hammons +// + +#include "textedit.h" + +#include "guimisc.h" + +TextEdit::TextEdit(uint32 x/*= 0*/, uint32 y/*= 0*/, uint32 w/*= 0*/, uint32 h/*= 0*/): + Element(x, y, w, h), fgColor(0xFF8484FF), bgColor(0xFF84FF4D), text(""), + caretPos(0), maxScreenSize(10) +{ +} + +TextEdit::TextEdit(uint32 x, uint32 y, std::string s, uint32 mss/*= 10*/, uint32 fg/*= 0xFF8484FF*/, uint32 bg/*= 0xFF84FF4D*/): + Element(x, y, 0, 0), fgColor(fg), bgColor(bg), text(s), caretPos(0), maxScreenSize(mss) +{ +} + +//Set different filters depending on type passed in on construction, e.g., filename, amount, etc...? +void TextEdit::HandleKey(SDLKey key) +{ + if ((key >= SDLK_a && key <= SDLK_z) || (key >= SDLK_0 && key <= SDLK_9) || key == SDLK_PERIOD + || key == SDLK_SLASH) + { + //Need to handle shift key as well... + text[caretPos++] = key; + Draw(); + } + else if (key == SDLK_BACKSPACE) + { + + } + else if (key == SDLK_DELETE) + { + } +//left, right arrow +} + +void TextEdit::Draw(uint32 offsetX/*= 0*/, uint32 offsetY/*= 0*/) +{ + if (text.length() > 0) + { + FillScreenRectangle(screenBuffer, extents.x + offsetX, extents.y + offsetY, FONT_WIDTH * maxScreenSize, FONT_HEIGHT, bgColor); +// DrawString(screenBuffer, extents.x + offsetX, extents.y + offsetY, false, "%s", text.c_str()); + DrawStringOpaque(screenBuffer, extents.x + offsetX, extents.y + offsetY, fgColor, bgColor, "%s", text.c_str()); + } + + // Draw the caret (underscore? or vertical line?) +} diff --git a/src/gui/textedit.h b/src/gui/textedit.h new file mode 100644 index 0000000..17f9101 --- /dev/null +++ b/src/gui/textedit.h @@ -0,0 +1,32 @@ +// +// TextEdit class +// +// by James L. Hammons +// + +#ifndef __TEXTEDIT_H__ +#define __TEXTEDIT_H__ + +#include +#include "element.h" + +class TextEdit: public Element +{ + public: + TextEdit(uint32 x = 0, uint32 y = 0, uint32 w = 0, uint32 h = 0); + TextEdit(uint32 x, uint32 y, std::string s, uint32 mss = 10, uint32 fg = 0xFF8484FF, + uint32 bg = 0xFF84FF4D); + virtual void HandleKey(SDLKey key); + virtual void HandleMouseMove(uint32 x, uint32 y) {} + virtual void HandleMouseButton(uint32 x, uint32 y, bool mouseDown) {} + virtual void Draw(uint32 offsetX = 0, uint32 offsetY = 0); + virtual void Notify(Element *) {} + + protected: + uint32 fgColor, bgColor; + std::string text; + uint32 caretPos; + uint32 maxScreenSize; +}; + +#endif // __TEXTEDIT_H__ diff --git a/src/gui/vj_title_small.c b/src/gui/vj_title_small.c index b303f11..66c0519 100644 --- a/src/gui/vj_title_small.c +++ b/src/gui/vj_title_small.c @@ -1,12 +1,19 @@ /* GIMP RGBA C-Source image dump (vj-title-small.c) */ +#if 0 static const struct { unsigned int width; unsigned int height; - unsigned int bytes_per_pixel; /* 3:RGB, 4:RGBA */ + unsigned int bytes_per_pixel; /* 3:RGB, 4:RGBA */ unsigned char pixel_data[197 * 89 * 4 + 1]; -} vj_title_small = { - 197, 89, 4, +} +#endif +#warning Nonportable!--!!! FIX !!! +uint8 vj_title_small[] = { +// 197, 89, 4, + "\305\0\0\0" + "\131\0\0\0" + "\4\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\231\372\21\0\231\372K\0\231\372`\0\231\372C\0" "\231\372\6\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\231\3721\0\231\372w\0\231\3724\0\0\0\0\0\0\0\0\0\231\372\23\0\231\372" diff --git a/src/gui/window.cpp b/src/gui/window.cpp new file mode 100644 index 0000000..9b2358b --- /dev/null +++ b/src/gui/window.cpp @@ -0,0 +1,94 @@ +// +// Window class +// +// by James L. Hammons +// + +#include "window.h" + +#include "guimisc.h" + +Window::Window(uint32 x/*= 0*/, uint32 y/*= 0*/, uint32 w/*= 0*/, uint32 h/*= 0*/, + void (* f)(Element *)/*= NULL*/): Element(x, y, w, h), +// /*clicked(false), inside(false),*/ fgColor(0x4FF0), bgColor(0x1E10), +//4FF0 -> 010011 11111 10000 -> 0100 1101 1111 1111 1000 0100 -> 4D FF 84 +//1E10 -> 000111 10000 10000 -> 0001 1111 1000 0100 1000 0100 -> 1F 84 84 + /*clicked(false), inside(false),*/ fgColor(0xFF84FF4D), bgColor(0xFF84841F), + handler(f) +{ + close = new Button(w - (CLOSEBOX_WIDTH + 1), 1, closeBox, closeBoxHover, closeBoxDown); + list.push_back(close); + close->SetNotificationElement(this); +} + +Window::~Window() +{ + for(uint32 i=0; iHandleKey(key); +} + +void Window::HandleMouseMove(uint32 x, uint32 y) +{ + // Handle the items this window contains... + for(uint32 i=0; iHandleMouseMove(x - extents.x, y - extents.y); +} + +void Window::HandleMouseButton(uint32 x, uint32 y, bool mouseDown) +{ + // Handle the items this window contains... + for(uint32 i=0; iHandleMouseButton(x - extents.x, y - extents.y, mouseDown); +} + +void Window::Draw(uint32 offsetX/*= 0*/, uint32 offsetY/*= 0*/) +{ + uint32 addr = (extents.x + offsetX) + ((extents.y + offsetY) * pitch); + + for(uint32 y=0; yDraw(extents.x, extents.y); +} + +void Window::AddElement(Element * e) +{ + list.push_back(e); +} + +void Window::Notify(Element * e) +{ + if (e == close) + { + SDL_Event event; + event.type = SDL_USEREVENT, event.user.code = WINDOW_CLOSE; + SDL_PushEvent(&event); + } +} diff --git a/src/gui/window.h b/src/gui/window.h new file mode 100644 index 0000000..2686ff7 --- /dev/null +++ b/src/gui/window.h @@ -0,0 +1,35 @@ +// +// Window class +// +// by James L. Hammons + +#ifndef __WINDOW_H__ +#define __WINDOW_H__ + +#include +#include "button.h" +#include "element.h" + +class Window: public Element +{ + public: + Window(uint32 x = 0, uint32 y = 0, uint32 w = 0, uint32 h = 0, + void (* f)(Element *) = NULL); + virtual ~Window(); + virtual void HandleKey(SDLKey key); + virtual void HandleMouseMove(uint32 x, uint32 y); + virtual void HandleMouseButton(uint32 x, uint32 y, bool mouseDown); + virtual void Draw(uint32 offsetX = 0, uint32 offsetY = 0); + virtual void Notify(Element * e); + void AddElement(Element * e); + + protected: + uint32 fgColor, bgColor; + void (* handler)(Element *); + Button * close; + // We have to use a list of Element *pointers* because we can't make a + // list that will hold all the different object types in the same list... + std::vector list; +}; + +#endif // __WINDOW_H__ -- 2.37.2