3.0.5 preview to get a 4.0 soon !!

This commit is contained in:
N0NameN0 2009-01-15 10:08:37 +00:00
parent c29b5efde7
commit f343a67bee
35 changed files with 17383 additions and 0 deletions

51
README.TXT Normal file
View file

@ -0,0 +1,51 @@
==============================================================
________ __________ __________ .____ .___ __________
/ _____/ \______ \\______ \| | | |\______ \
/ \ ___ | _/ | _/| | | | | | _/
\ \_\ \ | | \ | | \| |___ | | | | \
\______ / |____|_ / |____|_ /|_______ \|___| |______ /
\/ \/ \/ \/ \/
________ _______
\_____ \ \ _ \
_(__ < / /_\ \
/ \ \ \_/ \
/______ / /\ \_____ /
\/ \/ \/ .5 ALPHA
===============================================================
Code : NoNameNo
Code Hints : RedShade
Info & Tutorial : http://grrlib.santo.fr
===============================================================
ChangeLog :
* Color format change for ALL GRRLib function (now its RGBA) to fit to GX_Color format and use GX_Color1u32
* added GRRLIB_LoadTextureFromFile //---> Contribution by GRILLO
* GRRLib introduce a new texture structure (easier to handle texture width, height, etc ...):
typedef struct GRRLIB_texImg{
unsigned int w;
unsigned int h;
unsigned int tilew;
unsigned int tileh;
unsigned int nbtilew;
unsigned int nbtileh;
unsigned int tilestart;
void *data;
} GRRLIB_texImg;
* add void GRRLIB_InitTileSet(struct GRRLIB_texImg *tex, unsigned int tilew, unsigned int tileh, unsigned int tilestart);
* GRRLIB_Printf recoded to fit modification.
* GRRLIB_DrawImg recoded for simpler use
* GRRLIB_DrawTile recoded for simpler use + // --->Frame Correction by spiffen
have a look at the sample code to see how all this work ;)
Remember that 3.0.5 is a WIP preview for the soon coming GRRLIB 4.0 and it's not intend to be publicly released...
Contact me to provide me all your patch/addon/new functions...
NoNameNo.

139
template/Makefile Normal file
View file

@ -0,0 +1,139 @@
#---------------------------------------------------------------------------------
# Clear the implicit built in rules
#---------------------------------------------------------------------------------
.SUFFIXES:
#---------------------------------------------------------------------------------
ifeq ($(strip $(DEVKITPPC)),)
$(error "Please set DEVKITPPC in your environment. export DEVKITPPC=<path to>devkitPPC)
endif
include $(DEVKITPPC)/wii_rules
#---------------------------------------------------------------------------------
# TARGET is the name of the output
# BUILD is the directory where object files & intermediate files will be placed
# SOURCES is a list of directories containing source code
# INCLUDES is a list of directories containing extra header files
#---------------------------------------------------------------------------------
TARGET := $(notdir $(CURDIR))
BUILD := build
SOURCES := source source/gfx source/GRRLIB source/libpng source/libpng/pngu
DATA := data
INCLUDES :=
#---------------------------------------------------------------------------------
# options for code generation
#---------------------------------------------------------------------------------
CFLAGS = -g -O2 -mrvl -Wall $(MACHDEP) $(INCLUDE)
CXXFLAGS = $(CFLAGS)
LDFLAGS = -g $(MACHDEP) -mrvl -Wl,-Map,$(notdir $@).map
#---------------------------------------------------------------------------------
# any extra libraries we wish to link with the project
#---------------------------------------------------------------------------------
LIBS := -lpng -lz -lfat -lwiiuse -lbte -logc -lm
#---------------------------------------------------------------------------------
# list of directories containing libraries, this must be the top level containing
# include and lib
#---------------------------------------------------------------------------------
LIBDIRS := $(CURDIR)
#---------------------------------------------------------------------------------
# no real need to edit anything past this point unless you need to add additional
# rules for different file extensions
#---------------------------------------------------------------------------------
ifneq ($(BUILD),$(notdir $(CURDIR)))
#---------------------------------------------------------------------------------
export OUTPUT := $(CURDIR)/$(TARGET)
export VPATH := $(foreach dir,$(SOURCES),$(CURDIR)/$(dir)) \
$(foreach dir,$(DATA),$(CURDIR)/$(dir))
export DEPSDIR := $(CURDIR)/$(BUILD)
#---------------------------------------------------------------------------------
# automatically build a list of object files for our project
#---------------------------------------------------------------------------------
CFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.c)))
CPPFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.cpp)))
sFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.s)))
SFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.S)))
BINFILES := $(foreach dir,$(DATA),$(notdir $(wildcard $(dir)/*.*)))
#---------------------------------------------------------------------------------
# use CXX for linking C++ projects, CC for standard C
#---------------------------------------------------------------------------------
ifeq ($(strip $(CPPFILES)),)
export LD := $(CC)
else
export LD := $(CXX)
endif
export OFILES := $(addsuffix .o,$(BINFILES)) \
$(CPPFILES:.cpp=.o) $(CFILES:.c=.o) \
$(sFILES:.s=.o) $(SFILES:.S=.o)
#---------------------------------------------------------------------------------
# build a list of include paths
#---------------------------------------------------------------------------------
export INCLUDE := $(foreach dir,$(INCLUDES), -iquote $(CURDIR)/$(dir)) \
$(foreach dir,$(LIBDIRS),-I$(dir)/include) \
-I$(CURDIR)/$(BUILD) \
-I$(LIBOGC_INC)
#---------------------------------------------------------------------------------
# build a list of library paths
#---------------------------------------------------------------------------------
export LIBPATHS := $(foreach dir,$(LIBDIRS),-L$(dir)/lib) \
-L$(LIBOGC_LIB)
export OUTPUT := $(CURDIR)/$(TARGET)
.PHONY: $(BUILD) clean
#---------------------------------------------------------------------------------
$(BUILD):
@[ -d $@ ] || mkdir -p $@
@make --no-print-directory -C $(BUILD) -f $(CURDIR)/Makefile
#---------------------------------------------------------------------------------
clean:
@echo clean ...
@rm -fr $(BUILD) $(OUTPUT).elf $(OUTPUT).dol
#---------------------------------------------------------------------------------
run:
psoload $(TARGET).dol
#---------------------------------------------------------------------------------
reload:
psoload -r $(TARGET).dol
#---------------------------------------------------------------------------------
else
DEPENDS := $(OFILES:.o=.d)
#---------------------------------------------------------------------------------
# main targets
#---------------------------------------------------------------------------------
$(OUTPUT).dol: $(OUTPUT).elf
$(OUTPUT).elf: $(OFILES)
#---------------------------------------------------------------------------------
# This rule links in binary data with the .jpg extension
#---------------------------------------------------------------------------------
%.jpg.o : %.jpg
#---------------------------------------------------------------------------------
@echo $(notdir $<)
$(bin2o)
-include $(DEPENDS)
#---------------------------------------------------------------------------------
endif
#---------------------------------------------------------------------------------

2
template/build/BMfont1.d Normal file
View file

@ -0,0 +1,2 @@
BMfont1.o: \
/home/alonetrio/wii/GRRLib3.0.5a/template/source/gfx/BMfont1.c

After

Width:  |  Height:  |  Size: 78 B

2
template/build/BMfont2.d Normal file
View file

@ -0,0 +1,2 @@
BMfont2.o: \
/home/alonetrio/wii/GRRLib3.0.5a/template/source/gfx/BMfont2.c

After

Width:  |  Height:  |  Size: 78 B

2
template/build/BMfont3.d Normal file
View file

@ -0,0 +1,2 @@
BMfont3.o: \
/home/alonetrio/wii/GRRLib3.0.5a/template/source/gfx/BMfont3.c

After

Width:  |  Height:  |  Size: 78 B

2
template/build/BMfont4.d Normal file
View file

@ -0,0 +1,2 @@
BMfont4.o: \
/home/alonetrio/wii/GRRLib3.0.5a/template/source/gfx/BMfont4.c

After

Width:  |  Height:  |  Size: 78 B

158
template/build/GRRLIB.d Normal file
View file

@ -0,0 +1,158 @@
GRRLIB.o: \
/home/alonetrio/wii/GRRLib3.0.5a/template/source/GRRLIB/GRRLIB.c \
/home/alonetrio/wii/GRRLib3.0.5a/template/source/GRRLIB/GRRLIB.h \
/opt/devkitpro/libogc/include/gccore.h \
/opt/devkitpro/libogc/include/ogc/dsp.h \
/opt/devkitpro/libogc/include/gctypes.h \
/opt/devkitpro/libogc/include/ogc/aram.h \
/opt/devkitpro/libogc/include/ogc/arqueue.h \
/opt/devkitpro/libogc/include/ogc/lwp_queue.h \
/opt/devkitpro/libogc/include/ogc/aram.h \
/opt/devkitpro/libogc/include/ogc/arqmgr.h \
/opt/devkitpro/libogc/include/ogc/audio.h \
/opt/devkitpro/libogc/include/ogc/cache.h \
/opt/devkitpro/libogc/include/ogc/card.h \
/opt/devkitpro/libogc/include/ogc/cast.h \
/opt/devkitpro/libogc/include/ogc/color.h \
/opt/devkitpro/libogc/include/ogc/consol.h \
/opt/devkitpro/libogc/include/ogc/gx_struct.h \
/opt/devkitpro/libogc/include/ogc/dvd.h \
/opt/devkitpro/libogc/include/ogc/exi.h \
/opt/devkitpro/libogc/include/ogc/gu.h \
/opt/devkitpro/libogc/include/ogc/gx.h \
/opt/devkitpro/libogc/include/ogc/lwp.h \
/opt/devkitpro/libogc/include/ogc/gu.h \
/opt/devkitpro/libogc/include/ogc/si.h \
/opt/devkitpro/libogc/include/ogc/gx_struct.h \
/opt/devkitpro/libogc/include/ogc/irq.h \
/opt/devkitpro/libogc/include/ogc/context.h \
/opt/devkitpro/libogc/include/ogc/lwp.h \
/opt/devkitpro/libogc/include/ogc/mutex.h \
/opt/devkitpro/libogc/include/ogc/message.h \
/opt/devkitpro/libogc/include/ogc/semaphore.h \
/opt/devkitpro/libogc/include/ogc/pad.h \
/opt/devkitpro/libogc/include/ogc/tpl.h \
/opt/devkitpro/libogc/include/ogc/gx.h \
/opt/devkitpro/libogc/include/ogc/system.h \
/opt/devkitpro/libogc/include/gcutil.h \
/opt/devkitpro/libogc/include/ogc/video.h \
/opt/devkitpro/libogc/include/ogc/video_types.h \
/opt/devkitpro/libogc/include/ogc/usbgecko.h \
/opt/devkitpro/libogc/include/ogc/video_types.h \
/opt/devkitpro/libogc/include/ogc/texconv.h \
/opt/devkitpro/libogc/include/ogc/ipc.h \
/opt/devkitpro/libogc/include/ogc/es.h \
/opt/devkitpro/libogc/include/ogc/stm.h \
/opt/devkitpro/libogc/include/ogc/ios.h \
/opt/devkitpro/libogc/include/ogc/usb.h \
/opt/devkitpro/libogc/include/ogc/isfs.h \
/opt/devkitpro/libogc/include/ogc/conf.h \
/opt/devkitpro/libogc/include/ogc/usbstorage.h \
/opt/devkitpro/libogc/include/ogc/cond.h \
/opt/devkitpro/libogc/include/ogc/disc_io.h \
/opt/devkitpro/libogc/include/ogc/wiilaunch.h \
/home/alonetrio/wii/GRRLib3.0.5a/template/source/GRRLIB/../libpng/pngu/pngu.h
/home/alonetrio/wii/GRRLib3.0.5a/template/source/GRRLIB/GRRLIB.h:
/opt/devkitpro/libogc/include/gccore.h:
/opt/devkitpro/libogc/include/ogc/dsp.h:
/opt/devkitpro/libogc/include/gctypes.h:
/opt/devkitpro/libogc/include/ogc/aram.h:
/opt/devkitpro/libogc/include/ogc/arqueue.h:
/opt/devkitpro/libogc/include/ogc/lwp_queue.h:
/opt/devkitpro/libogc/include/ogc/aram.h:
/opt/devkitpro/libogc/include/ogc/arqmgr.h:
/opt/devkitpro/libogc/include/ogc/audio.h:
/opt/devkitpro/libogc/include/ogc/cache.h:
/opt/devkitpro/libogc/include/ogc/card.h:
/opt/devkitpro/libogc/include/ogc/cast.h:
/opt/devkitpro/libogc/include/ogc/color.h:
/opt/devkitpro/libogc/include/ogc/consol.h:
/opt/devkitpro/libogc/include/ogc/gx_struct.h:
/opt/devkitpro/libogc/include/ogc/dvd.h:
/opt/devkitpro/libogc/include/ogc/exi.h:
/opt/devkitpro/libogc/include/ogc/gu.h:
/opt/devkitpro/libogc/include/ogc/gx.h:
/opt/devkitpro/libogc/include/ogc/lwp.h:
/opt/devkitpro/libogc/include/ogc/gu.h:
/opt/devkitpro/libogc/include/ogc/si.h:
/opt/devkitpro/libogc/include/ogc/gx_struct.h:
/opt/devkitpro/libogc/include/ogc/irq.h:
/opt/devkitpro/libogc/include/ogc/context.h:
/opt/devkitpro/libogc/include/ogc/lwp.h:
/opt/devkitpro/libogc/include/ogc/mutex.h:
/opt/devkitpro/libogc/include/ogc/message.h:
/opt/devkitpro/libogc/include/ogc/semaphore.h:
/opt/devkitpro/libogc/include/ogc/pad.h:
/opt/devkitpro/libogc/include/ogc/tpl.h:
/opt/devkitpro/libogc/include/ogc/gx.h:
/opt/devkitpro/libogc/include/ogc/system.h:
/opt/devkitpro/libogc/include/gcutil.h:
/opt/devkitpro/libogc/include/ogc/video.h:
/opt/devkitpro/libogc/include/ogc/video_types.h:
/opt/devkitpro/libogc/include/ogc/usbgecko.h:
/opt/devkitpro/libogc/include/ogc/video_types.h:
/opt/devkitpro/libogc/include/ogc/texconv.h:
/opt/devkitpro/libogc/include/ogc/ipc.h:
/opt/devkitpro/libogc/include/ogc/es.h:
/opt/devkitpro/libogc/include/ogc/stm.h:
/opt/devkitpro/libogc/include/ogc/ios.h:
/opt/devkitpro/libogc/include/ogc/usb.h:
/opt/devkitpro/libogc/include/ogc/isfs.h:
/opt/devkitpro/libogc/include/ogc/conf.h:
/opt/devkitpro/libogc/include/ogc/usbstorage.h:
/opt/devkitpro/libogc/include/ogc/cond.h:
/opt/devkitpro/libogc/include/ogc/disc_io.h:
/opt/devkitpro/libogc/include/ogc/wiilaunch.h:
/home/alonetrio/wii/GRRLib3.0.5a/template/source/GRRLIB/../libpng/pngu/pngu.h:

View file

@ -0,0 +1,2 @@
GRRLIB_font1.o: \
/home/alonetrio/wii/GRRLib3.0.5a/template/source/GRRLIB/fonts/GRRLIB_font1.c

View file

@ -0,0 +1,2 @@
gx_inside.o: \
/home/alonetrio/wii/GRRLib3.0.5a/template/source/gfx/gx_inside.c

1
template/build/logo.d Normal file
View file

@ -0,0 +1 @@
logo.o: /home/alonetrio/wii/GRRLib3.0.5a/template/source/gfx/logo.c

187
template/build/main.d Normal file
View file

@ -0,0 +1,187 @@
main.o: /home/alonetrio/wii/GRRLib3.0.5a/template/source/main.c \
/opt/devkitpro/libogc/include/ogcsys.h \
/opt/devkitpro/libogc/include/gccore.h \
/opt/devkitpro/libogc/include/ogc/dsp.h \
/opt/devkitpro/libogc/include/gctypes.h \
/opt/devkitpro/libogc/include/ogc/aram.h \
/opt/devkitpro/libogc/include/ogc/arqueue.h \
/opt/devkitpro/libogc/include/ogc/lwp_queue.h \
/opt/devkitpro/libogc/include/ogc/aram.h \
/opt/devkitpro/libogc/include/ogc/arqmgr.h \
/opt/devkitpro/libogc/include/ogc/audio.h \
/opt/devkitpro/libogc/include/ogc/cache.h \
/opt/devkitpro/libogc/include/ogc/card.h \
/opt/devkitpro/libogc/include/ogc/cast.h \
/opt/devkitpro/libogc/include/ogc/color.h \
/opt/devkitpro/libogc/include/ogc/consol.h \
/opt/devkitpro/libogc/include/ogc/gx_struct.h \
/opt/devkitpro/libogc/include/ogc/dvd.h \
/opt/devkitpro/libogc/include/ogc/exi.h \
/opt/devkitpro/libogc/include/ogc/gu.h \
/opt/devkitpro/libogc/include/ogc/gx.h \
/opt/devkitpro/libogc/include/ogc/lwp.h \
/opt/devkitpro/libogc/include/ogc/gu.h \
/opt/devkitpro/libogc/include/ogc/si.h \
/opt/devkitpro/libogc/include/ogc/gx_struct.h \
/opt/devkitpro/libogc/include/ogc/irq.h \
/opt/devkitpro/libogc/include/ogc/context.h \
/opt/devkitpro/libogc/include/ogc/lwp.h \
/opt/devkitpro/libogc/include/ogc/mutex.h \
/opt/devkitpro/libogc/include/ogc/message.h \
/opt/devkitpro/libogc/include/ogc/semaphore.h \
/opt/devkitpro/libogc/include/ogc/pad.h \
/opt/devkitpro/libogc/include/ogc/tpl.h \
/opt/devkitpro/libogc/include/ogc/gx.h \
/opt/devkitpro/libogc/include/ogc/system.h \
/opt/devkitpro/libogc/include/gcutil.h \
/opt/devkitpro/libogc/include/ogc/video.h \
/opt/devkitpro/libogc/include/ogc/video_types.h \
/opt/devkitpro/libogc/include/ogc/usbgecko.h \
/opt/devkitpro/libogc/include/ogc/video_types.h \
/opt/devkitpro/libogc/include/ogc/texconv.h \
/opt/devkitpro/libogc/include/ogc/ipc.h \
/opt/devkitpro/libogc/include/ogc/es.h \
/opt/devkitpro/libogc/include/ogc/stm.h \
/opt/devkitpro/libogc/include/ogc/ios.h \
/opt/devkitpro/libogc/include/ogc/usb.h \
/opt/devkitpro/libogc/include/ogc/isfs.h \
/opt/devkitpro/libogc/include/ogc/conf.h \
/opt/devkitpro/libogc/include/ogc/usbstorage.h \
/opt/devkitpro/libogc/include/ogc/cond.h \
/opt/devkitpro/libogc/include/ogc/disc_io.h \
/opt/devkitpro/libogc/include/ogc/wiilaunch.h \
/opt/devkitpro/libogc/include/wiiuse/wpad.h \
/opt/devkitpro/libogc/include/wiiuse/wiiuse.h \
/opt/devkitpro/libogc/include/bte/bte.h \
/opt/devkitpro/libogc/include/bte/bd_addr.h \
/opt/devkitpro/libogc/include/fat.h \
/home/alonetrio/wii/GRRLib3.0.5a/template/source/GRRLIB/GRRLIB.h \
/home/alonetrio/wii/GRRLib3.0.5a/template/source/GRRLIB/../libpng/pngu/pngu.h \
/home/alonetrio/wii/GRRLib3.0.5a/template/source/gfx/BMfont1.h \
/home/alonetrio/wii/GRRLib3.0.5a/template/source/gfx/BMfont2.h \
/home/alonetrio/wii/GRRLib3.0.5a/template/source/gfx/BMfont3.h \
/home/alonetrio/wii/GRRLib3.0.5a/template/source/gfx/BMfont4.h
/opt/devkitpro/libogc/include/ogcsys.h:
/opt/devkitpro/libogc/include/gccore.h:
/opt/devkitpro/libogc/include/ogc/dsp.h:
/opt/devkitpro/libogc/include/gctypes.h:
/opt/devkitpro/libogc/include/ogc/aram.h:
/opt/devkitpro/libogc/include/ogc/arqueue.h:
/opt/devkitpro/libogc/include/ogc/lwp_queue.h:
/opt/devkitpro/libogc/include/ogc/aram.h:
/opt/devkitpro/libogc/include/ogc/arqmgr.h:
/opt/devkitpro/libogc/include/ogc/audio.h:
/opt/devkitpro/libogc/include/ogc/cache.h:
/opt/devkitpro/libogc/include/ogc/card.h:
/opt/devkitpro/libogc/include/ogc/cast.h:
/opt/devkitpro/libogc/include/ogc/color.h:
/opt/devkitpro/libogc/include/ogc/consol.h:
/opt/devkitpro/libogc/include/ogc/gx_struct.h:
/opt/devkitpro/libogc/include/ogc/dvd.h:
/opt/devkitpro/libogc/include/ogc/exi.h:
/opt/devkitpro/libogc/include/ogc/gu.h:
/opt/devkitpro/libogc/include/ogc/gx.h:
/opt/devkitpro/libogc/include/ogc/lwp.h:
/opt/devkitpro/libogc/include/ogc/gu.h:
/opt/devkitpro/libogc/include/ogc/si.h:
/opt/devkitpro/libogc/include/ogc/gx_struct.h:
/opt/devkitpro/libogc/include/ogc/irq.h:
/opt/devkitpro/libogc/include/ogc/context.h:
/opt/devkitpro/libogc/include/ogc/lwp.h:
/opt/devkitpro/libogc/include/ogc/mutex.h:
/opt/devkitpro/libogc/include/ogc/message.h:
/opt/devkitpro/libogc/include/ogc/semaphore.h:
/opt/devkitpro/libogc/include/ogc/pad.h:
/opt/devkitpro/libogc/include/ogc/tpl.h:
/opt/devkitpro/libogc/include/ogc/gx.h:
/opt/devkitpro/libogc/include/ogc/system.h:
/opt/devkitpro/libogc/include/gcutil.h:
/opt/devkitpro/libogc/include/ogc/video.h:
/opt/devkitpro/libogc/include/ogc/video_types.h:
/opt/devkitpro/libogc/include/ogc/usbgecko.h:
/opt/devkitpro/libogc/include/ogc/video_types.h:
/opt/devkitpro/libogc/include/ogc/texconv.h:
/opt/devkitpro/libogc/include/ogc/ipc.h:
/opt/devkitpro/libogc/include/ogc/es.h:
/opt/devkitpro/libogc/include/ogc/stm.h:
/opt/devkitpro/libogc/include/ogc/ios.h:
/opt/devkitpro/libogc/include/ogc/usb.h:
/opt/devkitpro/libogc/include/ogc/isfs.h:
/opt/devkitpro/libogc/include/ogc/conf.h:
/opt/devkitpro/libogc/include/ogc/usbstorage.h:
/opt/devkitpro/libogc/include/ogc/cond.h:
/opt/devkitpro/libogc/include/ogc/disc_io.h:
/opt/devkitpro/libogc/include/ogc/wiilaunch.h:
/opt/devkitpro/libogc/include/wiiuse/wpad.h:
/opt/devkitpro/libogc/include/wiiuse/wiiuse.h:
/opt/devkitpro/libogc/include/bte/bte.h:
/opt/devkitpro/libogc/include/bte/bd_addr.h:
/opt/devkitpro/libogc/include/fat.h:
/home/alonetrio/wii/GRRLib3.0.5a/template/source/GRRLIB/GRRLIB.h:
/home/alonetrio/wii/GRRLib3.0.5a/template/source/GRRLIB/../libpng/pngu/pngu.h:
/home/alonetrio/wii/GRRLib3.0.5a/template/source/gfx/BMfont1.h:
/home/alonetrio/wii/GRRLib3.0.5a/template/source/gfx/BMfont2.h:
/home/alonetrio/wii/GRRLib3.0.5a/template/source/gfx/BMfont3.h:
/home/alonetrio/wii/GRRLib3.0.5a/template/source/gfx/BMfont4.h:

1
template/build/perso.d Normal file
View file

@ -0,0 +1 @@
perso.o: /home/alonetrio/wii/GRRLib3.0.5a/template/source/gfx/perso.c

17
template/build/pngu.d Normal file
View file

@ -0,0 +1,17 @@
pngu.o: \
/home/alonetrio/wii/GRRLib3.0.5a/template/source/libpng/pngu/pngu.c \
/home/alonetrio/wii/GRRLib3.0.5a/template/source/libpng/pngu/pngu.h \
/home/alonetrio/wii/GRRLib3.0.5a/template/source/libpng/pngu/../png.h \
/opt/devkitpro/libogc/include/zlib.h \
/opt/devkitpro/libogc/include/zconf.h \
/home/alonetrio/wii/GRRLib3.0.5a/template/source/libpng/pngu/../pngconf.h
/home/alonetrio/wii/GRRLib3.0.5a/template/source/libpng/pngu/pngu.h:
/home/alonetrio/wii/GRRLib3.0.5a/template/source/libpng/pngu/../png.h:
/opt/devkitpro/libogc/include/zlib.h:
/opt/devkitpro/libogc/include/zconf.h:
/home/alonetrio/wii/GRRLib3.0.5a/template/source/libpng/pngu/../pngconf.h:

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,322 @@
/*===========================================
GRRLIB (GX version) 3.0.5 alpha
Code : NoNameNo
GX hints : RedShade
===========================================*/
#include "GRRLIB.h"
#define DEFAULT_FIFO_SIZE (256 * 1024)
u32 fb=0;
static void *xfb[2] = { NULL, NULL};
GXRModeObj *rmode;
void *gp_fifo = NULL;
inline void GRRLIB_FillScreen(u32 color){
GRRLIB_Rectangle(-40, -40, 680,520, color, 1);
}
inline void GRRLIB_Plot(f32 x,f32 y, u32 color){
Vector v[]={{x,y,0.0f}};
GRRLIB_NPlot(v,color,1);
}
void GRRLIB_NPlot(Vector v[],u32 color,long n){
GRRLIB_GXEngine(v,color,n,GX_POINTS);
}
inline void GRRLIB_Line(f32 x1, f32 y1, f32 x2, f32 y2, u32 color){
Vector v[]={{x1,y1,0.0f},{x2,y2,0.0f}};
GRRLIB_NGone(v,color,2);
}
inline void GRRLIB_Rectangle(f32 x, f32 y, f32 width, f32 height, u32 color, u8 filled){
Vector v[]={{x,y,0.0f},{x+width,y,0.0f},{x+width,y+height,0.0f},{x,y+height,0.0f},{x,y,0.0f}};
if(!filled){
GRRLIB_NGone(v,color,5);
}
else{
GRRLIB_NGoneFilled(v,color,4);
}
}
void GRRLIB_NGone(Vector v[],u32 color,long n){
GRRLIB_GXEngine(v,color,n,GX_LINESTRIP);
}
void GRRLIB_NGoneFilled(Vector v[],u32 color,long n){
GRRLIB_GXEngine(v,color,n,GX_TRIANGLEFAN);
}
void GRRLIB_InitTileSet(struct GRRLIB_texImg *tex, unsigned int tilew, unsigned int tileh, unsigned int tilestart){
tex->tilew=tilew;
tex->tileh=tileh;
tex->nbtilew=tex->w/tilew;
tex->nbtileh=tex->h/tileh;
tex->tilestart=tilestart;
}
GRRLIB_texImg GRRLIB_LoadTexture(const unsigned char my_png[]) {
PNGUPROP imgProp;
IMGCTX ctx;
GRRLIB_texImg my_texture;
ctx = PNGU_SelectImageFromBuffer(my_png);
PNGU_GetImageProperties (ctx, &imgProp);
my_texture.data = memalign (32, imgProp.imgWidth * imgProp.imgHeight * 4);
PNGU_DecodeTo4x4RGBA8 (ctx, imgProp.imgWidth, imgProp.imgHeight, my_texture.data, 255);
PNGU_ReleaseImageContext (ctx);
DCFlushRange (my_texture.data, imgProp.imgWidth * imgProp.imgHeight * 4);
my_texture.w= imgProp.imgWidth;
my_texture.h= imgProp.imgHeight;
return my_texture;
}
// GRRLIB_LoadTextureFromFile
// Contribution by GRILLO
GRRLIB_texImg GRRLIB_LoadTextureFromFile(const char *filename) {
PNGUPROP imgProp;
IMGCTX ctx;
GRRLIB_texImg my_texture;
ctx = PNGU_SelectImageFromDevice(filename);
PNGU_GetImageProperties (ctx, &imgProp);
my_texture.data = memalign (32, imgProp.imgWidth * imgProp.imgHeight * 4);
PNGU_DecodeTo4x4RGBA8 (ctx, imgProp.imgWidth, imgProp.imgHeight, my_texture.data, 255);
PNGU_ReleaseImageContext (ctx);
DCFlushRange (my_texture.data, imgProp.imgWidth * imgProp.imgHeight * 4);
my_texture.w= imgProp.imgWidth;
my_texture.h= imgProp.imgHeight;
return my_texture;
}
inline void GRRLIB_DrawImg(f32 xpos, f32 ypos, GRRLIB_texImg tex, float degrees, float scaleX, f32 scaleY, u32 color ){
GXTexObj texObj;
u16 width,height;
GX_InitTexObj(&texObj, tex.data, tex.w,tex.h, GX_TF_RGBA8,GX_CLAMP, GX_CLAMP,GX_FALSE);
GX_InitTexObjLOD(&texObj, GX_NEAR, GX_NEAR, 0.0f, 0.0f, 0.0f, 0, 0, GX_ANISO_1);
GX_LoadTexObj(&texObj, GX_TEXMAP0);
GX_SetTevOp (GX_TEVSTAGE0, GX_MODULATE);
GX_SetVtxDesc (GX_VA_TEX0, GX_DIRECT);
Mtx m,m1,m2, mv;
width=tex.w * .5;
height=tex.h * .5;
guMtxIdentity (m1);
guMtxScaleApply(m1,m1,scaleX,scaleY,1.0);
Vector axis =(Vector) {0 , 0, 1 };
guMtxRotAxisDeg (m2, &axis, degrees);
guMtxConcat(m2,m1,m);
guMtxTransApply(m,m, xpos+width,ypos+height,0);
guMtxConcat (GXmodelView2D, m, mv);
GX_LoadPosMtxImm (mv, GX_PNMTX0);
GX_Begin(GX_QUADS, GX_VTXFMT0,4);
GX_Position3f32(-width, -height, 0);
GX_Color1u32(color);
GX_TexCoord2f32(0, 0);
GX_Position3f32(width, -height, 0);
GX_Color1u32(color);
GX_TexCoord2f32(1, 0);
GX_Position3f32(width, height, 0);
GX_Color1u32(color);
GX_TexCoord2f32(1, 1);
GX_Position3f32(-width, height, 0);
GX_Color1u32(color);
GX_TexCoord2f32(0, 1);
GX_End();
GX_LoadPosMtxImm (GXmodelView2D, GX_PNMTX0);
GX_SetTevOp (GX_TEVSTAGE0, GX_PASSCLR);
GX_SetVtxDesc (GX_VA_TEX0, GX_NONE);
}
inline void GRRLIB_DrawTile(f32 xpos, f32 ypos, GRRLIB_texImg tex, float degrees, float scaleX, f32 scaleY, u32 color, int frame){
GXTexObj texObj;
// Frame Correction by spiffen
f32 FRAME_CORR = 0.001f;
f32 s1= (((frame%tex.nbtilew))/(f32)tex.nbtilew)+(FRAME_CORR/tex.w);
f32 s2= (((frame%tex.nbtilew)+1)/(f32)tex.nbtilew)-(FRAME_CORR/tex.w);
f32 t1= (((int)(frame/tex.nbtilew))/(f32)tex.nbtileh)+(FRAME_CORR/tex.h);
f32 t2= (((int)(frame/tex.nbtilew)+1)/(f32)tex.nbtileh)-(FRAME_CORR/tex.h);
f32 width,height;
GX_InitTexObj(&texObj, tex.data, tex.tilew*tex.nbtilew,tex.tileh*tex.nbtileh, GX_TF_RGBA8,GX_CLAMP, GX_CLAMP,GX_FALSE);
GX_InitTexObjLOD(&texObj, GX_NEAR, GX_NEAR, 0.0f, 0.0f, 0.0f, 0, 0, GX_ANISO_1);
GX_LoadTexObj(&texObj, GX_TEXMAP0);
GX_SetTevOp (GX_TEVSTAGE0, GX_MODULATE);
GX_SetVtxDesc (GX_VA_TEX0, GX_DIRECT);
Mtx m,m1,m2, mv;
width =tex.tilew * 0.5f;
height = tex.tileh * 0.5f;
guMtxIdentity (m1);
guMtxScaleApply(m1,m1,scaleX,scaleY,1.0f);
Vector axis =(Vector) {0 , 0, 1 };
guMtxRotAxisDeg (m2, &axis, degrees);
guMtxConcat(m2,m1,m);
guMtxTransApply(m,m, xpos+width,ypos+height,0);
guMtxConcat (GXmodelView2D, m, mv);
GX_LoadPosMtxImm (mv, GX_PNMTX0);
GX_Begin(GX_QUADS, GX_VTXFMT0,4);
GX_Position3f32(-width, -height, 0);
GX_Color1u32(color);
GX_TexCoord2f32(s1, t1);
GX_Position3f32(width, -height, 0);
GX_Color1u32(color);
GX_TexCoord2f32(s2, t1);
GX_Position3f32(width, height, 0);
GX_Color1u32(color);
GX_TexCoord2f32(s2, t2);
GX_Position3f32(-width, height, 0);
GX_Color1u32(color);
GX_TexCoord2f32(s1, t2);
GX_End();
GX_LoadPosMtxImm (GXmodelView2D, GX_PNMTX0);
GX_SetTevOp (GX_TEVSTAGE0, GX_PASSCLR);
GX_SetVtxDesc (GX_VA_TEX0, GX_NONE);
}
void GRRLIB_Printf(f32 xpos, f32 ypos, GRRLIB_texImg tex, u32 color, f32 zoom, char *text,...){
int i ;
char tmp[1024];
int size=0;
va_list argp;
va_start(argp, text);
vsprintf(tmp, text, argp);
va_end(argp);
size = strlen(tmp);
for(i=0;i<strlen(tmp);i++){
u8 c = tmp[i]-tex.tilestart;
GRRLIB_DrawTile(xpos+i*tex.tilew*zoom, ypos, tex, 0, zoom, zoom, color, c);
}
}
void GRRLIB_GXEngine(Vector v[], u32 color, long n,u8 fmt){
int i=0;
GX_Begin(fmt, GX_VTXFMT0,n);
for(i=0;i<n;i++){
GX_Position3f32(v[i].x, v[i].y, v[i].z);
GX_Color1u32(color);
}
GX_End();
}
//********************************************************************************************
void GRRLIB_InitVideo () {
VIDEO_Init();
rmode = VIDEO_GetPreferredMode(NULL);
VIDEO_Configure (rmode);
xfb[0] = (u32 *)MEM_K0_TO_K1(SYS_AllocateFramebuffer(rmode));
xfb[1] = (u32 *)MEM_K0_TO_K1(SYS_AllocateFramebuffer(rmode));
VIDEO_SetNextFramebuffer(xfb[fb]);
VIDEO_SetBlack(FALSE);
VIDEO_Flush();
VIDEO_WaitVSync();
if(rmode->viTVMode&VI_NON_INTERLACE) VIDEO_WaitVSync();
gp_fifo = (u8 *) memalign(32,DEFAULT_FIFO_SIZE);
}
void GRRLIB_Start(){
f32 yscale;
u32 xfbHeight;
Mtx perspective;
GX_Init (gp_fifo, DEFAULT_FIFO_SIZE);
// clears the bg to color and clears the z buffer
GXColor background = { 0, 0, 0, 0xff };
GX_SetCopyClear (background, GX_MAX_Z24);
// other gx setup
yscale = GX_GetYScaleFactor(rmode->efbHeight,rmode->xfbHeight);
xfbHeight = GX_SetDispCopyYScale(yscale);
GX_SetScissor(0,0,rmode->fbWidth,rmode->efbHeight);
GX_SetDispCopySrc(0,0,rmode->fbWidth,rmode->efbHeight);
GX_SetDispCopyDst(rmode->fbWidth,xfbHeight);
GX_SetCopyFilter(rmode->aa,rmode->sample_pattern,GX_TRUE,rmode->vfilter);
GX_SetFieldMode(rmode->field_rendering,((rmode->viHeight==2*rmode->xfbHeight)?GX_ENABLE:GX_DISABLE));
if (rmode->aa)
GX_SetPixelFmt(GX_PF_RGB565_Z16, GX_ZC_LINEAR);
else
GX_SetPixelFmt(GX_PF_RGB8_Z24, GX_ZC_LINEAR);
GX_SetDispCopyGamma(GX_GM_1_0);
// setup the vertex descriptor
// tells the flipper to expect direct data
GX_ClearVtxDesc();
GX_InvVtxCache ();
GX_InvalidateTexAll();
GX_SetVtxDesc(GX_VA_TEX0, GX_NONE);
GX_SetVtxDesc(GX_VA_POS, GX_DIRECT);
GX_SetVtxDesc (GX_VA_CLR0, GX_DIRECT);
GX_SetVtxAttrFmt (GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0);
GX_SetVtxAttrFmt (GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0);
GX_SetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0);
GX_SetZMode (GX_FALSE, GX_LEQUAL, GX_TRUE);
GX_SetNumChans(1);
GX_SetNumTexGens(1);
GX_SetTevOp (GX_TEVSTAGE0, GX_PASSCLR);
GX_SetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0);
GX_SetTexCoordGen(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, GX_IDENTITY);
guMtxIdentity(GXmodelView2D);
guMtxTransApply (GXmodelView2D, GXmodelView2D, 0.0F, 0.0F, -50.0F);
GX_LoadPosMtxImm(GXmodelView2D,GX_PNMTX0);
guOrtho(perspective,0,479,0,639,0,300);
GX_LoadProjectionMtx(perspective, GX_ORTHOGRAPHIC);
GX_SetViewport(0,0,rmode->fbWidth,rmode->efbHeight,0,1);
GX_SetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_CLEAR);
GX_SetAlphaUpdate(GX_TRUE);
GX_SetCullMode(GX_CULL_NONE);
}
void GRRLIB_Render () {
GX_DrawDone ();
fb ^= 1; // flip framebuffer
GX_SetZMode(GX_TRUE, GX_LEQUAL, GX_TRUE);
GX_SetColorUpdate(GX_TRUE);
GX_CopyDisp(xfb[fb],GX_TRUE);
VIDEO_SetNextFramebuffer(xfb[fb]);
VIDEO_Flush();
VIDEO_WaitVSync();
}

View file

@ -0,0 +1,64 @@
/*===========================================
GRRLIB (GX version) 3.0.5 alpha
Code : NoNameNo
GX hints : RedShade
===========================================*/
#ifndef __GXHDR__
#define __GXHDR__
#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h>
#include <string.h>
#include <malloc.h>
#include <math.h>
#include <gccore.h>
#include "../libpng/pngu/pngu.h"
typedef struct GRRLIB_texImg{
unsigned int w;
unsigned int h;
unsigned int tilew;
unsigned int tileh;
unsigned int nbtilew;
unsigned int nbtileh;
unsigned int tilestart;
void *data;
} GRRLIB_texImg;
extern Mtx GXmodelView2D;
inline void GRRLIB_FillScreen(u32 color);
inline void GRRLIB_Plot(f32 x,f32 y, u32 color);
void GRRLIB_NPlot(Vector v[],u32 color,long n);
inline void GRRLIB_Line(f32 x1, f32 y1, f32 x2, f32 y2, u32 color);
inline void GRRLIB_Rectangle(f32 x, f32 y, f32 width, f32 height, u32 color, u8 filled);
void GRRLIB_NGone(Vector v[],u32 color,long n);
void GRRLIB_NGoneFilled(Vector v[],u32 color,long n);
GRRLIB_texImg GRRLIB_LoadTexture(const unsigned char my_png[]);
GRRLIB_texImg GRRLIB_LoadTextureFromFile(const char *filename);
void GRRLIB_InitTileSet(struct GRRLIB_texImg *tex, unsigned int tilew, unsigned int tileh, unsigned int tilestart);
inline void GRRLIB_DrawImg(f32 xpos, f32 ypos, GRRLIB_texImg tex, float degrees, float scaleX, f32 scaleY, u32 color );
inline void GRRLIB_DrawTile(f32 xpos, f32 ypos, GRRLIB_texImg tex, float degrees, float scaleX, f32 scaleY, u32 color, int frame);
void GRRLIB_Printf(f32 xpos, f32 ypos, GRRLIB_texImg tex, u32 color, f32 zoom, char *text,...);
void GRRLIB_GXEngine(Vector v[], u32 color, long count,u8 fmt);
void GRRLIB_InitVideo ();
void GRRLIB_Start();
void GRRLIB_Render ();
#endif

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,14 @@
/*
This file was autogenerated by raw2c.
Visit http://www.devkitpro.org
*/
//---------------------------------------------------------------------------------
#ifndef _BMfont1_h_
#define _BMfont1_h_
//---------------------------------------------------------------------------------
extern const unsigned char BMfont1[];
extern const int BMfont1_size;
//---------------------------------------------------------------------------------
#endif //_BMfont1_h_
//---------------------------------------------------------------------------------

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

View file

@ -0,0 +1,213 @@
/*
This file was autogenerated by raw2c.
Visit http://www.devkitpro.org
*/
const unsigned char BMfont2[] = {
0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52,
0x00, 0x00, 0x01, 0x40, 0x00, 0x00, 0x00, 0x30, 0x08, 0x06, 0x00, 0x00, 0x00, 0x60, 0xc5, 0xa3,
0xdf, 0x00, 0x00, 0x00, 0x01, 0x73, 0x52, 0x47, 0x42, 0x00, 0xae, 0xce, 0x1c, 0xe9, 0x00, 0x00,
0x0c, 0x82, 0x49, 0x44, 0x41, 0x54, 0x78, 0xda, 0xed, 0x5d, 0x4d, 0x8e, 0xea, 0x30, 0x0c, 0x0e,
0x88, 0x73, 0x74, 0xc5, 0x48, 0x73, 0x08, 0xd6, 0x48, 0xdc, 0x63, 0xd6, 0x1c, 0x86, 0x35, 0xf7,
0x40, 0xea, 0x9a, 0x43, 0x20, 0xc1, 0xaa, 0x17, 0xe9, 0x5b, 0xbc, 0x09, 0x0a, 0xc6, 0x76, 0xec,
0xd8, 0x69, 0x81, 0x89, 0x77, 0xf3, 0xe3, 0xda, 0x8d, 0x1d, 0xc7, 0x4e, 0x9c, 0xaf, 0x8b, 0x50,
0x89, 0xbe, 0xf7, 0xdf, 0x63, 0xb7, 0xee, 0x42, 0xf7, 0xd5, 0x85, 0xe1, 0x3a, 0x84, 0xe1, 0x36,
0x84, 0xcb, 0xe1, 0xb2, 0x08, 0x8d, 0xaa, 0x52, 0x3a, 0xee, 0x21, 0x04, 0xd3, 0xd8, 0xc7, 0x67,
0x85, 0x10, 0xc4, 0xcf, 0xd8, 0x1e, 0xb6, 0xa3, 0x87, 0xec, 0x46, 0xf5, 0x7c, 0x83, 0xb2, 0x27,
0xf4, 0x1d, 0x48, 0xa5, 0xf6, 0xcc, 0xc5, 0x82, 0x9c, 0x5c, 0xa9, 0x0e, 0x25, 0xfa, 0xaf, 0x6a,
0x0c, 0x74, 0x3a, 0x09, 0x42, 0x08, 0x77, 0x85, 0x2e, 0xe1, 0xd2, 0xbc, 0xb0, 0xb2, 0x83, 0x6f,
0x76, 0x9b, 0x87, 0xdf, 0x75, 0x5f, 0x77, 0x87, 0x18, 0x35, 0x8e, 0x0b, 0x6d, 0x28, 0xb5, 0xdf,
0x70, 0x1b, 0x1e, 0xe4, 0x76, 0x5f, 0x5d, 0xe8, 0xd6, 0xdd, 0xd8, 0xef, 0xfb, 0x16, 0x04, 0x67,
0x26, 0x18, 0x1c, 0x52, 0x7b, 0x62, 0xf6, 0x8e, 0x01, 0x23, 0xf2, 0x69, 0xec, 0x49, 0x05, 0x23,
0x18, 0x0b, 0x30, 0x9f, 0x4d, 0x03, 0x15, 0x7c, 0x0e, 0xe5, 0xcf, 0xa5, 0xfa, 0x2f, 0xab, 0xac,
0x32, 0x48, 0x04, 0x8e, 0x13, 0xa3, 0x51, 0x5d, 0x07, 0x2f, 0xf9, 0x9b, 0xd4, 0x86, 0x12, 0xba,
0x1c, 0x2e, 0x8b, 0x7e, 0xdf, 0x2f, 0x86, 0xeb, 0xf0, 0xe0, 0xf4, 0xdf, 0xfb, 0xef, 0xb1, 0x59,
0x68, 0x66, 0xff, 0x40, 0x92, 0x12, 0xca, 0xde, 0x69, 0x10, 0xd2, 0xd8, 0xf3, 0x7b, 0xff, 0x3d,
0x6e, 0x0f, 0xdb, 0x71, 0xb3, 0xdb, 0xd0, 0x99, 0x58, 0x12, 0x0b, 0x52, 0xbf, 0x1c, 0xae, 0x43,
0x38, 0x9f, 0xce, 0xa1, 0xdf, 0xf7, 0x8b, 0x18, 0xdc, 0x30, 0xf9, 0x90, 0xcf, 0xa2, 0xff, 0x72,
0x8a, 0x49, 0x38, 0x5c, 0x5b, 0x19, 0x34, 0xb5, 0x83, 0x6b, 0xfe, 0x26, 0xb2, 0xa1, 0x71, 0x01,
0xd3, 0x04, 0xe0, 0x46, 0xf3, 0x2f, 0x9c, 0xb9, 0x52, 0x17, 0xe3, 0xc9, 0x05, 0x3e, 0x2e, 0x16,
0xe4, 0xca, 0x6b, 0xe8, 0x7f, 0x0f, 0xc1, 0xdc, 0xa0, 0xbf, 0x6b, 0x00, 0xa4, 0x32, 0x87, 0x56,
0xfe, 0xbc, 0xd9, 0x3e, 0x11, 0xb2, 0x9a, 0x6a, 0x17, 0x30, 0xce, 0x61, 0x1b, 0xcd, 0x4f, 0x31,
0x23, 0x92, 0xda, 0x5b, 0x62, 0xcf, 0x7e, 0xdf, 0x2f, 0x8e, 0xbb, 0xe3, 0xe2, 0x7c, 0x3a, 0x07,
0x98, 0xb1, 0x51, 0xb1, 0x60, 0xb8, 0x0d, 0xa2, 0xbd, 0xc5, 0x27, 0x7d, 0x40, 0x46, 0x57, 0xaa,
0xff, 0x6a, 0xaa, 0x81, 0x9e, 0x7d, 0x52, 0xff, 0x46, 0xfc, 0x4f, 0x0e, 0xc6, 0xc3, 0x75, 0x60,
0x37, 0x80, 0x8b, 0x9f, 0x5b, 0x90, 0xfd, 0x5d, 0x0e, 0x97, 0xc5, 0x66, 0xb7, 0x69, 0x65, 0xef,
0x0b, 0x2d, 0x6c, 0x52, 0x9b, 0x5a, 0xb3, 0xfd, 0xcb, 0xe1, 0xb2, 0x08, 0xfb, 0x80, 0x06, 0x56,
0xec, 0x7f, 0x25, 0x7b, 0xcb, 0x9c, 0xfe, 0xa9, 0xdf, 0xc7, 0x60, 0x2a, 0x8d, 0x4b, 0xae, 0x01,
0xb0, 0x46, 0xe9, 0xe4, 0x11, 0xf8, 0xe2, 0xe0, 0x9c, 0x4f, 0xe7, 0xcf, 0x5e, 0xd5, 0x93, 0x03,
0x88, 0x52, 0x3b, 0x60, 0x36, 0x6c, 0xdb, 0x17, 0x9f, 0x55, 0xe6, 0xa6, 0x19, 0x92, 0xd4, 0xde,
0xda, 0x2d, 0x0c, 0xef, 0x58, 0x40, 0xe9, 0xff, 0x14, 0x0c, 0x89, 0x4c, 0x12, 0xf2, 0x47, 0x1e,
0xdf, 0x00, 0xf8, 0xf5, 0x1a, 0x93, 0xc7, 0xb3, 0x15, 0xe4, 0x9d, 0x08, 0x9e, 0xa6, 0xfd, 0xa5,
0x77, 0xff, 0x14, 0xdf, 0xf1, 0x96, 0x8f, 0x3d, 0x4f, 0x53, 0x05, 0x69, 0x5a, 0x54, 0x44, 0x99,
0x61, 0x05, 0xfd, 0xb9, 0x2c, 0x32, 0x37, 0x9e, 0xae, 0x01, 0x10, 0x96, 0x60, 0x53, 0x97, 0xbf,
0x7f, 0x35, 0xf0, 0x45, 0x3a, 0xee, 0x8e, 0xe6, 0xf7, 0x94, 0x94, 0x2d, 0x9f, 0x1c, 0xfc, 0xbc,
0xda, 0x88, 0xe6, 0x96, 0x2f, 0x9d, 0x0b, 0x94, 0xbd, 0x31, 0x7e, 0xd5, 0x41, 0x9a, 0xd1, 0x8f,
0xac, 0x73, 0x99, 0xd2, 0xff, 0xae, 0xd7, 0xfe, 0xff, 0x78, 0xfa, 0x06, 0xc0, 0xa4, 0x04, 0x93,
0xd6, 0xe2, 0x35, 0xd2, 0xfc, 0x96, 0xf5, 0xf8, 0xdb, 0xf4, 0xaf, 0x95, 0x89, 0xd8, 0xdf, 0x6a,
0xf7, 0xb1, 0x5a, 0xe5, 0xa7, 0x7b, 0xdd, 0x96, 0x24, 0x80, 0x6a, 0x66, 0xff, 0x39, 0xfd, 0x54,
0xdd, 0xd3, 0xf5, 0xd2, 0x9f, 0xaa, 0x80, 0xa2, 0xfe, 0x69, 0x2f, 0xa2, 0x6b, 0x00, 0x94, 0x6e,
0x68, 0xd6, 0xa2, 0x76, 0xda, 0xfc, 0x5a, 0xd9, 0xd4, 0xdb, 0x05, 0x40, 0xa7, 0x36, 0xa2, 0x39,
0xe4, 0xc3, 0x46, 0xe0, 0xd2, 0xc0, 0x41, 0x05, 0x1e, 0xab, 0x3d, 0x73, 0x0b, 0x69, 0xa9, 0xfe,
0xd4, 0xed, 0x16, 0x18, 0x8b, 0xa0, 0xfe, 0x55, 0x4e, 0x81, 0x4b, 0xae, 0x4e, 0x35, 0x7a, 0xb1,
0x8c, 0x0f, 0x94, 0x3a, 0xa5, 0x99, 0x0f, 0xcc, 0x66, 0xfe, 0x52, 0x29, 0x3d, 0x35, 0x61, 0xc1,
0x43, 0x9a, 0x0c, 0x60, 0xa5, 0xad, 0x84, 0xdf, 0xd3, 0x9e, 0x52, 0xfd, 0xb1, 0xf8, 0xc2, 0xdd,
0x6e, 0x91, 0xe8, 0xef, 0xda, 0x07, 0xf8, 0x70, 0xe5, 0xa4, 0x35, 0xbe, 0xb6, 0x92, 0xf7, 0xcd,
0x4a, 0x69, 0x6e, 0x52, 0x4f, 0x11, 0xc0, 0x4b, 0xe4, 0xc3, 0x3e, 0x3e, 0xed, 0x21, 0x07, 0xb4,
0x0b, 0xc5, 0xff, 0xb4, 0xa0, 0x29, 0xed, 0x49, 0x25, 0x43, 0x9a, 0xe0, 0x8d, 0xc5, 0x97, 0x87,
0x5b, 0x25, 0x5f, 0x5d, 0xd8, 0x1e, 0xb6, 0xa3, 0x68, 0x41, 0xbe, 0x55, 0x08, 0x80, 0x8d, 0xde,
0x9f, 0x2e, 0x87, 0xcb, 0xd3, 0xb5, 0xa1, 0xed, 0x61, 0x3b, 0x4a, 0x4b, 0xa0, 0x78, 0x15, 0x0a,
0x3a, 0xf5, 0x3b, 0x54, 0x03, 0xb1, 0x29, 0x77, 0xae, 0x00, 0x5e, 0xd2, 0x9b, 0x47, 0xb5, 0x77,
0x78, 0xd9, 0xbb, 0xd4, 0x9e, 0xe9, 0x33, 0x35, 0x8b, 0x07, 0xe7, 0x6f, 0x28, 0xbe, 0x80, 0x51,
0x7f, 0x57, 0xa7, 0x6c, 0x25, 0xf0, 0xe7, 0x50, 0x69, 0xfb, 0xc4, 0x3b, 0xa3, 0xc1, 0x60, 0x9b,
0xfc, 0xaf, 0xde, 0x06, 0xe3, 0x35, 0xe7, 0x24, 0xed, 0x2e, 0x9a, 0xb1, 0x90, 0xea, 0x55, 0xda,
0x66, 0x03, 0xfd, 0xd1, 0x5b, 0xff, 0x46, 0x8d, 0x1a, 0x35, 0xfa, 0x78, 0x22, 0xf1, 0xc0, 0xb0,
0x53, 0x20, 0xec, 0x6f, 0xda, 0x08, 0x4e, 0x45, 0x61, 0x4b, 0x04, 0x7f, 0x05, 0x1d, 0x24, 0xfc,
0x92, 0x15, 0xa8, 0x46, 0xff, 0xd3, 0xa7, 0xaf, 0x7a, 0x5e, 0x78, 0x72, 0x9e, 0x14, 0x33, 0x61,
0xcd, 0x9e, 0x5c, 0x6d, 0xff, 0xab, 0xed, 0xbf, 0xaf, 0xae, 0x3f, 0xc6, 0x9f, 0xc5, 0xd3, 0x8a,
0xc6, 0xa3, 0x36, 0x2b, 0x73, 0xc7, 0xd7, 0x98, 0x52, 0xd0, 0x29, 0x38, 0x2c, 0xaf, 0xb8, 0xcf,
0x41, 0xf1, 0xe7, 0xf0, 0xc4, 0xa6, 0xd0, 0x21, 0xc7, 0x9f, 0xe3, 0x4d, 0x0d, 0x88, 0xdd, 0xe6,
0x08, 0xe1, 0xff, 0x35, 0x3e, 0x49, 0x4b, 0x80, 0x85, 0xff, 0x5d, 0x83, 0x9f, 0x06, 0x4f, 0x6e,
0x8a, 0xf1, 0x80, 0x3a, 0x49, 0x64, 0xd5, 0xf4, 0xbf, 0x29, 0xfc, 0xf7, 0x95, 0xf5, 0xe7, 0xf8,
0x57, 0xf7, 0x00, 0x91, 0xb9, 0x3f, 0x3a, 0xdc, 0x06, 0x74, 0x13, 0xf2, 0x49, 0x28, 0x88, 0xce,
0xd8, 0xc5, 0x68, 0x0d, 0x16, 0x59, 0x08, 0x21, 0x70, 0xfc, 0xd8, 0x26, 0x30, 0x74, 0xb6, 0xda,
0x3a, 0xe4, 0xf8, 0x2f, 0xe1, 0xf2, 0x60, 0xa0, 0x88, 0x47, 0xf6, 0xd4, 0x95, 0x6f, 0x6c, 0x84,
0x9d, 0xbb, 0x91, 0x77, 0x0e, 0xca, 0xd9, 0x1f, 0x1b, 0xff, 0xda, 0xe3, 0x01, 0xed, 0x90, 0x93,
0x55, 0xdb, 0xff, 0x6a, 0xfb, 0xaf, 0x54, 0x3e, 0x16, 0x2f, 0xa6, 0x7c, 0x7f, 0x4c, 0xfe, 0x92,
0x9a, 0x38, 0xf0, 0xa4, 0xa7, 0xd6, 0x6a, 0x29, 0xc1, 0xf2, 0x92, 0xc8, 0xce, 0xa5, 0xe7, 0x5a,
0x6c, 0x33, 0x8d, 0x0e, 0x5e, 0x78, 0x6a, 0xd6, 0x46, 0xdc, 0xb9, 0x1b, 0x79, 0xe7, 0x24, 0x0b,
0x9e, 0x9c, 0x7b, 0x39, 0x8e, 0xa0, 0x20, 0x73, 0xa7, 0xe8, 0x53, 0xf8, 0x9f, 0x95, 0xff, 0x69,
0xfc, 0xd6, 0x9d, 0x5a, 0xfe, 0x1d, 0xfa, 0x0a, 0x9c, 0x56, 0x8b, 0xf9, 0x89, 0x93, 0x65, 0x8b,
0xfc, 0x95, 0x37, 0x86, 0x1f, 0x36, 0xd0, 0xbf, 0x0d, 0x8b, 0x0f, 0xa7, 0x83, 0x94, 0x23, 0x72,
0x80, 0x89, 0x18, 0x7f, 0x7c, 0x11, 0xed, 0xbe, 0x8e, 0x16, 0x0f, 0xcd, 0xca, 0x4f, 0x65, 0xd0,
0x8d, 0x8c, 0x81, 0x4f, 0x68, 0x7f, 0x08, 0xcf, 0x55, 0xab, 0xaf, 0x0f, 0x66, 0xa4, 0xf7, 0xac,
0x89, 0xc8, 0x02, 0xa7, 0xf2, 0x3f, 0x2b, 0x3f, 0x1c, 0xbf, 0xc8, 0xa3, 0x91, 0x8f, 0xdd, 0x14,
0xd3, 0xf0, 0xc3, 0x8a, 0xd4, 0x43, 0xfe, 0x8a, 0x1b, 0x1c, 0xa8, 0xa8, 0x87, 0xa3, 0x62, 0xab,
0x09, 0xb7, 0x52, 0xe7, 0xf8, 0x3d, 0xf0, 0xc4, 0x24, 0x3a, 0x50, 0xfc, 0x9e, 0xb0, 0x3f, 0x56,
0x3c, 0xbf, 0x5a, 0x78, 0x80, 0xaf, 0x4c, 0x35, 0xec, 0x5f, 0x4a, 0x58, 0x0b, 0x50, 0x0c, 0x16,
0xb1, 0x3f, 0x4d, 0x92, 0x58, 0x68, 0xfc, 0x6f, 0x2a, 0xfe, 0xd2, 0xb9, 0xee, 0xc9, 0x2f, 0xb5,
0x35, 0x27, 0x1f, 0x62, 0x83, 0xae, 0xa4, 0x13, 0xd8, 0x7a, 0xb3, 0x43, 0xaa, 0x3c, 0x57, 0xc2,
0x5a, 0xf6, 0x6c, 0x3c, 0xf1, 0xd0, 0x72, 0x2b, 0x6c, 0x29, 0x9e, 0x1a, 0xcc, 0x12, 0xb5, 0x4e,
0x65, 0xe5, 0xff, 0x64, 0xd2, 0xd8, 0xcf, 0xa3, 0xf4, 0xbd, 0x67, 0xa4, 0xc9, 0xde, 0x15, 0xb6,
0xf7, 0x6b, 0xf5, 0xbf, 0xa9, 0xf8, 0x35, 0xe5, 0x33, 0xc6, 0x1f, 0x6f, 0x68, 0xc0, 0x4c, 0x5d,
0xca, 0x1f, 0x03, 0xb8, 0x64, 0xdf, 0x5c, 0x72, 0x42, 0x1c, 0xb1, 0x41, 0x57, 0xb9, 0x09, 0x6c,
0xc1, 0x03, 0xa3, 0x4e, 0x5f, 0xb5, 0xcd, 0x94, 0x96, 0x4b, 0xde, 0xde, 0x78, 0x68, 0x90, 0x9f,
0xda, 0xd4, 0xe5, 0x4e, 0xa0, 0x33, 0x81, 0xb3, 0xb8, 0x8d, 0xc5, 0xca, 0xff, 0x89, 0x64, 0xb5,
0xbf, 0x77, 0x80, 0xd5, 0x1e, 0xbe, 0xd4, 0xf6, 0xdf, 0xc9, 0xc7, 0xff, 0x56, 0x0e, 0x8b, 0x35,
0x5c, 0x07, 0xf5, 0xc1, 0x55, 0xee, 0xfd, 0x57, 0xd8, 0xc4, 0xdc, 0x1e, 0xb6, 0x23, 0x76, 0xfc,
0x9d, 0x2b, 0xbb, 0x28, 0x2c, 0xb1, 0x07, 0x07, 0x10, 0xe0, 0x9b, 0x59, 0xf9, 0xa9, 0x17, 0xc7,
0x02, 0x01, 0xcc, 0x9a, 0x72, 0xef, 0x00, 0x4b, 0x19, 0xac, 0xec, 0xec, 0xd6, 0xdd, 0xff, 0x53,
0x2b, 0x25, 0x9e, 0x9a, 0x15, 0x0f, 0x6e, 0x6e, 0x3c, 0xbb, 0x57, 0x0b, 0x7a, 0xe9, 0x02, 0x55,
0x73, 0x21, 0x80, 0xa5, 0x6f, 0xbf, 0xef, 0x17, 0x52, 0xff, 0x91, 0xe2, 0xf1, 0x69, 0xf9, 0x31,
0x7f, 0xc0, 0xf0, 0x22, 0xad, 0xb8, 0x7d, 0x1a, 0x3c, 0x41, 0x2b, 0x1e, 0x21, 0x5a, 0x99, 0x1a,
0xc7, 0x6f, 0x85, 0x4e, 0xe0, 0x2f, 0x5c, 0x71, 0xf4, 0xaa, 0x50, 0x12, 0x40, 0xe2, 0xc3, 0x21,
0x2f, 0xaa, 0x08, 0xb1, 0x12, 0x42, 0x7e, 0xea, 0x45, 0x31, 0xfe, 0x12, 0xc7, 0x87, 0x07, 0x34,
0xd4, 0x5e, 0x0e, 0xfc, 0x36, 0x69, 0xcc, 0xf2, 0xb0, 0xb2, 0x53, 0x33, 0x7e, 0xd2, 0x32, 0xb9,
0xb5, 0xc1, 0xd4, 0xaf, 0x38, 0xbc, 0x4a, 0x5f, 0x6a, 0x2f, 0x30, 0x06, 0x23, 0xaa, 0x0d, 0xaa,
0xc4, 0xff, 0xb8, 0xa0, 0x1c, 0x4b, 0x3d, 0xac, 0x1a, 0xa9, 0xd9, 0x07, 0x69, 0xbd, 0x0e, 0xe9,
0x71, 0x9d, 0x32, 0x8e, 0x35, 0x85, 0x07, 0x18, 0xc7, 0x6f, 0x45, 0xad, 0x56, 0x52, 0xc1, 0xb0,
0xec, 0xc2, 0x6e, 0x91, 0xa0, 0x7d, 0x58, 0x44, 0x36, 0x44, 0x7d, 0x3d, 0x3e, 0xc7, 0x6f, 0xc1,
0x43, 0x83, 0x9b, 0xd5, 0x28, 0x3f, 0xec, 0x43, 0xfa, 0x0d, 0x28, 0x58, 0xd9, 0x89, 0xf1, 0x4b,
0x0e, 0x91, 0x5a, 0x1b, 0x8c, 0x6f, 0xa9, 0x3b, 0x45, 0xe9, 0x0f, 0x17, 0x1d, 0x6c, 0xe2, 0x25,
0x7f, 0x1b, 0x73, 0x0b, 0x92, 0xd6, 0xff, 0x28, 0x5f, 0xc6, 0xca, 0xdc, 0x34, 0x1b, 0xcc, 0xf1,
0x53, 0x7b, 0x70, 0xb9, 0x4c, 0x91, 0x1b, 0x7f, 0xc9, 0xfd, 0x60, 0xab, 0xfd, 0xe2, 0x7b, 0xe7,
0xd0, 0xd1, 0xe3, 0xfb, 0xaf, 0x62, 0x10, 0x93, 0xa0, 0xcd, 0x52, 0x03, 0x20, 0xe1, 0xe7, 0x36,
0xe8, 0x53, 0xa2, 0x14, 0xe7, 0xf8, 0x2d, 0x78, 0x68, 0x71, 0x30, 0xb4, 0xfc, 0x0f, 0x18, 0x64,
0x05, 0x07, 0x34, 0x0d, 0x1f, 0xcf, 0x97, 0xe6, 0x02, 0xe3, 0x45, 0x2f, 0x10, 0x28, 0xfd, 0xc7,
0x9b, 0x5f, 0x32, 0x7f, 0x29, 0x7e, 0x6e, 0xef, 0x52, 0x12, 0x28, 0x29, 0xfd, 0xb1, 0x24, 0x8b,
0xb2, 0x57, 0x8d, 0x7d, 0x4a, 0xea, 0xfd, 0x97, 0x9a, 0x20, 0x41, 0x0d, 0xc0, 0xf6, 0xb0, 0x1d,
0x29, 0x1c, 0x2e, 0x49, 0x79, 0xc6, 0x29, 0x4a, 0xca, 0xff, 0x0d, 0x20, 0xd6, 0xe0, 0x27, 0xc5,
0x53, 0xe3, 0xf4, 0x8f, 0x90, 0x3b, 0x1c, 0x6c, 0x94, 0xc4, 0x81, 0xac, 0x78, 0x74, 0x73, 0xe3,
0xd9, 0xcd, 0x9d, 0x01, 0x6e, 0x0f, 0xdb, 0xf1, 0xe7, 0xf4, 0x33, 0x6a, 0xe0, 0xbb, 0xbc, 0xe9,
0x7c, 0x3a, 0x93, 0xd7, 0x1c, 0x25, 0x76, 0xd1, 0xfa, 0x9f, 0xd4, 0xae, 0x96, 0xf9, 0x87, 0xcd,
0x91, 0x18, 0x28, 0x35, 0xfa, 0x4b, 0x2a, 0x40, 0x35, 0x9e, 0x21, 0x90, 0x2f, 0x9d, 0x7f, 0x91,
0x8a, 0x11, 0xa1, 0xe3, 0x00, 0xa4, 0x01, 0x28, 0x1e, 0x9e, 0xc0, 0x3d, 0x07, 0xcd, 0x66, 0x6b,
0x3c, 0x40, 0xc8, 0x9d, 0xa2, 0x52, 0x01, 0x44, 0x7b, 0xca, 0x94, 0x0b, 0x4c, 0x92, 0x53, 0x5c,
0xb8, 0x3f, 0xd3, 0xad, 0xbb, 0x91, 0xbb, 0x8b, 0xca, 0x35, 0x7a, 0x5a, 0xdb, 0x60, 0xc8, 0xac,
0xe4, 0xc3, 0xdb, 0x60, 0xa0, 0x0d, 0xb8, 0x0c, 0xc3, 0x93, 0xa4, 0x08, 0xda, 0xd4, 0x02, 0xfe,
0x74, 0x08, 0xa7, 0xf4, 0xbf, 0xa7, 0x06, 0x7b, 0xe1, 0xfc, 0xe1, 0xf4, 0x8f, 0xfc, 0x92, 0x3b,
0xf4, 0x98, 0xcf, 0x6a, 0xba, 0x20, 0x4a, 0xbe, 0xe9, 0xeb, 0xf9, 0xfe, 0xea, 0xe3, 0x74, 0x58,
0xbf, 0x97, 0xb4, 0xc9, 0x78, 0xa2, 0xc9, 0x58, 0xf1, 0xd0, 0xb8, 0x20, 0xad, 0xd5, 0x41, 0x72,
0x62, 0x5e, 0x13, 0x0d, 0xe6, 0x15, 0xf0, 0xec, 0x5e, 0x61, 0x0f, 0x70, 0x6e, 0x0c, 0x3f, 0xb8,
0x95, 0x93, 0xda, 0x85, 0xdb, 0x1b, 0xab, 0xed, 0x7f, 0x96, 0xf9, 0x67, 0x45, 0x61, 0xc9, 0xc9,
0x2f, 0x9d, 0xbf, 0x1e, 0xe3, 0xd7, 0xa8, 0x51, 0xa3, 0x46, 0x7f, 0x92, 0xcc, 0x78, 0x80, 0x53,
0xad, 0xca, 0x92, 0x67, 0xe5, 0xfe, 0x27, 0xb7, 0xda, 0x58, 0xf5, 0x85, 0xfc, 0x29, 0x64, 0x97,
0xe4, 0xb9, 0x9c, 0x7e, 0x29, 0xbe, 0xdc, 0xbb, 0xe2, 0xb9, 0xd5, 0x94, 0x3f, 0x15, 0x9e, 0xa4,
0xf4, 0xfd, 0x29, 0xb8, 0x26, 0xe9, 0x01, 0x81, 0x26, 0x83, 0xb4, 0xc8, 0xff, 0x39, 0xfd, 0x8c,
0xdc, 0xbe, 0x5b, 0xae, 0x22, 0xb1, 0xf2, 0x7b, 0x8e, 0xbf, 0x29, 0x00, 0x96, 0xe2, 0x01, 0x52,
0x0f, 0xce, 0x3d, 0xcf, 0x9a, 0xda, 0x4a, 0xf1, 0xc0, 0xa8, 0xff, 0x29, 0xe1, 0xe7, 0x08, 0xe3,
0x8f, 0xd7, 0x6d, 0x30, 0x8c, 0x3e, 0xd8, 0x87, 0x45, 0xf1, 0xa7, 0x8e, 0xa6, 0xe5, 0x7f, 0x15,
0x3c, 0xb7, 0xda, 0xf2, 0xbd, 0xf1, 0x24, 0xa5, 0x65, 0x54, 0xee, 0xfd, 0xb9, 0x20, 0xa6, 0x9d,
0x57, 0xb9, 0xff, 0xb3, 0xca, 0xcf, 0xf5, 0x05, 0xe6, 0xf0, 0x40, 0x4b, 0xf9, 0xe7, 0xc6, 0x73,
0x5c, 0xde, 0x03, 0x8d, 0x00, 0x0f, 0xf0, 0x61, 0x53, 0xf7, 0x8b, 0x3f, 0x15, 0xb5, 0x6e, 0xc4,
0xc7, 0x81, 0xb9, 0x67, 0x3d, 0x57, 0x5a, 0xbe, 0x54, 0x5e, 0x09, 0x9e, 0x98, 0x38, 0x50, 0x63,
0xb7, 0x56, 0xd6, 0xf4, 0xd7, 0xf1, 0xd2, 0xdf, 0x73, 0xfc, 0x70, 0xd3, 0x5c, 0xca, 0x9f, 0x3a,
0x51, 0xbf, 0xef, 0x9f, 0x3e, 0x1c, 0x93, 0x9e, 0x96, 0x65, 0xf1, 0xe0, 0x7e, 0x1b, 0xbe, 0x35,
0xe3, 0x3f, 0x95, 0x7c, 0xab, 0xee, 0x9b, 0xdd, 0x26, 0x0c, 0xd7, 0x21, 0x9c, 0x4f, 0xe7, 0x70,
0x3e, 0x9d, 0xd1, 0xc3, 0xb9, 0x12, 0xff, 0xc3, 0x4e, 0x47, 0xb1, 0xf7, 0x97, 0x1c, 0xee, 0xe5,
0x7c, 0xd9, 0x22, 0x9f, 0x03, 0xf5, 0x90, 0xc8, 0xb7, 0xf2, 0x43, 0x1f, 0x8f, 0xa7, 0xe8, 0xe9,
0xf7, 0x7d, 0xa1, 0xff, 0x48, 0xe4, 0xa9, 0x02, 0xa0, 0x37, 0x1e, 0xa0, 0xe4, 0x79, 0xd9, 0x6c,
0x6a, 0xfd, 0x7f, 0x55, 0x39, 0xee, 0x8e, 0x8b, 0x7e, 0xdf, 0x2f, 0xb8, 0x4c, 0xcc, 0x2a, 0xaf,
0x04, 0xcf, 0x4f, 0x62, 0x8c, 0xb4, 0xb1, 0x1a, 0xfb, 0x9b, 0x84, 0x1f, 0x3a, 0xaa, 0x94, 0x5f,
0x83, 0x47, 0x38, 0x37, 0x1e, 0xa2, 0x45, 0xbe, 0x55, 0xf7, 0xe8, 0x5f, 0x31, 0x58, 0x52, 0x93,
0x17, 0x9b, 0x84, 0x39, 0x1d, 0xd8, 0x00, 0xb0, 0xd6, 0xf5, 0xe1, 0x95, 0x8c, 0xbf, 0x44, 0x7e,
0xc4, 0xd9, 0xe3, 0x3e, 0x29, 0x99, 0xd3, 0xcb, 0xc2, 0x2f, 0x2d, 0x6d, 0x6b, 0xe1, 0x39, 0x2e,
0xbd, 0xf1, 0x00, 0x3d, 0x9e, 0x17, 0x03, 0x9e, 0x18, 0x30, 0xa1, 0x40, 0x9e, 0x15, 0x4f, 0x2d,
0x27, 0x9f, 0x92, 0xa7, 0xe5, 0x4f, 0x1d, 0x55, 0xca, 0x4f, 0xe1, 0x11, 0x6a, 0x32, 0xa8, 0x1a,
0x78, 0x88, 0x35, 0xe4, 0x6b, 0xf0, 0x24, 0x4b, 0x6d, 0x71, 0xef, 0x79, 0xbb, 0x0d, 0xc5, 0xef,
0x4f, 0xdd, 0x81, 0x2d, 0xed, 0xcf, 0xf4, 0x92, 0xff, 0x90, 0xc5, 0x65, 0x80, 0x5b, 0xc9, 0xf1,
0x34, 0xf0, 0xdf, 0x41, 0x4a, 0x6f, 0x3a, 0x84, 0x25, 0xaf, 0xbe, 0xd6, 0xa5, 0x74, 0xb2, 0x5a,
0x1a, 0x4b, 0xa7, 0x6e, 0xc2, 0x95, 0xe8, 0x5f, 0x15, 0x0f, 0x4d, 0xd8, 0x1c, 0xca, 0x65, 0xaf,
0x54, 0xb9, 0x28, 0x92, 0x8f, 0xe8, 0xaf, 0x02, 0x8b, 0xad, 0x80, 0x27, 0x37, 0x95, 0x7c, 0xee,
0xf7, 0x18, 0x1a, 0xb1, 0xc6, 0x96, 0x0f, 0xe5, 0x9a, 0x93, 0xff, 0x60, 0x7d, 0x7f, 0x54, 0x70,
0xae, 0xe5, 0xbf, 0x29, 0xda, 0x32, 0x95, 0x99, 0x72, 0xf2, 0x2d, 0xfc, 0xb1, 0xc4, 0x95, 0x1c,
0xa8, 0x7a, 0xce, 0xd1, 0x7b, 0x00, 0xf4, 0xc6, 0x03, 0xf4, 0x04, 0x08, 0xf5, 0x94, 0x37, 0x25,
0x1e, 0x5a, 0x5a, 0x2e, 0x95, 0x5c, 0xeb, 0x79, 0xda, 0x33, 0x5b, 0x77, 0x2a, 0xf9, 0x35, 0xf0,
0xdc, 0xe6, 0xc6, 0x93, 0x93, 0xc2, 0x4d, 0x71, 0xbf, 0xcf, 0x55, 0x16, 0x9c, 0x2f, 0xa5, 0x99,
0x96, 0xe7, 0xfb, 0x3f, 0x7d, 0xd8, 0x5b, 0xb0, 0x67, 0xec, 0x29, 0x1f, 0xcb, 0xe2, 0xb0, 0x52,
0x36, 0x37, 0xfe, 0x56, 0x7e, 0x8d, 0x9f, 0x78, 0xe2, 0x39, 0x56, 0xc5, 0x03, 0xb4, 0x18, 0xc4,
0x42, 0x9c, 0xfe, 0xa5, 0xf7, 0x0c, 0xb5, 0x9f, 0x39, 0x8c, 0x1d, 0xea, 0xb9, 0xe0, 0x2f, 0xe9,
0xf0, 0x2f, 0xc9, 0x02, 0xbd, 0xe8, 0xe5, 0xf0, 0xe4, 0x8c, 0x9f, 0x99, 0xb4, 0xa0, 0x8b, 0xd4,
0x6a, 0xa0, 0x4d, 0x4f, 0x53, 0x31, 0xe4, 0x68, 0xae, 0x7b, 0x21, 0xf7, 0xfe, 0x52, 0x5d, 0x53,
0x54, 0xa4, 0xa8, 0x03, 0x76, 0x8a, 0x4e, 0xc9, 0xb7, 0xf2, 0xcf, 0xe5, 0x7f, 0x2b, 0x2d, 0x9e,
0x56, 0x36, 0x52, 0x1b, 0xf1, 0xc5, 0x30, 0xd9, 0x1c, 0xb2, 0x43, 0x4d, 0x3c, 0x35, 0x4c, 0x8e,
0x94, 0x3f, 0x3a, 0x84, 0x76, 0xb2, 0x40, 0x7e, 0xec, 0xb4, 0xcc, 0x73, 0xbc, 0x6b, 0xe1, 0xb9,
0x79, 0xcb, 0xa7, 0xb2, 0x7b, 0x4f, 0x3c, 0x4a, 0xee, 0x5d, 0x28, 0x1f, 0xf4, 0xf0, 0x77, 0x6a,
0xc1, 0xbb, 0xb7, 0x81, 0x30, 0x57, 0xe5, 0x38, 0xf9, 0x5a, 0x08, 0x34, 0xa8, 0x03, 0xdc, 0xab,
0xcc, 0x05, 0x7f, 0x2b, 0x7f, 0x2e, 0xf0, 0xd5, 0x58, 0x7c, 0x56, 0x5c, 0xb6, 0x03, 0x05, 0xe7,
0xf0, 0xec, 0x6a, 0xac, 0xf6, 0x25, 0xe5, 0x73, 0x4e, 0x7f, 0x09, 0x9e, 0x1a, 0x16, 0x98, 0x34,
0x78, 0x6c, 0x2e, 0x7b, 0x89, 0x88, 0x43, 0x95, 0xec, 0x9f, 0x79, 0x8d, 0xdf, 0x1c, 0xf2, 0xa1,
0x0d, 0x38, 0x40, 0x5b, 0x0f, 0x3c, 0x4a, 0x6b, 0xf5, 0x52, 0xfa, 0xfe, 0xe8, 0x82, 0xf7, 0x0b,
0xaa, 0xab, 0x29, 0xfd, 0x1e, 0xbe, 0xb6, 0x66, 0x3c, 0x29, 0xb5, 0x5e, 0x60, 0xd0, 0xf2, 0x4f,
0x0d, 0x64, 0x8b, 0x06, 0x40, 0x6f, 0xc1, 0x52, 0x87, 0xf0, 0x00, 0x41, 0xd4, 0xe8, 0x4f, 0x4d,
0x00, 0x2a, 0xbd, 0xc6, 0x2e, 0x5d, 0xe7, 0xf0, 0xd4, 0x2c, 0x7b, 0x31, 0xd8, 0xa4, 0xb0, 0x2e,
0x2e, 0x9e, 0xe3, 0x27, 0x75, 0x66, 0xed, 0x33, 0xb4, 0x40, 0xa0, 0xde, 0x78, 0x94, 0xb5, 0xf6,
0xae, 0x25, 0xe3, 0x0f, 0x4b, 0x61, 0x38, 0x1e, 0xda, 0xd2, 0x31, 0x2d, 0x83, 0x73, 0xf2, 0xa9,
0x45, 0x27, 0xea, 0x92, 0x02, 0x7c, 0x48, 0xf8, 0xb5, 0xfe, 0x63, 0xe5, 0x77, 0xcd, 0x00, 0xa9,
0xeb, 0x3a, 0x1e, 0xa9, 0x3e, 0x46, 0x54, 0x97, 0x7a, 0xa9, 0x7c, 0x89, 0xfe, 0x1e, 0xab, 0xa3,
0x26, 0x63, 0x90, 0x06, 0xa0, 0x1c, 0x64, 0x3f, 0x97, 0x99, 0x72, 0x81, 0x99, 0x42, 0x23, 0x91,
0x8e, 0x9f, 0x56, 0x7e, 0x1a, 0x90, 0xba, 0x75, 0xf7, 0xf4, 0x35, 0x34, 0xa9, 0xfc, 0xa7, 0x8f,
0x72, 0x23, 0xef, 0xe7, 0x89, 0x47, 0xa9, 0x5e, 0xb0, 0x9c, 0xc7, 0x9f, 0xca, 0xfa, 0xc9, 0xd3,
0x6d, 0x66, 0xfc, 0xb1, 0x9f, 0x31, 0xf9, 0x54, 0xf0, 0x79, 0x42, 0x39, 0x22, 0x02, 0xa1, 0x15,
0x92, 0xce, 0xca, 0x6f, 0xa1, 0xa5, 0xd4, 0xf9, 0x35, 0x80, 0x88, 0x9a, 0x12, 0x02, 0x96, 0xd5,
0xd4, 0x73, 0xa5, 0xf2, 0xad, 0x78, 0x6a, 0x5a, 0x3c, 0x31, 0x69, 0xa0, 0x2b, 0xe5, 0x87, 0xa7,
0x84, 0x5e, 0x59, 0x8a, 0x76, 0xfc, 0xb4, 0xcf, 0xe9, 0xf7, 0xfd, 0x22, 0xde, 0xac, 0xc0, 0x4e,
0x06, 0x35, 0xf2, 0xd3, 0x53, 0x71, 0xea, 0x1b, 0x36, 0x5a, 0x3c, 0x4a, 0xc9, 0x02, 0xae, 0x41,
0x13, 0xf7, 0x1a, 0x7f, 0xcc, 0xde, 0x5c, 0xe9, 0x8b, 0xed, 0x09, 0x3e, 0x2c, 0x18, 0xe0, 0x67,
0xc8, 0x47, 0xe1, 0x61, 0xc6, 0x53, 0x73, 0x78, 0x3b, 0xa6, 0xfb, 0xea, 0xc2, 0x66, 0xb7, 0xb9,
0xdb, 0x53, 0x8a, 0xa7, 0xe9, 0x11, 0xfc, 0x52, 0xcc, 0x47, 0xaf, 0xed, 0xb8, 0x25, 0x6c, 0x10,
0xb5, 0x06, 0x36, 0x49, 0xc3, 0x69, 0xce, 0x51, 0xe1, 0x35, 0x29, 0xcc, 0x80, 0x18, 0x20, 0x23,
0xa6, 0x3f, 0xc5, 0x4f, 0x3a, 0x90, 0x50, 0x3e, 0xf5, 0x8e, 0xd2, 0x40, 0x97, 0xb6, 0xc9, 0xe4,
0xf8, 0xb1, 0x5b, 0x08, 0xe9, 0x61, 0x09, 0x74, 0xd0, 0x14, 0x10, 0x14, 0xd3, 0x9f, 0x02, 0xb4,
0x2c, 0xd9, 0x73, 0xe5, 0xe4, 0xa7, 0xd7, 0x98, 0xac, 0xf2, 0xd3, 0x31, 0x48, 0x9d, 0x1f, 0x9e,
0x9e, 0x62, 0xb6, 0xe3, 0x02, 0x80, 0xd5, 0x77, 0xad, 0xe3, 0x2f, 0xf1, 0x49, 0xce, 0x26, 0x58,
0xc0, 0x84, 0x87, 0x42, 0x5c, 0xa3, 0x34, 0xdc, 0x63, 0x84, 0xb2, 0xb8, 0x40, 0x28, 0xe1, 0xd7,
0x56, 0x52, 0x9c, 0x1d, 0xd3, 0xab, 0xb1, 0xf1, 0x9e, 0xbd, 0x95, 0xc4, 0x78, 0x5c, 0xde, 0xff,
0x07, 0xff, 0xdf, 0x1b, 0x0f, 0x30, 0x07, 0xa4, 0x50, 0x03, 0x4f, 0x4d, 0x83, 0xd4, 0xa1, 0xe5,
0xcf, 0x8d, 0x6d, 0x29, 0x1a, 0x8a, 0x07, 0x1e, 0xdb, 0x94, 0xf2, 0xd3, 0x60, 0x72, 0xdc, 0x1d,
0x17, 0x9e, 0x58, 0x70, 0x96, 0xb1, 0xb0, 0x22, 0xe9, 0x50, 0xef, 0x29, 0xcd, 0xa8, 0x4a, 0xfd,
0xab, 0x74, 0xfc, 0xe1, 0xd7, 0xef, 0x4a, 0xfd, 0x67, 0x4e, 0x24, 0x98, 0x46, 0x8d, 0x1a, 0x35,
0xfa, 0xd3, 0xf4, 0x0f, 0x2f, 0x61, 0x55, 0xf4, 0x38, 0x95, 0x11, 0x24, 0x00, 0x00, 0x00, 0x00,
0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82
};
const int BMfont2_size = sizeof(BMfont2);

View file

@ -0,0 +1,14 @@
/*
This file was autogenerated by raw2c.
Visit http://www.devkitpro.org
*/
//---------------------------------------------------------------------------------
#ifndef _BMfont2_h_
#define _BMfont2_h_
//---------------------------------------------------------------------------------
extern const unsigned char BMfont2[];
extern const int BMfont2_size;
//---------------------------------------------------------------------------------
#endif //_BMfont2_h_
//---------------------------------------------------------------------------------

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

View file

@ -0,0 +1,415 @@
/*
This file was autogenerated by raw2c.
Visit http://www.devkitpro.org
*/
const unsigned char BMfont3[] = {
0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52,
0x00, 0x00, 0x01, 0x40, 0x00, 0x00, 0x00, 0xc0, 0x08, 0x06, 0x00, 0x00, 0x00, 0x75, 0x57, 0xba,
0xc6, 0x00, 0x00, 0x00, 0x01, 0x73, 0x52, 0x47, 0x42, 0x00, 0xae, 0xce, 0x1c, 0xe9, 0x00, 0x00,
0x19, 0x21, 0x49, 0x44, 0x41, 0x54, 0x78, 0xda, 0xed, 0x5d, 0xdb, 0x75, 0x23, 0x29, 0x10, 0x45,
0x3e, 0x4a, 0xc0, 0x8a, 0xc5, 0xa9, 0x38, 0x05, 0x9c, 0x82, 0x42, 0x70, 0x0a, 0xd3, 0x29, 0x6c,
0x2a, 0x8e, 0x45, 0x0e, 0xa1, 0xf7, 0x43, 0x42, 0xc6, 0xb8, 0x79, 0x56, 0x41, 0xf1, 0xb8, 0xf7,
0x9c, 0x3d, 0xb3, 0x9e, 0x71, 0x77, 0x35, 0x50, 0x5c, 0x0a, 0xa8, 0x87, 0x52, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0xc0, 0x5a, 0x38, 0x8d, 0xf0, 0x91, 0xb7, 0xaf, 0x7d, 0x2f, 0x79, 0xee, 0xb2,
0x7d, 0x2b, 0xb5, 0x5d, 0x4e, 0xa3, 0xcb, 0x07, 0xd6, 0x46, 0x0f, 0xfa, 0x57, 0xfa, 0x0d, 0x94,
0xef, 0xa0, 0xc8, 0x54, 0x4a, 0xa9, 0xcb, 0xdb, 0x29, 0x2a, 0xf3, 0x65, 0x56, 0xa5, 0xb9, 0x6c,
0xdf, 0xea, 0x53, 0xfd, 0xb7, 0x9c, 0xfc, 0xdb, 0xd7, 0xbe, 0x9b, 0xff, 0x8e, 0x14, 0xe9, 0xe8,
0xdf, 0xdc, 0xbf, 0x8b, 0xfd, 0xae, 0x4f, 0x49, 0xcd, 0xff, 0xfb, 0x9e, 0x39, 0xfa, 0x33, 0x26,
0xdb, 0xd7, 0x8e, 0xa3, 0x6f, 0x08, 0xb5, 0x99, 0x63, 0x42, 0xad, 0xa8, 0xff, 0xbe, 0xf1, 0x19,
0x61, 0x1e, 0xa6, 0x7c, 0xfb, 0x79, 0xa4, 0x41, 0xdd, 0xb6, 0x2d, 0xe9, 0xf7, 0xae, 0xea, 0xbd,
0x4a, 0xa7, 0x4b, 0xcb, 0x2f, 0x59, 0xf9, 0x6e, 0x5f, 0xfb, 0x7e, 0x79, 0x3b, 0x9d, 0xcc, 0x9f,
0xe6, 0xdf, 0xcd, 0xcf, 0xee, 0xbf, 0x1d, 0xbd, 0xcb, 0xf7, 0xec, 0xd1, 0xbb, 0x5d, 0x05, 0x0c,
0xad, 0xc2, 0xa1, 0x67, 0xdd, 0x7f, 0x8b, 0xc9, 0x3a, 0x92, 0x9b, 0xf2, 0xbb, 0xd0, 0xff, 0x74,
0x0b, 0x2c, 0x55, 0x3e, 0xf7, 0x77, 0xe4, 0xca, 0x55, 0x4a, 0x29, 0xad, 0xf5, 0x8f, 0xf5, 0xa9,
0x6f, 0xbb, 0xcf, 0x02, 0x3d, 0x8f, 0xa6, 0x04, 0x57, 0xf5, 0x1e, 0x1f, 0x38, 0xfd, 0xaa, 0x0a,
0xfa, 0x6c, 0x08, 0xf9, 0xa9, 0x8a, 0xcb, 0x35, 0xf1, 0xdd, 0x77, 0x95, 0xbc, 0xdb, 0x25, 0xb2,
0x1a, 0x84, 0x3f, 0x1b, 0xd9, 0x49, 0xeb, 0x9f, 0x3d, 0x4e, 0x86, 0x80, 0x52, 0x64, 0xd7, 0x9a,
0x07, 0xb9, 0xb2, 0x7f, 0x04, 0xdf, 0x9f, 0xfb, 0xd4, 0xff, 0xf6, 0xeb, 0xf6, 0x71, 0x1a, 0x9e,
0x00, 0x01, 0x9e, 0xb3, 0x8f, 0x52, 0x72, 0xa1, 0x92, 0x8d, 0x79, 0x1e, 0xa3, 0x34, 0x8e, 0xd5,
0x99, 0x4d, 0x3e, 0x1d, 0x2d, 0x14, 0x77, 0x12, 0xf6, 0xb3, 0xf0, 0x0b, 0x86, 0x78, 0x7e, 0x32,
0xa4, 0x10, 0x56, 0xce, 0xf6, 0xd8, 0xb5, 0x1c, 0x38, 0xc9, 0x2e, 0xa7, 0x1d, 0xb1, 0xef, 0x02,
0xf2, 0xb6, 0xbe, 0xb3, 0xe0, 0x53, 0xff, 0xdb, 0x61, 0x01, 0x12, 0x57, 0x95, 0x9b, 0x7e, 0xfd,
0x3b, 0xe1, 0xb6, 0xef, 0xae, 0xad, 0x3f, 0xfb, 0xef, 0x6c, 0x4b, 0x2e, 0x66, 0x31, 0xba, 0x7f,
0x1f, 0x7b, 0x96, 0x53, 0x76, 0x48, 0x7e, 0xee, 0xef, 0xce, 0xb2, 0x35, 0x6e, 0xad, 0x7f, 0x39,
0xd6, 0xdf, 0xd1, 0x77, 0xf5, 0xd0, 0xee, 0xcb, 0xf6, 0xad, 0x6e, 0x5a, 0x7b, 0xad, 0x40, 0x10,
0x60, 0x2a, 0xb1, 0x3c, 0x6e, 0xb3, 0xdc, 0x7e, 0x34, 0x07, 0xbd, 0x47, 0x26, 0xf7, 0xd1, 0x99,
0x43, 0x8f, 0x2b, 0x7d, 0x0b, 0x82, 0x68, 0x29, 0x0b, 0xfa, 0xd7, 0x56, 0xff, 0x62, 0xdb, 0xcc,
0x16, 0xed, 0x2e, 0x05, 0xb6, 0xc0, 0x19, 0x83, 0x10, 0x5b, 0x99, 0x7a, 0x20, 0x3f, 0x9f, 0xeb,
0xc8, 0xd1, 0xb6, 0xc6, 0xbe, 0x05, 0x0e, 0x3d, 0xef, 0x7b, 0xdf, 0x91, 0x8b, 0x4b, 0x68, 0x1b,
0xed, 0x5e, 0x84, 0xf8, 0x9e, 0x8d, 0xb5, 0x21, 0xe5, 0x1b, 0x63, 0xef, 0x3c, 0xda, 0xee, 0x85,
0xdc, 0x72, 0xa0, 0x7f, 0xfd, 0xb6, 0x9b, 0x02, 0x58, 0x80, 0xc9, 0xe6, 0xbd, 0xfe, 0xf3, 0xf7,
0xda, 0xda, 0x26, 0xf4, 0xa4, 0x7c, 0xb9, 0xee, 0x22, 0xae, 0x5b, 0x8c, 0x8f, 0xb4, 0x4a, 0xb6,
0x95, 0x25, 0xe7, 0x8f, 0x3e, 0x99, 0xbe, 0x7f, 0x8f, 0xfd, 0x1c, 0x73, 0xd3, 0x49, 0x75, 0x09,
0x82, 0xfe, 0x25, 0x6c, 0x57, 0x39, 0x65, 0x6f, 0x97, 0xd3, 0xf5, 0x50, 0xa7, 0x34, 0xdb, 0x02,
0x05, 0x0b, 0x90, 0xe1, 0x8c, 0xa4, 0xb7, 0x95, 0x97, 0x72, 0x6b, 0x9b, 0xe3, 0x7c, 0x9c, 0x63,
0x29, 0xe5, 0xfc, 0xbe, 0xcf, 0x52, 0xb3, 0x89, 0xed, 0xe8, 0x67, 0xdf, 0xf3, 0xa1, 0xcb, 0x98,
0x91, 0x0f, 0xfc, 0x7b, 0xd5, 0xbf, 0x91, 0x00, 0x0b, 0x30, 0x53, 0xe1, 0x8e, 0x4c, 0xf1, 0xde,
0x94, 0xaf, 0x95, 0xab, 0x4a, 0xce, 0xfb, 0xa9, 0x37, 0xc2, 0x31, 0x77, 0x9c, 0xd8, 0xfb, 0x7d,
0x7d, 0x32, 0x92, 0x5b, 0xce, 0x28, 0xfa, 0x07, 0x02, 0x9c, 0x14, 0xee, 0xd9, 0x83, 0xb6, 0x94,
0xb2, 0x27, 0xe5, 0xcb, 0xb5, 0xf8, 0x72, 0xc9, 0xcc, 0xf7, 0xec, 0xd1, 0xbb, 0x7c, 0x04, 0xe3,
0x0b, 0xa9, 0x8b, 0x6d, 0x7f, 0x4b, 0xfb, 0xa3, 0xb4, 0x8d, 0xd0, 0x3f, 0x10, 0x20, 0xa0, 0xfc,
0xb7, 0x51, 0xbd, 0x29, 0x5f, 0xcc, 0x15, 0x25, 0xf5, 0x77, 0x53, 0xff, 0x4c, 0xb1, 0x06, 0x63,
0xbf, 0x9b, 0xfa, 0x33, 0xf5, 0xcf, 0x58, 0x5b, 0x7b, 0x26, 0xc9, 0x51, 0xf4, 0x6f, 0x34, 0xe0,
0x0c, 0x30, 0x43, 0xf9, 0x0e, 0x57, 0x65, 0x28, 0x1f, 0x00, 0xfd, 0x83, 0x05, 0x38, 0x35, 0x3c,
0xb7, 0x51, 0x3d, 0xe2, 0x28, 0x51, 0x81, 0x6f, 0x3b, 0x6a, 0xff, 0xec, 0xb3, 0x7c, 0x42, 0x09,
0x09, 0x52, 0xff, 0x8c, 0xbd, 0x2f, 0x75, 0x2b, 0xec, 0xdb, 0x72, 0xfb, 0xda, 0x76, 0xf4, 0xce,
0xd0, 0xef, 0xf8, 0xe2, 0x95, 0xc5, 0xad, 0xc2, 0x81, 0xf4, 0x0f, 0x04, 0xd8, 0xf0, 0x0c, 0x04,
0x48, 0xdb, 0x12, 0xc7, 0x6e, 0x85, 0x53, 0x32, 0xbb, 0xd4, 0x20, 0xe7, 0x10, 0xd9, 0xfa, 0x7e,
0xff, 0xe8, 0x67, 0x5f, 0x5b, 0x7d, 0x24, 0x1b, 0x6b, 0x1f, 0x42, 0xe8, 0x40, 0x80, 0x43, 0x9d,
0x81, 0x00, 0x7f, 0x89, 0xa4, 0x84, 0x98, 0x62, 0x56, 0x11, 0x07, 0x31, 0xa6, 0x7c, 0x5b, 0xee,
0x25, 0x4e, 0x6e, 0xca, 0x2d, 0x8e, 0x0c, 0x37, 0xc0, 0x1c, 0x18, 0xe2, 0x0c, 0x50, 0x3a, 0xb9,
0xe9, 0x88, 0x56, 0x5f, 0xe9, 0xef, 0xdb, 0xd1, 0x16, 0x29, 0x5b, 0xd5, 0xd4, 0x9f, 0x6b, 0x6d,
0x27, 0x73, 0x92, 0x23, 0xc4, 0xb6, 0xbe, 0x3e, 0xb2, 0x86, 0x15, 0x08, 0x0b, 0x50, 0x16, 0x38,
0x03, 0xe9, 0x8e, 0x3c, 0x73, 0xce, 0x17, 0x53, 0x48, 0xe6, 0x28, 0x2c, 0x2f, 0x65, 0x4b, 0xee,
0x3b, 0xc3, 0x74, 0xcf, 0x40, 0x7d, 0x67, 0x82, 0x39, 0xc7, 0x07, 0x00, 0x08, 0x70, 0x88, 0x2d,
0x9d, 0x6d, 0x39, 0xae, 0x56, 0x93, 0x23, 0xc5, 0xb5, 0x23, 0x37, 0x13, 0x4c, 0x2d, 0xb7, 0x94,
0x14, 0x97, 0x9d, 0x50, 0x36, 0x99, 0x1c, 0x37, 0x9e, 0x94, 0xf7, 0xb7, 0xb0, 0x58, 0x67, 0xc6,
0x55, 0xbd, 0x1f, 0x86, 0xa9, 0x49, 0xd5, 0x04, 0x99, 0x66, 0x0b, 0x8c, 0x6d, 0xb3, 0xec, 0xe2,
0x13, 0xaa, 0xe9, 0xe1, 0xfb, 0xdd, 0xd8, 0xd6, 0xf8, 0x28, 0x99, 0x42, 0x28, 0x31, 0x41, 0xec,
0x67, 0x57, 0x56, 0x4a, 0xed, 0x93, 0x58, 0x8d, 0x12, 0x6c, 0x81, 0x33, 0xc9, 0xcf, 0x93, 0xb2,
0xaa, 0xe7, 0x79, 0x88, 0x9a, 0x20, 0xc0, 0xe1, 0xb6, 0xb1, 0x74, 0xfb, 0xe7, 0x73, 0xc1, 0x49,
0xb1, 0xae, 0x42, 0x37, 0xbc, 0xb1, 0x9f, 0xa9, 0xb5, 0x4f, 0x7c, 0x5b, 0x5e, 0x90, 0x5f, 0xba,
0xb1, 0xe1, 0x4b, 0x59, 0x55, 0x6b, 0xde, 0x73, 0x64, 0xaa, 0x46, 0x4d, 0x10, 0xc0, 0x4b, 0x20,
0xee, 0xbf, 0x95, 0x6c, 0xc7, 0x5d, 0x8b, 0x2b, 0xe7, 0x36, 0xb6, 0xc5, 0xed, 0x6d, 0x0a, 0x49,
0xaf, 0x4a, 0x82, 0x5a, 0x6b, 0xa5, 0x12, 0x93, 0xa2, 0x1e, 0xfd, 0x8e, 0x68, 0x4d, 0x90, 0x5f,
0xdf, 0x80, 0x94, 0xf8, 0x40, 0x02, 0x59, 0x1d, 0x59, 0x59, 0xdc, 0x04, 0x9b, 0x62, 0x01, 0xa6,
0x58, 0x7c, 0x5c, 0xdf, 0x8a, 0x33, 0xbe, 0x75, 0xfa, 0x04, 0x45, 0x91, 0x00, 0x92, 0x05, 0x77,
0x64, 0x31, 0xb5, 0x4c, 0x62, 0x10, 0xba, 0xbd, 0xcd, 0xd9, 0xb2, 0xe3, 0x66, 0x37, 0x7d, 0x6b,
0xab, 0xac, 0xb3, 0xbd, 0x9e, 0x4a, 0x3f, 0xa4, 0x58, 0x7e, 0xa1, 0xed, 0xb3, 0xc1, 0x10, 0x4a,
0xf0, 0x54, 0xfc, 0xed, 0x3b, 0x39, 0x12, 0x04, 0x59, 0x32, 0x00, 0x80, 0xba, 0x07, 0xbe, 0xed,
0x4a, 0xa9, 0xe7, 0x39, 0x9e, 0xa9, 0xb5, 0x9b, 0x03, 0xca, 0x3c, 0x2c, 0x99, 0xf7, 0xae, 0xdc,
0x90, 0xf5, 0x37, 0x14, 0x01, 0x96, 0xde, 0x26, 0x81, 0x00, 0x01, 0xa0, 0x1c, 0x47, 0x95, 0xd4,
0xb8, 0xb6, 0x9f, 0x35, 0xe7, 0x7d, 0xaa, 0xec, 0x21, 0xb6, 0xc0, 0x70, 0x69, 0x01, 0x00, 0x19,
0x18, 0xf2, 0xe0, 0x22, 0xc2, 0x96, 0xf3, 0x1e, 0xc6, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xf0, 0x17, 0x30, 0x11, 0x81, 0x29, 0x91, 0x54, 0xd3, 0x24, 0x21, 0x44, 0x8b, 0xc3, 0x07, 0x90,
0xfb, 0x56, 0x3c, 0x67, 0x0b, 0x59, 0x1a, 0x0a, 0x5a, 0xc3, 0xf7, 0x31, 0xa7, 0x1f, 0x5a, 0xc9,
0x87, 0x1f, 0x20, 0xb0, 0x2c, 0xf9, 0x85, 0xce, 0x97, 0x38, 0xeb, 0x03, 0x4b, 0xd4, 0x1a, 0x2e,
0x3d, 0x3f, 0xab, 0xf9, 0xad, 0x29, 0xef, 0x6e, 0x2d, 0x1f, 0x7e, 0x80, 0xc0, 0x94, 0xe4, 0x17,
0xf2, 0xff, 0x8a, 0x85, 0x68, 0xb9, 0x93, 0x64, 0x23, 0x84, 0x33, 0xd8, 0xae, 0x23, 0x14, 0xff,
0xc3, 0x94, 0x76, 0xa5, 0xb6, 0xaf, 0x45, 0xbb, 0x43, 0xfd, 0xa0, 0xf4, 0x6d, 0x3f, 0xb2, 0x4c,
0x5b, 0xc8, 0xbf, 0x6c, 0xdf, 0xbf, 0xe4, 0x83, 0x00, 0x81, 0x29, 0xc9, 0x2f, 0x14, 0x3a, 0x15,
0x0a, 0xd1, 0xb2, 0x27, 0xe1, 0xd3, 0x87, 0x8d, 0x12, 0x73, 0xfa, 0x78, 0xc7, 0x93, 0x00, 0x3c,
0x93, 0x3f, 0x07, 0xb1, 0xef, 0x29, 0x09, 0x41, 0x63, 0x6f, 0xb7, 0xa7, 0x1f, 0x9e, 0xe4, 0xac,
0xff, 0xed, 0xf6, 0x2d, 0x6d, 0x2b, 0xf9, 0xea, 0xf1, 0xce, 0xcf, 0x87, 0x7c, 0x10, 0x20, 0xb0,
0x14, 0xf9, 0xe5, 0x90, 0x00, 0xc7, 0x04, 0x7c, 0xbe, 0xe3, 0xf1, 0xbe, 0xa3, 0xc9, 0xdf, 0xa2,
0x6d, 0xe9, 0x3c, 0x51, 0x47, 0x86, 0x79, 0x67, 0x8c, 0x9c, 0xdb, 0xc8, 0xff, 0xf9, 0x00, 0x9c,
0x01, 0x02, 0x20, 0xbf, 0x4a, 0xe4, 0xe7, 0x4e, 0x40, 0x3b, 0x9a, 0x41, 0xc2, 0xaf, 0xae, 0x07,
0x82, 0xb5, 0x61, 0xfa, 0x40, 0x52, 0x3e, 0x2c, 0x40, 0x60, 0x79, 0xf2, 0x2b, 0xb1, 0x40, 0x7c,
0xb9, 0xef, 0x42, 0xb8, 0x87, 0x74, 0xe9, 0xac, 0xb3, 0xad, 0x96, 0xe4, 0x40, 0x2d, 0x3a, 0x96,
0x12, 0x2b, 0x1c, 0xea, 0x03, 0x8a, 0xfc, 0xd4, 0x38, 0x65, 0x57, 0x3e, 0x08, 0x10, 0x58, 0x9e,
0xfc, 0xb2, 0x8b, 0x48, 0x1d, 0xa4, 0x58, 0x32, 0xdb, 0xdb, 0x9c, 0xef, 0xf8, 0xcc, 0xdc, 0x0a,
0xd7, 0x04, 0xb5, 0xe8, 0x58, 0x49, 0xfb, 0x39, 0xe5, 0xab, 0x42, 0xb9, 0xd8, 0x02, 0x03, 0x4b,
0x91, 0x9f, 0x4d, 0x5e, 0x2e, 0xf9, 0x94, 0x12, 0x69, 0x8e, 0xe5, 0x72, 0xd9, 0xbe, 0x93, 0x93,
0x0a, 0xb4, 0xb2, 0xfe, 0x2e, 0x6f, 0xa7, 0x13, 0x29, 0xe4, 0x8c, 0x6a, 0x39, 0x32, 0xc9, 0x2f,
0x79, 0x07, 0x2c, 0x40, 0x00, 0xe4, 0x47, 0xd9, 0x36, 0x6e, 0x1f, 0xa7, 0xa3, 0x3a, 0x18, 0xa3,
0x81, 0xd2, 0x1f, 0x1c, 0xed, 0x97, 0x92, 0x0f, 0x02, 0xec, 0x70, 0x62, 0xb7, 0xd8, 0xee, 0x8c,
0x5a, 0x2c, 0xaa, 0x27, 0xf2, 0x1b, 0x61, 0x7b, 0xdf, 0xbb, 0x2e, 0x4a, 0x7f, 0x1b, 0x08, 0x70,
0x31, 0x98, 0xb3, 0x96, 0x11, 0xcb, 0x8c, 0xae, 0x42, 0x7e, 0x23, 0x92, 0x4b, 0x0b, 0xa2, 0x0e,
0x7d, 0x5b, 0xa9, 0x7c, 0x10, 0x60, 0x87, 0xd8, 0x2a, 0x15, 0x34, 0x19, 0xb9, 0x58, 0xd4, 0x4a,
0xe4, 0x67, 0x4f, 0xf4, 0x6b, 0xc3, 0x8c, 0xcc, 0x94, 0x48, 0x8c, 0xd6, 0xe4, 0x77, 0x74, 0x09,
0x05, 0x0b, 0x70, 0x22, 0xd4, 0x50, 0xa8, 0x51, 0x8b, 0x45, 0xad, 0x68, 0xf9, 0x19, 0xb2, 0x33,
0x37, 0xa3, 0xd4, 0x5b, 0xd6, 0x1c, 0x82, 0xa9, 0x12, 0x89, 0x71, 0x30, 0x26, 0x12, 0xdf, 0xe6,
0xca, 0x07, 0x01, 0x12, 0x4d, 0xff, 0x15, 0x8b, 0xaf, 0x83, 0xfc, 0xda, 0x1c, 0x53, 0xb8, 0x56,
0x60, 0x8b, 0xc5, 0xab, 0xe5, 0x99, 0x63, 0xee, 0xb8, 0x70, 0x7f, 0x1b, 0x42, 0xe1, 0x98, 0x14,
0xf5, 0x8a, 0xae, 0x00, 0xf9, 0xb1, 0xb2, 0xd0, 0xe5, 0x74, 0xfd, 0xd5, 0x0f, 0x75, 0x6f, 0x99,
0x5b, 0x5c, 0x78, 0xa4, 0x16, 0x29, 0x0a, 0x5b, 0xc4, 0xbc, 0xc7, 0x01, 0x88, 0x04, 0xf1, 0xac,
0x32, 0xa9, 0x5b, 0xd4, 0x5a, 0xe7, 0x69, 0x54, 0xbf, 0x2a, 0x90, 0x1f, 0x2e, 0x3c, 0x5a, 0x58,
0x7f, 0x39, 0x3a, 0x9a, 0x5a, 0xa4, 0xe8, 0x90, 0xfc, 0xde, 0x4e, 0x27, 0xa5, 0x6f, 0xbb, 0xed,
0x28, 0x7d, 0x73, 0x7c, 0x29, 0x11, 0x09, 0xc2, 0x4c, 0x40, 0x69, 0x13, 0xad, 0x9e, 0x55, 0xb9,
0x72, 0x61, 0x77, 0x90, 0xdf, 0x00, 0x63, 0x54, 0x70, 0x96, 0x57, 0xba, 0xf5, 0x35, 0x56, 0xb1,
0xb2, 0xe2, 0xa7, 0x6d, 0xd9, 0x94, 0x6d, 0x31, 0x08, 0xb0, 0xc3, 0x2d, 0x35, 0x2c, 0x3f, 0x90,
0xdf, 0x8c, 0xe4, 0x47, 0x1d, 0x97, 0x50, 0x81, 0x26, 0xf3, 0x4d, 0xb9, 0x64, 0x08, 0x02, 0xec,
0x6a, 0x0f, 0xf2, 0xfb, 0xec, 0x07, 0xe4, 0x07, 0xf2, 0xeb, 0x7e, 0xb7, 0x24, 0xd0, 0xdf, 0xae,
0x4c, 0x44, 0x82, 0x30, 0x6f, 0x7f, 0x4b, 0x32, 0x7d, 0xcc, 0x40, 0x3c, 0x25, 0x16, 0x2b, 0xd7,
0x0d, 0xf8, 0x88, 0xe4, 0x77, 0x55, 0xef, 0x2c, 0x17, 0x14, 0xb5, 0x2e, 0x21, 0x62, 0xdf, 0x47,
0x1d, 0x3f, 0x6a, 0xfb, 0x6d, 0xf9, 0x52, 0x91, 0x27, 0x20, 0xc0, 0x83, 0x2d, 0xa8, 0x6b, 0xdd,
0xbb, 0x3e, 0x58, 0xb0, 0x38, 0x78, 0x6f, 0xc0, 0x7b, 0x21, 0x3f, 0xad, 0xf5, 0x33, 0x71, 0x69,
0xe9, 0x42, 0x59, 0x6b, 0xfb, 0xc8, 0xb5, 0x90, 0x73, 0x8d, 0x1f, 0x47, 0xea, 0x2c, 0x23, 0x9f,
0x83, 0xfc, 0x10, 0x09, 0xc2, 0x34, 0xa1, 0x7d, 0x03, 0xfd, 0x73, 0xfb, 0x34, 0x2f, 0xf9, 0xf5,
0x70, 0x03, 0x2e, 0x41, 0x7e, 0x97, 0xb7, 0xd3, 0x29, 0x67, 0x12, 0x86, 0x16, 0x4a, 0xca, 0x56,
0x8e, 0x8b, 0x18, 0x63, 0x17, 0x69, 0xd4, 0xf1, 0xe3, 0x4a, 0x9d, 0x55, 0xaa, 0x7f, 0xbe, 0x77,
0xc2, 0x02, 0x24, 0x4e, 0x28, 0xa5, 0xfe, 0xa6, 0x29, 0xd2, 0x66, 0x75, 0x79, 0x64, 0xfd, 0x98,
0xdd, 0xf2, 0x93, 0xbc, 0x01, 0xef, 0x61, 0xdb, 0x9b, 0x6a, 0x05, 0x96, 0x4c, 0xb8, 0x14, 0xeb,
0x8f, 0xcb, 0xd1, 0xb7, 0xb4, 0x26, 0x4a, 0x6d, 0xc2, 0x89, 0xc9, 0xaf, 0x1e, 0x52, 0x87, 0x94,
0xf8, 0x05, 0xa6, 0xf5, 0xf6, 0x71, 0xba, 0x7d, 0xed, 0x3b, 0x0e, 0xda, 0xfb, 0x58, 0xa8, 0x6a,
0x8c, 0x83, 0x5d, 0xad, 0xad, 0x86, 0x1f, 0xa6, 0x3b, 0xf1, 0xa0, 0x43, 0x7f, 0xfb, 0x5e, 0x6b,
0xdd, 0x74, 0x67, 0x81, 0x48, 0x90, 0x84, 0x6d, 0x20, 0xc8, 0x6f, 0x7e, 0xf2, 0xfb, 0x35, 0x11,
0x2d, 0x87, 0xdb, 0x9b, 0x5d, 0x4a, 0x91, 0xb4, 0xb3, 0x50, 0x20, 0xbf, 0x0c, 0xcb, 0xb2, 0x46,
0xf2, 0x07, 0x5f, 0x24, 0x0a, 0x08, 0x30, 0x30, 0x00, 0x8f, 0x55, 0x69, 0x19, 0xf2, 0x93, 0x8e,
0x40, 0x89, 0xc9, 0x6f, 0x32, 0x0e, 0x96, 0xc3, 0xad, 0x91, 0x77, 0x4b, 0xcc, 0xe0, 0x9c, 0xba,
0xa0, 0x8e, 0xda, 0xff, 0xd5, 0xad, 0xc0, 0x48, 0xb4, 0x07, 0xb7, 0x61, 0xa3, 0x94, 0x52, 0x58,
0x89, 0xcc, 0x0a, 0xf1, 0xb5, 0xef, 0x21, 0x47, 0xe4, 0x99, 0xc9, 0x2f, 0xd6, 0xf6, 0xd8, 0x36,
0xa2, 0xa5, 0xfc, 0x56, 0xe3, 0x50, 0xa3, 0x6a, 0x9b, 0xef, 0xdb, 0x29, 0xfd, 0xcf, 0xf1, 0x4d,
0xd2, 0xf2, 0x6b, 0xf7, 0x7b, 0x48, 0x26, 0x2c, 0x40, 0xb3, 0x02, 0x2d, 0x4a, 0x7e, 0xb1, 0xb6,
0xf7, 0x24, 0xbf, 0xe5, 0x38, 0x84, 0xa2, 0x0e, 0xb8, 0x17, 0x89, 0x51, 0xfa, 0x7f, 0xb4, 0x7e,
0x5f, 0x6d, 0x1e, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0xa4,
0x38, 0x3c, 0x13, 0xcb, 0x27, 0xf5, 0x3c, 0x15, 0xa1, 0x58, 0xc8, 0x16, 0xdf, 0xb4, 0x5a, 0xfb,
0x6d, 0x5f, 0xbb, 0x18, 0xa4, 0xe5, 0x03, 0x6b, 0xe0, 0x4c, 0x99, 0x3c, 0x94, 0x58, 0x42, 0xe9,
0x6c, 0xca, 0x3e, 0xf9, 0x2d, 0x4b, 0x53, 0xae, 0xd6, 0x7e, 0xf3, 0xee, 0x10, 0x11, 0x49, 0xcb,
0x5f, 0x15, 0x9f, 0xfa, 0xdf, 0xde, 0xb2, 0xfc, 0xe6, 0xa7, 0xfa, 0xaf, 0x8b, 0x4b, 0x89, 0x5f,
0x04, 0x48, 0x8d, 0x05, 0x6d, 0xf5, 0x3c, 0x15, 0x3e, 0xf9, 0x94, 0xaa, 0x58, 0x1c, 0xf2, 0x67,
0x6e, 0xbf, 0xb6, 0x9d, 0x8a, 0xf5, 0x6d, 0x3f, 0xb2, 0x3c, 0x5b, 0xc8, 0xbf, 0xff, 0x70, 0x2c,
0x7f, 0x65, 0xb4, 0xae, 0x3d, 0x7c, 0x97, 0xf7, 0x71, 0x48, 0xc4, 0xfa, 0x91, 0xb1, 0xb9, 0x05,
0x41, 0x9e, 0x4b, 0x3a, 0x82, 0x1a, 0xcb, 0x27, 0x19, 0x0b, 0xe8, 0x93, 0xdf, 0xaa, 0x2a, 0xd6,
0xb2, 0xed, 0x7f, 0x0a, 0x7c, 0xff, 0xb1, 0x38, 0x2c, 0x05, 0x6f, 0x25, 0xff, 0x49, 0xfe, 0x8e,
0x7c, 0x49, 0xac, 0x54, 0x90, 0xcb, 0x2c, 0xbc, 0xbe, 0xb1, 0x35, 0x0b, 0x95, 0xd6, 0x5a, 0x5d,
0xb7, 0x8f, 0x7e, 0xb7, 0xc0, 0xb3, 0xa2, 0x65, 0x55, 0xac, 0x95, 0xda, 0x7f, 0x94, 0x4a, 0x4c,
0x4e, 0xfe, 0xf8, 0xe3, 0x34, 0x6b, 0x41, 0xae, 0x6d, 0xdb, 0x94, 0xb1, 0x00, 0xed, 0x85, 0xa1,
0xd6, 0xb1, 0x05, 0x08, 0x50, 0xc9, 0x25, 0x63, 0x5c, 0xbd, 0xfd, 0xc6, 0x0a, 0x94, 0x96, 0xdf,
0x8b, 0x15, 0x36, 0x52, 0x3a, 0x32, 0xea, 0x51, 0xc4, 0xd5, 0x13, 0xe7, 0x7b, 0xdd, 0x3e, 0x4e,
0x96, 0xe5, 0xb7, 0x1f, 0xe9, 0x28, 0x27, 0x19, 0x0e, 0x4b, 0x80, 0x35, 0x62, 0x16, 0x73, 0xac,
0x8f, 0x1a, 0xf2, 0x4b, 0x62, 0x31, 0x39, 0x03, 0xc6, 0xa9, 0xed, 0x4f, 0xf9, 0x16, 0xb7, 0x2a,
0x57, 0x89, 0x7c, 0x5f, 0x1f, 0x51, 0xe5, 0xf7, 0x60, 0x85, 0x8d, 0x90, 0x8e, 0xac, 0x15, 0x9c,
0x23, 0x8a, 0xdd, 0xb7, 0x60, 0x53, 0x08, 0x71, 0x48, 0x02, 0xbc, 0xe9, 0x57, 0xd1, 0xf0, 0x9d,
0x1a, 0xf2, 0x4b, 0x92, 0x4c, 0xba, 0x99, 0xaa, 0x53, 0xbf, 0x9d, 0x9a, 0x54, 0xe0, 0x68, 0x1b,
0x5b, 0xf2, 0x2d, 0x9c, 0xd6, 0x12, 0x97, 0xfc, 0x15, 0xac, 0x30, 0xe9, 0xad, 0x3b, 0x27, 0x19,
0x52, 0xad, 0xc3, 0x61, 0x2d, 0x40, 0xa3, 0xec, 0x52, 0x4a, 0xc8, 0x29, 0xbf, 0x84, 0x4c, 0xdd,
0x4c, 0xd5, 0xad, 0xc8, 0x8f, 0xeb, 0x5b, 0x6a, 0x58, 0xce, 0x5c, 0xf2, 0x61, 0x85, 0x0d, 0x65,
0x19, 0x92, 0xb6, 0xca, 0x43, 0x9f, 0x01, 0x4a, 0xfb, 0x12, 0xb1, 0xc9, 0x2f, 0xa8, 0x06, 0x97,
0x5b, 0x8c, 0xa6, 0x1a, 0xf9, 0x3d, 0x32, 0x65, 0x4b, 0x4e, 0x06, 0x49, 0xf9, 0xd2, 0x47, 0x20,
0x40, 0xda, 0x56, 0xd9, 0x47, 0x86, 0x67, 0xf2, 0x80, 0x49, 0x2a, 0x7f, 0xa6, 0x7c, 0xee, 0x9b,
0x24, 0x29, 0xf9, 0xb9, 0x45, 0x84, 0xaa, 0x5a, 0x7e, 0x03, 0x8d, 0x7f, 0xef, 0x5b, 0x43, 0x4a,
0x9d, 0x0d, 0x20, 0x8d, 0x0c, 0xdd, 0x39, 0x78, 0x26, 0x29, 0xdf, 0x60, 0xc9, 0x1b, 0x39, 0x23,
0x01, 0xa4, 0xe4, 0x77, 0x45, 0x7e, 0x13, 0x26, 0xef, 0x94, 0x68, 0x57, 0x4f, 0xe9, 0xa8, 0xa4,
0xd0, 0xca, 0x13, 0xc0, 0xb5, 0x0a, 0xcf, 0x94, 0x01, 0x93, 0x5a, 0xad, 0x4a, 0xe5, 0x3f, 0xa3,
0x01, 0x88, 0x91, 0x00, 0x52, 0xf2, 0x7b, 0x21, 0x3f, 0xae, 0xaa, 0x68, 0xbd, 0x59, 0x4b, 0x62,
0x7a, 0x5d, 0x70, 0x04, 0x32, 0x23, 0x5a, 0xd6, 0xde, 0x36, 0x0b, 0x0e, 0xc9, 0x02, 0x94, 0x3e,
0x2f, 0xc9, 0x6d, 0xb0, 0x21, 0x0e, 0x8e, 0x48, 0x80, 0xd6, 0xf2, 0x6b, 0x92, 0x9f, 0x29, 0x0b,
0x99, 0x5b, 0x17, 0xb7, 0x68, 0x05, 0x0e, 0x38, 0x42, 0xb7, 0x90, 0xdf, 0xa3, 0x15, 0xb6, 0x52,
0x24, 0x08, 0x5b, 0x9f, 0x15, 0xba, 0x61, 0xb9, 0x58, 0xc6, 0x11, 0x5a, 0x3a, 0x12, 0x80, 0x22,
0xbf, 0x17, 0xcb, 0xaf, 0xd6, 0x79, 0x4d, 0x6e, 0x5d, 0x5e, 0x58, 0x61, 0xf3, 0x46, 0x82, 0xf8,
0x48, 0xee, 0x88, 0xdc, 0xec, 0xbf, 0xbb, 0x2f, 0x5e, 0xef, 0x59, 0xcf, 0x2f, 0x45, 0x80, 0x87,
0x56, 0x99, 0x70, 0x3c, 0xe8, 0x67, 0x47, 0xf1, 0xa8, 0xbd, 0xb4, 0xbf, 0x56, 0x55, 0xb0, 0x11,
0x00, 0x1f, 0xc4, 0xdf, 0xc4, 0x65, 0xef, 0x98, 0x72, 0x2a, 0xf4, 0xe5, 0x3c, 0x7f, 0xf6, 0x29,
0x9f, 0xc4, 0x1e, 0xbe, 0x85, 0x7c, 0x8e, 0x48, 0x80, 0x5e, 0x22, 0x11, 0xb8, 0xb7, 0x60, 0x92,
0x91, 0x20, 0x1c, 0x55, 0xc1, 0x66, 0x20, 0x4c, 0xf8, 0x20, 0xaa, 0x3f, 0xe4, 0x75, 0x55, 0xef,
0x4a, 0x3d, 0x62, 0x84, 0xb9, 0x9f, 0x3f, 0xbb, 0x26, 0x75, 0x69, 0xc7, 0x52, 0x3d, 0xf1, 0xa5,
0xe5, 0x53, 0x57, 0xeb, 0xd6, 0xf2, 0xa5, 0x57, 0xe8, 0x2a, 0xed, 0xb7, 0x4a, 0x52, 0xe6, 0x58,
0x44, 0xab, 0xf5, 0xff, 0x0a, 0xba, 0x65, 0x8f, 0xa7, 0x4d, 0x62, 0x37, 0xad, 0x83, 0x0b, 0x5d,
0xee, 0xf3, 0x67, 0x9b, 0x7c, 0xa8, 0x96, 0x5b, 0x29, 0x79, 0x49, 0xcb, 0xe7, 0x58, 0xb5, 0x57,
0x8e, 0x0c, 0xe0, 0x6c, 0x7f, 0x49, 0x55, 0xb0, 0xd5, 0xfb, 0xbf, 0xc5, 0x76, 0x94, 0x8a, 0x1c,
0xeb, 0xfc, 0x88, 0xbc, 0xcc, 0x9f, 0x9a, 0xf9, 0xf9, 0xb3, 0x59, 0x79, 0x29, 0x87, 0xa9, 0x64,
0x67, 0x54, 0x69, 0xf9, 0xc4, 0x09, 0x3b, 0x8b, 0x33, 0x6e, 0x4f, 0xed, 0xcf, 0xbb, 0x21, 0xa7,
0xcb, 0xef, 0xe1, 0x26, 0xd6, 0x77, 0x04, 0x24, 0xb5, 0xb5, 0x37, 0xd6, 0x94, 0x49, 0x4f, 0x55,
0xfa, 0xe7, 0x1d, 0xe9, 0x96, 0xb9, 0x8f, 0xbc, 0xee, 0x46, 0x92, 0x66, 0x7d, 0xbe, 0x9b, 0x4b,
0x90, 0x11, 0x53, 0x52, 0xcd, 0x14, 0x89, 0x20, 0xd9, 0xfe, 0x51, 0xd3, 0x91, 0x71, 0xde, 0xc4,
0x86, 0x7c, 0x2b, 0xed, 0xad, 0x7d, 0xeb, 0x1b, 0x7e, 0x2a, 0xf9, 0xe9, 0xcc, 0xf3, 0x6e, 0x73,
0x46, 0xac, 0x0e, 0xb6, 0xb1, 0x3a, 0xb2, 0xfd, 0x2d, 0x79, 0xbe, 0x0b, 0x02, 0x1c, 0x96, 0xfc,
0x16, 0x8e, 0xdb, 0x9c, 0xb5, 0xfd, 0x12, 0x37, 0xb1, 0xbe, 0x23, 0x20, 0x77, 0x6b, 0x2f, 0xe1,
0xde, 0xe4, 0x92, 0x98, 0xfd, 0x27, 0x37, 0xf9, 0xb9, 0xc4, 0x6b, 0x93, 0x98, 0xce, 0xbc, 0x10,
0x4b, 0x7d, 0xfe, 0x3c, 0xa2, 0xf2, 0x85, 0x94, 0xb2, 0xe5, 0xca, 0xbf, 0xea, 0x99, 0x53, 0xad,
0x48, 0x90, 0x5e, 0xc6, 0xbf, 0xf5, 0x4d, 0xec, 0x7d, 0x21, 0xf9, 0x3b, 0x41, 0xf5, 0xa3, 0x4f,
0xcc, 0x31, 0x83, 0x84, 0x6f, 0xa7, 0x4d, 0x62, 0xb6, 0x15, 0x5a, 0x93, 0x04, 0x8d, 0x95, 0x76,
0xd3, 0xfa, 0xd1, 0x2b, 0xc7, 0x96, 0x9f, 0x6f, 0x01, 0x4a, 0x7d, 0xbe, 0x3b, 0x02, 0x6c, 0x41,
0x62, 0xd2, 0x91, 0x08, 0xb1, 0x94, 0xf0, 0x92, 0xe8, 0xa1, 0xfd, 0x92, 0xe3, 0xdf, 0xa3, 0x35,
0x6a, 0x32, 0x66, 0x4b, 0x39, 0xb6, 0xfb, 0x48, 0xac, 0xb6, 0x05, 0x68, 0x13, 0x99, 0xff, 0xdf,
0xde, 0x8b, 0x9f, 0xef, 0x8a, 0x00, 0x4b, 0x42, 0xb1, 0x58, 0xc8, 0x56, 0x38, 0x12, 0xa1, 0x17,
0x27, 0xe8, 0x55, 0xdb, 0xdf, 0x9b, 0x13, 0xfa, 0x1f, 0xd7, 0x22, 0x61, 0xf2, 0x73, 0x2d, 0xc0,
0xa3, 0xbf, 0xe7, 0x24, 0x41, 0x09, 0xe7, 0xee, 0x2e, 0x2d, 0xc0, 0x1a, 0x91, 0x00, 0xb6, 0xd9,
0x2e, 0x29, 0xff, 0xbe, 0x7d, 0xec, 0x17, 0xd2, 0xfd, 0x5f, 0xd3, 0xf2, 0xcb, 0x1d, 0x7f, 0xc9,
0xbe, 0x7f, 0x90, 0xcc, 0x2e, 0x1d, 0xd2, 0xd8, 0xca, 0x02, 0x94, 0xaa, 0xd5, 0x7c, 0xae, 0x39,
0x80, 0xb9, 0x56, 0x08, 0x35, 0x12, 0x20, 0x77, 0x75, 0x95, 0x90, 0xff, 0x69, 0xb6, 0x79, 0x05,
0xae, 0x13, 0x35, 0x27, 0xa7, 0x74, 0xff, 0xd7, 0x6e, 0x5f, 0x8a, 0x7c, 0xc9, 0xb3, 0xdd, 0x90,
0x6c, 0x09, 0xf2, 0x33, 0x2e, 0x23, 0x36, 0x89, 0x39, 0xe4, 0xdc, 0x64, 0x1b, 0x3c, 0x0c, 0x01,
0xb2, 0x28, 0x0f, 0x21, 0x12, 0x80, 0x65, 0xeb, 0xd3, 0x48, 0x7e, 0x09, 0xf9, 0x35, 0x99, 0x9c,
0x82, 0xfd, 0xdf, 0x92, 0x7c, 0x42, 0xf2, 0x45, 0x8e, 0x20, 0x02, 0xb2, 0x5b, 0x91, 0x9f, 0xed,
0x6a, 0x63, 0x32, 0x9d, 0x1b, 0x0b, 0xd4, 0xbd, 0x05, 0xe6, 0x20, 0xbf, 0x5e, 0x12, 0x39, 0xf0,
0x74, 0xee, 0xc3, 0x72, 0xe0, 0x24, 0xa3, 0x9c, 0x48, 0x80, 0x1a, 0x67, 0x3e, 0xd2, 0xf2, 0x6b,
0xf7, 0x6f, 0x57, 0xed, 0x27, 0xb4, 0xaf, 0x49, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x8c, 0x8d, 0x2e, 0xcf, 0x44, 0x6a, 0xf8, 0xa4, 0x49, 0x5d, 0xb3,
0x8f, 0xd0, 0x07, 0xad, 0x7c, 0x00, 0x73, 0xc6, 0xa0, 0xc5, 0x37, 0x99, 0x44, 0x06, 0xab, 0xb7,
0x7f, 0x65, 0xf9, 0xe7, 0xd9, 0x27, 0xbd, 0xfb, 0xee, 0xde, 0x89, 0x70, 0xe6, 0x3e, 0x48, 0x91,
0xdf, 0x8c, 0x8c, 0x04, 0x52, 0xca, 0x8f, 0xd0, 0xfe, 0xd5, 0xe4, 0x9f, 0x5b, 0x0e, 0x40, 0xce,
0xc0, 0x73, 0xba, 0x60, 0x68, 0x3b, 0x1d, 0x36, 0xb1, 0x22, 0x5c, 0x4b, 0xf2, 0x6b, 0xdd, 0x07,
0x35, 0xfd, 0xb5, 0x52, 0xe4, 0xd7, 0x6c, 0xbf, 0x0d, 0x5f, 0x22, 0x83, 0xd5, 0xdb, 0xbf, 0xa2,
0xfc, 0xb3, 0xd7, 0x34, 0x65, 0x46, 0xc8, 0xcd, 0xc1, 0x6e, 0xb8, 0x1b, 0x78, 0xcd, 0x02, 0x27,
0x27, 0x59, 0x8f, 0xb5, 0x38, 0x7a, 0xe9, 0x83, 0x6a, 0x61, 0x88, 0x11, 0xf9, 0xd5, 0xdb, 0x6f,
0xf7, 0x75, 0x20, 0x91, 0xc1, 0xaa, 0xed, 0x5f, 0x55, 0xfe, 0xb9, 0x84, 0xb0, 0x4a, 0x18, 0x37,
0x4d, 0x47, 0xea, 0xc4, 0x01, 0x1f, 0xe5, 0x52, 0xeb, 0x15, 0xb3, 0xf6, 0x41, 0xaa, 0xfc, 0xad,
0x61, 0x2c, 0x38, 0xda, 0x0f, 0xf9, 0xc1, 0x33, 0x40, 0x0e, 0x2b, 0xe9, 0xf6, 0xb5, 0xef, 0xd7,
0x50, 0x0e, 0xff, 0x82, 0x82, 0x3c, 0x2c, 0x16, 0x69, 0x47, 0x56, 0xa0, 0x54, 0x3e, 0xc4, 0x5e,
0xaa, 0xe2, 0x8d, 0x9a, 0x10, 0x75, 0x96, 0xf6, 0xaf, 0x2c, 0x3f, 0x7e, 0x09, 0x62, 0xce, 0x2b,
0xf4, 0xed, 0xfe, 0x91, 0xe6, 0xec, 0xc2, 0xfe, 0x7b, 0xfb, 0x4f, 0xc2, 0x0a, 0x39, 0x42, 0x45,
0xb8, 0x1e, 0x56, 0x3f, 0xe9, 0xaa, 0x74, 0xb5, 0xe4, 0x53, 0xab, 0xd2, 0x35, 0x9d, 0xb4, 0xcc,
0x55, 0xf1, 0x38, 0xc6, 0x5f, 0x5a, 0xff, 0x5a, 0x5a, 0x7f, 0x5c, 0xdf, 0x10, 0x27, 0x40, 0x43,
0x6a, 0x2e, 0xb9, 0xb9, 0x7f, 0x4f, 0x20, 0xbf, 0xd1, 0x2a, 0xc2, 0xf5, 0x42, 0x96, 0x92, 0x7d,
0x20, 0x29, 0x5f, 0xfa, 0x28, 0xa3, 0x5a, 0x55, 0x3c, 0x42, 0xff, 0x4b, 0xeb, 0x9f, 0x74, 0xff,
0x97, 0xe2, 0x25, 0xc9, 0x02, 0x34, 0xd6, 0x9f, 0xfb, 0xb3, 0xfd, 0xa7, 0xfb, 0x77, 0xa9, 0xe4,
0xf7, 0x76, 0x3a, 0x71, 0x54, 0x84, 0x5b, 0x19, 0xd2, 0x7d, 0x80, 0xf2, 0x00, 0xd0, 0xc1, 0x51,
0x91, 0x6e, 0x01, 0x1e, 0xfd, 0x7c, 0x64, 0xfd, 0x95, 0xa4, 0x79, 0x22, 0x9c, 0x43, 0xad, 0x5c,
0x94, 0xc8, 0xf4, 0xdd, 0xca, 0x55, 0xf1, 0x7a, 0x48, 0xaa, 0xba, 0x7a, 0xfb, 0x47, 0x96, 0x9f,
0x77, 0x06, 0x78, 0x74, 0xfe, 0x47, 0xdc, 0xfe, 0x96, 0x13, 0xdf, 0xbe, 0x34, 0xf1, 0x3d, 0x2d,
0x0f, 0xc9, 0xc9, 0xb7, 0x78, 0x55, 0xbc, 0x11, 0xc6, 0x9f, 0xb3, 0x6c, 0x67, 0x6f, 0xf2, 0xa9,
0x5c, 0x90, 0x16, 0x09, 0x12, 0xb2, 0xf2, 0x3a, 0x20, 0xbe, 0x1c, 0x9f, 0xa1, 0x91, 0xea, 0x41,
0xcc, 0xba, 0xed, 0x95, 0xa8, 0x6c, 0xb6, 0xea, 0xb6, 0xbb, 0x66, 0xb4, 0x8b, 0xb4, 0x7c, 0x2a,
0xbc, 0x91, 0x20, 0x47, 0x84, 0xd3, 0x43, 0xf8, 0x18, 0x85, 0xf8, 0x7a, 0x34, 0xdd, 0x39, 0x06,
0x4f, 0x8a, 0xcb, 0x6b, 0x55, 0x85, 0x03, 0xf8, 0xc6, 0x9f, 0xb3, 0x6c, 0x67, 0x6f, 0xf2, 0xbd,
0xb6, 0x5a, 0x41, 0x49, 0xd3, 0x28, 0x01, 0xf6, 0x46, 0x7e, 0x25, 0xc4, 0x27, 0x5d, 0x8f, 0xa2,
0x96, 0x05, 0x30, 0x9a, 0x7c, 0x58, 0x7f, 0xed, 0xfa, 0x9f, 0xb3, 0x6c, 0x67, 0x8f, 0xf2, 0x29,
0x7a, 0x99, 0x14, 0x09, 0xd2, 0x23, 0x72, 0x9d, 0xa5, 0x7d, 0xc4, 0x87, 0xc9, 0x27, 0xb0, 0x88,
0x81, 0xfc, 0x80, 0x0e, 0xf1, 0xd2, 0xfd, 0xc4, 0x29, 0x8c, 0x14, 0x31, 0x13, 0x0e, 0xe4, 0xd7,
0xcf, 0xb6, 0xcd, 0x24, 0x04, 0xa8, 0x91, 0x6e, 0x1f, 0x00, 0x4a, 0x30, 0x8c, 0x05, 0x98, 0x7b,
0xe8, 0x3e, 0x33, 0xf1, 0x51, 0x22, 0x31, 0x24, 0xe5, 0xdb, 0x51, 0x10, 0x3d, 0x26, 0xa4, 0x18,
0x7d, 0xfc, 0x57, 0x91, 0xdf, 0x8c, 0x00, 0x7b, 0x71, 0x35, 0xa1, 0x1c, 0xfa, 0xcf, 0x3a, 0xc9,
0x56, 0x8e, 0x04, 0x01, 0xd6, 0x8e, 0x04, 0x69, 0x42, 0x80, 0x57, 0xf5, 0xae, 0xae, 0x8d, 0x2c,
0x8a, 0x14, 0xf2, 0x2b, 0xb2, 0x1a, 0x17, 0xb1, 0x30, 0x8c, 0x75, 0x2c, 0xa5, 0x93, 0x39, 0xf2,
0x61, 0x05, 0x02, 0xdd, 0x13, 0xa0, 0x54, 0x7d, 0xd4, 0xe3, 0xa5, 0xe6, 0x72, 0xba, 0x62, 0x9c,
0x82, 0x24, 0xbf, 0x72, 0x24, 0x08, 0xc6, 0x7f, 0xed, 0x48, 0x10, 0x76, 0x02, 0x3c, 0x72, 0x7b,
0xb9, 0x7d, 0xed, 0xfb, 0xb6, 0x6d, 0xc9, 0x8d, 0xcd, 0xfd, 0xfd, 0x1a, 0xdb, 0xf0, 0x16, 0x1e,
0xe8, 0xcb, 0x4f, 0xbe, 0xc1, 0x23, 0x51, 0xa8, 0x3a, 0xb2, 0x7a, 0xfb, 0x67, 0xd0, 0xbf, 0x73,
0x2a, 0xc9, 0x68, 0xad, 0x95, 0xd6, 0xe9, 0xc2, 0x62, 0xbf, 0x5f, 0xd3, 0xbf, 0xb0, 0x67, 0x0f,
0xf4, 0xd9, 0xb6, 0xdd, 0xa3, 0xca, 0xa7, 0xea, 0xc8, 0xea, 0xed, 0x9f, 0x45, 0xff, 0xce, 0xbf,
0x56, 0x83, 0x46, 0x28, 0xd9, 0x62, 0x97, 0x78, 0x79, 0x03, 0x75, 0x17, 0x18, 0xa9, 0x48, 0x10,
0xae, 0xf4, 0x69, 0xab, 0xb6, 0x5f, 0x6b, 0x3d, 0xf4, 0x1c, 0xe1, 0xec, 0xff, 0xb3, 0x4b, 0x4c,
0x5c, 0x83, 0x58, 0x9a, 0x30, 0x32, 0xa6, 0xb8, 0x29, 0x72, 0x27, 0x0a, 0xf8, 0xe8, 0x7a, 0x05,
0x2e, 0xd5, 0x0b, 0xdf, 0x62, 0xa6, 0xb5, 0x56, 0x2a, 0xd1, 0xdf, 0x93, 0xa2, 0xa7, 0x1c, 0x3a,
0x32, 0x72, 0xfb, 0x75, 0xa7, 0x3a, 0xd5, 0xa2, 0xfd, 0x6e, 0xff, 0x9f, 0x6b, 0xad, 0x60, 0xc7,
0x83, 0x0c, 0x17, 0x09, 0xc0, 0xd2, 0xb7, 0xc7, 0x19, 0xf1, 0xe5, 0xed, 0xb4, 0x64, 0x5a, 0xfc,
0xd5, 0xdb, 0xff, 0x34, 0x8c, 0x84, 0xda, 0x7f, 0xdd, 0x3e, 0x4e, 0xd5, 0x1c, 0xa1, 0xe1, 0x0f,
0x06, 0x1c, 0xed, 0x08, 0x42, 0x47, 0x19, 0xf7, 0x1d, 0xc2, 0xcf, 0xd9, 0xce, 0xa5, 0x03, 0x37,
0x2c, 0xb4, 0xbf, 0xed, 0xd6, 0xb6, 0x56, 0xfb, 0x7d, 0xfd, 0x7f, 0xb6, 0xb7, 0xbf, 0xbd, 0x6f,
0xb9, 0x66, 0xcf, 0xba, 0x4b, 0x6d, 0xa3, 0xf4, 0xf3, 0x39, 0x3b, 0x02, 0xd7, 0x43, 0xe0, 0xf2,
0x76, 0x7a, 0xe6, 0x97, 0x34, 0xbf, 0x7b, 0xd3, 0x7a, 0x1a, 0x1d, 0x5b, 0xbd, 0xfd, 0x29, 0x56,
0x60, 0xcd, 0xf6, 0xfb, 0xfa, 0xbf, 0xfb, 0x2b, 0xf0, 0xdb, 0xd7, 0xbe, 0x97, 0x3a, 0x43, 0x8f,
0xe2, 0xa3, 0x44, 0x6d, 0xa3, 0xe4, 0xf3, 0x94, 0xad, 0xdf, 0x11, 0x5a, 0xc7, 0x09, 0xa3, 0xfd,
0x74, 0xfd, 0xe1, 0xfc, 0x9e, 0x16, 0xed, 0xb7, 0xbf, 0xb9, 0xfb, 0x58, 0xe0, 0x96, 0x8a, 0x39,
0x6a, 0x1b, 0xa5, 0x9f, 0xe7, 0x9c, 0x2c, 0xe6, 0x77, 0x5a, 0x12, 0x01, 0xda, 0xdf, 0xcf, 0x1c,
0xab, 0xd9, 0x7e, 0x44, 0x1d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b,
0xe3, 0x44, 0x8d, 0xb5, 0x95, 0x7a, 0x9e, 0x0a, 0x3b, 0x0e, 0x52, 0xfa, 0x1b, 0xb8, 0xe3, 0x9d,
0x53, 0xdf, 0x57, 0x4b, 0x7e, 0x2e, 0x72, 0xe5, 0x87, 0xc2, 0x28, 0x73, 0xde, 0x25, 0xad, 0xc3,
0xa1, 0xfe, 0xab, 0xa1, 0x93, 0xbe, 0x7e, 0x6b, 0xa5, 0xff, 0x39, 0xe1, 0xaf, 0xad, 0xda, 0xff,
0x52, 0x3a, 0x70, 0x23, 0x1c, 0xba, 0xf7, 0x2a, 0xbf, 0x66, 0x1f, 0xe6, 0x90, 0xdf, 0xb0, 0x63,
0x68, 0xca, 0xb1, 0x12, 0xc9, 0xaf, 0xc7, 0x8b, 0xa7, 0xdb, 0xd7, 0xbe, 0xd7, 0x22, 0xa4, 0x9a,
0xef, 0xe6, 0x92, 0xdf, 0xba, 0xfd, 0xcf, 0x5b, 0x60, 0x6a, 0xac, 0x6d, 0xab, 0xe7, 0xa9, 0x08,
0xc5, 0x81, 0x4a, 0x7f, 0x03, 0xb5, 0x0f, 0xed, 0xf2, 0x01, 0x12, 0xf2, 0xa9, 0x48, 0xef, 0xff,
0x77, 0xf5, 0xab, 0x4e, 0x75, 0x46, 0xdb, 0x7b, 0xd0, 0xe1, 0xd8, 0xf8, 0xd5, 0xd0, 0x47, 0x53,
0x8e, 0xe0, 0xb2, 0x7d, 0xff, 0xe9, 0xbb, 0x16, 0xfa, 0x9f, 0x22, 0x5f, 0xa2, 0xfd, 0xd9, 0xa1,
0x70, 0xa1, 0x38, 0xca, 0x16, 0xcf, 0x93, 0x57, 0x81, 0x48, 0x1c, 0xa8, 0xf4, 0x37, 0x94, 0xf6,
0x61, 0x4e, 0xed, 0x94, 0x9a, 0x63, 0xc8, 0xb1, 0x38, 0xc4, 0xf0, 0x8c, 0x59, 0x7f, 0x28, 0x72,
0x6e, 0xdd, 0x18, 0x69, 0x1d, 0x0e, 0x8d, 0x9f, 0x3d, 0xf1, 0x59, 0x75, 0xf1, 0x29, 0xf0, 0xfe,
0x4e, 0x5f, 0x32, 0xda, 0x6a, 0xfa, 0x1f, 0x91, 0x2f, 0xd5, 0xfe, 0xa1, 0xaa, 0xc2, 0x01, 0xe1,
0xf3, 0x92, 0xdc, 0xc2, 0x51, 0xa3, 0xe2, 0x57, 0xfa, 0x7d, 0x2b, 0x7a, 0x60, 0x86, 0xb6, 0xd7,
0x6a, 0x87, 0x79, 0x67, 0x28, 0x19, 0x43, 0xed, 0x31, 0x4b, 0x91, 0xdf, 0xba, 0xfd, 0x2f, 0xa0,
0x0f, 0x90, 0xdf, 0xc8, 0x24, 0x38, 0x43, 0xdb, 0xa5, 0xce, 0xe5, 0xa4, 0xab, 0xf3, 0x19, 0xf9,
0x92, 0xed, 0x3f, 0xf7, 0xa4, 0xd0, 0xa1, 0x38, 0xc4, 0xd4, 0xc0, 0xe8, 0x16, 0xb1, 0x8c, 0xd2,
0x55, 0xd9, 0xec, 0x3e, 0xd3, 0x0b, 0x92, 0xdf, 0xa1, 0x25, 0x38, 0x01, 0x72, 0xc6, 0xb1, 0x34,
0xdd, 0x9c, 0x5d, 0x93, 0x45, 0x42, 0xff, 0x43, 0xf2, 0x25, 0xda, 0xdf, 0x05, 0x01, 0xc6, 0x12,
0x3c, 0xe6, 0x2a, 0x7a, 0x0b, 0x13, 0x5f, 0xba, 0x2a, 0xda, 0x4f, 0x21, 0xa2, 0xb2, 0x7a, 0xc9,
0x4a, 0x8d, 0x1b, 0x1a, 0x74, 0xd3, 0xaf, 0x4f, 0x65, 0x5f, 0x91, 0xf8, 0x8f, 0xb6, 0x91, 0x2b,
0x55, 0x05, 0xe4, 0x6c, 0xbf, 0xf8, 0x16, 0x38, 0xe6, 0x4e, 0xd0, 0x32, 0x43, 0x85, 0x91, 0x15,
0xfb, 0x4f, 0xf2, 0x1b, 0x7f, 0x2f, 0x18, 0xeb, 0x91, 0x9f, 0xcf, 0x02, 0xb8, 0xe9, 0xd7, 0x65,
0x33, 0x81, 0x8f, 0x9e, 0x9e, 0x5f, 0x52, 0xbe, 0xbc, 0x05, 0x18, 0xa9, 0xfa, 0x46, 0x29, 0x7a,
0x92, 0x33, 0xc9, 0x4b, 0xd3, 0x8c, 0x4b, 0x55, 0x45, 0xcb, 0x5d, 0xe9, 0x66, 0x22, 0x3f, 0x63,
0x81, 0xdc, 0xb4, 0x7e, 0x6c, 0x69, 0x5e, 0x1f, 0xe3, 0xd7, 0x6e, 0x01, 0x7a, 0x6e, 0xa3, 0x3c,
0x3e, 0x89, 0xcd, 0xf4, 0x60, 0xf1, 0xaa, 0x80, 0x54, 0xf9, 0x2f, 0x94, 0x09, 0x38, 0x4b, 0x16,
0xdb, 0xd9, 0x33, 0xce, 0xcc, 0x46, 0x7e, 0xbf, 0x49, 0xf0, 0x55, 0x4c, 0xf6, 0xea, 0x49, 0x7f,
0x67, 0xe0, 0x80, 0x73, 0x71, 0xc3, 0x67, 0x4a, 0x4e, 0x3a, 0x71, 0xed, 0xe1, 0x59, 0xc9, 0xcf,
0x25, 0xa2, 0xd6, 0xb5, 0x60, 0xec, 0x33, 0x27, 0x63, 0x85, 0x62, 0xdb, 0xbd, 0x00, 0x01, 0x52,
0x2b, 0x52, 0x01, 0x20, 0xbf, 0x99, 0x48, 0x60, 0xa6, 0x5b, 0x68, 0x2a, 0x07, 0x8c, 0xd8, 0x0f,
0xc5, 0x16, 0x20, 0x00, 0xf2, 0xeb, 0x82, 0x84, 0x04, 0xce, 0xa0, 0xdc, 0x5b, 0xe8, 0x4f, 0xf5,
0x9f, 0xba, 0x6c, 0xef, 0xcd, 0xce, 0x20, 0x7b, 0x21, 0x7f, 0xaa, 0x5e, 0xf6, 0x00, 0x38, 0x42,
0x83, 0xfc, 0x80, 0xc2, 0x3e, 0x76, 0x2d, 0x41, 0x20, 0x7f, 0xf1, 0x02, 0x01, 0x02, 0x55, 0xb6,
0x28, 0x26, 0xf8, 0x5b, 0xda, 0xdb, 0x7f, 0x56, 0xb8, 0x17, 0x30, 0xd8, 0x15, 0xc5, 0x17, 0x8c,
0xde, 0xac, 0xbf, 0xa2, 0x2d, 0x70, 0x2f, 0x51, 0x10, 0xac, 0x83, 0x23, 0x9c, 0x0f, 0xaf, 0x16,
0x09, 0x1a, 0x57, 0x0d, 0x5f, 0xe0, 0x3b, 0xc0, 0x41, 0x82, 0x7a, 0x39, 0xa7, 0xec, 0x92, 0xcb,
0x8f, 0x58, 0x55, 0xbc, 0x61, 0x08, 0xf0, 0xb0, 0x31, 0x0b, 0x1e, 0x06, 0x9b, 0x83, 0xe0, 0x6b,
0xe7, 0xdf, 0x08, 0x12, 0x6c, 0x4b, 0x82, 0x2b, 0xb5, 0x7b, 0xe4, 0xad, 0x2f, 0x89, 0x00, 0x5d,
0xf2, 0x6b, 0xed, 0x82, 0x20, 0x3d, 0xa8, 0x23, 0x9d, 0xf9, 0x80, 0x04, 0x41, 0x82, 0xbd, 0xa0,
0x47, 0xdd, 0x3b, 0x53, 0x1b, 0x24, 0xe9, 0x05, 0x5e, 0x65, 0x90, 0x84, 0xf3, 0xe1, 0x81, 0x04,
0x47, 0x5e, 0x3c, 0x17, 0x4c, 0x48, 0x31, 0xb8, 0x2e, 0x89, 0x87, 0xc2, 0xd5, 0xf2, 0x24, 0xbf,
0x7b, 0xa9, 0xfb, 0xc9, 0x99, 0xe3, 0xfc, 0x2e, 0x26, 0xa3, 0x5a, 0x9f, 0x59, 0x67, 0x30, 0xa9,
0x56, 0x47, 0x0d, 0x12, 0xa4, 0xb6, 0xbf, 0xe7, 0x33, 0xd4, 0x1c, 0x02, 0xf8, 0xd4, 0xff, 0x76,
0x89, 0x63, 0x20, 0x29, 0xfd, 0xeb, 0xc9, 0x58, 0xc9, 0x6d, 0xbf, 0xeb, 0x21, 0xf1, 0x32, 0x6d,
0xc7, 0x44, 0x52, 0x6b, 0x51, 0xb7, 0xb0, 0xd2, 0x9e, 0xf0, 0xdb, 0xb6, 0x65, 0x87, 0x82, 0x71,
0xde, 0x0e, 0x53, 0xdb, 0x3f, 0x53, 0xf8, 0xa1, 0x84, 0x2e, 0x4c, 0x17, 0x8d, 0x25, 0xd4, 0xfe,
0x6e, 0xf2, 0x01, 0x72, 0x5d, 0x8f, 0xa7, 0xa6, 0xd6, 0xaa, 0x21, 0x43, 0xe2, 0x12, 0x28, 0xf7,
0xfc, 0x89, 0xc3, 0x12, 0xa4, 0x46, 0x03, 0x69, 0xad, 0xa7, 0xf2, 0x9b, 0x6b, 0x4d, 0x44, 0x33,
0x45, 0x62, 0xb4, 0x6e, 0xbf, 0xab, 0xff, 0x5d, 0xa5, 0xc4, 0xe7, 0x1a, 0xc0, 0xd0, 0x7b, 0x42,
0xe7, 0x77, 0x5a, 0x6b, 0xa5, 0x12, 0x83, 0xdc, 0x7b, 0xf2, 0x84, 0xe7, 0x3a, 0x84, 0x6f, 0xd1,
0x7e, 0xa5, 0x94, 0xd2, 0x0a, 0x98, 0x49, 0xff, 0x46, 0x6a, 0xbf, 0x0b, 0x38, 0x42, 0xab, 0xbc,
0x7a, 0xa5, 0xac, 0x84, 0xcf, 0x71, 0x0e, 0xf7, 0x78, 0x07, 0x25, 0x33, 0x8a, 0x54, 0xfb, 0x81,
0xf1, 0xf5, 0x6f, 0xe4, 0xf6, 0x77, 0xb5, 0x05, 0xee, 0xc5, 0xb4, 0x56, 0xd6, 0xd9, 0x02, 0xa7,
0x5b, 0x83, 0x79, 0x67, 0x8d, 0xd5, 0xd7, 0x1c, 0xc4, 0x53, 0x2d, 0xc1, 0x9a, 0xed, 0x07, 0xe6,
0xd5, 0xbf, 0x5e, 0xdb, 0x9f, 0xf2, 0x9e, 0xb3, 0x6d, 0x52, 0x52, 0xce, 0x32, 0xa4, 0x9f, 0x67,
0x59, 0x85, 0xac, 0x0a, 0x63, 0xf7, 0x0e, 0xe4, 0xdb, 0xac, 0xa5, 0x78, 0xc2, 0x53, 0xfa, 0xc0,
0x25, 0xc1, 0xde, 0xda, 0x3f, 0x82, 0x0e, 0x49, 0x3e, 0x3f, 0xba, 0xfe, 0xf5, 0x38, 0xff, 0x52,
0xde, 0x73, 0xba, 0x7d, 0xed, 0x7b, 0xe9, 0x8d, 0xdc, 0xdd, 0x0f, 0x50, 0xee, 0xf9, 0x1a, 0x5b,
0x80, 0x16, 0xb1, 0xb3, 0xae, 0x5c, 0x6a, 0x1f, 0x52, 0xbe, 0x9f, 0xfa, 0x3c, 0x47, 0x5f, 0x8c,
0xac, 0x83, 0x1c, 0xcf, 0xcf, 0xa4, 0x7f, 0x54, 0xb4, 0xd6, 0xbf, 0x33, 0x95, 0x7c, 0xa4, 0x9f,
0xaf, 0xa5, 0x1c, 0x35, 0x06, 0xc2, 0xa7, 0x2c, 0x9c, 0x7d, 0x60, 0x2c, 0xc1, 0x1e, 0xdb, 0xdf,
0xab, 0x0e, 0xf5, 0xa4, 0xc3, 0xa3, 0xeb, 0x5f, 0x4f, 0xed, 0x97, 0xd0, 0x65, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe8, 0x14, 0xa7, 0x56, 0x55, 0x9d, 0x72, 0x7c, 0x7d,
0x6a, 0x7c, 0x53, 0x48, 0xbe, 0x54, 0x65, 0x2b, 0x13, 0x0b, 0x4b, 0xcd, 0x47, 0x88, 0xe7, 0xdb,
0x3d, 0x9f, 0xa2, 0xc7, 0xa9, 0xef, 0x1b, 0x51, 0x7e, 0x0d, 0xfd, 0x97, 0x24, 0xc0, 0x66, 0x8e,
0xd0, 0xb7, 0xaf, 0x7d, 0x8f, 0x75, 0x74, 0xca, 0xef, 0xd4, 0x94, 0xdf, 0x7a, 0xf0, 0x57, 0x3e,
0xf8, 0x1f, 0xf5, 0xf9, 0x14, 0x1d, 0x9e, 0x59, 0x7e, 0x2f, 0xfa, 0xcf, 0x85, 0xa7, 0x1f, 0x60,
0x4d, 0x07, 0x49, 0x13, 0x80, 0x7f, 0xd9, 0xbe, 0xef, 0x85, 0xa4, 0x0f, 0x58, 0xdf, 0x1d, 0x38,
0xce, 0xef, 0x49, 0x91, 0x5f, 0xbb, 0x0f, 0x6c, 0xf8, 0xe2, 0x91, 0xa9, 0xf9, 0x08, 0xf1, 0x7c,
0xfd, 0xe7, 0xb5, 0xd6, 0x77, 0xb7, 0x91, 0x03, 0x4b, 0xcc, 0xe8, 0x70, 0xec, 0x3d, 0x23, 0xcb,
0xaf, 0xa9, 0xff, 0xa2, 0x04, 0x68, 0x3e, 0xac, 0x0a, 0x9e, 0x1d, 0x7b, 0x7f, 0xbf, 0x1b, 0x84,
0x6f, 0x93, 0xdf, 0x33, 0x55, 0x0d, 0xe7, 0xb7, 0x44, 0xe4, 0x37, 0xe9, 0x03, 0x5b, 0x51, 0x03,
0xf1, 0xc8, 0xd4, 0x7c, 0x84, 0x78, 0xbe, 0xf2, 0xf3, 0xdb, 0x76, 0x48, 0x42, 0x36, 0xf9, 0xc4,
0xde, 0x31, 0xb4, 0xfc, 0xca, 0xfa, 0x3f, 0xe5, 0x16, 0xf8, 0xaa, 0xde, 0x9f, 0x5e, 0xe6, 0x21,
0xe6, 0x37, 0x83, 0xc7, 0x3d, 0x08, 0xa9, 0xf2, 0x01, 0x20, 0x45, 0x97, 0x9e, 0x11, 0x06, 0x0f,
0xd2, 0xc9, 0x21, 0x9f, 0xd1, 0xe5, 0xcf, 0x06, 0xb1, 0x64, 0x08, 0xc6, 0x39, 0xb1, 0xe5, 0xb9,
0x1c, 0xaa, 0xa5, 0x01, 0xb5, 0x48, 0xa8, 0x25, 0xf9, 0x48, 0xcb, 0x9f, 0x09, 0x4d, 0xab, 0xc2,
0xd9, 0xb9, 0xb8, 0x7c, 0xd6, 0x1f, 0xe5, 0x1b, 0x52, 0x49, 0xf0, 0x33, 0xa0, 0x58, 0xb1, 0x44,
0xaa, 0xb5, 0xbf, 0x0f, 0x68, 0x8f, 0x9f, 0x71, 0x4d, 0x27, 0x90, 0xab, 0x7a, 0x7f, 0x6e, 0x47,
0xa9, 0xe4, 0x23, 0x2d, 0x3f, 0x55, 0xff, 0x29, 0x73, 0x62, 0x1a, 0x02, 0x34, 0x64, 0xe5, 0x76,
0x5c, 0xab, 0x74, 0xe0, 0xd4, 0x7c, 0x66, 0x9f, 0x41, 0x62, 0x8c, 0x27, 0x52, 0x4d, 0x6d, 0xe3,
0x36, 0x43, 0x95, 0xa8, 0x55, 0xb0, 0x5d, 0x9e, 0xe1, 0x83, 0x3a, 0x23, 0x9b, 0x8e, 0x21, 0xa1,
0x1c, 0xbd, 0x3f, 0x2c, 0x5a, 0x2f, 0x2d, 0x5f, 0x95, 0x25, 0xb9, 0x2d, 0x99, 0xf7, 0x3e, 0xf9,
0xc3, 0x6e, 0x81, 0x47, 0x4d, 0xcd, 0x7d, 0x34, 0xf8, 0xb3, 0xb5, 0x11, 0xc8, 0xd7, 0x87, 0xdc,
0xbc, 0x8a, 0x5c, 0x93, 0x5f, 0x52, 0x7e, 0x89, 0x4b, 0x4a, 0xc9, 0x9c, 0xe8, 0x8d, 0xfc, 0x8a,
0x2d, 0x40, 0x7b, 0xd0, 0x24, 0x8b, 0xb2, 0xb0, 0x75, 0xe2, 0x76, 0x39, 0x85, 0xea, 0xfb, 0x52,
0xda, 0x88, 0x0a, 0x6c, 0x63, 0x91, 0x20, 0x47, 0x5e, 0xc5, 0xd2, 0xc9, 0x2f, 0x26, 0x3f, 0xa2,
0xff, 0x1c, 0x73, 0xa2, 0x47, 0xf2, 0x23, 0x59, 0x80, 0xf7, 0x8a, 0x4c, 0x72, 0x8e, 0xc5, 0x46,
0x7e, 0xea, 0x7f, 0x98, 0xde, 0x40, 0x4d, 0x4b, 0x90, 0x6b, 0xf2, 0x4b, 0xcb, 0x4f, 0x23, 0xbf,
0xbc, 0x8b, 0x97, 0x5e, 0xc9, 0xaf, 0x98, 0x00, 0x4b, 0xb7, 0x84, 0x5c, 0x1d, 0x51, 0x64, 0x7e,
0x83, 0x08, 0x01, 0x01, 0x12, 0x2c, 0xd1, 0x79, 0x69, 0xf9, 0xab, 0x90, 0x5f, 0xd1, 0x16, 0x58,
0xba, 0x22, 0x55, 0xc9, 0x61, 0x6d, 0x6a, 0x24, 0x08, 0x00, 0x70, 0x6e, 0x47, 0x29, 0x93, 0x5f,
0x5a, 0xfe, 0x0a, 0xe4, 0x57, 0x44, 0x80, 0xa5, 0x64, 0x17, 0xeb, 0x8c, 0xaa, 0x15, 0xa1, 0x32,
0x22, 0x41, 0x00, 0x80, 0x83, 0x84, 0x38, 0x26, 0xbf, 0x2d, 0x5f, 0x65, 0xea, 0x3c, 0xc8, 0xaf,
0xe2, 0x16, 0x98, 0x93, 0xfc, 0x5a, 0x54, 0x84, 0x42, 0x24, 0x08, 0x40, 0x21, 0xc1, 0xab, 0x7a,
0xcf, 0xba, 0x29, 0xfd, 0x54, 0xff, 0xa9, 0xcb, 0xf6, 0x7d, 0xd7, 0x3b, 0xe2, 0xe4, 0x37, 0xf2,
0x73, 0x74, 0x17, 0xe4, 0xd7, 0x19, 0x01, 0xa6, 0x44, 0x60, 0x18, 0x85, 0xb9, 0xe9, 0xd7, 0x26,
0x2e, 0x27, 0x88, 0x04, 0x01, 0x52, 0x27, 0xbf, 0x21, 0x9f, 0xd4, 0x9d, 0x87, 0xf1, 0x8f, 0xbb,
0xe9, 0x57, 0x96, 0x8b, 0x42, 0x49, 0x17, 0xac, 0x99, 0xc9, 0xaf, 0x68, 0x0b, 0x5c, 0x1a, 0x09,
0xe2, 0x56, 0x64, 0xff, 0xe5, 0x87, 0xc4, 0x50, 0x11, 0x8a, 0x1a, 0x89, 0x02, 0x00, 0xd4, 0xc9,
0xff, 0xe7, 0x98, 0xc6, 0x93, 0xb8, 0x60, 0xd6, 0xf6, 0x8f, 0x46, 0x7e, 0x45, 0x04, 0x68, 0x93,
0x94, 0xbb, 0xe2, 0x91, 0x2e, 0x42, 0x2c, 0x6f, 0xf8, 0x23, 0x19, 0x29, 0x2b, 0x2e, 0x62, 0x21,
0x17, 0xc4, 0x63, 0xe1, 0xec, 0x89, 0xfc, 0x66, 0x20, 0xc1, 0x15, 0xc8, 0x8f, 0x65, 0x0b, 0x9c,
0x93, 0xdb, 0x2b, 0xb6, 0x15, 0xbe, 0x6e, 0x1f, 0xa7, 0xec, 0xdb, 0x32, 0x44, 0x69, 0x2c, 0x8b,
0x5a, 0x0b, 0x1e, 0x67, 0x82, 0x81, 0xa3, 0xc4, 0x05, 0x20, 0xbf, 0xc1, 0x2d, 0x40, 0x9b, 0xb0,
0x6e, 0x5f, 0x7a, 0xe7, 0xde, 0x51, 0xe6, 0x74, 0xa2, 0x64, 0x24, 0xca, 0x4c, 0x08, 0x25, 0x89,
0xe8, 0x51, 0xbe, 0x99, 0x98, 0xf7, 0x0b, 0x07, 0xbe, 0x45, 0xb0, 0x46, 0x76, 0x95, 0x91, 0x2c,
0xc1, 0x95, 0xc8, 0x8f, 0x4c, 0x80, 0xdc, 0x9d, 0x0e, 0xe4, 0x4f, 0x2c, 0x8e, 0x05, 0xc0, 0x9c,
0x9f, 0x96, 0x9c, 0x73, 0x49, 0xca, 0x37, 0xc7, 0x1e, 0x86, 0x04, 0x3f, 0x1b, 0x4f, 0xfe, 0xd9,
0x48, 0x90, 0x7a, 0xe6, 0x99, 0xab, 0x0b, 0x4b, 0xd5, 0x04, 0x01, 0xf9, 0x55, 0x20, 0x3f, 0xae,
0xad, 0xff, 0x76, 0x39, 0x7d, 0xaa, 0xff, 0x9e, 0x37, 0x97, 0x29, 0x8a, 0xeb, 0xca, 0x27, 0x59,
0x0c, 0x05, 0xf2, 0xed, 0x33, 0xdf, 0x9c, 0x33, 0x60, 0x9f, 0xc5, 0x52, 0x3a, 0xf9, 0x73, 0x13,
0x17, 0x3c, 0xcf, 0xb6, 0x2b, 0x9d, 0x5d, 0x8a, 0x91, 0x5f, 0x41, 0x1a, 0xad, 0xae, 0x6a, 0x82,
0x48, 0x83, 0x7a, 0x33, 0xbb, 0xd2, 0x05, 0x48, 0x8d, 0x68, 0x9c, 0x12, 0xa7, 0x5f, 0x7b, 0xcc,
0xa8, 0xdb, 0xa5, 0x5c, 0xf9, 0xae, 0x3c, 0x29, 0xf2, 0xcb, 0x75, 0x92, 0xbe, 0xfb, 0x06, 0xde,
0x7f, 0xb7, 0x17, 0x87, 0x7c, 0x0a, 0xf9, 0x51, 0xd2, 0x68, 0x61, 0x0b, 0xdc, 0x98, 0xc4, 0xa8,
0xb9, 0x04, 0x6b, 0xa3, 0x6a, 0x34, 0x4c, 0x42, 0x1f, 0x50, 0x49, 0x88, 0x7a, 0x56, 0x54, 0x42,
0xc2, 0x37, 0xfd, 0x9a, 0xfc, 0x7b, 0xac, 0xce, 0xc1, 0xd6, 0xfb, 0x72, 0x49, 0xb0, 0x77, 0x3d,
0xac, 0x3d, 0x6f, 0x97, 0xab, 0x09, 0x12, 0x5c, 0x41, 0x1e, 0x67, 0x21, 0x5a, 0xeb, 0xa6, 0xab,
0x42, 0x4f, 0x07, 0xb6, 0x52, 0xe7, 0x41, 0x47, 0x7d, 0x30, 0x52, 0x36, 0x94, 0x1f, 0x0b, 0xec,
0x95, 0x4d, 0x7e, 0x69, 0x7b, 0x38, 0xfb, 0x0b, 0x58, 0x88, 0x00, 0x8f, 0xce, 0x95, 0xb8, 0x15,
0xc9, 0xbc, 0xb3, 0xf7, 0x55, 0xb7, 0x97, 0x3e, 0x18, 0x21, 0x1b, 0xca, 0x5f, 0x0b, 0xec, 0x95,
0x4d, 0x7e, 0x6e, 0x7b, 0x40, 0x82, 0xe3, 0xe2, 0x6c, 0x9b, 0xb1, 0x94, 0xc1, 0xa3, 0x3c, 0xcf,
0x11, 0x09, 0x12, 0xc2, 0x1f, 0xc7, 0xed, 0xd2, 0xe0, 0xf4, 0x8a, 0x3e, 0x87, 0xbd, 0xf5, 0x81,
0xbb, 0x1d, 0xa5, 0xca, 0xa5, 0x66, 0x43, 0x09, 0xbd, 0x37, 0xf5, 0xf7, 0x38, 0xc6, 0x37, 0xf5,
0x0c, 0xb3, 0xd6, 0x56, 0xb3, 0x26, 0xc1, 0xae, 0xe8, 0x53, 0x7b, 0xba, 0x7d, 0xed, 0x7b, 0xe9,
0x8d, 0xcc, 0xdd, 0x0f, 0x90, 0xf6, 0xbc, 0xfd, 0x73, 0x8b, 0xf8, 0xdc, 0x12, 0xf2, 0xe3, 0x6c,
0x63, 0x0c, 0xbd, 0xf5, 0x01, 0xc7, 0xf7, 0x50, 0x2c, 0xaf, 0x90, 0x7c, 0xfb, 0xbd, 0xa9, 0xbf,
0xc7, 0x31, 0xbe, 0xa1, 0xf7, 0xe5, 0xf6, 0x57, 0x4a, 0xdf, 0xd4, 0xd6, 0x3f, 0xca, 0xfb, 0x47,
0x3f, 0x8a, 0x7a, 0xa1, 0x36, 0x9c, 0xb3, 0xe3, 0x4a, 0x22, 0x41, 0x5a, 0xbc, 0xbb, 0xa5, 0x72,
0xf4, 0xd6, 0x07, 0x1c, 0xd9, 0x4c, 0x6a, 0x3c, 0xef, 0xab, 0xa9, 0x51, 0x22, 0x9f, 0x8b, 0xfc,
0x6a, 0x4d, 0xe8, 0xda, 0xfa, 0xd7, 0x8b, 0x4b, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xd4, 0xc7, 0xff, 0x94, 0xe3, 0x90, 0xce, 0x96, 0x25, 0xde, 0x89, 0x00, 0x00, 0x00, 0x00, 0x49,
0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82
};
const int BMfont3_size = sizeof(BMfont3);

View file

@ -0,0 +1,14 @@
/*
This file was autogenerated by raw2c.
Visit http://www.devkitpro.org
*/
//---------------------------------------------------------------------------------
#ifndef _BMfont3_h_
#define _BMfont3_h_
//---------------------------------------------------------------------------------
extern const unsigned char BMfont3[];
extern const int BMfont3_size;
//---------------------------------------------------------------------------------
#endif //_BMfont3_h_
//---------------------------------------------------------------------------------

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

View file

@ -0,0 +1,67 @@
/*
This file was autogenerated by raw2c.
Visit http://www.devkitpro.org
*/
const unsigned char BMfont4[] = {
0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52,
0x00, 0x00, 0x01, 0x40, 0x00, 0x00, 0x00, 0x30, 0x08, 0x06, 0x00, 0x00, 0x00, 0x60, 0xc5, 0xa3,
0xdf, 0x00, 0x00, 0x00, 0x01, 0x73, 0x52, 0x47, 0x42, 0x00, 0xae, 0xce, 0x1c, 0xe9, 0x00, 0x00,
0x03, 0x5e, 0x49, 0x44, 0x41, 0x54, 0x78, 0xda, 0xed, 0x9d, 0xd1, 0xb2, 0xad, 0x20, 0x08, 0x40,
0x4f, 0x4d, 0xff, 0xff, 0xcb, 0xdd, 0xa7, 0x3d, 0xd3, 0x6d, 0x6c, 0x54, 0x40, 0x40, 0x5d, 0xeb,
0xe9, 0xcc, 0xd9, 0x91, 0x26, 0x48, 0x44, 0x4a, 0xc7, 0xdf, 0x20, 0xee, 0xfb, 0xbe, 0x7f, 0x7f,
0x1f, 0xc7, 0x71, 0xfc, 0x81, 0x2b, 0xcf, 0xf1, 0xd7, 0xea, 0xe0, 0x7d, 0xae, 0xf7, 0x39, 0x6b,
0xbf, 0x43, 0x4e, 0xbb, 0x78, 0xea, 0xe7, 0x4b, 0x87, 0x5f, 0xd4, 0x74, 0xdb, 0x3b, 0xff, 0xb5,
0xed, 0xb7, 0xca, 0xbf, 0xe5, 0x0e, 0xef, 0x81, 0x86, 0x78, 0x63, 0x1f, 0x7d, 0x0e, 0x74, 0x3f,
0xaf, 0xf3, 0xfb, 0xd2, 0x57, 0xc9, 0xc1, 0xb4, 0x1e, 0x6b, 0xe9, 0x2c, 0x4b, 0xc7, 0xf6, 0xf6,
0xff, 0x79, 0xcc, 0x89, 0x59, 0xc0, 0xca, 0x13, 0xbe, 0x37, 0xb2, 0xe0, 0x66, 0xa8, 0x8b, 0xce,
0x66, 0x1b, 0xef, 0x0b, 0xd3, 0xc0, 0xe0, 0x01, 0x5b, 0x68, 0x95, 0xad, 0x39, 0xb8, 0x5a, 0x5a,
0x64, 0x44, 0xaa, 0x44, 0x23, 0x8f, 0x03, 0x5c, 0x14, 0x9c, 0x1e, 0x58, 0x3b, 0x3f, 0xaf, 0x7e,
0x5a, 0xd8, 0x77, 0xeb, 0xf9, 0x2e, 0x2f, 0x25, 0x30, 0x21, 0xc1, 0x7b, 0xc2, 0x7b, 0x4e, 0x64,
0xeb, 0x09, 0xbc, 0xab, 0xf3, 0xb3, 0x6a, 0xab, 0xf5, 0x25, 0xc9, 0x19, 0x69, 0x98, 0x00, 0xb0,
0xb7, 0xf3, 0x8b, 0x86, 0x47, 0x60, 0x18, 0x1a, 0xc9, 0x7b, 0x47, 0xff, 0xa5, 0xb7, 0x9b, 0x1e,
0xed, 0x67, 0x72, 0x14, 0xd9, 0x9c, 0x5f, 0x8f, 0x0d, 0x78, 0xd8, 0xcb, 0xb3, 0x8d, 0x6b, 0x07,
0x83, 0x80, 0xbd, 0x9c, 0xe0, 0x88, 0x27, 0x96, 0x59, 0xfa, 0x6f, 0xe5, 0xc0, 0xac, 0xaf, 0x37,
0xab, 0x13, 0x24, 0x02, 0x04, 0xf8, 0x70, 0x00, 0xd1, 0x69, 0x9b, 0xde, 0x08, 0x76, 0x87, 0x47,
0x57, 0xe9, 0x3a, 0x40, 0xf7, 0x47, 0xe0, 0x9e, 0x85, 0x93, 0x00, 0x3c, 0x85, 0xe4, 0x88, 0xfc,
0xb6, 0xb3, 0x11, 0x1c, 0x20, 0x48, 0x74, 0xf9, 0x75, 0x07, 0x5e, 0xc5, 0x11, 0xcd, 0xe4, 0x50,
0xac, 0x77, 0xfc, 0x58, 0xdc, 0x5c, 0x34, 0x3b, 0x47, 0x24, 0x7d, 0xc8, 0xf8, 0x16, 0x1e, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe2, 0x51, 0x97, 0x93, 0x79, 0xff, 0xd6, 0xd5,
0xb8, 0x51, 0x12, 0x33, 0x43, 0x12, 0x55, 0x5a, 0x8f, 0x0c, 0xf4, 0x48, 0xf4, 0x3f, 0x62, 0x9d,
0x9b, 0xa7, 0xfd, 0x6a, 0xe7, 0x60, 0xa6, 0xf6, 0x23, 0xe5, 0xcd, 0x1d, 0xe0, 0xa8, 0x7a, 0x5e,
0xb3, 0xcb, 0xb3, 0x4c, 0xc1, 0xc7, 0x01, 0x5a, 0x17, 0xea, 0xf4, 0x68, 0x1f, 0xf9, 0x38, 0x79,
0xea, 0x01, 0x02, 0xc0, 0xb6, 0xb8, 0xef, 0x04, 0x19, 0x51, 0xfb, 0x6b, 0xf5, 0x55, 0xef, 0x33,
0x5c, 0x5f, 0xe4, 0x3a, 0x2c, 0x22, 0xea, 0x79, 0xc6, 0x2a, 0xb2, 0xf6, 0x5f, 0x49, 0xfe, 0xfa,
0xfd, 0xf3, 0x67, 0xc0, 0xda, 0xed, 0x3f, 0xda, 0x5c, 0x98, 0x54, 0x5e, 0x33, 0x01, 0x25, 0xd7,
0xaf, 0x95, 0x87, 0x75, 0x1c, 0xb0, 0xa6, 0x1f, 0xd6, 0xf2, 0x59, 0xf5, 0x20, 0xd9, 0xce, 0xa7,
0xd1, 0x57, 0xcb, 0x38, 0xfe, 0xb7, 0x17, 0x58, 0x53, 0x60, 0xb0, 0xa7, 0x73, 0x4f, 0x47, 0x21,
0x89, 0xe6, 0x4a, 0xf2, 0xda, 0xbc, 0x8e, 0x24, 0x87, 0xf0, 0xee, 0xbf, 0x55, 0x81, 0xc6, 0x59,
0x23, 0x9b, 0xc8, 0xbe, 0x66, 0xca, 0xaf, 0x6a, 0xed, 0xa0, 0x55, 0x3e, 0xab, 0x6d, 0x44, 0x47,
0x78, 0xbd, 0x01, 0x16, 0x39, 0x40, 0x80, 0x0d, 0x22, 0x5e, 0x28, 0x73, 0x66, 0x1b, 0xfc, 0xe8,
0x47, 0x08, 0x0f, 0xc3, 0x6a, 0x6d, 0x63, 0xa6, 0x8f, 0xfa, 0xdc, 0x9d, 0xe0, 0x98, 0x90, 0xcf,
0x20, 0x7f, 0x66, 0x74, 0x14, 0x38, 0x41, 0xe8, 0x7d, 0xdc, 0xf9, 0x81, 0x13, 0x44, 0xbe, 0x47,
0xfe, 0xb2, 0x56, 0xf8, 0x8e, 0x6f, 0xe4, 0x46, 0x5d, 0x3f, 0x39, 0x40, 0xec, 0x6f, 0xb5, 0xb1,
0xca, 0xa6, 0x2b, 0x72, 0x80, 0x00, 0xb0, 0xef, 0xd3, 0x83, 0x26, 0xac, 0x8c, 0xd8, 0x4a, 0xd6,
0xda, 0xf6, 0xc8, 0x8f, 0x3f, 0x5b, 0xf7, 0x1f, 0xd6, 0x89, 0x6a, 0x6a, 0xfd, 0xa8, 0xed, 0x64,
0xc8, 0x32, 0x7f, 0x76, 0x9b, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb0,
0x26, 0x26, 0xe5, 0x68, 0x34, 0xc7, 0xb5, 0x92, 0xa5, 0x1c, 0x57, 0xed, 0x9c, 0xcd, 0x03, 0xbf,
0x69, 0x3d, 0xb8, 0xd2, 0xf8, 0xce, 0x78, 0xfd, 0x52, 0xfb, 0xf1, 0x2c, 0x07, 0x55, 0xda, 0x36,
0x97, 0xb1, 0x1c, 0x9c, 0x45, 0x3d, 0x4f, 0x29, 0x7c, 0x17, 0xd8, 0xfa, 0x8e, 0x22, 0xdc, 0x4b,
0xac, 0x91, 0xb7, 0xd8, 0xcb, 0x3c, 0xba, 0xfd, 0x5a, 0xbb, 0x91, 0xd7, 0x5f, 0x73, 0xca, 0xbc,
0x31, 0xcc, 0x37, 0x7f, 0xac, 0x60, 0x1d, 0x20, 0x00, 0x6c, 0x0b, 0x11, 0x20, 0x10, 0x61, 0xc0,
0xb6, 0x3a, 0xb9, 0x46, 0x87, 0x98, 0xde, 0x64, 0xfb, 0x36, 0xc7, 0x4c, 0x45, 0x4d, 0x33, 0x8c,
0x9f, 0x34, 0x1f, 0xa8, 0xa9, 0xe7, 0x88, 0x03, 0x8a, 0xaf, 0x87, 0x19, 0xb5, 0x90, 0xf9, 0x8a,
0x7e, 0x06, 0x8f, 0xca, 0x21, 0xd4, 0x72, 0x51, 0xdc, 0x8d, 0x73, 0xeb, 0xef, 0x7d, 0x5c, 0x6f,
0xc1, 0x4d, 0xf4, 0x5f, 0x9e, 0xd3, 0x11, 0xf5, 0x30, 0x23, 0xf3, 0xad, 0xe4, 0x00, 0x61, 0xe9,
0x48, 0x1f, 0xa0, 0xcb, 0x01, 0x8e, 0x30, 0x2c, 0xeb, 0x73, 0xb6, 0xde, 0x4d, 0x22, 0xfa, 0x8a,
0xfc, 0x7a, 0x25, 0xe1, 0x7b, 0xfa, 0x94, 0x69, 0xfc, 0x24, 0x25, 0xc2, 0xa2, 0x4b, 0xc1, 0x79,
0xeb, 0xff, 0xf4, 0xea, 0x04, 0x4e, 0x10, 0x79, 0x9c, 0x20, 0xe3, 0x9f, 0xcd, 0x09, 0x5e, 0xd9,
0x8c, 0x2b, 0x7b, 0x5e, 0x86, 0xf5, 0x61, 0xe8, 0xc4, 0x9a, 0xe7, 0x4b, 0x84, 0x19, 0xaf, 0xd3,
0xb3, 0x5f, 0xd6, 0x6d, 0xb1, 0x0c, 0x06, 0xdc, 0x26, 0x39, 0xa3, 0x20, 0x77, 0x82, 0xdc, 0x78,
0x17, 0x8e, 0x00, 0xa3, 0x97, 0x31, 0x94, 0x8c, 0x4f, 0xfb, 0xf5, 0xae, 0xe8, 0xc9, 0xe3, 0xd9,
0x7f, 0x49, 0xfb, 0x96, 0x7d, 0x58, 0xc5, 0x7e, 0x5a, 0xae, 0xa3, 0x26, 0x17, 0xad, 0x7f, 0xab,
0xf1, 0xe7, 0x25, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0xf0, 0x0f,
0xab, 0xb9, 0x5f, 0xb5, 0x2f, 0x5e, 0xd2, 0x50, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44,
0xae, 0x42, 0x60, 0x82
};
const int BMfont4_size = sizeof(BMfont4);

View file

@ -0,0 +1,14 @@
/*
This file was autogenerated by raw2c.
Visit http://www.devkitpro.org
*/
//---------------------------------------------------------------------------------
#ifndef _BMfont4_h_
#define _BMfont4_h_
//---------------------------------------------------------------------------------
extern const unsigned char BMfont4[];
extern const int BMfont4_size;
//---------------------------------------------------------------------------------
#endif //_BMfont4_h_
//---------------------------------------------------------------------------------

Binary file not shown.

After

Width:  |  Height:  |  Size: 932 B

3569
template/source/libpng/png.h Normal file

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,171 @@
/********************************************************************************************
PNGU Version : 0.2a
Coder : frontier
More info : http://frontier-dev.net
********************************************************************************************/
#ifndef __PNGU__
#define __PNGU__
// Return codes
#define PNGU_OK 0
#define PNGU_ODD_WIDTH 1
#define PNGU_ODD_STRIDE 2
#define PNGU_INVALID_WIDTH_OR_HEIGHT 3
#define PNGU_FILE_IS_NOT_PNG 4
#define PNGU_UNSUPPORTED_COLOR_TYPE 5
#define PNGU_NO_FILE_SELECTED 6
#define PNGU_CANT_OPEN_FILE 7
#define PNGU_CANT_READ_FILE 8
#define PNGU_LIB_ERROR 9
// Color types
#define PNGU_COLOR_TYPE_GRAY 1
#define PNGU_COLOR_TYPE_GRAY_ALPHA 2
#define PNGU_COLOR_TYPE_PALETTE 3
#define PNGU_COLOR_TYPE_RGB 4
#define PNGU_COLOR_TYPE_RGB_ALPHA 5
#define PNGU_COLOR_TYPE_UNKNOWN 6
#ifdef __cplusplus
extern "C" {
#endif
// Types
typedef unsigned char PNGU_u8;
typedef unsigned short PNGU_u16;
typedef unsigned int PNGU_u32;
typedef unsigned long long PNGU_u64;
typedef struct
{
PNGU_u8 r;
PNGU_u8 g;
PNGU_u8 b;
} PNGUCOLOR;
typedef struct
{
PNGU_u32 imgWidth; // In pixels
PNGU_u32 imgHeight; // In pixels
PNGU_u32 imgBitDepth; // In bitx
PNGU_u32 imgColorType; // PNGU_COLOR_TYPE_*
PNGU_u32 validBckgrnd; // Non zero if there is a background color
PNGUCOLOR bckgrnd; // Backgroun color
PNGU_u32 numTrans; // Number of transparent colors
PNGUCOLOR *trans; // Transparent colors
} PNGUPROP;
// Image context, always initialize with SelectImageFrom* and free with ReleaseImageContext
struct _IMGCTX;
typedef struct _IMGCTX *IMGCTX;
/****************************************************************************
* Pixel conversion *
****************************************************************************/
// Macro to convert RGB8 values to RGB565
#define PNGU_RGB8_TO_RGB565(r,g,b) ( ((((PNGU_u16) r) & 0xF8U) << 8) | ((((PNGU_u16) g) & 0xFCU) << 3) | (((PNGU_u16) b) >> 3) )
// Macro to convert RGBA8 values to RGB5A3
#define PNGU_RGB8_TO_RGB5A3(r,g,b,a) (PNGU_u16) (((a & 0xE0U) == 0xE0U) ? \
(0x8000U | ((((PNGU_u16) r) & 0xF8U) << 7) | ((((PNGU_u16) g) & 0xF8U) << 2) | (((PNGU_u16) b) >> 3)) : \
(((((PNGU_u16) a) & 0xE0U) << 7) | ((((PNGU_u16) r) & 0xF0U) << 4) | (((PNGU_u16) g) & 0xF0U) | ((((PNGU_u16) b) & 0xF0U) >> 4)))
// Function to convert two RGB8 values to YCbYCr
PNGU_u32 PNGU_RGB8_TO_YCbYCr (PNGU_u8 r1, PNGU_u8 g1, PNGU_u8 b1, PNGU_u8 r2, PNGU_u8 g2, PNGU_u8 b2);
// Function to convert an YCbYCr to two RGB8 values.
void PNGU_YCbYCr_TO_RGB8 (PNGU_u32 ycbycr, PNGU_u8 *r1, PNGU_u8 *g1, PNGU_u8 *b1, PNGU_u8 *r2, PNGU_u8 *g2, PNGU_u8 *b2);
/****************************************************************************
* Image context handling *
****************************************************************************/
// Selects a PNG file, previosly loaded into a buffer, and creates an image context for subsequent procesing.
IMGCTX PNGU_SelectImageFromBuffer (const void *buffer);
// Selects a PNG file, from any devoptab device, and creates an image context for subsequent procesing.
IMGCTX PNGU_SelectImageFromDevice (const char *filename);
// Frees resources associated with an image context. Always call this function when you no longer need the IMGCTX.
void PNGU_ReleaseImageContext (IMGCTX ctx);
/****************************************************************************
* Miscelaneous *
****************************************************************************/
// Retrieves info from selected PNG file, including image dimensions, color format, background and transparency colors.
int PNGU_GetImageProperties (IMGCTX ctx, PNGUPROP *fileproperties);
/****************************************************************************
* Image conversion *
****************************************************************************/
// Expands selected image into an YCbYCr buffer. You need to specify context, image dimensions,
// destination address and stride in pixels (stride = buffer width - image width).
int PNGU_DecodeToYCbYCr (IMGCTX ctx, PNGU_u32 width, PNGU_u32 height, void *buffer, PNGU_u32 stride);
// Macro for decoding an image inside a buffer at given coordinates.
#define PNGU_DECODE_TO_COORDS_YCbYCr(ctx,coordX,coordY,imgWidth,imgHeight,bufferWidth,bufferHeight,buffer) \
\
PNGU_DecodeToYCbYCr (ctx, imgWidth, imgHeight, ((void *) buffer) + (coordY) * (bufferWidth) * 2 + \
(coordX) * 2, (bufferWidth) - (imgWidth))
// Expands selected image into a linear RGB565 buffer. You need to specify context, image dimensions,
// destination address and stride in pixels (stride = buffer width - image width).
int PNGU_DecodeToRGB565 (IMGCTX ctx, PNGU_u32 width, PNGU_u32 height, void *buffer, PNGU_u32 stride);
// Macro for decoding an image inside a buffer at given coordinates.
#define PNGU_DECODE_TO_COORDS_RGB565(ctx,coordX,coordY,imgWidth,imgHeight,bufferWidth,bufferHeight,buffer) \
\
PNGU_DecodeToRGB565 (ctx, imgWidth, imgHeight, ((void *) buffer) + (coordY) * (bufferWidth) * 2 + \
(coordX) * 2, (bufferWidth) - (imgWidth))
// Expands selected image into a linear RGBA8 buffer. You need to specify context, image dimensions,
// destination address, stride in pixels and default alpha value, which is used if the source image
// doesn't have an alpha channel.
int PNGU_DecodeToRGBA8 (IMGCTX ctx, PNGU_u32 width, PNGU_u32 height, void *buffer, PNGU_u32 stride, PNGU_u8 default_alpha);
// Macro for decoding an image inside a buffer at given coordinates.
#define PNGU_DECODE_TO_COORDS_RGBA8(ctx,coordX,coordY,imgWidth,imgHeight,default_alpha,bufferWidth,bufferHeight,buffer) \
\
PNGU_DecodeToRGBA8 (ctx, imgWidth, imgHeight, ((void *) buffer) + (coordY) * (bufferWidth) * 2 + \
(coordX) * 2, (bufferWidth) - (imgWidth), default_alpha)
// Expands selected image into a 4x4 tiled RGB565 buffer. You need to specify context, image dimensions
// and destination address.
int PNGU_DecodeTo4x4RGB565 (IMGCTX ctx, PNGU_u32 width, PNGU_u32 height, void *buffer);
// Expands selected image into a 4x4 tiled RGB5A3 buffer. You need to specify context, image dimensions,
// destination address and default alpha value, which is used if the source image doesn't have an alpha channel.
int PNGU_DecodeTo4x4RGB5A3 (IMGCTX ctx, PNGU_u32 width, PNGU_u32 height, void *buffer, PNGU_u8 default_alpha);
// Expands selected image into a 4x4 tiled RGBA8 buffer. You need to specify context, image dimensions,
// destination address and default alpha value, which is used if the source image doesn't have an alpha channel.
int PNGU_DecodeTo4x4RGBA8 (IMGCTX ctx, PNGU_u32 width, PNGU_u32 height, void *buffer, PNGU_u8 default_alpha);
// Encodes an YCbYCr image in PNG format and stores it in the selected device or memory buffer. You need to
// specify context, image dimensions, destination address and stride in pixels (stride = buffer width - image width).
int PNGU_EncodeFromYCbYCr (IMGCTX ctx, PNGU_u32 width, PNGU_u32 height, void *buffer, PNGU_u32 stride);
// Macro for encoding an image stored into an YCbYCr buffer at given coordinates.
#define PNGU_ENCODE_TO_COORDS_YCbYCr(ctx,coordX,coordY,imgWidth,imgHeight,bufferWidth,bufferHeight,buffer) \
\
PNGU_EncodeFromYCbYCr (ctx, imgWidth, imgHeight, ((void *) buffer) + (coordY) * (bufferWidth) * 2 + \
(coordX) * 2, (bufferWidth) - (imgWidth))
#ifdef __cplusplus
}
#endif
#endif

74
template/source/main.c Normal file
View file

@ -0,0 +1,74 @@
/*===========================================
GRRLIB (GX version) 3.0.5 alpha
Code : NoNameNo
GX hints : RedShade
Template Code (Minimum Requirement)
============================================*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <malloc.h>
#include <math.h>
#include <ogcsys.h>
#include <gccore.h>
#include <wiiuse/wpad.h>
#include <fat.h>
#include "GRRLIB/GRRLIB.h"
#include "gfx/BMfont1.h"
#include "gfx/BMfont2.h"
#include "gfx/BMfont3.h"
#include "gfx/BMfont4.h"
Mtx GXmodelView2D;
int main(){
int rot=0;
GRRLIB_InitVideo();
GRRLIB_Start();
fatInitDefault();
WPAD_Init();
WPAD_SetDataFormat(WPAD_CHAN_0, WPAD_FMT_BTNS_ACC_IR);
GRRLIB_texImg tex_BMfont1=GRRLIB_LoadTexture(BMfont1);
GRRLIB_InitTileSet(&tex_BMfont1,32,32,32);
GRRLIB_texImg tex_BMfont2=GRRLIB_LoadTexture(BMfont2);
GRRLIB_InitTileSet(&tex_BMfont2,16,16,32);
GRRLIB_texImg tex_BMfont3=GRRLIB_LoadTexture(BMfont3);
GRRLIB_InitTileSet(&tex_BMfont3,32,32,32);
GRRLIB_texImg tex_BMfont4=GRRLIB_LoadTexture(BMfont4);
GRRLIB_InitTileSet(&tex_BMfont4,16,16,32);
while(1){
WPAD_SetVRes(0, 640, 480);
WPAD_ScanPads();
u32 wpaddown=WPAD_ButtonsDown(0);
u32 wpadheld=WPAD_ButtonsHeld(0);
ir_t ir1;
WPAD_IR(WPAD_CHAN_0, &ir1);
GRRLIB_FillScreen(0x000000FF);
GRRLIB_Printf(rot, 200, tex_BMfont1, 0xFFFFFFFF, 1, "X VALUE:%d",(int)ir1.sx);
GRRLIB_Printf(rot, 250, tex_BMfont4, 0xFFFFFFFF, 1, "X VALUE:%d",(int)ir1.sx);
GRRLIB_Printf(rot, 300, tex_BMfont3, 0xFFFFFFFF, 1 , "X VALUE : 1");
GRRLIB_Printf(rot, 350, tex_BMfont2, 0xFFFFFFFF, 1 , "X VALUE : 1");
GRRLIB_Render();
if (wpaddown & WPAD_BUTTON_A) exit(0);
if (wpadheld & WPAD_BUTTON_B) rot++;
}
return 0;
}

BIN
template/template.dol Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 459 KiB

BIN
template/template.elf Executable file

Binary file not shown.