diff options
51 files changed, 0 insertions, 13187 deletions
diff --git a/rbutil/Makefile b/rbutil/Makefile deleted file mode 100644 index fe3b5b74a1..0000000000 --- a/rbutil/Makefile +++ /dev/null | |||
@@ -1,78 +0,0 @@ | |||
1 | # __________ __ ___. | ||
2 | # Open \______ \ ____ ____ | | _\_ |__ _______ ___ | ||
3 | # Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / | ||
4 | # Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | ||
5 | # Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | ||
6 | # \/ \/ \/ \/ \/ | ||
7 | # $Id$ | ||
8 | # | ||
9 | |||
10 | # Unix-style Makefile for rbutil | ||
11 | |||
12 | #detect cygwin | ||
13 | ifneq ($(strip $(shell gcc -v 2>&1 | grep "cygwin")),) | ||
14 | __CYGWIN__ := 1 | ||
15 | endif | ||
16 | |||
17 | CXX=$(shell $(PREFIX)wx-config --version=2.8 --cxx) | ||
18 | INC = `$(PREFIX)wx-config --version=2.8 --cxxflags` | ||
19 | LIBS = `$(PREFIX)wx-config --version=2.8 --libs` | ||
20 | CFLAGS= -Wall -Wundef -DRBUTIL -D_LARGEFILE64_SOURCE | ||
21 | OBJS=rbutil.o rbutilApp.o rbutilFrm.o rbutilCtrls.o install_dialogs.o bootloaders.o installlog.o ipodpatcher/ipodpatcher.o sansapatcher/sansapatcher.o irivertools.o md5sum.o autodetection.o talkfile.o | ||
22 | |||
23 | ifdef __CYGWIN__ | ||
24 | OBJS+=ipodpatcher/ipodio-win32.o sansapatcher/sansaio-win32.o | ||
25 | CFLAGS+= -mno-cygwin -mwindows | ||
26 | else | ||
27 | OBJS+=ipodpatcher/ipodio-posix.o sansapatcher/sansaio-posix.o | ||
28 | endif | ||
29 | |||
30 | |||
31 | EXTRAOBJS = $(wildcard icons/*.o) | ||
32 | |||
33 | SILENT = @ | ||
34 | |||
35 | # Install with / as root by default | ||
36 | ifndef DESTDIR | ||
37 | DESTDIR="" | ||
38 | endif | ||
39 | |||
40 | # type "make WIN=1" for a Windows build using the Debian mingw cross-compiler | ||
41 | ifdef WIN | ||
42 | CROSS=i586-mingw32msvc- | ||
43 | WINDRES=i586-mingw32msvc-windres | ||
44 | EXT=.exe | ||
45 | PREFIX=/usr/i586-mingw32msvc/bin/ | ||
46 | OBJS+=rbutil-rc.o | ||
47 | endif | ||
48 | |||
49 | .PHONY: all | ||
50 | all: icons rbutil$(EXT) | ||
51 | |||
52 | .cpp.o : | ||
53 | $(SILENT) echo CXX $< | ||
54 | $(SILENT) $(CXX) $(CFLAGS) $(INC) -c -o $@ $< | ||
55 | |||
56 | .c.o : | ||
57 | $(SILENT) echo CC $< | ||
58 | $(SILENT) $(CC) $(CFLAGS) $(INC) -c -o $@ $< | ||
59 | |||
60 | rbutil-rc.o: rbutil-rc.rc | ||
61 | $(WINDRES) -O coff -F pe-i386 -o $@ $< | ||
62 | |||
63 | rbutil$(EXT): $(OBJS) | ||
64 | $(SILENT) echo CXX $< | ||
65 | $(SILENT) $(CXX) -o $@ $(OBJS) $(EXTRAOBJS) $(LIBS) | ||
66 | |||
67 | .PHONY: icons | ||
68 | icons: | ||
69 | $(SILENT) $(MAKE) -C icons | ||
70 | |||
71 | .PHONY: clean | ||
72 | clean: | ||
73 | rm -f rbutil rbutil.exe $(OBJS) *~ | ||
74 | make -C icons clean | ||
75 | |||
76 | .PHONY: install | ||
77 | install: | ||
78 | install -D rbutil$(EXT) $(DESTDIR)/usr/bin/rbutil$(EXT) | ||
diff --git a/rbutil/Makefile.macosx b/rbutil/Makefile.macosx deleted file mode 100755 index 6939280e16..0000000000 --- a/rbutil/Makefile.macosx +++ /dev/null | |||
@@ -1,218 +0,0 @@ | |||
1 | # ========================================================================= | ||
2 | # This makefile was generated by | ||
3 | # Bakefile 0.2.1 (http://bakefile.sourceforge.net) | ||
4 | # Do not modify, all changes will be overwritten! | ||
5 | # ========================================================================= | ||
6 | |||
7 | |||
8 | |||
9 | |||
10 | srcdir = /Users/dave/rockbox/rockbox-devel/rbutil | ||
11 | top_srcdir = /Users/dave/src/wxMac-2.8.0/ | ||
12 | BK_DEPS = /Users/dave/src/wxMac-2.8.0/osx_build/bk-deps | ||
13 | wx_top_builddir = /Users/dave/src/wxMac-2.8.0/osx_build | ||
14 | |||
15 | prefix = /usr/local | ||
16 | exec_prefix = ${prefix} | ||
17 | INSTALL = /usr/bin/install -c | ||
18 | EXEEXT = | ||
19 | WINDRES = | ||
20 | REZ = /Developer/Tools/Rez | ||
21 | SETFILE = /Developer/Tools/SetFile | ||
22 | NM = nm | ||
23 | LIBS = -lz -lpthread -liconv | ||
24 | LDFLAGS_GUI = | ||
25 | CXX = g++ | ||
26 | CXXFLAGS = -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch ppc -arch i386 -Wall -Wundef -Wno-ctor-dtor-privacy -O2 -fno-strict-aliasing -fno-common | ||
27 | CPPFLAGS = -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -I${wx_top_builddir}/lib/wx/include/mac-ansi-release-static-2.8 -I${top_srcdir}/include -fpascal-strings -I${top_srcdir}/src/mac/carbon/morefilex -I/Developer/Headers/FlatCarbon | ||
28 | RBUTIL_CFLAGS = $(CXXFLAGS) -DRBUTIL -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -I${wx_top_builddir}/lib/wx/include/mac-ansi-release-static-2.8 -I${top_srcdir}/include -fpascal-strings -I${top_srcdir}/src/mac/carbon/morefilex -I/Developer/Headers/FlatCarbon | ||
29 | LDFLAGS = -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch ppc -arch i386 -framework QuickTime -framework IOKit -framework Carbon -framework Cocoa -framework System | ||
30 | WX_LIB_FLAVOUR = | ||
31 | TOOLKIT = MAC | ||
32 | TOOLKIT_LOWERCASE = mac | ||
33 | TOOLKIT_VERSION = | ||
34 | TOOLCHAIN_FULLNAME = mac-ansi-release-static-2.8 | ||
35 | EXTRALIBS = -framework QuickTime -framework IOKit -framework Carbon -framework Cocoa -framework System -lz -lpthread -liconv | ||
36 | EXTRALIBS_GUI = -framework WebKit | ||
37 | HOST_SUFFIX = | ||
38 | SAMPLES_RPATH_FLAG = | ||
39 | SAMPLES_RPATH_POSTLINK = | ||
40 | |||
41 | ### Variables: ### | ||
42 | |||
43 | DESTDIR = | ||
44 | WX_RELEASE = 2.8 | ||
45 | WX_VERSION = $(WX_RELEASE).0 | ||
46 | LIBDIRNAME = $(wx_top_builddir)/lib | ||
47 | RBUTIL_CXXFLAGS = -DRBUTIL -D__WX$(TOOLKIT)__ $(__WXUNIV_DEFINE_p) \ | ||
48 | $(__EXCEPTIONS_DEFINE_p) $(__RTTI_DEFINE_p) $(__THREAD_DEFINE_p) \ | ||
49 | -I$(srcdir) $(__DLLFLAG_p) $(CPPFLAGS) $(CXXFLAGS) | ||
50 | RBUTIL_OBJECTS = \ | ||
51 | $(__rbutil_os2_lib_res) \ | ||
52 | rbutil.o rbutilApp.o rbutilFrm.o install_dialogs.o bootloaders.o installlog.o \ | ||
53 | rbutilCtrls.o ipodpatcher/ipodpatcher.o ipodpatcher/ipodio-posix.o \ | ||
54 | sansapatcher/sansapatcher.o sansapatcher/sansaio-posix.o \ | ||
55 | md5sum.o irivertools.o autodetection.o talkfile.o \ | ||
56 | $(__rbutil___win32rc) | ||
57 | |||
58 | ### Conditionally set variables: ### | ||
59 | |||
60 | #CXXC = $(CXX) | ||
61 | CXXC = $(BK_DEPS) $(CXX) | ||
62 | #PORTNAME = base | ||
63 | PORTNAME = $(TOOLKIT_LOWERCASE)$(TOOLKIT_VERSION) | ||
64 | WXBASEPORT = _carbon | ||
65 | #WXDEBUGFLAG = d | ||
66 | #WXDEBUGFLAG = d | ||
67 | #WXUNICODEFLAG = u | ||
68 | #WXUNIVNAME = univ | ||
69 | EXTRALIBS_FOR_BASE = $(EXTRALIBS) | ||
70 | #EXTRALIBS_FOR_BASE = $(EXTRALIBS) $(EXTRALIBS_GUI) | ||
71 | EXTRALIBS_FOR_GUI = $(EXTRALIBS_GUI) | ||
72 | #EXTRALIBS_FOR_GUI = | ||
73 | __rbutil___mac_setfilecmd = \ | ||
74 | $(SETFILE) -a C rbutil$(EXEEXT) | ||
75 | __rbutil___mac_rezcmd = $(__MACOSX_RESOURCES_p_1) | ||
76 | #__WXUNIV_DEFINE_p = -D__WXUNIVERSAL__ | ||
77 | #__WXUNIV_DEFINE_p_1 = -d __WXUNIVERSAL__ | ||
78 | #__WXUNIV_DEFINE_p_2 = --define __WXUNIVERSAL__ | ||
79 | #__EXCEPTIONS_DEFINE_p = -DwxNO_EXCEPTIONS | ||
80 | #__EXCEPTIONS_DEFINE_p_1 = -d wxNO_EXCEPTIONS | ||
81 | #__EXCEPTIONS_DEFINE_p_2 = --define wxNO_EXCEPTIONS | ||
82 | #__RTTI_DEFINE_p = -DwxNO_RTTI | ||
83 | #__RTTI_DEFINE_p_1 = -d wxNO_RTTI | ||
84 | #__RTTI_DEFINE_p_2 = --define wxNO_RTTI | ||
85 | #__THREAD_DEFINE_p = -DwxNO_THREADS | ||
86 | #__THREAD_DEFINE_p_1 = -d wxNO_THREADS | ||
87 | #__THREAD_DEFINE_p_2 = --define wxNO_THREADS | ||
88 | #__DLLFLAG_p = -DWXUSINGDLL | ||
89 | #__DLLFLAG_p_1 = -d WXUSINGDLL | ||
90 | #__DLLFLAG_p_2 = --define WXUSINGDLL | ||
91 | COND_PLATFORM_OS2_1___rbutil___os2_emxbindcmd = $(NM) rbutil$(EXEEXT) | if \ | ||
92 | grep -q pmwin.763 ; then emxbind -ep rbutil$(EXEEXT) ; fi | ||
93 | #__rbutil___os2_emxbindcmd = $(COND_PLATFORM_OS2_1___rbutil___os2_emxbindcmd) | ||
94 | #__RCDEFDIR_p = -i \ | ||
95 | # $(LIBDIRNAME)/wx/include/$(TOOLCHAIN_FULLNAME) | ||
96 | #__RCDEFDIR_p_1 = --include-dir \ | ||
97 | # $(LIBDIRNAME)/wx/include/$(TOOLCHAIN_FULLNAME) | ||
98 | #__rbutil_os2_lib_res = \ | ||
99 | # $(top_srcdir)/include/wx/os2/wx.res | ||
100 | __rbutil_bundle___depname = rbutil_bundle | ||
101 | #____rbutil_BUNDLE_TGT_REF_DEP = \ | ||
102 | # rbutil.app/Contents/PkgInfo | ||
103 | ____rbutil_BUNDLE_TGT_REF_DEP = \ | ||
104 | rbutil.app/Contents/PkgInfo | ||
105 | COND_MONOLITHIC_0___WXLIB_CORE_p = \ | ||
106 | -lwx_$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_core-$(WX_RELEASE)$(HOST_SUFFIX) | ||
107 | __WXLIB_CORE_p = $(COND_MONOLITHIC_0___WXLIB_CORE_p) | ||
108 | COND_MONOLITHIC_0___WXLIB_BASE_p = \ | ||
109 | -lwx_base$(WXBASEPORT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)-$(WX_RELEASE)$(HOST_SUFFIX) | ||
110 | __WXLIB_BASE_p = $(COND_MONOLITHIC_0___WXLIB_BASE_p) | ||
111 | |||
112 | __WXLIB_ADV_p = -lwx_mac_adv$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)-$(WX_RELEASE)$(HOST_SUFFIX) | ||
113 | __WXLIB_NET_p = -lwx_base_carbon_net-$(WX_RELEASE)$(HOST_SUFFIX) | ||
114 | __WXLIB_HTML_p = -lwx_mac_html-$(WX_RELEASE)$(HOST_SUFFIX) | ||
115 | |||
116 | #__rbutil___win32rc = rbutil_rc.o | ||
117 | COND_MONOLITHIC_1___WXLIB_MONO_p = \ | ||
118 | -lwx_$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)-$(WX_RELEASE)$(HOST_SUFFIX) | ||
119 | #__WXLIB_MONO_p = $(COND_MONOLITHIC_1___WXLIB_MONO_p) | ||
120 | __LIB_TIFF_p \ | ||
121 | = \ | ||
122 | -lwxtiff$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)-$(WX_RELEASE)$(HOST_SUFFIX) | ||
123 | __LIB_JPEG_p \ | ||
124 | = \ | ||
125 | -lwxjpeg$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)-$(WX_RELEASE)$(HOST_SUFFIX) | ||
126 | __LIB_PNG_p \ | ||
127 | = \ | ||
128 | -lwxpng$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)-$(WX_RELEASE)$(HOST_SUFFIX) | ||
129 | #__LIB_ZLIB_p = \ | ||
130 | # -lwxzlib$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)-$(WX_RELEASE)$(HOST_SUFFIX) | ||
131 | #__LIB_ODBC_p = \ | ||
132 | # -lwxodbc$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)-$(WX_RELEASE)$(HOST_SUFFIX) | ||
133 | COND_WXUSE_REGEX_BUILTIN___LIB_REGEX_p = \ | ||
134 | -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)-$(WX_RELEASE)$(HOST_SUFFIX) | ||
135 | #__LIB_REGEX_p = $(COND_WXUSE_REGEX_BUILTIN___LIB_REGEX_p) | ||
136 | __LIB_EXPAT_p = \ | ||
137 | -lwxexpat$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)-$(WX_RELEASE)$(HOST_SUFFIX) | ||
138 | COND_TOOLKIT_MAC___MACOSX_RESOURCES_p_1 = $(REZ) -d __DARWIN__ -t APPL -d \ | ||
139 | __WX$(TOOLKIT)__ $(__WXUNIV_DEFINE_p_1) $(__EXCEPTIONS_DEFINE_p_1) \ | ||
140 | $(__RTTI_DEFINE_p_1) $(__THREAD_DEFINE_p_1) -i $(srcdir) $(__DLLFLAG_p_1) -i \ | ||
141 | $(srcdir)/../../samples $(__RCDEFDIR_p) -i $(top_srcdir)/include -o \ | ||
142 | rbutil$(EXEEXT) Carbon.r rbutil.r | ||
143 | __MACOSX_RESOURCES_p_1 = $(COND_TOOLKIT_MAC___MACOSX_RESOURCES_p_1) | ||
144 | |||
145 | ### Targets: ### | ||
146 | |||
147 | all: rbutil$(EXEEXT) $(__rbutil_bundle___depname) data | ||
148 | |||
149 | install: all | ||
150 | |||
151 | uninstall: | ||
152 | |||
153 | install-strip: install | ||
154 | |||
155 | clean: | ||
156 | rm -rf ./.deps ./.pch | ||
157 | rm -f $(RBUTIL_OBJECTS) | ||
158 | rm -f rbutil$(EXEEXT) | ||
159 | rm -rf rbutil.app | ||
160 | |||
161 | distclean: clean | ||
162 | rm -f config.cache config.log config.status bk-deps bk-make-pch shared-ld-sh Makefile | ||
163 | |||
164 | rbutil$(EXEEXT): $(RBUTIL_OBJECTS) $(__rbutil___win32rc) | ||
165 | $(CXX) -o $@ $(RBUTIL_OBJECTS) $(LDFLAGS) -L$(LIBDIRNAME) $(LDFLAGS_GUI) $(SAMPLES_RPATH_FLAG) $(LIBS) $(__WXLIB_CORE_p) $(__WXLIB_BASE_p) $(__WXLIB_MONO_p) $(__LIB_TIFF_p) $(__WXLIB_ADV_p) $(__WXLIB_NET_p) $(__WXLIB_HTML_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) $(EXTRALIBS_FOR_GUI) $(__LIB_ZLIB_p) $(__LIB_ODBC_p) $(__LIB_REGEX_p) $(__LIB_EXPAT_p) $(EXTRALIBS_FOR_BASE) | ||
166 | $(__rbutil___mac_rezcmd) | ||
167 | $(__rbutil___mac_setfilecmd) | ||
168 | $(__rbutil___os2_emxbindcmd) | ||
169 | $(SAMPLES_RPATH_POSTLINK) | ||
170 | |||
171 | rbutil.app/Contents/PkgInfo: rbutil$(EXEEXT) $(top_srcdir)/src/mac/carbon/Info.plist.in $(top_srcdir)/src/mac/carbon/wxmac.icns | ||
172 | mkdir -p rbutil.app/Contents | ||
173 | mkdir -p rbutil.app/Contents/MacOS | ||
174 | mkdir -p rbutil.app/Contents/Resources | ||
175 | |||
176 | |||
177 | sed -e "s/IDENTIFIER/`echo $(srcdir) | sed -e 's,\.\./,,g' | sed -e 's,/,.,g'`/" \ | ||
178 | -e "s/EXECUTABLE/rbutil/" \ | ||
179 | -e "s/VERSION/$(WX_VERSION)/" \ | ||
180 | $(top_srcdir)/src/mac/carbon/Info.plist.in >rbutil.app/Contents/Info.plist | ||
181 | |||
182 | |||
183 | echo -n "APPL????" >rbutil.app/Contents/PkgInfo | ||
184 | |||
185 | |||
186 | ln -f rbutil$(EXEEXT) rbutil.app/Contents/MacOS/rbutil | ||
187 | |||
188 | |||
189 | cp -f $(top_srcdir)/src/mac/carbon/wxmac.icns rbutil.app/Contents/Resources/wxmac.icns | ||
190 | |||
191 | rbutil_bundle: $(____rbutil_BUNDLE_TGT_REF_DEP) | ||
192 | |||
193 | data: | ||
194 | @mkdir -p . | ||
195 | @for f in rbutil.ini; do \ | ||
196 | if test ! -f ./$$f -a ! -d ./$$f ; \ | ||
197 | then x=yep ; \ | ||
198 | else x=`find $(srcdir)/$$f -newer ./$$f -print` ; \ | ||
199 | fi; \ | ||
200 | case "$$x" in ?*) \ | ||
201 | cp -pRf $(srcdir)/$$f . ;; \ | ||
202 | esac; \ | ||
203 | done | ||
204 | |||
205 | .cpp.o : | ||
206 | $(CXXC) $(RBUTIL_CXXFLAGS) -c -o $@ $< | ||
207 | |||
208 | .c.o : | ||
209 | $(CC) $(RBUTIL_CFLAGS) -c -o $@ $< | ||
210 | |||
211 | rbutil_rc.o: $(srcdir)/rbutil.rc | ||
212 | $(WINDRES) -i$< -o$@ --define __WX$(TOOLKIT)__ $(__WXUNIV_DEFINE_p_2) $(__EXCEPTIONS_DEFINE_p_2) $(__RTTI_DEFINE_p_2) $(__THREAD_DEFINE_p_2) --include-dir $(srcdir) $(__DLLFLAG_p_2) --include-dir $(srcdir)/../../samples $(__RCDEFDIR_p_1) --include-dir $(top_srcdir)/include | ||
213 | |||
214 | |||
215 | # Include dependency info, if present: | ||
216 | -include .deps/*.d | ||
217 | |||
218 | .PHONY: all install uninstall clean distclean rbutil_bundle data | ||
diff --git a/rbutil/archos.ico b/rbutil/archos.ico deleted file mode 100644 index 6c2171337e..0000000000 --- a/rbutil/archos.ico +++ /dev/null | |||
Binary files differ | |||
diff --git a/rbutil/autodetection.cpp b/rbutil/autodetection.cpp deleted file mode 100644 index 85bfc21b11..0000000000 --- a/rbutil/autodetection.cpp +++ /dev/null | |||
@@ -1,274 +0,0 @@ | |||
1 | /*************************************************************************** | ||
2 | * __________ __ ___. | ||
3 | * Open \______ \ ____ ____ | | _\_ |__ _______ ___ | ||
4 | * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / | ||
5 | * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | ||
6 | * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | ||
7 | * \/ \/ \/ \/ \/ | ||
8 | * Module: rbutil | ||
9 | * File: autodetection.cpp | ||
10 | * | ||
11 | * Copyright (C) 2008 Dominik Wenger | ||
12 | * | ||
13 | * All files in this archive are subject to the GNU General Public License. | ||
14 | * See the file COPYING in the source tree root for full license agreement. | ||
15 | * | ||
16 | * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY | ||
17 | * KIND, either express or implied. | ||
18 | * | ||
19 | ****************************************************************************/ | ||
20 | |||
21 | #include "autodetection.h" | ||
22 | #include "bootloaders.h" | ||
23 | /*************************************************** | ||
24 | * General autodetection code | ||
25 | ****************************************************/ | ||
26 | |||
27 | bool ipodpatcherDetect(UsbDeviceInfo* tempdevice) | ||
28 | { | ||
29 | /* use ipodpatcher for ipod detecting */ | ||
30 | struct ipod_t ipod; | ||
31 | int n = ipod_scan(&ipod); | ||
32 | if(n == 1) /* we found an ipod */ | ||
33 | { | ||
34 | wxString temp(ipod.targetname,wxConvUTF8); | ||
35 | int index = gv->plat_bootloadername.Index(temp); // use the bootloader names.. | ||
36 | tempdevice->device_index = index; | ||
37 | tempdevice->status=DEVICEFOUND; | ||
38 | |||
39 | /* find mount point if possible */ | ||
40 | #if !(defined( __WXMSW__ ) || defined( __DARWIN__)) //linux code | ||
41 | wxString tmp = resolve_mount_point(wxString(ipod.diskname,wxConvUTF8)+wxT("2")); | ||
42 | if( tmp != wxT("") ) | ||
43 | tempdevice->path = tmp; | ||
44 | #endif | ||
45 | return true; | ||
46 | |||
47 | } | ||
48 | else if (n > 1) /* to many ipods */ | ||
49 | { | ||
50 | tempdevice->status = TOMANYDEVICES; | ||
51 | return true; | ||
52 | } | ||
53 | else /* no ipod */ | ||
54 | { | ||
55 | return false; | ||
56 | } | ||
57 | |||
58 | } | ||
59 | |||
60 | bool sansapatcherDetect(UsbDeviceInfo* tempdevice) | ||
61 | { | ||
62 | /* scann for sansas */ | ||
63 | struct sansa_t sansa; | ||
64 | int n = sansa_scan(&sansa); | ||
65 | if(n==1) | ||
66 | { | ||
67 | tempdevice->device_index = gv->plat_id.Index(wxT("sansae200")); | ||
68 | tempdevice->status = DEVICEFOUND; | ||
69 | /* find mount point if possible */ | ||
70 | #if !(defined( __WXMSW__ ) || defined( __DARWIN__)) //linux code | ||
71 | wxString tmp = resolve_mount_point(wxString(sansa.diskname,wxConvUTF8)+wxT("1")); | ||
72 | if( tmp != wxT("") ) | ||
73 | tempdevice->path = tmp; | ||
74 | #endif | ||
75 | return true; | ||
76 | } | ||
77 | else if (n > 1) | ||
78 | { | ||
79 | tempdevice->status = TOMANYDEVICES; | ||
80 | return true; | ||
81 | } | ||
82 | else | ||
83 | { | ||
84 | return false; | ||
85 | } | ||
86 | } | ||
87 | |||
88 | |||
89 | bool rockboxinfoDetect(wxString filename,UsbDeviceInfo* tempdevice) | ||
90 | { | ||
91 | wxTextFile rockboxinfo(filename); | ||
92 | rockboxinfo.Open(); | ||
93 | wxString line = rockboxinfo.GetFirstLine(); | ||
94 | wxString targetstring; | ||
95 | if(line.StartsWith(wxT("Target: "), &targetstring)) | ||
96 | { | ||
97 | int index = gv->plat_id.Index(targetstring); | ||
98 | if(index < 0) return false; | ||
99 | |||
100 | tempdevice->device_index = index; | ||
101 | wxString myPath; | ||
102 | if(filename.EndsWith(wxT(".rockbox" PATH_SEP "rockbox-info.txt"),&myPath)); | ||
103 | tempdevice->path = myPath; | ||
104 | |||
105 | tempdevice->status = DEVICEFOUND; | ||
106 | |||
107 | return true; | ||
108 | } | ||
109 | else | ||
110 | { | ||
111 | return false; | ||
112 | } | ||
113 | |||
114 | |||
115 | } | ||
116 | |||
117 | |||
118 | bool detectDevices(UsbDeviceInfo* tempdevice) | ||
119 | { | ||
120 | tempdevice->device_index= 0; | ||
121 | tempdevice->path=wxT(""); | ||
122 | tempdevice->status =NODEVICE; | ||
123 | |||
124 | /* try ipodpatcher */ | ||
125 | if(ipodpatcherDetect(tempdevice)) | ||
126 | { | ||
127 | return true; | ||
128 | } | ||
129 | |||
130 | /* try sansapatcher */ | ||
131 | if(sansapatcherDetect(tempdevice)) | ||
132 | { | ||
133 | return true; | ||
134 | } | ||
135 | |||
136 | /*try via files on the devices */ | ||
137 | wxArrayString mountpoints = getPossibleMountPoints(); | ||
138 | |||
139 | for(unsigned int i=0;i<mountpoints.GetCount();i++) | ||
140 | { | ||
141 | if(wxDir::Exists(mountpoints[i])) | ||
142 | { | ||
143 | /*check for rockbox-info.txt */ | ||
144 | wxString filename; | ||
145 | filename.Printf("%s" PATH_SEP ".rockbox" PATH_SEP "rockbox-info.txt",mountpoints[i].c_str()); | ||
146 | if(wxFile::Exists(filename)) | ||
147 | { | ||
148 | if(rockboxinfoDetect(filename,tempdevice)) | ||
149 | return true; | ||
150 | } | ||
151 | |||
152 | } | ||
153 | } | ||
154 | |||
155 | return false; | ||
156 | } | ||
157 | |||
158 | |||
159 | |||
160 | |||
161 | |||
162 | /*************************************************** | ||
163 | * Windows code for autodetection | ||
164 | ****************************************************/ | ||
165 | #if defined( __WXMSW__ ) | ||
166 | |||
167 | wxArrayString getPossibleMountPoints() | ||
168 | { | ||
169 | wxArrayString tempList; | ||
170 | tempList.Add(wxT("D:\\")); | ||
171 | tempList.Add(wxT("E:\\")); | ||
172 | tempList.Add(wxT("F:\\")); | ||
173 | tempList.Add(wxT("G:\\")); | ||
174 | tempList.Add(wxT("H:\\")); | ||
175 | tempList.Add(wxT("I:\\")); | ||
176 | tempList.Add(wxT("J:\\")); | ||
177 | tempList.Add(wxT("K:\\")); | ||
178 | tempList.Add(wxT("L:\\")); | ||
179 | tempList.Add(wxT("M:\\")); | ||
180 | tempList.Add(wxT("N:\\")); | ||
181 | tempList.Add(wxT("O:\\")); | ||
182 | tempList.Add(wxT("P:\\")); | ||
183 | tempList.Add(wxT("Q:\\")); | ||
184 | tempList.Add(wxT("R:\\")); | ||
185 | tempList.Add(wxT("S:\\")); | ||
186 | tempList.Add(wxT("T:\\")); | ||
187 | tempList.Add(wxT("U:\\")); | ||
188 | tempList.Add(wxT("V:\\")); | ||
189 | tempList.Add(wxT("W:\\")); | ||
190 | tempList.Add(wxT("X:\\")); | ||
191 | tempList.Add(wxT("Y:\\")); | ||
192 | tempList.Add(wxT("Z:\\")); | ||
193 | |||
194 | return tempList; | ||
195 | } | ||
196 | |||
197 | |||
198 | #endif /* windows code */ | ||
199 | |||
200 | /********************************************************** | ||
201 | * Linux code for autodetection | ||
202 | *******************************************************/ | ||
203 | #if !(defined( __WXMSW__ ) || defined( __DARWIN__)) | ||
204 | |||
205 | wxArrayString getPossibleMountPoints() | ||
206 | { | ||
207 | wxArrayString tempList; | ||
208 | |||
209 | FILE *fp = fopen( "/proc/mounts", "r" ); | ||
210 | if( !fp ) return tempList; | ||
211 | char *dev, *dir; | ||
212 | while( fscanf( fp, "%as %as %*s %*s %*s %*s", &dev, &dir ) != EOF ) | ||
213 | { | ||
214 | wxString directory = wxString( dir, wxConvUTF8 ); | ||
215 | tempList.Add(directory); | ||
216 | free( dev ); | ||
217 | free( dir ); | ||
218 | } | ||
219 | fclose( fp ); | ||
220 | |||
221 | return tempList; | ||
222 | } | ||
223 | |||
224 | wxString resolve_mount_point( const wxString device ) | ||
225 | { | ||
226 | FILE *fp = fopen( "/proc/mounts", "r" ); | ||
227 | if( !fp ) return wxT(""); | ||
228 | char *dev, *dir; | ||
229 | while( fscanf( fp, "%as %as %*s %*s %*s %*s", &dev, &dir ) != EOF ) | ||
230 | { | ||
231 | if( wxString( dev, wxConvUTF8 ) == device ) | ||
232 | { | ||
233 | wxString directory = wxString( dir, wxConvUTF8 ); | ||
234 | free( dev ); | ||
235 | free( dir ); | ||
236 | return directory; | ||
237 | } | ||
238 | free( dev ); | ||
239 | free( dir ); | ||
240 | } | ||
241 | fclose( fp ); | ||
242 | return wxT(""); | ||
243 | } | ||
244 | |||
245 | |||
246 | |||
247 | #endif /* linux code */ | ||
248 | |||
249 | /********************************************************** | ||
250 | * MAC code for autodetection | ||
251 | *******************************************************/ | ||
252 | #if defined( __DARWIN__) | ||
253 | |||
254 | wxArrayString getPossibleMountPoints() | ||
255 | { | ||
256 | wxArrayString tempList; | ||
257 | |||
258 | wxDir volumes; | ||
259 | |||
260 | if(volumes.Open(wxT("/Volumes"))) | ||
261 | { | ||
262 | wxString filename; | ||
263 | bool cont = volumes.GetFirst(&filename, wxEmptyString, wxDIR_DIRS); | ||
264 | while ( cont ) | ||
265 | { | ||
266 | tempList.Add(filename); | ||
267 | cont = dir.GetNext(&filename); | ||
268 | } | ||
269 | } | ||
270 | return tempList; | ||
271 | |||
272 | } | ||
273 | |||
274 | #endif /* Mac Code */ | ||
diff --git a/rbutil/autodetection.h b/rbutil/autodetection.h deleted file mode 100644 index cfd0dbab96..0000000000 --- a/rbutil/autodetection.h +++ /dev/null | |||
@@ -1,90 +0,0 @@ | |||
1 | /*************************************************************************** | ||
2 | * __________ __ ___. | ||
3 | * Open \______ \ ____ ____ | | _\_ |__ _______ ___ | ||
4 | * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / | ||
5 | * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | ||
6 | * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | ||
7 | * \/ \/ \/ \/ \/ | ||
8 | * Module: rbutil | ||
9 | * File: autodetection.h | ||
10 | * | ||
11 | * Copyright (C) 2008 Dominik Wenger | ||
12 | * | ||
13 | * All files in this archive are subject to the GNU General Public License. | ||
14 | * See the file COPYING in the source tree root for full license agreement. | ||
15 | * | ||
16 | * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY | ||
17 | * KIND, either express or implied. | ||
18 | * | ||
19 | ****************************************************************************/ | ||
20 | |||
21 | #ifndef AUTODETECTION_H_INCLUDED | ||
22 | #define AUTODETECTION_H_INCLUDED | ||
23 | |||
24 | |||
25 | /************************************** | ||
26 | * General code for USB Device detection | ||
27 | ***************************************/ | ||
28 | #include "rbutil.h" | ||
29 | |||
30 | #define TOMANYDEVICES 2 | ||
31 | #define NODEVICE 1 | ||
32 | #define DEVICEFOUND 0 | ||
33 | |||
34 | struct UsbDeviceInfo | ||
35 | { | ||
36 | int device_index; | ||
37 | wxString path; | ||
38 | int status; | ||
39 | }; | ||
40 | |||
41 | |||
42 | bool detectDevices(UsbDeviceInfo* tempdevice); | ||
43 | |||
44 | wxArrayString getPossibleMountPoints(); /* this funktion has to be implemented for every OS */ | ||
45 | |||
46 | |||
47 | /******************************** | ||
48 | * Windows header for USB Device detection and information | ||
49 | **************************************/ | ||
50 | |||
51 | #if defined( __WXMSW__ ) | ||
52 | |||
53 | |||
54 | #endif /*__WXMSW__ */ | ||
55 | |||
56 | |||
57 | /************************************************************************+ | ||
58 | *Linux header for autodetection | ||
59 | **************************************************************************/ | ||
60 | |||
61 | |||
62 | #if !(defined( __WXMSW__ ) || defined( __DARWIN__)) | ||
63 | |||
64 | wxString resolve_mount_point( const wxString device ); | ||
65 | |||
66 | |||
67 | #endif /* Linux Code */ | ||
68 | |||
69 | |||
70 | |||
71 | |||
72 | /************************************************************************+ | ||
73 | *MAc header for autodetection | ||
74 | **************************************************************************/ | ||
75 | |||
76 | |||
77 | #if defined( __DARWIN__) | ||
78 | |||
79 | |||
80 | |||
81 | #endif /* MAc Code */ | ||
82 | |||
83 | |||
84 | |||
85 | |||
86 | |||
87 | |||
88 | |||
89 | |||
90 | #endif | ||
diff --git a/rbutil/bootloaders.cpp b/rbutil/bootloaders.cpp deleted file mode 100755 index 4ac4828307..0000000000 --- a/rbutil/bootloaders.cpp +++ /dev/null | |||
@@ -1,549 +0,0 @@ | |||
1 | /*************************************************************************** | ||
2 | * __________ __ ___. | ||
3 | * Open \______ \ ____ ____ | | _\_ |__ _______ ___ | ||
4 | * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / | ||
5 | * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | ||
6 | * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | ||
7 | * \/ \/ \/ \/ \/ | ||
8 | * Module: rbutil | ||
9 | * File: bootloaders.cpp | ||
10 | * | ||
11 | * Copyright (C) 2007 Dominik Wenger | ||
12 | * | ||
13 | * All files in this archive are subject to the GNU General Public License. | ||
14 | * See the file COPYING in the source tree root for full license agreement. | ||
15 | * | ||
16 | * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY | ||
17 | * KIND, either express or implied. | ||
18 | * | ||
19 | ****************************************************************************/ | ||
20 | |||
21 | #include "bootloaders.h" | ||
22 | |||
23 | |||
24 | |||
25 | int verbose =0; | ||
26 | // reserves memory for ipodpatcher | ||
27 | bool initIpodpatcher() | ||
28 | { | ||
29 | if (ipod_alloc_buffer(§orbuf,BUFFER_SIZE) < 0) return true; | ||
30 | else return false; | ||
31 | } | ||
32 | // uses ipodpatcher for add and rem of bootloader | ||
33 | bool ipodpatcher(int mode,wxString bootloadername) | ||
34 | { | ||
35 | wxString src,dest,buf; | ||
36 | |||
37 | struct ipod_t ipod; | ||
38 | |||
39 | int n = ipod_scan(&ipod); | ||
40 | if (n == 0) | ||
41 | { | ||
42 | ERR_DIALOG(wxT("[ERR] No ipods found."), wxT("Scanning for Ipods")); | ||
43 | return false; | ||
44 | } | ||
45 | if (n > 1) | ||
46 | { | ||
47 | ERR_DIALOG(wxT("[ERR] to many ipods found."), wxT("Scanning for Ipods")); | ||
48 | return false; | ||
49 | } | ||
50 | |||
51 | // downloading files | ||
52 | if(mode == BOOTLOADER_ADD) | ||
53 | { | ||
54 | src = gv->bootloader_url + wxT("/ipod/") | ||
55 | + bootloadername + wxT(".ipod"); | ||
56 | dest = gv->stdpaths->GetUserDataDir() | ||
57 | + wxT("" PATH_SEP "download" PATH_SEP) + bootloadername; | ||
58 | if ( DownloadURL(src, dest) ) | ||
59 | { | ||
60 | wxRemoveFile(dest); | ||
61 | ERR_DIALOG(wxT("Unable to download ") + src, wxT("Install")); | ||
62 | return false; | ||
63 | } | ||
64 | } | ||
65 | |||
66 | if (ipod_open(&ipod, 0) < 0) | ||
67 | { | ||
68 | ERR_DIALOG(wxT("[ERR] could not open ipod"), wxT("open Ipod")); | ||
69 | return false; | ||
70 | } | ||
71 | |||
72 | if (read_partinfo(&ipod,0) < 0) | ||
73 | { | ||
74 | ERR_DIALOG(wxT("[ERR] could not read partitiontable"), wxT("reading partitiontable")); | ||
75 | return false; | ||
76 | } | ||
77 | |||
78 | if (ipod.pinfo[0].start==0) | ||
79 | { | ||
80 | ERR_DIALOG(wxT("[ERR] No partition 0 on disk"), wxT("reading partitiontable")); | ||
81 | int i; | ||
82 | double sectors_per_MB = (1024.0*1024.0)/ipod.sector_size; | ||
83 | |||
84 | buf.Printf(wxT("[INFO] Part Start Sector End Sector Size (MB) Type\n")); | ||
85 | ERR_DIALOG(buf, wxT("reading partitiontable")); | ||
86 | for ( i = 0; i < 4; i++ ) { | ||
87 | if (ipod.pinfo[i].start != 0) { | ||
88 | buf.Printf(wxT("[INFO] %d %10ld %10ld %10.1f %s (0x%02x)\n"), | ||
89 | i, | ||
90 | ipod.pinfo[i].start, | ||
91 | ipod.pinfo[i].start+ipod.pinfo[i].size-1, | ||
92 | ipod.pinfo[i].size/sectors_per_MB, | ||
93 | get_parttype(ipod.pinfo[i].type), | ||
94 | ipod.pinfo[i].type); | ||
95 | ERR_DIALOG(buf, wxT("reading partitiontable")); | ||
96 | } | ||
97 | } | ||
98 | return false; | ||
99 | } | ||
100 | |||
101 | read_directory(&ipod); | ||
102 | |||
103 | if (ipod.nimages <= 0) | ||
104 | { | ||
105 | ERR_DIALOG(wxT("[ERR] Failed to read firmware directory"), wxT("reading directory")); | ||
106 | return false; | ||
107 | } | ||
108 | if (getmodel(&ipod,(ipod.ipod_directory[0].vers>>8)) < 0) | ||
109 | { | ||
110 | buf.Printf(wxT("[ERR] Unknown version number in firmware (%08x)\n"), | ||
111 | ipod.ipod_directory[0].vers ); | ||
112 | ERR_DIALOG(buf, wxT("reading directory")); | ||
113 | return false; | ||
114 | } | ||
115 | |||
116 | if (ipod.macpod) | ||
117 | { | ||
118 | WARN_DIALOG(wxT("Warning this is a MacPod, Rockbox doesnt work on this. Convert it to WinPod"),wxT("MacPod")); | ||
119 | } | ||
120 | |||
121 | |||
122 | if(mode == BOOTLOADER_ADD) | ||
123 | { | ||
124 | if (ipod_reopen_rw(&ipod) < 0) { | ||
125 | ERR_DIALOG(wxT("[ERR] Could not open Ipod in RW mode"), wxT("Bootloader add")); | ||
126 | return false; | ||
127 | } | ||
128 | |||
129 | if (add_bootloader(&ipod, (char*)dest.c_str(), FILETYPE_DOT_IPOD)==0) { | ||
130 | |||
131 | } else { | ||
132 | ERR_DIALOG(wxT("[ERR] failed to add Bootloader"), wxT("Bootloader add")); | ||
133 | return false; | ||
134 | } | ||
135 | } | ||
136 | else if(mode == BOOTLOADER_REM) | ||
137 | { | ||
138 | if (ipod_reopen_rw(&ipod) < 0) { | ||
139 | ERR_DIALOG(wxT("[ERR] Could not open Ipod in RW mode"), wxT("Bootloader add")); | ||
140 | return false; | ||
141 | } | ||
142 | |||
143 | if (ipod.ipod_directory[0].entryOffset==0) { | ||
144 | ERR_DIALOG(wxT("[ERR] No bootloader detected.\n"), wxT("Bootloader del")); | ||
145 | return false; | ||
146 | } else { | ||
147 | if (delete_bootloader(&ipod)==0) { | ||
148 | |||
149 | } else { | ||
150 | ERR_DIALOG(wxT("[ERR] --delete-bootloader failed.\n"), wxT("Bootloader del")); | ||
151 | return false; | ||
152 | } | ||
153 | } | ||
154 | } | ||
155 | |||
156 | ipod_close(&ipod); | ||
157 | return true; | ||
158 | } | ||
159 | |||
160 | // reserves memory for sansapatcher | ||
161 | bool initSansaPatcher() | ||
162 | { | ||
163 | if (sansa_alloc_buffer(§orbuf,BUFFER_SIZE) < 0) return true; | ||
164 | else return false; | ||
165 | } | ||
166 | |||
167 | |||
168 | // sansainstallation | ||
169 | bool sansapatcher(int mode,wxString bootloadername) | ||
170 | { | ||
171 | wxString src,dest,buf; | ||
172 | |||
173 | struct sansa_t sansa; | ||
174 | |||
175 | int n = sansa_scan(&sansa); | ||
176 | if (n == 0) | ||
177 | { | ||
178 | ERR_DIALOG(wxT("[ERR] No Sansa found."), wxT("Scanning for Sansa")); | ||
179 | return false; | ||
180 | } | ||
181 | if (n > 1) | ||
182 | { | ||
183 | ERR_DIALOG(wxT("[ERR] to many Sansa found."), wxT("Scanning for Sansa")); | ||
184 | return false; | ||
185 | } | ||
186 | |||
187 | // downloading files | ||
188 | if(mode == BOOTLOADER_ADD) | ||
189 | { | ||
190 | src = gv->bootloader_url + wxT("/sandisk-sansa/e200/") | ||
191 | + bootloadername; | ||
192 | dest = gv->stdpaths->GetUserDataDir() | ||
193 | + wxT("" PATH_SEP "download" PATH_SEP) + bootloadername; | ||
194 | if ( DownloadURL(src, dest) ) | ||
195 | { | ||
196 | wxRemoveFile(dest); | ||
197 | ERR_DIALOG(wxT("Unable to download ") + src, wxT("Download")); | ||
198 | return false; | ||
199 | } | ||
200 | } | ||
201 | |||
202 | if (sansa_open(&sansa, 0) < 0) | ||
203 | { | ||
204 | ERR_DIALOG(wxT("[ERR] could not open sansa"), wxT("open Sansa")); | ||
205 | return false; | ||
206 | } | ||
207 | |||
208 | if (sansa_read_partinfo(&sansa,0) < 0) | ||
209 | { | ||
210 | ERR_DIALOG(wxT("[ERR] could not read partitiontable"), wxT("reading partitiontable")); | ||
211 | return false; | ||
212 | } | ||
213 | |||
214 | int i = is_e200(&sansa); | ||
215 | if (i < 0) { | ||
216 | ERR_DIALOG(wxT("[ERR] Disk is not an E200 (%d), aborting.\n"), wxT("Checking Disk")); | ||
217 | return false; | ||
218 | } | ||
219 | |||
220 | if (sansa.hasoldbootloader) | ||
221 | { | ||
222 | ERR_DIALOG(wxT("[ERR] ************************************************************************\n" | ||
223 | "[ERR] *** OLD ROCKBOX INSTALLATION DETECTED, ABORTING.\n" | ||
224 | "[ERR] *** You must reinstall the original Sansa firmware before running\n" | ||
225 | "[ERR] *** sansapatcher for the first time.\n" | ||
226 | "[ERR] *** See http://www.rockbox.org/twiki/bin/view/Main/SansaE200Install\n" | ||
227 | "[ERR] ************************************************************************\n"),wxT("Checking Disk")); | ||
228 | return false; | ||
229 | } | ||
230 | |||
231 | if(mode == BOOTLOADER_ADD) | ||
232 | { | ||
233 | if (sansa_reopen_rw(&sansa) < 0) { | ||
234 | ERR_DIALOG(wxT("[ERR] Could not open Sansa in RW mode"), wxT("Bootloader add")); | ||
235 | return false; | ||
236 | } | ||
237 | |||
238 | if (sansa_add_bootloader(&sansa, (char*)dest.c_str(), FILETYPE_MI4)==0) { | ||
239 | |||
240 | } else { | ||
241 | ERR_DIALOG(wxT("[ERR] failed to add Bootloader"), wxT("Bootloader add")); | ||
242 | } | ||
243 | |||
244 | } | ||
245 | else if(mode == BOOTLOADER_REM) | ||
246 | { | ||
247 | if (sansa_reopen_rw(&sansa) < 0) { | ||
248 | ERR_DIALOG(wxT("[ERR] Could not open Sansa in RW mode"), wxT("Bootloader Remove")); | ||
249 | } | ||
250 | |||
251 | if (sansa_delete_bootloader(&sansa)==0) { | ||
252 | |||
253 | } else { | ||
254 | ERR_DIALOG(wxT("[ERR] failed to remove Bootloader"), wxT("Bootloader remove")); | ||
255 | } | ||
256 | } | ||
257 | |||
258 | sansa_close(&sansa); | ||
259 | return true; | ||
260 | } | ||
261 | |||
262 | // gigabeatinstallation | ||
263 | bool gigabeatf(int mode,wxString bootloadername,wxString deviceDir) | ||
264 | { | ||
265 | wxString path1,path2; | ||
266 | wxString err; | ||
267 | wxString src,dest; | ||
268 | |||
269 | path1 = deviceDir | ||
270 | + wxT("" PATH_SEP "GBSYSTEM" PATH_SEP "FWIMG" PATH_SEP "FWIMG01.DAT"); | ||
271 | |||
272 | if(mode == BOOTLOADER_ADD) | ||
273 | { | ||
274 | //Files downloaden | ||
275 | src = gv->bootloader_url + wxT("/gigabeat/") + bootloadername; | ||
276 | dest = gv->stdpaths->GetUserDataDir() | ||
277 | + wxT("" PATH_SEP "download" PATH_SEP) + bootloadername; | ||
278 | if( DownloadURL(src, dest) ) | ||
279 | { | ||
280 | wxRemoveFile(dest); | ||
281 | ERR_DIALOG(wxT("Unable to download ") + src, wxT("Install")); | ||
282 | return false; | ||
283 | } | ||
284 | |||
285 | |||
286 | if(!wxFileExists(path1)) | ||
287 | { | ||
288 | ERR_DIALOG(wxT("[ERR] Coud not find ")+path1, wxT("Bootloader add")); | ||
289 | return false; | ||
290 | } | ||
291 | path2 = path1; | ||
292 | path2.Append(wxT(".ORIG")); | ||
293 | if(!wxFileExists(path2)) | ||
294 | { | ||
295 | if(!wxRenameFile(path1,path2,false)) | ||
296 | { | ||
297 | ERR_DIALOG(wxT("[ERR] Coud not rename ") + path1 + wxT(" to ") | ||
298 | + path2, wxT("Bootloader add")); | ||
299 | return false; | ||
300 | } | ||
301 | } | ||
302 | |||
303 | |||
304 | if(!wxCopyFile(dest,path1)) | ||
305 | { | ||
306 | ERR_DIALOG(wxT("[ERR] Coud not copy ") + dest + wxT(" to ") | ||
307 | + path2, wxT("Bootloader add")); | ||
308 | return false; | ||
309 | } | ||
310 | } | ||
311 | else if(mode == BOOTLOADER_REM) | ||
312 | { | ||
313 | path2 = path1; | ||
314 | path2.Append(wxT(".ORIG")); | ||
315 | if(!wxFileExists(path2)) | ||
316 | { | ||
317 | ERR_DIALOG(wxT("[ERR] Coud not find ") + path1, | ||
318 | wxT("Bootloader del")); | ||
319 | return false; | ||
320 | } | ||
321 | if(!wxRenameFile(path2,path1,true)) | ||
322 | { | ||
323 | ERR_DIALOG(wxT("[ERR] Coud not rename ") + path1 + wxT(" to ") | ||
324 | + path2, wxT("Bootloader del")); | ||
325 | return false; | ||
326 | } | ||
327 | } | ||
328 | return true; | ||
329 | } | ||
330 | |||
331 | // iaudio bootloader install | ||
332 | bool iaudiox5(int mode,wxString bootloadername,wxString deviceDir) | ||
333 | { | ||
334 | wxString path1,path2; | ||
335 | wxString err; | ||
336 | wxString src,dest; | ||
337 | |||
338 | path1 = deviceDir + wxT("" PATH_SEP "FIRMWARE" PATH_SEP) | ||
339 | + bootloadername; | ||
340 | |||
341 | if(mode == BOOTLOADER_ADD) | ||
342 | { | ||
343 | //Files downloaden | ||
344 | src = gv->bootloader_url + wxT("/iaudio/") + bootloadername; | ||
345 | dest = gv->stdpaths->GetUserDataDir() | ||
346 | + wxT("" PATH_SEP "download" PATH_SEP) + bootloadername; | ||
347 | if( DownloadURL(src, dest) ) | ||
348 | { | ||
349 | wxRemoveFile(dest); | ||
350 | ERR_DIALOG(wxT("Unable to download ") + src, wxT("Install")); | ||
351 | return false; | ||
352 | } | ||
353 | |||
354 | // copy file | ||
355 | if(!wxCopyFile(dest,path1)) | ||
356 | { | ||
357 | ERR_DIALOG(wxT("[ERR] Coud not copy ")+dest+wxT(" to ")+path2, | ||
358 | wxT("Bootloader add")); | ||
359 | return false; | ||
360 | } | ||
361 | |||
362 | return true; // install ready | ||
363 | } | ||
364 | else | ||
365 | return false; //no uninstallation possible | ||
366 | } | ||
367 | |||
368 | // H10 install | ||
369 | bool h10(int mode,wxString bootloadername,wxString deviceDir) | ||
370 | { | ||
371 | wxString err,src,dest,path1,path2; | ||
372 | |||
373 | int pos = bootloadername.Find('/'); | ||
374 | if(pos == wxNOT_FOUND) pos = 0; | ||
375 | wxString firmwarename = bootloadername.SubString(pos,bootloadername.Length()); | ||
376 | //wxString firmDir = gv->curbootloader.SubString(0,pos); | ||
377 | |||
378 | if(mode == BOOTLOADER_ADD) | ||
379 | { | ||
380 | //Files downloaden | ||
381 | src = gv->bootloader_url + wxT("/iriver/") + bootloadername; | ||
382 | dest = gv->stdpaths->GetUserDataDir() | ||
383 | + wxT("" PATH_SEP "download" PATH_SEP) + firmwarename; | ||
384 | if( DownloadURL(src, dest) ) | ||
385 | { | ||
386 | wxRemoveFile(dest); | ||
387 | ERR_DIALOG(wxT("Unable to download ") + src, wxT("Install")); | ||
388 | return false; | ||
389 | } | ||
390 | |||
391 | path1 = deviceDir + wxT("SYSTEM" PATH_SEP) + firmwarename; | ||
392 | path2 = deviceDir + wxT("SYSTEM" PATH_SEP "Original.mi4"); | ||
393 | |||
394 | if(!wxFileExists(path1)) //Firmware dosent exists on player | ||
395 | { | ||
396 | path1 = deviceDir + wxT("SYSTEM" PATH_SEP "H10EMP.mi4"); //attempt other firmwarename | ||
397 | if(!wxFileExists(path1)) //Firmware dosent exists on player | ||
398 | { | ||
399 | ERR_DIALOG(wxT("[ERR] File ") + path1 + wxT(" does not Exist"), | ||
400 | wxT("Bootloader add")); | ||
401 | return false; | ||
402 | } | ||
403 | } | ||
404 | if(!wxFileExists(path2)) //there is already a original firmware | ||
405 | { | ||
406 | if(!wxRenameFile(path1,path2,false)) //rename Firmware to Original | ||
407 | { | ||
408 | ERR_DIALOG(wxT("[ERR] Coud not rename ") + path1 + wxT(" to ") | ||
409 | + path2, wxT("Bootloader add")); | ||
410 | return false; | ||
411 | } | ||
412 | } | ||
413 | |||
414 | if(!wxCopyFile(dest,path1)) // copy file | ||
415 | { | ||
416 | ERR_DIALOG(wxT("[ERR] Coud not copy ") + dest + wxT(" to ") + path1, | ||
417 | wxT("Bootloader add")); | ||
418 | return false; | ||
419 | } | ||
420 | |||
421 | return true; //install ready | ||
422 | |||
423 | } | ||
424 | else if(mode == BOOTLOADER_REM) | ||
425 | { | ||
426 | path1 = deviceDir + wxT("SYSTEM" PATH_SEP) + firmwarename; | ||
427 | path2 = gv->curdestdir + wxT("SYSTEM" PATH_SEP "Original.mi4"); | ||
428 | if(!wxFileExists(path1)) //Firmware dosent exists on player | ||
429 | { | ||
430 | path1 = deviceDir + wxT("" PATH_SEP "SYSTEM" PATH_SEP "H10EMP.mi4"); //attempt other firmwarename | ||
431 | if(!wxFileExists(path1)) //Firmware dosent exists on player | ||
432 | { | ||
433 | ERR_DIALOG(wxT("[ERR] File ") + path1 + wxT(" does not Exist"), | ||
434 | wxT("Bootloader rem")); | ||
435 | return false; | ||
436 | } | ||
437 | } | ||
438 | |||
439 | if(!wxFileExists(path2)) //Original Firmware dosent exists on player | ||
440 | { | ||
441 | ERR_DIALOG(wxT("[ERR] File ") + path2 + wxT(" does not Exist"), | ||
442 | wxT("Bootloader rem")); | ||
443 | return false; | ||
444 | } | ||
445 | |||
446 | if(!wxRenameFile(path2,path1,true)) //rename Firmware to Original | ||
447 | { | ||
448 | ERR_DIALOG(wxT("[ERR] Coud not rename ") + path2 + wxT(" to ") | ||
449 | + path1, wxT("Bootloader add")); | ||
450 | return false; | ||
451 | } | ||
452 | |||
453 | } | ||
454 | // shouldn't get here | ||
455 | return false; | ||
456 | } | ||
457 | |||
458 | // FWPatcher | ||
459 | bool fwpatcher(int mode,wxString bootloadername,wxString deviceDir,wxString firmware) | ||
460 | { | ||
461 | if(mode == BOOTLOADER_ADD) | ||
462 | { | ||
463 | char md5sum_str[32]; | ||
464 | wxString src,dest,err; | ||
465 | int series,table_entry; | ||
466 | |||
467 | if (!FileMD5(firmware, md5sum_str)) { | ||
468 | ERR_DIALOG(wxT("Could not open firmware"), wxT("Open Firmware")); | ||
469 | return false; | ||
470 | } | ||
471 | else { | ||
472 | /* Check firmware against md5sums in h120sums and h100sums */ | ||
473 | series = 0; | ||
474 | table_entry = intable(md5sum_str, &h120pairs[0], | ||
475 | sizeof(h120pairs)/sizeof(struct sumpairs)); | ||
476 | if (table_entry >= 0) { | ||
477 | series = 120; | ||
478 | } | ||
479 | else { | ||
480 | table_entry = intable(md5sum_str, &h100pairs[0], | ||
481 | sizeof(h100pairs)/sizeof(struct sumpairs)); | ||
482 | if (table_entry >= 0) { | ||
483 | series = 100; | ||
484 | } | ||
485 | else { | ||
486 | table_entry = | ||
487 | intable(md5sum_str, &h300pairs[0], | ||
488 | sizeof(h300pairs)/sizeof(struct sumpairs)); | ||
489 | if (table_entry >= 0) | ||
490 | series = 300; | ||
491 | } | ||
492 | } | ||
493 | if (series == 0) { | ||
494 | ERR_DIALOG(wxT("Could not detect firmware type"), wxT("Detect Player out of Firmware")); | ||
495 | return false; | ||
496 | } | ||
497 | else | ||
498 | { | ||
499 | //Download bootloader | ||
500 | src = gv->bootloader_url + wxT("/iriver/") | ||
501 | + bootloadername; | ||
502 | dest = gv->stdpaths->GetUserDataDir() | ||
503 | + wxT("" PATH_SEP "download" PATH_SEP) | ||
504 | + bootloadername; | ||
505 | if( DownloadURL(src, dest) ) | ||
506 | { | ||
507 | wxRemoveFile(dest); | ||
508 | ERR_DIALOG(wxT("Unable to download ") + src, | ||
509 | wxT("Install")); | ||
510 | return false; | ||
511 | } | ||
512 | |||
513 | if(!PatchFirmware(firmware,dest,series, table_entry)) // Patch firmware | ||
514 | { | ||
515 | ERR_DIALOG(wxT("Patching Firmware failed"), | ||
516 | wxT("Patching Firmware")); | ||
517 | return false; | ||
518 | } | ||
519 | } | ||
520 | |||
521 | // Load patched Firmware to player | ||
522 | src = gv->stdpaths->GetUserDataDir() | ||
523 | + wxT("" PATH_SEP "download" PATH_SEP "new.hex"); | ||
524 | |||
525 | if(gv->curplat == wxT("h100")) | ||
526 | dest = deviceDir + wxT("" PATH_SEP "ihp_100.hex"); | ||
527 | else if(gv->curplat == wxT("h120")) | ||
528 | dest = deviceDir + wxT("" PATH_SEP "ihp_120.hex"); | ||
529 | else if(gv->curplat == wxT("h300")) | ||
530 | dest = deviceDir + wxT("" PATH_SEP "H300.hex"); | ||
531 | |||
532 | if(!wxRenameFile(src,dest)) | ||
533 | { | ||
534 | ERR_DIALOG(wxT("Copying Firmware to Device failed"), | ||
535 | wxT("Copying Firmware")); | ||
536 | return false; | ||
537 | } | ||
538 | else | ||
539 | { | ||
540 | return true; | ||
541 | } | ||
542 | } | ||
543 | |||
544 | } | ||
545 | else | ||
546 | { | ||
547 | return false; //no uninstall possible | ||
548 | } | ||
549 | } | ||
diff --git a/rbutil/bootloaders.h b/rbutil/bootloaders.h deleted file mode 100755 index d5bda126cc..0000000000 --- a/rbutil/bootloaders.h +++ /dev/null | |||
@@ -1,51 +0,0 @@ | |||
1 | /*************************************************************************** | ||
2 | * __________ __ ___. | ||
3 | * Open \______ \ ____ ____ | | _\_ |__ _______ ___ | ||
4 | * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / | ||
5 | * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | ||
6 | * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | ||
7 | * \/ \/ \/ \/ \/ | ||
8 | * Module: rbutil | ||
9 | * File: bootloaders.h | ||
10 | * | ||
11 | * Copyright (C) 2007 Dominik Wenger | ||
12 | * | ||
13 | * All files in this archive are subject to the GNU General Public License. | ||
14 | * See the file COPYING in the source tree root for full license agreement. | ||
15 | * | ||
16 | * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY | ||
17 | * KIND, either express or implied. | ||
18 | * | ||
19 | ****************************************************************************/ | ||
20 | |||
21 | |||
22 | |||
23 | #ifndef BOOTLOADERS_H_INCLUDED | ||
24 | #define BOOTLOADERS_H_INCLUDED | ||
25 | |||
26 | #include <wx/string.h> | ||
27 | #include "irivertools.h" | ||
28 | #include "md5sum.h" | ||
29 | |||
30 | #include "rbutil.h" | ||
31 | #include "installlog.h" | ||
32 | |||
33 | extern "C" { | ||
34 | // Ipodpatcher | ||
35 | #include "ipodpatcher/ipodpatcher.h" | ||
36 | // Sansapatcher | ||
37 | #include "sansapatcher/sansapatcher.h" | ||
38 | }; | ||
39 | |||
40 | |||
41 | bool initIpodpatcher(); | ||
42 | bool initSansaPatcher(); | ||
43 | bool ipodpatcher(int mode,wxString bootloadername); | ||
44 | bool sansapatcher(int mode,wxString bootloadername); | ||
45 | bool gigabeatf(int mode,wxString bootloadername,wxString deviceDir); | ||
46 | bool iaudiox5(int mode,wxString bootloadername,wxString deviceDir); | ||
47 | bool fwpatcher(int mode,wxString bootloadername,wxString deviceDir,wxString firmware); | ||
48 | bool h10(int mode,wxString bootloadername,wxString deviceDir); | ||
49 | |||
50 | |||
51 | #endif // BOOTLOADERS_H_INCLUDED | ||
diff --git a/rbutil/copying.txt b/rbutil/copying.txt deleted file mode 100644 index d57cce3cfb..0000000000 --- a/rbutil/copying.txt +++ /dev/null | |||
@@ -1,370 +0,0 @@ | |||
1 | |||
2 | GNU GENERAL PUBLIC LICENSE | ||
3 | |||
4 | Version 2, June 1991 | ||
5 | |||
6 | Copyright (C) 1989, 1991 Free Software Foundation, Inc. | ||
7 | 675 Mass Ave, Cambridge, MA 02139, USA | ||
8 | Everyone is permitted to copy and distribute verbatim copies | ||
9 | of this license document, but changing it is not allowed. | ||
10 | |||
11 | Preamble | ||
12 | |||
13 | The licenses for most software are designed to take away your | ||
14 | freedom to share and change it. By contrast, the GNU General Public | ||
15 | License is intended to guarantee your freedom to share and change free | ||
16 | |||
17 | software--to make sure the software is free for all its users. This | ||
18 | General Public License applies to most of the Free Software | ||
19 | Foundation's software and to any other program whose authors commit to | ||
20 | using it. (Some other Free Software Foundation software is covered by | ||
21 | the GNU Library General Public License instead.) You can apply it to | ||
22 | your programs, too. | ||
23 | |||
24 | When we speak of free software, we are referring to freedom, not | ||
25 | price. Our General Public Licenses are designed to make sure that you | ||
26 | |||
27 | have the freedom to distribute copies of free software (and charge for | ||
28 | this service if you wish), that you receive source code or can get it | ||
29 | if you want it, that you can change the software or use pieces of it | ||
30 | in new free programs; and that you know you can do these things. | ||
31 | |||
32 | To protect your rights, we need to make restrictions that forbid | ||
33 | anyone to deny you these rights or to ask you to surrender the rights. | ||
34 | These restrictions translate to certain responsibilities for you if you | ||
35 | |||
36 | distribute copies of the software, or if you modify it. | ||
37 | |||
38 | For example, if you distribute copies of such a program, whether | ||
39 | gratis or for a fee, you must give the recipients all the rights that | ||
40 | you have. You must make sure that they, too, receive or can get the | ||
41 | source code. And you must show them these terms so they know their | ||
42 | rights. | ||
43 | |||
44 | We protect your rights with two steps: (1) copyright the software, and | ||
45 | (2) offer you this license which gives you legal permission to copy, | ||
46 | |||
47 | distribute and/or modify the software. | ||
48 | |||
49 | Also, for each author's protection and ours, we want to make certain | ||
50 | that everyone understands that there is no warranty for this free | ||
51 | software. If the software is modified by someone else and passed on, we | ||
52 | want its recipients to know that what they have is not the original, so | ||
53 | that any problems introduced by others will not reflect on the original | ||
54 | authors' reputations. | ||
55 | |||
56 | Finally, any free program is threatened constantly by software | ||
57 | |||
58 | patents. We wish to avoid the danger that redistributors of a free | ||
59 | program will individually obtain patent licenses, in effect making the | ||
60 | program proprietary. To prevent this, we have made it clear that any | ||
61 | patent must be licensed for everyone's free use or not licensed at all. | ||
62 | |||
63 | The precise terms and conditions for copying, distribution and | ||
64 | modification follow. | ||
65 | |||
66 | GNU GENERAL PUBLIC LICENSE | ||
67 | TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION | ||
68 | |||
69 | 0. This License applies to any program or other work which contains | ||
70 | a notice placed by the copyright holder saying it may be distributed | ||
71 | under the terms of this General Public License. The "Program", below, | ||
72 | refers to any such program or work, and a "work based on the Program" | ||
73 | means either the Program or any derivative work under copyright law: | ||
74 | that is to say, a work containing the Program or a portion of it, | ||
75 | either verbatim or with modifications and/or translated into another | ||
76 | |||
77 | language. (Hereinafter, translation is included without limitation in | ||
78 | the term "modification".) Each licensee is addressed as "you". | ||
79 | |||
80 | Activities other than copying, distribution and modification are not | ||
81 | covered by this License; they are outside its scope. The act of | ||
82 | running the Program is not restricted, and the output from the Program | ||
83 | is covered only if its contents constitute a work based on the | ||
84 | Program (independent of having been made by running the Program). | ||
85 | |||
86 | Whether that is true depends on what the Program does. | ||
87 | |||
88 | 1. You may copy and distribute verbatim copies of the Program's | ||
89 | source code as you receive it, in any medium, provided that you | ||
90 | conspicuously and appropriately publish on each copy an appropriate | ||
91 | copyright notice and disclaimer of warranty; keep intact all the | ||
92 | notices that refer to this License and to the absence of any warranty; | ||
93 | and give any other recipients of the Program a copy of this License | ||
94 | along with the Program. | ||
95 | |||
96 | You may charge a fee for the physical act of transferring a copy, and | ||
97 | you may at your option offer warranty protection in exchange for a fee. | ||
98 | |||
99 | 2. You may modify your copy or copies of the Program or any portion | ||
100 | of it, thus forming a work based on the Program, and copy and | ||
101 | distribute such modifications or work under the terms of Section 1 | ||
102 | above, provided that you also meet all of these conditions: | ||
103 | |||
104 | a) You must cause the modified files to carry prominent notices | ||
105 | |||
106 | stating that you changed the files and the date of any change. | ||
107 | |||
108 | b) You must cause any work that you distribute or publish, that in | ||
109 | whole or in part contains or is derived from the Program or any | ||
110 | part thereof, to be licensed as a whole at no charge to all third | ||
111 | parties under the terms of this License. | ||
112 | |||
113 | c) If the modified program normally reads commands interactively | ||
114 | when run, you must cause it, when started running for such | ||
115 | interactive use in the most ordinary way, to print or display an | ||
116 | |||
117 | announcement including an appropriate copyright notice and a | ||
118 | notice that there is no warranty (or else, saying that you provide | ||
119 | a warranty) and that users may redistribute the program under | ||
120 | these conditions, and telling the user how to view a copy of this | ||
121 | License. (Exception: if the Program itself is interactive but | ||
122 | does not normally print such an announcement, your work based on | ||
123 | the Program is not required to print an announcement.) | ||
124 | |||
125 | These requirements apply to the modified work as a whole. If | ||
126 | |||
127 | identifiable sections of that work are not derived from the Program, | ||
128 | and can be reasonably considered independent and separate works in | ||
129 | themselves, then this License, and its terms, do not apply to those | ||
130 | sections when you distribute them as separate works. But when you | ||
131 | distribute the same sections as part of a whole which is a work based | ||
132 | on the Program, the distribution of the whole must be on the terms of | ||
133 | this License, whose permissions for other licensees extend to the | ||
134 | |||
135 | entire whole, and thus to each and every part regardless of who wrote it. | ||
136 | |||
137 | Thus, it is not the intent of this section to claim rights or contest | ||
138 | your rights to work written entirely by you; rather, the intent is to | ||
139 | exercise the right to control the distribution of derivative or | ||
140 | collective works based on the Program. | ||
141 | |||
142 | In addition, mere aggregation of another work not based on the Program | ||
143 | with the Program (or with a work based on the Program) on a volume of | ||
144 | a storage or distribution medium does not bring the other work under | ||
145 | |||
146 | the scope of this License. | ||
147 | |||
148 | 3. You may copy and distribute the Program (or a work based on it, | ||
149 | under Section 2) in object code or executable form under the terms of | ||
150 | Sections 1 and 2 above provided that you also do one of the following: | ||
151 | |||
152 | a) Accompany it with the complete corresponding machine-readable | ||
153 | source code, which must be distributed under the terms of Sections | ||
154 | 1 and 2 above on a medium customarily used for software interchange; or, | ||
155 | |||
156 | b) Accompany it with a written offer, valid for at least three | ||
157 | |||
158 | years, to give any third party, for a charge no more than your | ||
159 | cost of physically performing source distribution, a complete | ||
160 | machine-readable copy of the corresponding source code, to be | ||
161 | distributed under the terms of Sections 1 and 2 above on a medium | ||
162 | customarily used for software interchange; or, | ||
163 | |||
164 | c) Accompany it with the information you received as to the offer | ||
165 | to distribute corresponding source code. (This alternative is | ||
166 | allowed only for noncommercial distribution and only if you | ||
167 | |||
168 | received the program in object code or executable form with such | ||
169 | an offer, in accord with Subsection b above.) | ||
170 | |||
171 | The source code for a work means the preferred form of the work for | ||
172 | making modifications to it. For an executable work, complete source | ||
173 | code means all the source code for all modules it contains, plus any | ||
174 | associated interface definition files, plus the scripts used to | ||
175 | control compilation and installation of the executable. However, as a | ||
176 | special exception, the source code distributed need not include | ||
177 | |||
178 | anything that is normally distributed (in either source or binary | ||
179 | form) with the major components (compiler, kernel, and so on) of the | ||
180 | operating system on which the executable runs, unless that component | ||
181 | itself accompanies the executable. | ||
182 | |||
183 | If distribution of executable or object code is made by offering | ||
184 | access to copy from a designated place, then offering equivalent | ||
185 | access to copy the source code from the same place counts as | ||
186 | distribution of the source code, even though third parties are not | ||
187 | |||
188 | compelled to copy the source along with the object code. | ||
189 | |||
190 | 4. You may not copy, modify, sublicense, or distribute the Program | ||
191 | except as expressly provided under this License. Any attempt | ||
192 | otherwise to copy, modify, sublicense or distribute the Program is | ||
193 | void, and will automatically terminate your rights under this License. | ||
194 | However, parties who have received copies, or rights, from you under | ||
195 | this License will not have their licenses terminated so long as such | ||
196 | parties remain in full compliance. | ||
197 | |||
198 | 5. You are not required to accept this License, since you have not | ||
199 | signed it. However, nothing else grants you permission to modify or | ||
200 | distribute the Program or its derivative works. These actions are | ||
201 | prohibited by law if you do not accept this License. Therefore, by | ||
202 | modifying or distributing the Program (or any work based on the | ||
203 | Program), you indicate your acceptance of this License to do so, and | ||
204 | all its terms and conditions for copying, distributing or modifying | ||
205 | |||
206 | the Program or works based on it. | ||
207 | |||
208 | 6. Each time you redistribute the Program (or any work based on the | ||
209 | Program), the recipient automatically receives a license from the | ||
210 | original licensor to copy, distribute or modify the Program subject to | ||
211 | these terms and conditions. You may not impose any further | ||
212 | restrictions on the recipients' exercise of the rights granted herein. | ||
213 | You are not responsible for enforcing compliance by third parties to | ||
214 | this License. | ||
215 | |||
216 | 7. If, as a consequence of a court judgment or allegation of patent | ||
217 | |||
218 | infringement or for any other reason (not limited to patent issues), | ||
219 | conditions are imposed on you (whether by court order, agreement or | ||
220 | otherwise) that contradict the conditions of this License, they do not | ||
221 | excuse you from the conditions of this License. If you cannot | ||
222 | distribute so as to satisfy simultaneously your obligations under this | ||
223 | License and any other pertinent obligations, then as a consequence you | ||
224 | may not distribute the Program at all. For example, if a patent | ||
225 | |||
226 | license would not permit royalty-free redistribution of the Program by | ||
227 | all those who receive copies directly or indirectly through you, then | ||
228 | the only way you could satisfy both it and this License would be to | ||
229 | refrain entirely from distribution of the Program. | ||
230 | |||
231 | If any portion of this section is held invalid or unenforceable under | ||
232 | any particular circumstance, the balance of the section is intended to | ||
233 | apply and the section as a whole is intended to apply in other | ||
234 | circumstances. | ||
235 | |||
236 | It is not the purpose of this section to induce you to infringe any | ||
237 | patents or other property right claims or to contest validity of any | ||
238 | such claims; this section has the sole purpose of protecting the | ||
239 | integrity of the free software distribution system, which is | ||
240 | implemented by public license practices. Many people have made | ||
241 | generous contributions to the wide range of software distributed | ||
242 | through that system in reliance on consistent application of that | ||
243 | system; it is up to the author/donor to decide if he or she is willing | ||
244 | |||
245 | to distribute software through any other system and a licensee cannot | ||
246 | impose that choice. | ||
247 | |||
248 | This section is intended to make thoroughly clear what is believed to | ||
249 | be a consequence of the rest of this License. | ||
250 | |||
251 | 8. If the distribution and/or use of the Program is restricted in | ||
252 | certain countries either by patents or by copyrighted interfaces, the | ||
253 | original copyright holder who places the Program under this License | ||
254 | may add an explicit geographical distribution limitation excluding | ||
255 | |||
256 | those countries, so that distribution is permitted only in or among | ||
257 | countries not thus excluded. In such case, this License incorporates | ||
258 | the limitation as if written in the body of this License. | ||
259 | |||
260 | 9. The Free Software Foundation may publish revised and/or new versions | ||
261 | of the General Public License from time to time. Such new versions will | ||
262 | be similar in spirit to the present version, but may differ in detail to | ||
263 | address new problems or concerns. | ||
264 | |||
265 | Each version is given a distinguishing version number. If the Program | ||
266 | |||
267 | specifies a version number of this License which applies to it and "any | ||
268 | later version", you have the option of following the terms and conditions | ||
269 | either of that version or of any later version published by the Free | ||
270 | Software Foundation. If the Program does not specify a version number of | ||
271 | this License, you may choose any version ever published by the Free Software | ||
272 | Foundation. | ||
273 | |||
274 | 10. If you wish to incorporate parts of the Program into other free | ||
275 | programs whose distribution conditions are different, write to the author | ||
276 | |||
277 | to ask for permission. For software which is copyrighted by the Free | ||
278 | Software Foundation, write to the Free Software Foundation; we sometimes | ||
279 | make exceptions for this. Our decision will be guided by the two goals | ||
280 | of preserving the free status of all derivatives of our free software and | ||
281 | of promoting the sharing and reuse of software generally. | ||
282 | |||
283 | NO WARRANTY | ||
284 | |||
285 | 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY | ||
286 | FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN | ||
287 | |||
288 | OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES | ||
289 | PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED | ||
290 | OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF | ||
291 | MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS | ||
292 | TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE | ||
293 | PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, | ||
294 | REPAIR OR CORRECTION. | ||
295 | |||
296 | 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING | ||
297 | |||
298 | WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR | ||
299 | REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, | ||
300 | INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING | ||
301 | OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED | ||
302 | TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY | ||
303 | YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER | ||
304 | PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE | ||
305 | |||
306 | POSSIBILITY OF SUCH DAMAGES. | ||
307 | |||
308 | END OF TERMS AND CONDITIONS | ||
309 | |||
310 | Appendix: How to Apply These Terms to Your New Programs | ||
311 | |||
312 | If you develop a new program, and you want it to be of the greatest | ||
313 | possible use to the public, the best way to achieve this is to make it | ||
314 | free software which everyone can redistribute and change under these terms. | ||
315 | |||
316 | To do so, attach the following notices to the program. It is safest | ||
317 | to attach them to the start of each source file to most effectively | ||
318 | |||
319 | convey the exclusion of warranty; and each file should have at least | ||
320 | the "copyright" line and a pointer to where the full notice is found. | ||
321 | |||
322 | <one line to give the program's name and a brief idea of what it does.> | ||
323 | Copyright (C) 19yy <name of author> | ||
324 | |||
325 | This program is free software; you can redistribute it and/or modify | ||
326 | it under the terms of the GNU General Public License as published by | ||
327 | the Free Software Foundation; either version 2 of the License, or | ||
328 | |||
329 | (at your option) any later version. | ||
330 | |||
331 | This program is distributed in the hope that it will be useful, | ||
332 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
333 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
334 | GNU General Public License for more details. | ||
335 | |||
336 | You should have received a copy of the GNU General Public License | ||
337 | along with this program; if not, write to the Free Software | ||
338 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||
339 | |||
340 | Also add information on how to contact you by electronic and paper mail. | ||
341 | |||
342 | If the program is interactive, make it output a short notice like this | ||
343 | when it starts in an interactive mode: | ||
344 | |||
345 | Gnomovision version 69, Copyright (C) 19yy name of author | ||
346 | Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. | ||
347 | This is free software, and you are welcome to redistribute it | ||
348 | under certain conditions; type `show c' for details. | ||
349 | |||
350 | The hypothetical commands `show w' and `show c' should show the appropriate | ||
351 | |||
352 | parts of the General Public License. Of course, the commands you use may | ||
353 | be called something other than `show w' and `show c'; they could even be | ||
354 | mouse-clicks or menu items--whatever suits your program. | ||
355 | |||
356 | You should also get your employer (if you work as a programmer) or your | ||
357 | school, if any, to sign a "copyright disclaimer" for the program, if | ||
358 | necessary. Here is a sample; alter the names: | ||
359 | |||
360 | Yoyodyne, Inc., hereby disclaims all copyright interest in the program | ||
361 | `Gnomovision' (which makes passes at compilers) written by James Hacker. | ||
362 | |||
363 | <signature of Ty Coon>, 1 April 1989 | ||
364 | Ty Coon, President of Vice | ||
365 | |||
366 | This General Public License does not permit incorporating your program into | ||
367 | proprietary programs. If your program is a subroutine library, you may | ||
368 | consider it more useful to permit linking proprietary applications with the | ||
369 | library. If this is what you want to do, use the GNU Library General | ||
370 | Public License instead of this License. | ||
diff --git a/rbutil/credits.h b/rbutil/credits.h deleted file mode 100644 index b1246201d3..0000000000 --- a/rbutil/credits.h +++ /dev/null | |||
@@ -1,52 +0,0 @@ | |||
1 | /*************************************************************************** | ||
2 | * __________ __ ___. | ||
3 | * Open \______ \ ____ ____ | | _\_ |__ _______ ___ | ||
4 | * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / | ||
5 | * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | ||
6 | * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | ||
7 | * \/ \/ \/ \/ \/ | ||
8 | * Module: rbutil | ||
9 | * File: credits.h | ||
10 | * | ||
11 | * Copyright (C) 2006 Christi Alice Scarborough | ||
12 | * | ||
13 | * All files in this archive are subject to the GNU General Public License. | ||
14 | * See the file COPYING in the source tree root for full license agreement. | ||
15 | * | ||
16 | * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY | ||
17 | * KIND, either express or implied. | ||
18 | * | ||
19 | ****************************************************************************/ | ||
20 | |||
21 | #ifndef CREDITS_H_INCLUDED | ||
22 | #define CREDITS_H_INCLUDED | ||
23 | |||
24 | #define RBUTIL_FULLNAME "The Rockbox Utility" | ||
25 | #define RBUTIL_VERSION "Version 0.3.2.6" | ||
26 | |||
27 | static const wxString rbutil_developers[] = { | ||
28 | wxT("Christi Alice Scarborough"), | ||
29 | wxT("Dave Chapman"), | ||
30 | wxT("Dominik Wenger"), | ||
31 | wxT("Bryan Childs"), | ||
32 | wxT("Dave Hooper"), | ||
33 | wxT("") | ||
34 | }; | ||
35 | |||
36 | #define RBUTIL_WEBSITE "http://www.rockbox.org/" | ||
37 | #define RBUTIL_COPYRIGHT wxT("© 2005-2007 The Rockbox Team\n" \ | ||
38 | "Released under the GNU General Public License v2.") | ||
39 | #define RBUTIL_DESCRIPTION wxT("Installer and housekeeping utility for " \ | ||
40 | "the Rockbox open source digital audio player firmware.") | ||
41 | |||
42 | |||
43 | class AboutDlg: public wxDialog | ||
44 | { | ||
45 | public: | ||
46 | AboutDlg(rbutilFrm *parent); | ||
47 | ~AboutDlg(); | ||
48 | }; | ||
49 | |||
50 | #include <wx/hyperlink.h> | ||
51 | |||
52 | #endif // CREDITS_H_INCLUDED | ||
diff --git a/rbutil/h100sums.h b/rbutil/h100sums.h deleted file mode 100755 index ebbdcc28db..0000000000 --- a/rbutil/h100sums.h +++ /dev/null | |||
@@ -1,23 +0,0 @@ | |||
1 | /* Checksums of firmwares for ihp_100 */ | ||
2 | /* order: unpatched, patched */ | ||
3 | |||
4 | /* 1.63eu */ | ||
5 | {"86103cb05658970b43ce1f40f93d53a8", "4938420d83aa6da3764d33e5a008c8d4"}, | ||
6 | /* 1.63k */ | ||
7 | {"70127fa9ee69afab7645297fbb61636d", "044b737ddb74436353e290d3fbcc3333"}, | ||
8 | /* 1.63us */ | ||
9 | {"7a504a450c76a0dda757fdb6b5531b22", "e51883ed89d49f5677b0a976aef7b154"}, | ||
10 | /* 1.65eu */ | ||
11 | {"478dc657b97e77d1b4944ef26c3dcb8e", "528917d9e5b34a3e5bcac8fe1f4bd7a9"}, | ||
12 | /* 1.65k */ | ||
13 | {"97ba82fb8099bb23ca0c78fc119f8cce", "ef24f69a679e5eba2216045cb24d8b15"}, | ||
14 | /* 1.65us */ | ||
15 | {"d3725865e0948cd5f604b00db2ec89aa", "76d83812b9e1856f768ba913eeba44e1"}, | ||
16 | /* 1.66eu */ | ||
17 | {"fc59f742fe383da3e4d17a660c46afb9", "2aa9d16d3e166a7575fc652db8588daa"}, | ||
18 | /* 1.66k */ | ||
19 | {"22d214401994c276ec6878288caa0dba", "a87dbe604ea98d035450a34b6e184a08"}, | ||
20 | /* 1.66us */ | ||
21 | {"0ae247f567aeafcafecf823a50cbf33e", "f7668e8949f1a78e8ecd685db78b6824"}, | ||
22 | /* 1.66jp */ | ||
23 | {"8bfc8ae5805c270597232efeafade5fd", "72613b75c5196f63e99e41b7a88d7241"}, | ||
diff --git a/rbutil/h120sums.h b/rbutil/h120sums.h deleted file mode 100755 index 09da891ae1..0000000000 --- a/rbutil/h120sums.h +++ /dev/null | |||
@@ -1,23 +0,0 @@ | |||
1 | /* Checksums of firmwares for ihp_120 */ | ||
2 | /* order: unpatched, patched */ | ||
3 | |||
4 | /* 1.63eu */ | ||
5 | {"14488347a171480c63c94bc7b885225d", "15f09130a1aa02c25f820e8cc68259a4"}, | ||
6 | /* 1.63k */ | ||
7 | {"3401fe8845e569156abfaddf05ca7771", "55e4cb20e36f4da06ad80b31aaaa3054"}, | ||
8 | /* 1.63us */ | ||
9 | {"d9078209105c186cee5246055fdb99c9", "dbdd012a3d821d26f907879cca71e9f4"}, | ||
10 | /* 1.65eu */ | ||
11 | {"c9e71aac4a498f1e2f0e684c2d554ea1", "43454df30c176e55d0df7e3c48e67785"}, | ||
12 | /* 1.65k */ | ||
13 | {"360c0c565266f84e9bca610c596f3207", "d8cb7d9f586186bf9780ee761fc8a677"}, | ||
14 | /* 1.65us */ | ||
15 | {"b9e516d4b8a0265605f46f254897bfb0", "99c5666e990dc782b9daefcb1a087ec0"}, | ||
16 | /* 1.66eu */ | ||
17 | {"a094999b41781f4322a57b9be7fa4534", "e26d2574f39cee0adcdd54fb9f316293"}, | ||
18 | /* 1.66k */ | ||
19 | {"79daba973bb31b60b4b87c2ef497587d", "e76121ba9efe72ecfbb6392eaefe6d96"}, | ||
20 | /* 1.66us */ | ||
21 | {"7fa020a3104c76fbbfcb8313e287dbe2", "12194678a2fdd0814d2e0bb57c8e8e6e"}, | ||
22 | /* 1.66jp */ | ||
23 | {"271d151eb6586929da24b3458ea965fe", "51716393ea0605d225e70a6be29dfdbd"}, | ||
diff --git a/rbutil/h300sums.h b/rbutil/h300sums.h deleted file mode 100755 index 1c6581a6d1..0000000000 --- a/rbutil/h300sums.h +++ /dev/null | |||
@@ -1,17 +0,0 @@ | |||
1 | /* Checksums of firmwares for ihp_300 */ | ||
2 | /* order: unpatched, patched */ | ||
3 | |||
4 | /* 1.28eu */ | ||
5 | {"0b2083d37f24899b82d21a14d2b38060", "9cd7e291a66f55335c619d63f3a7634b"}, | ||
6 | /* 1.28k */ | ||
7 | {"c6f854ae3d8f48e8982819a4b5302fb0", "90967247ba3f1bcb257432a4d78553bf"}, | ||
8 | /* 1.28jp */ | ||
9 | {"7fcd7bca6b98a34134e2518a616f4e85", "cfd22c20e473727148f11f83d0028fb3"}, | ||
10 | /* 1.29eu */ | ||
11 | {"27d90fc316709c096979ab24c914ee31", "5982302507d57c2a96e9480c242b5de0"}, | ||
12 | /* 1.29k */ | ||
13 | {"44416d97737fc47cd417a64d44064768", "1303e22ef5b1af866aa4def03d6c5f5a"}, | ||
14 | /* 1.29jp */ | ||
15 | {"1ac242c645572a0a5de99ae2b23453b8", "ce433c404ff7531f5852ce3cb61143ee"}, | ||
16 | /* 1.30eu */ | ||
17 | {"8d2d775b018f0532235d38f5317ae10c", "7fb49041294b3e6aea3894218d6d64cf"}, | ||
diff --git a/rbutil/icons/Makefile b/rbutil/icons/Makefile deleted file mode 100644 index 8eb630f427..0000000000 --- a/rbutil/icons/Makefile +++ /dev/null | |||
@@ -1,39 +0,0 @@ | |||
1 | # __________ __ ___. | ||
2 | # Open \______ \ ____ ____ | | _\_ |__ _______ ___ | ||
3 | # Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / | ||
4 | # Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | ||
5 | # Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | ||
6 | # \/ \/ \/ \/ \/ | ||
7 | # $Id$ | ||
8 | # | ||
9 | CC = gcc | ||
10 | CXX = $(shell $(PREFIX)wx-config --version=2.8 --cxx) | ||
11 | INC = `$(PREFIX)wx-config --version=2.8 --cxxflags` | ||
12 | LIBS = `$(PREFIX)wx-config --version=2.8 --libs` | ||
13 | |||
14 | CFLAGS = -Wall -Wundef -DRBUTIL -D_LARGEFILE64_SOURCE | ||
15 | ICONS := $(wildcard *.png) | ||
16 | HEADERS := $(subst .png,.h,$(ICONS)) | ||
17 | OBJS := $(subst .png,.o,$(ICONS)) | ||
18 | CXXSOURCES = $(subst .png,.cpp,$(ICONS)) | ||
19 | SILENT = @ | ||
20 | BIN2C = ./bin2c | ||
21 | |||
22 | all: $(OBJS) | ||
23 | |||
24 | |||
25 | bin2c: bin2c.c | ||
26 | $(SILENT) echo CC $< | ||
27 | $(SILENT) $(CC) -o $@ $< | ||
28 | |||
29 | %.cpp: %.png bin2c | ||
30 | $(SILENT) echo BIN2C $< | ||
31 | $(SILENT) $(BIN2C) $< | ||
32 | |||
33 | %.o: %.cpp | ||
34 | $(SILENT) echo CXX $< | ||
35 | $(SILENT) $(CXX) $(CFLAGS) $(INC) -c -o $@ $< | ||
36 | |||
37 | clean: | ||
38 | $(SILENT) echo cleaning icons. | ||
39 | $(SILENT) rm -f bin2c $(OBJS) $(HEADERS) $(CXXSOURCES) | ||
diff --git a/rbutil/icons/bin2c.c b/rbutil/icons/bin2c.c deleted file mode 100644 index 99400444ef..0000000000 --- a/rbutil/icons/bin2c.c +++ /dev/null | |||
@@ -1,172 +0,0 @@ | |||
1 | // bin2c.c | ||
2 | // | ||
3 | // convert a binary file into a C source vector | ||
4 | // | ||
5 | // put into the public domain by Sandro Sigala | ||
6 | // | ||
7 | // syntax: bin2c [-c] [-z] <input_file> <output_file> | ||
8 | // | ||
9 | // -c add the "const" keyword to definition | ||
10 | // -z terminate the array with a zero (useful for embedded C strings) | ||
11 | // | ||
12 | // examples: | ||
13 | // bin2c -c myimage.png myimage_png.cpp | ||
14 | // bin2c -z sometext.txt sometext_txt.cpp | ||
15 | |||
16 | #include <ctype.h> | ||
17 | #include <stdio.h> | ||
18 | #include <stdlib.h> | ||
19 | #include <string.h> | ||
20 | |||
21 | #ifndef PATH_MAX | ||
22 | #define PATH_MAX 1024 | ||
23 | #endif | ||
24 | |||
25 | int useconst = 0; | ||
26 | int zeroterminated = 0; | ||
27 | |||
28 | int myfgetc(FILE *f) | ||
29 | { | ||
30 | int c = fgetc(f); | ||
31 | if (c == EOF && zeroterminated) { | ||
32 | zeroterminated = 0; | ||
33 | return 0; | ||
34 | } | ||
35 | return c; | ||
36 | } | ||
37 | |||
38 | |||
39 | void process(const char *ifname, const char *ofname) | ||
40 | { | ||
41 | FILE *ifile, *ofile; | ||
42 | /* modified */ | ||
43 | int counter=0; | ||
44 | char buf2[PATH_MAX]; | ||
45 | char* cp2; | ||
46 | char* cp3; | ||
47 | if ((cp3 = strrchr(ofname, '/')) != NULL) | ||
48 | ++cp3; | ||
49 | else { | ||
50 | if ((cp3 = strrchr(ofname, '\\')) != NULL) | ||
51 | ++cp3; | ||
52 | else | ||
53 | cp3 = (char*) ofname; | ||
54 | } | ||
55 | |||
56 | strcpy(buf2, cp3); | ||
57 | cp2 = strrchr(buf2, '.'); | ||
58 | *cp2 = '.'; | ||
59 | cp2++; | ||
60 | *cp2 = 'h'; | ||
61 | cp2++; | ||
62 | *cp2 ='\0'; | ||
63 | |||
64 | |||
65 | ifile = fopen(ifname, "rb"); | ||
66 | if (ifile == NULL) { | ||
67 | fprintf(stderr, "cannot open %s for reading\n", ifname); | ||
68 | exit(1); | ||
69 | } | ||
70 | ofile = fopen(ofname, "wb"); | ||
71 | if (ofile == NULL) { | ||
72 | fprintf(stderr, "cannot open %s for writing\n", ofname); | ||
73 | exit(1); | ||
74 | } | ||
75 | char buf[PATH_MAX], *p; | ||
76 | const char *cp; | ||
77 | if ((cp = strrchr(ifname, '/')) != NULL) | ||
78 | ++cp; | ||
79 | else { | ||
80 | if ((cp = strrchr(ifname, '\\')) != NULL) | ||
81 | ++cp; | ||
82 | else | ||
83 | cp = ifname; | ||
84 | } | ||
85 | strcpy(buf, cp); | ||
86 | for (p = buf; *p != '\0'; ++p) | ||
87 | if (!isalnum(*p)) | ||
88 | *p = '_'; | ||
89 | fprintf(ofile,"#include \"%s\" \n\n",buf2); | ||
90 | fprintf(ofile, "%sunsigned char %s[] = {\n", useconst ? "const " : "", buf); | ||
91 | int c, col = 1; | ||
92 | while ((c = myfgetc(ifile)) != EOF) { | ||
93 | counter++; | ||
94 | if (col >= 78 - 6) { | ||
95 | fputc('\n', ofile); | ||
96 | col = 1; | ||
97 | } | ||
98 | fprintf(ofile, "0x%.2x, ", c); | ||
99 | col += 6; | ||
100 | |||
101 | } | ||
102 | fprintf(ofile, "\n};\n"); | ||
103 | |||
104 | /* modified */ | ||
105 | fprintf(ofile,"int %s_length = %i; \n",buf,counter); | ||
106 | |||
107 | |||
108 | FILE *o2file; | ||
109 | o2file = fopen(buf2, "wb"); | ||
110 | if (o2file == NULL) { | ||
111 | fprintf(stderr, "cannot open %s for writing\n", buf2); | ||
112 | exit(1); | ||
113 | } | ||
114 | |||
115 | fprintf(o2file, "#ifndef __%s__ \n", buf); | ||
116 | fprintf(o2file, "#define __%s__ \n", buf); | ||
117 | |||
118 | fprintf(o2file, "extern %sunsigned char %s[]; \n\n", useconst ? "const " : "", buf); | ||
119 | fprintf(o2file, "extern int %s_length; \n\n", buf); | ||
120 | |||
121 | fprintf(o2file, "#endif \n"); | ||
122 | |||
123 | fclose(ifile); | ||
124 | fclose(ofile); | ||
125 | fclose(o2file); | ||
126 | } | ||
127 | |||
128 | void usage(void) | ||
129 | { | ||
130 | fprintf(stderr, "usage: bin2c <input_files> \n"); | ||
131 | exit(1); | ||
132 | } | ||
133 | |||
134 | int main(int argc, char **argv) | ||
135 | { | ||
136 | if (argc < 2) { | ||
137 | usage(); | ||
138 | } | ||
139 | int i; | ||
140 | for(i = 1;i < argc ; i++) | ||
141 | { | ||
142 | char buf[PATH_MAX]; | ||
143 | char* cp; | ||
144 | strcpy(buf, argv[i]); | ||
145 | cp = strrchr(buf, '.'); | ||
146 | cp++; | ||
147 | strcpy(cp,"cpp"); | ||
148 | process(argv[i], buf); | ||
149 | } | ||
150 | |||
151 | |||
152 | /* | ||
153 | while (argc > 3) { | ||
154 | if (!strcmp(argv[1], "-c")) { | ||
155 | useconst = 1; | ||
156 | --argc; | ||
157 | ++argv; | ||
158 | } else if (!strcmp(argv[1], "-z")) { | ||
159 | zeroterminated = 1; | ||
160 | --argc; | ||
161 | ++argv; | ||
162 | } else { | ||
163 | usage(); | ||
164 | } | ||
165 | } | ||
166 | if (argc != 3) { | ||
167 | usage(); | ||
168 | } | ||
169 | process(argv[1], argv[2]); | ||
170 | */ | ||
171 | return 0; | ||
172 | } | ||
diff --git a/rbutil/icons/bootloader_btn.png b/rbutil/icons/bootloader_btn.png deleted file mode 100644 index 3590c9c4b9..0000000000 --- a/rbutil/icons/bootloader_btn.png +++ /dev/null | |||
Binary files differ | |||
diff --git a/rbutil/icons/doom_btn.png b/rbutil/icons/doom_btn.png deleted file mode 100644 index c086024e14..0000000000 --- a/rbutil/icons/doom_btn.png +++ /dev/null | |||
Binary files differ | |||
diff --git a/rbutil/icons/font_btn.png b/rbutil/icons/font_btn.png deleted file mode 100644 index dd47a2912a..0000000000 --- a/rbutil/icons/font_btn.png +++ /dev/null | |||
Binary files differ | |||
diff --git a/rbutil/icons/rbinstall_btn.png b/rbutil/icons/rbinstall_btn.png deleted file mode 100644 index c37ebec263..0000000000 --- a/rbutil/icons/rbinstall_btn.png +++ /dev/null | |||
Binary files differ | |||
diff --git a/rbutil/icons/rembootloader_btn.png b/rbutil/icons/rembootloader_btn.png deleted file mode 100644 index 8abf1da30e..0000000000 --- a/rbutil/icons/rembootloader_btn.png +++ /dev/null | |||
Binary files differ | |||
diff --git a/rbutil/icons/remrb_btn.png b/rbutil/icons/remrb_btn.png deleted file mode 100644 index bd484b96c1..0000000000 --- a/rbutil/icons/remrb_btn.png +++ /dev/null | |||
Binary files differ | |||
diff --git a/rbutil/icons/talkfile_btn.png b/rbutil/icons/talkfile_btn.png deleted file mode 100644 index 64e2763c94..0000000000 --- a/rbutil/icons/talkfile_btn.png +++ /dev/null | |||
Binary files differ | |||
diff --git a/rbutil/icons/themes_btn.png b/rbutil/icons/themes_btn.png deleted file mode 100644 index 264ba79460..0000000000 --- a/rbutil/icons/themes_btn.png +++ /dev/null | |||
Binary files differ | |||
diff --git a/rbutil/install_3d.xpm b/rbutil/install_3d.xpm deleted file mode 100644 index c077e61143..0000000000 --- a/rbutil/install_3d.xpm +++ /dev/null | |||
@@ -1,70 +0,0 @@ | |||
1 | /* WxBitmapButton1 XPM */ | ||
2 | static char *install_3d_xpm[]={ | ||
3 | "56 46 20 1", | ||
4 | " c None", | ||
5 | "0 c #BEBABE", | ||
6 | "1 c #BEC3BE", | ||
7 | "2 c #000011", | ||
8 | "3 c #AEAAAE", | ||
9 | "4 c #9E9A9E", | ||
10 | "5 c #010101", | ||
11 | "6 c #79869E", | ||
12 | "7 c #C7BAC7", | ||
13 | "8 c #5155FF", | ||
14 | "9 c #8E8A8E", | ||
15 | "a c #AEAEB6", | ||
16 | "b c #202496", | ||
17 | "c c #B6AEB6", | ||
18 | "d c #CFC7CF", | ||
19 | "e c #9696AE", | ||
20 | "f c #7992B6", | ||
21 | "g c #717986", | ||
22 | "h c #28FF20", | ||
23 | "i c #A69EA6", | ||
24 | " 0", | ||
25 | " 0101010101010101010101010101010101010101010101010101012", | ||
26 | " 1010101010101010101010101010101010101010101010101010102", | ||
27 | " 1001000100010001000100010001000100010001000100010001002", | ||
28 | " 3030410331304103313041033130410331304103313041033130312", | ||
29 | " 0101010100101010100101010010101010010101001010101001002", | ||
30 | " 3030303030303030313030303030303031303030303030303130302", | ||
31 | " 0101030010101301001015555555555555555300101013101001032", | ||
32 | " 3041303140303045503050101010101010010530403030403040302", | ||
33 | " 0103010300130153510350552552525252520563010310131013012", | ||
34 | " 3030374131303530503051288888888888851566373040303130302", | ||
35 | " 0301031303005305155150588888881818850296031013030300132", | ||
36 | " 3030403030453051305555558888883838851266a03030304131302", | ||
37 | " 0373030303151503050301558888880818850566030313730303032", | ||
38 | " 3131303030355030513135b58888888838851566c03040313030412", | ||
39 | " 330333d33303535555035bb58888888818820566330333033373332", | ||
40 | " 30303040303035303055bbb58888888888851546303130303030302", | ||
41 | " 3333333333333555555bbbb58888888888850566333333333333332", | ||
42 | " 30303030373035bbbb5bbb35888888888885126e303030413030302", | ||
43 | " 33333333333335bbbb5bb33588888888888505fg333333333333332", | ||
44 | " 33303330333035bbbb5b33355555555555551566a33033303330332", | ||
45 | " 3333333333333533335333351111110dhh110566333333333333332", | ||
46 | " 3333333333333533335333355252552555252555333333333333332", | ||
47 | " 3333333333333533335335051001001000100100533333333333332", | ||
48 | " 4333433343334533435353350 10 10 10 10 10563343334333432", | ||
49 | " 3333333333333533335335351001001055555500566333333333332", | ||
50 | " 3343434333434545335353450101010105505551566c43433343432", | ||
51 | " 3333333333333533535335350 10 00 10555555566333333333332", | ||
52 | " 4343434343434545435353455555555555555555666343434343432", | ||
53 | " 333333333333353353533335666666666666666fge6333333333332", | ||
54 | " 434343434343454543534355666egf66966669gfgf4343434343432", | ||
55 | " 34333433343335335453356555555552a3a7aaa7343334333433342", | ||
56 | " 4343434343434545435356654000305555555343434343434343432", | ||
57 | " 3434343434343534345566665555555300303534343434343434342", | ||
58 | " 434343434343454343566egc4555505555555553434343434343432", | ||
59 | " 443444344434455555egfga44455555555545555443444344434442", | ||
60 | " 434343434343434666666ce34346555555555555534343434343432", | ||
61 | " 4444444444444446666644444444666666555555564444444444442", | ||
62 | " 4343434343434343i34a43434340434743666666666343434343432", | ||
63 | " 444444444444444444i44444444444444444444444i444444444442", | ||
64 | " 4443444344434443444344434443444344434443444344434443442", | ||
65 | " 4444444444444444444444444444444444444444444444444444442", | ||
66 | " 4344444443444444434444444344444443444444434444444344442", | ||
67 | " 4444444444444444444444444444444444444444444444444444442", | ||
68 | " 4444444444444444444444444444444444444444444444444444442", | ||
69 | "12222222222222222222222222222222222222222222222222222222"}; | ||
70 | |||
diff --git a/rbutil/install_dialogs.cpp b/rbutil/install_dialogs.cpp deleted file mode 100644 index 331a07df4a..0000000000 --- a/rbutil/install_dialogs.cpp +++ /dev/null | |||
@@ -1,948 +0,0 @@ | |||
1 | |||
2 | #include "install_dialogs.h" | ||
3 | #include "wizard.xpm" | ||
4 | |||
5 | |||
6 | |||
7 | //////////////////////////////////////////////// | ||
8 | //// Bootloader Installation | ||
9 | ///////////////////////////////////////////////// | ||
10 | |||
11 | IMPLEMENT_CLASS( bootloaderInstallDlg, wxDialog ) | ||
12 | |||
13 | BEGIN_EVENT_TABLE( bootloaderInstallDlg, wxDialog ) | ||
14 | |||
15 | END_EVENT_TABLE() | ||
16 | |||
17 | bootloaderInstallDlg::bootloaderInstallDlg( ) | ||
18 | { | ||
19 | Init(); | ||
20 | } | ||
21 | |||
22 | bootloaderInstallDlg::bootloaderInstallDlg( wxWindow* parent, | ||
23 | wxWindowID id, const wxString& caption, | ||
24 | const wxPoint& pos, const wxSize& size, long style ) | ||
25 | { | ||
26 | Init(); | ||
27 | Create(parent, id, caption, pos, size, style); | ||
28 | } | ||
29 | |||
30 | void bootloaderInstallDlg::CreateControls() | ||
31 | { | ||
32 | // A top-level sizer | ||
33 | wxBoxSizer* topSizer = new wxBoxSizer(wxVERTICAL); | ||
34 | this->SetSizer(topSizer); | ||
35 | |||
36 | wxBoxSizer* wxBoxSizer2 = new wxBoxSizer(wxHORIZONTAL); | ||
37 | topSizer->Add(wxBoxSizer2, 0, wxALIGN_LEFT|wxALL, 5); | ||
38 | |||
39 | // bitmap | ||
40 | wxBitmap sidebmp(wizard_xpm); | ||
41 | ImageCtrl* sideimage = new ImageCtrl(this,wxID_ANY); | ||
42 | sideimage->SetBitmap(sidebmp); | ||
43 | wxBoxSizer2->Add(sideimage,0,wxALIGN_LEFT | wxALL,5); | ||
44 | |||
45 | wxBoxSizer* wxBoxSizer3 = new wxBoxSizer(wxVERTICAL); | ||
46 | wxBoxSizer2->Add(wxBoxSizer3, 0, wxALIGN_LEFT|wxALL, 5); | ||
47 | |||
48 | m_devicepos = new DevicePositionCtrl(this,ID_DEVICEPOS); | ||
49 | wxBoxSizer3->Add(m_devicepos, 0, wxALIGN_LEFT|wxALL, 5); | ||
50 | |||
51 | m_firmwarepos = new FirmwarePositionCtrl(this,ID_FIRMWARE); | ||
52 | wxBoxSizer3->Add(m_firmwarepos, 0, wxALIGN_LEFT|wxALL, 5); | ||
53 | |||
54 | OkCancelCtrl* okCancel = new OkCancelCtrl(this,wxID_ANY); | ||
55 | topSizer->Add(okCancel, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5); | ||
56 | |||
57 | } | ||
58 | |||
59 | //init the local variables | ||
60 | void bootloaderInstallDlg::Init() | ||
61 | { | ||
62 | |||
63 | } | ||
64 | |||
65 | // create the window | ||
66 | bool bootloaderInstallDlg::Create( wxWindow* parent, | ||
67 | wxWindowID id, const wxString& caption, | ||
68 | const wxPoint& pos, const wxSize& size, long style ) | ||
69 | { | ||
70 | |||
71 | if (!wxDialog::Create( parent, id, caption, pos, size, style )) | ||
72 | return false; | ||
73 | CreateControls(); | ||
74 | GetSizer()->Fit(this); | ||
75 | GetSizer()->SetSizeHints(this); | ||
76 | Centre(); | ||
77 | return true; | ||
78 | } | ||
79 | |||
80 | |||
81 | |||
82 | // tranver data from the controls | ||
83 | bool bootloaderInstallDlg::TransferDataFromWindow() | ||
84 | { | ||
85 | |||
86 | if( m_devicepos->IsShown()) | ||
87 | { | ||
88 | gv->curdestdir = m_devicepos->getDevicePos(); | ||
89 | if(!wxDirExists(gv->curdestdir)) | ||
90 | { | ||
91 | WARN_DIALOG(wxT("The Devicepostion is not valid"), | ||
92 | wxT("Select a Deviceposition")); | ||
93 | gv->curdestdir = wxT(""); | ||
94 | return false; | ||
95 | } | ||
96 | } | ||
97 | |||
98 | if(m_firmwarepos->IsShown()) | ||
99 | { | ||
100 | gv->curfirmware = m_firmwarepos->getFirmwarePos(); | ||
101 | if(!wxFileExists(gv->curfirmware)) | ||
102 | { | ||
103 | WARN_DIALOG(wxT("The Firmware position is not valid"), | ||
104 | wxT("Select a original Firmware")); | ||
105 | gv->curfirmware = wxT(""); | ||
106 | return false; | ||
107 | } | ||
108 | } | ||
109 | |||
110 | return true; | ||
111 | |||
112 | } | ||
113 | |||
114 | // tranver data to the controls | ||
115 | bool bootloaderInstallDlg::TransferDataToWindow() | ||
116 | { | ||
117 | if(gv->curplat == wxT("")) | ||
118 | { | ||
119 | WARN_DIALOG(wxT("You have not selected a audio device"), | ||
120 | wxT("Select a Device")); | ||
121 | return false; | ||
122 | } | ||
123 | int index = gv->plat_id.Index(gv->curplat); | ||
124 | |||
125 | if(!gv->plat_needsbootloader[index]) | ||
126 | { | ||
127 | WARN_DIALOG(wxT("This Device doesnt need a Bootloader"), | ||
128 | wxT("Bootloader")); | ||
129 | return false; | ||
130 | } | ||
131 | |||
132 | if(gv->plat_bootloadermethod[index] != wxT("ipodpatcher") && gv->plat_bootloadermethod[index] != wxT("sansapatcher")) | ||
133 | { | ||
134 | m_devicepos->Show(true); | ||
135 | }else | ||
136 | { | ||
137 | m_devicepos->Show(false); | ||
138 | } | ||
139 | if(gv->plat_bootloadermethod[index] == wxT("fwpatcher")) | ||
140 | { | ||
141 | m_firmwarepos->Show(true); | ||
142 | }else | ||
143 | { | ||
144 | m_firmwarepos->Show(false); | ||
145 | } | ||
146 | |||
147 | m_devicepos->setDefault(); | ||
148 | m_firmwarepos->setDefault(); | ||
149 | return true; | ||
150 | } | ||
151 | //////////////////////////////////////////////// | ||
152 | //// Talk file creation | ||
153 | ///////////////////////////////////////////////// | ||
154 | |||
155 | |||
156 | IMPLEMENT_CLASS( talkInstallDlg, wxDialog ) | ||
157 | |||
158 | BEGIN_EVENT_TABLE( talkInstallDlg, wxDialog ) | ||
159 | EVT_BUTTON(ID_BROWSE_ENC_BTN, talkInstallDlg::OnBrowseEncBtn) | ||
160 | EVT_BUTTON(ID_BROWSE_TTS_BTN, talkInstallDlg::OnBrowseTtsBtn) | ||
161 | END_EVENT_TABLE() | ||
162 | |||
163 | talkInstallDlg::talkInstallDlg(TalkFileCreator* talkcreator ) | ||
164 | { | ||
165 | m_talkCreator = talkcreator; | ||
166 | Init(); | ||
167 | } | ||
168 | |||
169 | talkInstallDlg::talkInstallDlg(TalkFileCreator* talkcreator, wxWindow* parent, | ||
170 | wxWindowID id, const wxString& caption, | ||
171 | const wxPoint& pos, const wxSize& size, long style ) | ||
172 | { | ||
173 | m_talkCreator = talkcreator; | ||
174 | Init(); | ||
175 | Create(parent, id, caption, pos, size, style); | ||
176 | } | ||
177 | |||
178 | void talkInstallDlg::CreateControls() | ||
179 | { | ||
180 | // A top-level sizer | ||
181 | wxBoxSizer* topSizer = new wxBoxSizer(wxVERTICAL); | ||
182 | this->SetSizer(topSizer); | ||
183 | |||
184 | wxBoxSizer* wxBoxSizer2 = new wxBoxSizer(wxHORIZONTAL); | ||
185 | topSizer->Add(wxBoxSizer2, 0, wxALIGN_LEFT|wxALL, 5); | ||
186 | |||
187 | // bitmap | ||
188 | wxBitmap sidebmp(wizard_xpm); | ||
189 | |||
190 | ImageCtrl* sideimage = new ImageCtrl(this,wxID_ANY); | ||
191 | sideimage->SetBitmap(sidebmp); | ||
192 | wxBoxSizer2->Add(sideimage,0,wxALIGN_LEFT | wxALL,5); | ||
193 | |||
194 | wxBoxSizer* wxBoxSizer3 = new wxBoxSizer(wxVERTICAL); | ||
195 | wxBoxSizer2->Add(wxBoxSizer3, 0, wxALIGN_LEFT|wxALL, 5); | ||
196 | |||
197 | // Device position | ||
198 | m_devicepos = new DevicePositionCtrl(this,ID_DEVICEPOS); | ||
199 | wxBoxSizer3->Add(m_devicepos, 0, wxALIGN_LEFT|wxALL, 5); | ||
200 | |||
201 | // Encoder | ||
202 | wxStaticBox* WxStaticBoxSizer2_StaticBoxObj = new wxStaticBox(this, | ||
203 | wxID_ANY, wxT("Encoder")); | ||
204 | wxStaticBoxSizer* WxStaticBoxSizer2 = | ||
205 | new wxStaticBoxSizer(WxStaticBoxSizer2_StaticBoxObj,wxVERTICAL); | ||
206 | wxBoxSizer3->Add(WxStaticBoxSizer2,0,wxALIGN_CENTER_HORIZONTAL|wxGROW | wxALL, 5); | ||
207 | |||
208 | m_Enc = new wxComboBox(this,ID_ENC_CBX,wxT("lame"), | ||
209 | wxDefaultPosition,wxDefaultSize,m_talkCreator->getSupportedEnc(),wxCB_READONLY); | ||
210 | m_Enc->SetToolTip(wxT("Select your Encoder.")); | ||
211 | m_Enc->SetHelpText(wxT("Select your Encoder.")); | ||
212 | WxStaticBoxSizer2->Add(m_Enc,0,wxALIGN_CENTER_HORIZONTAL|wxGROW | wxALL, 5); | ||
213 | |||
214 | wxStaticText* enc_desc = new wxStaticText( this, wxID_STATIC, | ||
215 | wxT("Select the Encoder executable"), wxDefaultPosition, | ||
216 | wxDefaultSize, 0 ); | ||
217 | WxStaticBoxSizer2->Add(enc_desc, 0, wxALIGN_LEFT|wxALL, 5); | ||
218 | |||
219 | wxBoxSizer* horizontalSizer = new wxBoxSizer(wxHORIZONTAL); | ||
220 | WxStaticBoxSizer2->Add(horizontalSizer, 0, wxGROW|wxALL, 5); | ||
221 | |||
222 | m_EncExe = new wxTextCtrl(this,wxID_ANY,gv->pathToEnc); | ||
223 | m_EncExe->SetToolTip(wxT("Type the folder where your Encoder exe is")); | ||
224 | m_EncExe->SetHelpText(wxT("Type the folder where your Encoder exe is")); | ||
225 | horizontalSizer->Add(m_EncExe,0,wxGROW | wxALL,5); | ||
226 | |||
227 | m_browseEncBtn = new wxButton(this, ID_BROWSE_ENC_BTN, wxT("Browse"), | ||
228 | wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, | ||
229 | wxT("BrowseEncBtn")); | ||
230 | m_browseEncBtn->SetToolTip(wxT("Browse for your Encoder Exe")); | ||
231 | m_browseEncBtn->SetHelpText(wxT("Browse for your Encoder exe")); | ||
232 | horizontalSizer->Add(m_browseEncBtn,0,wxGROW | wxALL,5); | ||
233 | |||
234 | wxStaticText* enc_desc_opt = new wxStaticText( this, wxID_STATIC, | ||
235 | wxT("Encoder Options"), wxDefaultPosition, | ||
236 | wxDefaultSize, 0 ); | ||
237 | WxStaticBoxSizer2->Add(enc_desc_opt, 0, wxALIGN_LEFT|wxALL, 5); | ||
238 | |||
239 | m_EncOpts = new wxTextCtrl(this,wxID_ANY,m_talkCreator->getEncOpts(wxT("lame"))); | ||
240 | m_EncOpts->SetToolTip(wxT("Encoder Options")); | ||
241 | m_EncOpts->SetHelpText(wxT("Encoder Options")); | ||
242 | WxStaticBoxSizer2->Add(m_EncOpts, 0, wxALIGN_LEFT|wxALL, 5); | ||
243 | |||
244 | // TTS | ||
245 | wxStaticBox* WxStaticBoxSizer3_StaticBoxObj = new wxStaticBox(this, | ||
246 | wxID_ANY, wxT("Text to Speach")); | ||
247 | wxStaticBoxSizer* WxStaticBoxSizer3 = | ||
248 | new wxStaticBoxSizer(WxStaticBoxSizer3_StaticBoxObj,wxVERTICAL); | ||
249 | wxBoxSizer3->Add(WxStaticBoxSizer3,0,wxALIGN_CENTER_HORIZONTAL|wxGROW | wxALL, 5); | ||
250 | |||
251 | m_Tts = new wxComboBox(this,ID_TTS_CBX,wxT("espeak"), | ||
252 | wxDefaultPosition,wxDefaultSize,m_talkCreator->getSupportedTTS(),wxCB_READONLY); | ||
253 | m_Tts->SetToolTip(wxT("Select your TTS.")); | ||
254 | m_Tts->SetHelpText(wxT("Select your TTS.")); | ||
255 | WxStaticBoxSizer3->Add(m_Tts,0,wxALIGN_CENTER_HORIZONTAL|wxGROW | wxALL, 5); | ||
256 | |||
257 | wxStaticText* tts_desc = new wxStaticText( this, wxID_STATIC, | ||
258 | wxT("Select the TTS executable"), wxDefaultPosition, | ||
259 | wxDefaultSize, 0 ); | ||
260 | WxStaticBoxSizer3->Add(tts_desc, 0, wxALIGN_LEFT|wxALL, 5); | ||
261 | |||
262 | wxBoxSizer* horizontalSizer2 = new wxBoxSizer(wxHORIZONTAL); | ||
263 | WxStaticBoxSizer3->Add(horizontalSizer2, 0, wxGROW|wxALL, 5); | ||
264 | |||
265 | m_TtsExe = new wxTextCtrl(this,wxID_ANY,gv->pathToTts); | ||
266 | m_TtsExe->SetToolTip(wxT("Type the folder where your TTS exe is")); | ||
267 | m_TtsExe->SetHelpText(wxT("Type the folder where your TTS exe is")); | ||
268 | horizontalSizer2->Add(m_TtsExe,0,wxGROW | wxALL,5); | ||
269 | |||
270 | m_browseTtsBtn = new wxButton(this, ID_BROWSE_TTS_BTN, wxT("Browse"), | ||
271 | wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, | ||
272 | wxT("BrowseEncBtn")); | ||
273 | m_browseTtsBtn->SetToolTip(wxT("Browse for your Encoder Exe")); | ||
274 | m_browseTtsBtn->SetHelpText(wxT("Browse for your Encoder exe")); | ||
275 | horizontalSizer2->Add(m_browseTtsBtn,0,wxGROW | wxALL,5); | ||
276 | |||
277 | wxStaticText* tts_desc_opt = new wxStaticText( this, wxID_STATIC, | ||
278 | wxT("TTS Options"), wxDefaultPosition, | ||
279 | wxDefaultSize, 0 ); | ||
280 | WxStaticBoxSizer3->Add(tts_desc_opt, 0, wxALIGN_LEFT|wxALL, 5); | ||
281 | |||
282 | m_TtsOpts = new wxTextCtrl(this,wxID_ANY,m_talkCreator->getTTsOpts(wxT("espeak"))); | ||
283 | m_TtsOpts->SetToolTip(wxT("TTS Options")); | ||
284 | m_TtsOpts->SetHelpText(wxT("TTS Options")); | ||
285 | WxStaticBoxSizer3->Add(m_TtsOpts, 0, wxALIGN_LEFT|wxALL, 5); | ||
286 | |||
287 | m_OverwriteWave = new wxCheckBox(this,wxID_ANY,wxT("Overwrite Wav")); | ||
288 | m_OverwriteWave->SetToolTip(wxT("Overwrite Wavefiles")); | ||
289 | m_OverwriteWave->SetHelpText(wxT("Overwrite Wavefiles")); | ||
290 | wxBoxSizer3->Add(m_OverwriteWave,0,wxALIGN_CENTER_HORIZONTAL|wxGROW | wxALL, 5); | ||
291 | |||
292 | m_OverwriteTalk = new wxCheckBox(this,wxID_ANY,wxT("Overwrite Talk")); | ||
293 | m_OverwriteTalk->SetToolTip(wxT("Overwrite Talkfiles")); | ||
294 | m_OverwriteTalk->SetHelpText(wxT("Overwrite Talkfiles")); | ||
295 | wxBoxSizer3->Add(m_OverwriteTalk,0,wxALIGN_CENTER_HORIZONTAL|wxGROW | wxALL, 5); | ||
296 | |||
297 | m_RemoveWave = new wxCheckBox(this,wxID_ANY,wxT("Remove Wav")); | ||
298 | m_RemoveWave->SetToolTip(wxT("Remove Wavfiles")); | ||
299 | m_RemoveWave->SetHelpText(wxT("Remove Wavfiles")); | ||
300 | wxBoxSizer3->Add(m_RemoveWave,0,wxALIGN_CENTER_HORIZONTAL|wxGROW | wxALL, 5); | ||
301 | |||
302 | m_Recursive = new wxCheckBox(this,wxID_ANY,wxT("Recursive")); | ||
303 | m_Recursive->SetToolTip(wxT("Recursive")); | ||
304 | m_Recursive->SetHelpText(wxT("Recursive")); | ||
305 | wxBoxSizer3->Add(m_Recursive,0,wxALIGN_CENTER_HORIZONTAL|wxGROW | wxALL, 5); | ||
306 | |||
307 | m_StripExtensions = new wxCheckBox(this,wxID_ANY,wxT("Strip Extensions")); | ||
308 | m_StripExtensions->SetToolTip(wxT("Strip Extensions")); | ||
309 | m_StripExtensions->SetHelpText(wxT("Strip Extensions")); | ||
310 | wxBoxSizer3->Add(m_StripExtensions,0,wxALIGN_CENTER_HORIZONTAL|wxGROW | wxALL, 5); | ||
311 | |||
312 | OkCancelCtrl* okCancel = new OkCancelCtrl(this,wxID_ANY); | ||
313 | topSizer->Add(okCancel, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5); | ||
314 | |||
315 | // controls at the bottom | ||
316 | wxBoxSizer* wxBoxSizer7 = new wxBoxSizer(wxVERTICAL); | ||
317 | topSizer->Add(wxBoxSizer7, 0, wxGROW | wxALL, 5); | ||
318 | |||
319 | } | ||
320 | |||
321 | //init the local variables | ||
322 | void talkInstallDlg::Init() | ||
323 | { | ||
324 | |||
325 | } | ||
326 | |||
327 | // create the window | ||
328 | bool talkInstallDlg::Create( wxWindow* parent, | ||
329 | wxWindowID id, const wxString& caption, | ||
330 | const wxPoint& pos, const wxSize& size, long style ) | ||
331 | { | ||
332 | |||
333 | if (!wxDialog::Create( parent, id, caption, pos, size, style )) | ||
334 | return false; | ||
335 | CreateControls(); | ||
336 | GetSizer()->Fit(this); | ||
337 | GetSizer()->SetSizeHints(this); | ||
338 | Centre(); | ||
339 | return true; | ||
340 | } | ||
341 | |||
342 | void talkInstallDlg::OnBrowseEncBtn(wxCommandEvent& event) | ||
343 | { | ||
344 | const wxString& temp = wxFileSelector( | ||
345 | wxT("Please select the location of your encoder"), wxT(""), | ||
346 | wxT(""),wxT(""),wxT("*.*"),0, this); | ||
347 | |||
348 | if (!temp.empty()) | ||
349 | { | ||
350 | m_EncExe->SetValue(temp); | ||
351 | } | ||
352 | } | ||
353 | |||
354 | void talkInstallDlg::OnBrowseTtsBtn(wxCommandEvent& event) | ||
355 | { | ||
356 | const wxString& temp = wxFileSelector( | ||
357 | wxT("Please select the location of your TTS engine"), wxT(""), | ||
358 | wxT(""),wxT(""),wxT("*.*"),0, this); | ||
359 | |||
360 | |||
361 | if (!temp.empty()) | ||
362 | { | ||
363 | m_TtsExe->SetValue(temp); | ||
364 | } | ||
365 | } | ||
366 | |||
367 | // tranver data from the controls | ||
368 | bool talkInstallDlg::TransferDataFromWindow() | ||
369 | { | ||
370 | gv->curdestdir = m_devicepos->getDevicePos(); | ||
371 | if(!wxDirExists(gv->curdestdir)) | ||
372 | { | ||
373 | WARN_DIALOG(wxT("The Devicepostion is not valid"), | ||
374 | wxT("Select a Deviceposition")); | ||
375 | gv->curdestdir = wxT(""); | ||
376 | return false; | ||
377 | } | ||
378 | m_talkCreator->setDir(gv->curdestdir); | ||
379 | |||
380 | gv->pathToEnc = m_EncExe->GetValue(); | ||
381 | if(!wxFileExists(gv->pathToEnc)) | ||
382 | { | ||
383 | WARN_DIALOG(wxT("The Encoder exe is not valid"), | ||
384 | wxT("Select an Encoder")); | ||
385 | gv->pathToEnc = wxT(""); | ||
386 | return false; | ||
387 | } | ||
388 | m_talkCreator->setEncexe(gv->pathToEnc); | ||
389 | |||
390 | gv->pathToTts = m_TtsExe->GetValue(); | ||
391 | if(!wxFileExists(gv->pathToTts)) | ||
392 | { | ||
393 | WARN_DIALOG(wxT("The TTs exe is not valid"), | ||
394 | wxT("Select an TTS engine")); | ||
395 | gv->pathToTts = wxT(""); | ||
396 | return false; | ||
397 | } | ||
398 | m_talkCreator->setTTSexe(gv->pathToTts); | ||
399 | |||
400 | m_talkCreator->setTTsType(m_Tts->GetValue()); | ||
401 | m_talkCreator->setEncType(m_Enc->GetValue()); | ||
402 | |||
403 | |||
404 | m_talkCreator->setOverwriteTalk(m_OverwriteWave->IsChecked()); | ||
405 | m_talkCreator->setOverwriteWav(m_OverwriteTalk->IsChecked()); | ||
406 | m_talkCreator->setRemoveWav(m_RemoveWave->IsChecked()); | ||
407 | m_talkCreator->setRecursive(m_Recursive->IsChecked()); | ||
408 | m_talkCreator->setStripExtensions(m_StripExtensions->IsChecked()); | ||
409 | |||
410 | m_talkCreator->setEncOpts(m_EncOpts->GetValue()); | ||
411 | m_talkCreator->setTTsOpts(m_TtsOpts->GetValue()); | ||
412 | |||
413 | return true; | ||
414 | } | ||
415 | |||
416 | // tranver data to the controls | ||
417 | bool talkInstallDlg::TransferDataToWindow() | ||
418 | { | ||
419 | m_devicepos->setDefault(); | ||
420 | |||
421 | m_OverwriteWave->SetValue(true); | ||
422 | m_OverwriteTalk->SetValue(true); | ||
423 | m_RemoveWave->SetValue(true); | ||
424 | m_Recursive->SetValue(true); | ||
425 | m_StripExtensions->SetValue(false); | ||
426 | |||
427 | |||
428 | |||
429 | return true; | ||
430 | } | ||
431 | |||
432 | //////////////////////////////////////////////// | ||
433 | //// Font Installation | ||
434 | ///////////////////////////////////////////////// | ||
435 | |||
436 | |||
437 | IMPLEMENT_CLASS( fontInstallDlg, wxDialog ) | ||
438 | |||
439 | BEGIN_EVENT_TABLE( fontInstallDlg, wxDialog ) | ||
440 | |||
441 | END_EVENT_TABLE() | ||
442 | |||
443 | fontInstallDlg::fontInstallDlg( ) | ||
444 | { | ||
445 | Init(); | ||
446 | } | ||
447 | |||
448 | fontInstallDlg::fontInstallDlg( wxWindow* parent, | ||
449 | wxWindowID id, const wxString& caption, | ||
450 | const wxPoint& pos, const wxSize& size, long style ) | ||
451 | { | ||
452 | Init(); | ||
453 | Create(parent, id, caption, pos, size, style); | ||
454 | } | ||
455 | |||
456 | void fontInstallDlg::CreateControls() | ||
457 | { | ||
458 | // A top-level sizer | ||
459 | wxBoxSizer* topSizer = new wxBoxSizer(wxVERTICAL); | ||
460 | this->SetSizer(topSizer); | ||
461 | |||
462 | wxBoxSizer* wxBoxSizer2 = new wxBoxSizer(wxHORIZONTAL); | ||
463 | topSizer->Add(wxBoxSizer2, 0, wxALIGN_LEFT|wxALL, 5); | ||
464 | |||
465 | // bitmap | ||
466 | wxBitmap sidebmp(wizard_xpm); | ||
467 | |||
468 | ImageCtrl* sideimage = new ImageCtrl(this,wxID_ANY); | ||
469 | sideimage->SetBitmap(sidebmp); | ||
470 | wxBoxSizer2->Add(sideimage,0,wxALIGN_LEFT | wxALL,5); | ||
471 | |||
472 | wxBoxSizer* wxBoxSizer3 = new wxBoxSizer(wxVERTICAL); | ||
473 | wxBoxSizer2->Add(wxBoxSizer3, 0, wxALIGN_LEFT|wxALL, 5); | ||
474 | |||
475 | m_devicepos = new DevicePositionCtrl(this,ID_DEVICEPOS); | ||
476 | wxBoxSizer3->Add(m_devicepos, 0, wxALIGN_LEFT|wxALL, 5); | ||
477 | |||
478 | |||
479 | OkCancelCtrl* okCancel = new OkCancelCtrl(this,wxID_ANY); | ||
480 | topSizer->Add(okCancel, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5); | ||
481 | |||
482 | // controls at the bottom | ||
483 | wxBoxSizer* wxBoxSizer7 = new wxBoxSizer(wxVERTICAL); | ||
484 | topSizer->Add(wxBoxSizer7, 0, wxGROW | wxALL, 5); | ||
485 | |||
486 | } | ||
487 | |||
488 | //init the local variables | ||
489 | void fontInstallDlg::Init() | ||
490 | { | ||
491 | |||
492 | } | ||
493 | |||
494 | // create the window | ||
495 | bool fontInstallDlg::Create( wxWindow* parent, | ||
496 | wxWindowID id, const wxString& caption, | ||
497 | const wxPoint& pos, const wxSize& size, long style ) | ||
498 | { | ||
499 | |||
500 | if (!wxDialog::Create( parent, id, caption, pos, size, style )) | ||
501 | return false; | ||
502 | CreateControls(); | ||
503 | GetSizer()->Fit(this); | ||
504 | GetSizer()->SetSizeHints(this); | ||
505 | Centre(); | ||
506 | return true; | ||
507 | } | ||
508 | |||
509 | |||
510 | // tranver data from the controls | ||
511 | bool fontInstallDlg::TransferDataFromWindow() | ||
512 | { | ||
513 | gv->curdestdir = m_devicepos->getDevicePos(); | ||
514 | if(!wxDirExists(gv->curdestdir)) | ||
515 | { | ||
516 | WARN_DIALOG(wxT("The Devicepostion is not valid"), | ||
517 | wxT("Select a Deviceposition")); | ||
518 | gv->curdestdir = wxT(""); | ||
519 | return false; | ||
520 | } | ||
521 | |||
522 | return true; | ||
523 | } | ||
524 | |||
525 | // tranver data to the controls | ||
526 | bool fontInstallDlg::TransferDataToWindow() | ||
527 | { | ||
528 | m_devicepos->setDefault(); | ||
529 | return true; | ||
530 | } | ||
531 | |||
532 | //////////////////////////////////////////////// | ||
533 | //// Rockbox DeInstallation | ||
534 | ///////////////////////////////////////////////// | ||
535 | |||
536 | IMPLEMENT_CLASS( rockboxDeInstallDlg, wxDialog ) | ||
537 | |||
538 | BEGIN_EVENT_TABLE( rockboxDeInstallDlg, wxDialog ) | ||
539 | |||
540 | END_EVENT_TABLE() | ||
541 | |||
542 | rockboxDeInstallDlg::rockboxDeInstallDlg( ) | ||
543 | { | ||
544 | Init(); | ||
545 | } | ||
546 | |||
547 | rockboxDeInstallDlg::rockboxDeInstallDlg( wxWindow* parent, | ||
548 | wxWindowID id, const wxString& caption, | ||
549 | const wxPoint& pos, const wxSize& size, long style ) | ||
550 | { | ||
551 | Init(); | ||
552 | Create(parent, id, caption, pos, size, style); | ||
553 | } | ||
554 | |||
555 | void rockboxDeInstallDlg::CreateControls() | ||
556 | { | ||
557 | // A top-level sizer | ||
558 | wxBoxSizer* topSizer = new wxBoxSizer(wxVERTICAL); | ||
559 | this->SetSizer(topSizer); | ||
560 | |||
561 | wxBoxSizer* wxBoxSizer2 = new wxBoxSizer(wxHORIZONTAL); | ||
562 | topSizer->Add(wxBoxSizer2, 0, wxALIGN_LEFT|wxALL, 5); | ||
563 | |||
564 | // bitmap | ||
565 | wxBitmap sidebmp(wizard_xpm); | ||
566 | |||
567 | ImageCtrl* sideimage = new ImageCtrl(this,wxID_ANY); | ||
568 | sideimage->SetBitmap(sidebmp); | ||
569 | wxBoxSizer2->Add(sideimage,0,wxALIGN_LEFT | wxALL,5); | ||
570 | |||
571 | wxBoxSizer* wxBoxSizer3 = new wxBoxSizer(wxVERTICAL); | ||
572 | wxBoxSizer2->Add(wxBoxSizer3, 0, wxALIGN_LEFT|wxALL, 5); | ||
573 | |||
574 | m_devicepos = new DevicePositionCtrl(this,ID_DEVICEPOS); | ||
575 | wxBoxSizer3->Add(m_devicepos, 0, wxALIGN_LEFT|wxALL, 5); | ||
576 | |||
577 | // Full deinstallation ? | ||
578 | wxStaticText* WxStaticText1 = new wxStaticText(this, wxID_ANY, | ||
579 | wxT("Rockbox Utility normally uninstalls Rockbox using an uninstall\n" | ||
580 | "file created during installation. This means that when Rockbox is\n" | ||
581 | "uninstalled all your configuration files are preserved. However,\n" | ||
582 | "you can also perform a full uninstall, which will completely\n" | ||
583 | "remove all traces of Rockbox from your system, and can be used\n" | ||
584 | "even if Rockbox was previously installed manually.")); | ||
585 | wxBoxSizer3->Add(WxStaticText1,0,wxGROW | wxALL,5); | ||
586 | |||
587 | wxCheckBox* FullCheckBox = new wxCheckBox(this, ID_FULL_CHCKBX, | ||
588 | wxT("Perform a full uninstall")); | ||
589 | wxBoxSizer3->Add(FullCheckBox, 0, wxALL, 5); | ||
590 | |||
591 | // controls at the bottom | ||
592 | OkCancelCtrl* okCancel = new OkCancelCtrl(this,wxID_ANY); | ||
593 | topSizer->Add(okCancel, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5); | ||
594 | |||
595 | } | ||
596 | |||
597 | //init the local variables | ||
598 | void rockboxDeInstallDlg::Init() | ||
599 | { | ||
600 | |||
601 | } | ||
602 | |||
603 | // create the window | ||
604 | bool rockboxDeInstallDlg::Create( wxWindow* parent, | ||
605 | wxWindowID id, const wxString& caption, | ||
606 | const wxPoint& pos, const wxSize& size, long style ) | ||
607 | { | ||
608 | if (!wxDialog::Create( parent, id, caption, pos, size, style )) | ||
609 | return false; | ||
610 | CreateControls(); | ||
611 | GetSizer()->Fit(this); | ||
612 | GetSizer()->SetSizeHints(this); | ||
613 | Centre(); | ||
614 | return true; | ||
615 | } | ||
616 | |||
617 | |||
618 | // tranver data from the controls | ||
619 | bool rockboxDeInstallDlg::TransferDataFromWindow() | ||
620 | { | ||
621 | |||
622 | gv->curdestdir = m_devicepos->getDevicePos(); | ||
623 | if(!wxDirExists(gv->curdestdir)) | ||
624 | { | ||
625 | WARN_DIALOG(wxT("The Devicepostion is not valid"), | ||
626 | wxT("Select a Deviceposition")); | ||
627 | gv->curdestdir = wxT(""); | ||
628 | return false; | ||
629 | } | ||
630 | |||
631 | wxCheckBox* fullchkbx = (wxCheckBox*) FindWindow(ID_FULL_CHCKBX); | ||
632 | gv->curisfull = fullchkbx->IsChecked(); | ||
633 | |||
634 | return true; | ||
635 | } | ||
636 | |||
637 | // tranver data to the controls | ||
638 | bool rockboxDeInstallDlg::TransferDataToWindow() | ||
639 | { | ||
640 | m_devicepos->setDefault(); | ||
641 | return true; | ||
642 | } | ||
643 | |||
644 | //////////////////////////////////////////////// | ||
645 | //// Themes Installation | ||
646 | ///////////////////////////////////////////////// | ||
647 | |||
648 | IMPLEMENT_CLASS( themesInstallDlg, wxDialog ) | ||
649 | |||
650 | BEGIN_EVENT_TABLE( themesInstallDlg, wxDialog ) | ||
651 | |||
652 | END_EVENT_TABLE() | ||
653 | |||
654 | themesInstallDlg::themesInstallDlg( ) | ||
655 | { | ||
656 | |||
657 | } | ||
658 | |||
659 | themesInstallDlg::themesInstallDlg( wxWindow* parent, | ||
660 | wxWindowID id, const wxString& caption, | ||
661 | const wxPoint& pos, const wxSize& size, long style ) | ||
662 | { | ||
663 | Create(parent, id, caption, pos, size, style); | ||
664 | } | ||
665 | |||
666 | void themesInstallDlg::CreateControls() | ||
667 | { | ||
668 | // A top-level sizer | ||
669 | wxBoxSizer* topSizer = new wxBoxSizer(wxVERTICAL); | ||
670 | this->SetSizer(topSizer); | ||
671 | |||
672 | wxBoxSizer* topHoriSizer = new wxBoxSizer(wxHORIZONTAL); | ||
673 | topSizer->Add(topHoriSizer, 0, wxALIGN_LEFT|wxALL, 5); | ||
674 | |||
675 | // bitmap | ||
676 | wxBitmap sidebmp(wizard_xpm); | ||
677 | |||
678 | ImageCtrl* sideimage = new ImageCtrl(this,wxID_ANY); | ||
679 | sideimage->SetBitmap(sidebmp); | ||
680 | topHoriSizer->Add(sideimage,0,wxALIGN_LEFT | wxALL,5); | ||
681 | |||
682 | wxBoxSizer* mainVertiSizer = new wxBoxSizer(wxVERTICAL); | ||
683 | topHoriSizer->Add(mainVertiSizer, 0, wxGROW|wxALL, 5); | ||
684 | |||
685 | wxBoxSizer* wxBoxSizer4 = new wxBoxSizer(wxHORIZONTAL); | ||
686 | mainVertiSizer->Add(wxBoxSizer4, 0, wxGROW|wxALL, 0); | ||
687 | |||
688 | wxBoxSizer* wxBoxSizer5 = new wxBoxSizer(wxVERTICAL); | ||
689 | wxBoxSizer4->Add(wxBoxSizer5, 0, wxGROW|wxALL, 0); | ||
690 | |||
691 | m_devicepos = new DevicePositionCtrl(this,ID_DEVICEPOS); | ||
692 | wxBoxSizer5->Add(m_devicepos, 0, wxALIGN_LEFT|wxALL, 5); | ||
693 | |||
694 | m_theme = new ThemeCtrl(this,ID_THEME); | ||
695 | wxBoxSizer5->Add(m_theme, 0, wxALIGN_LEFT|wxALL, 5); | ||
696 | |||
697 | // controls at the bottom | ||
698 | OkCancelCtrl* okCancel = new OkCancelCtrl(this,wxID_ANY); | ||
699 | topSizer->Add(okCancel, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5); | ||
700 | |||
701 | |||
702 | } | ||
703 | |||
704 | |||
705 | // create the window | ||
706 | bool themesInstallDlg::Create( wxWindow* parent, | ||
707 | wxWindowID id, const wxString& caption, | ||
708 | const wxPoint& pos, const wxSize& size, long style ) | ||
709 | { | ||
710 | |||
711 | if (!wxDialog::Create( parent, id, caption, pos, size, style )) | ||
712 | return false; | ||
713 | CreateControls(); | ||
714 | GetSizer()->Fit(this); | ||
715 | GetSizer()->SetSizeHints(this); | ||
716 | Centre(); | ||
717 | return true; | ||
718 | } | ||
719 | |||
720 | |||
721 | // tranver data from the controls | ||
722 | bool themesInstallDlg::TransferDataFromWindow() | ||
723 | { | ||
724 | |||
725 | gv->curdestdir = m_devicepos->getDevicePos(); | ||
726 | if(!wxDirExists(gv->curdestdir)) | ||
727 | { | ||
728 | WARN_DIALOG(wxT("The Devicepostion is not valid"), | ||
729 | wxT("Select a Deviceposition")); | ||
730 | gv->curdestdir = wxT(""); | ||
731 | return false; | ||
732 | } | ||
733 | |||
734 | gv->themesToInstall.Clear(); | ||
735 | gv->themesToInstall = m_theme->getThemesToInstall(); | ||
736 | |||
737 | if(gv->themesToInstall.GetCount() == 0) | ||
738 | { | ||
739 | WARN_DIALOG(wxT("You have not selected a Theme to Install"), wxT("Select a Theme")); | ||
740 | return false; | ||
741 | } | ||
742 | |||
743 | return true; | ||
744 | } | ||
745 | |||
746 | // tranver data to the controls | ||
747 | bool themesInstallDlg::TransferDataToWindow() | ||
748 | { | ||
749 | if(gv->curplat == wxT("")) | ||
750 | { | ||
751 | WARN_DIALOG(wxT("You have not selected a audio device"), | ||
752 | wxT("Select a Device")); | ||
753 | return false; | ||
754 | } | ||
755 | |||
756 | m_devicepos->setDefault(); | ||
757 | m_theme->setDevice(gv->curplat); | ||
758 | return true; | ||
759 | } | ||
760 | //////////////////////////////////////////////// | ||
761 | //// Rockbox Installation | ||
762 | ///////////////////////////////////////////////// | ||
763 | |||
764 | IMPLEMENT_CLASS( rockboxInstallDlg, wxDialog ) | ||
765 | |||
766 | BEGIN_EVENT_TABLE( rockboxInstallDlg, wxDialog ) | ||
767 | EVT_RADIOBOX(ID_BUILD_BOX, rockboxInstallDlg::OnBuildBox) | ||
768 | END_EVENT_TABLE() | ||
769 | |||
770 | rockboxInstallDlg::rockboxInstallDlg( ) | ||
771 | { | ||
772 | } | ||
773 | |||
774 | rockboxInstallDlg::rockboxInstallDlg( wxWindow* parent, | ||
775 | wxWindowID id, const wxString& caption, | ||
776 | const wxPoint& pos, const wxSize& size, long style ) | ||
777 | { | ||
778 | Create(parent, id, caption, pos, size, style); | ||
779 | } | ||
780 | |||
781 | void rockboxInstallDlg::CreateControls() | ||
782 | { | ||
783 | // A top-level sizer | ||
784 | wxBoxSizer* topSizer = new wxBoxSizer(wxVERTICAL); | ||
785 | this->SetSizer(topSizer); | ||
786 | |||
787 | wxBoxSizer* wxBoxSizer2 = new wxBoxSizer(wxHORIZONTAL); | ||
788 | topSizer->Add(wxBoxSizer2, 0, wxALIGN_LEFT|wxALL, 5); | ||
789 | |||
790 | // bitmap | ||
791 | wxBitmap sidebmp(wizard_xpm); | ||
792 | |||
793 | ImageCtrl* sideimage = new ImageCtrl(this,wxID_ANY); | ||
794 | sideimage->SetBitmap(sidebmp); | ||
795 | wxBoxSizer2->Add(sideimage,0,wxALIGN_LEFT | wxALL,5); | ||
796 | |||
797 | wxBoxSizer* wxBoxSizer3 = new wxBoxSizer(wxVERTICAL); | ||
798 | wxBoxSizer2->Add(wxBoxSizer3, 0, wxALIGN_LEFT|wxALL, 5); | ||
799 | |||
800 | m_devicepos = new DevicePositionCtrl(this,ID_DEVICEPOS); | ||
801 | wxBoxSizer3->Add(m_devicepos, 0, wxALIGN_LEFT|wxALL, 5); | ||
802 | |||
803 | // Build information | ||
804 | wxStaticText* WxStaticText1 = new wxStaticText(this, wxID_ANY, | ||
805 | wxT("Please select the Rockbox version you would like " | ||
806 | "to install on your audio\ndevice:")); | ||
807 | wxBoxSizer3->Add(WxStaticText1,0,wxGROW | wxALL,5); | ||
808 | |||
809 | wxArrayString array; | ||
810 | array.Add(wxT("Rockbox stable version (") + gv->last_release + wxT(")")); | ||
811 | array.Add(wxT("Archived Build")); | ||
812 | array.Add(wxT("Current Build ")); | ||
813 | |||
814 | wxRadioBox* BuildRadioBox = new wxRadioBox(this, ID_BUILD_BOX, wxT("Version"), | ||
815 | wxDefaultPosition, wxDefaultSize, array, 0, wxRA_SPECIFY_ROWS); | ||
816 | wxBoxSizer3->Add(BuildRadioBox, 0, wxGROW | wxALL, 5); | ||
817 | |||
818 | wxStaticBox* WxStaticBox1 = new wxStaticBox(this, wxID_ANY, wxT("Details:")); | ||
819 | wxStaticBoxSizer* WxStaticBoxSizer2 = new wxStaticBoxSizer(WxStaticBox1, | ||
820 | wxVERTICAL); | ||
821 | wxStaticText* DetailText = new wxStaticText(this, ID_DETAIL_TXT, wxT("")); | ||
822 | wxBoxSizer3->Add(WxStaticBoxSizer2, 1, wxGROW | wxALL, 5); | ||
823 | WxStaticBoxSizer2->Add(DetailText, 1, wxGROW | wxALL, 5); | ||
824 | |||
825 | wxStaticText* WxStaticText2 = new wxStaticText(this, wxID_ANY, | ||
826 | wxT("Rockbox Utility stores copies of Rockbox it has downloaded on the\n" | ||
827 | "local hard disk to save network traffic. If your local copy is\n" | ||
828 | "no longer working, tick this box to download a fresh copy.") ); | ||
829 | wxBoxSizer3->Add(WxStaticText2, 0 , wxALL, 5); | ||
830 | |||
831 | wxCheckBox* NoCacheCheckBox = new wxCheckBox(this, ID_NOCACHE_CHCKBX, | ||
832 | wxT("Don't use locally cached copies of Rockbox") ); | ||
833 | wxBoxSizer3->Add(NoCacheCheckBox, 0, wxALL, 5); | ||
834 | // controls at the bottom | ||
835 | OkCancelCtrl* okCancel = new OkCancelCtrl(this,wxID_ANY); | ||
836 | topSizer->Add(okCancel, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5); | ||
837 | |||
838 | } | ||
839 | |||
840 | // create the window | ||
841 | bool rockboxInstallDlg::Create( wxWindow* parent, | ||
842 | wxWindowID id, const wxString& caption, | ||
843 | const wxPoint& pos, const wxSize& size, long style ) | ||
844 | { | ||
845 | |||
846 | if (!wxDialog::Create( parent, id, caption, pos, size, style )) | ||
847 | return false; | ||
848 | CreateControls(); | ||
849 | GetSizer()->Fit(this); | ||
850 | GetSizer()->SetSizeHints(this); | ||
851 | Centre(); | ||
852 | return true; | ||
853 | } | ||
854 | |||
855 | void rockboxInstallDlg::OnBuildBox(wxCommandEvent& event) | ||
856 | { | ||
857 | wxString str; | ||
858 | wxRadioBox* BuildRadioBox = (wxRadioBox*) FindWindow(ID_BUILD_BOX); | ||
859 | wxCheckBox* NoCacheCheckBox = (wxCheckBox*) FindWindow(ID_NOCACHE_CHCKBX); | ||
860 | wxStaticText* DetailText = (wxStaticText*)FindWindow(ID_DETAIL_TXT); | ||
861 | |||
862 | switch(BuildRadioBox->GetSelection() ) | ||
863 | { | ||
864 | case BUILD_RELEASE: | ||
865 | str = _("This is the last released version of Rockbox, and is the\n" | ||
866 | "recommended version to install."); | ||
867 | NoCacheCheckBox->Enable(); | ||
868 | break; | ||
869 | case BUILD_DAILY: | ||
870 | str = _("These are automatically built each day from the current\n" | ||
871 | "development source code. This generally has more features\n" | ||
872 | "than the last release but may be much less stable. Features\n" | ||
873 | "may change regularly."); | ||
874 | NoCacheCheckBox->Enable(); | ||
875 | break; | ||
876 | case BUILD_BLEEDING: | ||
877 | str = _("This is the absolute up to the minute Rockbox built after\n" | ||
878 | "the last change was made.\n\n" | ||
879 | "Note: This option will always download a fresh copy from the\n" | ||
880 | "web server.\n"); | ||
881 | NoCacheCheckBox->Enable(false); | ||
882 | break; | ||
883 | default: | ||
884 | break; | ||
885 | } | ||
886 | |||
887 | DetailText->SetLabel(str); | ||
888 | |||
889 | this->GetSizer()->Layout(); | ||
890 | this->GetSizer()->Fit(this); | ||
891 | this->GetSizer()->SetSizeHints(this); | ||
892 | Refresh(); | ||
893 | } | ||
894 | |||
895 | |||
896 | // tranver data from the controls | ||
897 | bool rockboxInstallDlg::TransferDataFromWindow() | ||
898 | { | ||
899 | wxRadioBox* BuildRadioBox = (wxRadioBox*) FindWindow(ID_BUILD_BOX); | ||
900 | wxCheckBox* NoCacheCheckBox = (wxCheckBox*) FindWindow(ID_NOCACHE_CHCKBX); | ||
901 | |||
902 | gv->curdestdir = m_devicepos->getDevicePos(); | ||
903 | if(!wxDirExists(gv->curdestdir)) | ||
904 | { | ||
905 | WARN_DIALOG(wxT("The Devicepostion is not valid"), | ||
906 | wxT("Select a Deviceposition")); | ||
907 | gv->curdestdir = wxT(""); | ||
908 | return false; | ||
909 | } | ||
910 | |||
911 | gv->curbuild = BuildRadioBox->GetSelection(); | ||
912 | gv->nocache = (gv->curbuild == BUILD_BLEEDING) ? true : | ||
913 | NoCacheCheckBox->IsChecked(); | ||
914 | |||
915 | return true; | ||
916 | } | ||
917 | |||
918 | // tranver data to the controls | ||
919 | bool rockboxInstallDlg::TransferDataToWindow() | ||
920 | { | ||
921 | m_devicepos->setDefault(); | ||
922 | |||
923 | if(gv->curplat == wxT("")) | ||
924 | { | ||
925 | WARN_DIALOG(wxT("You have not selected a audio device"), | ||
926 | wxT("Select a Device")); | ||
927 | return false; | ||
928 | } | ||
929 | |||
930 | wxRadioBox* BuildRadioBox = (wxRadioBox*) FindWindow(ID_BUILD_BOX); | ||
931 | |||
932 | int index =gv->plat_id.Index(gv->curplat); | ||
933 | |||
934 | wxCommandEvent updateradiobox(wxEVT_COMMAND_RADIOBOX_SELECTED, | ||
935 | ID_BUILD_BOX); | ||
936 | |||
937 | if (gv->plat_released[index] ) | ||
938 | { | ||
939 | BuildRadioBox->Enable(BUILD_RELEASE, true); | ||
940 | BuildRadioBox->SetSelection(BUILD_RELEASE); | ||
941 | } else { | ||
942 | BuildRadioBox->Enable(BUILD_RELEASE, false); | ||
943 | BuildRadioBox->SetSelection(BUILD_BLEEDING); | ||
944 | |||
945 | } | ||
946 | wxPostEvent(this, updateradiobox); | ||
947 | return true; | ||
948 | } | ||
diff --git a/rbutil/install_dialogs.h b/rbutil/install_dialogs.h deleted file mode 100644 index 87c557a26f..0000000000 --- a/rbutil/install_dialogs.h +++ /dev/null | |||
@@ -1,261 +0,0 @@ | |||
1 | #ifndef INSTALL_DIALOGS_H_INCLUDED | ||
2 | #define INSTALL_DIALOGS_H_INCLUDED | ||
3 | |||
4 | #include "rbutil.h" | ||
5 | #include "talkfile.h" | ||
6 | |||
7 | #include "rbutilCtrls.h" | ||
8 | class bootloaderInstallDlg : public wxDialog | ||
9 | { | ||
10 | DECLARE_CLASS( bootloaderInstallDlg ) | ||
11 | DECLARE_EVENT_TABLE() | ||
12 | public: | ||
13 | enum { | ||
14 | ID_DEVICEPOS = 1002, | ||
15 | ID_FIRMWARE = 1003, | ||
16 | }; //End of Enum | ||
17 | public: | ||
18 | bootloaderInstallDlg( ); | ||
19 | bootloaderInstallDlg( wxWindow* parent, | ||
20 | wxWindowID id = wxID_ANY, | ||
21 | const wxString& caption = wxT("Bootloader Installation"), | ||
22 | const wxPoint& pos = wxDefaultPosition, | ||
23 | const wxSize& size = wxDefaultSize, | ||
24 | long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER ); | ||
25 | // Member initialization | ||
26 | void Init(); | ||
27 | //Creation | ||
28 | bool Create( wxWindow* parent, | ||
29 | wxWindowID id = wxID_ANY, | ||
30 | const wxString& caption = wxT("Bootloader Installation"), | ||
31 | const wxPoint& pos = wxDefaultPosition, | ||
32 | const wxSize& size = wxDefaultSize, | ||
33 | long style = wxDEFAULT_DIALOG_STYLE |wxRESIZE_BORDER ); | ||
34 | // Creates the controls and sizers | ||
35 | void CreateControls(); | ||
36 | |||
37 | bool TransferDataFromWindow(); | ||
38 | bool TransferDataToWindow(); | ||
39 | |||
40 | private: | ||
41 | |||
42 | DevicePositionCtrl* m_devicepos; | ||
43 | FirmwarePositionCtrl* m_firmwarepos; | ||
44 | |||
45 | |||
46 | }; | ||
47 | |||
48 | class talkInstallDlg : public wxDialog | ||
49 | { | ||
50 | DECLARE_CLASS( talkInstallDlg ) | ||
51 | DECLARE_EVENT_TABLE() | ||
52 | public: | ||
53 | enum { | ||
54 | ID_DEVICEPOS = 1002, | ||
55 | ID_BROWSE_ENC_BTN = 1003, | ||
56 | ID_BROWSE_TTS_BTN = 1004, | ||
57 | ID_TTS_CBX = 1005, | ||
58 | ID_ENC_CBX = 1006, | ||
59 | }; //End of Enum | ||
60 | public: | ||
61 | talkInstallDlg(TalkFileCreator* talkcreator); | ||
62 | talkInstallDlg(TalkFileCreator* talkcreator, wxWindow* parent, | ||
63 | wxWindowID id = wxID_ANY, | ||
64 | const wxString& caption = wxT("Talk file creation"), | ||
65 | const wxPoint& pos = wxDefaultPosition, | ||
66 | const wxSize& size = wxDefaultSize, | ||
67 | long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER ); | ||
68 | /// Member initialization | ||
69 | void Init(); | ||
70 | /// Creation | ||
71 | bool Create( wxWindow* parent, | ||
72 | wxWindowID id = wxID_ANY, | ||
73 | const wxString& caption = wxT("Talk file creation"), | ||
74 | const wxPoint& pos = wxDefaultPosition, | ||
75 | const wxSize& size = wxDefaultSize, | ||
76 | long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER ); | ||
77 | /// Creates the controls and sizers | ||
78 | void CreateControls(); | ||
79 | |||
80 | void OnBrowseEncBtn(wxCommandEvent& event); | ||
81 | void OnBrowseTtsBtn(wxCommandEvent& event); | ||
82 | |||
83 | bool TransferDataFromWindow(); | ||
84 | bool TransferDataToWindow(); | ||
85 | |||
86 | private: | ||
87 | TalkFileCreator* m_talkCreator; | ||
88 | |||
89 | DevicePositionCtrl* m_devicepos; | ||
90 | |||
91 | wxTextCtrl* m_EncExe; | ||
92 | wxButton* m_browseEncBtn; | ||
93 | wxTextCtrl* m_EncOpts; | ||
94 | wxComboBox* m_Enc; | ||
95 | |||
96 | wxTextCtrl* m_TtsExe; | ||
97 | wxButton* m_browseTtsBtn; | ||
98 | wxTextCtrl* m_TtsOpts; | ||
99 | wxComboBox* m_Tts; | ||
100 | |||
101 | |||
102 | wxCheckBox* m_OverwriteWave; | ||
103 | wxCheckBox* m_OverwriteTalk; | ||
104 | wxCheckBox* m_RemoveWave; | ||
105 | wxCheckBox* m_Recursive; | ||
106 | wxCheckBox* m_StripExtensions; | ||
107 | |||
108 | }; | ||
109 | |||
110 | |||
111 | class fontInstallDlg : public wxDialog | ||
112 | { | ||
113 | DECLARE_CLASS( fontInstallDlg ) | ||
114 | DECLARE_EVENT_TABLE() | ||
115 | public: | ||
116 | enum { | ||
117 | ID_DEVICEPOS = 1002, | ||
118 | }; //End of Enum | ||
119 | public: | ||
120 | fontInstallDlg( ); | ||
121 | fontInstallDlg( wxWindow* parent, | ||
122 | wxWindowID id = wxID_ANY, | ||
123 | const wxString& caption = wxT("Font Installation"), | ||
124 | const wxPoint& pos = wxDefaultPosition, | ||
125 | const wxSize& size = wxDefaultSize, | ||
126 | long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER ); | ||
127 | /// Member initialization | ||
128 | void Init(); | ||
129 | /// Creation | ||
130 | bool Create( wxWindow* parent, | ||
131 | wxWindowID id = wxID_ANY, | ||
132 | const wxString& caption = wxT("Font Installation"), | ||
133 | const wxPoint& pos = wxDefaultPosition, | ||
134 | const wxSize& size = wxDefaultSize, | ||
135 | long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER ); | ||
136 | /// Creates the controls and sizers | ||
137 | void CreateControls(); | ||
138 | |||
139 | bool TransferDataFromWindow(); | ||
140 | bool TransferDataToWindow(); | ||
141 | |||
142 | private: | ||
143 | DevicePositionCtrl* m_devicepos; | ||
144 | }; | ||
145 | |||
146 | |||
147 | class rockboxDeInstallDlg : public wxDialog | ||
148 | { | ||
149 | DECLARE_CLASS( rockboxDeInstallDlg ) | ||
150 | DECLARE_EVENT_TABLE() | ||
151 | public: | ||
152 | enum { | ||
153 | ID_DEVICEPOS = 1002, | ||
154 | ID_FULL_CHCKBX = 1003, | ||
155 | }; //End of Enum | ||
156 | public: | ||
157 | rockboxDeInstallDlg( ); | ||
158 | rockboxDeInstallDlg( wxWindow* parent, | ||
159 | wxWindowID id = wxID_ANY, | ||
160 | const wxString& caption = wxT("Rockbox Deinstallation"), | ||
161 | const wxPoint& pos = wxDefaultPosition, | ||
162 | const wxSize& size = wxDefaultSize, | ||
163 | long style =wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER ); | ||
164 | /// Member initialization | ||
165 | void Init(); | ||
166 | /// Creation | ||
167 | bool Create( wxWindow* parent, | ||
168 | wxWindowID id = wxID_ANY, | ||
169 | const wxString& caption = wxT("Rockbox Deinstallation"), | ||
170 | const wxPoint& pos = wxDefaultPosition, | ||
171 | const wxSize& size = wxDefaultSize, | ||
172 | long style =wxDEFAULT_DIALOG_STYLE |wxRESIZE_BORDER ); | ||
173 | /// Creates the controls and sizers | ||
174 | void CreateControls(); | ||
175 | |||
176 | bool TransferDataFromWindow(); | ||
177 | bool TransferDataToWindow(); | ||
178 | |||
179 | private: | ||
180 | DevicePositionCtrl* m_devicepos; | ||
181 | }; | ||
182 | |||
183 | class themesInstallDlg : public wxDialog | ||
184 | { | ||
185 | DECLARE_CLASS( themesInstallDlg ) | ||
186 | DECLARE_EVENT_TABLE() | ||
187 | public: | ||
188 | enum { | ||
189 | ID_DEVICE = 1001, | ||
190 | ID_DEVICEPOS = 1002, | ||
191 | ID_THEME = 1006, | ||
192 | }; //End of Enum | ||
193 | public: | ||
194 | themesInstallDlg( ); | ||
195 | themesInstallDlg( wxWindow* parent, | ||
196 | wxWindowID id = wxID_ANY, | ||
197 | const wxString& caption = wxT("Themes Installation"), | ||
198 | const wxPoint& pos = wxDefaultPosition, | ||
199 | const wxSize& size = wxDefaultSize, | ||
200 | long style = wxDEFAULT_DIALOG_STYLE |wxRESIZE_BORDER ); | ||
201 | // Creation | ||
202 | bool Create( wxWindow* parent, | ||
203 | wxWindowID id = wxID_ANY, | ||
204 | const wxString& caption = wxT("Themes Installation"), | ||
205 | const wxPoint& pos = wxDefaultPosition, | ||
206 | const wxSize& size = wxDefaultSize, | ||
207 | long style = wxDEFAULT_DIALOG_STYLE |wxRESIZE_BORDER ); | ||
208 | // Creates the controls and sizers | ||
209 | void CreateControls(); | ||
210 | |||
211 | bool TransferDataFromWindow(); | ||
212 | bool TransferDataToWindow(); | ||
213 | |||
214 | private: | ||
215 | wxString currentPreview; | ||
216 | DevicePositionCtrl* m_devicepos; | ||
217 | ThemeCtrl* m_theme; | ||
218 | |||
219 | }; | ||
220 | |||
221 | class rockboxInstallDlg : public wxDialog | ||
222 | { | ||
223 | DECLARE_CLASS( rockboxInstallDlg ) | ||
224 | DECLARE_EVENT_TABLE() | ||
225 | public: | ||
226 | enum { | ||
227 | ID_DEVICEPOS = 1002, | ||
228 | ID_BUILD_BOX = 1006, | ||
229 | ID_DEVICE_POS_CTRL = 1007, | ||
230 | ID_DETAIL_TXT = 1008, | ||
231 | ID_NOCACHE_CHCKBX =1009, | ||
232 | |||
233 | }; //End of Enum | ||
234 | public: | ||
235 | rockboxInstallDlg( ); | ||
236 | rockboxInstallDlg( wxWindow* parent, | ||
237 | wxWindowID id = wxID_ANY, | ||
238 | const wxString& caption = wxT("Rockbox Installation"), | ||
239 | const wxPoint& pos = wxDefaultPosition, | ||
240 | const wxSize& size = wxDefaultSize, | ||
241 | long style = wxDEFAULT_DIALOG_STYLE |wxRESIZE_BORDER ); | ||
242 | // Creation | ||
243 | bool Create( wxWindow* parent, | ||
244 | wxWindowID id = wxID_ANY, | ||
245 | const wxString& caption = wxT("Rockbox Installation"), | ||
246 | const wxPoint& pos = wxDefaultPosition, | ||
247 | const wxSize& size = wxDefaultSize, | ||
248 | long style = wxDEFAULT_DIALOG_STYLE |wxRESIZE_BORDER ); | ||
249 | // Creates the controls and sizers | ||
250 | void CreateControls(); | ||
251 | |||
252 | void OnBuildBox(wxCommandEvent& event); | ||
253 | |||
254 | bool TransferDataFromWindow(); | ||
255 | bool TransferDataToWindow(); | ||
256 | |||
257 | private: | ||
258 | DevicePositionCtrl* m_devicepos; | ||
259 | }; | ||
260 | |||
261 | #endif // INSTALL_DIALOGS_H_INCLUDED | ||
diff --git a/rbutil/installlog.cpp b/rbutil/installlog.cpp deleted file mode 100644 index 7f6fa999f6..0000000000 --- a/rbutil/installlog.cpp +++ /dev/null | |||
@@ -1,150 +0,0 @@ | |||
1 | /*************************************************************************** | ||
2 | * __________ __ ___. | ||
3 | * Open \______ \ ____ ____ | | _\_ |__ _______ ___ | ||
4 | * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / | ||
5 | * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | ||
6 | * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | ||
7 | * \/ \/ \/ \/ \/ | ||
8 | * Module: rbutil | ||
9 | * File: installlog.cpp | ||
10 | * | ||
11 | * Copyright (C) 2006 Christi Alice Scarborough | ||
12 | * | ||
13 | * All files in this archive are subject to the GNU General Public License. | ||
14 | * See the file COPYING in the source tree root for full license agreement. | ||
15 | * | ||
16 | * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY | ||
17 | * KIND, either express or implied. | ||
18 | * | ||
19 | ****************************************************************************/ | ||
20 | |||
21 | #include "installlog.h" | ||
22 | #include "rbutil.h" | ||
23 | |||
24 | InstallLog::InstallLog(wxString logname, bool CreateLog) | ||
25 | { | ||
26 | wxString buf; | ||
27 | dirtyflag = true; | ||
28 | |||
29 | if (! CreateLog && ! wxFileExists(logname) ) return; | ||
30 | |||
31 | logfile = new wxFileConfig(wxEmptyString, wxEmptyString, logname); | ||
32 | |||
33 | |||
34 | if (!logfile) | ||
35 | { | ||
36 | wxLogWarning(_("Failed to create install log file: ") + logname); | ||
37 | return; | ||
38 | } | ||
39 | |||
40 | logfile->SetPath(wxT("/InstallLog")); | ||
41 | if (logfile->Exists(wxT("Version")) && | ||
42 | logfile->Read(wxT("Version"), 0l) != LOGFILE_VERSION ) | ||
43 | { | ||
44 | wxLogWarning(_("Logfile version mismatch: ") + logname); | ||
45 | delete logfile; | ||
46 | return; | ||
47 | } | ||
48 | |||
49 | logfile->Write(wxT("Version"), LOGFILE_VERSION); | ||
50 | dirtyflag = false; | ||
51 | } | ||
52 | |||
53 | InstallLog::~InstallLog() | ||
54 | { | ||
55 | if (dirtyflag) return; | ||
56 | |||
57 | delete logfile; | ||
58 | } | ||
59 | |||
60 | unsigned int InstallLog::WriteFile(wxString filepath, bool isDir) | ||
61 | { | ||
62 | wxString key, buf; | ||
63 | long installcount = 0; | ||
64 | |||
65 | if (dirtyflag) return true; | ||
66 | |||
67 | filepath.Replace(PATH_SEP, wxT("/") ); | ||
68 | |||
69 | if (filepath.GetChar(0) == '/') | ||
70 | filepath = filepath.Right(filepath.Len() - 1); | ||
71 | |||
72 | logfile->SetPath(wxT("/FilePaths")); | ||
73 | installcount = logfile->Read(filepath, 0l); | ||
74 | |||
75 | if (isDir) | ||
76 | { | ||
77 | filepath.Append(wxT("/" DIRECTORY_KLUDGE) ); // Needed for empty dirs | ||
78 | } | ||
79 | |||
80 | logfile->Write(filepath, ++installcount); | ||
81 | |||
82 | return false; | ||
83 | } | ||
84 | |||
85 | unsigned int InstallLog::WriteFile(wxArrayString filepaths) | ||
86 | { | ||
87 | unsigned long i; | ||
88 | unsigned int finalrc = false; | ||
89 | wxString thisone; | ||
90 | |||
91 | if (dirtyflag) return true; | ||
92 | |||
93 | for (i = 0; i < filepaths.GetCount(); i++); | ||
94 | { | ||
95 | if ( WriteFile(filepaths[i]) ) | ||
96 | { | ||
97 | finalrc++; | ||
98 | } | ||
99 | } | ||
100 | |||
101 | return finalrc; | ||
102 | } | ||
103 | |||
104 | wxArrayString* InstallLog::GetInstalledFiles() | ||
105 | { | ||
106 | wxString curdir = wxT(""); | ||
107 | |||
108 | if (dirtyflag) return NULL; | ||
109 | workingAS.Clear(); | ||
110 | |||
111 | EnumerateCurDir(wxT("")); | ||
112 | |||
113 | wxArrayString* out = new wxArrayString(workingAS); | ||
114 | return out; | ||
115 | } | ||
116 | |||
117 | void InstallLog::EnumerateCurDir(wxString curdir) | ||
118 | { | ||
119 | bool contflag; | ||
120 | wxString curname, buf, buf2, pathcache; | ||
121 | long dummy; | ||
122 | |||
123 | buf = wxT("/FilePaths/") + curdir; | ||
124 | pathcache = logfile->GetPath(); | ||
125 | logfile->SetPath(buf); | ||
126 | |||
127 | contflag = logfile->GetFirstGroup(curname, dummy); | ||
128 | while (contflag) | ||
129 | { | ||
130 | buf = curdir + wxT("/") + curname; | ||
131 | buf2 = buf; buf2.Replace(wxT("/"), PATH_SEP); | ||
132 | workingAS.Add(buf2); | ||
133 | EnumerateCurDir(buf); | ||
134 | contflag = logfile->GetNextGroup(curname, dummy); | ||
135 | } | ||
136 | |||
137 | contflag = logfile->GetFirstEntry(curname, dummy); | ||
138 | while (contflag) | ||
139 | { | ||
140 | if (curname != wxT(DIRECTORY_KLUDGE) ) | ||
141 | { | ||
142 | buf = curdir + wxT("" PATH_SEP) + curname; | ||
143 | workingAS.Add(buf); | ||
144 | } | ||
145 | contflag = logfile->GetNextEntry(curname, dummy); | ||
146 | } | ||
147 | |||
148 | logfile->SetPath(pathcache); | ||
149 | } | ||
150 | |||
diff --git a/rbutil/installlog.h b/rbutil/installlog.h deleted file mode 100644 index cb85e08359..0000000000 --- a/rbutil/installlog.h +++ /dev/null | |||
@@ -1,61 +0,0 @@ | |||
1 | /*************************************************************************** | ||
2 | * __________ __ ___. | ||
3 | * Open \______ \ ____ ____ | | _\_ |__ _______ ___ | ||
4 | * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / | ||
5 | * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | ||
6 | * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | ||
7 | * \/ \/ \/ \/ \/ | ||
8 | * Module: rbutil | ||
9 | * File: installlog.h | ||
10 | * | ||
11 | * Copyright (C) 2006 Christi Alice Scarborough | ||
12 | * | ||
13 | * All files in this archive are subject to the GNU General Public License. | ||
14 | * See the file COPYING in the source tree root for full license agreement. | ||
15 | * | ||
16 | * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY | ||
17 | * KIND, either express or implied. | ||
18 | * | ||
19 | ****************************************************************************/ | ||
20 | |||
21 | |||
22 | #ifndef INSTALLLOG_H_INCLUDED | ||
23 | #define INSTALLLOG_H_INCLUDED | ||
24 | |||
25 | #include <wx/wxprec.h> | ||
26 | #ifdef __BORLANDC__ | ||
27 | #pragma hdrstop | ||
28 | #endif | ||
29 | #ifndef WX_PRECOMP | ||
30 | #include <wx/wx.h> | ||
31 | #endif | ||
32 | |||
33 | #include <wx/confbase.h> | ||
34 | #include <wx/fileconf.h> | ||
35 | |||
36 | #define LOGFILE_VERSION 1 | ||
37 | #define DIRECTORY_KLUDGE "_DIRECTORY_MARKER_RECORD_KLUDGE_" | ||
38 | class InstallLog | ||
39 | { | ||
40 | // Class variables | ||
41 | wxFileConfig* logfile; | ||
42 | |||
43 | // Methods | ||
44 | public: | ||
45 | InstallLog(wxString logname, bool CreateLog = true); | ||
46 | ~InstallLog(); | ||
47 | unsigned int WriteFile(wxString filepath, bool isDir = false); | ||
48 | unsigned int WriteFile(wxArrayString filepaths); | ||
49 | wxArrayString* GetInstalledFiles(); | ||
50 | |||
51 | private: | ||
52 | bool dirtyflag; | ||
53 | wxArrayString workingAS; | ||
54 | // long dummy; | ||
55 | |||
56 | private: | ||
57 | void EnumerateCurDir(wxString curdir); | ||
58 | }; // InstallLog | ||
59 | |||
60 | |||
61 | #endif // INSTALLLOG_H_INCLUDED | ||
diff --git a/rbutil/irivertools.cpp b/rbutil/irivertools.cpp deleted file mode 100755 index 9b7cd5a4f3..0000000000 --- a/rbutil/irivertools.cpp +++ /dev/null | |||
@@ -1,604 +0,0 @@ | |||
1 | /*************************************************************************** | ||
2 | * __________ __ ___. | ||
3 | * Open \______ \ ____ ____ | | _\_ |__ _______ ___ | ||
4 | * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / | ||
5 | * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | ||
6 | * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | ||
7 | * \/ \/ \/ \/ \/ | ||
8 | * Module: rbutil | ||
9 | * File: irivertools.cpp | ||
10 | * | ||
11 | * Copyright (C) 2007 Dominik Wenger | ||
12 | * | ||
13 | * All files in this archive are subject to the GNU General Public License. | ||
14 | * See the file COPYING in the source tree root for full license agreement. | ||
15 | * | ||
16 | * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY | ||
17 | * KIND, either express or implied. | ||
18 | * | ||
19 | ****************************************************************************/ | ||
20 | |||
21 | #include "irivertools.h" | ||
22 | |||
23 | |||
24 | const unsigned char munge[] = { | ||
25 | 0x7a, 0x36, 0xc4, 0x43, 0x49, 0x6b, 0x35, 0x4e, 0xa3, 0x46, 0x25, 0x84, | ||
26 | 0x4d, 0x73, 0x74, 0x61 | ||
27 | }; | ||
28 | |||
29 | const unsigned char header_modify[] = "* IHPFIRM-DECODED "; | ||
30 | |||
31 | const char * const models[] = { "iHP-100", "iHP-120/iHP-140", "H300 series", | ||
32 | NULL }; | ||
33 | |||
34 | /* aligns with models array; expected min firmware size */ | ||
35 | const unsigned int firmware_minsize[] = { 0x100000, 0x100000, 0x200000 }; | ||
36 | /* aligns with models array; expected max firmware size */ | ||
37 | const unsigned int firmware_maxsize[] = { 0x200000, 0x200000, 0x400000 }; | ||
38 | |||
39 | const unsigned char header[][16] = { | ||
40 | { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 }, | ||
41 | { 0x20, 0x03, 0x08, 0x27, 0x24, 0x00, 0x02, 0x30, 0x19, 0x17, 0x65, 0x73, | ||
42 | 0x85, 0x32, 0x83, 0x22 }, | ||
43 | { 0x20, 0x04, 0x03, 0x27, 0x20, 0x50, 0x01, 0x70, 0x80, 0x30, 0x80, 0x06, | ||
44 | 0x30, 0x19, 0x17, 0x65 } | ||
45 | }; | ||
46 | |||
47 | /* begin mkboot.c excerpt */ | ||
48 | unsigned char image[0x400000 + 0x220 + 0x400000/0x200]; | ||
49 | |||
50 | bool mkboot(wxString infile, wxString outfile,wxString bootloader,int origin) | ||
51 | { | ||
52 | wxString err; | ||
53 | int i; | ||
54 | int len,bllen; | ||
55 | int actual_length, total_length, binary_length, num_chksums; | ||
56 | |||
57 | memset(image, 0xff, sizeof(image)); | ||
58 | |||
59 | /* First, read the iriver original firmware into the image */ | ||
60 | wxFile f; | ||
61 | if(!f.Open(infile)) | ||
62 | { | ||
63 | ERR_DIALOG(wxT("Could not open: ") + infile, wxT("mkboot")); | ||
64 | return false; | ||
65 | } | ||
66 | i = f.Read(image,16); | ||
67 | if(i < 16) { | ||
68 | ERR_DIALOG(wxT("reading header failed"), wxT("mkboot")); | ||
69 | return false; | ||
70 | } | ||
71 | |||
72 | /* This is the length of the binary image without the scrambling | ||
73 | overhead (but including the ESTFBINR header) */ | ||
74 | binary_length = image[4] + (image[5] << 8) + | ||
75 | (image[6] << 16) + (image[7] << 24); | ||
76 | |||
77 | /* Read the rest of the binary data, but not the checksum block */ | ||
78 | len = binary_length+0x200-16; | ||
79 | i = f.Read(image+16, len); | ||
80 | if(i < len) { | ||
81 | ERR_DIALOG(wxT("reading firmware failed"),wxT("mkboot")); | ||
82 | return false; | ||
83 | } | ||
84 | |||
85 | f.Close(); | ||
86 | /* Now, read the boot loader into the image */ | ||
87 | if(!f.Open(bootloader)) | ||
88 | { | ||
89 | ERR_DIALOG(wxT("Could not open: ") + bootloader, wxT("mkboot")); | ||
90 | return false; | ||
91 | } | ||
92 | |||
93 | bllen = f.Length(); | ||
94 | |||
95 | i = f.Read(image+0x220 + origin, bllen); | ||
96 | if(i < bllen) { | ||
97 | ERR_DIALOG(wxT("reading bootloader failed"), wxT("mkboot")); | ||
98 | return false; | ||
99 | } | ||
100 | |||
101 | f.Close(); | ||
102 | |||
103 | if(!f.Open(outfile,wxFile::write)) | ||
104 | { | ||
105 | ERR_DIALOG(wxT("Could not open: ") + outfile, wxT("mkboot")); | ||
106 | return false; | ||
107 | } | ||
108 | |||
109 | /* Patch the reset vector to start the boot loader */ | ||
110 | image[0x220 + 4] = image[origin + 0x220 + 4]; | ||
111 | image[0x220 + 5] = image[origin + 0x220 + 5]; | ||
112 | image[0x220 + 6] = image[origin + 0x220 + 6]; | ||
113 | image[0x220 + 7] = image[origin + 0x220 + 7]; | ||
114 | |||
115 | /* This is the actual length of the binary, excluding all headers */ | ||
116 | actual_length = origin + bllen; | ||
117 | |||
118 | /* Patch the ESTFBINR header */ | ||
119 | image[0x20c] = (actual_length >> 24) & 0xff; | ||
120 | image[0x20d] = (actual_length >> 16) & 0xff; | ||
121 | image[0x20e] = (actual_length >> 8) & 0xff; | ||
122 | image[0x20f] = actual_length & 0xff; | ||
123 | |||
124 | image[0x21c] = (actual_length >> 24) & 0xff; | ||
125 | image[0x21d] = (actual_length >> 16) & 0xff; | ||
126 | image[0x21e] = (actual_length >> 8) & 0xff; | ||
127 | image[0x21f] = actual_length & 0xff; | ||
128 | |||
129 | /* This is the length of the binary, including the ESTFBINR header and | ||
130 | rounded up to the nearest 0x200 boundary */ | ||
131 | binary_length = (actual_length + 0x20 + 0x1ff) & 0xfffffe00; | ||
132 | |||
133 | /* The number of checksums, i.e number of 0x200 byte blocks */ | ||
134 | num_chksums = binary_length / 0x200; | ||
135 | |||
136 | /* The total file length, including all headers and checksums */ | ||
137 | total_length = binary_length + num_chksums + 0x200; | ||
138 | |||
139 | /* Patch the scrambler header with the new length info */ | ||
140 | image[0] = total_length & 0xff; | ||
141 | image[1] = (total_length >> 8) & 0xff; | ||
142 | image[2] = (total_length >> 16) & 0xff; | ||
143 | image[3] = (total_length >> 24) & 0xff; | ||
144 | |||
145 | image[4] = binary_length & 0xff; | ||
146 | image[5] = (binary_length >> 8) & 0xff; | ||
147 | image[6] = (binary_length >> 16) & 0xff; | ||
148 | image[7] = (binary_length >> 24) & 0xff; | ||
149 | |||
150 | image[8] = num_chksums & 0xff; | ||
151 | image[9] = (num_chksums >> 8) & 0xff; | ||
152 | image[10] = (num_chksums >> 16) & 0xff; | ||
153 | image[11] = (num_chksums >> 24) & 0xff; | ||
154 | |||
155 | i = f.Write(image,total_length); | ||
156 | if(i < total_length) { | ||
157 | ERR_DIALOG(wxT("writing bootloader failed"), wxT("mkboot")); | ||
158 | return false; | ||
159 | } | ||
160 | |||
161 | f.Close(); | ||
162 | |||
163 | return true; | ||
164 | } | ||
165 | |||
166 | /* end mkboot.c excerpt */ | ||
167 | |||
168 | |||
169 | int intable(char *md5, struct sumpairs *table, int len) | ||
170 | { | ||
171 | int i; | ||
172 | for (i = 0; i < len; i++) { | ||
173 | if (strncmp(md5, table[i].unpatched, 32) == 0) { | ||
174 | return i; | ||
175 | } | ||
176 | } | ||
177 | return -1; | ||
178 | } | ||
179 | |||
180 | |||
181 | |||
182 | |||
183 | static int testheader( const unsigned char * const data ) | ||
184 | { | ||
185 | const unsigned char * const d = data+16; | ||
186 | const char * const * m = models; | ||
187 | int index = 0; | ||
188 | while( *m ) | ||
189 | { | ||
190 | if( memcmp( header[ index ], d, 16 ) == 0 ) | ||
191 | return index; | ||
192 | index++; | ||
193 | m++; | ||
194 | }; | ||
195 | return -1; | ||
196 | }; | ||
197 | |||
198 | static void modifyheader( unsigned char * data ) | ||
199 | { | ||
200 | const unsigned char * h = header_modify; | ||
201 | int i; | ||
202 | for( i=0; i<512; i++ ) | ||
203 | { | ||
204 | if( *h == '\0' ) | ||
205 | h = header_modify; | ||
206 | *data++ ^= *h++; | ||
207 | }; | ||
208 | }; | ||
209 | |||
210 | int iriver_decode(wxString infile_name, wxString outfile_name, unsigned int modify, | ||
211 | enum striptype stripmode ) | ||
212 | { | ||
213 | wxString err; | ||
214 | wxFile infile; | ||
215 | wxFile outfile; | ||
216 | int i = -1; | ||
217 | unsigned char headerdata[512]; | ||
218 | unsigned long dwLength1, dwLength2, dwLength3, fp = 0; | ||
219 | unsigned char blockdata[16+16]; | ||
220 | unsigned char out[16]; | ||
221 | unsigned char newmunge; | ||
222 | signed long lenread; | ||
223 | int s = 0; | ||
224 | unsigned char * pChecksums, * ppChecksums = 0; | ||
225 | unsigned char ck; | ||
226 | |||
227 | if(!infile.Open(infile_name)) | ||
228 | { | ||
229 | ERR_DIALOG(wxT("Could not open: ") + infile_name, wxT("iriver_decode")); | ||
230 | return -1; | ||
231 | } | ||
232 | if(!outfile.Open(outfile_name,wxFile::write)) | ||
233 | { | ||
234 | ERR_DIALOG(wxT("Could not open: ") + outfile_name, | ||
235 | wxT("iriver_decode")); | ||
236 | return -1; | ||
237 | } | ||
238 | lenread = infile.Read( headerdata, 512); | ||
239 | if( lenread != 512 ) | ||
240 | { | ||
241 | ERR_DIALOG(wxT("This doesn't look like a valid encrypted iHP " | ||
242 | "firmware - reason: header length\n"),wxT("iriver_decode")); | ||
243 | |||
244 | infile.Close(); | ||
245 | outfile.Close(); | ||
246 | return -1; | ||
247 | }; | ||
248 | |||
249 | i = testheader( headerdata ); | ||
250 | if( i == -1 ) | ||
251 | { | ||
252 | ERR_DIALOG( wxT( "This firmware is for an unknown model, or is not" | ||
253 | " a valid encrypted iHP firmware\n" ),wxT("iriver_decode")); | ||
254 | infile.Close(); | ||
255 | outfile.Close(); | ||
256 | return -1; | ||
257 | }; | ||
258 | fprintf( stderr, "Model %s\n", models[ i ] ); | ||
259 | |||
260 | dwLength1 = headerdata[0] | (headerdata[1]<<8) | | ||
261 | (headerdata[2]<<16) | (headerdata[3]<<24); | ||
262 | dwLength2 = headerdata[4] | (headerdata[5]<<8) | | ||
263 | (headerdata[6]<<16) | (headerdata[7]<<24); | ||
264 | dwLength3 = headerdata[8] | (headerdata[9]<<8) | | ||
265 | (headerdata[10]<<16) | (headerdata[11]<<24); | ||
266 | |||
267 | if( dwLength1 < firmware_minsize[ i ] || | ||
268 | dwLength1 > firmware_maxsize[ i ] || | ||
269 | dwLength2 < firmware_minsize[ i ] || | ||
270 | dwLength2 > dwLength1 || | ||
271 | dwLength3 > dwLength1 || | ||
272 | dwLength2>>9 != dwLength3 || | ||
273 | dwLength2+dwLength3+512 != dwLength1 ) | ||
274 | { | ||
275 | ERR_DIALOG( wxT( "This doesn't look like a valid encrypted " | ||
276 | "iHP firmware - reason: file 'length' data\n" ),wxT("iriver_decode")); | ||
277 | infile.Close(); | ||
278 | outfile.Close(); | ||
279 | return -1; | ||
280 | }; | ||
281 | |||
282 | pChecksums = ppChecksums = (unsigned char *)( malloc( dwLength3 ) ); | ||
283 | |||
284 | if( modify ) | ||
285 | { | ||
286 | modifyheader( headerdata ); | ||
287 | }; | ||
288 | |||
289 | if( stripmode == STRIP_NONE ) | ||
290 | outfile.Write( headerdata, 512); | ||
291 | |||
292 | memset( blockdata, 0, 16 ); | ||
293 | |||
294 | ck = 0; | ||
295 | while( ( fp < dwLength2 ) && | ||
296 | ( lenread = infile.Read( blockdata+16, 16) == 16) ) | ||
297 | { | ||
298 | fp += 16; | ||
299 | |||
300 | for( i=0; i<16; ++i ) | ||
301 | { | ||
302 | newmunge = blockdata[16+i] ^ munge[i]; | ||
303 | out[i] = newmunge ^ blockdata[i]; | ||
304 | blockdata[i] = newmunge; | ||
305 | ck += out[i]; | ||
306 | } | ||
307 | |||
308 | if( fp > ESTF_SIZE || stripmode != STRIP_HEADER_CHECKSUM_ESTF ) | ||
309 | { | ||
310 | outfile.Write( out+4, 12); | ||
311 | outfile.Write( out, 4); | ||
312 | } | ||
313 | else | ||
314 | { | ||
315 | if( ESTF_SIZE - fp < 16 ) | ||
316 | { | ||
317 | memcpy( out+4, blockdata+16, 12 ); | ||
318 | memcpy( out, blockdata+28, 4 ); | ||
319 | outfile.Write( blockdata+16+ESTF_SIZE-fp, ESTF_SIZE-fp); | ||
320 | } | ||
321 | } | ||
322 | |||
323 | |||
324 | if( s == 496 ) | ||
325 | { | ||
326 | s = 0; | ||
327 | memset( blockdata, 0, 16 ); | ||
328 | *ppChecksums++ = ck; | ||
329 | ck = 0; | ||
330 | } | ||
331 | else | ||
332 | s+=16; | ||
333 | }; | ||
334 | |||
335 | if( fp != dwLength2 ) | ||
336 | { | ||
337 | ERR_DIALOG( wxT( "This doesn't look like a valid encrypted " | ||
338 | "iHP firmware - reason: 'length2' mismatch\n" ),wxT("iriver_decode")); | ||
339 | infile.Close(); | ||
340 | outfile.Close(); | ||
341 | return -1; | ||
342 | }; | ||
343 | |||
344 | fp = 0; | ||
345 | ppChecksums = pChecksums; | ||
346 | while( ( fp < dwLength3 ) && | ||
347 | ( lenread = infile.Read( blockdata, 32 ) ) > 0 ) | ||
348 | { | ||
349 | fp += lenread; | ||
350 | if( stripmode == STRIP_NONE ) | ||
351 | outfile.Write( blockdata, lenread ); | ||
352 | if( memcmp( ppChecksums, blockdata, lenread ) != 0 ) | ||
353 | { | ||
354 | ERR_DIALOG( wxT( "This doesn't look like a valid encrypted " | ||
355 | "iHP firmware - reason: Checksum mismatch!" ),wxT("iriver_decode")); | ||
356 | infile.Close(); | ||
357 | outfile.Close(); | ||
358 | return -1; | ||
359 | }; | ||
360 | ppChecksums += lenread; | ||
361 | }; | ||
362 | |||
363 | if( fp != dwLength3 ) | ||
364 | { | ||
365 | ERR_DIALOG(wxT( "This doesn't look like a valid encrypted " | ||
366 | "iHP firmware - reason: 'length3' mismatch\n" ),wxT("iriver_decode")); | ||
367 | infile.Close(); | ||
368 | outfile.Close(); | ||
369 | return -1; | ||
370 | }; | ||
371 | |||
372 | |||
373 | fprintf( stderr, "File decoded correctly and all checksums matched!\n" ); | ||
374 | switch( stripmode ) | ||
375 | { | ||
376 | default: | ||
377 | case STRIP_NONE: | ||
378 | fprintf(stderr, "Output file contains all headers and " | ||
379 | "checksums\n"); | ||
380 | break; | ||
381 | case STRIP_HEADER_CHECKSUM: | ||
382 | fprintf( stderr, "NB: output file contains only ESTFBINR header" | ||
383 | " and decoded firmware code\n" ); | ||
384 | break; | ||
385 | case STRIP_HEADER_CHECKSUM_ESTF: | ||
386 | fprintf( stderr, "NB: output file contains only raw decoded " | ||
387 | "firmware code\n" ); | ||
388 | break; | ||
389 | }; | ||
390 | |||
391 | infile.Close(); | ||
392 | outfile.Close(); | ||
393 | return 0; | ||
394 | |||
395 | }; | ||
396 | |||
397 | int iriver_encode(wxString infile_name, wxString outfile_name, unsigned int modify ) | ||
398 | { | ||
399 | wxString err; | ||
400 | wxFile infile; | ||
401 | wxFile outfile; | ||
402 | int i = -1; | ||
403 | unsigned char headerdata[512]; | ||
404 | unsigned long dwLength1, dwLength2, dwLength3, fp = 0; | ||
405 | unsigned char blockdata[16+16]; | ||
406 | unsigned char out[16]; | ||
407 | unsigned char newmunge; | ||
408 | signed long lenread; | ||
409 | int s = 0; | ||
410 | unsigned char * pChecksums, * ppChecksums; | ||
411 | unsigned char ck; | ||
412 | |||
413 | if(!infile.Open(infile_name,wxFile::read)) | ||
414 | { | ||
415 | ERR_DIALOG(wxT("Could not open: ") + infile_name, wxT("iriver_decode")); | ||
416 | return -1; | ||
417 | } | ||
418 | if(!outfile.Open(outfile_name,wxFile::write)) | ||
419 | { | ||
420 | ERR_DIALOG(wxT("Could not open: ") + outfile_name, | ||
421 | wxT("iriver_decode")); | ||
422 | return -1; | ||
423 | } | ||
424 | |||
425 | lenread = infile.Read( headerdata, 512 ); | ||
426 | if( lenread != 512 ) | ||
427 | { | ||
428 | ERR_DIALOG(wxT("This doesn't look like a valid decoded " | ||
429 | "iHP firmware - reason: header length\n"), wxT("iriver_decode")); | ||
430 | infile.Close(); | ||
431 | outfile.Close(); | ||
432 | }; | ||
433 | |||
434 | if( modify ) | ||
435 | { | ||
436 | modifyheader( headerdata ); /* reversible */ | ||
437 | }; | ||
438 | |||
439 | i = testheader( headerdata ); | ||
440 | if( i == -1 ) | ||
441 | { | ||
442 | ERR_DIALOG(wxT("This firmware is for an unknown model, or is not" | ||
443 | " a valid decoded iHP firmware\n"), wxT("iriver_decode")); | ||
444 | infile.Close(); | ||
445 | outfile.Close(); | ||
446 | }; | ||
447 | fprintf( stderr, "Model %s\n", models[ i ] ); | ||
448 | |||
449 | dwLength1 = headerdata[0] | (headerdata[1]<<8) | | ||
450 | (headerdata[2]<<16) | (headerdata[3]<<24); | ||
451 | dwLength2 = headerdata[4] | (headerdata[5]<<8) | | ||
452 | (headerdata[6]<<16) | (headerdata[7]<<24); | ||
453 | dwLength3 = headerdata[8] | (headerdata[9]<<8) | | ||
454 | (headerdata[10]<<16) | (headerdata[11]<<24); | ||
455 | |||
456 | if( dwLength1 < firmware_minsize[i] || | ||
457 | dwLength1 > firmware_maxsize[i] || | ||
458 | dwLength2 < firmware_minsize[i] || | ||
459 | dwLength2 > dwLength1 || | ||
460 | dwLength3 > dwLength1 || | ||
461 | dwLength2+dwLength3+512 != dwLength1 ) | ||
462 | { | ||
463 | ERR_DIALOG(wxT("This doesn't look like a valid decoded iHP" | ||
464 | " firmware - reason: file 'length' data\n"), wxT("iriver_decode")); | ||
465 | infile.Close(); | ||
466 | outfile.Close(); | ||
467 | }; | ||
468 | |||
469 | pChecksums = ppChecksums = (unsigned char *)( malloc( dwLength3 ) ); | ||
470 | |||
471 | outfile.Write( headerdata, 512); | ||
472 | |||
473 | memset( blockdata, 0, 16 ); | ||
474 | ck = 0; | ||
475 | while( ( fp < dwLength2 ) && | ||
476 | ( lenread = infile.Read( blockdata+16, 16) ) == 16 ) | ||
477 | { | ||
478 | fp += 16; | ||
479 | for( i=0; i<16; ++i ) | ||
480 | { | ||
481 | newmunge = blockdata[16+((12+i)&0xf)] ^ blockdata[i]; | ||
482 | out[i] = newmunge ^ munge[i]; | ||
483 | ck += blockdata[16+i]; | ||
484 | blockdata[i] = newmunge; | ||
485 | }; | ||
486 | outfile.Write( out, 16); | ||
487 | |||
488 | if( s == 496 ) | ||
489 | { | ||
490 | s = 0; | ||
491 | memset( blockdata, 0, 16 ); | ||
492 | *ppChecksums++ = ck; | ||
493 | ck = 0; | ||
494 | } | ||
495 | else | ||
496 | s+=16; | ||
497 | }; | ||
498 | |||
499 | if( fp != dwLength2 ) | ||
500 | { | ||
501 | ERR_DIALOG(wxT("This doesn't look like a valid decoded " | ||
502 | "iHP firmware - reason: 'length1' mismatch\n"), wxT("iriver_decode")); | ||
503 | infile.Close(); | ||
504 | outfile.Close(); | ||
505 | }; | ||
506 | |||
507 | /* write out remainder w/out applying descrambler */ | ||
508 | fp = 0; | ||
509 | lenread = dwLength3; | ||
510 | ppChecksums = pChecksums; | ||
511 | while( ( fp < dwLength3) && | ||
512 | ( lenread = outfile.Write( ppChecksums, lenread) ) > 0 ) | ||
513 | { | ||
514 | fp += lenread; | ||
515 | ppChecksums += lenread; | ||
516 | lenread = dwLength3 - fp; | ||
517 | }; | ||
518 | |||
519 | if( fp != dwLength3 ) | ||
520 | { | ||
521 | ERR_DIALOG(wxT("This doesn't look like a valid decoded " | ||
522 | "iHP firmware - reason: 'length2' mismatch\n"), wxT("iriver_decode")); | ||
523 | infile.Close(); | ||
524 | outfile.Close(); | ||
525 | }; | ||
526 | |||
527 | fprintf( stderr, "File encoded successfully and checksum table built!\n" ); | ||
528 | |||
529 | infile.Close(); | ||
530 | outfile.Close(); | ||
531 | return 0; | ||
532 | |||
533 | }; | ||
534 | |||
535 | bool PatchFirmware(wxString firmware,wxString bootloader,int series, int table_entry) | ||
536 | { | ||
537 | wxString name1, name2, name3; | ||
538 | |||
539 | char md5sum_str[32]; | ||
540 | struct sumpairs *sums; | ||
541 | int origin; | ||
542 | |||
543 | /* get pointer to the correct bootloader.bin */ | ||
544 | switch(series) { | ||
545 | case 100: | ||
546 | sums = &h100pairs[0]; | ||
547 | origin = 0x1f0000; | ||
548 | break; | ||
549 | case 120: | ||
550 | sums = &h120pairs[0]; | ||
551 | origin = 0x1f0000; | ||
552 | break; | ||
553 | case 300: | ||
554 | sums = &h300pairs[0]; | ||
555 | origin = 0x3f0000; | ||
556 | break; | ||
557 | } | ||
558 | |||
559 | name1 = gv->stdpaths->GetUserDataDir() | ||
560 | + wxT("" PATH_SEP "download" PATH_SEP "firmware.bin"), | ||
561 | /* descrambled file */ | ||
562 | name2 = gv->stdpaths->GetUserDataDir() | ||
563 | + wxT("" PATH_SEP "download" PATH_SEP "new.bin"); | ||
564 | /* patched file */ | ||
565 | name3 = gv->stdpaths->GetUserDataDir() | ||
566 | + wxT("" PATH_SEP "download" PATH_SEP "new.hex"); | ||
567 | if (iriver_decode(firmware, name1, FALSE, STRIP_NONE) == -1) { | ||
568 | ERR_DIALOG(wxT("Error in descramble"), wxT("Descramble Firmware")); | ||
569 | wxRemoveFile(name1); | ||
570 | wxRemoveFile(name2); | ||
571 | wxRemoveFile(name3); | ||
572 | return false; | ||
573 | } | ||
574 | if (!mkboot(name1, name2, bootloader, origin)) { | ||
575 | ERR_DIALOG(wxT("Error in patching"),wxT("Patching Firmware")); | ||
576 | wxRemoveFile(name1); | ||
577 | wxRemoveFile(name2); | ||
578 | wxRemoveFile(name3); | ||
579 | return false; | ||
580 | } | ||
581 | if (iriver_encode(name2, name3, FALSE) == -1) { | ||
582 | ERR_DIALOG(wxT("Error in scramble"),wxT("Scramble Firmware")); | ||
583 | wxRemoveFile(name1); | ||
584 | wxRemoveFile(name2); | ||
585 | wxRemoveFile(name3); | ||
586 | return false; | ||
587 | } | ||
588 | /* now md5sum it */ | ||
589 | if (!FileMD5(name3, md5sum_str)) { | ||
590 | ERR_DIALOG(wxT("Error in checksumming"),wxT("Checksumming Firmware")); | ||
591 | wxRemoveFile(name1); | ||
592 | wxRemoveFile(name2); | ||
593 | wxRemoveFile(name3); | ||
594 | return false; | ||
595 | } | ||
596 | if (strncmp(sums[table_entry].patched, md5sum_str, 32) == 0) { | ||
597 | /* delete temp files */ | ||
598 | wxRemoveFile(name1); | ||
599 | wxRemoveFile(name2); | ||
600 | } | ||
601 | |||
602 | return true; | ||
603 | } | ||
604 | |||
diff --git a/rbutil/irivertools.h b/rbutil/irivertools.h deleted file mode 100755 index d646cf1d6c..0000000000 --- a/rbutil/irivertools.h +++ /dev/null | |||
@@ -1,66 +0,0 @@ | |||
1 | /*************************************************************************** | ||
2 | * __________ __ ___. | ||
3 | * Open \______ \ ____ ____ | | _\_ |__ _______ ___ | ||
4 | * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / | ||
5 | * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | ||
6 | * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | ||
7 | * \/ \/ \/ \/ \/ | ||
8 | * Module: rbutil | ||
9 | * File: irivertools.h | ||
10 | * | ||
11 | * Copyright (C) 2007 Dominik Wenger | ||
12 | * | ||
13 | * All files in this archive are subject to the GNU General Public License. | ||
14 | * See the file COPYING in the source tree root for full license agreement. | ||
15 | * | ||
16 | * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY | ||
17 | * KIND, either express or implied. | ||
18 | * | ||
19 | ****************************************************************************/ | ||
20 | |||
21 | |||
22 | #ifndef IRIVERTOOLS_H_INCLUDED | ||
23 | #define IRIVERTOOLS_H_INCLUDED | ||
24 | |||
25 | #include "rbutil.h" | ||
26 | #include "installlog.h" | ||
27 | #include "md5sum.h" | ||
28 | |||
29 | #define ESTF_SIZE 32 | ||
30 | |||
31 | struct sumpairs { | ||
32 | char *unpatched; | ||
33 | char *patched; | ||
34 | }; | ||
35 | |||
36 | /* precalculated checksums for H110/H115 */ | ||
37 | static struct sumpairs h100pairs[] = { | ||
38 | #include "h100sums.h" | ||
39 | }; | ||
40 | |||
41 | /* precalculated checksums for H120/H140 */ | ||
42 | static struct sumpairs h120pairs[] = { | ||
43 | #include "h120sums.h" | ||
44 | }; | ||
45 | |||
46 | /* precalculated checksums for H320/H340 */ | ||
47 | static struct sumpairs h300pairs[] = { | ||
48 | #include "h300sums.h" | ||
49 | }; | ||
50 | |||
51 | |||
52 | enum striptype | ||
53 | { | ||
54 | STRIP_NONE, | ||
55 | STRIP_HEADER_CHECKSUM, | ||
56 | STRIP_HEADER_CHECKSUM_ESTF | ||
57 | }; | ||
58 | |||
59 | /* protos for iriver.c */ | ||
60 | |||
61 | int intable(char *md5, struct sumpairs *table, int len); | ||
62 | |||
63 | bool PatchFirmware(wxString firmware,wxString bootloader,int series, int table_entry); | ||
64 | |||
65 | |||
66 | #endif // IRIVERTOOLS_H_INCLUDED | ||
diff --git a/rbutil/md5sum.cpp b/rbutil/md5sum.cpp deleted file mode 100755 index e1c23c9867..0000000000 --- a/rbutil/md5sum.cpp +++ /dev/null | |||
@@ -1,298 +0,0 @@ | |||
1 | /*************************************************************************** | ||
2 | * __________ __ ___. | ||
3 | * Open \______ \ ____ ____ | | _\_ |__ _______ ___ | ||
4 | * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / | ||
5 | * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | ||
6 | * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | ||
7 | * \/ \/ \/ \/ \/ | ||
8 | * Module: rbutil | ||
9 | * File: md5sum.cpp | ||
10 | * | ||
11 | * Copyright (C) 2007 Dominik Wenger | ||
12 | * | ||
13 | * All files in this archive are subject to the GNU General Public License. | ||
14 | * See the file COPYING in the source tree root for full license agreement. | ||
15 | * | ||
16 | * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY | ||
17 | * KIND, either express or implied. | ||
18 | * | ||
19 | ****************************************************************************/ | ||
20 | |||
21 | |||
22 | /* | ||
23 | * RFC 1321 compliant MD5 implementation | ||
24 | * | ||
25 | * Copyright (C) 2001-2003 Christophe Devine | ||
26 | * | ||
27 | * This program is free software; you can redistribute it and/or modify | ||
28 | * it under the terms of the GNU General Public License as published by | ||
29 | * the Free Software Foundation; either version 2 of the License, or | ||
30 | * (at your option) any later version. | ||
31 | * | ||
32 | * This program is distributed in the hope that it will be useful, | ||
33 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
34 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
35 | * GNU General Public License for more details. | ||
36 | * | ||
37 | * You should have received a copy of the GNU General Public License | ||
38 | * along with this program; if not, write to the Free Software | ||
39 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | ||
40 | */ | ||
41 | |||
42 | |||
43 | #include "md5sum.h" | ||
44 | |||
45 | |||
46 | #define GET_UINT32(n,b,i) \ | ||
47 | { \ | ||
48 | (n) = ( (uint32) (b)[(i) ] ) \ | ||
49 | | ( (uint32) (b)[(i) + 1] << 8 ) \ | ||
50 | | ( (uint32) (b)[(i) + 2] << 16 ) \ | ||
51 | | ( (uint32) (b)[(i) + 3] << 24 ); \ | ||
52 | } | ||
53 | |||
54 | #define PUT_UINT32(n,b,i) \ | ||
55 | { \ | ||
56 | (b)[(i) ] = (uint8) ( (n) ); \ | ||
57 | (b)[(i) + 1] = (uint8) ( (n) >> 8 ); \ | ||
58 | (b)[(i) + 2] = (uint8) ( (n) >> 16 ); \ | ||
59 | (b)[(i) + 3] = (uint8) ( (n) >> 24 ); \ | ||
60 | } | ||
61 | |||
62 | void md5_starts( md5_context *ctx ) | ||
63 | { | ||
64 | ctx->total[0] = 0; | ||
65 | ctx->total[1] = 0; | ||
66 | |||
67 | ctx->state[0] = 0x67452301; | ||
68 | ctx->state[1] = 0xEFCDAB89; | ||
69 | ctx->state[2] = 0x98BADCFE; | ||
70 | ctx->state[3] = 0x10325476; | ||
71 | } | ||
72 | |||
73 | void md5_process( md5_context *ctx, uint8 data[64] ) | ||
74 | { | ||
75 | uint32 X[16], A, B, C, D; | ||
76 | |||
77 | GET_UINT32( X[0], data, 0 ); | ||
78 | GET_UINT32( X[1], data, 4 ); | ||
79 | GET_UINT32( X[2], data, 8 ); | ||
80 | GET_UINT32( X[3], data, 12 ); | ||
81 | GET_UINT32( X[4], data, 16 ); | ||
82 | GET_UINT32( X[5], data, 20 ); | ||
83 | GET_UINT32( X[6], data, 24 ); | ||
84 | GET_UINT32( X[7], data, 28 ); | ||
85 | GET_UINT32( X[8], data, 32 ); | ||
86 | GET_UINT32( X[9], data, 36 ); | ||
87 | GET_UINT32( X[10], data, 40 ); | ||
88 | GET_UINT32( X[11], data, 44 ); | ||
89 | GET_UINT32( X[12], data, 48 ); | ||
90 | GET_UINT32( X[13], data, 52 ); | ||
91 | GET_UINT32( X[14], data, 56 ); | ||
92 | GET_UINT32( X[15], data, 60 ); | ||
93 | |||
94 | #define S(x,n) ((x << n) | ((x & 0xFFFFFFFF) >> (32 - n))) | ||
95 | |||
96 | #define P(a,b,c,d,k,s,t) \ | ||
97 | { \ | ||
98 | a += F(b,c,d) + X[k] + t; a = S(a,s) + b; \ | ||
99 | } | ||
100 | |||
101 | A = ctx->state[0]; | ||
102 | B = ctx->state[1]; | ||
103 | C = ctx->state[2]; | ||
104 | D = ctx->state[3]; | ||
105 | |||
106 | #define F(x,y,z) (z ^ (x & (y ^ z))) | ||
107 | |||
108 | P( A, B, C, D, 0, 7, 0xD76AA478 ); | ||
109 | P( D, A, B, C, 1, 12, 0xE8C7B756 ); | ||
110 | P( C, D, A, B, 2, 17, 0x242070DB ); | ||
111 | P( B, C, D, A, 3, 22, 0xC1BDCEEE ); | ||
112 | P( A, B, C, D, 4, 7, 0xF57C0FAF ); | ||
113 | P( D, A, B, C, 5, 12, 0x4787C62A ); | ||
114 | P( C, D, A, B, 6, 17, 0xA8304613 ); | ||
115 | P( B, C, D, A, 7, 22, 0xFD469501 ); | ||
116 | P( A, B, C, D, 8, 7, 0x698098D8 ); | ||
117 | P( D, A, B, C, 9, 12, 0x8B44F7AF ); | ||
118 | P( C, D, A, B, 10, 17, 0xFFFF5BB1 ); | ||
119 | P( B, C, D, A, 11, 22, 0x895CD7BE ); | ||
120 | P( A, B, C, D, 12, 7, 0x6B901122 ); | ||
121 | P( D, A, B, C, 13, 12, 0xFD987193 ); | ||
122 | P( C, D, A, B, 14, 17, 0xA679438E ); | ||
123 | P( B, C, D, A, 15, 22, 0x49B40821 ); | ||
124 | |||
125 | #undef F | ||
126 | |||
127 | #define F(x,y,z) (y ^ (z & (x ^ y))) | ||
128 | |||
129 | P( A, B, C, D, 1, 5, 0xF61E2562 ); | ||
130 | P( D, A, B, C, 6, 9, 0xC040B340 ); | ||
131 | P( C, D, A, B, 11, 14, 0x265E5A51 ); | ||
132 | P( B, C, D, A, 0, 20, 0xE9B6C7AA ); | ||
133 | P( A, B, C, D, 5, 5, 0xD62F105D ); | ||
134 | P( D, A, B, C, 10, 9, 0x02441453 ); | ||
135 | P( C, D, A, B, 15, 14, 0xD8A1E681 ); | ||
136 | P( B, C, D, A, 4, 20, 0xE7D3FBC8 ); | ||
137 | P( A, B, C, D, 9, 5, 0x21E1CDE6 ); | ||
138 | P( D, A, B, C, 14, 9, 0xC33707D6 ); | ||
139 | P( C, D, A, B, 3, 14, 0xF4D50D87 ); | ||
140 | P( B, C, D, A, 8, 20, 0x455A14ED ); | ||
141 | P( A, B, C, D, 13, 5, 0xA9E3E905 ); | ||
142 | P( D, A, B, C, 2, 9, 0xFCEFA3F8 ); | ||
143 | P( C, D, A, B, 7, 14, 0x676F02D9 ); | ||
144 | P( B, C, D, A, 12, 20, 0x8D2A4C8A ); | ||
145 | |||
146 | #undef F | ||
147 | |||
148 | #define F(x,y,z) (x ^ y ^ z) | ||
149 | |||
150 | P( A, B, C, D, 5, 4, 0xFFFA3942 ); | ||
151 | P( D, A, B, C, 8, 11, 0x8771F681 ); | ||
152 | P( C, D, A, B, 11, 16, 0x6D9D6122 ); | ||
153 | P( B, C, D, A, 14, 23, 0xFDE5380C ); | ||
154 | P( A, B, C, D, 1, 4, 0xA4BEEA44 ); | ||
155 | P( D, A, B, C, 4, 11, 0x4BDECFA9 ); | ||
156 | P( C, D, A, B, 7, 16, 0xF6BB4B60 ); | ||
157 | P( B, C, D, A, 10, 23, 0xBEBFBC70 ); | ||
158 | P( A, B, C, D, 13, 4, 0x289B7EC6 ); | ||
159 | P( D, A, B, C, 0, 11, 0xEAA127FA ); | ||
160 | P( C, D, A, B, 3, 16, 0xD4EF3085 ); | ||
161 | P( B, C, D, A, 6, 23, 0x04881D05 ); | ||
162 | P( A, B, C, D, 9, 4, 0xD9D4D039 ); | ||
163 | P( D, A, B, C, 12, 11, 0xE6DB99E5 ); | ||
164 | P( C, D, A, B, 15, 16, 0x1FA27CF8 ); | ||
165 | P( B, C, D, A, 2, 23, 0xC4AC5665 ); | ||
166 | |||
167 | #undef F | ||
168 | |||
169 | #define F(x,y,z) (y ^ (x | ~z)) | ||
170 | |||
171 | P( A, B, C, D, 0, 6, 0xF4292244 ); | ||
172 | P( D, A, B, C, 7, 10, 0x432AFF97 ); | ||
173 | P( C, D, A, B, 14, 15, 0xAB9423A7 ); | ||
174 | P( B, C, D, A, 5, 21, 0xFC93A039 ); | ||
175 | P( A, B, C, D, 12, 6, 0x655B59C3 ); | ||
176 | P( D, A, B, C, 3, 10, 0x8F0CCC92 ); | ||
177 | P( C, D, A, B, 10, 15, 0xFFEFF47D ); | ||
178 | P( B, C, D, A, 1, 21, 0x85845DD1 ); | ||
179 | P( A, B, C, D, 8, 6, 0x6FA87E4F ); | ||
180 | P( D, A, B, C, 15, 10, 0xFE2CE6E0 ); | ||
181 | P( C, D, A, B, 6, 15, 0xA3014314 ); | ||
182 | P( B, C, D, A, 13, 21, 0x4E0811A1 ); | ||
183 | P( A, B, C, D, 4, 6, 0xF7537E82 ); | ||
184 | P( D, A, B, C, 11, 10, 0xBD3AF235 ); | ||
185 | P( C, D, A, B, 2, 15, 0x2AD7D2BB ); | ||
186 | P( B, C, D, A, 9, 21, 0xEB86D391 ); | ||
187 | |||
188 | #undef F | ||
189 | #undef S | ||
190 | #undef P | ||
191 | |||
192 | |||
193 | ctx->state[0] += A; | ||
194 | ctx->state[1] += B; | ||
195 | ctx->state[2] += C; | ||
196 | ctx->state[3] += D; | ||
197 | } | ||
198 | |||
199 | void md5_update( md5_context *ctx, uint8 *input, uint32 length ) | ||
200 | { | ||
201 | uint32 left, fill; | ||
202 | |||
203 | if( ! length ) return; | ||
204 | |||
205 | left = ctx->total[0] & 0x3F; | ||
206 | fill = 64 - left; | ||
207 | |||
208 | ctx->total[0] += length; | ||
209 | ctx->total[0] &= 0xFFFFFFFF; | ||
210 | |||
211 | if( ctx->total[0] < length ) | ||
212 | ctx->total[1]++; | ||
213 | |||
214 | if( left && length >= fill ) | ||
215 | { | ||
216 | memcpy( (void *) (ctx->buffer + left), | ||
217 | (void *) input, fill ); | ||
218 | md5_process( ctx, ctx->buffer ); | ||
219 | length -= fill; | ||
220 | input += fill; | ||
221 | left = 0; | ||
222 | } | ||
223 | |||
224 | while( length >= 64 ) | ||
225 | { | ||
226 | md5_process( ctx, input ); | ||
227 | length -= 64; | ||
228 | input += 64; | ||
229 | } | ||
230 | |||
231 | if( length ) | ||
232 | { | ||
233 | memcpy( (void *) (ctx->buffer + left), | ||
234 | (void *) input, length ); | ||
235 | } | ||
236 | } | ||
237 | |||
238 | static uint8 md5_padding[64] = | ||
239 | { | ||
240 | 0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | ||
241 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | ||
242 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | ||
243 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 | ||
244 | }; | ||
245 | |||
246 | void md5_finish( md5_context *ctx, uint8 digest[16] ) | ||
247 | { | ||
248 | uint32 last, padn; | ||
249 | uint32 high, low; | ||
250 | uint8 msglen[8]; | ||
251 | |||
252 | high = ( ctx->total[0] >> 29 ) | ||
253 | | ( ctx->total[1] << 3 ); | ||
254 | low = ( ctx->total[0] << 3 ); | ||
255 | |||
256 | PUT_UINT32( low, msglen, 0 ); | ||
257 | PUT_UINT32( high, msglen, 4 ); | ||
258 | |||
259 | last = ctx->total[0] & 0x3F; | ||
260 | padn = ( last < 56 ) ? ( 56 - last ) : ( 120 - last ); | ||
261 | |||
262 | md5_update( ctx, md5_padding, padn ); | ||
263 | md5_update( ctx, msglen, 8 ); | ||
264 | |||
265 | PUT_UINT32( ctx->state[0], digest, 0 ); | ||
266 | PUT_UINT32( ctx->state[1], digest, 4 ); | ||
267 | PUT_UINT32( ctx->state[2], digest, 8 ); | ||
268 | PUT_UINT32( ctx->state[3], digest, 12 ); | ||
269 | } | ||
270 | |||
271 | int FileMD5(wxString name, char *md5) | ||
272 | { | ||
273 | int i, read; | ||
274 | md5_context ctx; | ||
275 | unsigned char md5sum[16]; | ||
276 | unsigned char block[32768]; | ||
277 | |||
278 | wxFile file; | ||
279 | |||
280 | file.Open(name); | ||
281 | |||
282 | if (!file.IsOpened()) { | ||
283 | ERR_DIALOG(wxT("Could not open patched firmware for checksum check"), wxT("Open Firmware")); | ||
284 | return 0; | ||
285 | } | ||
286 | md5_starts(&ctx); | ||
287 | while ( !file.Eof() ) { | ||
288 | read = file.Read(block, sizeof(block)); | ||
289 | md5_update(&ctx, block, read); | ||
290 | } | ||
291 | file.Close(); | ||
292 | md5_finish(&ctx, md5sum); | ||
293 | for (i = 0; i < 16; ++i) | ||
294 | { | ||
295 | sprintf(md5 + 2*i, "%02x", md5sum[i]); | ||
296 | } | ||
297 | return 1; | ||
298 | } | ||
diff --git a/rbutil/md5sum.h b/rbutil/md5sum.h deleted file mode 100755 index f7ea439b6f..0000000000 --- a/rbutil/md5sum.h +++ /dev/null | |||
@@ -1,51 +0,0 @@ | |||
1 | /*************************************************************************** | ||
2 | * __________ __ ___. | ||
3 | * Open \______ \ ____ ____ | | _\_ |__ _______ ___ | ||
4 | * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / | ||
5 | * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | ||
6 | * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | ||
7 | * \/ \/ \/ \/ \/ | ||
8 | * Module: rbutil | ||
9 | * File: md5sum.h | ||
10 | * | ||
11 | * Copyright (C) 2007 Dominik Wenger | ||
12 | * | ||
13 | * All files in this archive are subject to the GNU General Public License. | ||
14 | * See the file COPYING in the source tree root for full license agreement. | ||
15 | * | ||
16 | * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY | ||
17 | * KIND, either express or implied. | ||
18 | * | ||
19 | ****************************************************************************/ | ||
20 | |||
21 | |||
22 | #ifndef MD5SUM_H_INCLUDED | ||
23 | #define MD5SUM_H_INCLUDED | ||
24 | |||
25 | #ifndef uint8 | ||
26 | #define uint8 unsigned char | ||
27 | #endif | ||
28 | |||
29 | |||
30 | #ifndef uint32 | ||
31 | #define uint32 unsigned long int | ||
32 | #endif | ||
33 | |||
34 | #include "rbutil.h" | ||
35 | |||
36 | |||
37 | typedef struct | ||
38 | { | ||
39 | uint32 total[2]; | ||
40 | uint32 state[4]; | ||
41 | uint8 buffer[64]; | ||
42 | } | ||
43 | md5_context; | ||
44 | |||
45 | void md5_starts( md5_context *ctx ); | ||
46 | void md5_update( md5_context *ctx, uint8 *input, uint32 length ); | ||
47 | void md5_finish( md5_context *ctx, uint8 digest[16] ); | ||
48 | |||
49 | int FileMD5(wxString name, char *md5); | ||
50 | |||
51 | #endif // MD5SUM_H_INCLUDED | ||
diff --git a/rbutil/rblogo.xpm b/rbutil/rblogo.xpm deleted file mode 100644 index d14f01517f..0000000000 --- a/rbutil/rblogo.xpm +++ /dev/null | |||
@@ -1,254 +0,0 @@ | |||
1 | /* WxStaticBitmap1_XPM XPM */ | ||
2 | static char * rblogo_xpm[] = { | ||
3 | "400 123 128 2", | ||
4 | " c #FFC500", | ||
5 | ". c #DBA500", | ||
6 | "+ c #C79600", | ||
7 | "@ c #A1B4C5", | ||
8 | "# c #798C9C", | ||
9 | "$ c #8C8F92", | ||
10 | "% c #6B7176", | ||
11 | "& c #B38700", | ||
12 | "* c #876601", | ||
13 | "= c #B3C3D2", | ||
14 | "- c #392B00", | ||
15 | "; c #E7E7E7", | ||
16 | "> c #EBB200", | ||
17 | ", c #9CB1C4", | ||
18 | "' c #FFC800", | ||
19 | ") c #8497A9", | ||
20 | "! c #4A4D4F", | ||
21 | "~ c #2D2E30", | ||
22 | "{ c #FEFEFE", | ||
23 | "] c #CCD8E2", | ||
24 | "^ c #E3AC00", | ||
25 | "/ c #745801", | ||
26 | "( c #BBC9D6", | ||
27 | "_ c #97ADC1", | ||
28 | ": c #A5B9CA", | ||
29 | "< c #C7C7C7", | ||
30 | "[ c #C6D2DD", | ||
31 | "} c #8AA1B6", | ||
32 | "| c #493801", | ||
33 | "1 c #C1CDD9", | ||
34 | "2 c #654D00", | ||
35 | "3 c #A37B00", | ||
36 | "4 c #9A7400", | ||
37 | "5 c #F4B800", | ||
38 | "6 c #BECBD8", | ||
39 | "7 c #5A4401", | ||
40 | "8 c #AABCCC", | ||
41 | "9 c #D5D5D5", | ||
42 | "0 c #B8B8B8", | ||
43 | "a c #A6A6A6", | ||
44 | "b c #ACBECD", | ||
45 | "c c #FFC300", | ||
46 | "d c #93AABE", | ||
47 | "e c #000000", | ||
48 | "f c #FCBE00", | ||
49 | "g c #98ABBD", | ||
50 | "h c #A2B6C7", | ||
51 | "i c #FFD200", | ||
52 | "j c #FFCC00", | ||
53 | "k c #AC8200", | ||
54 | "l c #AFC1D0", | ||
55 | "m c #EFB500", | ||
56 | "n c #B2C1CE", | ||
57 | "o c #757D86", | ||
58 | "p c #F2F2F2", | ||
59 | "q c #6E5300", | ||
60 | "r c #191300", | ||
61 | "s c #A8BACA", | ||
62 | "t c #FABD00", | ||
63 | "u c #D09D01", | ||
64 | "v c #92A3B4", | ||
65 | "w c #AEBFCE", | ||
66 | "x c #171718", | ||
67 | "y c #DCE0E4", | ||
68 | "z c #261D00", | ||
69 | "A c #A8BCCC", | ||
70 | "B c #B8C6D3", | ||
71 | "C c #616468", | ||
72 | "D c #AFBECC", | ||
73 | "E c #ABB0B5", | ||
74 | "F c #A1AEB9", | ||
75 | "G c #BE8F00", | ||
76 | "H c #AABED0", | ||
77 | "I c #969DA4", | ||
78 | "J c #8F6C00", | ||
79 | "K c #A7BBCD", | ||
80 | "L c #F7BB00", | ||
81 | "M c #8FA6BB", | ||
82 | "N c #9BA9B6", | ||
83 | "O c #7E5F01", | ||
84 | "P c #ACBDCB", | ||
85 | "Q c #54595D", | ||
86 | "R c #0B0B0C", | ||
87 | "S c #B7CADA", | ||
88 | "T c #F9C000", | ||
89 | "U c #130E00", | ||
90 | "V c #ABB9C5", | ||
91 | "W c #A5B7C7", | ||
92 | "X c #424446", | ||
93 | "Y c #0C0900", | ||
94 | "Z c #FCC000", | ||
95 | "` c #9D7B0F", | ||
96 | " . c #FFC000", | ||
97 | ".. c #080A10", | ||
98 | "+. c #FDC200", | ||
99 | "@. c #B3C6D5", | ||
100 | "#. c #FFC202", | ||
101 | "$. c #A7B6C3", | ||
102 | "%. c #DFE8EF", | ||
103 | "&. c #9DAFBF", | ||
104 | "*. c #98A5B0", | ||
105 | "=. c #FAC500", | ||
106 | "-. c #ACBBC8", | ||
107 | ";. c #393A3C", | ||
108 | ">. c #232425", | ||
109 | ",. c #1C1D1E", | ||
110 | "'. c #B7C7D5", | ||
111 | "). c #ECF4FA", | ||
112 | "!. c #F7BE05", | ||
113 | "~. c #070500", | ||
114 | "{. c #644F0B", | ||
115 | "]. c #FFC100", | ||
116 | "^. c #050506", | ||
117 | "/. c #080909", | ||
118 | "(. c #101011", | ||
119 | "_. c #FEBF00", | ||
120 | ":. c #FDC100", | ||
121 | "<. c #F5BF00", | ||
122 | "[. c #8A6B0B", | ||
123 | "}. c #8E6F0D", | ||
124 | "|. c #FCC003", | ||
125 | "1. c #FFC102", | ||
126 | "2. c #B78F0B", | ||
127 | "3. c #716027", | ||
128 | "4. c #FEC304", | ||
129 | "5. c #F7C10D", | ||
130 | "6. c #977E20", | ||
131 | "7. c #FBC303", | ||
132 | "e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e ", | ||
133 | "e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e ", | ||
134 | "e e ~.r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r Y e e ", | ||
135 | "e e - _. ._._._._._._._._._._._._._.c ]._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._.].' ]._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._. J e e ", | ||
136 | "e e - ].c ].].].].].].].].].].].].].L f ].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].c c ].].].].].].].].].].].].].].].].].].].].].].].].]. m 3 > c ].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].' J e e ", | ||
137 | "e e - .]. . . . . . . . . . . .].t | 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .c ' ' ' ' c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .c ' ' ' ' ' ' c . . . . . . . . . . . . . . . . . . . . . . . . . .> m . . . . . . . . . . . . . . . . . . . . . . . . .' 3 e k ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", | ||
138 | "e e - .]. . . . . . . . . . . .c L ~.O ' ]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . u | 7 * & ^ t j c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . j t ^ . G 3 k k + ^ > j . . . . . . . . . . . . . . . . . . . . . .c t - / ]. . . . . . . . . . . . . . . . . . . . . . . . - z m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", | ||
139 | "e e - .]. . . . . . . . . . . ' T ~.O j ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . u - z Y e Y - J > ' . . . . . . . . . . . . . . . . . . . . . . . . . .c ' u O | r e e e e e e ~.z 7 J . c ' ' ]. . .].' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' T z 7 j ' . . . . . . . ' ' ' ' ' ' ' ' ' ' ' ' ' i G e J i ' c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", | ||
140 | "e e - .]. . . . . . . . . .' k 2 q e - / / / / / / / / / / / / / / / / / / / q / ^ c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .]._.L m ^ G / z e U / ^ ' c . . . . . . . . . . . . . . . . . . . . . . . =.G | e e z q 4 G . . u & * | r e e - 4 . ' ' c 5 / / / / / / / / / / / / / / / / q U z / q 4 .]. . . .c 5 J q / / / / / / / / / / / / O - e 7 / q G . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", | ||
141 | "e e - .]. . . . . . . . . .j / ~.r e Y r r r r r r r r r r r r r r r r r r r r r u . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ' ' ' j i i T G | e r 4 +.' . . . . . . . . . . . . . . . . . . . .].' ^ 7 e U / u ' i i j ' ' ' j j i =.+ O - e Y 2 + j > e Y r r r r r r r r r r r r r r r ~.Y r Y 7 .c . . . m | U r r r r r r r r r r r r U e r r r U 4 ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", | ||
142 | "e e - .]. . . . . . . . . .].5 m > e / L m m m m m m m m m m m m m m m m m m m m _.].].].]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . j > + J q | | | 7 O & . ' i G - e | ^ ' . . . . . . . . . . . . . . . . . .].' k r e / > j i T u 3 / | | | 7 q J + 5 i +.+ 7 ~.e 7 G e J L m m m m m m m m m m m m m > z 7 5 m 5 . . . . . ._.m m m m m m m m m m m m m _.q e G L m m L ]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", | ||
143 | "e e - .]. . . . . . . . . . .c T e O j c c c c c c c c c c c c c c c c c c c . . .c ' ' . . . . . . . . . . . . . . . . . . . . . . . . ' . q z e e e e e e e e e U 7 k +.i T * e r + j ]. . . . . . . . . . . . . . . .c ' * e z + j j 5 4 | Y e e e e e e e e e z 2 + ' i . q ~.~.e 4 j c c c c c c c c c c c T z 2 ' c . . . . . . .c c c c c c c c c c c m r | c c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", | ||
144 | "e e - .]. . . . . . . . . . . .c L e O ' 5 - - - - - - - - - - - - - - - - - - - - - - 7 / 3 + 5 j c . . . . . . . . . . . . . . . . . . . . .' > / Y e e e e e e e e e e e e e e - + j j G r ~.k j . . . . . . . . . . . . . .]. O e | > j ' & z e e e e e e e e e e e e e e e - G j j . | e 4 j + - - - - - - - - - - - G ].z 7 ]. . . . . . . . .' u - - - - - - - - - - - z e 4 j . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", | ||
145 | "e e - .]. . . . . . . . . . . .c L e O ' m ~.e e e e e e e e e e e e e e e e e e e e e e e e ~.- J L ' . . . . . . . . . . . . . . . . . .].j G z e e e e e e e e e e e e e e e e e Y * j . - e k ' ]. . . . . . . . . . . .].j J e 7 ].j L q e e e e e e e e e e e e e e e e e e e 7 > i 4 & j & e e e e e e e e e e e 3 c z 7 ]. . . . . . . . .' q e e e e e e e e e e e e z m c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", | ||
146 | "e e - .]. . . . . . . . . . . .c L e O ' m ~.e e e e e e e e e e e e e e e e e e e e e e e e e e e - u ' ]. . . . . . . . . . . . . . . .].j 3 ~.e e e e e e e e e e e e e e e e e e e e 2 L i > - ~.G ' . . . . . . . . . . .j & e | L j ^ | e e e e e e e e e e e e e e e e e e e e e z + ' ' .' & e e e e e e e e e e e 3 c z 7 ]. . . . . . . .c m r e e e e e e e e e e e e O ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", | ||
147 | "e e - .]. . . . . . . . . . . .c L e O ' m ~.e e e e e e e e e e e e e e e e e e e e e e e e e e e e U & ' . . . . . . . . . . . . . .].' 3 ~.e e e e e e e e e e e e e e e e e e e e e e 7 <.j . z r . . . . . . . . . . . U z > i ^ - e e e e e e e e e e e e e e e e e e e e e e e Y k ' c ' & e e e e e e e e e e e 3 c z 7 ]. . . . . . . .j 4 e e e e e e e e e e e e Y . ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", | ||
148 | "e e - .]. . . . . . . . . . . .c L e O ' m ~.e e e e e e e e e e e e e e e e e e e e e e e e e e e e e U + ' . . . . . . . . . . . . .j & ~.e e e e e e e e e e e e e e e e e e e e e e e e / ' j + ~.| T c . . . . . . .c T | e + j L | e e e e e e e e e e e e e e e e e e e e e e e e e e J ' & e e e e e e e e e e e 3 c z 7 ]. . . . . . .c t | e e e e e e e e e e e e 7 c c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", | ||
149 | "e e - .]. . . . . . . . . . . .c L e O ' m ~.e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e z ^ . . . . . . . . . . . . z e e e e e e e e e e e e e e e e e e e e e e e e e e 4 ' ' J e J ' . . . . . . .' 4 e J j +.2 e e e e e e e e e e e e e e e e e e e e e e e e e e e e 3 j & e e e e e e e e e e e 3 c z 7 ]. . . . . . .' u e e e e e e e e e e e e ~.& ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", | ||
150 | "e e - .]. . . . . . . . . . . .c L e O ' m ~.e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e 7 c . . . . . . . . .c +.| e e e e e e e e e e e e e e e e e e e e e e e e e e e r . ' c | Y ^ . . . . . > U - L i 3 e e e e e e e e e e e e e e e e e e e e e e e e e e e e e q j & e e e e e e e e e e e 3 c z 7 ]. . . . . . .' q e e e e e e e e e e e e - c ]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", | ||
151 | "e e - .]. . . . . . . . . . . .c L e O ' m ~.e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e k ' . . . . . . . . .j 4 e e e e e e e e e e e e e e e e e e e e e e e e e e e e e | .j G e / ' . . . .].' q e G j ^ r e e e e e e e e e e e e e e e e e e e e e e e e e e e e e q j & e e e e e e e e e e e 3 c z 7 ]. . . . . .c m z e e e e e e e e e e e e 4 ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", | ||
152 | "e e - .]. . . . . . . . . . . .c L e O ' m ~.e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e z 5 c . . . . . . . ^ r e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e 3 j | Y . ' . . .' . e 7 j 2 e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e q j & e e e e e e e e e e e 3 c z 7 ]. . . . . .j 4 e e e e e e e e e e e e z ^ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", | ||
153 | "e e - .]. . . . . . . . . . . .c L e O ' m ~.e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e 3 ' . . . . . .].' / e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e z > j + e J ' . . .' q e u j + ~.e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e q j & e e e e e e e e e e e 3 c z 7 ]. . . . .c Z | e e e e e e e e e e e e q ' ]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", | ||
154 | "e e - .]. . . . . . . . . . . .c L e O ' m ~.e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e - c c . . . . . ^ U e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e J j :.- r L ]. . . Y 7 ' 7 e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e q j & e e e e e e e e e e e 3 c z 7 ]. . . . .' u ~.e e e e e e e e e e e Y u . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", | ||
155 | "e e - .]. . . . . . . . . . . .c L e O ' m ~.e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e Y + ' . . . . .' / e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e z 5 j 3 e 3 ' .' O e + i + Y e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e q j & e e e e e e e e e e e 3 c z 7 ]. . . . .' / e e e e e e e e e e e e | . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", | ||
156 | "e e - .]. . . . . . . . . . . .c L ~.O ' m ~.e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e * ' ]. . . . ^ z e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e 3 j m r | m z - ' ' 2 e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e q j & e e e e e e e e e e e 3 c z 7 ]. . . .c m z e e e e e e e e e e e e k ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", | ||
157 | "e e - .]. . . . . . . . . . . .].f 4 + m ~.e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e - t c . . .' 4 e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e | _.j q e u j & e k i . U e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e q j & e e e e e e e e e e e 3 c z 7 ]. . . .j 3 e e e e e e e e e e e e - 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", | ||
158 | "e e - .]. . . . . . . . . . . . . .' c m ~.e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e ~.^ . .c t - e e e e e e e e e e e e e e e e e ~.e e e e e e e e e e e e e e e e e ~.+ i u e J i 7 U ^ j J e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e q j & e e e e e e e e e e e 3 c z 7 ]. . .c c 7 e e e e e e e e e e e e * j . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", | ||
159 | "e e - .]. . . . . . . . . . . . . . . .c m ~.e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e & ' . . u e e e e e e e e e e e e e e e Y 7 k u G O z e e e e e e e e e e e e e e e O ' t - z > U 2 ' - e e e e e e e e e e e e e e e e ~.- 2 O 2 - ~.e e e e e e e e e e q j & e e e e e e e e e e e 3 c z 7 ]. . . u ~.e e e e e e e e e e e U ^ c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", | ||
160 | "e e - .]. . . . . . . . . . . . . . . .c m ~.e e e e e e e e e e r - - - - - - - U e e e e e e e e e e e e e e e e * ' . .j O e e e e e e e e e e e e e e - + ' i i j j > 2 e e e e e e e e e e e e e e z f j O Y / ~.k i + Y e e e e e e e e e e e e e e e - G L j j j T + | e e e e e e e e e q j & e e e e e e e e e e e 3 c z 7 ]. . .' O e e e e e e e e e e e e q ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", | ||
161 | "e e - .]. . . . . . . . . . . . . . . .c m ~.e e e e e e e e e e 2 i L & - e e e e e e e e e e e e e e 2 j .c _.- e e e e e e e e e e e e e - ^ j Z + & ^ ' ' ' O e e e e e e e e e e e e e ~.+ j + U e r > j * e e e e e e e e e e e e e e e O +.' c .c ' :.* ~.e e e e e e e q j & e e e e e e e e e e e 3 c z 7 ]. .c 5 z e e e e e e e e e e e ~.+ ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", | ||
162 | "e e - .]. . . . . . . . . . . . . . . .c m ~.e e e e e e e e e e | + G G G G G . 5 i <.2 e e e e e e e e e e e e e | j .' u U e e e e e e e e e e e e r u ' c L - e U * T ' 7 e e e e e e e e e e e e e / j ].- e | j t | e e e e e e e e e e e e e e O ' c ' m > . . .c ' 3 ~.e e e e e e q j & e e e e e e e e e e e 3 c z 7 ]. .j k e e e e e e e e e e e e | ].c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", | ||
163 | "e e - .]. . . . . . . . . . . . . . . .c m ~.e e e e e e e e e e e e e e e e e e z 3 j L - e e e e e e e e e e e e - L c j 4 e e e e e e e e e e e e e J j .c L z - | e | L j . r e e e e e e e e e e e e | _.j q e * j ^ Y e e e e e e e e e e e e e 7 c L O Y 7 c c . .].j 3 ~.e e e e e q j & e e e e e e e e e e e 3 c z 7 ].c c 7 e e e e e e e e e e e e & i ' ' ' ' ' ' ' ' ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", | ||
164 | "e e - .]. . . . . . . . . . . . . . . .c m ~.e e e e e e e e e e | u + + + + G 4 z e 3 i k e e e e e e e e e e e e - 5 c 2 e e e e e e e e e e e e - L c .c L z 2 ' O e / ' ' O e e e e e e e e e e e e r . j + | u j & e e e e e e e e e e e e e z . > | e 7 + ].]. . . .].' J e e e e e q j & e e e e e e e e e e e 3 c z 7 ]. . ~.e e e e e e e e e e e Y O [.[.* * * * * * * * 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", | ||
165 | "e e - .]. . . . . . . . . . . . . . . .c m ~.e e e e e e e e e e 2 i ' ' ' ' ' j m z r ^ - e e e e e e e e e e e z . ' 5 z e e e e e e e e e e e e k ' . .c L z 7 ' ' 7 e G j ^ r e e e e e e e e e e e e & ' c ' c ' q e e e e e e e e e e e e e J j c | e 3 ' . . . . . .c 7 e e e e q j & e e e e e e e e e e e 3 c z 7 .' O e e e e e e e e e e e e e e e e e e e e e e e e - ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", | ||
166 | "e e - .]. . . . . . . . . . . . . . . .c m ~.e e e e e e e e e e 2 ' . . . . ._.' & e 4 i q e e e e e e e e e e e r . j u e e e e e e e e e e e e z m c . .c L z 7 ' ^ U | ].j 2 e e e e e e e e e e e e O . . . - e e e e e e e e e e e e z t ].' 4 e * j ]. . . . . . . . . > z e e e q j & e e e e e e e e e e e 3 c z 7 c t z e e e e e e e e e e e R Q C C C C C C C C C Q e - ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", | ||
167 | "e e - .]. . . ._. ' ' ' c . . . . .c m ~.e e e e e e e e e e 2 ' . . . . . .c 5 r 7 j 4 e e e e e e e e e e e r . j 3 e e e e e e e e e e e e / ' ]. . .c L z 7 .j / e u i + e e e e e e e e e e e e | ]. . ^ r e e e e e e e e e e e e 4 ' > r - <. . . . . . . . . . .' & e e e q j & e e e e e e e e e e e 3 c z 7 j & e e e e e e e e e e e e X [ 6 ( ( ( 6 6 1 6 [ $.e - ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", | ||
168 | "e e - .]. . . . . q | O + ].c . . . .c m ~.e e e e e e e e e e 2 ' . . . . . .c .| z ' G e e e e e e e e e e e r . i q e e e e e e e e e e e ~.G ' . . .c L z 7 ]. . e O j m z e e e e e e e e e e e r L ]. .' G Y e e e e e e e e e e e r . ' j 4 e k ' . . . . . . . . . . .].' / e e q j & e e e e e e e e e e e 3 c z 7 c 7 e e e e e e e e e e e e ) S = = = = = = @.= S F e - ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", | ||
169 | "e e - .]. . . .j O e e e ~.7 . c f . .c m ~.e e e e e e e e e e 2 ' . . . . . .]. q Y ' ^ e e e e e e e e e e e r . i | e e e e e e e e e e e z m c . . .c L z 7 ].c f | z .' q e e e e e e e e e e e Y . .j J e e e e e e e e e e e e 7 ' c t - z .]. . . . . . . . . . . . . > z e q j & e e e e e e e e e e e 3 c z 7 ' . Y e e e e e e e e e e e >., , , , , , , , , , h ) e - ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", | ||
170 | "e e - .]. . . .j O e z z e e r & t t _.c m ~.e e e e e e e e e e 2 ' . . . . . .].' / ~.f ^ e e e e e e e e e e e r ^ t - e e e e e e e e e e e 7 j . . . .c L z 7 ]. .j J e + i 3 e e e e e e e e e e e e k ' ].' / e e e e e e e e e e e e 3 ' u e * ' . . . . . . . . . . . . . .' k e q j & e e e e e e e e e e e 3 c z 7 i * e e e e e e e e e e e e % H , , @ @ , @ , , , : v e - ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", | ||
171 | "e e - .]. . . .j O e 2 & 7 Y e U k m L c m ~.e e e e e e e e e e 2 ' . . . . . . .j 4 e . ^ e e e e e e e e e e e r ^ . U e e e e e e e e e e e * ' . . . .c L z 7 ]. .' + ~.* i . U e e e e e e e e e e e * j c t | e e e e e e e e e e e Y ^ c ' O e + ' . . . . . . . . . . . . . .].T G . ' & e e e e e e e e e e e 3 c z 2 .- e e e e e e e e e e e ,.*.b : : : s s s W : : H N e - ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", | ||
172 | "e e - .]. . . .j O e r * J 2 Y e r G > t > ~.e e e e e e e e e e 2 ' . . . . . . .j J e > ^ e e e e e e e e e e e z m + e e e e e e e e e e e e + . . . .c L z 7 ]. .c t r 7 c z e e e e e e e e e e e 2 j m z e e e e e e e e e e e - :.c ' - - 5 . . . . . . . . . . . . . . .].' ' & e e e e e e e e e e e 3 c z q G e e e e e e e e e e e e Q l s s s s : 8 s s s : H N e - ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", | ||
173 | "e e - .]. . . .' k ~.e | * * 7 e e 7 u > ^ ~.e e e e e e e e e e 2 ' . . . . . .]. q Y ' ^ e e e e e e e e e e e - k e e e e e e e e e e e ~.^ . . . .c L z 7 ]. . .' | z m ' | e e e e e e e e e e e | ].' ^ Y e e e e e e e e e e e / ^ U 2 j . . . . . . . . . . . . . . . . . . .' & e e e e e e e e e e e 3 c z 2 2 e e e e e e e e e e e e *.A : : : s : : s s s W H *.e - ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", | ||
174 | "e e - .]. . . . .t 7 e Y / 4 3 z e U 4 . . ~.e e e e e e e e e e 2 ' . . . . . .]. q Y u e e e e e e e e e e e - J e e e e e e e e e e e z m . . . .c L z 7 ]. . .' O ~.^ j * e e e e e e e e e e e - m ' u e e e e e e e e e e e e k j ' & e 4 ' . . . . . . . . . . . . . . . . . . .' & e e e e e e e e e e e 3 c z - U e e e e e e e e e e e e N : @ W h h h @ @ @ W h K v e - ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", | ||
175 | "e e - .]. . . . .t + r e - 3 G q e e 7 + u ~.e e e e e e e e e e 2 ' . . . . . .c .| z ' & e e e e e e e e e e e | i q e e e e e e e e e e e 7 _.c . . . .c L z 7 ]. . .' k e + i k e e e e e e e e e e e z ^ j & e e e e e e e e e e e ~.+ ' j J e u . . . . . . . . . . . . . . . . . . .' & e e e e e e e e e e e 3 c - e e e e e e e e e e e e e e v , d _ _ _ _ _ _ &., &.h ) e - ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", | ||
176 | "e e - .]. . . . .L m * e e O + 4 ~.e - 3 G ~.e e e e e e e e e e 2 ' . . . . . .c 5 r 7 j J e e e e e e e e e e e 7 j 7 e e e e e e e e e e e q ]. . . . .c L z 7 ]. . .' u e 3 i u e e e e e e e e e e e U . i 4 e e e e e e e e e e e z ^ ' 2 Y f ]. . . . . . . . . . . . . . . . . . . .' & e e e e e e e e e e e 3 c - e e e e e e e e e e e e e e F @.l l l l l l l = l l @.N e - ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", | ||
177 | "e e - .]. . . . .f m . - e z & 3 U e z 4 k ~.e e e e e e e e e e 2 ' . . . . . .' G e 3 i 7 e e e e e e e e e e e * ' - e e e e e e e e e e e * j . . . . .c L z 7 ]. . . ^ ~.* j . Y e e e e e e e e e e e u i * e e e e e e e e e e e - L f | - c . . . . . . . . . . . . . . . . . . . .' & e e e e e e e e e e e 3 c - e e e e e e e e e e e ~.7 e F = w w l l l l l = l w @.F e - ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", | ||
178 | "e e - .]. . . . . .L m 3 e e / J e e z J 4 ~.e e e e e e e e e e 2 ' . . . . .c j 7 U ^ L z e e e e e e e e e e e k - e e e e e e e e e e e 3 j . . . . .c L z 7 ]. . . > z 2 j ^ z e e e e e e e e e e e G i q e e e e e e e e e e e | j c 5 r 2 . . . . . . . . . . . . . . . . . . . .' & e e e e e e e e e e e 3 - e e e e e e e e e e e z k e F l 8 8 8 8 8 8 8 b 8 8 l *.e - ' . . ' ' ' ' ' ' ' ' ' ' ' ' ' c . . . . . . . . . . . . . . . . . . . . . . . . . . . . .c ' ' ' ' ' ' ' ' ' ' ' ' ' ]. .].c c c c c c c c c c c c c c c c c c c ]. . . . . . . . . . . .].c c c c c c c c c c c c c c c c c c c c ]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", | ||
179 | "e e - .]. . . . . ._.5 . | e z 7 e e - * 4 ~.e e e e e e e e e e 2 ' ]. ' ' j j 3 e / i 3 e e e e e e e e e e e e u f r e e e e e e e e e e e k ' . . . . .c L z 7 ]. . .c 5 - | j m - e e e e e e e e e e e & i 2 e e e e e e e e e e e 2 j c > e * ' . . . . . . . . . . . . . . . . . . . .' & e e e e e e e e e e e 3 m U e e e e e e e e e e e O + e F = w w w w w w w w w b '.N e - ' ' j 5 . k * 7 | z z z z | 7 * & ^ t ' . . . . . . . . . . . . . . . . . . . . . . . . . j t ^ G J 2 | z z z z - 7 O 4 u > ' ' .c c #.#.#.#.#.#.#.#.#.#.c c c c c #.c c . . . . . . . . . . c #.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.1._. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", | ||
180 | "e e - .]. . . . . . .f 5 k ~.e Y e e | * J ~.e e e e e e e e e e 2 j t + G 3 J 7 e - m T - e e e e e e e e e e e r L L Y e e e e e e e e e e Y + ' . . . . .c L z 7 ]. . .c _.| z ' _.| e e e e e e e e e e e 4 i | e e e e e e e e e e e O j . e k ' . . . . . . . . . . . . . . . . . . . .' & e e e e e e e e e e e k 4 e e e e e e e e e e e Y u + e F = w w w w w w w w l b = F e - j + / - e e e e e e e e e e e e e Y | * . ' ' c . . . . . . . . . . . . . . . . . . .c ' ' . * | Y e e e e e e e e e e e e e z 2 k J 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 2 ^ . . . . . . . .' 4 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", | ||
181 | "e e - .]. . . . . . ._.L ^ | e e e Y 2 * J ~.e e e e e e e e e e 2 j > - e ~.~.U 2 ^ i J e e e e e e e e e e e e | ].5 Y e e e e e e e e e e U + ' . . . . .c L z 7 ]. . .c c 7 z j _.| e e e e e e e e e e e 4 i - e e e e e e e e e e e 4 ' G e G ' . . . .]. ]. . . . . . . . . . . . . .' & e e e e e e e e e e e 4 | e e e e e e e e e e e | i G e F @.l w w w l l n l w w = F e r 7 ~.e ^.>.~ % # o # # # ) ) # C ~ ,.^.e Y 7 + =.' . . . . . . . . . . . . . . . . .' t & 7 Y e e ,.~ C $ I I *.*.*.I ) o X >...e e ~.e e e e e e e e e e e e e e e e e e e e {.' ]. . . . . . .' u U e e e e e e e e e e e e e e e e e e e 7 f c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", | ||
182 | "e e - .]. . . . . . . .f L 3 e e e z q O 4 ~.e e e e e e e e e e 2 j ^ z 7 G u 5 i j & U e e e e e e e e e e e e * j u ~.e e e e e e e e e e r ^ . . . . .c L z 7 ]. . .]. 7 r _.' 2 e e e e e e e e e e e * i - e e e e e e e e e e e 3 ' ' 3 ~.u ' . . .].L . 5 ]. . . . . . . . . . . . .' & e e e e e e e e e e ~.7 Y e e e e e e e e e e e k i G e F @.= w 8 b w w l l w b @.N e e e x C ) l @.@., # ) , d , d d _ h F % Q (.e ~.7 u ' c . . . . . . . . . . . . . G - e e (.Q # -.S l 1 H h @.S 1 = H : [ ( I o ;.e e e /.% % % % % % o % % % % % % o o o x e 2.' . . . . .c +.| e X o % % % % % % % % % % % o C % ! e r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", | ||
183 | "e e - .]. . . . . . . ._.f u z e e | 2 * 3 ~.e e e e e e e e e e 2 i m z 3 i c m + q ~.e e e e e e e e e e e e Y + j + ~.e e e e e e e e e e z > c . . . . .c L z 7 ]. . . .j O Y > i q e e e e e e e e e e e q z e e e e e e e e e e e k ' ' 4 ~.u ' . . .' u e & ' . . . . . . . . . . . .' & e e e e e e e e e e e U e e e e e e e e e e e - 5 j G e F = l n b b w b b b b H @.N e x % $.S @.A -.w g o ) d M d M M d , &.} S $.% ,.e Y O L ' . . . . . . . . . .].' > 2 ~.e >.% F = @.8 8 8 b s @ 8 b b P s h @.l @.y N N Q (.e $ %.] ] ] ] ] ] ] ] ] ] [ %.%.).C e - !.c . . . .j 3 e >.( %.] ] ] y ] ] ] ] ] [ ] %.@.1 ~ e J ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", | ||
184 | "e e - .]. . . . . . . . . G e e e | 2 J & ~.e e e e e e e e e e z 2 7 Y - 7 - z ~.e e e e e e e e e e e e e e - .' u ~.e e e e e e e e e e z > c . . . . .c L z 7 ]. . . .j O Y > i q e e e e e e e e e e e / 5 z e e e e e e e e e e ~.+ ' * r . . . .' u e & ' . . . . . . . . . . . .' & e e e e e e e e e e e e e e e e e e e e e e e J ' ' G e F = w l l l l = b b b b @.*.~ F S w 8 w s -.w g o ) d M _ } M M &.N ) = 1 ] @ Q ^.e | . ' . . . . . . . .c ' G z e /.% P @.H A s s s 8 : l : s 8 8 : W @ l w n 1 M S ).E ;.x V [ 6 1 1 1 1 1 ( ( ( B [ ] ] n ~ e }.j . . . > z e # ] 1 ( 6 6 [ 6 ( ( 6 6 = 1 [ l % e - <. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", | ||
185 | "e e - .]. . . . . . . . . / e e e z / 3 G ~.e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e J ' u ~.e e e e e e e e e e z > . . . . .c L z 7 ]. . . .j O Y > i q e e e e e e e e e e e / 5 z e e e e e e e e e e e + ' 2 z > . . .' u e & ' . . . . . . . . . . . .' & e e e e e e e e e e e e e e e e e e e e e e e & j ' G e F = b b l l l B l w w b b B $.= b 8 8 w 8 s b g o ) M M @ M M M _ N ) = 1 1 H S ) >.e r + ' . . . . . .c J ~.e X F @.H b A A A A A A h = A 8 w = s : @ s 8 w [ v = %.] [ o % [ ( 6 6 1 6 1 ( 6 ( = [ ] ] '.$ e r . ' .]. q e X B [ 6 '.( 6 1 6 ( ( 6 6 = 1 ] I /.~.+ ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", | ||
186 | "e e - .]. . . . . . . .].t z e e e Y 2 k + ~.e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e Y ^ u ~.e e e e e e e e e e z > c . .]. ' T z 2 ' ' i O Y m i / e e e e e e e e e e e / <.z e e e e e e e e e e e u j i q z > j j u e & j . . . . . . . .' & e e e e e e e e e e e e e e e e e e e e e e e q j G e F l 8 b l l l n n l w b 8 ( K K w 8 A b b D w g o ) d } , } M _ _ N ) = 6 1 s P l V X e R & j . . . . / e ^.C = l A A b A A A A A A : s h b w w 8 l K h W 8 [ v @.y 1 1 ] E n 1 6 6 1 1 1 ( 1 1 B [ ] ] n 6 ! e 7 .' + e (.N @.1 1 ( ( ( 1 ( '.( 6 6 = [ y ;.e q ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", | ||
187 | "e e - .]. . . . . . . .' G ~.e U U e | k + ~.e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e / ' ]. u ~.e e e e e e e e e e - ' . .].L . . . u z | . . . . . > 2 Y + > 7 e e e e e e e e e e e 2 u r e e e e e e e e e e e k ^ ^ 7 r + . . . . ^ & e 4 ^ . . . ^ _. . . . . . . .' & e e e e e e e e e e e e e e e e e e e e e e e r > j G e F = b 8 l l l = w n l l w ( : A 8 8 8 b A P w g o ) d M _ M M M _ N ) l 6 6 8 w h @.@.Q e U u ' . .c c q e (.# S b 8 b A A A A A 8 K : = s , A b w : = = 8 W s [ v @.%.1 6 1 [ 1 6 6 1 1 6 6 ( 6 1 6 ] ] [ n = V x e & j L - e % 6 n [ 1 ( ( ( ( ( ( ( ( ( = ] $ e z > . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", | ||
188 | "e e - .]. . . . . . . .j O e e | - e U 4 G ~.e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e r . ' . u ~.e e e e e e e e e e - ' . . . r U U U e ~.U U U U U U Y e U U ~.e e e e e e e e e e e ~.U e e e e e e e e e e e e U U U ~.e U U U U U U U e Y U U U Y - L c . . . . . .' & e e e e e e e e e e e e e e e e e e e e e e e e k i G e F = b 8 l l l = w w w l n ( : 8 b 8 8 w A -.b g o # M M _ M M M _ N ) l 1 1 s w h w w @.Q e r . ' ].' O e (.$ @.8 8 8 b A A A A K 8 8 : l w h s 8 8 h : b n s 8 [ v = %.1 6 1 1 1 6 6 6 1 6 ( '.'.( ( [ ] ] n D ] o e - T J e ;.n D = [ 1 ( ( 6 '.( ( ( 6 ( '.n ,.e k ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", | ||
189 | "e e - .]. . . . . . .c _.| e ~./ 7 e e q k ~.e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e O j . . u ~.e e e e e e e e e e - ' . .c > * O * O U - * * * * * J - ~./ J - e e e e e e e e e e e - O U e e e e e e e e e e e 2 * * - U / * * * * * q e 7 * * * O 4 t ]. . . . . . .' & e e e e e e e e e e e e e e e e e e e e e e e e | i G e F = w b l l l = w w w w w 6 W A w 8 A b b P w d o # } } d M M M _ N ) = 6 6 8 w h w P H @.! e | !.j 3 e (.$ S 8 8 8 s b K A A A b s K K : w : A b l s : h b 8 w [ v = %.1 6 [ 1 6 6 6 6 1 1 1 '.( ( '.[ ] ] D D ( y X e 2 r e E [ -.D [ 1 ( ( ( ( ( ( ( 6 ( 1 Q e 7 ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", | ||
190 | "e e - .]. . . . . . . ^ r e z O q z e - 3 ~.e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e - m c . . u ~.e e e e e e e e e e z 5 c . .c j j j =.z 2 i j j j j i O Y m i / e e e e e e e e e e e / T z e e e e e e e e e e e u i i q z m i j j j i . e G i j j j ' . . . . . . . .' & e e e e e e e e e e e e e e e e e e e e e e e e U . + e F = w b w l l = w l w b b 6 W A w 8 8 b 8 P l d o # } } M M M M _ N ) = 6 6 8 w h w b K l -.~ e O . U e o S b 8 s 8 P 8 K : A A 8 8 A K h = : K b l 8 W @ b 8 w [ v = %.1 6 1 6 6 6 6 6 1 1 1 B ( ( B [ ] ] n D = %.E e e e Q %.1 D D [ 1 6 ( ( 6 ( 6 ( 6 [ ) e U . ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", | ||
191 | "e e - .]. . . . . . .' G e e | * O 7 e Y O Y e e e e e e e e e e e e e e e e e e e e e e e e e e e e e ~.G ' . . . u ~.e e e e e e e e e e z > . . . . .c L z 7 ]. . . .j O Y > i q e e e e e e e e e e e / 5 z e e e e e e e e e e e + ' 2 z ^ . . .' u e & ' . . . . . . . . . . . .' & e e e e e e e e e e e e e e e e e e e e e e e e e J u e F = w H l l l l w l w b b 1 : K b 8 8 w : s l g o # d M M d M M _ N ) l 1 1 8 w h w b A s S I /.U z e Q @.b b 8 8 8 8 b K : A A A b 8 K h w : s b l b A @ 8 s b [ v = %.1 6 1 6 6 6 6 1 1 1 1 6 6 6 B [ ] ] n n B y ] Q e ,.-.%.1 n D [ 6 6 ( ( ( ( 6 ( 1 6 ~ e [.j . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", | ||
192 | "e e - .]. . . . . . .' J e e 2 * J J r e | Y e e e e e e e e e e e e e e e e e e e e e e e e e e e e e * ' . . . . u ~.e e e e e e e e e e z > c . . . . .c L z 7 ]. . . .j O Y > i q e e e e e e e e e e e / 5 z e e e e e e e e e e ~.+ ' q r ^ . . .' u e & ' . . . . . . . . . . . .' & e e e e e e e e e e e e e e e e e e e e e e e e e - & e F = b b l l l = w w w b b ( : 8 l 8 K l 8 s b g o ) d _ } d M M &.v ) l 6 1 8 w h w P b 8 8 S C e e >.W H b b s b 8 s b K : A A A A 8 8 K b h b b b : l b : s b [ v = %.1 6 1 6 6 6 6 1 1 6 1 ( ( ( B [ ] ] D D ( y ] $.,.o [ y 1 D D 1 1 ( ( ( ( ( ( ( [ % e - !.c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", | ||
193 | "e e - .]. . . . . . . 7 e U O * 4 G | e U e e e e e e e e e e e e e e e e e e e e e e e e e e e e e 7 +.c . . . . + ~.e e e e e e e e e e z > c . . . . .c L z 7 ]. . . .j O Y ^ i q e e e e e e e e e e e q t z e e e e e e e e e e e G ' 4 Y u ' . . .' u e & ' . . . . . . . . . . . .' & e e e e e e e e e e e e e e e e e e e e e e e e e ~./ e F = b b l w b = w w w b b 6 W 8 8 l b 8 w D w g o } , _ M M M } d ) ) l 6 1 8 w : w b 8 b 8 l -.>.e $ @.8 b b b b b 8 8 A : : : : : s 8 K H H = @.@.H l l : W 8 6 v = %.[ 1 1 6 1 1 ( 1 1 6 1 6 ( ( B [ [ [ -.D = y [ B $ B [ y 1 D D 1 [ 6 ( ( ( 6 ( 1 E (.e 2.' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", | ||
194 | "e e - .]. . . . . . .c z e z J * 3 u 3 e e U Y U Y e e e e e e e e e e e e e e e e e e e e e e e e z 5 . . . . . u ~.e e e e e e e e e e z > . . . . . ._.. ^ ]. . . .].' 2 U 5 j 2 e e e e e e e e e e e O i - e e e e e e e e e e e 3 ' ' 4 ~.u ' . . .' u e & ' . . . . . . . . . . . .' & e e e e e e e e e e e e e e e e e e e e e e e e e e r e F @.w b l = l = w w w b s 1 W P W w @.h b @.'.) C o # o ) , d ) } ) ) l ( ( s b : w b K w w w S % ;.l K 8 8 K b 8 8 8 A 8 K K K 8 8 A l S W ) ) ) ) v l S : W 8 1 v = y [ 1 1 ( 1 [ ( ( 1 6 ( [ 6 6 B [ ] y D n b ] ] 1 w = [ y [ n D 6 1 1 1 6 B 6 1 1 X e {.' ]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", | ||
195 | "e e - .]. . . . . .c > r e - J J & . > z e 4 + u + 4 - e e e e e e e e e e e e e e e e e e e e e e U u ' . . . . .c > Y e e e e e e e e e e U u . . . . . . . . . . .c c 7 z j .| e e e e e e e e e e e 4 i - e e e e e e e e e e e 3 ' ' & e + ' . . .' u e & ' . . . . . . . . . . . .' & e e e e e e e e e e e e e e e e e e e e e e e e e e e e F = b b b b b = b b b w w B s s 8 8 b @.D % X x e e e e >.X o M d v ) = 1 [ W 8 s w b K b b 8 l $.V b s s 8 b 8 8 8 b b K A A : s l @.$ ! ~ e e e e (.X C &.l b 1 v = ] 1 1 [ 1 ( [ 6 6 1 6 6 1 ( 6 B 1 [ y = = B ] [ B D = [ y 1 = D ( 6 6 6 ( ( 6 [ $ e x > . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", | ||
196 | "e e - .]. . . . . . + Y e - J J + > 4 Y ~.u i i i j L O e e e e e e e e e e e e e e e e e e e e e e O ' ]. . . . .c 5 Y e e e e e e e e e e U u ' . . . . . . . . . . . . .c ].| z ' _.| e e e e e e e e e e e 4 i - e e e e e e e e e e e * ' + e & ' . . .' u e & ' . . . . . . . . . . . .' & e e e e e e e e e e e e e e e e e e e e e e e e e e e e F = l w b b b l b b b w w n b A b w l o ,.e e r - | | - Y e ^.~ # g ) = 1 [ : s s w b K w w 8 b b l 8 8 8 8 8 8 8 8 8 l : : A A @.*.;.^.e ~.z | | | z e e (.% D ] v = y 1 1 1 6 6 1 6 1 [ ( '.6 [ 1 ( ( 1 ] B ( [ 1 6 6 6 ( 6 1 1 6 1 [ ( 6 6 6 B [ n >.e ` ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", | ||
197 | "e e - .]. . . . . .' k e e | * 4 u / e e ~.u + 2 J m ' ' / e e e e e e e e e e e e e e e e e e e e e z m . . . .c 5 U e e e e e e e e e e ~.& ' . . . . . . . . . . . . .c 5 - | j m - e e e e e e e e e e e k i 7 e e e e e e e e e e e / j > e 4 ' . . .' u e & ' . . . . . . . . . . . .' & e e e e e e e e e e e e e Y Y e e e e e e e e e e e e e F = l w b b b l w w w b w B l = @.$.! e e | k ^ ' ^ 4 3 k }.z e ^.% } = 6 1 8 8 : w b K b w b b s w 8 8 8 b b b 8 8 8 l 8 s 8 S o (.e r * u T m 3 3 3 k 2 ~.e ;.( g = y 1 6 6 6 6 1 6 6 [ ( '.6 6 1 6 ( ( 1 '.B [ B B ( 6 1 ( ( 6 6 1 1 6 6 ( ( '.[ C e | 4.c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", | ||
198 | "e e - .]. . . . . .' 4 e e - * k / e e z z u & e e - m ' > z e e e e e e e e e e e e e e e e e e e e e k ' . . . .c t - e e e e e e e e e e e k j . . . . . . . . . . . . . m z 7 j > z e e e e e e e e e e e G i 7 e e e e e e e e e e e 7 i c m Y / . . .' u e & ' . . . . . . . . . . . .' & e e e e e e e e e e e e e q | e e e e e e e e e e e e e ) @.l l w w w w w w w P : '.s [ @ ;.e x & j . 4 J q O + O e e % 1 '.( b b : w b s 8 b w b s 8 8 8 8 8 8 8 b 8 8 K 8 b @.% e e q m ' ' > 4 4 * q 3 & - e >.v S y [ 1 1 1 6 [ ( 6 [ 6 ( 1 6 1 1 1 1 1 6 6 1 B ( 1 6 6 1 6 6 6 1 1 1 1 6 ( [ *.e Y u ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", | ||
199 | "e e - .]. . . . . .j J e e - J * U e | k q + 5 r e e J ' j * e e e e e e e e e e e e e e e e e e e e e | ' . . . .c f - e e e e e e e e e e e J j . . . . . . . . . . . . . ^ Y O j . U e e e e e e e e e e e + i / e e e e e e e e e e e | c L - | . . .' u e & ' . . . . . . . . . . . .' & e e e e e e e e e e e e ~.u 3 e e e e e e e e e e e e e ! S l l l l l l l l l l w = : [ ! e ~ u j c . . u q 2 4 4 7 & 4 e ^.) [ ( s P K b 8 8 8 8 b 8 A 8 8 8 8 s s s 8 8 8 8 K @.$ e e J ' . . . * q O k * q u | e ~ ( y 1 1 1 1 6 [ 6 6 [ 6 ( 1 6 6 6 1 1 [ 1 6 6 1 1 1 ( 6 1 1 1 6 6 1 1 1 1 1 ( ~ e * ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", | ||
200 | "e e - .]. . . . . .j / e e r J 2 e 7 + 3 O u ' q e e - c ' G Y e z O q U | 2 e e e e e e e e e e e e e U u ' . . .].].7 e e e e e e e e e e e O ' ]. . . . . . . . . . . . . . e 4 i u e e e e e e e e e e e Y u i * e e e e e e e e e e e z > ].7 z . . .' u e & ' . . . . . . . . . . . .' & e e e e e e e e e e e e z > U e e e e e e e e e e e e ,.g H h h h h : h h h W 8 l l o e x . j . . . . ._.5 . * 7 k 2 & 4 e >.n 1 : s b s 8 8 8 8 b 8 s 8 8 8 8 8 s s s s s 8 H @ >.e * ' c . . . ._.L m G q O 3 2 u - e o %.1 6 6 ( ( 1 ( 6 1 B = '.B '.= B @.B = n l = B B n = B B B B = = = B = 1 % e - m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", | ||
201 | "e e - .]. . . . . .j / e e U / J * G & 4 O J i & e e r > ^ r e 7 i m z 4 ' r e e e e e e e e e e e e e * ' ]. . .]. q e e e e e e e e e e e 7 ].c . . . . . . . . . . . .' G e G i & e e e e e e e e e e e z ^ j 3 e e e e e e e e e e e U u ' ' O e ^ c . .' u e & ' . . . . . . . . . . . .' & e e e e e e e e e e e e ~.u ' 2 e e e e e e e e e e e e e % @.s : : : s W W W h h b P ,.e 6.j . . . . . . .c c j + | & 7 u | e o ] W W w s s 8 8 8 s 8 : s s s s b s s s s s 8 l % e | T . . . . . .].c J q 3 / G e ,.6 [ 6 1 6 B 1 ( 6 [ = l B B F ( B B 6 B ( = B = B = = n B B B B B = B 6 E (.e 2.' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", | ||
202 | "e e - .]. . . . . .' J e e e 7 4 G G k 3 J | .5 z e U . ' ^ r e 7 .^ z J j / e e e e e e e e e e e e e z 5 c . . .' * e e e e e e e e e e e - 5 c . . . . . . . . . . . .' J e . j J e e e e e e e e e e e - m j G e e e e e e e e e e e e & j j 3 e & ' . .' u e & ' . . . . . . . . . . . .' & e e e e e e e e e e e Y e / i & e e e e e e e e e e e e e ;.8 s s s s w s s s W , @.o e | 5.c . . . . . . . . . .j + 7 3 / G e >.1 b s : b 8 : s 8 b s : s s s : s s 8 s s s b s x e G ' . . . . . . . . . .c j * J q & 7 e $ ] 1 6 6 B 1 6 1 y ( = B B $ I 1 B ( ( B n 1 ( D B 6 = n B B 1 B n B 1 X e 2 ' ]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", | ||
203 | "e e - .]. . . . . .' 4 e e e - J k G G + G Y + i 7 e z t ' + Y e | t ^ z J i G e e e e e e e e e e e e e e G ' . . .j 3 e e e e e e e e e e e Y ^ . . . . . . . . . . . .' 7 z > j 7 e e e e e e e e e e e | .' . e e e e e e e e e e e e J ' ' u ~.O j . .' u e & ' . . . . . . . . . . . .' & e e e e e e e e e e e O | z L L z e e e e e e e e e e e e ^.v b @ W W W $.@ W $.8 l ! e 4 j . . . . . . . . . . . .j * J 2 + | e $ 6 = b l w w w w l l l w w l l w w l b w l @.I e >.!.c . . . . . . . . . . .].L 2 3 / & e ;.'.1 ( '.'.'.'.( 1 = l = S # ;.'.= = '.@.l n P s b @.= = = = = = n 6 # e r ^ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", | ||
204 | "e e - .]. . . . . . + Y e e Y O k + . > . e O j & e 7 ' j * e e | L ^ z J j t - e e e e e e e e e e e e e 7 ' . . .' G e e e e e e e e e e e e + . . . . . . . . . . .].c z | ]. - e e e e e e e e e e e 2 j ^ U e e e e e e e e e e e | c c .z | c c .' u e & ' . . . . . . . . . . ' & e e e e e e e e e e e & 3 e G i / e e e e e e e e e e e e e Q H g &.&.g &.g &.g , $.>.Y u ' . . . . . . . . . . . . . q J k O e % @.h : h h h h h h h h : h h h h h h h h h H Q e 3.' ]. . . . . . . . . . . . .' 4 J / u U /.D ( B B B B B ( 1 n l = 6 ) e o 1 l n = = B D D D n n B n n n = B B ,.e 3 j . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", | ||
205 | "e e - .]. . . . . .].5 z e e e | k u > t > e z c ^ - u j > z e e | t ^ z J ' ' * e e e e e e e e e e e e e r . . .' u U e e e e e e e e e e e J ' . . . . . . . . . . . u ~.O i ^ r e e e e e e e e e e e * j c 5 - e e e e e e e e e e e U 5 c j 2 Y ^ .' u e & ' . . . . . . . . .+.^ > ' & e e e e e e e e e e e 3 > e q j u e e e e e e e e e e e e e >.h l b l s l P D B ] F e z m c . . . . . . . . . . . . .c 2 3 3 ` e Q : , , _ _ _ _ _ _ &.g d _ _ _ _ _ _ _ _ _ h X e 3 j . . . . . . . . . . . . .' G O * G - e I v ) v v v } v &.} ) } v o e ,.) } } } ) ) # # # # # # # # # # ) ! e | f c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", | ||
206 | "e e - .]. . . . . . .].O e e e ~.7 + m m ~.~.G _.^ ' 2 e e e 7 _.^ z J ' . Y e e e e e e e e e e e e e J j . . > z e e e e e e e e e e e 7 j . . . . . . . . . . .j 3 e & i k e e e e e e e e e e e e 3 ' c .7 e e e e e e e e e e e e & ' & e & ' .' u e & ' . . . . . . . . . ~.q j & e e e e e e e e e e e 3 j 7 U t :.| e e e e e e e e e e e e e # @.b w 8 = l n 1 y E e - j . . . . . . . . . . . . . . O 4 3 ` e ! P W W @ @ @ @ @ @ h @ , @ @ @ @ @ @ @ @ @ H X e 2.' . . . . . . . . . . . . .' + * 4 k | e ) g d g g d M g $.v v v g o e e C , N v } v # # # ) ) ) ) # # ) o (.e 2.j . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", | ||
207 | "e e - .]. . . . . . . .u z e e e e z * u u z 2 u ' 5 q e e e e 7 ^ z J ' ].c 7 e e e e e e e e e e e e e - L c .].' | e e e e e e e e e e e z 5 c . . . . . . . . .c 7 U 5 j / e e e e e e e e e e e Y u .j O e e e e e e e e e e e e q j > U | .' u e & ' . . . . . . .c c | e q j & e e e e e e e e e e e 3 i 3 e k i 4 e e e e e e e e e e e e e ! @.n = 8 B = = 6 [ 0 e z f c . . . . . . . . . . . . .c 2 3 3 3 e Q l W h h h h h h h @ h h @ @ @ h h @ @ @ @ H X e k j . . . . . . . . . . . . .' G O * G - e F = w P P s W D [ s @ W H # e /.# l P W , W v v d &.V @ &.g d &.$.! e 7 c c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", | ||
208 | "e e - .]. . . . . . .f 5 3 U e e e e e e U + i ' c > | e e e e e 7 ' ^ z J ' .j k e e e e e e e e e e e e e e + ' . .j 2 e e e e e e e e e e e ~.G ' . . . . . . . . . ^ ~.2 j 5 - e e e e e e e e e e e r L c .j 3 e e e e e e e e e e e e - m ' q e . ' u e & ' . . . . . . .j k e e q j & e e e e e e e e e e e 3 j ^ U 7 j ^ r e e e e e e e e e e e e R &.@.= 8 B = l '.1 -.x U . . . . . . . . . . . . . ^ q J k J e C l W W @ @ h @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ l X e J ' . . . . . . . . . . . . .' 4 J / . r ^.&.b b h : s h 8 1 W , @ H # e Q = h s @ _ , ) } } M _ , _ _ d _ W } x e & ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", | ||
209 | "e e - .]. . . . . . . .5 ^ 3 - Y ~.e e ~.U k G * ^ f z e e e e e 7 j ^ z J ' . > z e e e e e e e e e e e e e 2 ' . .' 3 e e e e e e e e e e e e O ' ]. . . . .j ' . .j O e + j u e e e e e e e e e e e e | c ]. .' + Y e e e e e e e e e e e e & ' ' + e q ' ' u e & ' . . . . . . > z e e q j & e e e e e e e e e e e 3 ' j 7 U ^ i 7 e e e e e e e e e e e e e % 6 = s ( '.l 6 [ [ ! e k j . . . . . . . . . . . .j * J 2 u 7 e o = &.8 h h h h h h h h @ @ @ @ W @ , @ @ @ : o e | +.]. . . . . . . . . . . .].L 2 3 q u e >.@ @ s s W h h s 6 W , h H # x &.: h 8 h , , } } } M _ , , _ d _ s h % e z m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ._._. ._. . . ._.f _.' J e e ", | ||
210 | "e e - .]. . . . . . . .t > u k / 7 | | 2 / Y e e k i 2 e e e e e 2 j ^ z J ' . .j 2 e e e e e e e e e e e e e r . . u e e e e e e e e e e e e z 5 c . .].t O 3 c ' ^ Y 7 j / e e e e e e e e e e e e O . .c L z e e e e e e e e e e e e | ].' 7 e + i u e & ' . . . . .c ' 2 e e e q j & e e e e e e e e e e e 3 ' ' & e k i G e e e e e e e e e e e e e ~ = '.: '.( b ( ] ] C e 7 c . . . . . . . . . .j + 7 3 / . ~.>.g 8 = d @ @ @ @ @ @ @ @ W @ @ @ @ @ @ @ @ @ , @ R ~.. . . . . . . . . . .c j * * q & / e % S n : h s W h 8 1 h , W K o % l W @ s h , , } M } d _ _ _ , _ d : , , ~ e O ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .f t L f L .t L L 5 t ' * e e ", | ||
211 | "e e - .]. . . . . . . ._.5 ^ + 3 J O O * O ~.e e 2 j & e e e e e 2 j ^ z J ' . . + e e e e e e e e e e e e e e 4 ' .c 5 r e e e e e e e e e e e e k ' . .c L r 7 j 2 e + j > r e e e e e e e e e e e e & ' . . .' | e e e e e e e e e e e e e & ' ^ U - 5 . e & ' . . . . .' 3 e e e e q j & e e e e e e e e e e e 3 ' c 5 r | ' m z e e e e e e e e e e e e ^.) 1 : '.B l ( [ ] N x e + ' . . . . . . .].c j u | & 7 . / e X = W @ s @ @ @ @ @ @ @ @ @ @ @ @ W @ , @ @ @ h 8 ! e q ' ]. . . . . . .].]. 4 2 3 q u /.R ) = 8 : w : s h 8 [ h _ @ h I W : W @ h h , @ } M M d _ _ _ _ d _ _ , , # ^.~.u ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ._.L 5 t m c 5 5 L m L ' J e e ", | ||
212 | "e e - .]. . . . . . . . .f 5 ^ u G 3 4 4 J ~.e e z c ^ Y e e e e 2 j ^ z J ' . .c L - e e e e e e e e e e e e e - T c ].c 7 e e e e e e e e e e e e - Z c .c L z 2 i 3 e 2 ' j J e e e e e e e e e e e e Y u ' . . .' * e e e e e e e e e e e e e - 5 ' & e - 4 e & ' . . . .' u U e e e e q j & e e e e e e e e e e e 3 ' ].' / ~.^ j / e e e e e e e e e e e e e Q 6 8 = ( w ( [ [ H C e - 5 . . . . ._.L ^ * 7 k 2 k 2.e (.v K h @ s h h h h h h h h @ @ @ @ h h @ @ @ @ h A v (.e & j ]. . . . ._.t 5 u q / 3 7 ^ 7 e ! l : s 8 b s s @ 8 [ h , @ @ s W W W @ : @ , @ } } d _ d _ _ _ d _ d , _ h Q e | 7.c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .].L m > t 5 > ^ > > ^ 5 ' J e e ", | ||
213 | "e e - .]. . . . . . . . . .f L m ^ . u + & ~.e e Y u f - e e e e 2 j ^ z J ' . . .' J e e e e e e e e e e e e e e + .' 4 e e e e e e e e e e e e e k j .c L z | J e z > j ^ z e e e e e e e e e e e e - L c . . .' + e e e e e e e e e e e e e e / j ].' & r e e & ' . . .' > z e e e e e q j & e e e e e e e e e e e 3 ' .' G e J i + Y e e e e e e e e e e e e x V w l 6 b 6 ] 1 : g ~ e 7 |. . . . . 2 2 4 4 7 k u r e % w , @ @ h @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ W , H % e r u ' ]. . . ^ * q O k J 2 ^ {.e >.&.8 W W 8 s P 8 h 8 [ W , @ , s s @ W @ P @ _ , } } d , d _ _ , d d _ _ _ , g >.e 3 j . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ._.f f ].f ^ ^ 5 f t ].' J e e ", | ||
214 | "e e - .]. . . . . . . . . . . .f L 5 m m . ~.e e e 4 i q e e e e 2 j ^ z J ' . . .' u U e e e e e e e e e e e e e q j .' + Y e e e e e e e e e e e e z > ' c L z e e | ^ ' ' 2 e e e e e e e e e e e e e / j . . . . > z e e e e e e e e e e e e e e 4 j c ' m * e & ' . .' ^ - e e e e e e q j & e e e e e e e e e e e 3 ' .c t z - _.' - e e e e e e e e e e e e e o @.n 6 b 6 ] 1 W h F x e | ^ j ' ]. . 4 J 2 O . & (.e Q 8 h @ @ @ h @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ W , , H Q e U 3 ' c ^ 4 4 * 2 3 . 7 e x *.l : s 8 s : s b h 8 [ W , @ @ @ W W h @ s W , , } } M _ d _ _ _ _ _ _ _ _ _ : o e r ^ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .]. . .].]. .].].].].].].].f > 5 ]. .].].' J e e ", | ||
215 | "e e - .]. . . . . . . . . . . . . . ._.c > ~.e e e 2 i 4 e e e e 2 j ^ z J ' . . .]. | e e e e e e e e e e e e e z ^ c t - e e e e e e e e e e e e e | m ' f 4 O & +.j ' J e e e e e e e e e e e e e ~.G ' . . . .c 7 e e e e e e e e e e e e e e ~.4 ' j . e & ' j + z e e e e e e e q j & e e e e e e e e e e e 3 ' . .' O e u i J e e e e e e e e e e e e e ;.l = 6 b 6 ] 1 W _ S *.,.e r * . i u * & u G 7 e e C s W @ @ @ @ W @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ W @ , h w Q e e 7 G 5 i k 2 3 + u 4 r e ,.I @.W h h s 8 W W : @ s 6 W , h @ @ W W @ , s s , , } } M _ d _ _ d _ , _ _ _ d , h X e 2 ' ]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .f t .t 5 t t 5 m L c t 5 L 5 t m > ^ ^ f c ].c c ].' J e e ", | ||
216 | "e e - .]. . . . . . . . . . . . . . . .c m ~.e e e | c + Y e e e 2 j ^ z J ' . . . .' 3 e e e e e e e e e e e e e e 3 ' .j / e e e e e e e e e e e e e e - ^ ' i i j j t O e e e e e e e e e e e e e e r L c . . . . .j 4 e e e e e e e e e e e e e e e e 7 u ' . e G j > O U e e e e e e e e q j & e e e e e e e e e e e 3 ' . . u e * j ^ Y e e e e e e e e e e e e /.I ( 6 b ( ] [ W , l @.F ! e e U | {./ O {.- e e x o 8 h @ @ @ @ @ W @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ h , @ @ h 8 o ,.e e z 2 | {./ | U e e ;.N l = W @ , h P W , @ , h ( : @ : h @ W W h , h s @ , } } d &.d , _ d d _ _ _ _ _ _ , ) (.e 2.' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .L 5 f t m L ^ t m ^ t L ^ . m u u u u . . . ^ ^ > _.^ u t > q e e ", | ||
217 | "e e - .]. . . . . . . . . . . . . . . .c m ~.e e e z > > r e e e 2 j ^ z J ' . . . . > r e e e e e e e e e e e e e | +.]. u e e e e e e e e e e e e e e e r O + u u 3 - e e e e e e e e e e e e e e e q ]. . . . . . ^ r e e e e e e e e e e e e e e e e ~.7 q e 2 q U e e e e e e e e e e q j & e e e e e e e e e e e 3 ' . .c L - z c 2 e e e e e e e e e e e e e C ( 6 b ( ] [ h , = 8 l '.) ! x e e e e e e ~ Q &.H h @ @ @ W h @ @ @ @ @ @ @ @ @ h 8 @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ H &.C ~ e e e e e e (.X # h : b ( w @ , , 6 B &.h , W B h , @ s h W W h h , 8 h @ } } d _ _ , _ _ d _ _ _ _ _ _ _ : % e - !.c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .m m m 5 > 5 ^ L > . 5 . ^ u ^ . . u u + + ^ + + + + + G + u / e e ", | ||
218 | "e e - .]. . . . . . . . . . . . . . . .c m ~.e e e ~.u j z e e e 2 j ^ z J ' . . . .]. q e e e e e e e e e e e e e ~.u c L - e e e e e e e e e e e e e e e e Y U U e e e e e e e e e e e e e e e e e G ' . . . . . . .' 7 e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e q j & e e e e e e e e e e e 3 ' . . .j J e + i k e e e e e e e e e e e e e >.n 6 b ( ] [ W , = P 8 8 w S v I # % o # ) @ H , h @ @ @ @ W h @ @ @ @ @ @ @ @ K ) % K @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ h l @ # # o o o # v H @.&., s ( w W @ , '.B @ W @ : ( W , @ s @ @ h W w g W @ @ } } _ _ _ , _ _ d _ _ _ _ _ _ _ , , ~ e * ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .> m > ^ . 5 . m m ^ . ^ . G . u t + G u u + G G k k & k . G O e e ", | ||
219 | "e e - .]. . . . . . . . . . . . . . . .c m ~.e e e e + i | e e e 2 j ^ z J ' . . . . .' G ~.e e e e e e e e e e e e e / j .' J e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e - t c . . . . . . .' k e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e q j & e e e e e e e e e e e 3 ' . . .' u ~./ j L z e e e e e e e e e e e e ^.# [ b ( ] 6 W , l 8 8 P s w : [ '.@ : K l h @ , h @ @ @ @ W h @ @ @ @ @ @ @ h K X ^.*.: @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ h A 8 K : : K : , = , , : B b s W h w l W : h K 6 s @ h s @ @ s 8 n M _ , @ } M ) , _ , _ _ d , , , _ _ _ _ _ h # ^.Y . ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .f ^ > c m . 5 m . . f c t ^ 5 > _.^ . + + .. ^ . > . & t ^ * e e ", | ||
220 | "e e - .]. . . . . . . . . . . . . . . .c m ~.e e e e 3 j 2 e e e 2 j ^ z J ' . . . . .c f - e e e e e e e e e e e e e z > ^ r e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e J ' . . . . . . . . > z e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e q j & e e e e e e e e e e e 3 ' . . .].' - z > j / e e e e e e e e e e e e e ! [ b ( ] 1 W , l 8 s P s w @ ( D g , , W , , @ @ @ @ @ @ W h @ @ @ @ @ @ @ A $ e e ! H h @ @ @ @ @ @ h @ @ @ @ @ @ @ @ , @ h @ , , @ @ , P , , : w : : : : : : s s @ : @.@ , h = W d h K 6 M d d , } } ~ o , _ _ _ d d _ , , _ d d _ _ : ! e | c ]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .c c .c c ].]. . . .c c c .c .c c c ' ].j J e e ", | ||
221 | "e e - .]. . . . . . . . . . . . . . . .c m ~.e e e e 4 j * e e e 2 j ^ z J ' . . . . . .' * e e e e e e e e e e e e e e k ' .' q e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e r > c . . . . . . . . .' * e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e q j & e e e e e e e e e e e 3 ' . . . .' 3 e G i + e e e e e e e e e e e e e (.$.= ( [ [ W , l w 8 P s 8 @ ( n g , , W , , @ @ @ @ @ @ W W h h @ @ @ @ h W ~ e e e % H @ @ @ @ @ @ @ @ @ @ @ @ @ @ h @ W @ h s b @ @ h s &._ : s 8 h s : @ h s h : 8 6 , d _ 8 8 h d g @ , @ _ , _ Q e >.} M d _ _ d } M , , , } M M , g ,.e 3 j . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .]. . .].]. .].].]. . ._. .].f f ].].].].].]. .]. .c c .c c c ]._.L ].c c c ].c ]. .c c . c .c ].' J e e ", | ||
222 | "e e - .]. . . . . . . . . . . . . . . .c m ~.e e e e 4 j O e e e 2 j ^ z J ' . . . . . . . ~.e e e e e e e e e e e e e | ]. . Y e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e * ' . . . . . . . . . . ^ r e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e q j & e e e e e e e e e e e 3 ' . . . . ^ ~.2 j L | e e e e e e e e e e e e e o S 6 [ [ W , 8 w w 8 n W @ ( D g , , W , @ @ @ , @ @ @ @ @ @ W @ @ @ @ l C e - [.e (.v A h h h h h h h @ @ , , @ , @ @ W _ @ l ( @ _ @ W , , b W l @ 8 P h W l @ : W ] n &._ , s 6 @ &.d -.W , h # R e e C _ M d : h M } _ h n d M } _ , % e z > . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .t _.].t t ].f f t c 5 . f ].> m ].f L t f t ].L .m 5 L > > _.^ . c > > > t 5 ^ Z c m ^ 5 +.^ m ].m ^ c .J e e ", | ||
223 | "e e - .]. . . . . . . . . . . . . . . .c m ~.e - | e 4 j O e e e 2 j ^ z J ' . . . . . .c Z 7 e e e e e e e e e e e e e Y . ].' q e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e z ^ . . . . . . . . . . .' O e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e q j & e e e e e e e e e e e 3 ' . . . .c c 7 U m j J e e e e e e e e e e e e e ~ @.6 [ 6 h , K b P : D s @ ( n g , , s , , @ , , @ @ @ @ @ @ h @ @ @ H o e Y u j {.e >.&.K , @ @ @ @ @ W @ , , @ @ @ s @ d , b 6 s , @ , d , W W = : b P , @ 8 h w w = W @ , h @ W W @ g n P h : ;.e | U /.# _ _ 8 d , } _ _ W _ g } K K d ;.e / ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5 > t L > ^ L ^ ^ ^ t ^ + t ].u > _.u u . . ^ ' u ^ + G ^ + G + L + + c + & 4 ^ + k u . & 3 . . 3 u ' u 3 . + 7 e e ", | ||
224 | "e e - .]. . . . . . . . . . . . . . . .c m e / . .| k i O e e e 7 j ^ z J ' . . . . . . .j 3 e e e e e e e e e e e e e e O j .' . r e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e J ' . . . . . . . . . . . . > z e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e q j & e e e e e e e e e e e 3 ' . . . . .j k e k i . U e e e e e e e e e e e e /.) [ ] 1 @ , b P P s P h h ( n &., , W , , W @ @ @ , @ @ @ @ W @ @ H # R e 4 j 5 | e ~ &.: @ @ @ , @ @ @ @ @ , , @ W @ _ , : n W &.&.( , _ 8 @ @ s = n @ h b @ @ s [ W &._ : 8 D , , &.8 8 K o e z . - e ~ _ d @.s M } , h W d _ M d _ @.v ^.~.+ ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .].L ^ L . L 5 . . 5 ^ > m u m . . f G m u k ^ T 3 & & & . u G u ].. G ' L + > u 4 k & ^ G k > 4 5 . G 3 4 & 7 e e ", | ||
225 | "e e - .]. . . . . . . . . . . . . . . .c m e G i u | . i 2 e e e 7 j ^ z J ' . . . . . . . > z e e e e e e e e e e e e e - m _.j J e e e e e e e e e e e e e e e e e e e e e e e e e e e e e - L c . . . . . . . . . . . . .j 3 e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e q j & e e e e e e e e e e e 3 ' . . . . .c m U 7 ' | e e e e e e e e e e e e e Q ] ] [ @ , b 8 8 P D s @ 6 n &., , s , , @ @ @ @ , , @ @ @ h @ H I ,.e / c .' ^ z e >.&.H @ @ h h @ @ h W @ @ h @ , @ , W P P , , B h @ B : @ w l b s l = ( 8 b '.: : h = n = W @ , = = &.,.e & * * - e % h b b , M @ 8 : , K , : , K l C e - !.c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ._.^ u ^ > . u m u c . ^ ].+ . G & 5 G ].+ + G + 3 u 3 & m & 3 G t & J m k J & u & * ^ u 3 * ^ + 4 k . k O 4 & / e e ", | ||
226 | "e e - .]. . . . . . . . . . . . . . . .c m e & i / 4 ' L z e e e 7 j ^ z J ' . . . . . . . .' 2 e e e e e e e e e e e e e e & ' .c L - e e e e e e e e e e e e e e e e e e e e e e e e e e e Y + ' . . . . . . . . . . . . . .]. 7 e e e e e e e e e e e e e e e e e e e e e e e e e e e e e q j & e e e e e e e e e e e 3 ' . . . . . .' 7 Y ^ j & e e e e e e e e e e e e e ,.n y [ @ , l s : 8 8 8 h 6 n _ , @ s , h s @ @ @ @ @ @ @ @ h l o (.e {.4.c . . .' ^ - e ,.I H h @ h h h h @ @ @ @ P d , , , h 8 , _ _ d _ @ , , H @ @ @ W h 8 @ : @ _ , , , , s , _ d h @.Q e 7 + 2 . | e x } h M d } M d _ d d } _ _ M _ d >.e }.j . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .].Z 5 f c L L c f ._.f c t ]._.5 5 _.t .f +.5 L Z c 5 5 f m m T ].5 m t 5 5 > f f > _.5 m m +.^ 5 L > t J e e ", | ||
227 | "e e - .]. . . . . . . . . . . . . . . .c m e 2 ' j i j * e e e e 2 j ^ z J ' . . . . . . . .' G e e e e e e e e e e e e e e 7 . .' u U e e e e e e e e e e e e e e e e e e e e e e e e e e * ' ]. . . . . . . . . . . . . . . . > z e e e e e e e e e e e e e e e e e e e e e e e e e e e ~.k j & e e e e e e e e e e e 3 ' . . . . . .' G e 3 j ^ z e e e e e e e e e e e e e $ y [ : @ b : : b 8 l , '.D _ &., W &., h h h h @ h h @ A 8 % /.e q 7. . . . . .' ^ | e x % b K , @ @ @ @ , , , _ h = , &.&.@ h P } M M M } } M } _ # % } } } M v ) ) ) } } ) ) ) } } o e U u 2 + q G {.e X } # # # ) ) # # ) # # # # # # % e (.u ' . . . . . . . . . . . . . . . . . .].]. . . . . .].]. . . . . . .].]. .c c .].].].]. .]. . .c c .]. .].].].].]. .c c ].c c c .c c .c c c ].].c ].].c c . .c ]. .].c c ' J e e ", | ||
228 | "e e - .]. . . . . . . . . . . . . . . .c m ~.~.O k k O ~.e e e e 2 j ^ z J ' . . . . . . . . 5 - e e e e e e e e e e e e e Y ^ . .' 3 e e e e e e e e e e e e e e e e e e e e e e e e e 7 +.c . . . . . . . . . . . . . . . . .' + U e e e e e e e e e e e e e e e e e e e e e e e e e U & ' & e e e e e e e e e e e 3 ' . . . . . . m z - ' ' q e e e e e e e e e e e e e X [ *.Q : K , , h , s _ w h M d g , d _ _ _ _ _ _ _ , : ) ;.e ~.[. . . . . . . .' !.q ^.e ;.) : , _ _ &.g g g M h s M d d _ s B } g g g M M s g C x # g g &.&.} } } M } } ) } v g v ~ e }.3 * & q j . r e % ) ) # ) ) # ) } ) # # # # } } X e 7 c .].c c . . . .c c ].].c c > u u ^ c c c ^ . c ].c c ].c .c f u ^ ]. ^ 5 c c c c > ^ c c c .c c c c ].c ' u m ]. c c ].c c c ].].c c c c c . ' J e e ", | ||
229 | "e e - .]. . . . . . . . . . . . . . . .c m ~.e e e e e e e e e e 2 j ^ z J ' . . . . . . . . .' O e e e e e e e e e e e e e e * j c c ' 4 e e e e e e e e e e e e e e e e e e e e e e e | m . . . . . . . . . . . . . . . . . . .j & Y e e e e e e e e e e e e e e e e e e e e e e e z + j .' & e e e e e e e e e e e 3 ' . . . . . .].' / ~.. j G ~.e e e e e e e e e e e e x B < e ;.N b A l W b _ ( n d &.&.h _ , @ @ , , H 8 *.Q (.e z G ' c . . . . . . . . .c k z e /.Q v h K h , , , M W [ g g _ d @ = ) M d , h v o ~ e Q , M M s s } } M A , , d M d ] % e - u 7 . 7 ^ c j }.e >.) } ) d , } ) } : d M ) ) _ d v ,.e 3 5 > .m . ^ f ].].f . ^ m > ^ u 5 t . & > ^ u ^ > k L u . t . c ^ L + + L k m ].. G u 3 4 t . + u c u G > . u + c u + 4 . + & 5 & . u ].u G . u m m . 5 & . ^ ^ _.u q e e ", | ||
230 | "e e - .]. . . . . . . . . . . . . . . .c m ~.e e e e e e e e e e 2 i m z 4 i j . . . . . . .' u U e e e e e e e e e e e e e - ^ 5 m m 5 j 4 ~.e e e e e e e e e e e e e e e e e e e e | 5 ' . . . . . . . . . . . . . . . . . . . .].' G U e e e e e e e e e e e e e e e e e e e e e - . ' . .' & e e e e e e e e e e e 3 ' . . .].' j j i u e J i j - e e e e e e e e e e e e e C I e e ^.! # B @.l h 1 = d &., h , h h : H 8 # Q /.e /./ > j ]. . . . . . . . . . . .c ' > / Y e ^.! o @ H h h w _ @ @ : b , h '.} d , ) % ~ e e /.$ # # o # ) I o o o ) # I # o o x e 2./ k O 4 ' .c !.| e X o o # # *.# % o # # o o o o *.! e z u . . . u ^ . c L + + + + G > + u & ^ k . G m Z G 5 + k u G ' G > . u ].& > > G k ^ G G t 3 G + 5 + k 3 k & G & & . J & + + & 3 & & & G G 3 k ^ ^ & & 3 3 4 u +.k + 7 e e ", | ||
231 | "e e - .]. . . . . . . . . . . . . . . .c m ~.e e e e e e e e e e z 2 7 Y - 2 7 & . . . . . . . | e e e e e e e e e e e e e e r r r U - ' ' k r e e e e e e e e e e e e e e e e e e 2 L . . . . . . . . . . . . . . . . . . . . . . .' + z e e e e e e e e e e e e e e e e e e Y O 5 ' . . .' & e e e e e e e e e e e 3 ' . .c 5 7 - - - - e r - - U e e e e e e e e e e e e e ^.R e ~.U e /.>.! $ I $.$.d g g &.d } v # X >./.e ~.{.u ' . . . . . . . . . . . . . . .c ' u {.U e ^.,.;.o I v N d &.h W g } F # Q >.(.e e e e e ..............................^.e {.& q G 7 T c . .' + Y e /.............................^.e e 7 . > ^ G + L & ^ L G G k k + 5 & 5 ^ u k k > k > > 4 f + & * G & ^ k > + k _. 4 u t G 4 G j u & G 3 5 . 3 k / 4 > u J k t J 4 + u 4 4 3 k J G . 4 3 u 4 3 4 4 k & G & * & | e e ", | ||
232 | "e e - .]. . . . . . . . . . . . . . . .c m r U U U U U U U U U U r z z ~.r z r 4 . . . . . . .' k Y U U U U U U U U U U U U e r q 2 2 O ].' . 7 e e e e e e e e e e e e e e e z k . . . . . . . . . . . . ._. ' ' ' ' ' ' ' ' ' ' i <.O U e e e e e e e e e e e e e e e | + ' . . . . & Y U U U U U U U U U U k ' . .c m | z z z z z e r z z U U U U U U U U U U U U U U U z 7 ^ O z e e e e e >.~ ~ ~ ~ >.^.e e e e z O u ' ' ]. . . . . . . . . . . . . . . . . .].' ' ^ [.- ~.e e e e ,.~ ~ ;.~ >./.e e e e r {.7 - - - z z z z z z z z z z z z z z z z - > & ^ G u . . . .' [.z z z z z z z z z z z z z z z z z - z - + Z u G > ].+ > _.. . . G k G 5 ^ & G ^ 3 & . ' . & > 5 G k m > 3 4 ^ + G 5 5 & + ^ G k m c c u > u f ].c + & G u L ^ ^ . k & 5 + k m u . . ^ . 4 4 m G + . t 3 + + + u ' q e e ", | ||
233 | "e e - .]. . . . . . . . . . . . . . . . .f . . . . . . . . . . . ^ 5 . z * L > L . . . . . . . .].t . . . . . . . . . . . . ^ 7 U L i i j . . . T G | U e e e e e e e e e ~.z J > ' . . . . . . . . . . . . . . .' k | 7 7 7 7 7 7 7 7 7 7 7 7 z e e e e e e e e e e e e U 7 G :.' . . . . . .].5 . . . . . . . . . . . 5 ]. . . ._.m m m m L + e / f > . . . . . . . . . . . . . . ^ m m ' m u }.7 z z z z z r z z z z 7 }.u m j . . . . . . . . . . . . . . . . . . . . . . .c j L . 3 {.- z z z z r z z z z | O G > L m m m m m m m m m m m m m m m m > > > m c ' . . . . . .|.> > m m m m m m m m > > > > > > > m m > f c c . c .c c ' u ^ j ].c ' ' m + _. ' c ]. ' ^ 4 u .' ' ].].' c ' ' ]. . . c . . . ' ].c c c ' ' ]. ' ]. c <.G L ' c ].' _. ' J e e ", | ||
234 | "e e - .]. . . . . . . . . . . . . . . . . . ' > z J j c . . . . . . . . .c i G e * j . . . . . .c ' ' u 4 q | - - - - 2 * G t ' . . . . . . . . . . . . . . . .j 4 z - - - - - - - - - - - - - - - - - - - - - - | q 4 . ' ' c . . . . . . . .c c . . . . .c ' T - z :. c . . ' ' ' ' ' ' . . . . . . . . . . . . . . . . . . . . . . . . . . .c ' ' ' ' ' ' c c . . . . . . . . . . .c ]. . . . . . . . . . . .].]. . . . . . .c . . . . . . . . . . .f c ]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .c . . . . . . . . . . .' J e e ", | ||
235 | "e e - .]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . > - 3 ' . . . . . . . . . . . . . . . . . . . . . . . .c t - q ]. . . . . . . . . j ' t 5 5 5 5 j ' ]. . . . . . . . . . . . . . . . . . .].t 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 t ' j . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .j J e k ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", | ||
236 | "e e - .]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ._.m L ]. . . . . . . . . . . . . . . . . . . . . . . . . .c > . . . . . . . . . . . . .].c c c c c c . . . . . . . . . . . . . . . . . . . . . .].c c c c c c c c c c c c c c c c c c c c c c c c ]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .c > J + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", | ||
237 | "e e - ].c ].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].c c ].].].].].].].].].].].].].].].].].].].].].].].].].].]. ].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].]. j .].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].' J e e ", | ||
238 | "e e - j J e e ", | ||
239 | "e e r 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 q - e e ", | ||
240 | "e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e ", | ||
241 | "e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e ", | ||
242 | "e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e ,.$ ! e e e e e e e e e e e e e e e e e e e e e ~ 0 ! e e e e e e e e e e e e e e e e e e e e e e e e /.$ $ e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e Q I ;.e e e e e e e >.I ;.e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e ", | ||
243 | "e e e e e e e e e e e e e e e e e e e e e e ^.^.e e e e e e e e e e e e e R ^.e e e e e e e e e e e e /./.e e e e e e e e e e e e e /.e e e e e e e e e e e e e e e e e e e e e e e /.e e e e e e e e e e e e ^./.e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e R e e e e e e e e e e e ^.(.e e e e e e e e e e e e e e e e e e e e e ~ p o e e e e e e e e e e e e e e e e e e e e e X { % e e ^.e e e e e e e e e e R ^.e e e e e e e e e (.9 9 e /.e e e e e e e e e e e e e R ^.e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e % { { C e e e e e e e ;.{ C e e e e e e e e e e ^.e e e e e e e e e e ^.^.e e /.e e e e e e e e e e e e e e e e e e e e e e e e e e e e R ^.e e e e e e e e e e e e e ^.e e e e e e e e e e /.e e e e e e e e e e e e e e e e e e e e e e ", | ||
244 | "e e e e e e e e e e e e e e e e e e e e R o y 9 % ^.e e e e e e e e % < E y < X e e e e e e e e e /.o y 9 % ^.e e e e e e e e $ 0 < y % e e e e e e e e e e e e e e e e e e e e (.I y 0 >.e e e e e e e e e % 9 y $ R e e e e e e e e ! < ~ e o 0 /.e e e e e e e % < < X e e e e e e e e ;.0 ; 0 ~ e e e e e e e e X < ; E >.e e e e e e e e e e e e e e e e e e e >.< C e e e e e e e (.E o e ~ < ! e e e e e e e ;.{ C ~ < o e e e e e e e e ,.a ; < ! e e e e e e e e R < p E ; E >.e e e e e e e e e ,.I ; < ! e e e e e e e e $ < >.C 9 X e e e e e e e e e e e e e e e e e e % p { 0 (.e e e e e e e ~ 9 ! e e e e e e e >.E < E e e e e e e e (.I 0 < 9 % a ; 0 ~ e e e e e e e (.a I e I 0 e o 0 ,.e e e e e e e R $ y < a 0 x e e e e e e e ~ 0 0 I e e e e e e e e ,.I ; < ! e e e e e e e e e e e e e e e e e e e e ", | ||
245 | "e e e e e e e e e e e e e e e e e e e e $ { < 9 { o e e e e e e e e $ { p 0 p p ;.e e e e e e e e $ { < < { $ e e e e e e e e 0 { 9 y { C e e e e e e e e e e e e e e e e e e e $ { < ; $ e e e e e e e e % { 9 < { I e e e e e e e e % { ;.e a { /.e e e e e e e a { ; ;.e e e e e e e ~ p p < ; ! e e e e e e e ;.p ; E { 9 x e e e e e e e e e e e e e e e e e e ;.{ $ e e e e e e e x p a e X { % e e e e e e e ;.{ o < { ;.e e e e e e e R < { 0 ; { ! e e e e e e e R < { y < { < (.e e e e e e e R < { 0 ; { ! e e e e e e e X { 9 ; < (.e e e e e e e e e e e e e e e e e e o { { $ e e e e e e e e ;.{ C e e e e e e e ~ p { a e e e e e e e x 9 { < y { { < { 9 /.e e e e e e e E p ! ; { ! < 9 /.e e e e e e e I { < 9 { { x e e e e e e e ! { { $ e e e e e e e (.< { 0 y { ! e e e e e e e e e e e e e e e e e e e ", | ||
246 | "e e e e e e e e e e e e e e e e e e e R { E ^.(.< p (.e e e e e e e I { Q e X { $ e e e e e e e ,.p { E 0 { ; ,.e e e e e e e < p ,.,.p a e e e e e e e e e e e e e e e e e e e o { < I ~ e e e e e e e (.y 9 (.e a { ~ e e e e e e e % { ;.e a { /.e e e e e e e a p ~ e e e e e e e e $ { ;.e x e e e e e e e e I { < a y { % e e e e e e e e e e e e e e e e e e ;.{ $ e e e e e e e x p a e X { % e e e e e e e ;.{ ; { C e e e e e e e e Q { ; a < { 0 e e e e e e e R < p >.e o { Q e e e e e e e ! { % e ~ p 0 e e e e e e e e o { p ;.e e e e e e e e e e e e e e e e e e e R 0 p R e e e e e e e e ;.{ C e e e e e e e ~ { a e e e e e e e e x y < e ! { I e o { X e e e e e e e % { < p { < { $ e e e e e e e >.p E ^./.0 { x e e e e e e e X { $ e e e e e e e e ! { ; a < { 0 e e e e e e e e e e e e e e e e e e e ", | ||
247 | "e e e e e e e e e e e e e e e e e e e R { $ e e I { ,.e e e e e e e I { ;.e (.{ I e e e e e e e >.{ { y y ; 9 ~ e e e e e e e < y (./.; E e e e e e e e e e e e e e e e e e e e /.% < { E e e e e e e e ,.p E e e o { ;.e e e e e e e % { ;.e a { /.e e e e e e e a p (.e e e e e e e e a { (.e e e e e e e e e e E { ; ; y ; o e e e e e e e e e e e e e e e e e e ;.{ $ e e e e e e e x p a e X { % e e e e e e e ;.{ { { Q e e e e e e e e % { p ; y ; 0 e e e e e e e R 9 9 e e Q { C e e e e e e e C { X e (.9 9 e e e e e e e e C { ; x e e e e e e e e e e e e e e e e e e e e E p e e e e e e e e e ;.{ C e e e e e e e ~ { $ e e e e e e e e x ; 0 e ;.{ o e C { ! e e e e e e e >.p { p ; { { X e e e e e e e ~ { $ e e I { x e e e e e e e X { % e e e e e e e e C { p y y ; E /.e e e e e e e e e e e e e e e e e e ", | ||
248 | "e e e e e e e e e e e e e e e e e e e ^.< { % o { E e e e e e e e e $ { < Q 0 { C e e e e e e e /.< { $ I $ ,.^.e e e e e e e < y (.R ; E e e e e e e e e e e e e e e e e e e e a < % y y R e e e e e e e a { o C p 9 (.e e e e e e e ! { E C ; p /.e e e e e e e a p x e e e e e e e e Q { 0 C $ >.e e e e e e e C { < o E ;.R e e e e e e e e e e e e e e e e e e ;.{ $ e e e e e e e e 9 p C E { % e e e e e e e ;.{ $ 9 p ~ e e e e e e e >.p ; o E C x e e e e e e e R < { I Q y p ~ e e e e e e e >.p 9 Q I { o e e e e e e e ,.y { { I e e e e e e e e e e e e e e e e e e e e 0 p e e e e e e e e e ;.{ C e e e e e e e ~ { $ e e e e e e e e x ; 0 e ;.{ o e C { ! e e e e e e e e < { E $ { ; R e e e e e e e /.9 { % o p { x e e e e e e e X { % e e e e e e e e >.p ; o a % (.e e e e e e e e e e e e e e e e e e e ", | ||
249 | "e e e e e e e e e e e e e e e e e e e e ~ 9 { { < >.e e e e e e e e $ { p { { $ /.e e e e e e e e ~ < { { 0 R e e e e e e e e < y (.R ; E e e e e e e e e e e e e e e e e e e e Q p { { o e e e e e e e e ,.< { { 9 ;.e e e e e e e e ^.$ { { p p /.e e e e e e e a p x e e e e e e e e ^.$ { { { Q e e e e e e e /.$ { { p X e e e e e e e e e e e e e e e e e e e ;.{ $ e e e e e e e e X ; { p { % e e e e e e e ;.{ C ;.{ 9 x e e e e e e e Q p { { $ e e e e e e e e R < { p { p C e e e e e e e e e Q p { { I R e e e e e e e I { ! a { ! e e e e e e e e e e e e e e e e e e e 0 p e e e e e e e e e ;.{ C e e e e e e e ~ { $ e e e e e e e e x ; 0 e ;.{ o e C { ! e e e e e e e e o { C ! { a e e e e e e e e e ;.y { { p { x e e e e e e e ! { % e e e e e e e e e Q ; { { $ e e e e e e e e e e e e e e e e e e e e ", | ||
250 | "e e e e e e e e e e e e e e e e e e e e e (.X ;.R e e e e e e e e e I { X X ~ e e e e e e e e e e e (.X ;.R e e e e e e e e e x ,.e e ,.x e e e e e e e e e e e e e e e e e e e e ,.! ~ e e e e e e e e e e /.;.X (.e e e e e e e e e e ^.;.;.,.,.e e e e e e e e x ,.^.e e e e e e e e e e >.! >.e e e e e e e e e e >.! ,.e e e e e e e e e e e e e e e e e e e e C { o e e e e e e e e e ,.X >.>.(.e e e e e e e /.>.(.e x >.R e e e e e e e e x ! ~ ^.e e e e e e e e e ,.,.>.X >.e e e e e e e e e e e x ! ~ ^.e e e e e e e e >.>.e (.>.(.e e e e e e e e e e e e e e e e e e e x ,.e e e e e e e e e /.>.(.e e e e e e e ^.>.x e e e e e e e e ^.,.x e /.>.(.e (.>.R e e e e e e e e R >./.^.>.(.e e e e e e e e e e (.! ~ x >.^.e e e e e e e /.>.(.e e e e e e e e e e ,.X ~ ^.e e e e e e e e e e e e e e e e e e e e ", | ||
251 | "e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e I { ~ e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e /.p p ~ e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e ", | ||
252 | "e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e X C (.e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e ^.C ~ e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e ", | ||
253 | "e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e ", | ||
254 | "e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e "}; | ||
diff --git a/rbutil/rbutil-rc.rc b/rbutil/rbutil-rc.rc deleted file mode 100644 index 3202cefc49..0000000000 --- a/rbutil/rbutil-rc.rc +++ /dev/null | |||
@@ -1,27 +0,0 @@ | |||
1 | #define RBUTIL 1 | ||
2 | #include <wx/msw/wx.rc> | ||
3 | RBUTIL VERSIONINFO | ||
4 | FILEVERSION 0,3,2,6 | ||
5 | PRODUCTVERSION 0,3,2,6 | ||
6 | FILEOS 0x00000004 | ||
7 | FILETYPE 0x00000001 | ||
8 | BEGIN | ||
9 | BLOCK "StringFileInfo" | ||
10 | BEGIN | ||
11 | BLOCK "FFFF0000" | ||
12 | BEGIN | ||
13 | VALUE "FileVersion", "0.3.2.6\0" | ||
14 | VALUE "ProductVersion", "0.3.2.6\0" | ||
15 | VALUE "CompanyName", "Rockbox Team\0" | ||
16 | VALUE "FileDescription", "Rockbox Utility\0" | ||
17 | VALUE "InternalName", "rbutil\0" | ||
18 | VALUE "LegalCopyright", "(C) 2005 - 2007 Rockbox Team\0" | ||
19 | VALUE "ProductName", "Rockbox Utility\0" | ||
20 | END | ||
21 | END | ||
22 | BLOCK "VarFileInfo" | ||
23 | BEGIN | ||
24 | VALUE "Translation", 0xFFFF, 0x0000 | ||
25 | END | ||
26 | END | ||
27 | RBUTIL_ICON ICON archos.ico | ||
diff --git a/rbutil/rbutil.cbp b/rbutil/rbutil.cbp deleted file mode 100644 index 2db68ceac7..0000000000 --- a/rbutil/rbutil.cbp +++ /dev/null | |||
@@ -1,196 +0,0 @@ | |||
1 | <?xml version="1.0" encoding="UTF-8" standalone="yes" ?> | ||
2 | <CodeBlocks_project_file> | ||
3 | <FileVersion major="1" minor="6" /> | ||
4 | <Project> | ||
5 | <Option title="rbutil" /> | ||
6 | <Option pch_mode="0" /> | ||
7 | <Option compiler="gcc" /> | ||
8 | <MakeCommands> | ||
9 | <Build command="$make -f $makefile all" /> | ||
10 | <CompileFile command="$make -f $makefile $file" /> | ||
11 | <Clean command="$make -f $makefile clean" /> | ||
12 | <DistClean command="$make -f $makefile distclean" /> | ||
13 | </MakeCommands> | ||
14 | <Build> | ||
15 | <Target title="Release"> | ||
16 | <Option output="rbutil.exe" prefix_auto="0" extension_auto="0" /> | ||
17 | <Option type="0" /> | ||
18 | <Option compiler="gcc" /> | ||
19 | <Option projectResourceIncludeDirsRelation="0" /> | ||
20 | <ExtraCommands> | ||
21 | <Add before="cmd /c cd icons && bin2c.exe *.png" /> | ||
22 | <Add after="upx --best --compress-icons=0 rbutil.exe" /> | ||
23 | </ExtraCommands> | ||
24 | <MakeCommands> | ||
25 | <Build command="$make -f $makefile all" /> | ||
26 | <CompileFile command="$make -f $makefile $file" /> | ||
27 | <Clean command="$make -f $makefile clean" /> | ||
28 | <DistClean command="$make -f $makefile distclean" /> | ||
29 | </MakeCommands> | ||
30 | </Target> | ||
31 | <Target title="Debug"> | ||
32 | <Option output="rbutil.exe" prefix_auto="0" extension_auto="0" /> | ||
33 | <Option type="0" /> | ||
34 | <Option compiler="gcc" /> | ||
35 | <Compiler> | ||
36 | <Add option="-g" /> | ||
37 | </Compiler> | ||
38 | <MakeCommands> | ||
39 | <Build command="$make -f $makefile all" /> | ||
40 | <CompileFile command="$make -f $makefile all" /> | ||
41 | <Clean command="$make -f $makefile clean" /> | ||
42 | <DistClean command="$make -f $makefile distclean" /> | ||
43 | </MakeCommands> | ||
44 | </Target> | ||
45 | <Environment> | ||
46 | <Variable name="WX_CFG" value="" /> | ||
47 | </Environment> | ||
48 | </Build> | ||
49 | <VirtualTargets> | ||
50 | <Add alias="All" targets="default;" /> | ||
51 | </VirtualTargets> | ||
52 | <Compiler> | ||
53 | <Add option="-W" /> | ||
54 | <Add option="-g" /> | ||
55 | <Add option="-pipe" /> | ||
56 | <Add option="-mthreads" /> | ||
57 | <Add option="-Winvalid-pch" /> | ||
58 | <Add option='-include "wx_pch.h"' /> | ||
59 | <Add option="-D__GNUWIN32__" /> | ||
60 | <Add option="-D__WXMSW__" /> | ||
61 | <Add option="-DUSE_PCH" /> | ||
62 | <Add option="-DRBUTIL" /> | ||
63 | <Add directory="$(#WX.include)" /> | ||
64 | <Add directory="$(#WX.lib)\gcc_lib$(WX_CFG)\msw" /> | ||
65 | <Add directory="$(#WX)\contrib\include" /> | ||
66 | <Add directory=".\" /> | ||
67 | </Compiler> | ||
68 | <ResourceCompiler> | ||
69 | <Add directory="$(#WX.include)" /> | ||
70 | </ResourceCompiler> | ||
71 | <Linker> | ||
72 | <Add library="wxmsw28" /> | ||
73 | <Add library="winspool" /> | ||
74 | <Add library="winmm" /> | ||
75 | <Add library="shell32" /> | ||
76 | <Add library="comctl32" /> | ||
77 | <Add library="ctl3d32" /> | ||
78 | <Add library="odbc32" /> | ||
79 | <Add library="advapi32" /> | ||
80 | <Add library="wsock32" /> | ||
81 | <Add library="opengl32" /> | ||
82 | <Add library="glu32" /> | ||
83 | <Add library="ole32" /> | ||
84 | <Add library="oleaut32" /> | ||
85 | <Add library="uuid" /> | ||
86 | <Add library="libwxzlib" /> | ||
87 | <Add library="libwxregex" /> | ||
88 | <Add library="libwxpng" /> | ||
89 | <Add library="libwxjpeg" /> | ||
90 | <Add library="libwxtiff" /> | ||
91 | <Add directory="$(#WX.lib)\gcc_lib$(WX_CFG)" /> | ||
92 | <Add directory="$(#WX.lib)" /> | ||
93 | <Add directory=".\" /> | ||
94 | </Linker> | ||
95 | <Unit filename="Makefile" /> | ||
96 | <Unit filename="archos.ico" /> | ||
97 | <Unit filename="autodetection.cpp" /> | ||
98 | <Unit filename="autodetection.h" /> | ||
99 | <Unit filename="bootloaders.cpp" /> | ||
100 | <Unit filename="bootloaders.h" /> | ||
101 | <Unit filename="copying.txt" /> | ||
102 | <Unit filename="credits.h" /> | ||
103 | <Unit filename="fonts_3d.xpm" /> | ||
104 | <Unit filename="h100sums.h" /> | ||
105 | <Unit filename="h120sums.h" /> | ||
106 | <Unit filename="h300sums.h" /> | ||
107 | <Unit filename="icons\bin2c.c"> | ||
108 | <Option compilerVar="CC" /> | ||
109 | <Option compile="0" /> | ||
110 | <Option link="0" /> | ||
111 | </Unit> | ||
112 | <Unit filename="icons\bootloader_btn.cpp" /> | ||
113 | <Unit filename="icons\bootloader_btn.h" /> | ||
114 | <Unit filename="icons\bootloader_btn.png" /> | ||
115 | <Unit filename="icons\talkfile_btn.cpp" /> | ||
116 | <Unit filename="icons\talkfile_btn.h" /> | ||
117 | <Unit filename="icons\talkfile_btn.png" /> | ||
118 | <Unit filename="icons\doom_btn.cpp" /> | ||
119 | <Unit filename="icons\doom_btn.h" /> | ||
120 | <Unit filename="icons\doom_btn.png" /> | ||
121 | <Unit filename="icons\font_btn.cpp" /> | ||
122 | <Unit filename="icons\font_btn.h" /> | ||
123 | <Unit filename="icons\font_btn.png" /> | ||
124 | <Unit filename="icons\rbinstall_btn.cpp" /> | ||
125 | <Unit filename="icons\rbinstall_btn.h" /> | ||
126 | <Unit filename="icons\rbinstall_btn.png" /> | ||
127 | <Unit filename="icons\rembootloader_btn.cpp" /> | ||
128 | <Unit filename="icons\rembootloader_btn.h" /> | ||
129 | <Unit filename="icons\rembootloader_btn.png" /> | ||
130 | <Unit filename="icons\remrb_btn.cpp" /> | ||
131 | <Unit filename="icons\remrb_btn.h" /> | ||
132 | <Unit filename="icons\remrb_btn.png" /> | ||
133 | <Unit filename="icons\themes_btn.cpp" /> | ||
134 | <Unit filename="icons\themes_btn.h" /> | ||
135 | <Unit filename="icons\themes_btn.png" /> | ||
136 | <Unit filename="install_3d.xpm" /> | ||
137 | <Unit filename="install_dialogs.cpp" /> | ||
138 | <Unit filename="install_dialogs.h" /> | ||
139 | <Unit filename="installlog.cpp" /> | ||
140 | <Unit filename="installlog.h" /> | ||
141 | <Unit filename="ipodpatcher\ipodio-win32.c"> | ||
142 | <Option compilerVar="CC" /> | ||
143 | <Option compiler="gcc" use="1" buildCommand="mingw32-gcc.exe -W -g -pipe -mthreads -Winvalid-pch -D__GNUWIN32__ -D__WXMSW__ -DUSE_PCH -g -I.\ -IC:\Dev-Cpp\include -c $file -o .objs\ipodpatcher\ipodio-win32.o" /> | ||
144 | </Unit> | ||
145 | <Unit filename="ipodpatcher\ipodio.h" /> | ||
146 | <Unit filename="ipodpatcher\ipodpatcher.c"> | ||
147 | <Option compilerVar="CC" /> | ||
148 | <Option compiler="gcc" use="1" buildCommand="mingw32-gcc.exe -W -g -pipe -mthreads -Winvalid-pch -D__GNUWIN32__ -D__WXMSW__ -DUSE_PCH -g -I.\ -IC:\Dev-Cpp\include -c $file -o .objs\ipodpatcher\ipodpatcher.o\n" /> | ||
149 | </Unit> | ||
150 | <Unit filename="ipodpatcher\ipodpatcher.h" /> | ||
151 | <Unit filename="ipodpatcher\parttypes.h" /> | ||
152 | <Unit filename="irivertools.cpp" /> | ||
153 | <Unit filename="irivertools.h" /> | ||
154 | <Unit filename="md5sum.cpp" /> | ||
155 | <Unit filename="md5sum.h" /> | ||
156 | <Unit filename="rblogo.xpm" /> | ||
157 | <Unit filename="rbutil-rc.rc"> | ||
158 | <Option compilerVar="WINDRES" /> | ||
159 | </Unit> | ||
160 | <Unit filename="rbutil.cpp" /> | ||
161 | <Unit filename="rbutil.h" /> | ||
162 | <Unit filename="rbutil.ini" /> | ||
163 | <Unit filename="rbutil.iss" /> | ||
164 | <Unit filename="rbutilApp.cpp" /> | ||
165 | <Unit filename="rbutilApp.h" /> | ||
166 | <Unit filename="rbutilCtrls.cpp" /> | ||
167 | <Unit filename="rbutilCtrls.h" /> | ||
168 | <Unit filename="rbutilFrm.cpp" /> | ||
169 | <Unit filename="rbutilFrm.h" /> | ||
170 | <Unit filename="rbutilFrm_XPM.xpm" /> | ||
171 | <Unit filename="sansapatcher\parttypes.h" /> | ||
172 | <Unit filename="sansapatcher\sansaio-win32.c"> | ||
173 | <Option compilerVar="CC" /> | ||
174 | <Option compiler="gcc" use="1" buildCommand="mingw32-gcc.exe -W -g -pipe -mthreads -Winvalid-pch -D__GNUWIN32__ -D__WXMSW__ -DUSE_PCH -DRBUTIL -g -I.\ -IC:\Dev-Cpp\include -c $file -o .objs\sansapatcher\sansaio-win32.o" /> | ||
175 | </Unit> | ||
176 | <Unit filename="sansapatcher\sansaio.h" /> | ||
177 | <Unit filename="sansapatcher\sansapatcher.c"> | ||
178 | <Option compilerVar="CC" /> | ||
179 | <Option compiler="gcc" use="1" buildCommand="mingw32-gcc.exe -W -g -pipe -mthreads -Winvalid-pch -D__GNUWIN32__ -D__WXMSW__ -DUSE_PCH -g -DRBUTIL -I.\ -IC:\Dev-Cpp\include -c $file -o .objs\sansapatcher\sansapatcher.o" /> | ||
180 | </Unit> | ||
181 | <Unit filename="sansapatcher\sansapatcher.h" /> | ||
182 | <Unit filename="themes_3d.xpm" /> | ||
183 | <Unit filename="tools2_3d.xpm" /> | ||
184 | <Unit filename="tts.cpp"> | ||
185 | <Option compiler="gcc" use="0" buildCommand="gcc -Wall -g tts.cpp -I$FLITEDIR/include -L$FLITEDIR/lib \n -lflite_cmu_us_kal -lflite_usenglish -lflite_cmulex -lflite -lm" /> | ||
186 | </Unit> | ||
187 | <Unit filename="tts.h" /> | ||
188 | <Unit filename="uninstall_3d.xpm" /> | ||
189 | <Unit filename="untools2_3d.xpm" /> | ||
190 | <Unit filename="wizard.xpm" /> | ||
191 | <Unit filename="wx_pch.h" /> | ||
192 | <Extensions> | ||
193 | <code_completion /> | ||
194 | </Extensions> | ||
195 | </Project> | ||
196 | </CodeBlocks_project_file> | ||
diff --git a/rbutil/rbutil.cpp b/rbutil/rbutil.cpp deleted file mode 100644 index 058ca10a27..0000000000 --- a/rbutil/rbutil.cpp +++ /dev/null | |||
@@ -1,783 +0,0 @@ | |||
1 | /*************************************************************************** | ||
2 | * __________ __ ___. | ||
3 | * Open \______ \ ____ ____ | | _\_ |__ _______ ___ | ||
4 | * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / | ||
5 | * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | ||
6 | * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | ||
7 | * \/ \/ \/ \/ \/ | ||
8 | * Module: rbutil | ||
9 | * File: rbutil.cpp | ||
10 | * | ||
11 | * Copyright (C) 2005 Christi Alice Scarborough | ||
12 | * | ||
13 | * All files in this archive are subject to the GNU General Public License. | ||
14 | * See the file COPYING in the source tree root for full license agreement. | ||
15 | * | ||
16 | * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY | ||
17 | * KIND, either express or implied. | ||
18 | * | ||
19 | ****************************************************************************/ | ||
20 | |||
21 | #include "rbutil.h" | ||
22 | #include "installlog.h" | ||
23 | |||
24 | /* this function gets a Bitmap from embedded memory */ | ||
25 | wxBitmap wxGetBitmapFromMemory(const unsigned char *data,int length) | ||
26 | { | ||
27 | wxMemoryInputStream istream( data,length); | ||
28 | return wxBitmap(wxImage(istream, wxBITMAP_TYPE_ANY, -1), -1); | ||
29 | } | ||
30 | |||
31 | // This class allows us to return directories as well as files to | ||
32 | // wxDir::Traverse | ||
33 | class wxDirTraverserIncludeDirs : public wxDirTraverser | ||
34 | { | ||
35 | public: | ||
36 | wxDirTraverserIncludeDirs(wxArrayString& files) : m_files(files) { } | ||
37 | |||
38 | virtual wxDirTraverseResult OnFile(const wxString& filename) | ||
39 | { | ||
40 | m_files.Add(filename); | ||
41 | return wxDIR_CONTINUE; | ||
42 | } | ||
43 | |||
44 | virtual wxDirTraverseResult OnDir(const wxString& dirname) | ||
45 | { | ||
46 | m_files.Add(dirname); | ||
47 | return wxDIR_CONTINUE; | ||
48 | } | ||
49 | |||
50 | private: | ||
51 | wxArrayString& m_files; | ||
52 | }; | ||
53 | |||
54 | wxDEFINE_SCOPED_PTR_TYPE(wxZipEntry); | ||
55 | |||
56 | const wxChar* _rootmatch[] = { | ||
57 | wxT("rockbox.*"), | ||
58 | wxT("ajbrec.ajz"), | ||
59 | wxT("archos.mod"), | ||
60 | wxT(".scrobbler.*"), | ||
61 | wxT("battery_bench.txt"), | ||
62 | wxT("battery.dummy"), | ||
63 | }; | ||
64 | const wxArrayString* rootmatch = new wxArrayString( | ||
65 | (size_t) (sizeof(_rootmatch) / sizeof(wxChar*)), _rootmatch); | ||
66 | |||
67 | bool InstallTheme(wxString Themesrc) | ||
68 | { | ||
69 | wxString dest,src,err; | ||
70 | |||
71 | int pos = Themesrc.Find('/',true); | ||
72 | wxString themename = Themesrc.SubString(pos+1,Themesrc.Length()); | ||
73 | |||
74 | src = gv->themes_url + wxT("/") + Themesrc; | ||
75 | dest = gv->stdpaths->GetUserDataDir() | ||
76 | + wxT("" PATH_SEP "download" PATH_SEP) + themename; | ||
77 | if( DownloadURL(src, dest) ) | ||
78 | { | ||
79 | wxRemoveFile(dest); | ||
80 | ERR_DIALOG(wxT("Unable to download ") + src, wxT("Install Theme")); | ||
81 | return false; | ||
82 | } | ||
83 | |||
84 | if(!checkZip(dest)) | ||
85 | { | ||
86 | ERR_DIALOG(wxT("The Zip ") + dest | ||
87 | + wxT(" does not contain the correct dir structure"), | ||
88 | wxT("Install Theme")); | ||
89 | return false; | ||
90 | } | ||
91 | |||
92 | if(UnzipFile(dest,gv->curdestdir, true)) | ||
93 | { | ||
94 | ERR_DIALOG(wxT("Unable to unzip ") + dest + wxT(" to ") | ||
95 | + gv->curdestdir, wxT("Install Theme")); | ||
96 | return false; | ||
97 | } | ||
98 | |||
99 | return true; | ||
100 | } | ||
101 | |||
102 | bool checkZip(wxString zipname) | ||
103 | { | ||
104 | |||
105 | wxZipEntryPtr entry; | ||
106 | |||
107 | wxFFileInputStream* in_file = new wxFFileInputStream(zipname); | ||
108 | wxZipInputStream* in_zip = new wxZipInputStream(*in_file); | ||
109 | |||
110 | entry.reset(in_zip->GetNextEntry()); | ||
111 | |||
112 | wxString name = entry->GetName(); | ||
113 | if(entry->IsDir()) | ||
114 | { | ||
115 | if( 0==name.Cmp(wxT(".rockbox")) | ||
116 | || 0==name.Cmp(wxT(".rockbox\\")) | ||
117 | || 0==name.Cmp(wxT(".rockbox/")) ) | ||
118 | return true; | ||
119 | } | ||
120 | else | ||
121 | { | ||
122 | if( name.StartsWith(wxT(".rockbox/")) | ||
123 | || name.StartsWith(wxT(".rockbox\\")) ) | ||
124 | return true; | ||
125 | } | ||
126 | |||
127 | return false; | ||
128 | |||
129 | } | ||
130 | |||
131 | int DownloadURL(wxString src, wxString dest) | ||
132 | { | ||
133 | int input, errnum = 0, success = false; | ||
134 | wxString buf, errstr; | ||
135 | wxLogVerbose(wxT("=== begin DownloadURL(%s,%s)"), src.c_str(), | ||
136 | dest.c_str()); | ||
137 | |||
138 | buf = wxT("Fetching ") + src; | ||
139 | wxProgressDialog* progress = new wxProgressDialog(wxT("Downloading"), | ||
140 | buf, 100, NULL, wxPD_APP_MODAL | | ||
141 | wxPD_AUTO_HIDE | wxPD_SMOOTH | wxPD_ELAPSED_TIME | | ||
142 | wxPD_REMAINING_TIME | wxPD_CAN_ABORT); | ||
143 | progress->SetSize(500,200); | ||
144 | progress->Update(0); | ||
145 | |||
146 | |||
147 | input = true; | ||
148 | wxURL* in_http = new wxURL(src); | ||
149 | |||
150 | if(gv->proxy_url != wxT("")) | ||
151 | in_http->SetProxy(gv->proxy_url); | ||
152 | |||
153 | if (in_http->GetError() == wxURL_NOERR) | ||
154 | { | ||
155 | |||
156 | wxFFileOutputStream* os = new wxFFileOutputStream(dest); | ||
157 | input = false; | ||
158 | if (os->IsOk()) | ||
159 | { | ||
160 | wxInputStream* is = in_http->GetInputStream(); | ||
161 | input = true; | ||
162 | if (is) | ||
163 | { | ||
164 | size_t filesize = is->GetSize(); | ||
165 | input = true; | ||
166 | if (is->IsOk()) | ||
167 | { | ||
168 | char buffer[FILE_BUFFER_SIZE + 1]; | ||
169 | size_t current = 0; | ||
170 | |||
171 | while (! is->Eof()) | ||
172 | { | ||
173 | is->Read(buffer, FILE_BUFFER_SIZE); | ||
174 | input = true; | ||
175 | if (is->LastRead() ) | ||
176 | { | ||
177 | os->Write(buffer, is->LastRead()); | ||
178 | input = false; | ||
179 | if (os->IsOk()) | ||
180 | { | ||
181 | current += os->LastWrite(); | ||
182 | if (!progress->Update(current * 100 / filesize)) | ||
183 | { | ||
184 | errstr = wxT("Download aborted by user"); | ||
185 | errnum = 1000; | ||
186 | break; | ||
187 | } | ||
188 | |||
189 | } else | ||
190 | { | ||
191 | errnum = os->GetLastError(); | ||
192 | errstr = wxT("Can't write to output stream (") | ||
193 | + stream_err_str(errnum) + wxT(")"); | ||
194 | |||
195 | break; | ||
196 | } | ||
197 | |||
198 | } else | ||
199 | { | ||
200 | errnum = is->GetLastError(); | ||
201 | if (errnum == wxSTREAM_EOF) | ||
202 | { | ||
203 | errnum = 0; | ||
204 | break; | ||
205 | } | ||
206 | errstr = wxT("Can't read from input stream (") | ||
207 | + stream_err_str(errnum) + wxT(")"); | ||
208 | } | ||
209 | } | ||
210 | |||
211 | os->Close(); | ||
212 | if (! errnum) | ||
213 | { | ||
214 | errnum = os->GetLastError(); | ||
215 | errstr = wxT("Can't close output file (") | ||
216 | + stream_err_str(errnum) + wxT(")"); | ||
217 | |||
218 | input = false; | ||
219 | } | ||
220 | |||
221 | if (! errnum) success = true; | ||
222 | |||
223 | } else | ||
224 | { | ||
225 | errnum = is->GetLastError(); | ||
226 | errstr = wxT("Can't get input stream size (") | ||
227 | + stream_err_str(errnum) + wxT(")"); | ||
228 | } | ||
229 | } else | ||
230 | { | ||
231 | errnum = in_http->GetError(); | ||
232 | errstr.Printf(wxT("Can't get input stream (%d)"), errnum); | ||
233 | } | ||
234 | delete is; | ||
235 | } else | ||
236 | { | ||
237 | errnum = os->GetLastError(); | ||
238 | errstr = wxT("Can't create output stream (") | ||
239 | + stream_err_str(errnum) + wxT(")"); | ||
240 | } | ||
241 | delete os; | ||
242 | } else | ||
243 | { | ||
244 | errstr.Printf(wxT("Can't open URL %s (%d)"), src.c_str(), | ||
245 | in_http->GetError() ); | ||
246 | errnum = 100; | ||
247 | } | ||
248 | |||
249 | delete in_http; | ||
250 | delete progress; | ||
251 | |||
252 | if (!success) | ||
253 | { | ||
254 | if (errnum == 0) errnum = 999; | ||
255 | if (input) | ||
256 | { | ||
257 | ERR_DIALOG(errstr + wxT(" reading\n") + src, wxT("Download URL")); | ||
258 | } else | ||
259 | { | ||
260 | ERR_DIALOG(errstr + wxT("writing to download\n/") + dest, | ||
261 | wxT("Download URL")); | ||
262 | } | ||
263 | |||
264 | } | ||
265 | |||
266 | wxLogVerbose(wxT("=== end DownloadURL")); | ||
267 | return errnum; | ||
268 | } | ||
269 | |||
270 | int UnzipFile(wxString src, wxString destdir, bool isInstall) | ||
271 | { | ||
272 | |||
273 | wxZipEntryPtr entry; | ||
274 | wxString in_str, progress_msg, buf,subdir; | ||
275 | int errnum = 0, curfile = 0, totalfiles = 0; | ||
276 | InstallLog* log = NULL; | ||
277 | |||
278 | wxLogVerbose(wxT("===begin UnzipFile(%s,%s,%i)"), | ||
279 | src.c_str(), destdir.c_str(), isInstall); | ||
280 | |||
281 | wxFFileInputStream* in_file = new wxFFileInputStream(src); | ||
282 | wxZipInputStream* in_zip = new wxZipInputStream(*in_file); | ||
283 | if (in_file->Ok() ) | ||
284 | { | ||
285 | if (! in_zip->IsOk() ) | ||
286 | { | ||
287 | errnum = in_zip->GetLastError(); | ||
288 | ERR_DIALOG(wxT("Can't open ZIP stream ") + src | ||
289 | + wxT(" for reading (") + stream_err_str(errnum) | ||
290 | + wxT(")"), wxT("Unzip File") ); | ||
291 | delete in_zip; | ||
292 | delete in_file; | ||
293 | return true; | ||
294 | } | ||
295 | |||
296 | totalfiles = in_zip->GetTotalEntries(); | ||
297 | if (! in_zip->IsOk() ) | ||
298 | { | ||
299 | errnum = in_zip->GetLastError(); | ||
300 | ERR_DIALOG( wxT("Error Getting total ZIP entries for ") | ||
301 | + src + wxT(" (") + stream_err_str(errnum) + wxT(")"), | ||
302 | wxT("Unzip File") ); | ||
303 | delete in_zip; | ||
304 | delete in_file; | ||
305 | return true; | ||
306 | } | ||
307 | } else | ||
308 | { | ||
309 | errnum = in_file->GetLastError(); | ||
310 | ERR_DIALOG(wxT("Can't open ") + src + wxT(" (") | ||
311 | + stream_err_str(errnum) + wxT(")"), wxT("Unzip File") ); | ||
312 | delete in_zip; | ||
313 | delete in_file; | ||
314 | return true; | ||
315 | } | ||
316 | |||
317 | wxProgressDialog* progress = new wxProgressDialog(wxT("Unpacking archive"), | ||
318 | wxT("Preparing to unpack the downloaded files to your audio" | ||
319 | "device"), totalfiles, NULL, wxPD_APP_MODAL | | ||
320 | wxPD_AUTO_HIDE | wxPD_SMOOTH | wxPD_ELAPSED_TIME | | ||
321 | wxPD_REMAINING_TIME | wxPD_CAN_ABORT); | ||
322 | progress->Update(0); | ||
323 | |||
324 | // We're not overly worried if the logging fails | ||
325 | if (isInstall) | ||
326 | { | ||
327 | log = new InstallLog(destdir + wxT("" PATH_SEP UNINSTALL_FILE)); | ||
328 | } | ||
329 | |||
330 | while (! errnum && | ||
331 | (entry.reset(in_zip->GetNextEntry()), entry.get() != NULL) ) | ||
332 | { | ||
333 | |||
334 | |||
335 | curfile++; | ||
336 | wxString name = entry->GetName(); | ||
337 | // set progress | ||
338 | progress_msg = wxT("Unpacking ") + name; | ||
339 | if (! progress->Update(curfile, progress_msg) ) | ||
340 | { | ||
341 | MESG_DIALOG(wxT("Unpacking cancelled by user")); | ||
342 | errnum = 1000; | ||
343 | break; | ||
344 | } | ||
345 | |||
346 | in_str = destdir + wxT("" PATH_SEP) + name; | ||
347 | |||
348 | subdir = wxPathOnly(in_str); | ||
349 | if(!(wxDirExists(subdir))) | ||
350 | { | ||
351 | if (! wxMkdir(subdir, 0777) ) | ||
352 | { | ||
353 | buf = wxT("Unable to create directory ") + subdir; | ||
354 | errnum = 100; | ||
355 | break; | ||
356 | } | ||
357 | log->WriteFile(subdir, true); // Directory | ||
358 | } | ||
359 | |||
360 | if(entry->IsDir()) | ||
361 | { | ||
362 | if(!wxDirExists(name)) | ||
363 | { | ||
364 | if(!wxMkdir(name, 0777) ) | ||
365 | { | ||
366 | buf = wxT("Unable to create directory ") + name; | ||
367 | errnum = 100; | ||
368 | break; | ||
369 | } | ||
370 | } | ||
371 | log->WriteFile(name, true); // Directory | ||
372 | continue; // this is just a directory, nothing else to do | ||
373 | } | ||
374 | |||
375 | // its a file, copy it | ||
376 | wxFFileOutputStream* out = new wxFFileOutputStream(in_str); | ||
377 | if (! out->IsOk() ) | ||
378 | { | ||
379 | buf = wxT("Can't open file ") + in_str + wxT(" for writing"); | ||
380 | delete out; | ||
381 | errnum = 100; | ||
382 | break; | ||
383 | } else if (isInstall) | ||
384 | { | ||
385 | log->WriteFile(name); | ||
386 | } | ||
387 | |||
388 | in_zip->Read(*out); | ||
389 | if (! out->IsOk()) { | ||
390 | buf.Printf(wxT("Can't write to %s (%d)"), in_str.c_str(), | ||
391 | errnum = out->GetLastError() ); | ||
392 | } | ||
393 | |||
394 | if (!in_zip->IsOk() && ! in_file->GetLastError() == wxSTREAM_EOF) | ||
395 | { | ||
396 | buf.Printf(wxT("Can't read from %s (%d)"), src.c_str(), | ||
397 | errnum = in_file->GetLastError() ); | ||
398 | } | ||
399 | |||
400 | if (! out->Close() && errnum == 0) | ||
401 | { | ||
402 | buf.Printf(wxT("Unable to close %s (%d)"), in_str.c_str(), | ||
403 | errnum = out->GetLastError() ); | ||
404 | |||
405 | } | ||
406 | |||
407 | delete out; | ||
408 | |||
409 | } | ||
410 | |||
411 | delete in_zip; delete in_file; delete progress; | ||
412 | |||
413 | if (errnum) | ||
414 | { | ||
415 | ERR_DIALOG(buf, wxT("Unzip File")); | ||
416 | } | ||
417 | |||
418 | if (log) delete log; | ||
419 | wxLogVerbose(wxT("=== end UnzipFile")); | ||
420 | return(errnum); | ||
421 | |||
422 | } | ||
423 | |||
424 | int Uninstall(const wxString dir, bool isFullUninstall) { | ||
425 | wxString buf, uninst; | ||
426 | unsigned int i; | ||
427 | bool errflag = false; | ||
428 | InstallLog *log = NULL; | ||
429 | wxArrayString* FilesToRemove = NULL; | ||
430 | |||
431 | wxLogVerbose(wxT("=== begin Uninstall(%s,%i)"), dir.c_str(), isFullUninstall); | ||
432 | |||
433 | wxProgressDialog* progress = new wxProgressDialog(wxT("Uninstalling"), | ||
434 | wxT("Reading uninstall data from jukebox"), 100, NULL, | ||
435 | wxPD_APP_MODAL | wxPD_AUTO_HIDE | wxPD_SMOOTH | | ||
436 | wxPD_ELAPSED_TIME | wxPD_REMAINING_TIME | wxPD_CAN_ABORT); | ||
437 | progress->Update(0); | ||
438 | |||
439 | if (! isFullUninstall) | ||
440 | { | ||
441 | |||
442 | buf = dir + wxT("" PATH_SEP UNINSTALL_FILE); | ||
443 | log = new InstallLog(buf, false); // Don't create the log | ||
444 | FilesToRemove = log->GetInstalledFiles(); | ||
445 | if (log) delete log; | ||
446 | |||
447 | if (FilesToRemove == NULL || FilesToRemove->GetCount() < 1) { | ||
448 | wxLogNull lognull; | ||
449 | if ( wxMessageDialog(NULL, | ||
450 | wxT("Rockbox Utility can't find any uninstall data on this " | ||
451 | "jukebox.\n" | ||
452 | "Would you like to attempt a full uninstall?\n" | ||
453 | "(WARNING: A full uninstall removes all files in your Rockbox " | ||
454 | "folder)"), | ||
455 | wxT("Standard uninstall not possible"), | ||
456 | wxICON_EXCLAMATION | wxYES_NO | wxNO_DEFAULT).ShowModal() | ||
457 | == wxID_YES) | ||
458 | { | ||
459 | isFullUninstall = true; | ||
460 | } | ||
461 | else { | ||
462 | MESG_DIALOG(wxT("Uninstall cancelled by user")); | ||
463 | delete progress; | ||
464 | return 1000; | ||
465 | } | ||
466 | } | ||
467 | } | ||
468 | |||
469 | if (isFullUninstall ) | ||
470 | { | ||
471 | buf = dir + wxT("" PATH_SEP ".rockbox"); | ||
472 | if (rm_rf(buf) ) | ||
473 | { | ||
474 | WARN_DIALOG(wxT("Unable to completely remove Rockbox directory"), | ||
475 | wxT("Full uninstall") ); | ||
476 | errflag = true; | ||
477 | } | ||
478 | |||
479 | wxDir* root = new wxDir(dir); | ||
480 | wxArrayString* special = new wxArrayString(); | ||
481 | // Search for files for deletion in the jukebox root | ||
482 | for (i = 0; i < rootmatch->GetCount(); i++) | ||
483 | { | ||
484 | const wxString match = (*rootmatch)[i]; | ||
485 | root->GetAllFiles(dir, special, match, wxDIR_FILES); | ||
486 | } | ||
487 | delete root; | ||
488 | |||
489 | // Sort in reverse order so we get directories last | ||
490 | special->Sort(true); | ||
491 | |||
492 | for (i = 0; i < special->GetCount(); i++) | ||
493 | { | ||
494 | |||
495 | if (wxDirExists((*special)[i]) ) | ||
496 | { | ||
497 | // We don't check the return code since we don't want non | ||
498 | // empty dirs disappearing. | ||
499 | wxRmdir((*special)[i]); | ||
500 | |||
501 | } else if (wxFileExists((*special)[i]) ) | ||
502 | { | ||
503 | if (! wxRemoveFile((*special)[i]) ) | ||
504 | { | ||
505 | WARN_DIALOG(wxT("Can't delete ") + (*special)[i], | ||
506 | wxT("Full uninstall")); | ||
507 | errflag = true; | ||
508 | } | ||
509 | } | ||
510 | // Otherwise there isn't anything there, so we don't have to worry. | ||
511 | } | ||
512 | delete special; | ||
513 | } else | ||
514 | { | ||
515 | wxString instplat, this_path_sep; | ||
516 | unsigned int totalfiles, rc; | ||
517 | totalfiles = FilesToRemove->GetCount(); | ||
518 | FilesToRemove->Sort(true); // Reverse alphabetical ie dirs after files | ||
519 | |||
520 | for (i = 0; i < totalfiles; i++) | ||
521 | { | ||
522 | // If we're running on the device, let's not delete our own | ||
523 | // installation, eh? | ||
524 | if (gv->portable && | ||
525 | FilesToRemove->Item(i).StartsWith(PATH_SEP | ||
526 | wxT("RockboxUtility")) ) | ||
527 | { | ||
528 | continue; | ||
529 | } | ||
530 | |||
531 | wxString* buf2 = new wxString; | ||
532 | buf = dir + FilesToRemove->Item(i); | ||
533 | buf2->Format(wxT("Deleting %s"), buf.c_str()); | ||
534 | |||
535 | if (! progress->Update((i + 1) * 100 / totalfiles, *buf2) ) | ||
536 | { | ||
537 | WARN_DIALOG(wxT("Cancelled by user"), wxT("Normal Uninstall")); | ||
538 | delete progress; | ||
539 | return true; | ||
540 | } | ||
541 | |||
542 | if (wxDirExists(buf) ) | ||
543 | { | ||
544 | // If we're about to attempt to remove .rockbox. delete | ||
545 | // install data first | ||
546 | *buf2 = dir + wxT("" PATH_SEP ".rockbox"); | ||
547 | if ( buf.IsSameAs(buf2->c_str()) ) | ||
548 | { | ||
549 | *buf2 = dir +wxT("" PATH_SEP UNINSTALL_FILE); | ||
550 | wxRemoveFile(*buf2); | ||
551 | } | ||
552 | |||
553 | if ( (rc = ! wxRmdir(buf)) ) | ||
554 | { | ||
555 | buf = buf.Format(wxT("Can't remove directory %s"), | ||
556 | buf.c_str()); | ||
557 | errflag = true; | ||
558 | WARN_DIALOG(buf.c_str(), wxT("Standard uninstall")); | ||
559 | } | ||
560 | } else if (wxFileExists(buf) ) | ||
561 | { | ||
562 | if ( (rc = ! wxRemoveFile(buf)) ) | ||
563 | { | ||
564 | buf = buf.Format(wxT("Can't delete file %s"), | ||
565 | buf.c_str()); | ||
566 | errflag = true; | ||
567 | WARN_DIALOG(buf.c_str(), wxT("Standard uninstall")); | ||
568 | } | ||
569 | } else | ||
570 | { | ||
571 | errflag = true; | ||
572 | buf = buf.Format(wxT("Can't find file or directory %s"), | ||
573 | buf.c_str() ); | ||
574 | WARN_DIALOG(buf.c_str(), wxT("Standard uninstall") ); | ||
575 | } | ||
576 | |||
577 | uninst = uninst.AfterFirst('\n'); | ||
578 | } | ||
579 | if (errflag) | ||
580 | { | ||
581 | ERR_DIALOG(wxT("Unable to remove some files"), | ||
582 | wxT("Standard uninstall")) ; | ||
583 | } | ||
584 | |||
585 | if (FilesToRemove != NULL) delete FilesToRemove; | ||
586 | } | ||
587 | |||
588 | delete progress; | ||
589 | wxLogVerbose(wxT("=== end Uninstall")); | ||
590 | return errflag; | ||
591 | } | ||
592 | |||
593 | |||
594 | wxString stream_err_str(int errnum) | ||
595 | { | ||
596 | wxString out; | ||
597 | |||
598 | switch (errnum) { | ||
599 | case wxSTREAM_NO_ERROR: | ||
600 | out = wxT("wxSTREAM_NO_ERROR"); | ||
601 | break; | ||
602 | case wxSTREAM_EOF: | ||
603 | out = wxT("wxSTREAM_EOF"); | ||
604 | break; | ||
605 | case wxSTREAM_WRITE_ERROR: | ||
606 | out = wxT("wxSTREAM_WRITE_ERROR"); | ||
607 | break; | ||
608 | case wxSTREAM_READ_ERROR: | ||
609 | out = wxT("wxSTREAM_READ_ERROR"); | ||
610 | break; | ||
611 | default: | ||
612 | out = wxT("UNKNOWN"); | ||
613 | break; | ||
614 | } | ||
615 | return out; | ||
616 | } | ||
617 | |||
618 | bool InstallRbutil(wxString dest) | ||
619 | { | ||
620 | wxArrayString filestocopy; | ||
621 | wxString str, buf, dstr, localpath, destdir; | ||
622 | unsigned int i; | ||
623 | wxDir dir; | ||
624 | bool copied_exe = false, made_rbdir = false; | ||
625 | InstallLog* log; | ||
626 | |||
627 | buf = dest + wxT("" PATH_SEP ".rockbox"); | ||
628 | |||
629 | if (! wxDirExists(buf) ) | ||
630 | { | ||
631 | wxMkdir(buf); | ||
632 | made_rbdir = true; | ||
633 | } | ||
634 | |||
635 | buf = dest + wxT("" PATH_SEP UNINSTALL_FILE); | ||
636 | log = new InstallLog(buf); | ||
637 | if (made_rbdir) log->WriteFile(wxT(".rockbox"), true); | ||
638 | |||
639 | destdir = dest + wxT("" PATH_SEP "RockboxUtility"); | ||
640 | if (! wxDirExists(destdir) ) | ||
641 | { | ||
642 | if (! wxMkdir(destdir, 0777) ) | ||
643 | { | ||
644 | WARN_DIALOG( wxT("Unable to create directory for installer (") | ||
645 | + destdir + wxT(")"), wxT("Portable install") ); | ||
646 | return false; | ||
647 | } | ||
648 | log->WriteFile(wxT("RockboxUtility"), true); | ||
649 | } | ||
650 | |||
651 | dir.GetAllFiles(gv->ResourceDir, &filestocopy, wxT("*"), | ||
652 | wxDIR_FILES); | ||
653 | if (filestocopy.GetCount() < 1) | ||
654 | { | ||
655 | WARN_DIALOG(wxT("No files to copy"), wxT("Portable install") ); | ||
656 | return false; | ||
657 | } | ||
658 | |||
659 | // Copy the contents of the program directory | ||
660 | for (i = 0; i < filestocopy.GetCount(); i++) | ||
661 | { | ||
662 | if (filestocopy[i].AfterLast(PATH_SEP_CHR) == EXE_NAME) | ||
663 | { | ||
664 | copied_exe = true; | ||
665 | } | ||
666 | |||
667 | dstr = destdir + wxT("" PATH_SEP) | ||
668 | + filestocopy[i].AfterLast(PATH_SEP_CHR); | ||
669 | if (! wxCopyFile(filestocopy[i], dstr) ) | ||
670 | { | ||
671 | WARN_DIALOG( wxT("Error copying file (") | ||
672 | + filestocopy[i].c_str() + wxT(" -> ") | ||
673 | + dstr + wxT(")"), wxT("Portable Install") ); | ||
674 | return false; | ||
675 | } | ||
676 | buf = dstr; | ||
677 | buf.Replace(dest, wxEmptyString, false); | ||
678 | log->WriteFile(buf); | ||
679 | } | ||
680 | |||
681 | if (! copied_exe) | ||
682 | { | ||
683 | str = gv->AppDir + wxT("" PATH_SEP EXE_NAME); | ||
684 | dstr = destdir + wxT("" PATH_SEP EXE_NAME); | ||
685 | if (! wxCopyFile(str, dstr) ) | ||
686 | { | ||
687 | WARN_DIALOG(wxT("Can't copy program binary ") | ||
688 | + str + wxT(" -> ") + dstr, wxT("Portable Install") ); | ||
689 | return false; | ||
690 | } | ||
691 | buf = dstr; | ||
692 | buf.Replace(dest, wxEmptyString, false); | ||
693 | log->WriteFile(buf); | ||
694 | } | ||
695 | |||
696 | // Copy the local ini file so that it knows that it's a portable copy | ||
697 | gv->UserConfig->Flush(); | ||
698 | dstr = destdir + wxT("" PATH_SEP "RockboxUtility.cfg"); | ||
699 | if (! wxCopyFile(gv->UserConfigFile, dstr) ) | ||
700 | { | ||
701 | WARN_DIALOG(wxT("Unable to install user config file (") | ||
702 | + gv->UserConfigFile + wxT(" -> ") + dstr + wxT(")"), | ||
703 | wxT("Portable Install") ); | ||
704 | return false; | ||
705 | } | ||
706 | buf = dstr; | ||
707 | buf.Replace(dest, wxEmptyString, false); | ||
708 | log->WriteFile(buf); | ||
709 | |||
710 | delete log; | ||
711 | return true; | ||
712 | } | ||
713 | |||
714 | bool rm_rf(wxString file) | ||
715 | { | ||
716 | wxLogVerbose(wxT("=== begin rm-rf(%s)"), file.c_str() ); | ||
717 | |||
718 | wxString buf; | ||
719 | wxArrayString selected; | ||
720 | wxDirTraverserIncludeDirs wxdtid(selected); | ||
721 | unsigned int rc = 0, i; | ||
722 | bool errflag = false; | ||
723 | |||
724 | if (wxFileExists(file) ) | ||
725 | { | ||
726 | rc = ! wxRemoveFile(file); | ||
727 | } else if (wxDirExists(file) ) | ||
728 | { | ||
729 | wxDir* dir = new wxDir(file);; | ||
730 | dir->Traverse(wxdtid); | ||
731 | delete dir; | ||
732 | // Sort into reverse alphabetical order for deletion in correct order | ||
733 | // (directories after files) | ||
734 | selected.Sort(true); | ||
735 | selected.Add(file); | ||
736 | |||
737 | wxProgressDialog* progress = new wxProgressDialog(wxT("Removing files"), | ||
738 | wxT("Deleting files"), selected.GetCount(), NULL, | ||
739 | wxPD_APP_MODAL | wxPD_AUTO_HIDE | wxPD_SMOOTH | | ||
740 | wxPD_ELAPSED_TIME | wxPD_REMAINING_TIME | wxPD_CAN_ABORT); | ||
741 | |||
742 | for (i = 0; i < selected.GetCount(); i++) | ||
743 | { | ||
744 | wxLogVerbose(selected[i]); | ||
745 | if (progress != NULL) | ||
746 | { | ||
747 | buf = wxT("Deleting ") + selected[i]; | ||
748 | if (! progress->Update(i, buf)) | ||
749 | { | ||
750 | WARN_DIALOG(wxT("Cancelled by user"), wxT("Erase Files")); | ||
751 | delete progress; | ||
752 | return true; | ||
753 | } | ||
754 | } | ||
755 | |||
756 | if (wxDirExists(selected[i]) ) | ||
757 | { | ||
758 | if ((rc = ! wxRmdir(selected[i])) ) | ||
759 | { | ||
760 | errflag = true; | ||
761 | WARN_DIALOG(wxT("Can't remove directory ") + selected[i], | ||
762 | wxT("Erase files")); | ||
763 | } | ||
764 | } else if ((rc = ! wxRemoveFile(selected[i])) ) | ||
765 | { | ||
766 | errflag = true; | ||
767 | WARN_DIALOG(wxT("Error deleting file ") + selected[i], | ||
768 | wxT("Erase files")); | ||
769 | } | ||
770 | } | ||
771 | delete progress; | ||
772 | } else | ||
773 | { | ||
774 | WARN_DIALOG(wxT("Can't find expected file ") + file, | ||
775 | wxT("Erase files")); | ||
776 | return true; | ||
777 | } | ||
778 | |||
779 | wxLogVerbose(wxT("=== end rm-rf")); | ||
780 | return rc ? true : false; | ||
781 | } | ||
782 | |||
783 | |||
diff --git a/rbutil/rbutil.h b/rbutil/rbutil.h deleted file mode 100644 index eb31986ace..0000000000 --- a/rbutil/rbutil.h +++ /dev/null | |||
@@ -1,176 +0,0 @@ | |||
1 | /*************************************************************************** | ||
2 | * __________ __ ___. | ||
3 | * Open \______ \ ____ ____ | | _\_ |__ _______ ___ | ||
4 | * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / | ||
5 | * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | ||
6 | * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | ||
7 | * \/ \/ \/ \/ \/ | ||
8 | * Module: rbutil | ||
9 | * File: rbutil.h | ||
10 | * | ||
11 | * Copyright (C) 2005 Christi Alice Scarborough | ||
12 | * | ||
13 | * All files in this archive are subject to the GNU General Public License. | ||
14 | * See the file COPYING in the source tree root for full license agreement. | ||
15 | * | ||
16 | * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY | ||
17 | * KIND, either express or implied. | ||
18 | * | ||
19 | ****************************************************************************/ | ||
20 | |||
21 | #include <wx/wxprec.h> | ||
22 | #ifdef __BORLANDC__ | ||
23 | #pragma hdrstop | ||
24 | #endif | ||
25 | #ifndef WX_PRECOMP | ||
26 | #include <wx/wx.h> | ||
27 | #endif | ||
28 | |||
29 | #ifndef __rbutil_HPP_ | ||
30 | #define __rbutil_HPP_ | ||
31 | |||
32 | #include <wx/config.h> | ||
33 | #include <wx/confbase.h> | ||
34 | #include <wx/fileconf.h> | ||
35 | #include <wx/stdpaths.h> | ||
36 | #include <wx/wfstream.h> | ||
37 | #include <wx/filesys.h> | ||
38 | #include <wx/fs_inet.h> | ||
39 | #include <wx/fs_zip.h> | ||
40 | #include <wx/progdlg.h> | ||
41 | #include <wx/protocol/http.h> | ||
42 | #include <wx/string.h> | ||
43 | #include <wx/url.h> | ||
44 | #include <wx/ptr_scpd.h> | ||
45 | #include <wx/zipstrm.h> | ||
46 | #include <wx/dir.h> | ||
47 | #include <wx/filefn.h> | ||
48 | #include <wx/sstream.h> | ||
49 | #include <wx/msgdlg.h> | ||
50 | #include <wx/log.h> | ||
51 | #include <wx/file.h> | ||
52 | #include <wx/wizard.h> | ||
53 | #include <wx/event.h> | ||
54 | #include <wx/statline.h> | ||
55 | #include <wx/valgen.h> | ||
56 | #include <wx/thread.h> | ||
57 | #include <wx/regex.h> | ||
58 | #include <wx/tokenzr.h> | ||
59 | #include <wx/notebook.h> | ||
60 | #include <wx/html/htmlwin.h> | ||
61 | #include <wx/hyperlink.h> | ||
62 | #include <wx/mstream.h> | ||
63 | |||
64 | #ifdef __WXMSW__ | ||
65 | #define PATH_SEP "\\" | ||
66 | #define PATH_SEP_CHR '\\' | ||
67 | #define EXE_NAME wxT("rbutil.exe") | ||
68 | #else | ||
69 | #define PATH_SEP wxT("/") | ||
70 | #define PATH_SEP_CHR '/' | ||
71 | #define EXE_NAME wxT("rbutil") | ||
72 | #endif | ||
73 | |||
74 | #define UNINSTALL_FILE wxT(".rockbox" PATH_SEP ".rbutil_install_data") | ||
75 | #define MAX_PLATFORMS 50 | ||
76 | #define SYSTEM_CONFIG rbutil.ini | ||
77 | #define FILE_BUFFER_SIZE 1024 | ||
78 | |||
79 | //WX_DEFINE_OBJARRAY(bool, wxArrayBool); | ||
80 | |||
81 | class GlobalVars | ||
82 | { | ||
83 | public: | ||
84 | // Program configuration data (rbutil.ini and environment) | ||
85 | wxFileConfig* GlobalConfig; | ||
86 | wxFileConfig* UserConfig; | ||
87 | wxString UserConfigFile; | ||
88 | wxString GlobalConfigFile; | ||
89 | wxString AppDir; | ||
90 | wxString ResourceDir; | ||
91 | |||
92 | wxString* ErrStr; | ||
93 | wxStandardPaths* stdpaths; | ||
94 | wxArrayString plat_id; | ||
95 | wxArrayString plat_name; | ||
96 | wxArrayInt plat_released; | ||
97 | wxArrayInt plat_needsbootloader; | ||
98 | wxArrayString plat_bootloadermethod; | ||
99 | wxArrayString plat_bootloadername; | ||
100 | wxArrayString plat_resolution; | ||
101 | wxArrayString plat_manualname; | ||
102 | wxString download_url; | ||
103 | wxString daily_url; | ||
104 | wxString bleeding_url; | ||
105 | wxString server_conf_url; | ||
106 | wxString font_url; | ||
107 | wxString last_release; | ||
108 | wxString prog_name; | ||
109 | wxString bootloader_url; | ||
110 | wxString themes_url; | ||
111 | wxString manual_url; | ||
112 | wxString doom_url; | ||
113 | wxString proxy_url; | ||
114 | |||
115 | |||
116 | // User configuration data. | ||
117 | wxString curplat; | ||
118 | // unsigned int curplatnum; | ||
119 | wxString curdestdir; | ||
120 | wxString curfirmware; | ||
121 | unsigned int curbuild; | ||
122 | bool curisfull; | ||
123 | bool nocache; | ||
124 | bool portable; | ||
125 | wxString curresolution; | ||
126 | wxArrayString themesToInstall; | ||
127 | wxString pathToTts; | ||
128 | wxString pathToEnc; | ||
129 | |||
130 | |||
131 | |||
132 | // Global system variables | ||
133 | wxFFile* logfile; | ||
134 | wxLogStderr* logstderr; | ||
135 | wxLogChain* logchain; | ||
136 | wxLogGui* loggui; | ||
137 | }; | ||
138 | |||
139 | extern GlobalVars* gv; | ||
140 | |||
141 | |||
142 | wxString wxFindAppPath(const wxString& argv0, const wxString& cwd, | ||
143 | const wxString& appVariableName); | ||
144 | int DownloadURL(wxString src, wxString dest); | ||
145 | int UnzipFile(wxString src, wxString destdir, bool isInstall = false); | ||
146 | int Uninstall(const wxString dir, bool isFullUninstall = false); | ||
147 | bool InstallRbutil(wxString dest); | ||
148 | bool InstallTheme(wxString src); | ||
149 | bool checkZip(wxString zipname); | ||
150 | wxString stream_err_str(int errnum); | ||
151 | bool rm_rf(wxString file); | ||
152 | |||
153 | wxBitmap wxGetBitmapFromMemory(const unsigned char *data,int length); | ||
154 | |||
155 | |||
156 | #define ERR_DIALOG(msg, title) \ | ||
157 | wxLogError(wxT("%s: %s"), ((wxString) title).c_str(), ((wxString) msg).c_str()) | ||
158 | |||
159 | #define WARN_DIALOG(msg, title) \ | ||
160 | wxLogWarning(wxT("%s: %s"), ((wxString) title).c_str(), ((wxString) msg).c_str()) | ||
161 | |||
162 | #define MESG_DIALOG(msg) \ | ||
163 | wxLogMessage(msg) | ||
164 | |||
165 | #define INFO_DIALOG(msg) \ | ||
166 | wxLogInfo(msg) | ||
167 | |||
168 | #define BUILD_RELEASE 0 | ||
169 | #define BUILD_DAILY 1 | ||
170 | #define BUILD_BLEEDING 2 | ||
171 | |||
172 | #define BOOTLOADER_ADD 0 | ||
173 | #define BOOTLOADER_REM 1 | ||
174 | |||
175 | |||
176 | #endif | ||
diff --git a/rbutil/rbutil.ini b/rbutil/rbutil.ini deleted file mode 100644 index 1ab45ecdcc..0000000000 --- a/rbutil/rbutil.ini +++ /dev/null | |||
@@ -1,299 +0,0 @@ | |||
1 | [general] | ||
2 | download_url=http://www.rockbox.org/download/ | ||
3 | daily_url=http://download.rockbox.org/daily/ | ||
4 | bleeding_url=http://build.rockbox.org/dist/build- | ||
5 | server_conf_url=http://www.rockbox.org/daily/build-info | ||
6 | font_url=http://www.rockbox.org/daily/fonts/rockbox-fonts- | ||
7 | last_release=2.5 | ||
8 | prog_name=rockbox | ||
9 | bootloader_url=http://download.rockbox.org/bootloader | ||
10 | themes_url=http://www.rockbox-themes.org/ | ||
11 | manual_url=http://download.rockbox.org/manual | ||
12 | doom_url=http://download.rockbox.org/useful/rockdoom.zip | ||
13 | |||
14 | [platforms] | ||
15 | platform1=player | ||
16 | platform2=recorder | ||
17 | platform3=recorder8mb | ||
18 | platform4=recorderv2 | ||
19 | platform5=fmrecorder | ||
20 | platform6=fmrecorder8mb | ||
21 | platform7=ondiosp | ||
22 | platform8=ondiofm | ||
23 | platform9=h100 | ||
24 | platform10=h120 | ||
25 | platform11=h300 | ||
26 | platform12=h10_5gbums | ||
27 | platform13=h10_5gbmtp | ||
28 | platform14=h10 | ||
29 | platform15=ipod3g | ||
30 | platform16=ipod4gray | ||
31 | platform17=ipodcolor | ||
32 | platform18=ipodvideo | ||
33 | platform19=ipodmini1g | ||
34 | platform20=ipodmini2g | ||
35 | platform21=ipodnano | ||
36 | platform22=iaudiox5 | ||
37 | platform23=iaudiom5 | ||
38 | platform24=iaudiox5v | ||
39 | platform25=gigabeatf | ||
40 | platform26=sansae200 | ||
41 | |||
42 | [player] | ||
43 | name=Archos Jukebox Player 6000, Jukebox Studio 5/10/20 | ||
44 | platform=player | ||
45 | released=yes | ||
46 | needsbootloader=no | ||
47 | bootloadermethod= | ||
48 | bootloadername= | ||
49 | resolution=11x2x1 | ||
50 | manualname= | ||
51 | |||
52 | [recorder] | ||
53 | name=Archos Jukebox Recorder 10, 20 | ||
54 | platform=recorder | ||
55 | released=yes | ||
56 | needsbootloader=no | ||
57 | bootloadermethod= | ||
58 | bootloadername= | ||
59 | resolution=112x64x1 | ||
60 | manualname= | ||
61 | |||
62 | [recorder8mb] | ||
63 | name=Archos Jukebox Recorder 10, 20 (with 8mb memory) | ||
64 | platform=recorder8mb | ||
65 | released=no | ||
66 | needsbootloader=no | ||
67 | bootloadermethod= | ||
68 | bootloadername= | ||
69 | resolution=112x64x1 | ||
70 | manualname=rockbox-recorder | ||
71 | |||
72 | [recorderv2] | ||
73 | name=Archos Jukebox Recorder v2 (20GB) | ||
74 | platform=recorderv2 | ||
75 | released=yes | ||
76 | needsbootloader=no | ||
77 | bootloadermethod= | ||
78 | bootloadername= | ||
79 | resolution=112x64x1 | ||
80 | manualname= | ||
81 | |||
82 | [fmrecorder] | ||
83 | name=Archos Jukebox Recorder FM | ||
84 | platform=fmrecorder | ||
85 | released=yes | ||
86 | needsbootloader=no | ||
87 | bootloadermethod= | ||
88 | bootloadername= | ||
89 | resolution=112x64x1 | ||
90 | manualname= | ||
91 | |||
92 | [fmrecorder8mb] | ||
93 | name=Archos Jukebox Recorder FM (with 8mb memory) | ||
94 | platform=fmrecorder8mb | ||
95 | released=no | ||
96 | needsbootloader=no | ||
97 | bootloadermethod= | ||
98 | bootloadername= | ||
99 | resolution=112x64x1 | ||
100 | manualname=rockbox-fmrecorder | ||
101 | |||
102 | [ondiosp] | ||
103 | name=Archos Ondio SP | ||
104 | platform=ondiosp | ||
105 | released=yes | ||
106 | needsbootloader=no | ||
107 | bootloadermethod= | ||
108 | bootloadername= | ||
109 | resolution=112x64x1 | ||
110 | manualname= | ||
111 | |||
112 | [ondiofm] | ||
113 | name=Archos Ondio FM | ||
114 | platform=ondiofm | ||
115 | released=yes | ||
116 | needsbootloader=no | ||
117 | bootloadermethod= | ||
118 | bootloadername= | ||
119 | resolution=112x64x1 | ||
120 | manualname= | ||
121 | |||
122 | [h100] | ||
123 | name=Iriver iHP100, iHP110 | ||
124 | platform=h100 | ||
125 | released=no | ||
126 | needsbootloader=yes | ||
127 | bootloadermethod=fwpatcher | ||
128 | bootloadername=bootloader-h100.bin | ||
129 | resolution=160x128x2 | ||
130 | manualname=rockbox-h100 | ||
131 | |||
132 | [h120] | ||
133 | name=Iriver iHP120, iHP140, H120, H140 | ||
134 | platform=h120 | ||
135 | released=no | ||
136 | needsbootloader=yes | ||
137 | bootloadermethod=fwpatcher | ||
138 | bootloadername=bootloader-h120.bin | ||
139 | resolution=160x128x2 | ||
140 | manualname=rockbox-h100 | ||
141 | |||
142 | [h300] | ||
143 | name=Iriver H320, H340 | ||
144 | platform=h300 | ||
145 | released=no | ||
146 | needsbootloader=yes | ||
147 | bootloadermethod=fwpatcher | ||
148 | bootloadername=bootloader-h300.bin | ||
149 | resolution=220x176x16 | ||
150 | manualname=rockbox-h300 | ||
151 | |||
152 | [h10_5gbums] | ||
153 | name=Iriver H10 (5/6GB) UMS | ||
154 | platform=h10_5gb | ||
155 | released=no | ||
156 | needsbootloader=yes | ||
157 | bootloadermethod=h10 | ||
158 | bootloadername=H10.mi4 | ||
159 | resolution=128x128x16 | ||
160 | manualname= | ||
161 | |||
162 | [h10_5gbmtp] | ||
163 | name=Iriver H10 (5/6GB) MTP | ||
164 | platform=h10_5gb | ||
165 | released=no | ||
166 | needsbootloader=yes | ||
167 | bootloadermethod=h10 | ||
168 | bootloadername=H10_5GB-MTP/H10.mi4 | ||
169 | resolution=128x128x16 | ||
170 | manualname= | ||
171 | |||
172 | [h10] | ||
173 | name=Iriver H10 (20GB) | ||
174 | platform=h10 | ||
175 | released=no | ||
176 | needsbootloader=yes | ||
177 | bootloadermethod=h10 | ||
178 | bootloadername=H10_20GC.mi4 | ||
179 | resolution=160x128x16 | ||
180 | manualname= | ||
181 | |||
182 | [ipodcolor] | ||
183 | name=Apple Ipod Colour/Photo/U2 (4th gen) | ||
184 | platform=ipodcolor | ||
185 | released=no | ||
186 | needsbootloader=yes | ||
187 | bootloadermethod=ipodpatcher | ||
188 | bootloadername=ipodcolor | ||
189 | resolution=220x176x16 | ||
190 | manualname= | ||
191 | |||
192 | [ipodnano] | ||
193 | name=Apple Ipod Nano (1st gen) | ||
194 | platform=ipodnano | ||
195 | released=no | ||
196 | needsbootloader=yes | ||
197 | bootloadermethod=ipodpatcher | ||
198 | bootloadername=ipodnano | ||
199 | resolution=176x132x16 | ||
200 | manualname= | ||
201 | |||
202 | [ipod4gray] | ||
203 | name=Apple Ipod (4th gen, greyscale) | ||
204 | platform=ipod4gray | ||
205 | released=no | ||
206 | needsbootloader=yes | ||
207 | bootloadermethod=ipodpatcher | ||
208 | bootloadername=ipod4g | ||
209 | resolution=160x128x2 | ||
210 | manualname= | ||
211 | |||
212 | [ipodvideo] | ||
213 | name=Apple Ipod Video (5th gen) | ||
214 | platform=ipodvideo | ||
215 | released=no | ||
216 | needsbootloader=yes | ||
217 | bootloadermethod=ipodpatcher | ||
218 | bootloadername=ipodvideo | ||
219 | resolution=320x240x16 | ||
220 | manualname= | ||
221 | |||
222 | [ipod3g] | ||
223 | name=Apple Ipod (3rd gen) | ||
224 | platform=ipod3g | ||
225 | released=no | ||
226 | needsbootloader=yes | ||
227 | bootloadermethod=ipodpatcher | ||
228 | bootloadername=ipod3g | ||
229 | resolution=160x128x2 | ||
230 | manualname= | ||
231 | |||
232 | [ipodmini1g] | ||
233 | name=Apple Ipod Mini (1st gen) | ||
234 | platform=ipodmini1g | ||
235 | released=no | ||
236 | needsbootloader=yes | ||
237 | bootloadermethod=ipodpatcher | ||
238 | bootloadername=ipodmini | ||
239 | resolution=138x110x2 | ||
240 | manualname=rockbox-ipodmini2g | ||
241 | |||
242 | [ipodmini2g] | ||
243 | name=Apple Ipod Mini (2nd gen) | ||
244 | platform=ipodmini2g | ||
245 | released=no | ||
246 | needsbootloader=yes | ||
247 | bootloadermethod=ipodpatcher | ||
248 | bootloadername=ipodmini2g | ||
249 | resolution=138x110x2 | ||
250 | manualname=rockbox-ipodmini2g | ||
251 | |||
252 | [iaudiox5] | ||
253 | name=Cowon iAudio X5 , X5L | ||
254 | platform=iaudiox5 | ||
255 | released=no | ||
256 | needsbootloader=yes | ||
257 | bootloadermethod=iaudio | ||
258 | bootloadername=x5_fw.bin | ||
259 | resolution=160x128x16 | ||
260 | manualname= | ||
261 | |||
262 | [iaudiox5v] | ||
263 | name=Cowon iAudio X5V | ||
264 | platform=iaudiox5 | ||
265 | released=no | ||
266 | needsbootloader=yes | ||
267 | bootloadermethod=iaudio | ||
268 | bootloadername=x5v_fw.bin | ||
269 | resolution=160x128x2 | ||
270 | manualname= | ||
271 | |||
272 | [iaudiom5] | ||
273 | name=Cowon iAudio M5 , M5L | ||
274 | platform=iaudiom5 | ||
275 | released=no | ||
276 | needsbootloader=yes | ||
277 | bootloadermethod=iaudio | ||
278 | bootloadername=m5_fw.bin | ||
279 | resolution=160x128x16 | ||
280 | manualname= | ||
281 | |||
282 | [gigabeatf] | ||
283 | name=Toshiba Gigabeat F , X | ||
284 | platform=gigabeatf | ||
285 | needsbootloader=yes | ||
286 | bootloadermethod=gigabeatf | ||
287 | bootloadername=FWIMG01.DAT | ||
288 | resolution=240x320x16 | ||
289 | manualname= | ||
290 | |||
291 | [sansae200] | ||
292 | name=Sandisk Sansa E200 | ||
293 | platform=sansae200 | ||
294 | released=no | ||
295 | needsbootloader=yes | ||
296 | bootloadermethod=sansapatcher | ||
297 | bootloadername=PP5022.mi4 | ||
298 | resolution=176x220x16 | ||
299 | manualname= | ||
diff --git a/rbutil/rbutil.iss b/rbutil/rbutil.iss deleted file mode 100644 index d945d85336..0000000000 --- a/rbutil/rbutil.iss +++ /dev/null | |||
@@ -1,55 +0,0 @@ | |||
1 | ; Script generated by the Inno Setup Script Wizard. | ||
2 | ; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES! | ||
3 | |||
4 | #define MyAppName "Rockbox Utility" | ||
5 | #define MyAppVerName "Rockbox Utility v0.2.1" | ||
6 | #define MyAppPublisher "Rockbox Team" | ||
7 | #define MyAppURL "http://www.rockbox.org/" | ||
8 | #define MyAppExeName "rbutil.exe" | ||
9 | #define MyAppUrlName "rbutil.url" | ||
10 | |||
11 | [Setup] | ||
12 | AppName={#MyAppName} | ||
13 | AppVerName={#MyAppVerName} | ||
14 | AppPublisher={#MyAppPublisher} | ||
15 | AppPublisherURL={#MyAppURL} | ||
16 | AppSupportURL={#MyAppURL} | ||
17 | AppUpdatesURL={#MyAppURL} | ||
18 | DefaultDirName={pf}\{#MyAppName} | ||
19 | DefaultGroupName={#MyAppName} | ||
20 | LicenseFile=copying.txt | ||
21 | OutputBaseFilename=rbutil-0.2.1-setup | ||
22 | Compression=lzma/ultra | ||
23 | SolidCompression=true | ||
24 | OutputDir=. | ||
25 | AppCopyright=© 2005-6 Rockbox Team | ||
26 | AppID={{BDAF1E02-1CC9-48BB-AE03-95D87F65BF4A} | ||
27 | |||
28 | [Languages] | ||
29 | Name: english; MessagesFile: compiler:Default.isl | ||
30 | |||
31 | [Tasks] | ||
32 | Name: desktopicon; Description: {cm:CreateDesktopIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: unchecked | ||
33 | Name: quicklaunchicon; Description: {cm:CreateQuickLaunchIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: unchecked | ||
34 | |||
35 | [Files] | ||
36 | Source: rbutil.exe; DestDir: {app}; Flags: ignoreversion | ||
37 | ; NOTE: Don't use "Flags: ignoreversion" on any shared system files | ||
38 | Source: rbutil.ini; DestDir: {app}; Flags: ignoreversion | ||
39 | |||
40 | [INI] | ||
41 | Filename: {app}\{#MyAppUrlName}; Section: InternetShortcut; Key: URL; String: {#MyAppURL} | ||
42 | |||
43 | [Icons] | ||
44 | Name: {group}\{#MyAppName}; Filename: {app}\{#MyAppExeName} | ||
45 | Name: {group}\{cm:ProgramOnTheWeb,{#MyAppName}}; Filename: {app}\{#MyAppUrlName} | ||
46 | Name: {group}\{cm:UninstallProgram,{#MyAppName}}; Filename: {uninstallexe} | ||
47 | Name: {userdesktop}\{#MyAppName}; Filename: {app}\{#MyAppExeName}; Tasks: desktopicon | ||
48 | Name: {userappdata}\Microsoft\Internet Explorer\Quick Launch\{#MyAppName}; Filename: {app}\{#MyAppExeName}; Tasks: quicklaunchicon | ||
49 | |||
50 | [Run] | ||
51 | Filename: {app}\{#MyAppExeName}; Description: {cm:LaunchProgram,{#MyAppName}}; Flags: nowait postinstall skipifsilent | ||
52 | |||
53 | [UninstallDelete] | ||
54 | Type: files; Name: {app}\{#MyAppUrlName} | ||
55 | |||
diff --git a/rbutil/rbutil.r b/rbutil/rbutil.r deleted file mode 100755 index e7c39a882c..0000000000 --- a/rbutil/rbutil.r +++ /dev/null | |||
@@ -1,2675 +0,0 @@ | |||
1 | data 'vers' (2) { | ||
2 | $"0100 2000 0000 0531 2E30 6430 0531 2E30" | ||
3 | $"6430"} ; | ||
4 | |||
5 | data 'vers' (1) { | ||
6 | $"0100 2000 0000 0531 2E30 6430 0531 2E30" | ||
7 | $"6430"} ; | ||
8 | |||
9 | data 'ICN#' (-16455, "Item Icon") { | ||
10 | $"FFFF FFFF F700 001D BB00 002B D700 0057" | ||
11 | $"ED00 009D BB00 0539 DD00 1261 F700 A4E1" | ||
12 | $"FFFE 539F 8100 A52F 8102 AED7 8105 4BAB" | ||
13 | $"8103 BD12 810E 4A65 8105 2492 8102 F926" | ||
14 | $"810B 5FA9 8114 0B7E 8108 05AC 8100 0021" | ||
15 | $"8100 0027 8100 0021 8100 0021 8100 0021" | ||
16 | $"81FF FFE1 8100 0FE1 8122 0AE1 8108 2FA1" | ||
17 | $"8141 0DE1 8104 0B61 8100 9DA1 FFFF FFFF" | ||
18 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
19 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
20 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
21 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
22 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
23 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
24 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
25 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
26 | }; | ||
27 | |||
28 | data 'icl4' (-16455, "Item Icon") { | ||
29 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
30 | $"F333 333F 0000 0000 0000 0000 0003 3E0F" | ||
31 | $"F333 333F 0000 0000 0000 0000 00A4 3AEF" | ||
32 | $"F333 333F 0000 0000 0000 0000 0DCA 3EEF" | ||
33 | $"F333 333F 0000 0000 0000 0000 E1C5 FE0F" | ||
34 | $"F333 333F 0000 0000 000C CDCB 1DEA E00F" | ||
35 | $"F333 333F 0000 0000 0CCC 1CB1 C3FD 000F" | ||
36 | $"F333 333F 0000 0000 D02C CB1D A9E0 000F" | ||
37 | $"FFFF FFFF FFFF FFFC C2C3 BCD3 EDDF FFFF" | ||
38 | $"F000 000F 0000 00CC 2DAB 02BF 2DDD 666F" | ||
39 | $"F000 000F 0000 0C1D BBB1 BEAB BDCB D66F" | ||
40 | $"F000 000F 0000 CCD4 E2CB BAEE B42C CD6F" | ||
41 | $"F000 000F 0000 C2BA BD2E FF3B DCC2 DCDD" | ||
42 | $"F000 000F 0000 D3BD D2CC 2DCD 02D0 DCEB" | ||
43 | $"F000 000F 0000 0EAC CDB2 CCCC 20D2 CDDB" | ||
44 | $"F000 000F 0000 CBBB 3AAE E2D2 CC2C C2DC" | ||
45 | $"F000 000F 0000 BC2E DD4A EEAE EBBB BBCD" | ||
46 | $"F000 000F 000C DEDD 00CD DAEA AAEF 35DC" | ||
47 | $"F000 000F 000B D000 0000 CCD4 DEBE EADC" | ||
48 | $"F000 000F 0000 0000 0000 0000 00F0 0BCD" | ||
49 | $"F000 000F 0000 0000 0000 0000 00F0 0FEE" | ||
50 | $"F000 000F 0000 0000 0000 0000 00F0 000F" | ||
51 | $"F000 000F 0000 0000 0000 0000 00F0 000F" | ||
52 | $"F000 000F 0000 0000 0000 0000 00F0 000F" | ||
53 | $"F000 000F FFFF FFFF FFFF FFFF FFF0 000F" | ||
54 | $"F000 000F 1111 1111 1111 F999 99F0 000F" | ||
55 | $"F000 000F 1111 1111 1111 F898 99F0 000F" | ||
56 | $"F000 000F 1111 1111 1111 F999 98F0 000F" | ||
57 | $"F000 000F 1111 1111 1111 F989 99F0 000F" | ||
58 | $"F000 000F 1111 1111 1111 F899 89F0 000F" | ||
59 | $"F000 000F 1111 1111 1111 F989 98F0 000F" | ||
60 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
61 | }; | ||
62 | |||
63 | data 'icl8' (-16455, "Item Icon") { | ||
64 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
65 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
66 | $"FF23 2323 2323 23FF 0000 0000 0000 0000" | ||
67 | $"0000 0000 0000 0000 0000 00DB 22FC 00FF" | ||
68 | $"FF23 2323 2323 23FF 0000 0000 0000 0000" | ||
69 | $"0000 0000 0000 0000 0000 DB21 6BDB FCFF" | ||
70 | $"FF23 2323 2323 23FF 0000 0000 0000 0000" | ||
71 | $"0000 0000 0000 0000 0081 2BDA 6BB2 FCFF" | ||
72 | $"FF23 2323 2323 23FF 0000 0000 0000 0000" | ||
73 | $"0000 0000 0000 0000 FB03 5581 FDFB 00FF" | ||
74 | $"FF23 2323 2323 23FF 0000 0000 0000 0000" | ||
75 | $"0000 0007 2C32 325E 0358 88DE FC00 00FF" | ||
76 | $"FF23 2323 2323 23FF 0000 0000 0000 0000" | ||
77 | $"002B 0832 0832 5803 3988 ADFB 0000 00FF" | ||
78 | $"FF23 2323 2323 23FF 0000 0000 0000 0000" | ||
79 | $"3208 3208 5658 0934 88AD FC00 0000 00FF" | ||
80 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FF32" | ||
81 | $"0833 3964 5809 3388 AD32 FBFF FFFF FFFF" | ||
82 | $"FF00 0000 0000 00FF 0000 0000 0000 3208" | ||
83 | $"3339 8858 0934 82DF 3933 3281 D2D2 D2FF" | ||
84 | $"FF00 0000 0000 00FF 0000 0000 002C 0833" | ||
85 | $"6488 5E09 3388 B35E 6433 3233 81D2 D2FF" | ||
86 | $"FF00 0000 0000 00FF 0000 0000 F608 395D" | ||
87 | $"8858 0934 82E0 8888 5E39 332C 3281 D2FF" | ||
88 | $"FF00 0000 0000 00FF 0000 0000 F739 5E8E" | ||
89 | $"820F 5788 FFFD 645E 3357 0E32 3332 81F9" | ||
90 | $"FF00 0000 0000 00FF 0000 0000 3965 8833" | ||
91 | $"3933 3332 3357 320E 2C0E 322C 0E2D 815D" | ||
92 | $"FF00 0000 0000 00FF 0000 0000 F5FC 8808" | ||
93 | $"325D 5D34 320E 082C 0E2C 3233 3232 FA58" | ||
94 | $"FF00 0000 0000 00FF 0000 0000 2B58 3464" | ||
95 | $"88DE 8988 885E 5D33 3232 3332 335E F954" | ||
96 | $"FF00 0000 0000 00FF 0000 0000 5D33 5D82" | ||
97 | $"FA5D 8789 8EAC 89AC 885E 645E 5D64 5654" | ||
98 | $"FF00 0000 0000 00FF 0000 002C 8187 5756" | ||
99 | $"0000 F632 8189 B2DE 89B2 88AC 8888 F9F8" | ||
100 | $"FF00 0000 0000 00FF 0000 0081 562B 0000" | ||
101 | $"0000 0000 F6F7 325D 815E FB88 88FC 5656" | ||
102 | $"FF00 0000 0000 00FF 0000 0000 0000 0000" | ||
103 | $"0000 0000 0000 0000 0000 FF00 005D 57F8" | ||
104 | $"FF00 0000 0000 00FF 0000 0000 0000 0000" | ||
105 | $"0000 0000 0000 0000 0000 FF00 00FD AB88" | ||
106 | $"FF00 0000 0000 00FF 0000 0000 0000 0000" | ||
107 | $"0000 0000 0000 0000 0000 FF00 0000 00FF" | ||
108 | $"FF00 0000 0000 00FF 0000 0000 0000 0000" | ||
109 | $"0000 0000 0000 0000 0000 FF00 0000 00FF" | ||
110 | $"FF00 0000 0000 00FF 0000 0000 0000 0000" | ||
111 | $"0000 0000 0000 0000 0000 FF00 0000 00FF" | ||
112 | $"FF00 0000 0000 00FF FFFF FFFF FFFF FFFF" | ||
113 | $"FFFF FFFF FFFF FFFF FFFF FF00 0000 00FF" | ||
114 | $"FF00 0000 0000 00FF 0505 0505 0505 0505" | ||
115 | $"0505 0505 FFE6 E6E6 E6E6 FF00 0000 00FF" | ||
116 | $"FF00 0000 0000 00FF 0505 0505 0505 0505" | ||
117 | $"0505 0505 FFE5 E6E5 E6E6 FF00 0000 00FF" | ||
118 | $"FF00 0000 0000 00FF 0505 0505 0505 0505" | ||
119 | $"0505 0505 FFE6 E6E6 E6E5 FF00 0000 00FF" | ||
120 | $"FF00 0000 0000 00FF 0505 0505 0505 0505" | ||
121 | $"0505 0505 FFE6 E5E6 E6E6 FF00 0000 00FF" | ||
122 | $"FF00 0000 0000 00FF 0505 0505 0505 0505" | ||
123 | $"0505 0505 FFE6 E6E6 E5E6 FF00 0000 00FF" | ||
124 | $"FF00 0000 0000 00FF 0505 0505 0505 0505" | ||
125 | $"0505 0505 FFE5 E6E6 E6E6 FF00 0000 00FF" | ||
126 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
127 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
128 | }; | ||
129 | |||
130 | data 'icm#' (-16455, "Item Icon") { | ||
131 | $"F24B D007 B028 5557 81B1 124A 8236 1005" | ||
132 | $"8000 1ABD 8030 557D FFFF FFFF FFFF FFFF" | ||
133 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
134 | }; | ||
135 | |||
136 | data 'icm4' (-16455, "Item Icon") { | ||
137 | $"A33F CDCC DCCD CAAE A333 0000 0000 CDEE" | ||
138 | $"333A 0000 CCCB 2E0D EDCE CDCD DB2B DB6F" | ||
139 | $"D00D 00C2 BBEA BCD5 D00D 00BD 2D2D CC2D" | ||
140 | $"D00D 0CDC CCDB BADC D00D 0000 0000 0DCE" | ||
141 | $"D00D 0000 0000 0D0D D00D B1BB 1BF9 FD0D" | ||
142 | $"D00D 1111 1199 8D0D ECDB BB1B B1F9 FECE" | ||
143 | }; | ||
144 | |||
145 | data 'icm8' (-16455, "Item Icon") { | ||
146 | $"DDDA DADD F8F8 F8F8 F8F8 F8F8 F864 8EAC" | ||
147 | $"DB23 23DC 0000 0000 0000 0000 F85C 89FB" | ||
148 | $"DC23 23DB 0000 0000 F608 3234 5E82 2AFA" | ||
149 | $"FBF8 F8FB F8F8 5633 335D 3488 575D EFF1" | ||
150 | $"F900 00FA 0000 2C63 5E34 FD64 5D2C 33AA" | ||
151 | $"FA00 00F9 0000 395E 5D5D 5733 0832 33F9" | ||
152 | $"F900 00FA 00F6 F92C 2B32 5D88 8888 88F8" | ||
153 | $"FA00 00F9 0000 0000 0000 0000 00FA F781" | ||
154 | $"F900 00FA 0000 0000 0000 0000 00F9 00F9" | ||
155 | $"FA00 00F9 3559 5335 5959 E9E7 E7FA 00FA" | ||
156 | $"F900 00FA 0505 0505 0505 E8E6 E6F9 00F9" | ||
157 | $"FBF8 F8FB 592F 5959 2F59 E9E7 E7FB F8FB" | ||
158 | }; | ||
159 | |||
160 | data 'icns' (-16455, "Item Icon") { | ||
161 | $"6963 6E73 0000 9AB8 4943 4E23 0000 0108" | ||
162 | $"FFFF FFFF F700 001D BB00 002B D700 0057" | ||
163 | $"ED00 009D BB00 0539 DD00 1261 F700 A4E1" | ||
164 | $"FFFE 539F 8100 A52F 8102 AED7 8105 4BAB" | ||
165 | $"8103 BD12 810E 4A65 8105 2492 8102 F926" | ||
166 | $"810B 5FA9 8114 0B7E 8108 05AC 8100 0021" | ||
167 | $"8100 0027 8100 0021 8100 0021 8100 0021" | ||
168 | $"81FF FFE1 8100 0FE1 8122 0AE1 8108 2FA1" | ||
169 | $"8141 0DE1 8104 0B61 8100 9DA1 FFFF FFFF" | ||
170 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
171 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
172 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
173 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
174 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
175 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
176 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
177 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
178 | $"6963 6C34 0000 0208 FFFF FFFF FFFF FFFF" | ||
179 | $"FFFF FFFF FFFF FFFF F333 333F 0000 0000" | ||
180 | $"0000 0000 0003 3E0F F333 333F 0000 0000" | ||
181 | $"0000 0000 00A4 3AEF F333 333F 0000 0000" | ||
182 | $"0000 0000 0DCA 3EEF F333 333F 0000 0000" | ||
183 | $"0000 0000 E1C5 FE0F F333 333F 0000 0000" | ||
184 | $"000C CDCB 1DEA E00F F333 333F 0000 0000" | ||
185 | $"0CCC 1CB1 C3FD 000F F333 333F 0000 0000" | ||
186 | $"D02C CB1D A9E0 000F FFFF FFFF FFFF FFFC" | ||
187 | $"C2C3 BCD3 EDDF FFFF F000 000F 0000 00CC" | ||
188 | $"2DAB 02BF 2DDD 666F F000 000F 0000 0C1D" | ||
189 | $"BBB1 BEAB BDCB D66F F000 000F 0000 CCD4" | ||
190 | $"E2CB BAEE B42C CD6F F000 000F 0000 C2BA" | ||
191 | $"BD2E FF3B DCC2 DCDD F000 000F 0000 D3BD" | ||
192 | $"D2CC 2DCD 02D0 DCEB F000 000F 0000 0EAC" | ||
193 | $"CDB2 CCCC 20D2 CDDB F000 000F 0000 CBBB" | ||
194 | $"3AAE E2D2 CC2C C2DC F000 000F 0000 BC2E" | ||
195 | $"DD4A EEAE EBBB BBCD F000 000F 000C DEDD" | ||
196 | $"00CD DAEA AAEF 35DC F000 000F 000B D000" | ||
197 | $"0000 CCD4 DEBE EADC F000 000F 0000 0000" | ||
198 | $"0000 0000 00F0 0BCD F000 000F 0000 0000" | ||
199 | $"0000 0000 00F0 0FEE F000 000F 0000 0000" | ||
200 | $"0000 0000 00F0 000F F000 000F 0000 0000" | ||
201 | $"0000 0000 00F0 000F F000 000F 0000 0000" | ||
202 | $"0000 0000 00F0 000F F000 000F FFFF FFFF" | ||
203 | $"FFFF FFFF FFF0 000F F000 000F 1111 1111" | ||
204 | $"1111 F999 99F0 000F F000 000F 1111 1111" | ||
205 | $"1111 F898 99F0 000F F000 000F 1111 1111" | ||
206 | $"1111 F999 98F0 000F F000 000F 1111 1111" | ||
207 | $"1111 F989 99F0 000F F000 000F 1111 1111" | ||
208 | $"1111 F899 89F0 000F F000 000F 1111 1111" | ||
209 | $"1111 F989 98F0 000F FFFF FFFF FFFF FFFF" | ||
210 | $"FFFF FFFF FFFF FFFF 6963 6C38 0000 0408" | ||
211 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
212 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
213 | $"FF23 2323 2323 23FF 0000 0000 0000 0000" | ||
214 | $"0000 0000 0000 0000 0000 00DB 22FC 00FF" | ||
215 | $"FF23 2323 2323 23FF 0000 0000 0000 0000" | ||
216 | $"0000 0000 0000 0000 0000 DB21 6BDB FCFF" | ||
217 | $"FF23 2323 2323 23FF 0000 0000 0000 0000" | ||
218 | $"0000 0000 0000 0000 0081 2BDA 6BB2 FCFF" | ||
219 | $"FF23 2323 2323 23FF 0000 0000 0000 0000" | ||
220 | $"0000 0000 0000 0000 FB03 5581 FDFB 00FF" | ||
221 | $"FF23 2323 2323 23FF 0000 0000 0000 0000" | ||
222 | $"0000 0007 2C32 325E 0358 88DE FC00 00FF" | ||
223 | $"FF23 2323 2323 23FF 0000 0000 0000 0000" | ||
224 | $"002B 0832 0832 5803 3988 ADFB 0000 00FF" | ||
225 | $"FF23 2323 2323 23FF 0000 0000 0000 0000" | ||
226 | $"3208 3208 5658 0934 88AD FC00 0000 00FF" | ||
227 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FF32" | ||
228 | $"0833 3964 5809 3388 AD32 FBFF FFFF FFFF" | ||
229 | $"FF00 0000 0000 00FF 0000 0000 0000 3208" | ||
230 | $"3339 8858 0934 82DF 3933 3281 D2D2 D2FF" | ||
231 | $"FF00 0000 0000 00FF 0000 0000 002C 0833" | ||
232 | $"6488 5E09 3388 B35E 6433 3233 81D2 D2FF" | ||
233 | $"FF00 0000 0000 00FF 0000 0000 F608 395D" | ||
234 | $"8858 0934 82E0 8888 5E39 332C 3281 D2FF" | ||
235 | $"FF00 0000 0000 00FF 0000 0000 F739 5E8E" | ||
236 | $"820F 5788 FFFD 645E 3357 0E32 3332 81F9" | ||
237 | $"FF00 0000 0000 00FF 0000 0000 3965 8833" | ||
238 | $"3933 3332 3357 320E 2C0E 322C 0E2D 815D" | ||
239 | $"FF00 0000 0000 00FF 0000 0000 F5FC 8808" | ||
240 | $"325D 5D34 320E 082C 0E2C 3233 3232 FA58" | ||
241 | $"FF00 0000 0000 00FF 0000 0000 2B58 3464" | ||
242 | $"88DE 8988 885E 5D33 3232 3332 335E F954" | ||
243 | $"FF00 0000 0000 00FF 0000 0000 5D33 5D82" | ||
244 | $"FA5D 8789 8EAC 89AC 885E 645E 5D64 5654" | ||
245 | $"FF00 0000 0000 00FF 0000 002C 8187 5756" | ||
246 | $"0000 F632 8189 B2DE 89B2 88AC 8888 F9F8" | ||
247 | $"FF00 0000 0000 00FF 0000 0081 562B 0000" | ||
248 | $"0000 0000 F6F7 325D 815E FB88 88FC 5656" | ||
249 | $"FF00 0000 0000 00FF 0000 0000 0000 0000" | ||
250 | $"0000 0000 0000 0000 0000 FF00 005D 57F8" | ||
251 | $"FF00 0000 0000 00FF 0000 0000 0000 0000" | ||
252 | $"0000 0000 0000 0000 0000 FF00 00FD AB88" | ||
253 | $"FF00 0000 0000 00FF 0000 0000 0000 0000" | ||
254 | $"0000 0000 0000 0000 0000 FF00 0000 00FF" | ||
255 | $"FF00 0000 0000 00FF 0000 0000 0000 0000" | ||
256 | $"0000 0000 0000 0000 0000 FF00 0000 00FF" | ||
257 | $"FF00 0000 0000 00FF 0000 0000 0000 0000" | ||
258 | $"0000 0000 0000 0000 0000 FF00 0000 00FF" | ||
259 | $"FF00 0000 0000 00FF FFFF FFFF FFFF FFFF" | ||
260 | $"FFFF FFFF FFFF FFFF FFFF FF00 0000 00FF" | ||
261 | $"FF00 0000 0000 00FF 0505 0505 0505 0505" | ||
262 | $"0505 0505 FFE6 E6E6 E6E6 FF00 0000 00FF" | ||
263 | $"FF00 0000 0000 00FF 0505 0505 0505 0505" | ||
264 | $"0505 0505 FFE5 E6E5 E6E6 FF00 0000 00FF" | ||
265 | $"FF00 0000 0000 00FF 0505 0505 0505 0505" | ||
266 | $"0505 0505 FFE6 E6E6 E6E5 FF00 0000 00FF" | ||
267 | $"FF00 0000 0000 00FF 0505 0505 0505 0505" | ||
268 | $"0505 0505 FFE6 E5E6 E6E6 FF00 0000 00FF" | ||
269 | $"FF00 0000 0000 00FF 0505 0505 0505 0505" | ||
270 | $"0505 0505 FFE6 E6E6 E5E6 FF00 0000 00FF" | ||
271 | $"FF00 0000 0000 00FF 0505 0505 0505 0505" | ||
272 | $"0505 0505 FFE5 E6E6 E6E6 FF00 0000 00FF" | ||
273 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
274 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
275 | $"696C 3332 0000 0670 9E00 83FF 0000 90FF" | ||
276 | $"058E EA44 FF00 0083 FF00 008F FF06 8FEA" | ||
277 | $"AB8E 4400 0083 FF00 008E FF07 5ABE AB8E" | ||
278 | $"4544 0000 83FF 0000 8DFF 0864 FE91 6945" | ||
279 | $"44FF 0000 83FF 0000 88FF 0DE2 E1CB B8A1" | ||
280 | $"FEB1 6245 44FF FF00 0083 FF00 0086 FF0A" | ||
281 | $"E2E6 E9EF B89F FEC1 6245 4480 FF01 0000" | ||
282 | $"83FF 0000 85FF 0AD9 E4E9 EBB8 9FFE C362" | ||
283 | $"4544 81FF 8D00 0BD7 E3DE BA8F A2FE C662" | ||
284 | $"45D0 6183 0083 FF00 0083 FF0D DAE5 D4B3" | ||
285 | $"679A FEC8 6245 A5C9 D361 8200 83FF 0000" | ||
286 | $"82FF 0FDC E2D4 A469 9EF2 C962 4579 9BC2" | ||
287 | $"D2D0 6181 0083 FF00 0081 FF11 E8DD D2B3" | ||
288 | $"6AA0 F3C7 5C1B 5D89 9CB5 CDD5 D361 8000" | ||
289 | $"83FF 0000 81FF 14DF C29C 657A DEB3 6A0D" | ||
290 | $"2082 ADBD C3D1 D5D7 D069 8800 83FF 0000" | ||
291 | $"81FF 14AE 8170 B9C5 C1CE C7B2 AFDA E7EA" | ||
292 | $"E1D9 D8D9 D469 8600 83FF 0000 81FF 14EE" | ||
293 | $"5C75 EBD4 9FB3 C4DE E7EC EBE3 E4DD D6CE" | ||
294 | $"C672 9C00 83FF 0000 81FF 14C6 A2C7 886F" | ||
295 | $"4D61 6F7F 9094 C1DB CCC1 C0B7 AB82 A200" | ||
296 | $"83FF 0000 81FF 1499 BFAE 5C8A 856D 504E" | ||
297 | $"5A5B 556C 8F8B 8C95 888F A400 83FF 0000" | ||
298 | $"80FF 15CA 667C 8C9F FFFF DCB5 8251 4A43" | ||
299 | $"3F4B 535E 6860 8FA6 0083 FF00 0080 FF02" | ||
300 | $"669F C283 FF0C DCC3 A88D 847B 686D 5A5E" | ||
301 | $"8FAF 0083 FF00 008F FF06 00FF FF81 8FB5" | ||
302 | $"0083 FF00 008F FF06 00FF FF22 4444 0083" | ||
303 | $"FF00 008F FF00 0081 FF01 0000 83FF 0000" | ||
304 | $"8FFF 0000 81FF 0100 0083 FF00 008F FF00" | ||
305 | $"0081 FF01 0000 83FF 9100 81FF 0100 0083" | ||
306 | $"FF00 0089 FF84 0081 FF01 0000 83FF 0000" | ||
307 | $"89FF 8400 81FF 0100 0083 FF00 0089 FF84" | ||
308 | $"0081 FF01 0000 83FF 0000 89FF 8400 81FF" | ||
309 | $"0100 0083 FF00 0089 FF84 0081 FF01 0000" | ||
310 | $"83FF 0000 89FF 8400 81FF 9E00 A500 90FF" | ||
311 | $"0301 0044 FF86 008F FF04 0900 0001 4486" | ||
312 | $"008E FF05 67BC 0001 1944 8600 8DFF 0666" | ||
313 | $"E49D 7119 44FF 8600 88FF 0BC9 BEA7 9B82" | ||
314 | $"E489 4419 44FF FF86 0086 FF0A CFB6 B9BB" | ||
315 | $"9B79 E493 4419 4480 FF86 0085 FF0A B2AC" | ||
316 | $"B6B5 9B7D E497 4419 4481 FF8D 000B AFAF" | ||
317 | $"A06E 5180 E49A 4419 9B62 8300 83FF 0000" | ||
318 | $"83FF 0DB2 B397 682E 76E4 9D44 1963 96A1" | ||
319 | $"6282 0083 FF00 0082 FF0F BEB0 9953 307E" | ||
320 | $"CF9C 4619 3459 8BA6 9C62 8100 83FF 0000" | ||
321 | $"81FF 11E0 B191 672E 7ED0 9A44 0E2A 3C55" | ||
322 | $"7BA0 A8A2 6280 0083 FF00 0081 FF14 C576" | ||
323 | $"4B2D 51B5 864F 040E 3461 818A 9FA8 A7A1" | ||
324 | $"687C 0083 FF00 0081 FF14 722D 3A7D 8683" | ||
325 | $"9998 8C85 A0B3 B9AE A9AA AAA5 687E 0083" | ||
326 | $"FF00 0081 FF14 E844 38B3 A962 6F7D 9DB2" | ||
327 | $"BEBC B5B7 AFA5 9B95 7392 0083 FF00 0081" | ||
328 | $"FF14 C283 9A44 3D1E 2934 4455 5C8E AC9A" | ||
329 | $"8B89 7D75 829A 0083 FF00 0081 FF14 6E8B" | ||
330 | $"8044 746B 4522 222F 302E 425C 5558 6055" | ||
331 | $"8E9E 0083 FF00 0080 FF15 B466 5A81 9FFF" | ||
332 | $"FFD6 9F5B 231B 1310 202B 333C 378E A000" | ||
333 | $"83FF 0000 80FF 0266 9FC2 83FF 0CD6 B692" | ||
334 | $"6F66 5B47 4931 3B8E A600 83FF 0000 8FFF" | ||
335 | $"0600 FFFF 728E AB00 83FF 0000 8FFF 0600" | ||
336 | $"FFFF 2244 4400 83FF 0000 8FFF 0000 81FF" | ||
337 | $"0100 0083 FF00 008F FF00 0081 FF01 0000" | ||
338 | $"83FF 0000 8FFF 0000 81FF 0100 0083 FF91" | ||
339 | $"0081 FF01 0000 83FF 0000 89FF 0000 827B" | ||
340 | $"0000 81FF 0100 0083 FF00 0089 FF00 0082" | ||
341 | $"7B00 0081 FF01 0000 83FF 0000 89FF 0000" | ||
342 | $"827B 0000 81FF 0100 0083 FF00 0089 FF00" | ||
343 | $"0082 7B00 0081 FF01 0000 83FF 0000 89FF" | ||
344 | $"0000 827B 0000 81FF 0100 0083 FF00 0089" | ||
345 | $"FF00 0082 7B00 0081 FF9E 00A5 0090 FF03" | ||
346 | $"0F43 44FF 8600 8FFF 0417 4316 0F44 8600" | ||
347 | $"8EFF 0565 C416 0F1A 4486 008D FF06 5567" | ||
348 | $"A76C 1A44 FF86 0088 FF0B BCA9 9293 3E67" | ||
349 | $"4D23 1A44 FFFF 8600 86FF 0AC6 9A98 9893" | ||
350 | $"3167 4A23 1A44 80FF 8600 85FF 0A9C 8E99" | ||
351 | $"9593 3767 4F23 1A44 81FF 8D00 0B92 8F86" | ||
352 | $"5747 3967 5223 1A7A 6183 0083 FF00 0083" | ||
353 | $"FF0D 9591 7C51 2A32 6753 231A 4B78 8361" | ||
354 | $"80FF 0100 0083 FF00 0082 FF13 A98B 7D41" | ||
355 | $"2C37 6353 241A 2C44 6D8A 8061 FFFF 0000" | ||
356 | $"83FF 0000 81FF 14DA 9278 5427 3761 5122" | ||
357 | $"1124 323F 6084 8D86 61FF 0000 83FF 0000" | ||
358 | $"81FF 14B7 5B3C 2730 5956 2A0A 0C2C 4F65" | ||
359 | $"6C85 8D89 8869 8800 83FF 0000 81FF 1461" | ||
360 | $"202F 6A76 7683 8378 748C 9A9D 918E 8E8C" | ||
361 | $"8869 5500 83FF 0000 81FF 14E7 2230 9694" | ||
362 | $"5354 5F80 95A2 9E9A 9D94 8881 7A73 4400" | ||
363 | $"83FF 0000 81FF 14C6 4651 3538 191F 2A36" | ||
364 | $"444A 7591 8173 7268 6081 FF00 83FF 0000" | ||
365 | $"81FF 0859 6A49 2277 683C 1A1D 8028 0838" | ||
366 | $"4D47 484F 478E FF00 83FF 0000 80FF 15A8" | ||
367 | $"654A 7F9F FFFF D39A 551C 140E 0B1B 262B" | ||
368 | $"3330 8E9A 0083 FF00 0080 FF02 659F C283" | ||
369 | $"FF0C D3B2 8E69 5F56 4243 2B35 8E9F 0083" | ||
370 | $"FF00 008F FF06 00FF FF6B 8EA7 0083 FF00" | ||
371 | $"008F FF06 00FF FF22 4444 0083 FF00 008F" | ||
372 | $"FF00 0081 FF01 0000 83FF 0000 8FFF 0000" | ||
373 | $"81FF 0100 0083 FF00 008F FF00 0081 FF01" | ||
374 | $"0000 83FF 9100 81FF 0100 0083 FF91 0081" | ||
375 | $"FF01 0000 83FF 9100 81FF 0100 0083 FF91" | ||
376 | $"0081 FF01 0000 83FF 9100 81FF 0100 0083" | ||
377 | $"FF91 0081 FF01 0000 83FF 9100 81FF 9E00" | ||
378 | $"6C38 6D6B 0000 0408 FFFF FFFF FFFF FFFF" | ||
379 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
380 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
381 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
382 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
383 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
384 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
385 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
386 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
387 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
388 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
389 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
390 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
391 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
392 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
393 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
394 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
395 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
396 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
397 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
398 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
399 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
400 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
401 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
402 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
403 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
404 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
405 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
406 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
407 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
408 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
409 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
410 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
411 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
412 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
413 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
414 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
415 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
416 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
417 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
418 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
419 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
420 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
421 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
422 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
423 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
424 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
425 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
426 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
427 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
428 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
429 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
430 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
431 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
432 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
433 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
434 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
435 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
436 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
437 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
438 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
439 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
440 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
441 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
442 | $"FFFF FFFF FFFF FFFF 6963 6823 0000 0248" | ||
443 | $"FFFF FFFF FFFF FFFF FFFF FFFF F770 0000" | ||
444 | $"0001 EEB0 0000 0001 F5D0 0000 0001 EF70" | ||
445 | $"0000 0001 DBB0 0000 0001 F570 0000 0001" | ||
446 | $"FED0 0000 0001 D5B0 0000 0001 EF70 0000" | ||
447 | $"0001 FAD0 0000 0001 FFFF FFFF FFFF FFFF" | ||
448 | $"FFFF FFFF C010 0000 01FF C010 0000 01FF" | ||
449 | $"C010 0000 01EF C010 0000 01FF C010 0000" | ||
450 | $"01FB C010 0000 01DF C010 0000 01FF C010" | ||
451 | $"0000 01FF C010 0000 01FF C010 0000 0181" | ||
452 | $"C010 0000 0181 C010 0000 0181 C010 0000" | ||
453 | $"0181 C010 0000 0181 C010 0000 0181 C010" | ||
454 | $"0000 0181 C010 0000 0181 C010 0000 0181" | ||
455 | $"C010 0000 0181 C010 0000 0181 C010 0000" | ||
456 | $"0181 C010 0000 0181 C01F FFFF FF81 C01F" | ||
457 | $"FFFF FF81 C010 0003 FF81 C011 1113 D581" | ||
458 | $"C010 4443 6F81 C012 000B BB81 C010 8883" | ||
459 | $"DD81 C014 2203 6B81 C011 004B BD81 C010" | ||
460 | $"1103 F781 C014 0423 5B81 FFFF FFFF FFFF" | ||
461 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
462 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
463 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
464 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
465 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
466 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
467 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
468 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
469 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
470 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
471 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
472 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
473 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
474 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
475 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
476 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
477 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
478 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
479 | $"6963 6834 0000 0488 FFFF FFFF FFFF FFFF" | ||
480 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
481 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
482 | $"FFFF FFFF FFFF FFFF FF33 3333 333F 0000" | ||
483 | $"0000 0000 0000 0000 0000 0000 0000 000F" | ||
484 | $"FF33 3333 333F 0000 0000 0000 0000 0000" | ||
485 | $"0000 0000 0000 000F FF33 3333 333F 0000" | ||
486 | $"0000 0000 0000 0000 0000 0000 0000 000F" | ||
487 | $"FF33 3333 333F 0000 0000 0000 0000 0000" | ||
488 | $"0000 0000 0000 000F FF33 3333 333F 0000" | ||
489 | $"0000 0000 0000 0000 0000 0000 0000 000F" | ||
490 | $"FF33 3333 333F 0000 0000 0000 0000 0000" | ||
491 | $"0000 0000 0000 000F FF33 3333 333F 0000" | ||
492 | $"0000 0000 0000 0000 0000 0000 0000 000F" | ||
493 | $"FF33 3333 333F 0000 0000 0000 0000 0000" | ||
494 | $"0000 0000 0000 000F FF33 3333 333F 0000" | ||
495 | $"0000 0000 0000 0000 0000 0000 0000 000F" | ||
496 | $"FF33 3333 333F 0000 0000 0000 0000 0000" | ||
497 | $"0000 0000 0000 000F FFFF FFFF FFFF FFFF" | ||
498 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
499 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
500 | $"FFFF FFFF FFFF FFFF FF00 0000 000F 0000" | ||
501 | $"0000 0000 0000 0000 0000 000F F666 666F" | ||
502 | $"FF00 0000 000F 0000 0000 0000 0000 0000" | ||
503 | $"0000 000F F666 666F FF00 0000 000F 0000" | ||
504 | $"0000 0000 0000 0000 0000 000F F666 666F" | ||
505 | $"FF00 0000 000F 0000 0000 0000 0000 0000" | ||
506 | $"0000 000F F666 666F FF00 0000 000F 0000" | ||
507 | $"0000 0000 0000 0000 0000 000F F666 666F" | ||
508 | $"FF00 0000 000F 0000 0000 0000 0000 0000" | ||
509 | $"0000 000F F666 666F FF00 0000 000F 0000" | ||
510 | $"0000 0000 0000 0000 0000 000F F666 666F" | ||
511 | $"FF00 0000 000F 0000 0000 0000 0000 0000" | ||
512 | $"0000 000F FFFF FFFF FF00 0000 000F 0000" | ||
513 | $"0000 0000 0000 0000 0000 000F FFFF FFFF" | ||
514 | $"FF00 0000 000F 0000 0000 0000 0000 0000" | ||
515 | $"0000 000F F000 000F FF00 0000 000F 0000" | ||
516 | $"0000 0000 0000 0000 0000 000F F000 000F" | ||
517 | $"FF00 0000 000F 0000 0000 0000 0000 0000" | ||
518 | $"0000 000F F000 000F FF00 0000 000F 0000" | ||
519 | $"0000 0000 0000 0000 0000 000F F000 000F" | ||
520 | $"FF00 0000 000F 0000 0000 0000 0000 0000" | ||
521 | $"0000 000F F000 000F FF00 0000 000F 0000" | ||
522 | $"0000 0000 0000 0000 0000 000F F000 000F" | ||
523 | $"FF00 0000 000F 0000 0000 0000 0000 0000" | ||
524 | $"0000 000F F000 000F FF00 0000 000F 0000" | ||
525 | $"0000 0000 0000 0000 0000 000F F000 000F" | ||
526 | $"FF00 0000 000F 0000 0000 0000 0000 0000" | ||
527 | $"0000 000F F000 000F FF00 0000 000F 0000" | ||
528 | $"0000 0000 0000 0000 0000 000F F000 000F" | ||
529 | $"FF00 0000 000F 0000 0000 0000 0000 0000" | ||
530 | $"0000 000F F000 000F FF00 0000 000F 0000" | ||
531 | $"0000 0000 0000 0000 0000 000F F000 000F" | ||
532 | $"FF00 0000 000F 0000 0000 0000 0000 0000" | ||
533 | $"0000 000F F000 000F FF00 0000 000F FFFF" | ||
534 | $"FFFF FFFF FFFF FFFF FFFF FFFF F000 000F" | ||
535 | $"FF00 0000 000F FFFF FFFF FFFF FFFF FFFF" | ||
536 | $"FFFF FFFF F000 000F FF00 0000 000F 1111" | ||
537 | $"1111 1111 1111 11FF 9999 999F F000 000F" | ||
538 | $"FF00 0000 000F 1111 1111 1111 1111 11FF" | ||
539 | $"9989 898F F000 000F FF00 0000 000F 1111" | ||
540 | $"1111 1111 1111 11FF 8998 999F F000 000F" | ||
541 | $"FF00 0000 000F 1111 1111 1111 1111 11FF" | ||
542 | $"9899 989F F000 000F FF00 0000 000F 1111" | ||
543 | $"1111 1111 1111 11FF 9989 998F F000 000F" | ||
544 | $"FF00 0000 000F 1111 1111 1111 1111 11FF" | ||
545 | $"8999 899F F000 000F FF00 0000 000F 1111" | ||
546 | $"1111 1111 1111 11FF 9899 989F F000 000F" | ||
547 | $"FF00 0000 000F 1111 1111 1111 1111 11FF" | ||
548 | $"9999 899F F000 000F FF00 0000 000F 1111" | ||
549 | $"1111 1111 1111 11FF 8989 989F F000 000F" | ||
550 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
551 | $"FFFF FFFF FFFF FFFF 6963 6838 0000 0908" | ||
552 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
553 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
554 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
555 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
556 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
557 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
558 | $"FFFF 2323 2323 2323 2323 23FF 0000 0000" | ||
559 | $"0000 0000 0000 0000 0000 0000 0000 0000" | ||
560 | $"0000 0000 0000 0000 0000 0000 0000 00FF" | ||
561 | $"FFFF 2323 2323 2323 2323 23FF 0000 0000" | ||
562 | $"0000 0000 0000 0000 0000 0000 0000 0000" | ||
563 | $"0000 0000 0000 0000 0000 0000 0000 00FF" | ||
564 | $"FFFF 2323 2323 2323 2323 23FF 0000 0000" | ||
565 | $"0000 0000 0000 0000 0000 0000 0000 0000" | ||
566 | $"0000 0000 0000 0000 0000 0000 0000 00FF" | ||
567 | $"FFFF 2323 2323 2323 2323 23FF 0000 0000" | ||
568 | $"0000 0000 0000 0000 0000 0000 0000 0000" | ||
569 | $"0000 0000 0000 0000 0000 0000 0000 00FF" | ||
570 | $"FFFF 2323 2323 2323 2323 23FF 0000 0000" | ||
571 | $"0000 0000 0000 0000 0000 0000 0000 0000" | ||
572 | $"0000 0000 0000 0000 0000 0000 0000 00FF" | ||
573 | $"FFFF 2323 2323 2323 2323 23FF 0000 0000" | ||
574 | $"0000 0000 0000 0000 0000 0000 0000 0000" | ||
575 | $"0000 0000 0000 0000 0000 0000 0000 00FF" | ||
576 | $"FFFF 2323 2323 2323 2323 23FF 0000 0000" | ||
577 | $"0000 0000 0000 0000 0000 0000 0000 0000" | ||
578 | $"0000 0000 0000 0000 0000 0000 0000 00FF" | ||
579 | $"FFFF 2323 2323 2323 2323 23FF 0000 0000" | ||
580 | $"0000 0000 0000 0000 0000 0000 0000 0000" | ||
581 | $"0000 0000 0000 0000 0000 0000 0000 00FF" | ||
582 | $"FFFF 2323 2323 2323 2323 23FF 0000 0000" | ||
583 | $"0000 0000 0000 0000 0000 0000 0000 0000" | ||
584 | $"0000 0000 0000 0000 0000 0000 0000 00FF" | ||
585 | $"FFFF 2323 2323 2323 2323 23FF 0000 0000" | ||
586 | $"0000 0000 0000 0000 0000 0000 0000 0000" | ||
587 | $"0000 0000 0000 0000 0000 0000 0000 00FF" | ||
588 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
589 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
590 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
591 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
592 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
593 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
594 | $"FFFF 0000 0000 0000 0000 00FF 0000 0000" | ||
595 | $"0000 0000 0000 0000 0000 0000 0000 0000" | ||
596 | $"0000 0000 0000 00FF FFD2 D2D2 D2D2 D2FF" | ||
597 | $"FFFF 0000 0000 0000 0000 00FF 0000 0000" | ||
598 | $"0000 0000 0000 0000 0000 0000 0000 0000" | ||
599 | $"0000 0000 0000 00FF FFD2 D2D2 D2D2 D2FF" | ||
600 | $"FFFF 0000 0000 0000 0000 00FF 0000 0000" | ||
601 | $"0000 0000 0000 0000 0000 0000 0000 0000" | ||
602 | $"0000 0000 0000 00FF FFD2 D2D2 D2D2 D2FF" | ||
603 | $"FFFF 0000 0000 0000 0000 00FF 0000 0000" | ||
604 | $"0000 0000 0000 0000 0000 0000 0000 0000" | ||
605 | $"0000 0000 0000 00FF FFD2 D2D2 D2D2 D2FF" | ||
606 | $"FFFF 0000 0000 0000 0000 00FF 0000 0000" | ||
607 | $"0000 0000 0000 0000 0000 0000 0000 0000" | ||
608 | $"0000 0000 0000 00FF FFD2 D2D2 D2D2 D2FF" | ||
609 | $"FFFF 0000 0000 0000 0000 00FF 0000 0000" | ||
610 | $"0000 0000 0000 0000 0000 0000 0000 0000" | ||
611 | $"0000 0000 0000 00FF FFD2 D2D2 D2D2 D2FF" | ||
612 | $"FFFF 0000 0000 0000 0000 00FF 0000 0000" | ||
613 | $"0000 0000 0000 0000 0000 0000 0000 0000" | ||
614 | $"0000 0000 0000 00FF FFD2 D2D2 D2D2 D2FF" | ||
615 | $"FFFF 0000 0000 0000 0000 00FF 0000 0000" | ||
616 | $"0000 0000 0000 0000 0000 0000 0000 0000" | ||
617 | $"0000 0000 0000 00FF FFFF FFFF FFFF FFFF" | ||
618 | $"FFFF 0000 0000 0000 0000 00FF 0000 0000" | ||
619 | $"0000 0000 0000 0000 0000 0000 0000 0000" | ||
620 | $"0000 0000 0000 00FF FFFF FFFF FFFF FFFF" | ||
621 | $"FFFF 0000 0000 0000 0000 00FF 0000 0000" | ||
622 | $"0000 0000 0000 0000 0000 0000 0000 0000" | ||
623 | $"0000 0000 0000 00FF FF00 0000 0000 00FF" | ||
624 | $"FFFF 0000 0000 0000 0000 00FF 0000 0000" | ||
625 | $"0000 0000 0000 0000 0000 0000 0000 0000" | ||
626 | $"0000 0000 0000 00FF FF00 0000 0000 00FF" | ||
627 | $"FFFF 0000 0000 0000 0000 00FF 0000 0000" | ||
628 | $"0000 0000 0000 0000 0000 0000 0000 0000" | ||
629 | $"0000 0000 0000 00FF FF00 0000 0000 00FF" | ||
630 | $"FFFF 0000 0000 0000 0000 00FF 0000 0000" | ||
631 | $"0000 0000 0000 0000 0000 0000 0000 0000" | ||
632 | $"0000 0000 0000 00FF FF00 0000 0000 00FF" | ||
633 | $"FFFF 0000 0000 0000 0000 00FF 0000 0000" | ||
634 | $"0000 0000 0000 0000 0000 0000 0000 0000" | ||
635 | $"0000 0000 0000 00FF FF00 0000 0000 00FF" | ||
636 | $"FFFF 0000 0000 0000 0000 00FF 0000 0000" | ||
637 | $"0000 0000 0000 0000 0000 0000 0000 0000" | ||
638 | $"0000 0000 0000 00FF FF00 0000 0000 00FF" | ||
639 | $"FFFF 0000 0000 0000 0000 00FF 0000 0000" | ||
640 | $"0000 0000 0000 0000 0000 0000 0000 0000" | ||
641 | $"0000 0000 0000 00FF FF00 0000 0000 00FF" | ||
642 | $"FFFF 0000 0000 0000 0000 00FF 0000 0000" | ||
643 | $"0000 0000 0000 0000 0000 0000 0000 0000" | ||
644 | $"0000 0000 0000 00FF FF00 0000 0000 00FF" | ||
645 | $"FFFF 0000 0000 0000 0000 00FF 0000 0000" | ||
646 | $"0000 0000 0000 0000 0000 0000 0000 0000" | ||
647 | $"0000 0000 0000 00FF FF00 0000 0000 00FF" | ||
648 | $"FFFF 0000 0000 0000 0000 00FF 0000 0000" | ||
649 | $"0000 0000 0000 0000 0000 0000 0000 0000" | ||
650 | $"0000 0000 0000 00FF FF00 0000 0000 00FF" | ||
651 | $"FFFF 0000 0000 0000 0000 00FF 0000 0000" | ||
652 | $"0000 0000 0000 0000 0000 0000 0000 0000" | ||
653 | $"0000 0000 0000 00FF FF00 0000 0000 00FF" | ||
654 | $"FFFF 0000 0000 0000 0000 00FF 0000 0000" | ||
655 | $"0000 0000 0000 0000 0000 0000 0000 0000" | ||
656 | $"0000 0000 0000 00FF FF00 0000 0000 00FF" | ||
657 | $"FFFF 0000 0000 0000 0000 00FF 0000 0000" | ||
658 | $"0000 0000 0000 0000 0000 0000 0000 0000" | ||
659 | $"0000 0000 0000 00FF FF00 0000 0000 00FF" | ||
660 | $"FFFF 0000 0000 0000 0000 00FF FFFF FFFF" | ||
661 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
662 | $"FFFF FFFF FFFF FFFF FF00 0000 0000 00FF" | ||
663 | $"FFFF 0000 0000 0000 0000 00FF FFFF FFFF" | ||
664 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
665 | $"FFFF FFFF FFFF FFFF FF00 0000 0000 00FF" | ||
666 | $"FFFF 0000 0000 0000 0000 00FF 0505 0505" | ||
667 | $"0505 0505 0505 0505 0505 0505 0505 FFFF" | ||
668 | $"E6E6 E6E6 E6E6 E6FF FF00 0000 0000 00FF" | ||
669 | $"FFFF 0000 0000 0000 0000 00FF 0505 0505" | ||
670 | $"0505 0505 0505 0505 0505 0505 0505 FFFF" | ||
671 | $"E6E6 E5E6 E5E6 E5FF FF00 0000 0000 00FF" | ||
672 | $"FFFF 0000 0000 0000 0000 00FF 0505 0505" | ||
673 | $"0505 0505 0505 0505 0505 0505 0505 FFFF" | ||
674 | $"E5E6 E6E6 E6E6 E6FF FF00 0000 0000 00FF" | ||
675 | $"FFFF 0000 0000 0000 0000 00FF 0505 0505" | ||
676 | $"0505 0505 0505 0505 0505 0505 0505 FFFF" | ||
677 | $"E6E6 E6E5 E6E5 E6FF FF00 0000 0000 00FF" | ||
678 | $"FFFF 0000 0000 0000 0000 00FF 0505 0505" | ||
679 | $"0505 0505 0505 0505 0505 0505 0505 FFFF" | ||
680 | $"E6E5 E6E6 E6E6 E5FF FF00 0000 0000 00FF" | ||
681 | $"FFFF 0000 0000 0000 0000 00FF 0505 0505" | ||
682 | $"0505 0505 0505 0505 0505 0505 0505 FFFF" | ||
683 | $"E6E6 E6E6 E5E6 E6FF FF00 0000 0000 00FF" | ||
684 | $"FFFF 0000 0000 0000 0000 00FF 0505 0505" | ||
685 | $"0505 0505 0505 0505 0505 0505 0505 FFFF" | ||
686 | $"E5E6 E6E6 E6E5 E6FF FF00 0000 0000 00FF" | ||
687 | $"FFFF 0000 0000 0000 0000 00FF 0505 0505" | ||
688 | $"0505 0505 0505 0505 0505 0505 0505 FFFF" | ||
689 | $"E6E6 E6E5 E6E6 E6FF FF00 0000 0000 00FF" | ||
690 | $"FFFF 0000 0000 0000 0000 00FF 0505 0505" | ||
691 | $"0505 0505 0505 0505 0505 0505 0505 FFFF" | ||
692 | $"E6E5 E6E6 E5E6 E6FF FF00 0000 0000 00FF" | ||
693 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
694 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
695 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
696 | $"6968 3332 0000 052A DF00 86FF 0000 A0FF" | ||
697 | $"8000 86FF 0000 A0FF 8000 86FF 0000 A0FF" | ||
698 | $"8000 86FF 0000 A0FF 8000 86FF 0000 A0FF" | ||
699 | $"8000 86FF 0000 A0FF 8000 86FF 0000 A0FF" | ||
700 | $"8000 86FF 0000 A0FF 8000 86FF 0000 A0FF" | ||
701 | $"8000 86FF 0000 A0FF E000 86FF 0000 98FF" | ||
702 | $"8800 86FF 0000 98FF 8800 86FF 0000 98FF" | ||
703 | $"8800 86FF 0000 98FF 8800 86FF 0000 98FF" | ||
704 | $"8800 86FF 0000 98FF 8800 86FF 0000 98FF" | ||
705 | $"8800 86FF 0000 98FF 8800 86FF 0000 98FF" | ||
706 | $"8800 86FF 0000 98FF 0100 0083 FF80 0086" | ||
707 | $"FF00 0098 FF01 0000 83FF 8000 86FF 0000" | ||
708 | $"98FF 0100 0083 FF80 0086 FF00 0098 FF01" | ||
709 | $"0000 83FF 8000 86FF 0000 98FF 0100 0083" | ||
710 | $"FF80 0086 FF00 0098 FF01 0000 83FF 8000" | ||
711 | $"86FF 0000 98FF 0100 0083 FF80 0086 FF00" | ||
712 | $"0098 FF01 0000 83FF 8000 86FF 0000 98FF" | ||
713 | $"0100 0083 FF80 0086 FF00 0098 FF01 0000" | ||
714 | $"83FF 8000 86FF 0000 98FF 0100 0083 FF80" | ||
715 | $"0086 FF00 0098 FF01 0000 83FF 8000 86FF" | ||
716 | $"0000 98FF 0100 0083 FF80 0086 FF9B 0083" | ||
717 | $"FF80 0086 FF9B 0083 FF80 0086 FF00 008F" | ||
718 | $"FF88 0083 FF80 0086 FF00 008F FF88 0083" | ||
719 | $"FF80 0086 FF00 008F FF88 0083 FF80 0086" | ||
720 | $"FF00 008F FF88 0083 FF80 0086 FF00 008F" | ||
721 | $"FF88 0083 FF80 0086 FF00 008F FF88 0083" | ||
722 | $"FF80 0086 FF00 008F FF88 0083 FF80 0086" | ||
723 | $"FF00 008F FF88 0083 FF80 0086 FF00 008F" | ||
724 | $"FF88 0083 FFAE 00E9 00A0 FF8A 00A0 FF8A" | ||
725 | $"00A0 FF8A 00A0 FF8A 00A0 FF8A 00A0 FF8A" | ||
726 | $"00A0 FF8A 00A0 FF8A 00A0 FF8A 00A0 FFE0" | ||
727 | $"0086 FF00 0098 FF88 0086 FF00 0098 FF88" | ||
728 | $"0086 FF00 0098 FF88 0086 FF00 0098 FF88" | ||
729 | $"0086 FF00 0098 FF88 0086 FF00 0098 FF88" | ||
730 | $"0086 FF00 0098 FF88 0086 FF00 0098 FF88" | ||
731 | $"0086 FF00 0098 FF88 0086 FF00 0098 FF01" | ||
732 | $"0000 83FF 8000 86FF 0000 98FF 0100 0083" | ||
733 | $"FF80 0086 FF00 0098 FF01 0000 83FF 8000" | ||
734 | $"86FF 0000 98FF 0100 0083 FF80 0086 FF00" | ||
735 | $"0098 FF01 0000 83FF 8000 86FF 0000 98FF" | ||
736 | $"0100 0083 FF80 0086 FF00 0098 FF01 0000" | ||
737 | $"83FF 8000 86FF 0000 98FF 0100 0083 FF80" | ||
738 | $"0086 FF00 0098 FF01 0000 83FF 8000 86FF" | ||
739 | $"0000 98FF 0100 0083 FF80 0086 FF00 0098" | ||
740 | $"FF01 0000 83FF 8000 86FF 0000 98FF 0100" | ||
741 | $"0083 FF80 0086 FF00 0098 FF01 0000 83FF" | ||
742 | $"8000 86FF 9B00 83FF 8000 86FF 9B00 83FF" | ||
743 | $"8000 86FF 0000 8FFF 0100 0084 7B01 0000" | ||
744 | $"83FF 8000 86FF 0000 8FFF 0100 0084 7B01" | ||
745 | $"0000 83FF 8000 86FF 0000 8FFF 0100 0084" | ||
746 | $"7B01 0000 83FF 8000 86FF 0000 8FFF 0100" | ||
747 | $"0084 7B01 0000 83FF 8000 86FF 0000 8FFF" | ||
748 | $"0100 0084 7B01 0000 83FF 8000 86FF 0000" | ||
749 | $"8FFF 0100 0084 7B01 0000 83FF 8000 86FF" | ||
750 | $"0000 8FFF 0100 0084 7B01 0000 83FF 8000" | ||
751 | $"86FF 0000 8FFF 0100 0084 7B01 0000 83FF" | ||
752 | $"8000 86FF 0000 8FFF 0100 0084 7B01 0000" | ||
753 | $"83FF AE00 E900 A0FF 8A00 A0FF 8A00 A0FF" | ||
754 | $"8A00 A0FF 8A00 A0FF 8A00 A0FF 8A00 A0FF" | ||
755 | $"8A00 A0FF 8A00 A0FF 8A00 A0FF E000 86FF" | ||
756 | $"0000 98FF 0100 0083 FF80 0086 FF00 0098" | ||
757 | $"FF01 0000 83FF 8000 86FF 0000 98FF 0100" | ||
758 | $"0083 FF80 0086 FF00 0098 FF01 0000 83FF" | ||
759 | $"8000 86FF 0000 98FF 0100 0083 FF80 0086" | ||
760 | $"FF00 0098 FF01 0000 83FF 8000 86FF 0000" | ||
761 | $"98FF 0100 0083 FF80 0086 FF00 0098 FF88" | ||
762 | $"0086 FF00 0098 FF88 0086 FF00 0098 FF01" | ||
763 | $"0000 83FF 8000 86FF 0000 98FF 0100 0083" | ||
764 | $"FF80 0086 FF00 0098 FF01 0000 83FF 8000" | ||
765 | $"86FF 0000 98FF 0100 0083 FF80 0086 FF00" | ||
766 | $"0098 FF01 0000 83FF 8000 86FF 0000 98FF" | ||
767 | $"0100 0083 FF80 0086 FF00 0098 FF01 0000" | ||
768 | $"83FF 8000 86FF 0000 98FF 0100 0083 FF80" | ||
769 | $"0086 FF00 0098 FF01 0000 83FF 8000 86FF" | ||
770 | $"0000 98FF 0100 0083 FF80 0086 FF00 0098" | ||
771 | $"FF01 0000 83FF 8000 86FF 0000 98FF 0100" | ||
772 | $"0083 FF80 0086 FF00 0098 FF01 0000 83FF" | ||
773 | $"8000 86FF 9B00 83FF 8000 86FF 9B00 83FF" | ||
774 | $"8000 86FF 9B00 83FF 8000 86FF 9B00 83FF" | ||
775 | $"8000 86FF 9B00 83FF 8000 86FF 9B00 83FF" | ||
776 | $"8000 86FF 9B00 83FF 8000 86FF 9B00 83FF" | ||
777 | $"8000 86FF 9B00 83FF 8000 86FF 9B00 83FF" | ||
778 | $"8000 86FF 9B00 83FF AE00 6838 6D6B 0000" | ||
779 | $"0908 FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
780 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
781 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
782 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
783 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
784 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
785 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
786 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
787 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
788 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
789 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
790 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
791 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
792 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
793 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
794 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
795 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
796 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
797 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
798 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
799 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
800 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
801 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
802 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
803 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
804 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
805 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
806 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
807 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
808 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
809 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
810 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
811 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
812 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
813 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
814 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
815 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
816 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
817 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
818 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
819 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
820 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
821 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
822 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
823 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
824 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
825 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
826 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
827 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
828 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
829 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
830 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
831 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
832 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
833 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
834 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
835 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
836 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
837 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
838 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
839 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
840 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
841 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
842 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
843 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
844 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
845 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
846 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
847 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
848 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
849 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
850 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
851 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
852 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
853 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
854 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
855 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
856 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
857 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
858 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
859 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
860 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
861 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
862 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
863 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
864 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
865 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
866 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
867 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
868 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
869 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
870 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
871 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
872 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
873 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
874 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
875 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
876 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
877 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
878 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
879 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
880 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
881 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
882 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
883 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
884 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
885 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
886 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
887 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
888 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
889 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
890 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
891 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
892 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
893 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
894 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
895 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
896 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
897 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
898 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
899 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
900 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
901 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
902 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
903 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
904 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
905 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
906 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
907 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
908 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
909 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
910 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
911 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
912 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
913 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
914 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
915 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
916 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
917 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
918 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
919 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
920 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
921 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
922 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
923 | $"FFFF 6963 7323 0000 0048 F557 D001 700E" | ||
924 | $"E024 9A9B 0175 9299 0162 923E 0001 9004" | ||
925 | $"0000 9BBC 102C 8434 5AFD FFFF FFFF FFFF" | ||
926 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
927 | $"FFFF FFFF FFFF FFFF FFFF 6963 7334 0000" | ||
928 | $"0088 AA3F DDDD DDDD DDAE A333 0000 0000" | ||
929 | $"0C3E 333A 0000 000C DBEC A333 0000 0CBC" | ||
930 | $"2A00 EDDF DDDB D2CB ECFF D00D 00CD BBBA" | ||
931 | $"B2D6 D00D 00B2 DDBB DCCB D00D 00D4 D2D2" | ||
932 | $"CC2D D00D 00BD CCE5 3EEC D00D 0C00 0000" | ||
933 | $"CBCB D00D 0000 0000 0D0D D00D 0000 0000" | ||
934 | $"0D00 D00D ABAB ABAF 9F00 D00D 1111 11B8" | ||
935 | $"9900 D00D 1111 1189 9F00 EDDA 8291 ABAF" | ||
936 | $"9FDD 6963 7338 0000 0108 DEDC DBB3 F9FA" | ||
937 | $"F9FA F9FA F9FA F9FA 8FFB DC23 23DB 0000" | ||
938 | $"0000 0000 0000 0032 6A88 DB23 23DC 0000" | ||
939 | $"0000 0000 F52B 3357 882B DC23 23DB 0000" | ||
940 | $"0000 F608 3234 33AD F600 FCFA F9AC F9FA" | ||
941 | $"F95D 0E5D 3457 8833 F1F2 FA00 00F9 0000" | ||
942 | $"0733 825E 33AD 6432 33EF F900 00FA 0000" | ||
943 | $"5D5E 5D33 825D 3332 2C57 FA00 00F9 0000" | ||
944 | $"5739 5D64 5D33 3232 335C F900 00FA 00F5" | ||
945 | $"5D57 F732 828E 8988 88F9 FA00 00F9 00F6" | ||
946 | $"F600 0000 F5F6 4F5D F85D F900 00FA 0000" | ||
947 | $"0000 0000 0000 00FA 0056 FA00 00FA 0000" | ||
948 | $"0000 0000 0000 00F9 0000 F900 00F9 8359" | ||
949 | $"8359 8359 ADD1 E8EA 0000 FA00 00FA 0505" | ||
950 | $"0505 0505 5FE5 E6E8 0000 F900 00F9 0505" | ||
951 | $"0505 0505 7DE6 E6D1 0000 ACF9 FAFC 8359" | ||
952 | $"8359 8359 ADD1 E8E9 FAF9 6973 3332 0000" | ||
953 | $"026C 0340 8080 4087 8005 5E51 80FF FF80" | ||
954 | $"86FF 06AA B457 80FF FF80 83FF 09F1 E1C1" | ||
955 | $"A94E D180 FFFF 8081 FF0B ECE6 DFBE BA4D" | ||
956 | $"D1FF 4080 8040 8080 4FA6 DCAD B3BC 65B4" | ||
957 | $"1900 80FF FF80 FFFF E9CF 87A7 B848 8FC6" | ||
958 | $"B719 80FF FF80 FFFF B58B A0C9 7D8B CFD4" | ||
959 | $"D89E 80FF FF80 FFFF ADAC A280 A5BE DBD4" | ||
960 | $"C79A 80FF FF80 FFF2 8F8E C5B4 7655 516E" | ||
961 | $"7A82 80FF FF80 FFD9 D880 FF09 F7DB C479" | ||
962 | $"B280 80FF FF80 86FF 0680 FF9A 80FF FF80" | ||
963 | $"86FF 0580 FFFF 80FF FF84 8000 4080 0005" | ||
964 | $"FFFF 80FF FF80 83FF 0080 8000 05FF FF80" | ||
965 | $"FFFF 8083 FF00 8080 0005 FFFF 4080 8040" | ||
966 | $"8380 0040 8000 0180 8081 0087 8001 0151" | ||
967 | $"8100 86FF 028B 0129 8100 83FF 05E2 D0B3" | ||
968 | $"943A D181 0081 FF0B D9BA B19E 952F D1FF" | ||
969 | $"4080 8040 8080 4F85 A369 8B98 378E 1900" | ||
970 | $"80FF FF80 FFFF D491 417F 9326 4893 9219" | ||
971 | $"80FF FF80 FFFF 774C 6C96 5E5A 94A0 A986" | ||
972 | $"80FF FF80 FFFF 9D73 7346 6589 ABA3 9280" | ||
973 | $"80FF FF80 FFED 6F7A BAA2 5028 253F 4A6A" | ||
974 | $"80FF FF80 FFD9 D880 FF09 F5D2 B569 9E73" | ||
975 | $"80FF FF80 86FF 0680 FF9A 80FF FF80 86FF" | ||
976 | $"0580 FFFF 80FF FF84 8009 403E 3E1F FFFF" | ||
977 | $"80FF FF80 83FF 0980 7B7B 3EFF FF80 FFFF" | ||
978 | $"8083 FF09 807B 7B3E FFFF 4080 8040 8380" | ||
979 | $"0540 3E3E 1F80 8081 0087 8001 1551 8100" | ||
980 | $"86FF 0290 202D 8100 83FF 05D9 C97F 6039" | ||
981 | $"D181 0081 FF0B CEA2 9759 4927 D1FF 4080" | ||
982 | $"8040 8080 4F6F 8657 474C 2976 5980 80FF" | ||
983 | $"FF80 FFFF C676 343F 4B1D 3977 7ED8 80FF" | ||
984 | $"FF80 FFFF 6540 536B 4C4E 7B85 8D79 80FF" | ||
985 | $"FF80 FFFF 8654 6638 5072 908A 7974 80FF" | ||
986 | $"FF80 FFEA 5D63 BB9E 4A20 1F36 3E65 80FF" | ||
987 | $"FF80 FFD9 D880 FF09 F4D0 B266 9B6F 80FF" | ||
988 | $"FF80 86FF 0680 FF9A 80FF FF80 86FF 0680" | ||
989 | $"FFFF 80FF FF80 8700 05FF FF80 FFFF 8087" | ||
990 | $"0005 FFFF 80FF FF80 8700 05FF FF40 8080" | ||
991 | $"4087 0001 8080 7338 6D6B 0000 0108 FFFF" | ||
992 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
993 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
994 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
995 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
996 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
997 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
998 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
999 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1000 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1001 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1002 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1003 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1004 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1005 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1006 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1007 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF 6963" | ||
1008 | $"6D23 0000 0038 F24B D007 B028 5557 81B1" | ||
1009 | $"124A 8236 1005 8000 1ABD 8030 557D FFFF" | ||
1010 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1011 | $"FFFF FFFF FFFF 6963 6D34 0000 0068 A33F" | ||
1012 | $"CDCC DCCD CAAE A333 0000 0000 CDEE 333A" | ||
1013 | $"0000 CCCB 2E0D EDCE CDCD DB2B DB6F D00D" | ||
1014 | $"00C2 BBEA BCD5 D00D 00BD 2D2D CC2D D00D" | ||
1015 | $"0CDC CCDB BADC D00D 0000 0000 0DCE D00D" | ||
1016 | $"0000 0000 0D0D D00D B1BB 1BF9 FD0D D00D" | ||
1017 | $"1111 1199 8D0D ECDB BB1B B1F9 FECE 6963" | ||
1018 | $"6D38 0000 00C8 DDDA DADD F8F8 F8F8 F8F8" | ||
1019 | $"F8F8 F864 8EAC DB23 23DC 0000 0000 0000" | ||
1020 | $"0000 F85C 89FB DC23 23DB 0000 0000 F608" | ||
1021 | $"3234 5E82 2AFA FBF8 F8FB F8F8 5633 335D" | ||
1022 | $"3488 575D EFF1 F900 00FA 0000 2C63 5E34" | ||
1023 | $"FD64 5D2C 33AA FA00 00F9 0000 395E 5D5D" | ||
1024 | $"5733 0832 33F9 F900 00FA 00F6 F92C 2B32" | ||
1025 | $"5D88 8888 88F8 FA00 00F9 0000 0000 0000" | ||
1026 | $"0000 00FA F781 F900 00FA 0000 0000 0000" | ||
1027 | $"0000 00F9 00F9 FA00 00F9 3559 5335 5959" | ||
1028 | $"E9E7 E7FA 00FA F900 00FA 0505 0505 0505" | ||
1029 | $"E8E6 E6F9 00F9 FBF8 F8FB 592F 5959 2F59" | ||
1030 | $"E9E7 E7FB F8FB 6974 3332 0000 245A 0000" | ||
1031 | $"0000 FF00 FF00 FF00 FB00 95FF 8100 C9FF" | ||
1032 | $"818E 81EA 8144 81FF 8500 95FF 8100 C9FF" | ||
1033 | $"818E 81EA 8144 81FF 8500 95FF 8100 C9FF" | ||
1034 | $"818E 81EA 8144 81FF 8500 95FF 8100 C9FF" | ||
1035 | $"818E 81EA 8144 81FF 8500 95FF 8100 C5FF" | ||
1036 | $"818F 81EA 81AB 818E 8144 8500 95FF 8100" | ||
1037 | $"C5FF 818F 81EA 81AB 818E 8144 8500 95FF" | ||
1038 | $"8100 C5FF 818F 81EA 81AB 818E 8144 8500" | ||
1039 | $"95FF 8100 C5FF 818F 81EA 81AB 818E 8144" | ||
1040 | $"8500 95FF 8100 C1FF 815A 81BE 81AB 818E" | ||
1041 | $"8145 8144 8500 95FF 8100 C1FF 815A 81BE" | ||
1042 | $"81AB 818E 8145 8144 8500 95FF 8100 C1FF" | ||
1043 | $"815A 81BE 81AB 818E 8145 8144 8500 95FF" | ||
1044 | $"8100 C1FF 815A 81BE 81AB 818E 8145 8144" | ||
1045 | $"8500 95FF 8100 BDFF 8164 81FE 8191 8169" | ||
1046 | $"8145 8144 81FF 8500 95FF 8100 BDFF 8164" | ||
1047 | $"81FE 8191 8169 8145 8144 81FF 8500 95FF" | ||
1048 | $"8100 BDFF 8164 81FE 8191 8169 8145 8144" | ||
1049 | $"81FF 8500 95FF 8100 BDFF 8164 81FE 8191" | ||
1050 | $"8169 8145 8144 81FF 8500 95FF 8100 A9FF" | ||
1051 | $"81E2 81E1 81CB 81B8 81A1 81FE 81B1 8162" | ||
1052 | $"8145 8144 85FF 8500 95FF 8100 A9FF 81E2" | ||
1053 | $"81E1 81CB 81B8 81A1 81FE 81B1 8162 8145" | ||
1054 | $"8144 85FF 8500 95FF 8100 A9FF 81E2 81E1" | ||
1055 | $"81CB 81B8 81A1 81FE 81B1 8162 8145 8144" | ||
1056 | $"85FF 8500 95FF 8100 A9FF 81E2 81E1 81CB" | ||
1057 | $"81B8 81A1 81FE 81B1 8162 8145 8144 85FF" | ||
1058 | $"8500 95FF 8100 A1FF 81E2 81E6 81E9 81EF" | ||
1059 | $"81B8 819F 81FE 81C1 8162 8145 8144 89FF" | ||
1060 | $"8500 95FF 8100 A1FF 81E2 81E6 81E9 81EF" | ||
1061 | $"81B8 819F 81FE 81C1 8162 8145 8144 89FF" | ||
1062 | $"8500 95FF 8100 A1FF 81E2 81E6 81E9 81EF" | ||
1063 | $"81B8 819F 81FE 81C1 8162 8145 8144 89FF" | ||
1064 | $"8500 95FF 8100 A1FF 81E2 81E6 81E9 81EF" | ||
1065 | $"81B8 819F 81FE 81C1 8162 8145 8144 89FF" | ||
1066 | $"8500 95FF 8100 9DFF 81D9 81E4 81E9 81EB" | ||
1067 | $"81B8 819F 81FE 81C3 8162 8145 8144 8DFF" | ||
1068 | $"8500 95FF 8100 9DFF 81D9 81E4 81E9 81EB" | ||
1069 | $"81B8 819F 81FE 81C3 8162 8145 8144 8DFF" | ||
1070 | $"8500 95FF 8100 9DFF 81D9 81E4 81E9 81EB" | ||
1071 | $"81B8 819F 81FE 81C3 8162 8145 8144 8DFF" | ||
1072 | $"8500 95FF 8100 9DFF 81D9 81E4 81E9 81EB" | ||
1073 | $"81B8 819F 81FE 81C3 8162 8145 8144 8DFF" | ||
1074 | $"BD00 81D7 81E3 81DE 81BA 818F 81A2 81FE" | ||
1075 | $"81C6 8162 8145 81D0 8161 CD00 81D7 81E3" | ||
1076 | $"81DE 81BA 818F 81A2 81FE 81C6 8162 8145" | ||
1077 | $"81D0 8161 CD00 81D7 81E3 81DE 81BA 818F" | ||
1078 | $"81A2 81FE 81C6 8162 8145 81D0 8161 CD00" | ||
1079 | $"81D7 81E3 81DE 81BA 818F 81A2 81FE 81C6" | ||
1080 | $"8162 8145 81D0 8161 9500 95FF 8100 95FF" | ||
1081 | $"81DA 81E5 81D4 81B3 8167 819A 81FE 81C8" | ||
1082 | $"8162 8145 81A5 81C9 81D3 8161 9100 95FF" | ||
1083 | $"8100 95FF 81DA 81E5 81D4 81B3 8167 819A" | ||
1084 | $"81FE 81C8 8162 8145 81A5 81C9 81D3 8161" | ||
1085 | $"9100 95FF 8100 95FF 81DA 81E5 81D4 81B3" | ||
1086 | $"8167 819A 81FE 81C8 8162 8145 81A5 81C9" | ||
1087 | $"81D3 8161 9100 95FF 8100 95FF 81DA 81E5" | ||
1088 | $"81D4 81B3 8167 819A 81FE 81C8 8162 8145" | ||
1089 | $"81A5 81C9 81D3 8161 9100 95FF 8100 91FF" | ||
1090 | $"81DC 81E2 81D4 81A4 8169 819E 81F2 81C9" | ||
1091 | $"8162 8145 8179 819B 81C2 81D2 81D0 8161" | ||
1092 | $"8D00 95FF 8100 91FF 81DC 81E2 81D4 81A4" | ||
1093 | $"8169 819E 81F2 81C9 8162 8145 8179 819B" | ||
1094 | $"81C2 81D2 81D0 8161 8D00 95FF 8100 91FF" | ||
1095 | $"81DC 81E2 81D4 81A4 8169 819E 81F2 81C9" | ||
1096 | $"8162 8145 8179 819B 81C2 81D2 81D0 8161" | ||
1097 | $"8D00 95FF 8100 91FF 81DC 81E2 81D4 81A4" | ||
1098 | $"8169 819E 81F2 81C9 8162 8145 8179 819B" | ||
1099 | $"81C2 81D2 81D0 8161 8D00 95FF 8100 8DFF" | ||
1100 | $"81E8 81DD 81D2 81B3 816A 81A0 81F3 81C7" | ||
1101 | $"815C 811B 815D 8189 819C 81B5 81CD 81D5" | ||
1102 | $"81D3 8161 8900 95FF 8100 8DFF 81E8 81DD" | ||
1103 | $"81D2 81B3 816A 81A0 81F3 81C7 815C 811B" | ||
1104 | $"815D 8189 819C 81B5 81CD 81D5 81D3 8161" | ||
1105 | $"8900 95FF 8100 8DFF 81E8 81DD 81D2 81B3" | ||
1106 | $"816A 81A0 81F3 81C7 815C 811B 815D 8189" | ||
1107 | $"819C 81B5 81CD 81D5 81D3 8161 8900 95FF" | ||
1108 | $"8100 8DFF 81E8 81DD 81D2 81B3 816A 81A0" | ||
1109 | $"81F3 81C7 815C 811B 815D 8189 819C 81B5" | ||
1110 | $"81CD 81D5 81D3 8161 8900 95FF 8100 8DFF" | ||
1111 | $"81DF 81C2 819C 8165 817A 81DE 81B3 816A" | ||
1112 | $"810D 8120 8182 81AD 81BD 81C3 81D1 81D5" | ||
1113 | $"81D7 81D0 8169 8188 8100 95FF 8100 8DFF" | ||
1114 | $"81DF 81C2 819C 8165 817A 81DE 81B3 816A" | ||
1115 | $"810D 8120 8182 81AD 81BD 81C3 81D1 81D5" | ||
1116 | $"81D7 81D0 8169 8188 8100 95FF 8100 8DFF" | ||
1117 | $"81DF 81C2 819C 8165 817A 81DE 81B3 816A" | ||
1118 | $"810D 8120 8182 81AD 81BD 81C3 81D1 81D5" | ||
1119 | $"81D7 81D0 8169 8188 8100 95FF 8100 8DFF" | ||
1120 | $"81DF 81C2 819C 8165 817A 81DE 81B3 816A" | ||
1121 | $"810D 8120 8182 81AD 81BD 81C3 81D1 81D5" | ||
1122 | $"81D7 81D0 8169 8188 8100 95FF 8100 8DFF" | ||
1123 | $"81AE 8181 8170 81B9 81C5 81C1 81CE 81C7" | ||
1124 | $"81B2 81AF 81DA 81E7 81EA 81E1 81D9 81D8" | ||
1125 | $"81D9 81D4 8169 8186 8100 95FF 8100 8DFF" | ||
1126 | $"81AE 8181 8170 81B9 81C5 81C1 81CE 81C7" | ||
1127 | $"81B2 81AF 81DA 81E7 81EA 81E1 81D9 81D8" | ||
1128 | $"81D9 81D4 8169 8186 8100 95FF 8100 8DFF" | ||
1129 | $"81AE 8181 8170 81B9 81C5 81C1 81CE 81C7" | ||
1130 | $"81B2 81AF 81DA 81E7 81EA 81E1 81D9 81D8" | ||
1131 | $"81D9 81D4 8169 8186 8100 95FF 8100 8DFF" | ||
1132 | $"81AE 8181 8170 81B9 81C5 81C1 81CE 81C7" | ||
1133 | $"81B2 81AF 81DA 81E7 81EA 81E1 81D9 81D8" | ||
1134 | $"81D9 81D4 8169 8186 8100 95FF 8100 8DFF" | ||
1135 | $"81EE 815C 8175 81EB 81D4 819F 81B3 81C4" | ||
1136 | $"81DE 81E7 81EC 81EB 81E3 81E4 81DD 81D6" | ||
1137 | $"81CE 81C6 8172 819C 8100 95FF 8100 8DFF" | ||
1138 | $"81EE 815C 8175 81EB 81D4 819F 81B3 81C4" | ||
1139 | $"81DE 81E7 81EC 81EB 81E3 81E4 81DD 81D6" | ||
1140 | $"81CE 81C6 8172 819C 8100 95FF 8100 8DFF" | ||
1141 | $"81EE 815C 8175 81EB 81D4 819F 81B3 81C4" | ||
1142 | $"81DE 81E7 81EC 81EB 81E3 81E4 81DD 81D6" | ||
1143 | $"81CE 81C6 8172 819C 8100 95FF 8100 8DFF" | ||
1144 | $"81EE 815C 8175 81EB 81D4 819F 81B3 81C4" | ||
1145 | $"81DE 81E7 81EC 81EB 81E3 81E4 81DD 81D6" | ||
1146 | $"81CE 81C6 8172 819C 8100 95FF 8100 8DFF" | ||
1147 | $"81C6 81A2 81C7 8188 816F 814D 8161 816F" | ||
1148 | $"817F 8190 8194 81C1 81DB 81CC 81C1 81C0" | ||
1149 | $"81B7 81AB 8182 81A2 8100 95FF 8100 8DFF" | ||
1150 | $"81C6 81A2 81C7 8188 816F 814D 8161 816F" | ||
1151 | $"817F 8190 8194 81C1 81DB 81CC 81C1 81C0" | ||
1152 | $"81B7 81AB 8182 81A2 8100 95FF 8100 8DFF" | ||
1153 | $"81C6 81A2 81C7 8188 816F 814D 8161 816F" | ||
1154 | $"817F 8190 8194 81C1 81DB 81CC 81C1 81C0" | ||
1155 | $"81B7 81AB 8182 81A2 8100 95FF 8100 8DFF" | ||
1156 | $"81C6 81A2 81C7 8188 816F 814D 8161 816F" | ||
1157 | $"817F 8190 8194 81C1 81DB 81CC 81C1 81C0" | ||
1158 | $"81B7 81AB 8182 81A2 8100 95FF 8100 8DFF" | ||
1159 | $"8199 81BF 81AE 815C 818A 8185 816D 8150" | ||
1160 | $"814E 815A 815B 8155 816C 818F 818B 818C" | ||
1161 | $"8195 8188 818F 81A4 8100 95FF 8100 8DFF" | ||
1162 | $"8199 81BF 81AE 815C 818A 8185 816D 8150" | ||
1163 | $"814E 815A 815B 8155 816C 818F 818B 818C" | ||
1164 | $"8195 8188 818F 81A4 8100 95FF 8100 8DFF" | ||
1165 | $"8199 81BF 81AE 815C 818A 8185 816D 8150" | ||
1166 | $"814E 815A 815B 8155 816C 818F 818B 818C" | ||
1167 | $"8195 8188 818F 81A4 8100 95FF 8100 8DFF" | ||
1168 | $"8199 81BF 81AE 815C 818A 8185 816D 8150" | ||
1169 | $"814E 815A 815B 8155 816C 818F 818B 818C" | ||
1170 | $"8195 8188 818F 81A4 8100 95FF 8100 89FF" | ||
1171 | $"81CA 8166 817C 818C 819F 85FF 81DC 81B5" | ||
1172 | $"8182 8151 814A 8143 813F 814B 8153 815E" | ||
1173 | $"8168 8160 818F 81A6 8100 95FF 8100 89FF" | ||
1174 | $"81CA 8166 817C 818C 819F 85FF 81DC 81B5" | ||
1175 | $"8182 8151 814A 8143 813F 814B 8153 815E" | ||
1176 | $"8168 8160 818F 81A6 8100 95FF 8100 89FF" | ||
1177 | $"81CA 8166 817C 818C 819F 85FF 81DC 81B5" | ||
1178 | $"8182 8151 814A 8143 813F 814B 8153 815E" | ||
1179 | $"8168 8160 818F 81A6 8100 95FF 8100 89FF" | ||
1180 | $"81CA 8166 817C 818C 819F 85FF 81DC 81B5" | ||
1181 | $"8182 8151 814A 8143 813F 814B 8153 815E" | ||
1182 | $"8168 8160 818F 81A6 8100 95FF 8100 89FF" | ||
1183 | $"8166 819F 81C2 95FF 81DC 81C3 81A8 818D" | ||
1184 | $"8184 817B 8168 816D 815A 815E 818F 81AF" | ||
1185 | $"8100 95FF 8100 89FF 8166 819F 81C2 95FF" | ||
1186 | $"81DC 81C3 81A8 818D 8184 817B 8168 816D" | ||
1187 | $"815A 815E 818F 81AF 8100 95FF 8100 89FF" | ||
1188 | $"8166 819F 81C2 95FF 81DC 81C3 81A8 818D" | ||
1189 | $"8184 817B 8168 816D 815A 815E 818F 81AF" | ||
1190 | $"8100 95FF 8100 89FF 8166 819F 81C2 95FF" | ||
1191 | $"81DC 81C3 81A8 818D 8184 817B 8168 816D" | ||
1192 | $"815A 815E 818F 81AF 8100 95FF 8100 C5FF" | ||
1193 | $"8100 85FF 8181 818F 81B5 8100 95FF 8100" | ||
1194 | $"C5FF 8100 85FF 8181 818F 81B5 8100 95FF" | ||
1195 | $"8100 C5FF 8100 85FF 8181 818F 81B5 8100" | ||
1196 | $"95FF 8100 C5FF 8100 85FF 8181 818F 81B5" | ||
1197 | $"8100 95FF 8100 C5FF 8100 85FF 8122 8544" | ||
1198 | $"8100 95FF 8100 C5FF 8100 85FF 8122 8544" | ||
1199 | $"8100 95FF 8100 C5FF 8100 85FF 8122 8544" | ||
1200 | $"8100 95FF 8100 C5FF 8100 85FF 8122 8544" | ||
1201 | $"8100 95FF 8100 C5FF 8100 8DFF 8500 95FF" | ||
1202 | $"8100 C5FF 8100 8DFF 8500 95FF 8100 C5FF" | ||
1203 | $"8100 8DFF 8500 95FF 8100 C5FF 8100 8DFF" | ||
1204 | $"8500 95FF 8100 C5FF 8100 8DFF 8500 95FF" | ||
1205 | $"8100 C5FF 8100 8DFF 8500 95FF 8100 C5FF" | ||
1206 | $"8100 8DFF 8500 95FF 8100 C5FF 8100 8DFF" | ||
1207 | $"8500 95FF 8100 C5FF 8100 8DFF 8500 95FF" | ||
1208 | $"8100 C5FF 8100 8DFF 8500 95FF 8100 C5FF" | ||
1209 | $"8100 8DFF 8500 95FF 8100 C5FF 8100 8DFF" | ||
1210 | $"8500 95FF CD00 8DFF 8500 95FF CD00 8DFF" | ||
1211 | $"8500 95FF CD00 8DFF 8500 95FF CD00 8DFF" | ||
1212 | $"8500 95FF 8100 ADFF 9900 8DFF 8500 95FF" | ||
1213 | $"8100 ADFF 9900 8DFF 8500 95FF 8100 ADFF" | ||
1214 | $"9900 8DFF 8500 95FF 8100 ADFF 9900 8DFF" | ||
1215 | $"8500 95FF 8100 ADFF 9900 8DFF 8500 95FF" | ||
1216 | $"8100 ADFF 9900 8DFF 8500 95FF 8100 ADFF" | ||
1217 | $"9900 8DFF 8500 95FF 8100 ADFF 9900 8DFF" | ||
1218 | $"8500 95FF 8100 ADFF 9900 8DFF 8500 95FF" | ||
1219 | $"8100 ADFF 9900 8DFF 8500 95FF 8100 ADFF" | ||
1220 | $"9900 8DFF 8500 95FF 8100 ADFF 9900 8DFF" | ||
1221 | $"8500 95FF 8100 ADFF 9900 8DFF 8500 95FF" | ||
1222 | $"8100 ADFF 9900 8DFF 8500 95FF 8100 ADFF" | ||
1223 | $"9900 8DFF 8500 95FF 8100 ADFF 9900 8DFF" | ||
1224 | $"8500 95FF 8100 ADFF 9900 8DFF 8500 95FF" | ||
1225 | $"8100 ADFF 9900 8DFF 8500 95FF 8100 ADFF" | ||
1226 | $"9900 8DFF 8500 95FF 8100 ADFF 9900 8DFF" | ||
1227 | $"8500 95FF 8100 ADFF 9900 8DFF 8500 95FF" | ||
1228 | $"8100 ADFF 9900 8DFF 8500 95FF 8100 ADFF" | ||
1229 | $"9900 8DFF 8500 95FF 8100 ADFF 9900 8DFF" | ||
1230 | $"FF00 FF00 FF00 FB00 FF00 FF00 FF00 FF00" | ||
1231 | $"9500 C9FF 8101 8100 8144 81FF A100 C9FF" | ||
1232 | $"8101 8100 8144 81FF A100 C9FF 8101 8100" | ||
1233 | $"8144 81FF A100 C9FF 8101 8100 8144 81FF" | ||
1234 | $"A100 C5FF 8109 8500 8101 8144 A100 C5FF" | ||
1235 | $"8109 8500 8101 8144 A100 C5FF 8109 8500" | ||
1236 | $"8101 8144 A100 C5FF 8109 8500 8101 8144" | ||
1237 | $"A100 C1FF 8167 81BC 8100 8101 8119 8144" | ||
1238 | $"A100 C1FF 8167 81BC 8100 8101 8119 8144" | ||
1239 | $"A100 C1FF 8167 81BC 8100 8101 8119 8144" | ||
1240 | $"A100 C1FF 8167 81BC 8100 8101 8119 8144" | ||
1241 | $"A100 BDFF 8166 81E4 819D 8171 8119 8144" | ||
1242 | $"81FF A100 BDFF 8166 81E4 819D 8171 8119" | ||
1243 | $"8144 81FF A100 BDFF 8166 81E4 819D 8171" | ||
1244 | $"8119 8144 81FF A100 BDFF 8166 81E4 819D" | ||
1245 | $"8171 8119 8144 81FF A100 A9FF 81C9 81BE" | ||
1246 | $"81A7 819B 8182 81E4 8189 8144 8119 8144" | ||
1247 | $"85FF A100 A9FF 81C9 81BE 81A7 819B 8182" | ||
1248 | $"81E4 8189 8144 8119 8144 85FF A100 A9FF" | ||
1249 | $"81C9 81BE 81A7 819B 8182 81E4 8189 8144" | ||
1250 | $"8119 8144 85FF A100 A9FF 81C9 81BE 81A7" | ||
1251 | $"819B 8182 81E4 8189 8144 8119 8144 85FF" | ||
1252 | $"A100 A1FF 81CF 81B6 81B9 81BB 819B 8179" | ||
1253 | $"81E4 8193 8144 8119 8144 89FF A100 A1FF" | ||
1254 | $"81CF 81B6 81B9 81BB 819B 8179 81E4 8193" | ||
1255 | $"8144 8119 8144 89FF A100 A1FF 81CF 81B6" | ||
1256 | $"81B9 81BB 819B 8179 81E4 8193 8144 8119" | ||
1257 | $"8144 89FF A100 A1FF 81CF 81B6 81B9 81BB" | ||
1258 | $"819B 8179 81E4 8193 8144 8119 8144 89FF" | ||
1259 | $"A100 9DFF 81B2 81AC 81B6 81B5 819B 817D" | ||
1260 | $"81E4 8197 8144 8119 8144 8DFF A100 9DFF" | ||
1261 | $"81B2 81AC 81B6 81B5 819B 817D 81E4 8197" | ||
1262 | $"8144 8119 8144 8DFF A100 9DFF 81B2 81AC" | ||
1263 | $"81B6 81B5 819B 817D 81E4 8197 8144 8119" | ||
1264 | $"8144 8DFF A100 9DFF 81B2 81AC 81B6 81B5" | ||
1265 | $"819B 817D 81E4 8197 8144 8119 8144 8DFF" | ||
1266 | $"BD00 85AF 81A0 816E 8151 8180 81E4 819A" | ||
1267 | $"8144 8119 819B 8162 CD00 85AF 81A0 816E" | ||
1268 | $"8151 8180 81E4 819A 8144 8119 819B 8162" | ||
1269 | $"CD00 85AF 81A0 816E 8151 8180 81E4 819A" | ||
1270 | $"8144 8119 819B 8162 CD00 85AF 81A0 816E" | ||
1271 | $"8151 8180 81E4 819A 8144 8119 819B 8162" | ||
1272 | $"9500 95FF 8100 95FF 81B2 81B3 8197 8168" | ||
1273 | $"812E 8176 81E4 819D 8144 8119 8163 8196" | ||
1274 | $"81A1 8162 9100 95FF 8100 95FF 81B2 81B3" | ||
1275 | $"8197 8168 812E 8176 81E4 819D 8144 8119" | ||
1276 | $"8163 8196 81A1 8162 9100 95FF 8100 95FF" | ||
1277 | $"81B2 81B3 8197 8168 812E 8176 81E4 819D" | ||
1278 | $"8144 8119 8163 8196 81A1 8162 9100 95FF" | ||
1279 | $"8100 95FF 81B2 81B3 8197 8168 812E 8176" | ||
1280 | $"81E4 819D 8144 8119 8163 8196 81A1 8162" | ||
1281 | $"9100 95FF 8100 91FF 81BE 81B0 8199 8153" | ||
1282 | $"8130 817E 81CF 819C 8146 8119 8134 8159" | ||
1283 | $"818B 81A6 819C 8162 8D00 95FF 8100 91FF" | ||
1284 | $"81BE 81B0 8199 8153 8130 817E 81CF 819C" | ||
1285 | $"8146 8119 8134 8159 818B 81A6 819C 8162" | ||
1286 | $"8D00 95FF 8100 91FF 81BE 81B0 8199 8153" | ||
1287 | $"8130 817E 81CF 819C 8146 8119 8134 8159" | ||
1288 | $"818B 81A6 819C 8162 8D00 95FF 8100 91FF" | ||
1289 | $"81BE 81B0 8199 8153 8130 817E 81CF 819C" | ||
1290 | $"8146 8119 8134 8159 818B 81A6 819C 8162" | ||
1291 | $"8D00 95FF 8100 8DFF 81E0 81B1 8191 8167" | ||
1292 | $"812E 817E 81D0 819A 8144 810E 812A 813C" | ||
1293 | $"8155 817B 81A0 81A8 81A2 8162 8900 95FF" | ||
1294 | $"8100 8DFF 81E0 81B1 8191 8167 812E 817E" | ||
1295 | $"81D0 819A 8144 810E 812A 813C 8155 817B" | ||
1296 | $"81A0 81A8 81A2 8162 8900 95FF 8100 8DFF" | ||
1297 | $"81E0 81B1 8191 8167 812E 817E 81D0 819A" | ||
1298 | $"8144 810E 812A 813C 8155 817B 81A0 81A8" | ||
1299 | $"81A2 8162 8900 95FF 8100 8DFF 81E0 81B1" | ||
1300 | $"8191 8167 812E 817E 81D0 819A 8144 810E" | ||
1301 | $"812A 813C 8155 817B 81A0 81A8 81A2 8162" | ||
1302 | $"8900 95FF 8100 8DFF 81C5 8176 814B 812D" | ||
1303 | $"8151 81B5 8186 814F 8104 810E 8134 8161" | ||
1304 | $"8181 818A 819F 81A8 81A7 81A1 8168 817C" | ||
1305 | $"8100 95FF 8100 8DFF 81C5 8176 814B 812D" | ||
1306 | $"8151 81B5 8186 814F 8104 810E 8134 8161" | ||
1307 | $"8181 818A 819F 81A8 81A7 81A1 8168 817C" | ||
1308 | $"8100 95FF 8100 8DFF 81C5 8176 814B 812D" | ||
1309 | $"8151 81B5 8186 814F 8104 810E 8134 8161" | ||
1310 | $"8181 818A 819F 81A8 81A7 81A1 8168 817C" | ||
1311 | $"8100 95FF 8100 8DFF 81C5 8176 814B 812D" | ||
1312 | $"8151 81B5 8186 814F 8104 810E 8134 8161" | ||
1313 | $"8181 818A 819F 81A8 81A7 81A1 8168 817C" | ||
1314 | $"8100 95FF 8100 8DFF 8172 812D 813A 817D" | ||
1315 | $"8186 8183 8199 8198 818C 8185 81A0 81B3" | ||
1316 | $"81B9 81AE 81A9 85AA 81A5 8168 817E 8100" | ||
1317 | $"95FF 8100 8DFF 8172 812D 813A 817D 8186" | ||
1318 | $"8183 8199 8198 818C 8185 81A0 81B3 81B9" | ||
1319 | $"81AE 81A9 85AA 81A5 8168 817E 8100 95FF" | ||
1320 | $"8100 8DFF 8172 812D 813A 817D 8186 8183" | ||
1321 | $"8199 8198 818C 8185 81A0 81B3 81B9 81AE" | ||
1322 | $"81A9 85AA 81A5 8168 817E 8100 95FF 8100" | ||
1323 | $"8DFF 8172 812D 813A 817D 8186 8183 8199" | ||
1324 | $"8198 818C 8185 81A0 81B3 81B9 81AE 81A9" | ||
1325 | $"85AA 81A5 8168 817E 8100 95FF 8100 8DFF" | ||
1326 | $"81E8 8144 8138 81B3 81A9 8162 816F 817D" | ||
1327 | $"819D 81B2 81BE 81BC 81B5 81B7 81AF 81A5" | ||
1328 | $"819B 8195 8173 8192 8100 95FF 8100 8DFF" | ||
1329 | $"81E8 8144 8138 81B3 81A9 8162 816F 817D" | ||
1330 | $"819D 81B2 81BE 81BC 81B5 81B7 81AF 81A5" | ||
1331 | $"819B 8195 8173 8192 8100 95FF 8100 8DFF" | ||
1332 | $"81E8 8144 8138 81B3 81A9 8162 816F 817D" | ||
1333 | $"819D 81B2 81BE 81BC 81B5 81B7 81AF 81A5" | ||
1334 | $"819B 8195 8173 8192 8100 95FF 8100 8DFF" | ||
1335 | $"81E8 8144 8138 81B3 81A9 8162 816F 817D" | ||
1336 | $"819D 81B2 81BE 81BC 81B5 81B7 81AF 81A5" | ||
1337 | $"819B 8195 8173 8192 8100 95FF 8100 8DFF" | ||
1338 | $"81C2 8183 819A 8144 813D 811E 8129 8134" | ||
1339 | $"8144 8155 815C 818E 81AC 819A 818B 8189" | ||
1340 | $"817D 8175 8182 819A 8100 95FF 8100 8DFF" | ||
1341 | $"81C2 8183 819A 8144 813D 811E 8129 8134" | ||
1342 | $"8144 8155 815C 818E 81AC 819A 818B 8189" | ||
1343 | $"817D 8175 8182 819A 8100 95FF 8100 8DFF" | ||
1344 | $"81C2 8183 819A 8144 813D 811E 8129 8134" | ||
1345 | $"8144 8155 815C 818E 81AC 819A 818B 8189" | ||
1346 | $"817D 8175 8182 819A 8100 95FF 8100 8DFF" | ||
1347 | $"81C2 8183 819A 8144 813D 811E 8129 8134" | ||
1348 | $"8144 8155 815C 818E 81AC 819A 818B 8189" | ||
1349 | $"817D 8175 8182 819A 8100 95FF 8100 8DFF" | ||
1350 | $"816E 818B 8180 8144 8174 816B 8145 8522" | ||
1351 | $"812F 8130 812E 8142 815C 8155 8158 8160" | ||
1352 | $"8155 818E 819E 8100 95FF 8100 8DFF 816E" | ||
1353 | $"818B 8180 8144 8174 816B 8145 8522 812F" | ||
1354 | $"8130 812E 8142 815C 8155 8158 8160 8155" | ||
1355 | $"818E 819E 8100 95FF 8100 8DFF 816E 818B" | ||
1356 | $"8180 8144 8174 816B 8145 8522 812F 8130" | ||
1357 | $"812E 8142 815C 8155 8158 8160 8155 818E" | ||
1358 | $"819E 8100 95FF 8100 8DFF 816E 818B 8180" | ||
1359 | $"8144 8174 816B 8145 8522 812F 8130 812E" | ||
1360 | $"8142 815C 8155 8158 8160 8155 818E 819E" | ||
1361 | $"8100 95FF 8100 89FF 81B4 8166 815A 8181" | ||
1362 | $"819F 85FF 81D6 819F 815B 8123 811B 8113" | ||
1363 | $"8110 8120 812B 8133 813C 8137 818E 81A0" | ||
1364 | $"8100 95FF 8100 89FF 81B4 8166 815A 8181" | ||
1365 | $"819F 85FF 81D6 819F 815B 8123 811B 8113" | ||
1366 | $"8110 8120 812B 8133 813C 8137 818E 81A0" | ||
1367 | $"8100 95FF 8100 89FF 81B4 8166 815A 8181" | ||
1368 | $"819F 85FF 81D6 819F 815B 8123 811B 8113" | ||
1369 | $"8110 8120 812B 8133 813C 8137 818E 81A0" | ||
1370 | $"8100 95FF 8100 89FF 81B4 8166 815A 8181" | ||
1371 | $"819F 85FF 81D6 819F 815B 8123 811B 8113" | ||
1372 | $"8110 8120 812B 8133 813C 8137 818E 81A0" | ||
1373 | $"8100 95FF 8100 89FF 8166 819F 81C2 95FF" | ||
1374 | $"81D6 81B6 8192 816F 8166 815B 8147 8149" | ||
1375 | $"8131 813B 818E 81A6 8100 95FF 8100 89FF" | ||
1376 | $"8166 819F 81C2 95FF 81D6 81B6 8192 816F" | ||
1377 | $"8166 815B 8147 8149 8131 813B 818E 81A6" | ||
1378 | $"8100 95FF 8100 89FF 8166 819F 81C2 95FF" | ||
1379 | $"81D6 81B6 8192 816F 8166 815B 8147 8149" | ||
1380 | $"8131 813B 818E 81A6 8100 95FF 8100 89FF" | ||
1381 | $"8166 819F 81C2 95FF 81D6 81B6 8192 816F" | ||
1382 | $"8166 815B 8147 8149 8131 813B 818E 81A6" | ||
1383 | $"8100 95FF 8100 C5FF 8100 85FF 8172 818E" | ||
1384 | $"81AB 8100 95FF 8100 C5FF 8100 85FF 8172" | ||
1385 | $"818E 81AB 8100 95FF 8100 C5FF 8100 85FF" | ||
1386 | $"8172 818E 81AB 8100 95FF 8100 C5FF 8100" | ||
1387 | $"85FF 8172 818E 81AB 8100 95FF 8100 C5FF" | ||
1388 | $"8100 85FF 8122 8544 8100 95FF 8100 C5FF" | ||
1389 | $"8100 85FF 8122 8544 8100 95FF 8100 C5FF" | ||
1390 | $"8100 85FF 8122 8544 8100 95FF 8100 C5FF" | ||
1391 | $"8100 85FF 8122 8544 8100 95FF 8100 C5FF" | ||
1392 | $"8100 8DFF 8500 95FF 8100 C5FF 8100 8DFF" | ||
1393 | $"8500 95FF 8100 C5FF 8100 8DFF 8500 95FF" | ||
1394 | $"8100 C5FF 8100 8DFF 8500 95FF 8100 C5FF" | ||
1395 | $"8100 8DFF 8500 95FF 8100 C5FF 8100 8DFF" | ||
1396 | $"8500 95FF 8100 C5FF 8100 8DFF 8500 95FF" | ||
1397 | $"8100 C5FF 8100 8DFF 8500 95FF 8100 C5FF" | ||
1398 | $"8100 8DFF 8500 95FF 8100 C5FF 8100 8DFF" | ||
1399 | $"8500 95FF 8100 C5FF 8100 8DFF 8500 95FF" | ||
1400 | $"8100 C5FF 8100 8DFF 8500 95FF CD00 8DFF" | ||
1401 | $"8500 95FF CD00 8DFF 8500 95FF CD00 8DFF" | ||
1402 | $"8500 95FF CD00 8DFF 8500 95FF 8100 ADFF" | ||
1403 | $"8100 917B 8100 8DFF 8500 95FF 8100 ADFF" | ||
1404 | $"8100 917B 8100 8DFF 8500 95FF 8100 ADFF" | ||
1405 | $"8100 917B 8100 8DFF 8500 95FF 8100 ADFF" | ||
1406 | $"8100 917B 8100 8DFF 8500 95FF 8100 ADFF" | ||
1407 | $"8100 917B 8100 8DFF 8500 95FF 8100 ADFF" | ||
1408 | $"8100 917B 8100 8DFF 8500 95FF 8100 ADFF" | ||
1409 | $"8100 917B 8100 8DFF 8500 95FF 8100 ADFF" | ||
1410 | $"8100 917B 8100 8DFF 8500 95FF 8100 ADFF" | ||
1411 | $"8100 917B 8100 8DFF 8500 95FF 8100 ADFF" | ||
1412 | $"8100 917B 8100 8DFF 8500 95FF 8100 ADFF" | ||
1413 | $"8100 917B 8100 8DFF 8500 95FF 8100 ADFF" | ||
1414 | $"8100 917B 8100 8DFF 8500 95FF 8100 ADFF" | ||
1415 | $"8100 917B 8100 8DFF 8500 95FF 8100 ADFF" | ||
1416 | $"8100 917B 8100 8DFF 8500 95FF 8100 ADFF" | ||
1417 | $"8100 917B 8100 8DFF 8500 95FF 8100 ADFF" | ||
1418 | $"8100 917B 8100 8DFF 8500 95FF 8100 ADFF" | ||
1419 | $"8100 917B 8100 8DFF 8500 95FF 8100 ADFF" | ||
1420 | $"8100 917B 8100 8DFF 8500 95FF 8100 ADFF" | ||
1421 | $"8100 917B 8100 8DFF 8500 95FF 8100 ADFF" | ||
1422 | $"8100 917B 8100 8DFF 8500 95FF 8100 ADFF" | ||
1423 | $"8100 917B 8100 8DFF 8500 95FF 8100 ADFF" | ||
1424 | $"8100 917B 8100 8DFF 8500 95FF 8100 ADFF" | ||
1425 | $"8100 917B 8100 8DFF 8500 95FF 8100 ADFF" | ||
1426 | $"8100 917B 8100 8DFF FF00 FF00 FF00 FB00" | ||
1427 | $"FF00 FF00 FF00 FF00 9500 C9FF 810F 8143" | ||
1428 | $"8144 81FF A100 C9FF 810F 8143 8144 81FF" | ||
1429 | $"A100 C9FF 810F 8143 8144 81FF A100 C9FF" | ||
1430 | $"810F 8143 8144 81FF A100 C5FF 8117 8143" | ||
1431 | $"8116 810F 8144 A100 C5FF 8117 8143 8116" | ||
1432 | $"810F 8144 A100 C5FF 8117 8143 8116 810F" | ||
1433 | $"8144 A100 C5FF 8117 8143 8116 810F 8144" | ||
1434 | $"A100 C1FF 8165 81C4 8116 810F 811A 8144" | ||
1435 | $"A100 C1FF 8165 81C4 8116 810F 811A 8144" | ||
1436 | $"A100 C1FF 8165 81C4 8116 810F 811A 8144" | ||
1437 | $"A100 C1FF 8165 81C4 8116 810F 811A 8144" | ||
1438 | $"A100 BDFF 8155 8167 81A7 816C 811A 8144" | ||
1439 | $"81FF A100 BDFF 8155 8167 81A7 816C 811A" | ||
1440 | $"8144 81FF A100 BDFF 8155 8167 81A7 816C" | ||
1441 | $"811A 8144 81FF A100 BDFF 8155 8167 81A7" | ||
1442 | $"816C 811A 8144 81FF A100 A9FF 81BC 81A9" | ||
1443 | $"8192 8193 813E 8167 814D 8123 811A 8144" | ||
1444 | $"85FF A100 A9FF 81BC 81A9 8192 8193 813E" | ||
1445 | $"8167 814D 8123 811A 8144 85FF A100 A9FF" | ||
1446 | $"81BC 81A9 8192 8193 813E 8167 814D 8123" | ||
1447 | $"811A 8144 85FF A100 A9FF 81BC 81A9 8192" | ||
1448 | $"8193 813E 8167 814D 8123 811A 8144 85FF" | ||
1449 | $"A100 A1FF 81C6 819A 8598 8193 8131 8167" | ||
1450 | $"814A 8123 811A 8144 89FF A100 A1FF 81C6" | ||
1451 | $"819A 8598 8193 8131 8167 814A 8123 811A" | ||
1452 | $"8144 89FF A100 A1FF 81C6 819A 8598 8193" | ||
1453 | $"8131 8167 814A 8123 811A 8144 89FF A100" | ||
1454 | $"A1FF 81C6 819A 8598 8193 8131 8167 814A" | ||
1455 | $"8123 811A 8144 89FF A100 9DFF 819C 818E" | ||
1456 | $"8199 8195 8193 8137 8167 814F 8123 811A" | ||
1457 | $"8144 8DFF A100 9DFF 819C 818E 8199 8195" | ||
1458 | $"8193 8137 8167 814F 8123 811A 8144 8DFF" | ||
1459 | $"A100 9DFF 819C 818E 8199 8195 8193 8137" | ||
1460 | $"8167 814F 8123 811A 8144 8DFF A100 9DFF" | ||
1461 | $"819C 818E 8199 8195 8193 8137 8167 814F" | ||
1462 | $"8123 811A 8144 8DFF BD00 8192 818F 8186" | ||
1463 | $"8157 8147 8139 8167 8152 8123 811A 817A" | ||
1464 | $"8161 CD00 8192 818F 8186 8157 8147 8139" | ||
1465 | $"8167 8152 8123 811A 817A 8161 CD00 8192" | ||
1466 | $"818F 8186 8157 8147 8139 8167 8152 8123" | ||
1467 | $"811A 817A 8161 CD00 8192 818F 8186 8157" | ||
1468 | $"8147 8139 8167 8152 8123 811A 817A 8161" | ||
1469 | $"9500 95FF 8100 95FF 8195 8191 817C 8151" | ||
1470 | $"812A 8132 8167 8153 8123 811A 814B 8178" | ||
1471 | $"8183 8161 89FF 8500 95FF 8100 95FF 8195" | ||
1472 | $"8191 817C 8151 812A 8132 8167 8153 8123" | ||
1473 | $"811A 814B 8178 8183 8161 89FF 8500 95FF" | ||
1474 | $"8100 95FF 8195 8191 817C 8151 812A 8132" | ||
1475 | $"8167 8153 8123 811A 814B 8178 8183 8161" | ||
1476 | $"89FF 8500 95FF 8100 95FF 8195 8191 817C" | ||
1477 | $"8151 812A 8132 8167 8153 8123 811A 814B" | ||
1478 | $"8178 8183 8161 89FF 8500 95FF 8100 91FF" | ||
1479 | $"81A9 818B 817D 8141 812C 8137 8163 8153" | ||
1480 | $"8124 811A 812C 8144 816D 818A 8180 8161" | ||
1481 | $"85FF 8500 95FF 8100 91FF 81A9 818B 817D" | ||
1482 | $"8141 812C 8137 8163 8153 8124 811A 812C" | ||
1483 | $"8144 816D 818A 8180 8161 85FF 8500 95FF" | ||
1484 | $"8100 91FF 81A9 818B 817D 8141 812C 8137" | ||
1485 | $"8163 8153 8124 811A 812C 8144 816D 818A" | ||
1486 | $"8180 8161 85FF 8500 95FF 8100 91FF 81A9" | ||
1487 | $"818B 817D 8141 812C 8137 8163 8153 8124" | ||
1488 | $"811A 812C 8144 816D 818A 8180 8161 85FF" | ||
1489 | $"8500 95FF 8100 8DFF 81DA 8192 8178 8154" | ||
1490 | $"8127 8137 8161 8151 8122 8111 8124 8132" | ||
1491 | $"813F 8160 8184 818D 8186 8161 81FF 8500" | ||
1492 | $"95FF 8100 8DFF 81DA 8192 8178 8154 8127" | ||
1493 | $"8137 8161 8151 8122 8111 8124 8132 813F" | ||
1494 | $"8160 8184 818D 8186 8161 81FF 8500 95FF" | ||
1495 | $"8100 8DFF 81DA 8192 8178 8154 8127 8137" | ||
1496 | $"8161 8151 8122 8111 8124 8132 813F 8160" | ||
1497 | $"8184 818D 8186 8161 81FF 8500 95FF 8100" | ||
1498 | $"8DFF 81DA 8192 8178 8154 8127 8137 8161" | ||
1499 | $"8151 8122 8111 8124 8132 813F 8160 8184" | ||
1500 | $"818D 8186 8161 81FF 8500 95FF 8100 8DFF" | ||
1501 | $"81B7 815B 813C 8127 8130 8159 8156 812A" | ||
1502 | $"810A 810C 812C 814F 8165 816C 8185 818D" | ||
1503 | $"8189 8188 8169 8188 8100 95FF 8100 8DFF" | ||
1504 | $"81B7 815B 813C 8127 8130 8159 8156 812A" | ||
1505 | $"810A 810C 812C 814F 8165 816C 8185 818D" | ||
1506 | $"8189 8188 8169 8188 8100 95FF 8100 8DFF" | ||
1507 | $"81B7 815B 813C 8127 8130 8159 8156 812A" | ||
1508 | $"810A 810C 812C 814F 8165 816C 8185 818D" | ||
1509 | $"8189 8188 8169 8188 8100 95FF 8100 8DFF" | ||
1510 | $"81B7 815B 813C 8127 8130 8159 8156 812A" | ||
1511 | $"810A 810C 812C 814F 8165 816C 8185 818D" | ||
1512 | $"8189 8188 8169 8188 8100 95FF 8100 8DFF" | ||
1513 | $"8161 8120 812F 816A 8576 8583 8178 8174" | ||
1514 | $"818C 819A 819D 8191 858E 818C 8188 8169" | ||
1515 | $"8155 8100 95FF 8100 8DFF 8161 8120 812F" | ||
1516 | $"816A 8576 8583 8178 8174 818C 819A 819D" | ||
1517 | $"8191 858E 818C 8188 8169 8155 8100 95FF" | ||
1518 | $"8100 8DFF 8161 8120 812F 816A 8576 8583" | ||
1519 | $"8178 8174 818C 819A 819D 8191 858E 818C" | ||
1520 | $"8188 8169 8155 8100 95FF 8100 8DFF 8161" | ||
1521 | $"8120 812F 816A 8576 8583 8178 8174 818C" | ||
1522 | $"819A 819D 8191 858E 818C 8188 8169 8155" | ||
1523 | $"8100 95FF 8100 8DFF 81E7 8122 8130 8196" | ||
1524 | $"8194 8153 8154 815F 8180 8195 81A2 819E" | ||
1525 | $"819A 819D 8194 8188 8181 817A 8173 8144" | ||
1526 | $"8100 95FF 8100 8DFF 81E7 8122 8130 8196" | ||
1527 | $"8194 8153 8154 815F 8180 8195 81A2 819E" | ||
1528 | $"819A 819D 8194 8188 8181 817A 8173 8144" | ||
1529 | $"8100 95FF 8100 8DFF 81E7 8122 8130 8196" | ||
1530 | $"8194 8153 8154 815F 8180 8195 81A2 819E" | ||
1531 | $"819A 819D 8194 8188 8181 817A 8173 8144" | ||
1532 | $"8100 95FF 8100 8DFF 81E7 8122 8130 8196" | ||
1533 | $"8194 8153 8154 815F 8180 8195 81A2 819E" | ||
1534 | $"819A 819D 8194 8188 8181 817A 8173 8144" | ||
1535 | $"8100 95FF 8100 8DFF 81C6 8146 8151 8135" | ||
1536 | $"8138 8119 811F 812A 8136 8144 814A 8175" | ||
1537 | $"8191 8181 8173 8172 8168 8160 8181 81FF" | ||
1538 | $"8100 95FF 8100 8DFF 81C6 8146 8151 8135" | ||
1539 | $"8138 8119 811F 812A 8136 8144 814A 8175" | ||
1540 | $"8191 8181 8173 8172 8168 8160 8181 81FF" | ||
1541 | $"8100 95FF 8100 8DFF 81C6 8146 8151 8135" | ||
1542 | $"8138 8119 811F 812A 8136 8144 814A 8175" | ||
1543 | $"8191 8181 8173 8172 8168 8160 8181 81FF" | ||
1544 | $"8100 95FF 8100 8DFF 81C6 8146 8151 8135" | ||
1545 | $"8138 8119 811F 812A 8136 8144 814A 8175" | ||
1546 | $"8191 8181 8173 8172 8168 8160 8181 81FF" | ||
1547 | $"8100 95FF 8100 8DFF 8159 816A 8149 8122" | ||
1548 | $"8177 8168 813C 811A 811D 8928 8138 814D" | ||
1549 | $"8147 8148 814F 8147 818E 81FF 8100 95FF" | ||
1550 | $"8100 8DFF 8159 816A 8149 8122 8177 8168" | ||
1551 | $"813C 811A 811D 8928 8138 814D 8147 8148" | ||
1552 | $"814F 8147 818E 81FF 8100 95FF 8100 8DFF" | ||
1553 | $"8159 816A 8149 8122 8177 8168 813C 811A" | ||
1554 | $"811D 8928 8138 814D 8147 8148 814F 8147" | ||
1555 | $"818E 81FF 8100 95FF 8100 8DFF 8159 816A" | ||
1556 | $"8149 8122 8177 8168 813C 811A 811D 8928" | ||
1557 | $"8138 814D 8147 8148 814F 8147 818E 81FF" | ||
1558 | $"8100 95FF 8100 89FF 81A8 8165 814A 817F" | ||
1559 | $"819F 85FF 81D3 819A 8155 811C 8114 810E" | ||
1560 | $"810B 811B 8126 812B 8133 8130 818E 819A" | ||
1561 | $"8100 95FF 8100 89FF 81A8 8165 814A 817F" | ||
1562 | $"819F 85FF 81D3 819A 8155 811C 8114 810E" | ||
1563 | $"810B 811B 8126 812B 8133 8130 818E 819A" | ||
1564 | $"8100 95FF 8100 89FF 81A8 8165 814A 817F" | ||
1565 | $"819F 85FF 81D3 819A 8155 811C 8114 810E" | ||
1566 | $"810B 811B 8126 812B 8133 8130 818E 819A" | ||
1567 | $"8100 95FF 8100 89FF 81A8 8165 814A 817F" | ||
1568 | $"819F 85FF 81D3 819A 8155 811C 8114 810E" | ||
1569 | $"810B 811B 8126 812B 8133 8130 818E 819A" | ||
1570 | $"8100 95FF 8100 89FF 8165 819F 81C2 95FF" | ||
1571 | $"81D3 81B2 818E 8169 815F 8156 8142 8143" | ||
1572 | $"812B 8135 818E 819F 8100 95FF 8100 89FF" | ||
1573 | $"8165 819F 81C2 95FF 81D3 81B2 818E 8169" | ||
1574 | $"815F 8156 8142 8143 812B 8135 818E 819F" | ||
1575 | $"8100 95FF 8100 89FF 8165 819F 81C2 95FF" | ||
1576 | $"81D3 81B2 818E 8169 815F 8156 8142 8143" | ||
1577 | $"812B 8135 818E 819F 8100 95FF 8100 89FF" | ||
1578 | $"8165 819F 81C2 95FF 81D3 81B2 818E 8169" | ||
1579 | $"815F 8156 8142 8143 812B 8135 818E 819F" | ||
1580 | $"8100 95FF 8100 C5FF 8100 85FF 816B 818E" | ||
1581 | $"81A7 8100 95FF 8100 C5FF 8100 85FF 816B" | ||
1582 | $"818E 81A7 8100 95FF 8100 C5FF 8100 85FF" | ||
1583 | $"816B 818E 81A7 8100 95FF 8100 C5FF 8100" | ||
1584 | $"85FF 816B 818E 81A7 8100 95FF 8100 C5FF" | ||
1585 | $"8100 85FF 8122 8544 8100 95FF 8100 C5FF" | ||
1586 | $"8100 85FF 8122 8544 8100 95FF 8100 C5FF" | ||
1587 | $"8100 85FF 8122 8544 8100 95FF 8100 C5FF" | ||
1588 | $"8100 85FF 8122 8544 8100 95FF 8100 C5FF" | ||
1589 | $"8100 8DFF 8500 95FF 8100 C5FF 8100 8DFF" | ||
1590 | $"8500 95FF 8100 C5FF 8100 8DFF 8500 95FF" | ||
1591 | $"8100 C5FF 8100 8DFF 8500 95FF 8100 C5FF" | ||
1592 | $"8100 8DFF 8500 95FF 8100 C5FF 8100 8DFF" | ||
1593 | $"8500 95FF 8100 C5FF 8100 8DFF 8500 95FF" | ||
1594 | $"8100 C5FF 8100 8DFF 8500 95FF 8100 C5FF" | ||
1595 | $"8100 8DFF 8500 95FF 8100 C5FF 8100 8DFF" | ||
1596 | $"8500 95FF 8100 C5FF 8100 8DFF 8500 95FF" | ||
1597 | $"8100 C5FF 8100 8DFF 8500 95FF CD00 8DFF" | ||
1598 | $"8500 95FF CD00 8DFF 8500 95FF CD00 8DFF" | ||
1599 | $"8500 95FF CD00 8DFF 8500 95FF CD00 8DFF" | ||
1600 | $"8500 95FF CD00 8DFF 8500 95FF CD00 8DFF" | ||
1601 | $"8500 95FF CD00 8DFF 8500 95FF CD00 8DFF" | ||
1602 | $"8500 95FF CD00 8DFF 8500 95FF CD00 8DFF" | ||
1603 | $"8500 95FF CD00 8DFF 8500 95FF CD00 8DFF" | ||
1604 | $"8500 95FF CD00 8DFF 8500 95FF CD00 8DFF" | ||
1605 | $"8500 95FF CD00 8DFF 8500 95FF CD00 8DFF" | ||
1606 | $"8500 95FF CD00 8DFF 8500 95FF CD00 8DFF" | ||
1607 | $"8500 95FF CD00 8DFF 8500 95FF CD00 8DFF" | ||
1608 | $"8500 95FF CD00 8DFF 8500 95FF CD00 8DFF" | ||
1609 | $"8500 95FF CD00 8DFF 8500 95FF CD00 8DFF" | ||
1610 | $"8500 95FF CD00 8DFF 8500 95FF CD00 8DFF" | ||
1611 | $"8500 95FF CD00 8DFF FF00 FF00 FF00 FB00" | ||
1612 | $"7438 6D6B 0000 4008 FFFF FFFF FFFF FFFF" | ||
1613 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1614 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1615 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1616 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1617 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1618 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1619 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1620 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1621 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1622 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1623 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1624 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1625 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1626 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1627 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1628 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1629 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1630 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1631 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1632 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1633 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1634 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1635 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1636 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1637 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1638 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1639 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1640 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1641 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1642 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1643 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1644 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1645 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1646 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1647 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1648 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1649 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1650 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1651 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1652 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1653 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1654 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1655 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1656 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1657 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1658 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1659 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1660 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1661 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1662 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1663 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1664 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1665 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1666 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1667 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1668 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1669 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1670 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1671 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1672 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1673 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1674 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1675 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1676 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1677 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1678 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1679 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1680 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1681 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1682 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1683 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1684 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1685 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1686 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1687 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1688 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1689 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1690 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1691 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1692 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1693 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1694 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1695 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1696 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1697 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1698 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1699 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1700 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1701 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1702 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1703 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1704 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1705 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1706 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1707 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1708 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1709 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1710 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1711 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1712 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1713 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1714 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1715 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1716 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1717 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1718 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1719 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1720 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1721 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1722 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1723 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1724 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1725 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1726 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1727 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1728 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1729 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1730 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1731 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1732 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1733 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1734 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1735 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1736 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1737 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1738 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1739 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1740 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1741 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1742 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1743 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1744 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1745 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1746 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1747 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1748 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1749 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1750 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1751 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1752 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1753 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1754 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1755 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1756 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1757 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1758 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1759 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1760 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1761 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1762 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1763 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1764 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1765 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1766 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1767 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1768 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1769 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1770 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1771 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1772 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1773 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1774 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1775 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1776 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1777 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1778 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1779 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1780 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1781 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1782 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1783 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1784 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1785 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1786 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1787 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1788 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1789 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1790 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1791 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1792 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1793 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1794 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1795 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1796 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1797 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1798 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1799 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1800 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1801 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1802 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1803 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1804 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1805 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1806 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1807 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1808 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1809 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1810 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1811 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1812 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1813 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1814 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1815 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1816 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1817 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1818 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1819 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1820 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1821 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1822 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1823 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1824 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1825 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1826 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1827 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1828 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1829 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1830 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1831 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1832 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1833 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1834 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1835 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1836 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1837 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1838 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1839 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1840 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1841 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1842 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1843 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1844 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1845 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1846 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1847 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1848 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1849 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1850 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1851 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1852 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1853 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1854 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1855 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1856 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1857 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1858 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1859 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1860 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1861 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1862 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1863 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1864 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1865 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1866 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1867 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1868 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1869 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1870 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1871 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1872 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1873 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1874 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1875 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1876 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1877 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1878 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1879 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1880 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1881 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1882 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1883 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1884 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1885 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1886 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1887 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1888 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1889 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1890 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1891 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1892 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1893 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1894 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1895 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1896 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1897 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1898 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1899 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1900 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1901 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1902 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1903 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1904 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1905 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1906 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1907 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1908 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1909 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1910 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1911 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1912 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1913 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1914 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1915 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1916 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1917 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1918 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1919 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1920 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1921 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1922 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1923 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1924 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1925 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1926 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1927 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1928 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1929 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1930 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1931 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1932 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1933 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1934 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1935 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1936 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1937 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1938 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1939 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1940 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1941 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1942 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1943 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1944 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1945 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1946 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1947 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1948 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1949 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1950 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1951 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1952 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1953 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1954 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1955 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1956 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1957 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1958 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1959 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1960 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1961 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1962 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1963 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1964 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1965 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1966 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1967 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1968 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1969 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1970 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1971 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1972 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1973 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1974 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1975 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1976 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1977 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1978 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1979 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1980 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1981 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1982 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1983 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1984 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1985 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1986 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1987 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1988 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1989 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1990 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1991 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1992 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1993 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1994 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1995 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1996 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1997 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1998 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
1999 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2000 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2001 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2002 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2003 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2004 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2005 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2006 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2007 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2008 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2009 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2010 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2011 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2012 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2013 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2014 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2015 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2016 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2017 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2018 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2019 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2020 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2021 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2022 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2023 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2024 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2025 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2026 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2027 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2028 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2029 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2030 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2031 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2032 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2033 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2034 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2035 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2036 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2037 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2038 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2039 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2040 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2041 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2042 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2043 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2044 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2045 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2046 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2047 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2048 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2049 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2050 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2051 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2052 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2053 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2054 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2055 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2056 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2057 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2058 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2059 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2060 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2061 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2062 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2063 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2064 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2065 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2066 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2067 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2068 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2069 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2070 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2071 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2072 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2073 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2074 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2075 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2076 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2077 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2078 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2079 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2080 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2081 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2082 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2083 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2084 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2085 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2086 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2087 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2088 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2089 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2090 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2091 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2092 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2093 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2094 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2095 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2096 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2097 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2098 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2099 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2100 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2101 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2102 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2103 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2104 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2105 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2106 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2107 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2108 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2109 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2110 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2111 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2112 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2113 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2114 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2115 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2116 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2117 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2118 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2119 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2120 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2121 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2122 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2123 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2124 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2125 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2126 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2127 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2128 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2129 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2130 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2131 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2132 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2133 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2134 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2135 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2136 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2137 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2138 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2139 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2140 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2141 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2142 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2143 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2144 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2145 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2146 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2147 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2148 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2149 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2150 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2151 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2152 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2153 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2154 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2155 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2156 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2157 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2158 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2159 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2160 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2161 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2162 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2163 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2164 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2165 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2166 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2167 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2168 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2169 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2170 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2171 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2172 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2173 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2174 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2175 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2176 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2177 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2178 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2179 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2180 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2181 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2182 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2183 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2184 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2185 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2186 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2187 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2188 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2189 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2190 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2191 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2192 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2193 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2194 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2195 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2196 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2197 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2198 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2199 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2200 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2201 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2202 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2203 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2204 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2205 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2206 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2207 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2208 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2209 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2210 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2211 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2212 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2213 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2214 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2215 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2216 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2217 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2218 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2219 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2220 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2221 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2222 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2223 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2224 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2225 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2226 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2227 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2228 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2229 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2230 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2231 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2232 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2233 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2234 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2235 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2236 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2237 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2238 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2239 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2240 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2241 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2242 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2243 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2244 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2245 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2246 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2247 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2248 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2249 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2250 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2251 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2252 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2253 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2254 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2255 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2256 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2257 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2258 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2259 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2260 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2261 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2262 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2263 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2264 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2265 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2266 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2267 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2268 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2269 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2270 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2271 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2272 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2273 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2274 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2275 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2276 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2277 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2278 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2279 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2280 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2281 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2282 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2283 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2284 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2285 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2286 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2287 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2288 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2289 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2290 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2291 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2292 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2293 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2294 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2295 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2296 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2297 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2298 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2299 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2300 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2301 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2302 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2303 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2304 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2305 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2306 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2307 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2308 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2309 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2310 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2311 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2312 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2313 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2314 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2315 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2316 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2317 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2318 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2319 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2320 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2321 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2322 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2323 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2324 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2325 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2326 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2327 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2328 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2329 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2330 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2331 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2332 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2333 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2334 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2335 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2336 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2337 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2338 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2339 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2340 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2341 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2342 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2343 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2344 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2345 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2346 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2347 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2348 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2349 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2350 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2351 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2352 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2353 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2354 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2355 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2356 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2357 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2358 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2359 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2360 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2361 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2362 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2363 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2364 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2365 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2366 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2367 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2368 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2369 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2370 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2371 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2372 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2373 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2374 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2375 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2376 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2377 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2378 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2379 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2380 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2381 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2382 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2383 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2384 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2385 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2386 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2387 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2388 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2389 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2390 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2391 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2392 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2393 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2394 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2395 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2396 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2397 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2398 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2399 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2400 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2401 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2402 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2403 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2404 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2405 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2406 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2407 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2408 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2409 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2410 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2411 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2412 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2413 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2414 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2415 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2416 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2417 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2418 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2419 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2420 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2421 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2422 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2423 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2424 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2425 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2426 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2427 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2428 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2429 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2430 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2431 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2432 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2433 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2434 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2435 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2436 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2437 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2438 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2439 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2440 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2441 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2442 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2443 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2444 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2445 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2446 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2447 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2448 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2449 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2450 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2451 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2452 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2453 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2454 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2455 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2456 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2457 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2458 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2459 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2460 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2461 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2462 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2463 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2464 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2465 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2466 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2467 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2468 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2469 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2470 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2471 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2472 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2473 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2474 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2475 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2476 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2477 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2478 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2479 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2480 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2481 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2482 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2483 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2484 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2485 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2486 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2487 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2488 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2489 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2490 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2491 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2492 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2493 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2494 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2495 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2496 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2497 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2498 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2499 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2500 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2501 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2502 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2503 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2504 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2505 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2506 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2507 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2508 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2509 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2510 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2511 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2512 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2513 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2514 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2515 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2516 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2517 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2518 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2519 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2520 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2521 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2522 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2523 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2524 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2525 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2526 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2527 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2528 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2529 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2530 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2531 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2532 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2533 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2534 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2535 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2536 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2537 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2538 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2539 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2540 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2541 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2542 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2543 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2544 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2545 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2546 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2547 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2548 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2549 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2550 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2551 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2552 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2553 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2554 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2555 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2556 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2557 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2558 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2559 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2560 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2561 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2562 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2563 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2564 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2565 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2566 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2567 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2568 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2569 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2570 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2571 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2572 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2573 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2574 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2575 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2576 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2577 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2578 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2579 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2580 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2581 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2582 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2583 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2584 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2585 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2586 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2587 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2588 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2589 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2590 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2591 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2592 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2593 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2594 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2595 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2596 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2597 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2598 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2599 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2600 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2601 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2602 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2603 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2604 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2605 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2606 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2607 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2608 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2609 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2610 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2611 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2612 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2613 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2614 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2615 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2616 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2617 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2618 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2619 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2620 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2621 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2622 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2623 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2624 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2625 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2626 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2627 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2628 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2629 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2630 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2631 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2632 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2633 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2634 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2635 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2636 | $"FFFF FFFF FFFF FFFF" | ||
2637 | }; | ||
2638 | |||
2639 | data 'ics#' (-16455, "Item Icon") { | ||
2640 | $"F557 D001 700E E024 9A9B 0175 9299 0162" | ||
2641 | $"923E 0001 9004 0000 9BBC 102C 8434 5AFD" | ||
2642 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2643 | $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" | ||
2644 | }; | ||
2645 | |||
2646 | data 'ics4' (-16455, "Item Icon") { | ||
2647 | $"AA3F DDDD DDDD DDAE A333 0000 0000 0C3E" | ||
2648 | $"333A 0000 000C DBEC A333 0000 0CBC 2A00" | ||
2649 | $"EDDF DDDB D2CB ECFF D00D 00CD BBBA B2D6" | ||
2650 | $"D00D 00B2 DDBB DCCB D00D 00D4 D2D2 CC2D" | ||
2651 | $"D00D 00BD CCE5 3EEC D00D 0C00 0000 CBCB" | ||
2652 | $"D00D 0000 0000 0D0D D00D 0000 0000 0D00" | ||
2653 | $"D00D ABAB ABAF 9F00 D00D 1111 11B8 9900" | ||
2654 | $"D00D 1111 1189 9F00 EDDA 8291 ABAF 9FDD" | ||
2655 | }; | ||
2656 | |||
2657 | data 'ics8' (-16455, "Item Icon") { | ||
2658 | $"DEDC DBB3 F9FA F9FA F9FA F9FA F9FA 8FFB" | ||
2659 | $"DC23 23DB 0000 0000 0000 0000 0032 6A88" | ||
2660 | $"DB23 23DC 0000 0000 0000 F52B 3357 882B" | ||
2661 | $"DC23 23DB 0000 0000 F608 3234 33AD F600" | ||
2662 | $"FCFA F9AC F9FA F95D 0E5D 3457 8833 F1F2" | ||
2663 | $"FA00 00F9 0000 0733 825E 33AD 6432 33EF" | ||
2664 | $"F900 00FA 0000 5D5E 5D33 825D 3332 2C57" | ||
2665 | $"FA00 00F9 0000 5739 5D64 5D33 3232 335C" | ||
2666 | $"F900 00FA 00F5 5D57 F732 828E 8988 88F9" | ||
2667 | $"FA00 00F9 00F6 F600 0000 F5F6 4F5D F85D" | ||
2668 | $"F900 00FA 0000 0000 0000 0000 00FA 0056" | ||
2669 | $"FA00 00FA 0000 0000 0000 0000 00F9 0000" | ||
2670 | $"F900 00F9 8359 8359 8359 ADD1 E8EA 0000" | ||
2671 | $"FA00 00FA 0505 0505 0505 5FE5 E6E8 0000" | ||
2672 | $"F900 00F9 0505 0505 0505 7DE6 E6D1 0000" | ||
2673 | $"ACF9 FAFC 8359 8359 8359 ADD1 E8E9 FAF9" | ||
2674 | }; | ||
2675 | |||
diff --git a/rbutil/rbutilApp.cpp b/rbutil/rbutilApp.cpp deleted file mode 100644 index 1901a62df1..0000000000 --- a/rbutil/rbutilApp.cpp +++ /dev/null | |||
@@ -1,288 +0,0 @@ | |||
1 | /*************************************************************************** | ||
2 | * __________ __ ___. | ||
3 | * Open \______ \ ____ ____ | | _\_ |__ _______ ___ | ||
4 | * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / | ||
5 | * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | ||
6 | * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | ||
7 | * \/ \/ \/ \/ \/ | ||
8 | * Module: rbutil | ||
9 | * File: rbutilApp.cpp | ||
10 | * | ||
11 | * Copyright (C) 2005 Christi Alice Scarborough | ||
12 | * | ||
13 | * All files in this archive are subject to the GNU General Public License. | ||
14 | * See the file COPYING in the source tree root for full license agreement. | ||
15 | * | ||
16 | * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY | ||
17 | * KIND, either express or implied. | ||
18 | * | ||
19 | ****************************************************************************/ | ||
20 | |||
21 | #include "rbutilApp.h" | ||
22 | #include "bootloaders.h" | ||
23 | |||
24 | GlobalVars* gv = new GlobalVars(); | ||
25 | |||
26 | IMPLEMENT_APP(rbutilFrmApp) | ||
27 | |||
28 | bool rbutilFrmApp::OnInit() | ||
29 | { | ||
30 | wxString buf = wxT(""); | ||
31 | |||
32 | wxLogVerbose(wxT("=== begin rbutilFrmApp::Oninit()")); | ||
33 | |||
34 | |||
35 | gv->stdpaths = new wxStandardPaths(); | ||
36 | |||
37 | // Get application directory | ||
38 | // DANGER! GetDataDir() doesn't portably return the application directory | ||
39 | // We want to use the form below instead, but not until wxWidgets 2.8 is | ||
40 | // released. *Datadir gives the wrong dir for this on Linux/Mac even on Wx2.8 * | ||
41 | gv->AppDir = gv->stdpaths->GetExecutablePath().BeforeLast(PATH_SEP_CHR); | ||
42 | // buf = gv->stdpaths->GetDataDir(); buf.Append(PATH_SEP); | ||
43 | // gv->AppDir = buf.BeforeLast(PATH_SEP_CHR).c_str(); | ||
44 | |||
45 | buf = gv->stdpaths->GetUserDataDir(); | ||
46 | if (! wxDirExists(buf) ) | ||
47 | { | ||
48 | wxLogNull lognull; | ||
49 | if (! wxMkdir(buf, 0777)) | ||
50 | { | ||
51 | wxLogFatalError(wxT("Can't create data directory %s"), | ||
52 | buf.c_str()); | ||
53 | } | ||
54 | } | ||
55 | |||
56 | buf += PATH_SEP wxT("rbutil.log"); | ||
57 | gv->logfile = new wxFFile(buf, wxT("w")); | ||
58 | if (! gv->logfile->IsOpened() ) | ||
59 | wxLogFatalError(wxT("Unable to open log file")); | ||
60 | |||
61 | gv->loggui = new wxLogGui(); | ||
62 | gv->loggui->SetActiveTarget(gv->loggui); | ||
63 | gv->loggui->SetLogLevel(wxLOG_Message); | ||
64 | gv->logchain = new wxLogChain( | ||
65 | gv->logstderr = new wxLogStderr(gv->logfile->fp() ) ); | ||
66 | |||
67 | buf = buf.Left(buf.Len() - 10); | ||
68 | buf.Append(wxT("download")); | ||
69 | if (! wxDirExists(buf) ) wxMkdir(buf, 0777); | ||
70 | |||
71 | wxFileSystem::AddHandler(new wxInternetFSHandler); | ||
72 | wxFileSystem::AddHandler(new wxZipFSHandler); | ||
73 | |||
74 | if (!ReadGlobalConfig(NULL)) | ||
75 | { | ||
76 | ERR_DIALOG(gv->ErrStr->GetData(), wxT("Rockbox Utility")); | ||
77 | return FALSE; | ||
78 | } | ||
79 | ReadUserConfig(); | ||
80 | |||
81 | wxInitAllImageHandlers(); //init Image handlers | ||
82 | initIpodpatcher(); // reserve mem for ipodpatcher | ||
83 | initSansaPatcher(); // reserve mem for sansapatcher | ||
84 | |||
85 | rbutilFrm *myFrame = new rbutilFrm(NULL); | ||
86 | SetTopWindow(myFrame); | ||
87 | |||
88 | myFrame->Show(TRUE); | ||
89 | |||
90 | wxLogVerbose(wxT("=== end rbUtilFrmApp::OnInit()")); | ||
91 | return TRUE; | ||
92 | } | ||
93 | |||
94 | int rbutilFrmApp::OnExit() | ||
95 | { | ||
96 | wxLogVerbose(wxT("=== begin rbUtilFrmApp::OnExit()")); | ||
97 | |||
98 | WriteUserConfig(); | ||
99 | |||
100 | gv->logfile->Close(); | ||
101 | /* Enabling this code causes the program to crash. I | ||
102 | * have no idea why. (possibly because deleting non existing objects ? :-) ) | ||
103 | wxLog::DontCreateOnDemand(); | ||
104 | // Free a bunch of structures. | ||
105 | delete gv->GlobalConfig; | ||
106 | delete gv->ErrStr; | ||
107 | delete gv->stdpaths; | ||
108 | delete gv->platform; | ||
109 | |||
110 | delete gv->logstderr; | ||
111 | delete gv->logchain; | ||
112 | delete gv->logfile; | ||
113 | delete gv->loggui; | ||
114 | */ | ||
115 | wxLogVerbose(wxT("=== end rbUtilFrmApp::OnExit()")); | ||
116 | return 0; | ||
117 | } | ||
118 | |||
119 | bool rbutilFrmApp::ReadGlobalConfig(rbutilFrm* myFrame) | ||
120 | { | ||
121 | wxString buf, tmpstr, stack; | ||
122 | wxLogVerbose(wxT("=== begin rbutilFrmApp::ReadGlobalConfig(%p)"), | ||
123 | (void*) myFrame); | ||
124 | |||
125 | // Cross-platform compatibility: look for rbutil.ini in then in the app dir | ||
126 | // then in the user config dir (linux ~/) and | ||
127 | // then config dir (linux /etc/ ) | ||
128 | |||
129 | buf = gv->AppDir + wxT("" PATH_SEP "rbutil.ini"); | ||
130 | if (! wxFileExists(buf) ) | ||
131 | { | ||
132 | buf = gv->stdpaths->GetUserConfigDir() | ||
133 | + wxT("" PATH_SEP ".rbutil" PATH_SEP "rbutil.ini"); | ||
134 | if (! wxFileExists(buf) ) | ||
135 | { | ||
136 | buf = gv->stdpaths->GetConfigDir() | ||
137 | + wxT("" PATH_SEP "rbutil.ini"); | ||
138 | } | ||
139 | } | ||
140 | |||
141 | if (! wxFileExists(buf) ) | ||
142 | { | ||
143 | gv->ErrStr = new wxString(wxT("Configuration file doesnt exist!")); | ||
144 | return false; | ||
145 | } | ||
146 | |||
147 | |||
148 | wxFileInputStream* cfgis = new wxFileInputStream(buf); | ||
149 | |||
150 | if (!cfgis->CanRead()) { | ||
151 | gv->ErrStr = new wxString(wxT("Unable to open configuration file")); | ||
152 | return false; | ||
153 | } | ||
154 | |||
155 | gv->GlobalConfig = new wxFileConfig(*cfgis); | ||
156 | gv->GlobalConfigFile = buf; | ||
157 | |||
158 | unsigned int i = 0; | ||
159 | |||
160 | stack = gv->GlobalConfig->GetPath(); | ||
161 | gv->GlobalConfig->SetPath(wxT("/platforms")); | ||
162 | while(gv->GlobalConfig->Read(buf.Format(wxT("platform%d"), i + 1), | ||
163 | &tmpstr)) { | ||
164 | wxString cur = tmpstr; | ||
165 | //gv->plat_id.Add(tmpstr); | ||
166 | gv->GlobalConfig->Read(buf.Format(wxT("/%s/name"), | ||
167 | cur.c_str()), &tmpstr); | ||
168 | gv->plat_name.Add(tmpstr); | ||
169 | gv->GlobalConfig->Read(buf.Format(wxT("/%s/platform"), | ||
170 | cur.c_str()), &tmpstr); | ||
171 | gv->plat_id.Add(tmpstr); | ||
172 | gv->GlobalConfig->Read(buf.Format(wxT("/%s/released"), | ||
173 | cur.c_str()), &tmpstr); | ||
174 | gv->plat_released.Add( (tmpstr == wxT("yes")) ? true : false ) ; | ||
175 | gv->GlobalConfig->Read(buf.Format(wxT("/%s/needsbootloader"), | ||
176 | cur.c_str()), &tmpstr); | ||
177 | gv->plat_needsbootloader.Add( (tmpstr == wxT("yes")) ? true : false ) ; | ||
178 | gv->GlobalConfig->Read(buf.Format(wxT("/%s/bootloadermethod"), | ||
179 | cur.c_str()), &tmpstr); | ||
180 | gv->plat_bootloadermethod.Add(tmpstr); | ||
181 | gv->GlobalConfig->Read(buf.Format(wxT("/%s/bootloadername"), | ||
182 | cur.c_str()), &tmpstr); | ||
183 | gv->plat_bootloadername.Add(tmpstr); | ||
184 | gv->GlobalConfig->Read(buf.Format(wxT("/%s/resolution"), | ||
185 | cur.c_str()), &tmpstr); | ||
186 | gv->plat_resolution.Add(tmpstr); | ||
187 | gv->GlobalConfig->Read(buf.Format(wxT("/%s/manualname"), | ||
188 | cur.c_str()), &tmpstr); | ||
189 | gv->plat_manualname.Add(tmpstr); | ||
190 | |||
191 | i++; | ||
192 | } | ||
193 | |||
194 | gv->GlobalConfig->SetPath(wxT("/general")); | ||
195 | gv->GlobalConfig->Read(wxT("default_platform"), &tmpstr, wxT("cthulhu")); | ||
196 | |||
197 | |||
198 | gv->GlobalConfig->Read(wxT("last_release"), &tmpstr); | ||
199 | gv->last_release = tmpstr; | ||
200 | |||
201 | gv->GlobalConfig->Read(wxT("download_url"), &tmpstr); | ||
202 | gv->download_url = tmpstr; | ||
203 | |||
204 | gv->GlobalConfig->Read(wxT("daily_url"), &tmpstr); | ||
205 | gv->daily_url = tmpstr; | ||
206 | |||
207 | gv->GlobalConfig->Read(wxT("bleeding_url"), &tmpstr); | ||
208 | gv->bleeding_url = tmpstr; | ||
209 | |||
210 | gv->GlobalConfig->Read(wxT("server_conf_url"), &tmpstr); | ||
211 | gv->server_conf_url = tmpstr; | ||
212 | |||
213 | gv->GlobalConfig->Read(wxT("font_url"), &tmpstr); | ||
214 | gv->font_url = tmpstr; | ||
215 | |||
216 | gv->GlobalConfig->Read(wxT("prog_name"), &tmpstr); | ||
217 | gv->prog_name = tmpstr; | ||
218 | |||
219 | gv->GlobalConfig->Read(wxT("bootloader_url"), &tmpstr); | ||
220 | gv->bootloader_url = tmpstr; | ||
221 | |||
222 | gv->GlobalConfig->Read(wxT("themes_url"), &tmpstr); | ||
223 | gv->themes_url = tmpstr; | ||
224 | |||
225 | gv->GlobalConfig->Read(wxT("manual_url"), &tmpstr); | ||
226 | gv->manual_url = tmpstr; | ||
227 | |||
228 | gv->GlobalConfig->Read(wxT("doom_url"), &tmpstr); | ||
229 | gv->doom_url = tmpstr; | ||
230 | |||
231 | #ifdef __WXMSW__ | ||
232 | gv->curdestdir = wxT("D:\\"); | ||
233 | #else | ||
234 | gv->curdestdir = wxT("/mnt"); | ||
235 | #endif | ||
236 | gv->GlobalConfig->SetPath(stack); | ||
237 | |||
238 | wxLogVerbose(wxT("=== end rbutilFrmApp::ReadGlobalConfig()")); | ||
239 | return true; | ||
240 | } | ||
241 | |||
242 | void rbutilFrmApp::ReadUserConfig() | ||
243 | { | ||
244 | wxString buf, str, stack; | ||
245 | |||
246 | buf = gv->AppDir + wxT("" PATH_SEP "RockboxUtility.cfg"); | ||
247 | |||
248 | if (wxFileExists(buf) ) | ||
249 | { | ||
250 | gv->portable = true; | ||
251 | } | ||
252 | else | ||
253 | { | ||
254 | gv->portable = false; | ||
255 | buf = gv->stdpaths->GetUserDataDir() | ||
256 | + wxT("" PATH_SEP "RockboxUtility.cfg"); | ||
257 | } | ||
258 | |||
259 | gv->UserConfig = new wxFileConfig(wxEmptyString, wxEmptyString, buf); | ||
260 | gv->UserConfigFile = buf; | ||
261 | gv->UserConfig->Set(gv->UserConfig); // Store wxWidgets internal settings | ||
262 | stack = gv->UserConfig->GetPath(); | ||
263 | |||
264 | gv->UserConfig->SetPath(wxT("/defaults")); | ||
265 | if (gv->UserConfig->Read(wxT("curdestdir"), &str) ) gv->curdestdir = str; | ||
266 | if (gv->UserConfig->Read(wxT("curplatform"), &str) ) gv->curplat = str; | ||
267 | if (gv->UserConfig->Read(wxT("curfirmware"), &str) ) gv->curfirmware = str; | ||
268 | if (gv->UserConfig->Read(wxT("proxy_url"), &str) ) gv->proxy_url = str; | ||
269 | |||
270 | if (gv->UserConfig->Read(wxT("pathToTts"), &str) ) gv->pathToTts = str; | ||
271 | if (gv->UserConfig->Read(wxT("pathToEnc"), &str) ) gv->pathToEnc = str; | ||
272 | gv->UserConfig->SetPath(stack); | ||
273 | } | ||
274 | |||
275 | void rbutilFrmApp::WriteUserConfig() | ||
276 | { | ||
277 | gv->UserConfig->SetPath(wxT("/defaults")); | ||
278 | gv->UserConfig->Write(wxT("curdestdir"), gv->curdestdir); | ||
279 | gv->UserConfig->Write(wxT("curplatform"), gv->curplat); | ||
280 | gv->UserConfig->Write(wxT("curfirmware"), gv->curfirmware); | ||
281 | gv->UserConfig->Write(wxT("proxy_url"), gv->proxy_url); | ||
282 | gv->UserConfig->Write(wxT("pathToTts"), gv->pathToTts); | ||
283 | gv->UserConfig->Write(wxT("pathToEnc"), gv->pathToEnc); | ||
284 | |||
285 | delete gv->UserConfig; | ||
286 | |||
287 | } | ||
288 | |||
diff --git a/rbutil/rbutilApp.h b/rbutil/rbutilApp.h deleted file mode 100644 index b20e39eb90..0000000000 --- a/rbutil/rbutilApp.h +++ /dev/null | |||
@@ -1,53 +0,0 @@ | |||
1 | /*************************************************************************** | ||
2 | * __________ __ ___. | ||
3 | * Open \______ \ ____ ____ | | _\_ |__ _______ ___ | ||
4 | * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / | ||
5 | * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | ||
6 | * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | ||
7 | * \/ \/ \/ \/ \/ | ||
8 | * Module: rbutil | ||
9 | * File: rbutilApp.h | ||
10 | * | ||
11 | * Copyright (C) 2005 Christi Alice Scarborough | ||
12 | * | ||
13 | * All files in this archive are subject to the GNU General Public License. | ||
14 | * See the file COPYING in the source tree root for full license agreement. | ||
15 | * | ||
16 | * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY | ||
17 | * KIND, either express or implied. | ||
18 | * | ||
19 | ****************************************************************************/ | ||
20 | |||
21 | #include <wx/wxprec.h> | ||
22 | #ifdef __BORLANDC__ | ||
23 | #pragma hdrstop | ||
24 | #endif | ||
25 | #ifndef WX_PRECOMP | ||
26 | #include <wx/wx.h> | ||
27 | #endif | ||
28 | |||
29 | #include <wx/msgdlg.h> | ||
30 | #include <wx/config.h> | ||
31 | #include <wx/confbase.h> | ||
32 | #include <wx/fileconf.h> | ||
33 | #include <wx/string.h> | ||
34 | #include <wx/wfstream.h> | ||
35 | #include <wx/fs_inet.h> | ||
36 | #include <wx/fs_zip.h> | ||
37 | #include <wx/stdpaths.h> | ||
38 | |||
39 | #include "rbutilFrm.h" | ||
40 | #include "rbutil.h" | ||
41 | |||
42 | class rbutilFrmApp:public wxApp | ||
43 | { | ||
44 | public: | ||
45 | bool OnInit(); | ||
46 | int OnExit(); | ||
47 | bool ReadGlobalConfig(rbutilFrm* myFrame); | ||
48 | void ReadUserConfig(void); | ||
49 | void WriteUserConfig(void); | ||
50 | |||
51 | }; | ||
52 | |||
53 | |||
diff --git a/rbutil/rbutilCtrls.cpp b/rbutil/rbutilCtrls.cpp deleted file mode 100644 index fdede634d3..0000000000 --- a/rbutil/rbutilCtrls.cpp +++ /dev/null | |||
@@ -1,628 +0,0 @@ | |||
1 | |||
2 | #include "rbutilCtrls.h" | ||
3 | #include "bootloaders.h" | ||
4 | #include "autodetection.h" | ||
5 | |||
6 | ///////////////////////////////////////////////////////////// | ||
7 | //// Controls | ||
8 | //////////////////////////////////////////////////////////////// | ||
9 | |||
10 | ///////////////////////////////////////////// | ||
11 | //// Image Ctrl | ||
12 | ////////////////////////////////////////////// | ||
13 | |||
14 | BEGIN_EVENT_TABLE(ImageCtrl, wxControl) | ||
15 | EVT_PAINT(ImageCtrl::OnPaint) | ||
16 | END_EVENT_TABLE() | ||
17 | |||
18 | IMPLEMENT_DYNAMIC_CLASS(ImageCtrl, wxControl) | ||
19 | |||
20 | bool ImageCtrl::Create(wxWindow* parent, wxWindowID id, | ||
21 | const wxPoint& pos, const wxSize& size, long style, | ||
22 | const wxValidator& validator) | ||
23 | { | ||
24 | if (!wxControl::Create(parent, id, pos, size, style, validator)) return false; | ||
25 | |||
26 | return true; | ||
27 | } | ||
28 | |||
29 | void ImageCtrl::OnPaint(wxPaintEvent& event) | ||
30 | { | ||
31 | wxPaintDC dc(this); | ||
32 | dc.DrawBitmap(m_bitmap,0,0,false); | ||
33 | } | ||
34 | |||
35 | void ImageCtrl::SetBitmap(wxBitmap bmp) | ||
36 | { | ||
37 | m_bitmap = bmp; | ||
38 | Refresh(); | ||
39 | |||
40 | } | ||
41 | |||
42 | wxSize ImageCtrl::DoGetBestSize() const | ||
43 | { | ||
44 | wxSize bestsize; | ||
45 | bestsize.x = m_bitmap.GetWidth(); | ||
46 | bestsize.y = m_bitmap.GetHeight(); | ||
47 | return bestsize; | ||
48 | } | ||
49 | |||
50 | |||
51 | |||
52 | ///////////////////////////////////////////// | ||
53 | //// Theme Control | ||
54 | ////////////////////////////////////////////// | ||
55 | |||
56 | BEGIN_EVENT_TABLE(ThemeCtrl, wxPanel) | ||
57 | EVT_LISTBOX(ID_THEME_LST, ThemeCtrl::OnThemesLst) | ||
58 | EVT_BUTTON(ID_THEME_SELECT_ALL, ThemeCtrl::OnSelectAll) | ||
59 | END_EVENT_TABLE() | ||
60 | |||
61 | IMPLEMENT_DYNAMIC_CLASS(ThemeCtrl, wxPanel) | ||
62 | |||
63 | bool ThemeCtrl::Create(wxWindow* parent, wxWindowID id, | ||
64 | const wxPoint& pos, const wxSize& size, long style, | ||
65 | const wxString title ) | ||
66 | { | ||
67 | if (!wxPanel::Create(parent, id, pos, size, style, title)) return false; | ||
68 | |||
69 | CreateControls(); | ||
70 | |||
71 | GetSizer()->Fit(this); | ||
72 | |||
73 | GetSizer()->SetSizeHints(this); | ||
74 | return true; | ||
75 | } | ||
76 | |||
77 | void ThemeCtrl::CreateControls() | ||
78 | { | ||
79 | // A top-level sizer | ||
80 | wxBoxSizer* topSizer = new wxBoxSizer(wxVERTICAL); | ||
81 | this->SetSizer(topSizer); | ||
82 | |||
83 | wxBoxSizer* horizontalSizer = new wxBoxSizer(wxHORIZONTAL); | ||
84 | topSizer->Add(horizontalSizer, 0, wxALIGN_LEFT|wxALL, 5); | ||
85 | |||
86 | //Device Selection | ||
87 | wxBoxSizer* wxBoxSizer7 = new wxBoxSizer(wxVERTICAL); | ||
88 | horizontalSizer->Add(wxBoxSizer7,0,wxGROW | wxALL,0); | ||
89 | |||
90 | wxStaticText* m_desc = new wxStaticText( this, wxID_STATIC, | ||
91 | wxT("Select one or more Themes to install"), wxDefaultPosition, | ||
92 | wxDefaultSize, 0 ); | ||
93 | wxBoxSizer7->Add(m_desc, 0, wxALIGN_LEFT|wxALL, 5); | ||
94 | |||
95 | m_themeList = new wxListBox(this,ID_THEME_LST,wxDefaultPosition, | ||
96 | wxDefaultSize,0,NULL,wxLB_EXTENDED); | ||
97 | wxBoxSizer7->Add(m_themeList, 0, wxALIGN_LEFT|wxALL, 5); | ||
98 | |||
99 | m_selectAllThemes = new wxButton(this, ID_THEME_SELECT_ALL, | ||
100 | wxT("Select All")); | ||
101 | wxBoxSizer7->Add(m_selectAllThemes, 0, wxALIGN_LEFT|wxALL, 5); | ||
102 | |||
103 | // Preview Picture | ||
104 | wxBoxSizer* wxBoxSizer9 = new wxBoxSizer(wxVERTICAL); | ||
105 | horizontalSizer->Add(wxBoxSizer9,0,wxGROW | wxALL,0); | ||
106 | |||
107 | wxStaticText* preview_desc= new wxStaticText(this,wxID_ANY,wxT("Preview:")); | ||
108 | wxBoxSizer9->Add(preview_desc,0,wxGROW | wxALL,5); | ||
109 | |||
110 | m_PreviewBitmap = new ImageCtrl(this,ID_PREVIEW_BITMAP ); | ||
111 | wxBoxSizer9->Add(m_PreviewBitmap,0,wxALIGN_LEFT | wxALL,5); | ||
112 | |||
113 | wxStaticBox* groupbox= new wxStaticBox(this,wxID_ANY,wxT("Selected Theme:")); | ||
114 | wxStaticBoxSizer* styleSizer = new wxStaticBoxSizer( groupbox, wxVERTICAL ); | ||
115 | topSizer->Add(styleSizer,0,wxGROW|wxALL,0); | ||
116 | |||
117 | // horizontal sizer | ||
118 | wxBoxSizer* wxBoxSizer8 = new wxBoxSizer(wxHORIZONTAL); | ||
119 | styleSizer->Add(wxBoxSizer8,0,wxGROW | wxALL,0); | ||
120 | |||
121 | // File size | ||
122 | wxStaticText* size_desc= new wxStaticText(this,wxID_ANY,wxT("Filesize:")); | ||
123 | wxBoxSizer8->Add(size_desc,0,wxGROW | wxALL,5); | ||
124 | |||
125 | m_size= new wxStaticText(this,ID_FILESIZE,wxT("")); | ||
126 | wxBoxSizer8->Add(m_size,0,wxGROW | wxALL,5); | ||
127 | |||
128 | // Description | ||
129 | wxStaticText* desc_desc= new wxStaticText(this,wxID_ANY,wxT("Description:")); | ||
130 | styleSizer->Add(desc_desc,0,wxGROW | wxALL,5); | ||
131 | |||
132 | m_themedesc= new wxTextCtrl(this,ID_DESC,wxT(""),wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE|wxTE_READONLY); | ||
133 | styleSizer->Add(m_themedesc,0,wxGROW | wxALL,5); | ||
134 | |||
135 | topSizer->Fit(this); | ||
136 | topSizer->SetSizeHints(this); | ||
137 | Layout(); | ||
138 | |||
139 | } | ||
140 | |||
141 | void ThemeCtrl::Init() | ||
142 | { | ||
143 | m_Themes.Clear(); | ||
144 | m_Themes_path.Clear(); | ||
145 | m_Themes_size.Clear(); | ||
146 | m_Themes_image.Clear(); | ||
147 | m_Themes_desc.Clear(); | ||
148 | |||
149 | } | ||
150 | |||
151 | void ThemeCtrl::setDevice(wxString device) | ||
152 | { | ||
153 | |||
154 | int index = gv->plat_id.Index(device); | ||
155 | if(index == -1) return; | ||
156 | |||
157 | if(gv->plat_resolution[index] == m_currentResolution) | ||
158 | return; | ||
159 | else | ||
160 | m_currentResolution = gv->plat_resolution[index]; | ||
161 | |||
162 | // load the themelist | ||
163 | Init(); | ||
164 | m_size->SetLabel(wxT("")); | ||
165 | m_themedesc->SetValue(wxT("")); | ||
166 | m_themeList->Clear(); | ||
167 | |||
168 | //get correct Themes list | ||
169 | wxString src,dest,err; | ||
170 | |||
171 | src = gv->themes_url + wxT("rbutil.php?res=") + m_currentResolution; | ||
172 | dest = gv->stdpaths->GetUserDataDir() + wxT("" PATH_SEP "download" PATH_SEP) | ||
173 | + m_currentResolution + wxT(".list"); | ||
174 | |||
175 | if(DownloadURL(src, dest)) | ||
176 | { | ||
177 | MESG_DIALOG(wxT("Unable to download themes list.")); | ||
178 | return; | ||
179 | } | ||
180 | |||
181 | //read and parse Themes list | ||
182 | wxString themelistraw; | ||
183 | wxFFile themefile; | ||
184 | if(!themefile.Open(dest)) //open file | ||
185 | { | ||
186 | MESG_DIALOG(wxT("Unable to open themes list.")); | ||
187 | return; | ||
188 | } | ||
189 | if(!themefile.ReadAll(&themelistraw)) //read complete file | ||
190 | { | ||
191 | MESG_DIALOG(wxT("Unable to read themes list.")); | ||
192 | return; | ||
193 | } | ||
194 | wxRegEx reAll(wxT("<body >(.+)</body>")); //extract body part | ||
195 | if(! reAll.Matches(themelistraw)) | ||
196 | { | ||
197 | MESG_DIALOG(wxT("Themes list is in wrong Format.")); | ||
198 | return; | ||
199 | } | ||
200 | wxString lines = reAll.GetMatch(themelistraw,1); | ||
201 | |||
202 | // prepare text | ||
203 | lines.Replace(wxT("<br />"),wxT(""),true); //replace <br /> with nothing | ||
204 | lines.Replace(wxT("\n"),wxT(""),true); //replace \n with nothing | ||
205 | lines.Trim(true); //strip WS at end | ||
206 | lines.Trim(false); //strip WS at beginning | ||
207 | wxStringTokenizer tkz(lines,wxT("|")); //tokenize it | ||
208 | |||
209 | while ( tkz.HasMoreTokens() ) // read all entrys | ||
210 | { | ||
211 | m_Themes.Add(tkz.GetNextToken()); //Theme name | ||
212 | m_Themes_path.Add(tkz.GetNextToken()); //Theme path | ||
213 | m_Themes_size.Add(tkz.GetNextToken()); //File size | ||
214 | m_Themes_image.Add(tkz.GetNextToken()); //Screenshot | ||
215 | m_Themes_desc.Add(tkz.GetNextToken()); //Description | ||
216 | |||
217 | m_themeList->Append(m_Themes.Last()); | ||
218 | } | ||
219 | |||
220 | this->GetSizer()->Layout(); | ||
221 | this->GetSizer()->Fit(this); | ||
222 | this->GetSizer()->SetSizeHints(this); | ||
223 | m_parent->GetSizer()->Layout(); | ||
224 | m_parent->GetSizer()->Fit(m_parent); | ||
225 | m_parent->GetSizer()->SetSizeHints(m_parent); | ||
226 | } | ||
227 | |||
228 | |||
229 | void ThemeCtrl::OnThemesLst(wxCommandEvent& event) | ||
230 | { | ||
231 | ThemePreview(); | ||
232 | } | ||
233 | |||
234 | void ThemeCtrl::ThemePreview() | ||
235 | { | ||
236 | // wxCriticalSectionLocker locker(m_ThemeSelectSection); | ||
237 | |||
238 | wxArrayInt selected; | ||
239 | int numSelected = m_themeList->GetSelections(selected); | ||
240 | if(numSelected == 0) return; | ||
241 | |||
242 | int index = selected[0]; | ||
243 | |||
244 | m_size->SetLabel(m_Themes_size[index]); | ||
245 | m_themedesc->SetValue(m_Themes_desc[index]); | ||
246 | // m_themedesc->Wrap(200); // wrap desc | ||
247 | |||
248 | wxString src,dest; | ||
249 | |||
250 | int pos = m_Themes_image[index].Find('/',true); | ||
251 | wxString filename = m_Themes_image[index](pos+1,m_Themes_image[index].Length()); | ||
252 | |||
253 | dest = gv->stdpaths->GetUserDataDir() | ||
254 | + wxT("" PATH_SEP "download" PATH_SEP) | ||
255 | + m_currentResolution; | ||
256 | |||
257 | if(!wxDirExists(dest)) | ||
258 | wxMkdir(dest); | ||
259 | |||
260 | //this is a URL no PATH_SEP | ||
261 | src = gv->themes_url + wxT("/data/") + m_currentResolution + wxT("/") | ||
262 | + filename; | ||
263 | dest = gv->stdpaths->GetUserDataDir() + wxT("" PATH_SEP "download" PATH_SEP) | ||
264 | + m_currentResolution + wxT("" PATH_SEP) + filename; | ||
265 | |||
266 | if(!wxFileExists(dest)) | ||
267 | { | ||
268 | if(DownloadURL(src, dest)) | ||
269 | { | ||
270 | MESG_DIALOG(wxT("Unable to download image.")); | ||
271 | return; | ||
272 | } | ||
273 | } | ||
274 | |||
275 | m_currentimage = dest; | ||
276 | wxBitmap bmp; | ||
277 | bmp.LoadFile(m_currentimage,wxBITMAP_TYPE_PNG); | ||
278 | m_PreviewBitmap->SetBitmap(bmp); | ||
279 | |||
280 | Refresh(); | ||
281 | this->GetSizer()->Layout(); | ||
282 | this->GetSizer()->Fit(this); | ||
283 | this->GetSizer()->SetSizeHints(this); | ||
284 | |||
285 | m_parent->GetSizer()->Layout(); | ||
286 | m_parent->GetSizer()->Fit(m_parent); | ||
287 | m_parent->GetSizer()->SetSizeHints(m_parent); | ||
288 | |||
289 | } | ||
290 | |||
291 | void ThemeCtrl::OnSelectAll(wxCommandEvent& event) | ||
292 | { | ||
293 | for(unsigned int i=0; i < m_themeList->GetCount(); i++) | ||
294 | m_themeList->Select(i); | ||
295 | ThemePreview(); | ||
296 | } | ||
297 | |||
298 | wxArrayString ThemeCtrl::getThemesToInstall() | ||
299 | { | ||
300 | wxArrayString themes; | ||
301 | wxArrayInt selected; | ||
302 | int numSelected = m_themeList->GetSelections(selected); | ||
303 | |||
304 | for(int i=0; i < numSelected; i++) | ||
305 | { | ||
306 | themes.Add(m_Themes_path[selected[i]]); | ||
307 | } | ||
308 | return themes; | ||
309 | |||
310 | } | ||
311 | |||
312 | ///////////////////////////////////////////// | ||
313 | //// Ok Cancel Control | ||
314 | ////////////////////////////////////////////// | ||
315 | |||
316 | BEGIN_EVENT_TABLE(OkCancelCtrl, wxPanel) | ||
317 | |||
318 | END_EVENT_TABLE() | ||
319 | |||
320 | IMPLEMENT_DYNAMIC_CLASS(OkCancelCtrl, wxPanel) | ||
321 | |||
322 | bool OkCancelCtrl::Create(wxWindow* parent, wxWindowID id, | ||
323 | const wxPoint& pos, const wxSize& size, long style, | ||
324 | const wxString title) | ||
325 | { | ||
326 | if (!wxPanel::Create(parent, id, pos, size, style, title)) return false; | ||
327 | |||
328 | CreateControls(); | ||
329 | GetSizer()->Fit(this); | ||
330 | GetSizer()->SetSizeHints(this); | ||
331 | return true; | ||
332 | } | ||
333 | |||
334 | void OkCancelCtrl::CreateControls() | ||
335 | { | ||
336 | // A top-level sizer | ||
337 | wxBoxSizer* topSizer = new wxBoxSizer(wxHORIZONTAL); | ||
338 | this->SetSizer(topSizer); | ||
339 | |||
340 | // The OK button | ||
341 | m_OkBtn = new wxButton ( this, wxID_OK, wxT("&OK"), | ||
342 | wxDefaultPosition, wxDefaultSize, 0 ); | ||
343 | topSizer->Add(m_OkBtn, 0, wxALL, 5); | ||
344 | // The Cancel button | ||
345 | m_CancelBtn = new wxButton ( this, wxID_CANCEL, | ||
346 | wxT("&Cancel"), wxDefaultPosition, wxDefaultSize, 0 ); | ||
347 | topSizer->Add(m_CancelBtn, 0, wxALL, 5); | ||
348 | |||
349 | Layout(); | ||
350 | |||
351 | } | ||
352 | |||
353 | |||
354 | ///////////////////////////////////////////// | ||
355 | //// Device Selector | ||
356 | ////////////////////////////////////////////// | ||
357 | |||
358 | BEGIN_EVENT_TABLE(DeviceSelectorCtrl, wxPanel) | ||
359 | EVT_BUTTON(ID_AUTODETECT_BTN, DeviceSelectorCtrl::OnAutoDetect) | ||
360 | EVT_COMBOBOX(ID_DEVICE_CBX,DeviceSelectorCtrl::OnComboBox) | ||
361 | END_EVENT_TABLE() | ||
362 | |||
363 | IMPLEMENT_DYNAMIC_CLASS(DeviceSelectorCtrl, wxPanel) | ||
364 | |||
365 | bool DeviceSelectorCtrl::Create(wxWindow* parent, wxWindowID id, | ||
366 | const wxPoint& pos, const wxSize& size, long style, | ||
367 | const wxString title) | ||
368 | { | ||
369 | if (!wxPanel::Create(parent, id, pos, size, style, title)) return false; | ||
370 | |||
371 | CreateControls(); | ||
372 | GetSizer()->Fit(this); | ||
373 | GetSizer()->SetSizeHints(this); | ||
374 | return true; | ||
375 | } | ||
376 | |||
377 | void DeviceSelectorCtrl::CreateControls() | ||
378 | { | ||
379 | // A top-level sizer | ||
380 | wxBoxSizer* topSizer = new wxBoxSizer(wxVERTICAL); | ||
381 | this->SetSizer(topSizer); | ||
382 | |||
383 | //Device Selection | ||
384 | wxBoxSizer* horizontalSizer = new wxBoxSizer(wxHORIZONTAL); | ||
385 | topSizer->Add(horizontalSizer, 0, wxALIGN_LEFT|wxALL, 5); | ||
386 | m_desc = new wxStaticText( this, wxID_STATIC, | ||
387 | wxT("Device:"), wxDefaultPosition, | ||
388 | wxDefaultSize, 0 ); | ||
389 | horizontalSizer->Add(m_desc, 0, wxALIGN_LEFT|wxALL, 5); | ||
390 | |||
391 | m_deviceCbx = new wxComboBox(this, ID_DEVICE_CBX,wxT("Select your Device"), | ||
392 | wxDefaultPosition,wxDefaultSize,gv->plat_name,wxCB_READONLY); | ||
393 | |||
394 | m_deviceCbx->SetToolTip(wxT("Select your Device.")); | ||
395 | m_deviceCbx->SetHelpText(wxT("Select your Device.")); | ||
396 | |||
397 | horizontalSizer->Add(m_deviceCbx, 0, wxALIGN_LEFT|wxALL, 5); | ||
398 | |||
399 | wxButton* m_autodetectBtn = new wxButton(this, ID_AUTODETECT_BTN, wxT("Autodetect"), | ||
400 | wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, | ||
401 | wxT("AutodetectBtn")); | ||
402 | |||
403 | m_autodetectBtn->SetToolTip(wxT("Click here to autodetect your Device.")); | ||
404 | m_autodetectBtn->SetHelpText(wxT("Autodetection of the Device.")); | ||
405 | // m_autodetectBtn->SetFocus(); | ||
406 | |||
407 | horizontalSizer->Add(m_autodetectBtn,0,wxGROW | wxALL,5); | ||
408 | Layout(); | ||
409 | |||
410 | } | ||
411 | |||
412 | wxString DeviceSelectorCtrl::getDevice() | ||
413 | { | ||
414 | return m_currentDevice; | ||
415 | } | ||
416 | |||
417 | void DeviceSelectorCtrl::setDefault() | ||
418 | { | ||
419 | int index = gv->plat_id.Index(gv->curplat); | ||
420 | if(index == -1) return; | ||
421 | m_deviceCbx->SetValue(gv->plat_name[index]); | ||
422 | } | ||
423 | |||
424 | void DeviceSelectorCtrl::OnComboBox(wxCommandEvent& event) | ||
425 | { | ||
426 | int index = gv->plat_name.Index(m_deviceCbx->GetValue()); | ||
427 | |||
428 | if(index == -1) | ||
429 | { | ||
430 | m_currentDevice = wxT(""); | ||
431 | return; | ||
432 | } | ||
433 | |||
434 | gv->curplat = gv->plat_id[index]; | ||
435 | } | ||
436 | |||
437 | void DeviceSelectorCtrl::OnAutoDetect(wxCommandEvent& event) | ||
438 | { | ||
439 | if(!AutoDetect()) | ||
440 | { | ||
441 | WARN_DIALOG(wxT("No Device detected. If you have a Device connected, select the correct one manually."), | ||
442 | wxT("Detecting a Device")); | ||
443 | } | ||
444 | } | ||
445 | |||
446 | |||
447 | bool DeviceSelectorCtrl::AutoDetect() | ||
448 | { | ||
449 | UsbDeviceInfo device; | ||
450 | |||
451 | if(detectDevices(&device)) | ||
452 | { | ||
453 | |||
454 | if(device.status == DEVICEFOUND) | ||
455 | { | ||
456 | m_deviceCbx->SetValue(gv->plat_name[device.device_index]); | ||
457 | gv->curplat=gv->plat_id[device.device_index]; | ||
458 | |||
459 | if(device.path != wxT("")) | ||
460 | { | ||
461 | gv->curdestdir = device.path; | ||
462 | } | ||
463 | return true; | ||
464 | } | ||
465 | else if(device.status == TOMANYDEVICES) | ||
466 | { | ||
467 | WARN_DIALOG(wxT("More then one device detected, please connect only One"), | ||
468 | wxT("Detecting a Device")); | ||
469 | return true; | ||
470 | } | ||
471 | } | ||
472 | return false; | ||
473 | } | ||
474 | |||
475 | ///////////////////////////////////////////// | ||
476 | //// DevicePosition Selector | ||
477 | ////////////////////////////////////////////// | ||
478 | |||
479 | BEGIN_EVENT_TABLE(DevicePositionCtrl, wxPanel) | ||
480 | EVT_BUTTON(ID_BROWSE_BTN, DevicePositionCtrl::OnBrowseBtn) | ||
481 | END_EVENT_TABLE() | ||
482 | |||
483 | IMPLEMENT_DYNAMIC_CLASS(DevicePositionCtrl, wxPanel) | ||
484 | |||
485 | bool DevicePositionCtrl::Create(wxWindow* parent, wxWindowID id, | ||
486 | const wxPoint& pos, const wxSize& size, long style, | ||
487 | const wxString title) | ||
488 | { | ||
489 | if (!wxPanel::Create(parent, id, pos, size, style, title)) return false; | ||
490 | |||
491 | CreateControls(); | ||
492 | GetSizer()->Fit(this); | ||
493 | GetSizer()->SetSizeHints(this); | ||
494 | return true; | ||
495 | } | ||
496 | |||
497 | void DevicePositionCtrl::CreateControls() | ||
498 | { | ||
499 | // A top-level sizer | ||
500 | wxBoxSizer* topSizer = new wxBoxSizer(wxVERTICAL); | ||
501 | this->SetSizer(topSizer); | ||
502 | |||
503 | //Device Selection | ||
504 | m_desc = new wxStaticText( this, wxID_STATIC, | ||
505 | wxT("Select your Device in the Filesystem"), wxDefaultPosition, | ||
506 | wxDefaultSize, 0 ); | ||
507 | topSizer->Add(m_desc, 0, wxALIGN_LEFT|wxALL, 5); | ||
508 | |||
509 | wxBoxSizer* horizontalSizer = new wxBoxSizer(wxHORIZONTAL); | ||
510 | topSizer->Add(horizontalSizer, 0, wxGROW|wxALL, 5); | ||
511 | |||
512 | m_devicePos = new wxTextCtrl(this,wxID_ANY,gv->curdestdir); | ||
513 | m_devicePos->SetToolTip(wxT("Type the folder where your Device is here")); | ||
514 | m_devicePos->SetHelpText(wxT("Type the folder where your Device is here")); | ||
515 | horizontalSizer->Add(m_devicePos,0,wxGROW | wxALL,5); | ||
516 | |||
517 | m_browseBtn = new wxButton(this, ID_BROWSE_BTN, wxT("Browse"), | ||
518 | wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, | ||
519 | wxT("BrowseBtn")); | ||
520 | m_browseBtn->SetToolTip(wxT("Browse for your Device")); | ||
521 | m_browseBtn->SetHelpText(wxT("Browse for your Device")); | ||
522 | horizontalSizer->Add(m_browseBtn,0,wxGROW | wxALL,5); | ||
523 | |||
524 | topSizer->Fit(this); | ||
525 | Layout(); | ||
526 | |||
527 | } | ||
528 | |||
529 | wxString DevicePositionCtrl::getDevicePos() | ||
530 | { | ||
531 | return m_devicePos->GetValue(); | ||
532 | |||
533 | } | ||
534 | |||
535 | void DevicePositionCtrl::setDefault() | ||
536 | { | ||
537 | m_devicePos->SetValue(gv->curdestdir); | ||
538 | } | ||
539 | |||
540 | void DevicePositionCtrl::OnBrowseBtn(wxCommandEvent& event) | ||
541 | { | ||
542 | const wxString& temp = wxDirSelector( | ||
543 | wxT("Please select the location of your audio device"), gv->curdestdir, | ||
544 | 0, wxDefaultPosition, this); | ||
545 | |||
546 | if (!temp.empty()) | ||
547 | { | ||
548 | m_devicePos->SetValue(temp); | ||
549 | } | ||
550 | |||
551 | } | ||
552 | |||
553 | ///////////////////////////////////////////// | ||
554 | //// FirmwarePosition Selector | ||
555 | ////////////////////////////////////////////// | ||
556 | |||
557 | BEGIN_EVENT_TABLE(FirmwarePositionCtrl, wxPanel) | ||
558 | EVT_BUTTON(ID_BROWSE_BTN, FirmwarePositionCtrl::OnBrowseBtn) | ||
559 | END_EVENT_TABLE() | ||
560 | |||
561 | IMPLEMENT_DYNAMIC_CLASS(FirmwarePositionCtrl, wxControl) | ||
562 | |||
563 | bool FirmwarePositionCtrl::Create(wxWindow* parent, wxWindowID id, | ||
564 | const wxPoint& pos, const wxSize& size, long style, | ||
565 | const wxString title) | ||
566 | { | ||
567 | if (!wxPanel::Create(parent, id, pos, size, style, title)) return false; | ||
568 | |||
569 | CreateControls(); | ||
570 | GetSizer()->Fit(this); | ||
571 | GetSizer()->SetSizeHints(this); | ||
572 | return true; | ||
573 | } | ||
574 | |||
575 | void FirmwarePositionCtrl::CreateControls() | ||
576 | { | ||
577 | // A top-level sizer | ||
578 | wxBoxSizer* topSizer = new wxBoxSizer(wxVERTICAL); | ||
579 | this->SetSizer(topSizer); | ||
580 | |||
581 | //Device Selection | ||
582 | m_desc = new wxStaticText( this, wxID_STATIC, | ||
583 | wxT("Select original Firmware from the Manufacturer"), wxDefaultPosition, | ||
584 | wxDefaultSize, 0 ); | ||
585 | topSizer->Add(m_desc, 0, wxALIGN_LEFT|wxALL, 5); | ||
586 | |||
587 | wxBoxSizer* horizontalSizer = new wxBoxSizer(wxHORIZONTAL); | ||
588 | topSizer->Add(horizontalSizer, 0, wxALIGN_LEFT|wxALL, 5); | ||
589 | |||
590 | m_firmwarePos = new wxTextCtrl(this,wxID_ANY,gv->curdestdir); | ||
591 | m_firmwarePos->SetToolTip(wxT("Type the folder where the original Firmware is here")); | ||
592 | m_firmwarePos->SetHelpText(wxT("Type the folder where the original Firmware is here")); | ||
593 | horizontalSizer->Add(m_firmwarePos,0,wxGROW | wxALL,5); | ||
594 | |||
595 | m_browseBtn = new wxButton(this, ID_BROWSE_BTN, wxT("Browse"), | ||
596 | wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, | ||
597 | wxT("BrowseBtn")); | ||
598 | m_browseBtn->SetToolTip(wxT("Browse for the original Firmware")); | ||
599 | m_browseBtn->SetHelpText(wxT("Browse for the original Firmware")); | ||
600 | horizontalSizer->Add(m_browseBtn,0,wxGROW | wxALL,5); | ||
601 | |||
602 | Layout(); | ||
603 | |||
604 | } | ||
605 | |||
606 | wxString FirmwarePositionCtrl::getFirmwarePos() | ||
607 | { | ||
608 | return m_firmwarePos->GetValue(); | ||
609 | |||
610 | } | ||
611 | |||
612 | void FirmwarePositionCtrl::setDefault() | ||
613 | { | ||
614 | m_firmwarePos->SetValue(gv->curfirmware); | ||
615 | } | ||
616 | |||
617 | void FirmwarePositionCtrl::OnBrowseBtn(wxCommandEvent& event) | ||
618 | { | ||
619 | wxString temp = wxFileSelector( | ||
620 | wxT("Please select the location of the original Firmware"), gv->curdestdir,wxT(""),wxT(""),wxT("*.hex")); | ||
621 | |||
622 | if (!temp.empty()) | ||
623 | { | ||
624 | m_firmwarePos->SetValue(temp); | ||
625 | } | ||
626 | |||
627 | } | ||
628 | |||
diff --git a/rbutil/rbutilCtrls.h b/rbutil/rbutilCtrls.h deleted file mode 100644 index 7998dc69a4..0000000000 --- a/rbutil/rbutilCtrls.h +++ /dev/null | |||
@@ -1,286 +0,0 @@ | |||
1 | #ifndef RBUTILCTRLS_H_INCLUDED | ||
2 | #define RBUTILCTRLS_H_INCLUDED | ||
3 | |||
4 | #include "rbutil.h" | ||
5 | |||
6 | |||
7 | class ImageCtrl: public wxControl | ||
8 | { | ||
9 | DECLARE_DYNAMIC_CLASS(ImageCtrl) | ||
10 | DECLARE_EVENT_TABLE() | ||
11 | |||
12 | public: | ||
13 | // Constructors | ||
14 | ImageCtrl() { } | ||
15 | ImageCtrl(wxWindow* parent, wxWindowID id, | ||
16 | const wxPoint& pos = wxDefaultPosition, | ||
17 | const wxSize& size = wxDefaultSize, | ||
18 | long style = wxNO_BORDER, | ||
19 | const wxValidator& validator = wxDefaultValidator) | ||
20 | { | ||
21 | Create(parent, id, pos, size, style, validator); | ||
22 | } | ||
23 | // Creation | ||
24 | bool Create(wxWindow* parent, wxWindowID id, | ||
25 | const wxPoint& pos = wxDefaultPosition, | ||
26 | const wxSize& size = wxDefaultSize, | ||
27 | long style = wxNO_BORDER, | ||
28 | const wxValidator& validator = wxDefaultValidator); | ||
29 | |||
30 | // Event handlers | ||
31 | void OnPaint(wxPaintEvent& event); | ||
32 | |||
33 | wxSize DoGetBestSize() const ; | ||
34 | |||
35 | void SetBitmap(wxBitmap bmp); | ||
36 | |||
37 | protected: | ||
38 | wxBitmap m_bitmap; | ||
39 | |||
40 | }; | ||
41 | |||
42 | class ThemeCtrl: public wxPanel | ||
43 | { | ||
44 | DECLARE_DYNAMIC_CLASS(ThemeCtrl) | ||
45 | DECLARE_EVENT_TABLE() | ||
46 | public: | ||
47 | enum { | ||
48 | ID_DESC = 10001, | ||
49 | ID_FILESIZE= 10002, | ||
50 | ID_INSTALLCHECKBOX= 10003, | ||
51 | ID_PREVIEW_BITMAP = 10004, | ||
52 | ID_THEME_LST = 10005, | ||
53 | ID_THEME_SELECT_ALL = 10006 | ||
54 | }; //End of Enum | ||
55 | |||
56 | public: | ||
57 | // Constructors | ||
58 | ThemeCtrl() { Init(); } | ||
59 | ThemeCtrl(wxWindow* parent, wxWindowID id, | ||
60 | const wxPoint& pos = wxDefaultPosition, | ||
61 | const wxSize& size = wxDefaultSize, | ||
62 | long style = wxNO_BORDER|wxTAB_TRAVERSAL, | ||
63 | const wxString title = wxT("")) | ||
64 | { | ||
65 | Init(); | ||
66 | Create(parent, id, pos, size, style, title); | ||
67 | } | ||
68 | // Creation | ||
69 | bool Create(wxWindow* parent, wxWindowID id, | ||
70 | const wxPoint& pos = wxDefaultPosition, | ||
71 | const wxSize& size = wxDefaultSize, | ||
72 | long style = wxNO_BORDER|wxTAB_TRAVERSAL, | ||
73 | const wxString title = wxT("")); | ||
74 | |||
75 | // Creates the controls and sizers | ||
76 | void CreateControls(); | ||
77 | // Common initialization | ||
78 | void Init(); | ||
79 | // Event handlers | ||
80 | void OnThemesLst(wxCommandEvent& event); | ||
81 | void OnSelectAll(wxCommandEvent& event); | ||
82 | void OnCheckBox(wxCommandEvent& event); | ||
83 | |||
84 | void setDevice(wxString device); | ||
85 | wxArrayString getThemesToInstall(); | ||
86 | |||
87 | protected: | ||
88 | void ThemePreview(void); | ||
89 | |||
90 | wxString m_currentimage; | ||
91 | wxString m_currentResolution; | ||
92 | |||
93 | wxStaticText* m_desc; | ||
94 | wxListBox* m_themeList; | ||
95 | wxButton* m_selectAllThemes; | ||
96 | wxStaticText* m_size; | ||
97 | wxTextCtrl* m_themedesc; | ||
98 | ImageCtrl* m_PreviewBitmap; | ||
99 | |||
100 | wxArrayString m_Themes; | ||
101 | wxArrayString m_Themes_path; | ||
102 | wxArrayString m_Themes_size; | ||
103 | wxArrayString m_Themes_image; | ||
104 | wxArrayString m_Themes_desc; | ||
105 | |||
106 | }; | ||
107 | |||
108 | class OkCancelCtrl: public wxPanel | ||
109 | { | ||
110 | DECLARE_DYNAMIC_CLASS(OkCancelCtrl) | ||
111 | DECLARE_EVENT_TABLE() | ||
112 | |||
113 | public: | ||
114 | // Constructors | ||
115 | OkCancelCtrl() { Init(); } | ||
116 | OkCancelCtrl(wxWindow* parent, wxWindowID id, | ||
117 | const wxPoint& pos = wxDefaultPosition, | ||
118 | const wxSize& size = wxDefaultSize, | ||
119 | long style = wxNO_BORDER|wxTAB_TRAVERSAL, | ||
120 | const wxString title = wxT("")) | ||
121 | { | ||
122 | Init(); | ||
123 | Create(parent, id, pos, size, style, title); | ||
124 | } | ||
125 | // Creation | ||
126 | bool Create(wxWindow* parent, wxWindowID id, | ||
127 | const wxPoint& pos = wxDefaultPosition, | ||
128 | const wxSize& size = wxDefaultSize, | ||
129 | long style = wxNO_BORDER|wxTAB_TRAVERSAL, | ||
130 | const wxString title = wxT("")); | ||
131 | |||
132 | // Creates the controls and sizers | ||
133 | void CreateControls(); | ||
134 | // Common initialization | ||
135 | void Init() { } | ||
136 | |||
137 | protected: | ||
138 | wxButton* m_OkBtn; | ||
139 | wxButton* m_CancelBtn; | ||
140 | |||
141 | }; | ||
142 | |||
143 | class DeviceSelectorCtrl: public wxPanel | ||
144 | { | ||
145 | DECLARE_DYNAMIC_CLASS(DeviceSelectorCtrl) | ||
146 | DECLARE_EVENT_TABLE() | ||
147 | public: | ||
148 | enum { | ||
149 | ID_DEVICE_CBX = 10001, | ||
150 | ID_AUTODETECT_BTN= 10002, | ||
151 | }; //End of Enum | ||
152 | |||
153 | public: | ||
154 | // Constructors | ||
155 | DeviceSelectorCtrl() { } | ||
156 | DeviceSelectorCtrl(wxWindow* parent, wxWindowID id, | ||
157 | const wxPoint& pos = wxDefaultPosition, | ||
158 | const wxSize& size = wxDefaultSize, | ||
159 | long style = wxNO_BORDER|wxTAB_TRAVERSAL, | ||
160 | const wxString title = wxT("")) | ||
161 | { | ||
162 | Create(parent, id, pos, size, style, title); | ||
163 | } | ||
164 | // Creation | ||
165 | bool Create(wxWindow* parent, wxWindowID id, | ||
166 | const wxPoint& pos = wxDefaultPosition, | ||
167 | const wxSize& size = wxDefaultSize, | ||
168 | long style = wxNO_BORDER|wxTAB_TRAVERSAL, | ||
169 | const wxString title = wxT("")); | ||
170 | |||
171 | // Creates the controls and sizers | ||
172 | void CreateControls(); | ||
173 | // Event handlers | ||
174 | void OnAutoDetect(wxCommandEvent& event); | ||
175 | void OnComboBox(wxCommandEvent& event); | ||
176 | // Accessors | ||
177 | wxString getDevice(); | ||
178 | void setDefault(); | ||
179 | |||
180 | bool AutoDetect(); | ||
181 | |||
182 | protected: | ||
183 | wxString m_currentDevice; | ||
184 | wxComboBox* m_deviceCbx; | ||
185 | wxStaticText* m_desc; | ||
186 | wxButton* m_autodetectBtn; | ||
187 | |||
188 | }; | ||
189 | |||
190 | |||
191 | class DevicePositionCtrl: public wxPanel | ||
192 | { | ||
193 | DECLARE_DYNAMIC_CLASS(DevicePositionCtrl) | ||
194 | DECLARE_EVENT_TABLE() | ||
195 | public: | ||
196 | enum { | ||
197 | ID_BROWSE_BTN = 10003, | ||
198 | }; //End of Enum | ||
199 | |||
200 | public: | ||
201 | // Constructors | ||
202 | DevicePositionCtrl() { Init(); } | ||
203 | DevicePositionCtrl(wxWindow* parent, wxWindowID id, | ||
204 | const wxPoint& pos = wxDefaultPosition, | ||
205 | const wxSize& size = wxDefaultSize, | ||
206 | long style = wxNO_BORDER|wxTAB_TRAVERSAL, | ||
207 | const wxString title = wxT("")) | ||
208 | { | ||
209 | Init(); | ||
210 | Create(parent, id, pos, size, style, title); | ||
211 | } | ||
212 | // Creation | ||
213 | bool Create(wxWindow* parent, wxWindowID id, | ||
214 | const wxPoint& pos = wxDefaultPosition, | ||
215 | const wxSize& size = wxDefaultSize, | ||
216 | long style = wxNO_BORDER|wxTAB_TRAVERSAL, | ||
217 | const wxString title = wxT("")); | ||
218 | |||
219 | // Creates the controls and sizers | ||
220 | void CreateControls(); | ||
221 | // Common initialization | ||
222 | void Init() { } | ||
223 | // Event handlers | ||
224 | void OnBrowseBtn(wxCommandEvent& event); | ||
225 | // Accessors | ||
226 | wxString getDevicePos(); | ||
227 | |||
228 | void setDefault(); | ||
229 | |||
230 | protected: | ||
231 | wxTextCtrl* m_devicePos; | ||
232 | wxStaticText* m_desc; | ||
233 | wxButton* m_browseBtn; | ||
234 | |||
235 | }; | ||
236 | |||
237 | |||
238 | class FirmwarePositionCtrl: public wxPanel | ||
239 | { | ||
240 | DECLARE_DYNAMIC_CLASS(FirmwarePositionCtrl) | ||
241 | DECLARE_EVENT_TABLE() | ||
242 | public: | ||
243 | enum { | ||
244 | ID_BROWSE_BTN = 10004, | ||
245 | }; //End of Enum | ||
246 | |||
247 | public: | ||
248 | // Constructors | ||
249 | FirmwarePositionCtrl() { Init(); } | ||
250 | FirmwarePositionCtrl(wxWindow* parent, wxWindowID id, | ||
251 | const wxPoint& pos = wxDefaultPosition, | ||
252 | const wxSize& size = wxDefaultSize, | ||
253 | long style = wxNO_BORDER|wxTAB_TRAVERSAL, | ||
254 | const wxString title = wxT("")) | ||
255 | { | ||
256 | Init(); | ||
257 | Create(parent, id, pos, size, style, title); | ||
258 | } | ||
259 | // Creation | ||
260 | bool Create(wxWindow* parent, wxWindowID id, | ||
261 | const wxPoint& pos = wxDefaultPosition, | ||
262 | const wxSize& size = wxDefaultSize, | ||
263 | long style = wxNO_BORDER|wxTAB_TRAVERSAL, | ||
264 | const wxString title = wxT("")); | ||
265 | |||
266 | // Creates the controls and sizers | ||
267 | void CreateControls(); | ||
268 | // Common initialization | ||
269 | void Init() { } | ||
270 | // Event handlers | ||
271 | void OnBrowseBtn(wxCommandEvent& event); | ||
272 | // Accessors | ||
273 | wxString getFirmwarePos(); | ||
274 | void setDefault(); | ||
275 | |||
276 | protected: | ||
277 | wxTextCtrl* m_firmwarePos; | ||
278 | wxStaticText* m_desc; | ||
279 | wxButton* m_browseBtn; | ||
280 | |||
281 | }; | ||
282 | |||
283 | |||
284 | |||
285 | #endif | ||
286 | |||
diff --git a/rbutil/rbutilFrm.cpp b/rbutil/rbutilFrm.cpp deleted file mode 100644 index 306f955d46..0000000000 --- a/rbutil/rbutilFrm.cpp +++ /dev/null | |||
@@ -1,1164 +0,0 @@ | |||
1 | /*************************************************************************** | ||
2 | * __________ __ ___. | ||
3 | * Open \______ \ ____ ____ | | _\_ |__ _______ ___ | ||
4 | * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / | ||
5 | * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | ||
6 | * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | ||
7 | * \/ \/ \/ \/ \/ | ||
8 | * Module: rbutil | ||
9 | * File: rbutilFrm.cpp | ||
10 | * | ||
11 | * Copyright (C) 2005 Christi Alice Scarborough | ||
12 | * | ||
13 | * All files in this archive are subject to the GNU General Public License. | ||
14 | * See the file COPYING in the source tree root for full license agreement. | ||
15 | * | ||
16 | * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY | ||
17 | * KIND, either express or implied. | ||
18 | * | ||
19 | ****************************************************************************/ | ||
20 | |||
21 | #include "rbutilFrm.h" | ||
22 | #include "credits.h" | ||
23 | |||
24 | #include "rbutilFrm_XPM.xpm" | ||
25 | #include "icons/rbinstall_btn.h" | ||
26 | #include "icons/remrb_btn.h" | ||
27 | #include "icons/font_btn.h" | ||
28 | #include "icons/bootloader_btn.h" | ||
29 | #include "icons/rembootloader_btn.h" | ||
30 | #include "icons/themes_btn.h" | ||
31 | #include "icons/doom_btn.h" | ||
32 | #include "icons/talkfile_btn.h" | ||
33 | |||
34 | #include "rblogo.xpm" | ||
35 | |||
36 | #include "bootloaders.h" | ||
37 | #include "install_dialogs.h" | ||
38 | |||
39 | |||
40 | |||
41 | //---------------------------------------------------------------------------- | ||
42 | // rbutilFrm | ||
43 | //---------------------------------------------------------------------------- | ||
44 | |||
45 | BEGIN_EVENT_TABLE(rbutilFrm,wxFrame) | ||
46 | EVT_BUTTON (ID_INSTALL_BTN, rbutilFrm::OnInstallBtn) | ||
47 | EVT_BUTTON (ID_REMOVE_BTN, rbutilFrm::OnRemoveBtn) | ||
48 | EVT_BUTTON (ID_FONT_BTN, rbutilFrm::OnFontBtn) | ||
49 | EVT_BUTTON (ID_THEMES_BTN, rbutilFrm::OnThemesBtn) | ||
50 | EVT_BUTTON (ID_BOOTLOADER_BTN, rbutilFrm::OnBootloaderBtn) | ||
51 | EVT_BUTTON (ID_BOOTLOADERREMOVE_BTN, rbutilFrm::OnBootloaderRemoveBtn) | ||
52 | EVT_BUTTON (ID_DOOM_BTN, rbutilFrm::OnDoomBtn) | ||
53 | EVT_BUTTON (ID_TALK_BTN, rbutilFrm::OnTalkBtn) | ||
54 | |||
55 | EVT_CLOSE(rbutilFrm::rbutilFrmClose) | ||
56 | EVT_MENU(ID_FILE_EXIT, rbutilFrm::OnFileExit) | ||
57 | EVT_MENU(ID_FILE_ABOUT, rbutilFrm::OnFileAbout) | ||
58 | EVT_MENU(ID_FILE_WIPECACHE, rbutilFrm::OnFileWipeCache) | ||
59 | EVT_MENU(ID_PORTABLE_INSTALL, rbutilFrm::OnPortableInstall) | ||
60 | |||
61 | EVT_MENU(ID_FILE_PROXY, rbutilFrm::OnFileProxy) | ||
62 | |||
63 | EVT_UPDATE_UI (ID_MANUAL, rbutilFrm::OnManualUpdate) | ||
64 | |||
65 | END_EVENT_TABLE() | ||
66 | |||
67 | rbutilFrm::rbutilFrm( wxWindow *parent, wxWindowID id, const wxString &title, | ||
68 | const wxPoint &position, const wxSize& size, long style ) | ||
69 | : wxFrame( parent, id, title, position, size, style) | ||
70 | { | ||
71 | wxLogVerbose(wxT("=== begin rbutilFrm::rbutilFrm(...)")); | ||
72 | CreateGUIControls(); | ||
73 | wxLogVerbose(wxT("=== end rbutilFrm::rbutilFrm")); | ||
74 | } | ||
75 | |||
76 | rbutilFrm::~rbutilFrm() {} | ||
77 | |||
78 | void rbutilFrm::CreateGUIControls(void) | ||
79 | { | ||
80 | wxLogVerbose(wxT("=== begin rbutilFrm::CreateGUIControls()")); | ||
81 | |||
82 | wxBoxSizer* WxBoxSizer1 = new wxBoxSizer(wxVERTICAL); | ||
83 | this->SetSizer(WxBoxSizer1); | ||
84 | this->SetAutoLayout(TRUE); | ||
85 | |||
86 | wxPanel* mainPanel = new wxPanel(this,wxID_ANY); | ||
87 | WxBoxSizer1->Add(mainPanel,1,wxGROW|wxALL,0); | ||
88 | wxBoxSizer* WxBoxSizer0 = new wxBoxSizer(wxVERTICAL); | ||
89 | mainPanel->SetSizer(WxBoxSizer0); | ||
90 | mainPanel->SetAutoLayout(TRUE); | ||
91 | |||
92 | wxBitmap rockboxbmp(rblogo_xpm); | ||
93 | ImageCtrl* rockboxbmpCtrl = new ImageCtrl(mainPanel,wxID_ANY); | ||
94 | rockboxbmpCtrl->SetBitmap(rockboxbmp); | ||
95 | |||
96 | WxBoxSizer0->Add(rockboxbmpCtrl,0,wxALIGN_CENTER_HORIZONTAL | wxALL,5); | ||
97 | |||
98 | myDeviceSelector = new DeviceSelectorCtrl(mainPanel,wxID_ANY); | ||
99 | myDeviceSelector->setDefault(); | ||
100 | myDeviceSelector->AutoDetect(); | ||
101 | WxBoxSizer0->Add(myDeviceSelector,0,wxGROW|wxALL,5); | ||
102 | |||
103 | |||
104 | wxNotebook* tabwindow = new wxNotebook(mainPanel,wxID_ANY); | ||
105 | WxBoxSizer0->Add(tabwindow,1,wxGROW|wxALL,5); | ||
106 | |||
107 | wxPanel* installpage = new wxPanel(tabwindow,wxID_ANY); | ||
108 | wxPanel* themepage = new wxPanel(tabwindow,wxID_ANY); | ||
109 | wxPanel* uninstallpage = new wxPanel(tabwindow,wxID_ANY); | ||
110 | wxPanel* manualpage = new wxPanel(tabwindow,wxID_ANY); | ||
111 | tabwindow->AddPage(installpage,wxT("Installation"),true); | ||
112 | tabwindow->AddPage(themepage,wxT("Extras")); | ||
113 | tabwindow->AddPage(uninstallpage,wxT("Uninstallation")); | ||
114 | tabwindow->AddPage(manualpage,wxT("Manual")); | ||
115 | |||
116 | /********************* | ||
117 | Install Page | ||
118 | ***********************/ | ||
119 | |||
120 | wxBoxSizer* WxBoxSizer2 = new wxBoxSizer(wxVERTICAL); | ||
121 | installpage->SetSizer(WxBoxSizer2); | ||
122 | installpage->SetAutoLayout(TRUE); | ||
123 | |||
124 | wxStaticBox* WxStaticBoxSizer3_StaticBoxObj = new wxStaticBox(installpage, | ||
125 | wxID_ANY, wxT("Please choose an option")); | ||
126 | wxStaticBoxSizer* WxStaticBoxSizer3 = | ||
127 | new wxStaticBoxSizer(WxStaticBoxSizer3_StaticBoxObj,wxHORIZONTAL); | ||
128 | WxBoxSizer2->Add(WxStaticBoxSizer3,1,wxALIGN_CENTER_HORIZONTAL|wxGROW | wxALL, 5); | ||
129 | |||
130 | wxFlexGridSizer* WxFlexGridSizer1 = new wxFlexGridSizer(2,2,0,0); | ||
131 | WxStaticBoxSizer3->Add(WxFlexGridSizer1,0,wxGROW | wxALL,0); | ||
132 | |||
133 | |||
134 | wxBitmap BootloaderInstallButton (wxGetBitmapFromMemory(bootloader_btn_png,bootloader_btn_png_length)); | ||
135 | WxBitmapButton4 = new wxBitmapButton(installpage, ID_BOOTLOADER_BTN, | ||
136 | BootloaderInstallButton, wxPoint(0,0), wxSize(64,54), | ||
137 | wxRAISED_BORDER | wxBU_AUTODRAW, wxDefaultValidator,wxT("Bootloader Installation")); | ||
138 | WxBitmapButton4->SetToolTip(wxT("Click here to install the Rockbox bootloader")); | ||
139 | WxFlexGridSizer1->Add(WxBitmapButton4, 0, | ||
140 | wxALIGN_CENTER_HORIZONTAL | wxALIGN_CENTER_VERTICAL | wxALL,5); | ||
141 | |||
142 | wxStaticText* WxStaticText5 = new wxStaticText(installpage, wxID_ANY, | ||
143 | wxT("Bootloader installation\n\n" | ||
144 | "Before Rockbox can be installed on your audio player, you " | ||
145 | "may have to\ninstall a bootloader.\nThis is only necessary the first time " | ||
146 | "Rockbox is installed.")); | ||
147 | WxFlexGridSizer1->Add(WxStaticText5, 0, | ||
148 | wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL | wxALL,5); | ||
149 | |||
150 | wxBitmap WxBitmapButton1_BITMAP (wxGetBitmapFromMemory(rbinstall_btn_png,rbinstall_btn_png_length)); | ||
151 | WxBitmapButton1 = new wxBitmapButton(installpage, ID_INSTALL_BTN, | ||
152 | WxBitmapButton1_BITMAP, wxPoint(0,0), wxSize(64,54), | ||
153 | wxRAISED_BORDER | wxBU_AUTODRAW, wxDefaultValidator, | ||
154 | wxT("Rockbox Installation")); | ||
155 | WxBitmapButton1->SetToolTip(wxT("Click here to install Rockbox")); | ||
156 | WxFlexGridSizer1->Add(WxBitmapButton1,0, | ||
157 | wxALIGN_CENTER_HORIZONTAL | wxALIGN_CENTER_VERTICAL | wxALL,5); | ||
158 | |||
159 | WxStaticText2 = new wxStaticText(installpage, ID_WXSTATICTEXT2, | ||
160 | wxT("Install Rockbox on your audio player")); | ||
161 | WxFlexGridSizer1->Add(WxStaticText2,0, | ||
162 | wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL | wxALL,5); | ||
163 | |||
164 | /*********************+ | ||
165 | Extras Page | ||
166 | ***********************/ | ||
167 | |||
168 | wxBoxSizer* WxBoxSizer3 = new wxBoxSizer(wxVERTICAL); | ||
169 | themepage->SetSizer(WxBoxSizer3); | ||
170 | themepage->SetAutoLayout(TRUE); | ||
171 | |||
172 | wxStaticBox* WxStaticBoxSizer4_StaticBoxObj = new wxStaticBox(themepage, | ||
173 | wxID_ANY, wxT("Please choose an option")); | ||
174 | wxStaticBoxSizer* WxStaticBoxSizer4 = | ||
175 | new wxStaticBoxSizer(WxStaticBoxSizer4_StaticBoxObj,wxHORIZONTAL); | ||
176 | WxBoxSizer3->Add(WxStaticBoxSizer4,1,wxALIGN_CENTER_HORIZONTAL |wxGROW| wxALL, 5); | ||
177 | |||
178 | wxFlexGridSizer* WxFlexGridSizer2 = new wxFlexGridSizer(2,2,0,0); | ||
179 | WxStaticBoxSizer4->Add(WxFlexGridSizer2,0,wxGROW | wxALL,0); | ||
180 | |||
181 | wxBitmap FontInstallButton (wxGetBitmapFromMemory(font_btn_png,font_btn_png_length)); | ||
182 | WxBitmapButton3 = new wxBitmapButton(themepage, ID_FONT_BTN, | ||
183 | FontInstallButton, wxPoint(0,0), wxSize(64,54), | ||
184 | wxRAISED_BORDER | wxBU_AUTODRAW,wxDefaultValidator, wxT("Font installation")); | ||
185 | WxBitmapButton3->SetToolTip(wxT("Click here to install the most up to date " | ||
186 | "Rockbox fonts.")); | ||
187 | WxFlexGridSizer2->Add(WxBitmapButton3, 0, | ||
188 | wxALIGN_CENTER_HORIZONTAL | wxALIGN_CENTER_VERTICAL | wxALL,5); | ||
189 | |||
190 | wxStaticText* WxStaticText4 = new wxStaticText(themepage, wxID_ANY, | ||
191 | wxT("Install the Rockbox fonts package\n\n" | ||
192 | "This step is needed for many Themes. You " | ||
193 | "will not need to download these\nagain unless you uninstall " | ||
194 | "Rockbox.")); | ||
195 | WxFlexGridSizer2->Add(WxStaticText4, 0, | ||
196 | wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL | wxALL,5); | ||
197 | |||
198 | wxBitmap ThemesInstallButton (wxGetBitmapFromMemory(themes_btn_png,themes_btn_png_length)); | ||
199 | WxBitmapButton5 = new wxBitmapButton(themepage, ID_THEMES_BTN, | ||
200 | ThemesInstallButton, wxPoint(0,0), wxSize(64,54), | ||
201 | wxRAISED_BORDER | wxBU_AUTODRAW,wxDefaultValidator, wxT("Theme installation")); | ||
202 | WxBitmapButton5->SetToolTip(wxT("Click here to install themes for Rockbox.")); | ||
203 | WxFlexGridSizer2->Add(WxBitmapButton5, 0, | ||
204 | wxALIGN_CENTER_HORIZONTAL | wxALIGN_CENTER_VERTICAL | wxALL,5); | ||
205 | |||
206 | wxStaticText* WxStaticText6 = new wxStaticText(themepage, wxID_ANY, | ||
207 | wxT("Install more Themes for Rockbox.\n\n")); | ||
208 | WxFlexGridSizer2->Add(WxStaticText6, 0, | ||
209 | wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL | wxALL,5); | ||
210 | |||
211 | wxBitmap DoomInstallButton (wxGetBitmapFromMemory(doom_btn_png,doom_btn_png_length)); | ||
212 | WxBitmapButton6 = new wxBitmapButton(themepage, ID_DOOM_BTN, | ||
213 | DoomInstallButton, wxPoint(0,0), wxSize(64,54), | ||
214 | wxRAISED_BORDER | wxBU_AUTODRAW,wxDefaultValidator, wxT("Freedoom installation")); | ||
215 | WxBitmapButton6->SetToolTip(wxT("Click here to install the freedoom wad files.")); | ||
216 | WxFlexGridSizer2->Add(WxBitmapButton6, 0, | ||
217 | wxALIGN_CENTER_HORIZONTAL | wxALIGN_CENTER_VERTICAL | wxALL,5); | ||
218 | |||
219 | wxStaticText* WxStaticText7 = new wxStaticText(themepage, wxID_ANY, | ||
220 | wxT("Install the freedoom wad files.\n\n")); | ||
221 | WxFlexGridSizer2->Add(WxStaticText7, 0, | ||
222 | wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL | wxALL,5); | ||
223 | |||
224 | wxBitmap TalkInstallButton (wxGetBitmapFromMemory(talkfile_btn_png,talkfile_btn_png_length)); | ||
225 | WxBitmapButton7 = new wxBitmapButton(themepage, ID_TALK_BTN, | ||
226 | TalkInstallButton, wxPoint(0,0), wxSize(64,54), | ||
227 | wxRAISED_BORDER | wxBU_AUTODRAW,wxDefaultValidator, wxT("Create Talk Files")); | ||
228 | WxBitmapButton7->SetToolTip(wxT("Click here to create Talk files.")); | ||
229 | WxFlexGridSizer2->Add(WxBitmapButton7, 0, | ||
230 | wxALIGN_CENTER_HORIZONTAL | wxALIGN_CENTER_VERTICAL | wxALL,5); | ||
231 | |||
232 | wxStaticText* WxStaticText8 = new wxStaticText(themepage, wxID_ANY, | ||
233 | wxT("Create Talk Files.\n\n")); | ||
234 | WxFlexGridSizer2->Add(WxStaticText8, 0, | ||
235 | wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL | wxALL,5); | ||
236 | |||
237 | |||
238 | |||
239 | /*********************+ | ||
240 | Uninstall Page | ||
241 | ***********************/ | ||
242 | |||
243 | wxBoxSizer* WxBoxSizer4 = new wxBoxSizer(wxVERTICAL); | ||
244 | uninstallpage->SetSizer(WxBoxSizer4); | ||
245 | uninstallpage->SetAutoLayout(TRUE); | ||
246 | |||
247 | wxStaticBox* WxStaticBoxSizer5_StaticBoxObj = new wxStaticBox(uninstallpage, | ||
248 | wxID_ANY, wxT("Please choose an option")); | ||
249 | wxStaticBoxSizer* WxStaticBoxSizer5 = | ||
250 | new wxStaticBoxSizer(WxStaticBoxSizer5_StaticBoxObj,wxHORIZONTAL); | ||
251 | WxBoxSizer4->Add(WxStaticBoxSizer5,1,wxALIGN_CENTER_HORIZONTAL|wxGROW | wxALL, 5); | ||
252 | |||
253 | wxFlexGridSizer* WxFlexGridSizer3 = new wxFlexGridSizer(2,2,0,0); | ||
254 | WxStaticBoxSizer5->Add(WxFlexGridSizer3,0,wxGROW | wxALL,0); | ||
255 | |||
256 | wxBitmap WxBitmapButton2_BITMAP (wxGetBitmapFromMemory(remrb_btn_png,remrb_btn_png_length)); | ||
257 | WxBitmapButton2 = new wxBitmapButton(uninstallpage, ID_REMOVE_BTN, | ||
258 | WxBitmapButton2_BITMAP, wxPoint(0,0), wxSize(64,54), | ||
259 | wxRAISED_BORDER | wxBU_AUTODRAW,wxDefaultValidator, wxT("Rockbox uninstallation")); | ||
260 | WxBitmapButton2->SetToolTip(wxT("Click here to uninstall Rockbox")); | ||
261 | WxFlexGridSizer3->Add(WxBitmapButton2,0, | ||
262 | wxALIGN_CENTER_HORIZONTAL | wxALIGN_CENTER_VERTICAL | wxALL,5); | ||
263 | |||
264 | WxStaticText3 = new wxStaticText(uninstallpage, ID_WXSTATICTEXT3, | ||
265 | wxT("Remove Rockbox from your audio player")); | ||
266 | WxFlexGridSizer3->Add(WxStaticText3,0, | ||
267 | wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL | wxALL,5); | ||
268 | |||
269 | wxBitmap WxBitmapButton4_BITMAP (wxGetBitmapFromMemory(rembootloader_btn_png,rembootloader_btn_png_length)); | ||
270 | WxBitmapButton4 = new wxBitmapButton(uninstallpage, ID_BOOTLOADERREMOVE_BTN, | ||
271 | WxBitmapButton4_BITMAP, wxPoint(0,0), wxSize(64,54), | ||
272 | wxRAISED_BORDER | wxBU_AUTODRAW, wxDefaultValidator, | ||
273 | wxT("Bootloader uninstallation")); | ||
274 | WxBitmapButton4->SetToolTip(wxT("Click here to uninstall the Bootloader")); | ||
275 | WxFlexGridSizer3->Add(WxBitmapButton4,0, | ||
276 | wxALIGN_CENTER_HORIZONTAL | wxALIGN_CENTER_VERTICAL | wxALL,5); | ||
277 | |||
278 | WxStaticText4 = new wxStaticText(uninstallpage, ID_WXSTATICTEXT4, | ||
279 | wxT("Remove Rockbox Bootloader from your audio player")); | ||
280 | WxFlexGridSizer3->Add(WxStaticText4,0, | ||
281 | wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL | wxALL,5); | ||
282 | |||
283 | |||
284 | /***************** | ||
285 | * Manual Page | ||
286 | ******************/ | ||
287 | |||
288 | wxBoxSizer* WxBoxSizer5 = new wxBoxSizer(wxVERTICAL); | ||
289 | manualpage->SetSizer(WxBoxSizer5); | ||
290 | manualpage->SetAutoLayout(TRUE); | ||
291 | |||
292 | manuallink = new wxHyperlinkCtrl(manualpage,wxID_ANY,wxT("Rockbox PDF Manual"),wxT("http://www.rockbox.org")); | ||
293 | WxBoxSizer5->Add(manuallink,1,wxGROW | wxALL, 5); | ||
294 | |||
295 | manual =new wxHtmlWindow(manualpage,ID_MANUAL); | ||
296 | WxBoxSizer5->Add(manual,10,wxGROW | wxALL, 5); | ||
297 | |||
298 | |||
299 | /********** | ||
300 | ** rest of the controls | ||
301 | **********/ | ||
302 | |||
303 | WxMenuBar1 = new wxMenuBar(); | ||
304 | wxMenu *ID_FILE_MENU_Mnu_Obj = new wxMenu(0); | ||
305 | WxMenuBar1->Append(ID_FILE_MENU_Mnu_Obj, wxT("&File")); | ||
306 | |||
307 | ID_FILE_MENU_Mnu_Obj->Append(ID_FILE_WIPECACHE, | ||
308 | wxT("&Empty local download cache"), wxT(""), wxITEM_NORMAL); | ||
309 | if (! gv->portable ) | ||
310 | { | ||
311 | ID_FILE_MENU_Mnu_Obj->Append(ID_PORTABLE_INSTALL, | ||
312 | wxT("&Install Rockbox Utility on device"), wxT(""), wxITEM_NORMAL); | ||
313 | } | ||
314 | ID_FILE_MENU_Mnu_Obj->Append(ID_FILE_PROXY, wxT("Set &Proxy"), wxT(""), | ||
315 | wxITEM_NORMAL); | ||
316 | ID_FILE_MENU_Mnu_Obj->Append(ID_FILE_ABOUT, wxT("&About"), wxT(""), | ||
317 | wxITEM_NORMAL); | ||
318 | ID_FILE_MENU_Mnu_Obj->Append(ID_FILE_EXIT, wxT("E&xit\tCtrl+X"), wxT(""), | ||
319 | wxITEM_NORMAL); | ||
320 | |||
321 | this->SetMenuBar(WxMenuBar1); | ||
322 | Layout(); | ||
323 | GetSizer()->Fit(this); | ||
324 | GetSizer()->SetSizeHints(this); | ||
325 | if (gv->portable) | ||
326 | { | ||
327 | this->SetTitle(wxT("Rockbox Utility (portable)")); | ||
328 | } else | ||
329 | { | ||
330 | this->SetTitle(wxT("Rockbox Utility")); | ||
331 | } | ||
332 | this->Center(); | ||
333 | wxIcon rbutilFrm_ICON (rbutilFrm_XPM); | ||
334 | this->SetIcon(rbutilFrm_XPM); | ||
335 | this->SetToolTip(wxT("Install Rockbox")); | ||
336 | |||
337 | wxLogVerbose(wxT("=== end rbutilFrm::CreateGUIControls")); | ||
338 | } | ||
339 | |||
340 | void rbutilFrm::OnManualUpdate(wxUpdateUIEvent& event) | ||
341 | { | ||
342 | wxString tmp = wxT("/rockbox-") + gv->curplat; | ||
343 | |||
344 | int index = GetDeviceId(false); | ||
345 | if(index < 0) { | ||
346 | curManualDevice = tmp; | ||
347 | wxString pdflink; | ||
348 | pdflink = gv->manual_url; | ||
349 | manuallink->SetURL(pdflink); | ||
350 | manual->SetPage(wxT("<p><b>no device selected</b> — " | ||
351 | "You can find an overview of available manuals at " | ||
352 | "<a href='http://www.rockbox.org/manual.shtml'>" | ||
353 | "http://www.rockbox.org/manual.shtml</a></p>")); | ||
354 | return; | ||
355 | } | ||
356 | |||
357 | if(gv->plat_manualname[index] != wxT("")) | ||
358 | tmp = wxT("/") + gv->plat_manualname[index]; | ||
359 | |||
360 | if( tmp == curManualDevice) | ||
361 | return; | ||
362 | |||
363 | curManualDevice = tmp; | ||
364 | |||
365 | // construct link to pdf | ||
366 | wxString pdflink; | ||
367 | pdflink = gv->manual_url + tmp + wxT(".pdf"); | ||
368 | manuallink->SetURL(pdflink); | ||
369 | |||
370 | // construct link to html | ||
371 | wxString htmllink; | ||
372 | htmllink = gv->manual_url + tmp + wxT("/rockbox-build.html"); | ||
373 | if(gv->proxy_url == wxT("")) | ||
374 | if(manual->LoadPage(htmllink)) return; | ||
375 | manual->SetPage(wxT("<p>unable to display manual —" | ||
376 | "please use the PDF link above</p>")); | ||
377 | |||
378 | |||
379 | } | ||
380 | |||
381 | |||
382 | void rbutilFrm::OnFileProxy(wxCommandEvent& event) | ||
383 | { | ||
384 | |||
385 | wxTextEntryDialog proxydlg(this,wxT("Please enter your Proxy in the Format: URL:PORT"),wxT("Proxy Configuration"), gv->proxy_url); | ||
386 | |||
387 | if(proxydlg.ShowModal() == wxID_OK) | ||
388 | { | ||
389 | gv->proxy_url = proxydlg.GetValue(); | ||
390 | } | ||
391 | |||
392 | } | ||
393 | |||
394 | |||
395 | void rbutilFrm::rbutilFrmClose(wxCloseEvent& event) | ||
396 | { | ||
397 | wxLogVerbose(wxT("=== begin rbutilFrm::rbutilFrmClose(event)")); | ||
398 | Destroy(); | ||
399 | wxLogVerbose(wxT("=== end rbutilFrm::rbutilFrmClose")); | ||
400 | } | ||
401 | |||
402 | |||
403 | |||
404 | /* | ||
405 | * OnFileExit | ||
406 | */ | ||
407 | void rbutilFrm::OnFileExit(wxCommandEvent& event) | ||
408 | { | ||
409 | wxLogVerbose(wxT("=== begin rbutilFrm::OnFileExit(event)")); | ||
410 | Close(); | ||
411 | wxLogVerbose(wxT("=== end rbutilFrm::OnFileExit")); | ||
412 | } | ||
413 | |||
414 | // The routines this code uses are in the wxWidgets documentation, but | ||
415 | // not yet the library (2.7.0-1). This code can be re-enabled later. | ||
416 | |||
417 | void rbutilFrm::OnFileAbout(wxCommandEvent& event) | ||
418 | { | ||
419 | /* | ||
420 | wxAboutDialogInfo *info = new wxAboutDialogInfo(); | ||
421 | |||
422 | info->SetName(wxT(RBUTIL_FULLNAME)); | ||
423 | info->SetVersion(wxT(RBUTIL_VERSION)); | ||
424 | info->SetCopyright(wxT(RBUTIL_COPYRIGHT)); | ||
425 | info->SetDescription(wxT(RBUTIL_DESCRIPTION)); | ||
426 | info->SetWebSite(wxT(RBUTIL_WEBSITE)); | ||
427 | |||
428 | long i = 0; | ||
429 | while (rbutil_developers[i] != "") | ||
430 | { | ||
431 | info->AddDeveloper(wxT(rbutil_developers[i++])); | ||
432 | } | ||
433 | |||
434 | wxAboutBox(*info); | ||
435 | delete info; | ||
436 | */ | ||
437 | |||
438 | AboutDlg(this).ShowModal(); | ||
439 | } | ||
440 | |||
441 | void rbutilFrm::OnFileWipeCache(wxCommandEvent& event) | ||
442 | { | ||
443 | wxString cacheloc, datadir; | ||
444 | |||
445 | datadir = gv->stdpaths->GetUserDataDir(); | ||
446 | if (datadir == wxT("")) | ||
447 | { | ||
448 | ERR_DIALOG(wxT("Can't locate user data directory. Unable to delete " | ||
449 | "cache."), wxT("Delete download cache.") ); | ||
450 | return; | ||
451 | } | ||
452 | |||
453 | cacheloc = datadir + wxT("" PATH_SEP "download"); | ||
454 | |||
455 | if (! rm_rf(cacheloc) ) | ||
456 | { | ||
457 | wxMessageDialog* msg = new wxMessageDialog(this, wxT("Local download cache has been deleted.") | ||
458 | , wxT("Cache deletion"), wxOK |wxICON_INFORMATION); | ||
459 | msg->ShowModal(); | ||
460 | delete msg; | ||
461 | } | ||
462 | else { | ||
463 | MESG_DIALOG(wxT("Errors occured deleting the local download cache.")); | ||
464 | } | ||
465 | |||
466 | wxMkdir(cacheloc, 0777); | ||
467 | } | ||
468 | |||
469 | void rbutilFrm::OnBootloaderRemoveBtn(wxCommandEvent& event) | ||
470 | { | ||
471 | wxLogVerbose(wxT("=== begin rbutilFrm::OnBootloaderRemoveBtn(event)")); | ||
472 | |||
473 | int index = GetDeviceId(true); | ||
474 | if(index < 0) | ||
475 | return; | ||
476 | |||
477 | wxString bootloadermethod = gv->plat_bootloadermethod[index]; | ||
478 | |||
479 | if(!gv->plat_needsbootloader[index]) | ||
480 | { | ||
481 | WARN_DIALOG(wxT("This Device doesnt need a Bootloader"), | ||
482 | wxT("Bootloader")); | ||
483 | return; | ||
484 | } | ||
485 | |||
486 | // really deinstall ? | ||
487 | wxMessageDialog msg(this,wxT("Do you really want to deinstall the Bootloader ?"),wxT("Bootloader deinstallation"),wxOK|wxCANCEL); | ||
488 | if(msg.ShowModal() != wxID_OK ) | ||
489 | return; | ||
490 | |||
491 | |||
492 | if(bootloadermethod == wxT("ipodpatcher")) | ||
493 | { | ||
494 | wxString bootloadername = wxT("bootloader-"); | ||
495 | bootloadername.Append(gv->plat_bootloadername[index] ); | ||
496 | if(ipodpatcher(BOOTLOADER_REM,bootloadername)) | ||
497 | { | ||
498 | MESG_DIALOG(wxT("The Bootloader has been uninstalled.") ); | ||
499 | } | ||
500 | else | ||
501 | { | ||
502 | MESG_DIALOG(wxT("The Uninstallation failed.") ); | ||
503 | } | ||
504 | } | ||
505 | else if(bootloadermethod == wxT("sansapatcher")) | ||
506 | { | ||
507 | if(sansapatcher(BOOTLOADER_REM,gv->plat_bootloadername[index])) | ||
508 | { | ||
509 | MESG_DIALOG(wxT("The Bootloader has been uninstalled.") ); | ||
510 | } | ||
511 | else | ||
512 | { | ||
513 | MESG_DIALOG(wxT("The Uninstallation failed.") ); | ||
514 | } | ||
515 | } | ||
516 | else if(bootloadermethod== wxT("gigabeatf")) | ||
517 | { | ||
518 | |||
519 | if(gigabeatf(BOOTLOADER_REM,gv->plat_bootloadername[index],gv->curdestdir)) | ||
520 | { | ||
521 | MESG_DIALOG(wxT("The Bootloader has been uninstalled.")); | ||
522 | } | ||
523 | else | ||
524 | MESG_DIALOG(wxT("The Uninstallation failed.") ); | ||
525 | } | ||
526 | else if(bootloadermethod == wxT("iaudio") ) | ||
527 | { | ||
528 | MESG_DIALOG(wxT("To uninstall the Bootloader on this Device,\n" | ||
529 | "you need to download and install an Original Firmware from the Manufacturer.")); | ||
530 | } | ||
531 | else if(bootloadermethod == wxT("fwpatcher")) | ||
532 | { | ||
533 | MESG_DIALOG(wxT("To uninstall the Bootloader on this Device,\n" | ||
534 | "you need to download and install an original Firmware from the Manufacturer.\n" | ||
535 | "To do this, you need to boot into the original Firmware.")); | ||
536 | } | ||
537 | else if(bootloadermethod == wxT("h10")) | ||
538 | { | ||
539 | if(h10(BOOTLOADER_REM,gv->plat_bootloadername[index],gv->curdestdir)) | ||
540 | { | ||
541 | MESG_DIALOG(wxT("The Bootloader has been uninstalled.")); | ||
542 | } | ||
543 | else | ||
544 | MESG_DIALOG(wxT("The Uninstallation failed.") ); | ||
545 | } | ||
546 | else | ||
547 | { | ||
548 | MESG_DIALOG(wxT("Unsupported Bootloader Uninstall method.") ); | ||
549 | } | ||
550 | |||
551 | wxLogVerbose(wxT("=== end rbutilFrm::OnBootloaderRemoveBtn")); | ||
552 | } | ||
553 | |||
554 | void rbutilFrm::OnBootloaderBtn(wxCommandEvent& event) | ||
555 | { | ||
556 | wxLogVerbose(wxT("=== begin rbutilFrm::OnBootloaderBtn(event)")); | ||
557 | |||
558 | int index = GetDeviceId(true); | ||
559 | if(index < 0) | ||
560 | return; | ||
561 | |||
562 | wxString bootloadermethod = gv->plat_bootloadermethod[index]; | ||
563 | |||
564 | if(!gv->plat_needsbootloader[index]) | ||
565 | { | ||
566 | WARN_DIALOG(wxT("This Device doesnt need a Bootloader"), | ||
567 | wxT("Bootloader")); | ||
568 | return; | ||
569 | } | ||
570 | |||
571 | // Bootloader dialog | ||
572 | if(bootloadermethod != wxT("ipodpatcher") && bootloadermethod != wxT("sansapatcher") ) | ||
573 | { | ||
574 | bootloaderInstallDlg dialog(NULL, wxID_ANY,wxT("Bootloader Installation")); | ||
575 | if (dialog.ShowModal() != wxID_OK) | ||
576 | return; | ||
577 | } | ||
578 | |||
579 | // really install ? | ||
580 | wxMessageDialog msg(this,wxT("Do you really want to install the Bootloader ?"),wxT("Bootloader installation"),wxOK|wxCANCEL); | ||
581 | if(msg.ShowModal() != wxID_OK ) | ||
582 | return; | ||
583 | |||
584 | |||
585 | if(bootloadermethod == wxT("ipodpatcher")) | ||
586 | { | ||
587 | wxString bootloadername = wxT("bootloader-"); | ||
588 | bootloadername.Append(gv->plat_bootloadername[index] ); | ||
589 | if(ipodpatcher(BOOTLOADER_ADD,bootloadername)) | ||
590 | { | ||
591 | MESG_DIALOG(wxT("The Bootloader has been installed on your device.") ); | ||
592 | } | ||
593 | else | ||
594 | { | ||
595 | MESG_DIALOG(wxT("The installation has failed.") ); | ||
596 | } | ||
597 | } | ||
598 | else if(bootloadermethod == wxT("sansapatcher")) | ||
599 | { | ||
600 | if(sansapatcher(BOOTLOADER_ADD,gv->plat_bootloadername[index])) | ||
601 | { | ||
602 | MESG_DIALOG(wxT("The Bootloader has been installed on your device.") ); | ||
603 | } | ||
604 | else | ||
605 | { | ||
606 | MESG_DIALOG(wxT("The installation has failed.") ); | ||
607 | } | ||
608 | |||
609 | } | ||
610 | else if(bootloadermethod== wxT("gigabeatf")) | ||
611 | { | ||
612 | |||
613 | if(gigabeatf(BOOTLOADER_ADD,gv->plat_bootloadername[index],gv->curdestdir)) | ||
614 | { | ||
615 | MESG_DIALOG(wxT("The Bootloader has been installed on your device.")); | ||
616 | } | ||
617 | else | ||
618 | MESG_DIALOG(wxT("The installation has failed.") ); | ||
619 | } | ||
620 | else if(bootloadermethod == wxT("iaudio") ) | ||
621 | { | ||
622 | if(iaudiox5(BOOTLOADER_ADD,gv->plat_bootloadername[index],gv->curdestdir)) | ||
623 | { | ||
624 | MESG_DIALOG(wxT("The Bootloader has been installed on your device.\n" | ||
625 | "Now turn OFF your Device, unplug USB,and insert Charger\n" | ||
626 | "Your Device will automatically upgrade the flash with the Rockbox bootloader")); | ||
627 | } | ||
628 | else | ||
629 | MESG_DIALOG(wxT("The installation has failed.") ); | ||
630 | } | ||
631 | else if(bootloadermethod == wxT("fwpatcher")) | ||
632 | { | ||
633 | if(fwpatcher(BOOTLOADER_ADD,gv->plat_bootloadername[index],gv->curdestdir,gv->curfirmware)) | ||
634 | { | ||
635 | MESG_DIALOG(wxT("The Bootloader has been patched and copied on your device.\n" | ||
636 | "Now use the Firmware upgrade option of your Device\n")); | ||
637 | } | ||
638 | else | ||
639 | MESG_DIALOG(wxT("The installation has failed.") ); | ||
640 | } | ||
641 | else if(bootloadermethod == wxT("h10")) | ||
642 | { | ||
643 | if(h10(BOOTLOADER_ADD,gv->plat_bootloadername[index],gv->curdestdir)) | ||
644 | { | ||
645 | MESG_DIALOG(wxT("The Bootloader has been patched and copied on your device.\n")); | ||
646 | } | ||
647 | else | ||
648 | MESG_DIALOG(wxT("The installation has failed.") ); | ||
649 | } | ||
650 | else | ||
651 | { | ||
652 | MESG_DIALOG(wxT("Unsupported Bootloader Install method.") ); | ||
653 | } | ||
654 | |||
655 | |||
656 | |||
657 | wxLogVerbose(wxT("=== end rbutilFrm::OnBootloaderBtn")); | ||
658 | |||
659 | } | ||
660 | |||
661 | void rbutilFrm::OnInstallBtn(wxCommandEvent& event) | ||
662 | { | ||
663 | wxString src, dest, buf; | ||
664 | wxDateTime date; | ||
665 | wxTimeSpan day(24); | ||
666 | wxLogVerbose(wxT("=== begin rbutilFrm::OnInstallBtn(event)")); | ||
667 | wxFileSystem fs; | ||
668 | wxFileConfig* buildinfo; | ||
669 | wxDateSpan oneday; | ||
670 | |||
671 | int index = GetDeviceId(true); | ||
672 | if(index < 0) | ||
673 | return; | ||
674 | |||
675 | // rockbox install dialog | ||
676 | rockboxInstallDlg dialog(NULL, wxID_ANY, | ||
677 | wxT("Rockbox Installation")); | ||
678 | if (dialog.ShowModal() != wxID_OK) | ||
679 | return; | ||
680 | |||
681 | // really install | ||
682 | wxMessageDialog msg(this,wxT("Do you really want to install Rockbox ?"),wxT("rockbox installation"),wxOK|wxCANCEL); | ||
683 | if(msg.ShowModal() != wxID_OK ) | ||
684 | return; | ||
685 | |||
686 | |||
687 | switch (gv->curbuild) | ||
688 | { | ||
689 | case BUILD_RELEASE: | ||
690 | // This is a URL - don't use PATH_SEP | ||
691 | src = gv->download_url + gv->prog_name + wxT("-") | ||
692 | + gv->last_release + wxT("-") + gv->curplat + wxT(".zip"); | ||
693 | dest = gv->stdpaths->GetUserDataDir() + wxT("download" PATH_SEP) | ||
694 | + gv->prog_name + wxT("-") + gv->last_release + wxT("-") | ||
695 | + gv->curplat + wxT(".zip"); | ||
696 | break; | ||
697 | case BUILD_DAILY: | ||
698 | dest = gv->stdpaths->GetUserDataDir() | ||
699 | + PATH_SEP + wxT("download") + PATH_SEP + wxT("build-info"); | ||
700 | if (DownloadURL(gv->server_conf_url, dest)) { | ||
701 | WARN_DIALOG(wxT("Unable to download build status."), | ||
702 | wxT("Install")); | ||
703 | buf = wxT(""); | ||
704 | } else | ||
705 | { | ||
706 | buildinfo = new wxFileConfig(wxEmptyString, | ||
707 | wxEmptyString, dest); | ||
708 | buf = buildinfo->Read(wxT("/dailies/date")); | ||
709 | buildinfo->DeleteAll(); | ||
710 | |||
711 | if (buf.Len() != 8) { | ||
712 | dest = wxT("Invalid build date: ") + buf; | ||
713 | WARN_DIALOG(dest, wxT("Install")); | ||
714 | buf = wxT(""); | ||
715 | } | ||
716 | } | ||
717 | |||
718 | if (buf == wxT("")) { | ||
719 | WARN_DIALOG(wxT("Can't get date of latest build from " | ||
720 | "server. Using yesterday's date."), wxT("Install") ); | ||
721 | date = wxDateTime::Now(); | ||
722 | date.Subtract(oneday.Day()); | ||
723 | buf = date.Format(wxT("%Y%m%d")); // yes, we want UTC | ||
724 | } | ||
725 | |||
726 | src = gv->daily_url + gv->curplat + wxT("/") + gv->prog_name | ||
727 | + wxT("-") + gv->curplat + wxT("-") + buf + wxT(".zip"); | ||
728 | |||
729 | dest = gv->stdpaths->GetUserDataDir() + PATH_SEP wxT("download") | ||
730 | + gv->prog_name + wxT("-") + gv->curplat + wxT("-") | ||
731 | + buf + wxT(".zip"); | ||
732 | break; | ||
733 | case BUILD_BLEEDING: | ||
734 | src = gv->bleeding_url + gv->curplat + wxT("/") | ||
735 | + gv->prog_name + wxT(".zip"); | ||
736 | dest = gv->stdpaths->GetUserDataDir() | ||
737 | + PATH_SEP wxT("download") PATH_SEP | ||
738 | + gv->prog_name + wxT(".zip"); | ||
739 | break; | ||
740 | default: | ||
741 | ERR_DIALOG(wxT("Something seriously odd has happened."), | ||
742 | wxT("Install")); | ||
743 | return; | ||
744 | break; | ||
745 | } | ||
746 | |||
747 | if (gv->nocache || ( ! wxFileExists(dest) ) ) | ||
748 | { | ||
749 | if ( DownloadURL(src, dest) ) | ||
750 | { | ||
751 | wxRemoveFile(dest); | ||
752 | ERR_DIALOG(wxT("Unable to download ")+src, wxT("Install")); | ||
753 | return; | ||
754 | } | ||
755 | } | ||
756 | |||
757 | if ( !UnzipFile(dest, gv->curdestdir, true) ) | ||
758 | { | ||
759 | wxMessageDialog* msg = new wxMessageDialog(this, wxT("Rockbox has been installed on your device.") | ||
760 | ,wxT("Installation"), wxOK |wxICON_INFORMATION); | ||
761 | msg->ShowModal(); | ||
762 | delete msg; | ||
763 | } else | ||
764 | { | ||
765 | wxRemoveFile(dest); | ||
766 | ERR_DIALOG(wxT("Unable to unzip ")+dest, wxT("Install")); | ||
767 | } | ||
768 | |||
769 | |||
770 | wxLogVerbose(wxT("=== end rbutilFrm::OnInstallBtn")); | ||
771 | } | ||
772 | |||
773 | void rbutilFrm::OnFontBtn(wxCommandEvent& event) | ||
774 | { | ||
775 | wxString src, dest, buf; | ||
776 | wxDateTime date; | ||
777 | wxTimeSpan day(24); | ||
778 | wxLogVerbose(wxT("=== begin rbutilFrm::OnFontBtn(event)")); | ||
779 | wxFileSystem fs; | ||
780 | wxFileConfig* buildinfo; | ||
781 | wxDateSpan oneday; | ||
782 | |||
783 | int index = GetDeviceId(true); | ||
784 | if(index < 0) | ||
785 | return; | ||
786 | |||
787 | // font install dialog | ||
788 | fontInstallDlg dialog(NULL, wxID_ANY, | ||
789 | wxT("Font Installation")); | ||
790 | if (dialog.ShowModal() != wxID_OK) | ||
791 | return; | ||
792 | |||
793 | // really install ? | ||
794 | wxMessageDialog msg(this,wxT("Do you really want to install the Fonts ?"),wxT("Font installation"),wxOK|wxCANCEL); | ||
795 | if(msg.ShowModal() != wxID_OK ) | ||
796 | return; | ||
797 | |||
798 | |||
799 | buf = gv->curdestdir + wxT("" PATH_SEP ".rockbox"); | ||
800 | if (! wxDirExists(buf) ) | ||
801 | { | ||
802 | WARN_DIALOG(wxT("Rockbox is not yet installed on ") + buf | ||
803 | + wxT(" - install Rockbox first."), | ||
804 | wxT("Can't install fonts") ); | ||
805 | return; | ||
806 | } | ||
807 | |||
808 | dest = gv->stdpaths->GetUserDataDir() | ||
809 | + wxT( "" PATH_SEP "download" PATH_SEP "build-info"); | ||
810 | if (DownloadURL(gv->server_conf_url, dest)) | ||
811 | { | ||
812 | WARN_DIALOG(wxT("Unable to download build status."), | ||
813 | wxT("Font Install")); | ||
814 | buf = wxT(""); | ||
815 | } else | ||
816 | { | ||
817 | buildinfo = new wxFileConfig(wxEmptyString, | ||
818 | wxEmptyString, dest); | ||
819 | buf = buildinfo->Read(wxT("/dailies/date")); | ||
820 | buildinfo->DeleteAll(); | ||
821 | |||
822 | if (buf.Len() != 8) { | ||
823 | WARN_DIALOG(wxT("Invalid build date: ") + buf, wxT("Font Install")); | ||
824 | buf = wxT(""); | ||
825 | } | ||
826 | } | ||
827 | |||
828 | if (buf == wxT("")) { | ||
829 | WARN_DIALOG(wxT("Can't get date of latest build from " | ||
830 | "server. Using yesterday's date."), | ||
831 | wxT("Font Install") ); | ||
832 | date = wxDateTime::Now(); | ||
833 | date.Subtract(oneday.Day()); | ||
834 | buf = date.Format(wxT("%Y%m%d")); // yes, we want UTC | ||
835 | } | ||
836 | |||
837 | src = gv->font_url + buf + wxT(".zip"); | ||
838 | |||
839 | dest = gv->stdpaths->GetUserDataDir() + wxT( "" PATH_SEP "download" | ||
840 | PATH_SEP "rockbox-fonts-") + buf + wxT(".zip"); | ||
841 | |||
842 | if ( ! wxFileExists(dest) ) | ||
843 | { | ||
844 | if ( DownloadURL(src, dest) ) | ||
845 | { | ||
846 | wxRemoveFile(dest); | ||
847 | ERR_DIALOG(wxT("Unable to download ") + src, wxT("Font Install")); | ||
848 | return; | ||
849 | } | ||
850 | } | ||
851 | |||
852 | if ( !UnzipFile(dest, gv->curdestdir, true) ) | ||
853 | { | ||
854 | wxMessageDialog* msg = new wxMessageDialog(this, wxT("The Rockbox fonts have been installed on your device.") | ||
855 | ,wxT("Installation"), wxOK |wxICON_INFORMATION); | ||
856 | msg->ShowModal(); | ||
857 | delete msg; | ||
858 | } else | ||
859 | { | ||
860 | wxRemoveFile(dest); | ||
861 | ERR_DIALOG(wxT("Unable to unzip ") + dest, wxT("Font Install")); | ||
862 | } | ||
863 | |||
864 | wxLogVerbose(wxT("=== end rbutilFrm::OnFontBtn")); | ||
865 | } | ||
866 | |||
867 | void rbutilFrm::OnDoomBtn(wxCommandEvent& event) | ||
868 | { | ||
869 | wxString src, dest, buf; | ||
870 | wxLogVerbose(wxT("=== begin rbutilFrm::OnDoomBtn(event)")); | ||
871 | |||
872 | int index = GetDeviceId(true); | ||
873 | if(index < 0) | ||
874 | return; | ||
875 | |||
876 | // font install dialog, reused | ||
877 | fontInstallDlg dialog(NULL, wxID_ANY, | ||
878 | wxT("Freedoom wad file Installation")); | ||
879 | if (dialog.ShowModal() != wxID_OK) | ||
880 | return; | ||
881 | |||
882 | // really install ? | ||
883 | wxMessageDialog msg(this,wxT("Do you really want to install the Freedoom wads ?"),wxT("Freedoom installation"),wxOK|wxCANCEL); | ||
884 | if(msg.ShowModal() != wxID_OK ) | ||
885 | return; | ||
886 | |||
887 | buf = gv->curdestdir + wxT("" PATH_SEP ".rockbox"); | ||
888 | if (! wxDirExists(buf) ) | ||
889 | { | ||
890 | WARN_DIALOG(wxT("Rockbox is not yet installed on ") + buf | ||
891 | + wxT(" - install Rockbox first."), | ||
892 | wxT("Can't install freedoom wads") ); | ||
893 | return; | ||
894 | } | ||
895 | |||
896 | src = gv->doom_url; | ||
897 | |||
898 | dest = gv->stdpaths->GetUserDataDir() + wxT("" PATH_SEP "download" PATH_SEP | ||
899 | "rockdoom.zip"); | ||
900 | |||
901 | if ( ! wxFileExists(dest) ) | ||
902 | { | ||
903 | if ( DownloadURL(src, dest) ) | ||
904 | { | ||
905 | wxRemoveFile(dest); | ||
906 | ERR_DIALOG(wxT("Unable to download ") + src, | ||
907 | wxT("Freedoom Install")); | ||
908 | return; | ||
909 | } | ||
910 | } | ||
911 | |||
912 | if ( !UnzipFile(dest, gv->curdestdir, true) ) | ||
913 | { | ||
914 | wxMessageDialog* msg = new wxMessageDialog(this, wxT("The Freedoom wads have been installed on your device.") | ||
915 | ,wxT("Installation"), wxOK |wxICON_INFORMATION); | ||
916 | msg->ShowModal(); | ||
917 | delete msg; | ||
918 | } else | ||
919 | { | ||
920 | wxRemoveFile(dest); | ||
921 | ERR_DIALOG(wxT("Unable to unzip ") + dest, wxT("Freedoom Install")); | ||
922 | } | ||
923 | |||
924 | |||
925 | wxLogVerbose(wxT("=== end rbutilFrm::OnDoomBtn")); | ||
926 | } | ||
927 | |||
928 | |||
929 | void rbutilFrm::OnThemesBtn(wxCommandEvent& event) | ||
930 | { | ||
931 | wxString src, dest, buf; | ||
932 | wxLogVerbose(wxT("=== begin rbutilFrm::OnThemesBtn(event)")); | ||
933 | |||
934 | int index = GetDeviceId(true); | ||
935 | if(index < 0) | ||
936 | return; | ||
937 | |||
938 | // Theme install dialog | ||
939 | themesInstallDlg dialog(NULL, wxID_ANY, | ||
940 | wxT("Theme Installation")); | ||
941 | if (dialog.ShowModal() != wxID_OK) | ||
942 | return; | ||
943 | |||
944 | // really install ? | ||
945 | wxMessageDialog msg(this,wxT("Do you really want to install the selected Themes ?"),wxT("Theme installation"),wxOK|wxCANCEL); | ||
946 | if(msg.ShowModal() != wxID_OK ) | ||
947 | return; | ||
948 | |||
949 | bool success=true; | ||
950 | for(unsigned int i=0 ;i < gv->themesToInstall.GetCount();i++) | ||
951 | { | ||
952 | if(!InstallTheme(gv->themesToInstall[i])) | ||
953 | { | ||
954 | MESG_DIALOG(wxT("The Themes installation has failed") ); | ||
955 | success=false; | ||
956 | break; | ||
957 | } | ||
958 | } | ||
959 | if(success) | ||
960 | { | ||
961 | MESG_DIALOG(wxT("The Theme installation completed successfully.") ); | ||
962 | } | ||
963 | |||
964 | |||
965 | wxLogVerbose(wxT("=== end rbutilFrm::OnThemesBtn(event)")); | ||
966 | } | ||
967 | |||
968 | |||
969 | void rbutilFrm::OnRemoveBtn(wxCommandEvent& event) | ||
970 | { | ||
971 | wxLogVerbose(wxT("=== begin rbutilFrm::OnRemoveBtn(event)")); | ||
972 | |||
973 | int index = GetDeviceId(true); | ||
974 | if(index < 0) | ||
975 | return; | ||
976 | |||
977 | // Rockbox deinstall dialog | ||
978 | rockboxDeInstallDlg dialog(NULL, wxID_ANY, | ||
979 | wxT("Rockbox Deinstallation")); | ||
980 | if (dialog.ShowModal() != wxID_OK) | ||
981 | return; | ||
982 | |||
983 | // really install ? | ||
984 | wxMessageDialog msg(this,wxT("Do you really want to deinstall Rockbox ?"),wxT("Rockbox deinstallation"),wxOK|wxCANCEL); | ||
985 | if(msg.ShowModal() != wxID_OK ) | ||
986 | return; | ||
987 | |||
988 | |||
989 | if (Uninstall(gv->curdestdir, gv->curisfull) ) | ||
990 | { | ||
991 | MESG_DIALOG( | ||
992 | wxT("The uninstallation wizard was cancelled or completed with " | ||
993 | "some errors.") ); | ||
994 | } else { | ||
995 | wxMessageDialog* msg = new wxMessageDialog(this, wxT("The uninstall wizard completed successfully\n" | ||
996 | "Depending on which Device you own, you also have to uninstall the Bootloader") | ||
997 | ,wxT("Uninstallation"), wxOK |wxICON_INFORMATION); | ||
998 | msg->ShowModal(); | ||
999 | delete msg; | ||
1000 | } | ||
1001 | |||
1002 | wxLogVerbose(wxT("=== end rbutilFrm::OnRemoveBtn")); | ||
1003 | } | ||
1004 | |||
1005 | void rbutilFrm::OnPortableInstall(wxCommandEvent& event) | ||
1006 | { | ||
1007 | wxString src, dest, buf; | ||
1008 | wxLogVerbose(wxT("=== begin rbutilFrm::OnPortableInstall(event)")); | ||
1009 | wxFileSystem fs; | ||
1010 | wxDateSpan oneday; | ||
1011 | |||
1012 | int index = GetDeviceId(true); | ||
1013 | if(index < 0) | ||
1014 | return; | ||
1015 | |||
1016 | //portable install dialog ( reused font dialog) | ||
1017 | fontInstallDlg dialog(NULL, wxID_ANY, | ||
1018 | wxT("Rockbox Utility Portable Installation")); | ||
1019 | if (dialog.ShowModal() != wxID_OK) | ||
1020 | return; | ||
1021 | |||
1022 | // really install ? | ||
1023 | wxMessageDialog msg(this,wxT("Do you really want a portable install of rbutil ?"),wxT("rbutil installation"),wxOK|wxCANCEL); | ||
1024 | if(msg.ShowModal() != wxID_OK ) | ||
1025 | return; | ||
1026 | |||
1027 | if ( InstallRbutil(gv->curdestdir) ) | ||
1028 | { | ||
1029 | MESG_DIALOG(wxT("The Rockbox Utility has been installed on your device.")); | ||
1030 | |||
1031 | } else | ||
1032 | { | ||
1033 | ERR_DIALOG(wxT("Installation failed"), wxT("Portable Install")); | ||
1034 | } | ||
1035 | |||
1036 | wxLogVerbose(wxT("=== end rbutilFrm::OnUnstallPortable")); | ||
1037 | } | ||
1038 | |||
1039 | void rbutilFrm::OnTalkBtn(wxCommandEvent& event) | ||
1040 | { | ||
1041 | wxLogVerbose(wxT("=== begin rbutilFrm::OnTalkBtn(event)")); | ||
1042 | |||
1043 | TalkFileCreator talk; | ||
1044 | |||
1045 | talkInstallDlg dialog(&talk,NULL,wxID_ANY); | ||
1046 | |||
1047 | if (dialog.ShowModal() != wxID_OK) | ||
1048 | return; | ||
1049 | |||
1050 | // really install ? | ||
1051 | wxMessageDialog msg(this,wxT("Do you really want to create Talkfiles ?"),wxT("Talk file creation"),wxOK|wxCANCEL); | ||
1052 | if(msg.ShowModal() != wxID_OK ) | ||
1053 | return; | ||
1054 | |||
1055 | if(talk.createTalkFiles()) | ||
1056 | { | ||
1057 | MESG_DIALOG(wxT("Talk files have been successfully created.")); | ||
1058 | } | ||
1059 | else | ||
1060 | { | ||
1061 | ERR_DIALOG(wxT("Talkfile creation failed"), wxT("Talk file creation")); | ||
1062 | } | ||
1063 | |||
1064 | wxLogVerbose(wxT("=== end rbutilFrm::OnTalkBtn")); | ||
1065 | } | ||
1066 | |||
1067 | int rbutilFrm::GetDeviceId(bool detect) | ||
1068 | { | ||
1069 | int index = gv->plat_id.Index(gv->curplat); | ||
1070 | if(index < 0 && detect) | ||
1071 | { | ||
1072 | if( wxMessageBox(wxT("No device selected. Do you want to autodetect " | ||
1073 | "the device?"), | ||
1074 | wxT("Warning"), wxYES_NO ) == wxYES ) | ||
1075 | { | ||
1076 | myDeviceSelector->AutoDetect(); | ||
1077 | index = gv->plat_id.Index(gv->curplat); | ||
1078 | if(index < 0) | ||
1079 | { | ||
1080 | WARN_DIALOG( wxT("Aborting"), wxT("Auto detection failed") ); | ||
1081 | return index; | ||
1082 | } | ||
1083 | else | ||
1084 | { | ||
1085 | if( wxMessageBox(wxT("Found ") + gv->plat_name[index] + | ||
1086 | wxT(". Do you want to continue?"), | ||
1087 | wxT("Device found"), wxYES_NO ) == wxYES ) | ||
1088 | return index; | ||
1089 | else | ||
1090 | return -1; | ||
1091 | } | ||
1092 | } | ||
1093 | else | ||
1094 | { | ||
1095 | return -1; | ||
1096 | } | ||
1097 | } | ||
1098 | return index; | ||
1099 | } | ||
1100 | |||
1101 | AboutDlg::AboutDlg(rbutilFrm* parent) | ||
1102 | : wxDialog(parent, -1, wxT("About"), wxDefaultPosition, wxDefaultSize, | ||
1103 | wxDEFAULT_DIALOG_STYLE) | ||
1104 | { | ||
1105 | wxBoxSizer* WxBoxSizer1 = new wxBoxSizer(wxVERTICAL); | ||
1106 | this->SetSizer(WxBoxSizer1); | ||
1107 | this->SetAutoLayout(TRUE); | ||
1108 | |||
1109 | wxBoxSizer* WxBoxSizer2 = new wxBoxSizer(wxHORIZONTAL); | ||
1110 | |||
1111 | wxBitmap WxBitmap1 = wxBitmap(rbutilFrm_XPM); | ||
1112 | wxStaticBitmap* WxStaticBitmap1 = new wxStaticBitmap(this, wxID_ANY, | ||
1113 | WxBitmap1); | ||
1114 | WxBoxSizer2->Add(WxStaticBitmap1, 0, wxALL | wxCENTER, 5); | ||
1115 | |||
1116 | wxStaticText* WxStaticText1 = new wxStaticText(this, wxID_ANY, | ||
1117 | wxT(RBUTIL_FULLNAME), wxDefaultPosition, wxDefaultSize, | ||
1118 | wxALIGN_CENTER | wxST_NO_AUTORESIZE ); | ||
1119 | WxBoxSizer2->Add(WxStaticText1, 0, wxALL | wxCENTER, 5); | ||
1120 | WxBoxSizer1->Add(WxBoxSizer2, 0, wxALL, 5); | ||
1121 | |||
1122 | wxStaticText* WxStaticText2 = new wxStaticText(this, wxID_ANY, | ||
1123 | wxT(RBUTIL_VERSION "\n" RBUTIL_DESCRIPTION "\n\n" RBUTIL_COPYRIGHT)); | ||
1124 | WxStaticText2->Wrap(400); | ||
1125 | WxBoxSizer1->Add(WxStaticText2, 0, wxALL, 5); | ||
1126 | |||
1127 | wxHyperlinkCtrl* WxHyperlink1 = new wxHyperlinkCtrl(this, wxID_ANY, | ||
1128 | wxT(RBUTIL_WEBSITE), wxT(RBUTIL_WEBSITE) ); | ||
1129 | WxBoxSizer1->Add(WxHyperlink1, 0, wxALL, 5); | ||
1130 | |||
1131 | wxStaticBox* WxStaticBox1 = new wxStaticBox(this, wxID_ANY, wxT("Contributors:")); | ||
1132 | wxStaticBoxSizer* WxStaticBoxSizer2 = new wxStaticBoxSizer(WxStaticBox1, | ||
1133 | wxVERTICAL); | ||
1134 | wxTextCtrl* WxTextCtrl1 = new wxTextCtrl(this, wxID_ANY, wxEmptyString, | ||
1135 | wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE | wxTE_READONLY); | ||
1136 | |||
1137 | long i = 0; | ||
1138 | while ( rbutil_developers[i] != wxT("")) | ||
1139 | { | ||
1140 | WxTextCtrl1->AppendText(rbutil_developers[i++]); | ||
1141 | WxTextCtrl1->AppendText(wxT("\n")); | ||
1142 | } | ||
1143 | |||
1144 | WxBoxSizer1->Add(WxStaticBoxSizer2, 1, wxGROW | wxALL, 5); | ||
1145 | WxStaticBoxSizer2->Add(WxTextCtrl1, 1, wxGROW | wxALL, 0); | ||
1146 | |||
1147 | wxStdDialogButtonSizer* WxStdDialogButtonSizer1 = new wxStdDialogButtonSizer(); | ||
1148 | wxButton* WxOKButton = new wxButton(this, wxID_OK); | ||
1149 | WxStdDialogButtonSizer1->AddButton(WxOKButton); | ||
1150 | WxStdDialogButtonSizer1->Realize(); | ||
1151 | |||
1152 | WxBoxSizer1->Add(WxStdDialogButtonSizer1, 0, wxALL | wxCENTER, 5); | ||
1153 | |||
1154 | GetSizer()->Fit(this); | ||
1155 | GetSizer()->SetSizeHints(this); | ||
1156 | |||
1157 | //this->Center(); | ||
1158 | this->Show(); | ||
1159 | |||
1160 | } | ||
1161 | |||
1162 | AboutDlg::~AboutDlg() | ||
1163 | { | ||
1164 | } | ||
diff --git a/rbutil/rbutilFrm.h b/rbutil/rbutilFrm.h deleted file mode 100644 index 7341323bd9..0000000000 --- a/rbutil/rbutilFrm.h +++ /dev/null | |||
@@ -1,135 +0,0 @@ | |||
1 | /*************************************************************************** | ||
2 | * __________ __ ___. | ||
3 | * Open \______ \ ____ ____ | | _\_ |__ _______ ___ | ||
4 | * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / | ||
5 | * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | ||
6 | * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | ||
7 | * \/ \/ \/ \/ \/ | ||
8 | * Module: rbutil | ||
9 | * File: rbutilFrm.h | ||
10 | * | ||
11 | * Copyright (C) 2005 Christi Alice Scarborough | ||
12 | * | ||
13 | * All files in this archive are subject to the GNU General Public License. | ||
14 | * See the file COPYING in the source tree root for full license agreement. | ||
15 | * | ||
16 | * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY | ||
17 | * KIND, either express or implied. | ||
18 | * | ||
19 | ****************************************************************************/ | ||
20 | |||
21 | #ifndef __rbutilFrm_HPP_ | ||
22 | #define __rbutilFrm_HPP_ | ||
23 | |||
24 | #include <wx/wxprec.h> | ||
25 | #ifdef __BORLANDC__ | ||
26 | #pragma hdrstop | ||
27 | #endif | ||
28 | #ifndef WX_PRECOMP | ||
29 | #include <wx/wx.h> | ||
30 | #endif | ||
31 | |||
32 | #include <wx/menu.h> | ||
33 | #include <wx/stattext.h> | ||
34 | #include <wx/bmpbuttn.h> | ||
35 | #include <wx/statbmp.h> | ||
36 | #include <wx/panel.h> | ||
37 | |||
38 | #include <wx/frame.h> | ||
39 | #include <wx/valgen.h> | ||
40 | //#include <wx/aboutdlg.h> | ||
41 | #include <wx/richtext/richtextctrl.h> | ||
42 | |||
43 | #include "rbutil.h" | ||
44 | #include "rbutilCtrls.h" | ||
45 | |||
46 | |||
47 | class rbutilFrm : public wxFrame | ||
48 | { | ||
49 | private: | ||
50 | DECLARE_EVENT_TABLE() | ||
51 | public: | ||
52 | rbutilFrm( wxWindow *parent, wxWindowID id = 1, | ||
53 | const wxString &title = wxT("Rockbox Utility"), | ||
54 | const wxPoint& pos = wxDefaultPosition, | ||
55 | const wxSize& size = wxDefaultSize, | ||
56 | long style = wxCAPTION | wxRESIZE_BORDER | wxSYSTEM_MENU | | ||
57 | wxMINIMIZE_BOX|wxMAXIMIZE_BOX | wxCLOSE_BOX); | ||
58 | virtual ~rbutilFrm(); | ||
59 | public: | ||
60 | DeviceSelectorCtrl* myDeviceSelector; | ||
61 | wxHyperlinkCtrl* manuallink; | ||
62 | wxHtmlWindow* manual; | ||
63 | wxString curManualDevice; | ||
64 | |||
65 | wxMenuBar *WxMenuBar1; | ||
66 | wxStaticText *WxStaticText3; | ||
67 | wxBitmapButton *WxBitmapButton2; | ||
68 | wxStaticText *WxStaticText2; | ||
69 | wxBitmapButton *WxBitmapButton1; | ||
70 | wxBitmapButton *WxBitmapButton3; | ||
71 | wxBitmapButton *WxBitmapButton4; | ||
72 | wxBitmapButton *WxBitmapButton5; | ||
73 | wxBitmapButton *WxBitmapButton6; | ||
74 | wxBitmapButton *WxBitmapButton7; | ||
75 | wxFlexGridSizer *WxFlexGridSizer1; | ||
76 | wxStaticBoxSizer *WxStaticBoxSizer3; | ||
77 | wxStaticBitmap *WxStaticBitmap1; | ||
78 | wxBoxSizer *WxBoxSizer2; | ||
79 | wxPanel *WxPanel1; | ||
80 | wxBoxSizer *WxBoxSizer1; | ||
81 | public: | ||
82 | enum { | ||
83 | ID_FILE_MENU = 1033, | ||
84 | ID_FILE_EXIT = 1034, | ||
85 | ID_FILE_ABOUT = 1035, | ||
86 | ID_FILE_WIPECACHE = 1036, | ||
87 | ID_PORTABLE_INSTALL = 1037, | ||
88 | |||
89 | ID_WXSTATICTEXT3 = 1032, | ||
90 | ID_WXSTATICTEXT4 = 1032, | ||
91 | ID_REMOVE_BTN = 1039, | ||
92 | ID_BOOTLOADERREMOVE_BTN = 1038, | ||
93 | ID_WXSTATICTEXT2 = 1029, | ||
94 | ID_INSTALL_BTN = 1028, | ||
95 | ID_WXSTATICBITMAP1 = 1053, | ||
96 | ID_FONT_BTN = 1128, | ||
97 | ID_THEMES_BTN = 1139, | ||
98 | ID_DOOM_BTN = 1140, | ||
99 | ID_TALK_BTN = 1141, | ||
100 | ID_BOOTLOADER_BTN = 1129, | ||
101 | ID_WXPANEL1 = 1064, | ||
102 | |||
103 | ID_MANUAL = 1065, | ||
104 | ID_FILE_PROXY = 1066, | ||
105 | |||
106 | ID_DUMMY_VALUE_ | ||
107 | }; //End of Enum | ||
108 | public: | ||
109 | void rbutilFrmClose(wxCloseEvent& event); | ||
110 | void CreateGUIControls(void); | ||
111 | void OnFileExit(wxCommandEvent& event); | ||
112 | void OnFileAbout(wxCommandEvent &event); | ||
113 | void OnFileWipeCache(wxCommandEvent &event); | ||
114 | void OnLocationBtn(wxCommandEvent& event); | ||
115 | void OnInstallBtn(wxCommandEvent& event); | ||
116 | void OnRemoveBtn(wxCommandEvent& event); | ||
117 | void OnFontBtn(wxCommandEvent& event); | ||
118 | void OnThemesBtn(wxCommandEvent& event); | ||
119 | void OnBootloaderBtn(wxCommandEvent& event); | ||
120 | void OnPortableInstall(wxCommandEvent& event); | ||
121 | void OnBootloaderRemoveBtn(wxCommandEvent& event); | ||
122 | void OnManualUpdate(wxUpdateUIEvent& event); | ||
123 | void OnFileProxy(wxCommandEvent& event); | ||
124 | void OnDoomBtn(wxCommandEvent& event); | ||
125 | void OnTalkBtn(wxCommandEvent& event); | ||
126 | |||
127 | int GetDeviceId(bool); | ||
128 | |||
129 | }; | ||
130 | |||
131 | #endif | ||
132 | |||
133 | |||
134 | |||
135 | |||
diff --git a/rbutil/rbutilFrm_XPM.xpm b/rbutil/rbutilFrm_XPM.xpm deleted file mode 100644 index 84d3d52444..0000000000 --- a/rbutil/rbutilFrm_XPM.xpm +++ /dev/null | |||
@@ -1,666 +0,0 @@ | |||
1 | /* rbutilFrm XPM */ | ||
2 | static char *rbutilFrm_XPM[]={ | ||
3 | "32 32 630 2", | ||
4 | " c None", | ||
5 | " 0 c #F7F8FD", | ||
6 | " 1 c #EBEEF5", | ||
7 | " 2 c #E4E9F8", | ||
8 | " 3 c #FAFCFE", | ||
9 | " 4 c #FAFBFD", | ||
10 | " 5 c #7085D8", | ||
11 | " 6 c #204DC6", | ||
12 | " 7 c #2350C7", | ||
13 | " 8 c #7C95D6", | ||
14 | " 9 c #F3F7FD", | ||
15 | " a c #8C9ED8", | ||
16 | " b c #1F4FD1", | ||
17 | " c c #2153D3", | ||
18 | " d c #1645BF", | ||
19 | " e c #001F94", | ||
20 | " f c #687AB7", | ||
21 | " g c #FFFFFE", | ||
22 | " h c #FCFCFD", | ||
23 | " i c #FDFDFE", | ||
24 | " j c #FEFEFE", | ||
25 | " k c #F4F6FC", | ||
26 | " l c #F5F7FC", | ||
27 | " m c #DEE2F6", | ||
28 | " n c #2B54CF", | ||
29 | " o c #1B4ECF", | ||
30 | " p c #1B4AC5", | ||
31 | " q c #153DB6", | ||
32 | " r c #062793", | ||
33 | " s c #7788B7", | ||
34 | " t c #D5D8E0", | ||
35 | " u c #DCDCE5", | ||
36 | " v c #E4E2EB", | ||
37 | " w c #E5E2E9", | ||
38 | " x c #F4F4F6", | ||
39 | " y c #F7F6F9", | ||
40 | " z c #F9F9FA", | ||
41 | " A c #FEFEFF", | ||
42 | " B c #C6CDF0", | ||
43 | " C c #6C86D4", | ||
44 | " D c #6989D4", | ||
45 | " E c #BECFED", | ||
46 | " F c #F9FAFE", | ||
47 | " G c #FEFFFF", | ||
48 | " H c #7F96D4", | ||
49 | " I c #0532B3", | ||
50 | " J c #1342BC", | ||
51 | " K c #1A48C2", | ||
52 | " L c #072BA3", | ||
53 | " M c #394C9D", | ||
54 | " N c #CCBEBC", | ||
55 | " O c #D7D0D0", | ||
56 | " P c #C4C4CE", | ||
57 | " Q c #B7BCC6", | ||
58 | " R c #B4B9C4", | ||
59 | " S c #C3C6D0", | ||
60 | " T c #D1D3DE", | ||
61 | " U c #D8DBE4", | ||
62 | " V c #DDDFE3", | ||
63 | " W c #9EA7D4", | ||
64 | " X c #3559C6", | ||
65 | " Y c #194BC4", | ||
66 | " Z c #1240B9", | ||
67 | " & c #002397", | ||
68 | "0 c #8191C7", | ||
69 | "00 c #FDFEFE", | ||
70 | "01 c #EEF1F9", | ||
71 | "02 c #3048A1", | ||
72 | "03 c #4B5B9A", | ||
73 | "04 c #4059A0", | ||
74 | "05 c #0B288B", | ||
75 | "06 c #16338B", | ||
76 | "07 c #A8ADBE", | ||
77 | "08 c #EDC5B8", | ||
78 | "09 c #E5BDAD", | ||
79 | "0a c #DAB6A6", | ||
80 | "0b c #D5B6A7", | ||
81 | "0c c #BDB0B3", | ||
82 | "0d c #AEB2C0", | ||
83 | "0e c #C7CBD7", | ||
84 | "0f c #D3D7DE", | ||
85 | "0g c #97A8C8", | ||
86 | "0h c #2E50B9", | ||
87 | "0i c #1D4ECC", | ||
88 | "0j c #184AC6", | ||
89 | "0k c #173EB1", | ||
90 | "0l c #08248F", | ||
91 | "0m c #000A5E", | ||
92 | "0n c #E0E0EB", | ||
93 | "0o c #F2F2F7", | ||
94 | "0p c #B7B4CC", | ||
95 | "0q c #FFFBFF", | ||
96 | "0r c #CED1E1", | ||
97 | "0s c #6B7588", | ||
98 | "0t c #6179B2", | ||
99 | "0u c #8198CD", | ||
100 | "0v c #97A3D6", | ||
101 | "0w c #9DAADB", | ||
102 | "0x c #A5AED1", | ||
103 | "0y c #C9C6D4", | ||
104 | "0z c #C5BEC3", | ||
105 | "0A c #C5CACC", | ||
106 | "0B c #C2C3C9", | ||
107 | "0C c #C7C5CA", | ||
108 | "0D c #627BBC", | ||
109 | "0E c #204CCC", | ||
110 | "0F c #1949C5", | ||
111 | "0G c #1746C1", | ||
112 | "0H c #1439AB", | ||
113 | "0I c #072282", | ||
114 | "0J c #080D53", | ||
115 | "0K c #CFCEE5", | ||
116 | "0L c #FAF9F9", | ||
117 | "0M c #F5F0F1", | ||
118 | "0N c #F7F9FD", | ||
119 | "0O c #BCBFCC", | ||
120 | "0P c #A9B4CB", | ||
121 | "0Q c #5474C9", | ||
122 | "0R c #6B6F83", | ||
123 | "0S c #757679", | ||
124 | "0T c #6B738C", | ||
125 | "0U c #6B78A2", | ||
126 | "0V c #6E81B2", | ||
127 | "0W c #778CB9", | ||
128 | "0X c #8E9DCC", | ||
129 | "0Y c #A3B2DD", | ||
130 | "0Z c #AFB8D6", | ||
131 | "0& c #2C4395", | ||
132 | "1 c #082887", | ||
133 | "10 c #0E3095", | ||
134 | "11 c #0F33A7", | ||
135 | "12 c #0C2C9C", | ||
136 | "13 c #071A67", | ||
137 | "14 c #191955", | ||
138 | "15 c #BEBDD9", | ||
139 | "16 c #EEEDF0", | ||
140 | "17 c #F9F8FB", | ||
141 | "18 c #D1D8E8", | ||
142 | "19 c #BBBEC3", | ||
143 | "1a c #889FE5", | ||
144 | "1b c #5C6994", | ||
145 | "1c c #918B6C", | ||
146 | "1d c #8C886D", | ||
147 | "1e c #8F846F", | ||
148 | "1f c #8F8471", | ||
149 | "1g c #878274", | ||
150 | "1h c #7E7C79", | ||
151 | "1i c #7B7B7E", | ||
152 | "1j c #5268AC", | ||
153 | "1k c #688AD7", | ||
154 | "1l c #798699", | ||
155 | "1m c #959AAC", | ||
156 | "1n c #9FA9C8", | ||
157 | "1o c #495181", | ||
158 | "1p c #0B1765", | ||
159 | "1q c #131455", | ||
160 | "1r c #161547", | ||
161 | "1s c #ACACC5", | ||
162 | "1t c #FBFAFB", | ||
163 | "1u c #EBE8ED", | ||
164 | "1v c #F7F8FF", | ||
165 | "1w c #B8BAC4", | ||
166 | "1x c #ACB5CB", | ||
167 | "1y c #5474C4", | ||
168 | "1z c #7E7B73", | ||
169 | "1A c #93896C", | ||
170 | "1B c #8A836C", | ||
171 | "1C c #8B846E", | ||
172 | "1D c #918870", | ||
173 | "1E c #928D70", | ||
174 | "1F c #958D71", | ||
175 | "1G c #968D73", | ||
176 | "1H c #4D6AB1", | ||
177 | "1I c #8399C5", | ||
178 | "1J c #C4C0B8", | ||
179 | "1K c #F8F7F7", | ||
180 | "1L c #EDF4FF", | ||
181 | "1M c #B0ABAA", | ||
182 | "1N c #353448", | ||
183 | "1O c #16134E", | ||
184 | "1P c #161638", | ||
185 | "1Q c #C5C5CC", | ||
186 | "1R c #EAE5EB", | ||
187 | "1S c #FAFBFF", | ||
188 | "1T c #D9DBED", | ||
189 | "1U c #B6B6BA", | ||
190 | "1V c #7F94D5", | ||
191 | "1W c #576895", | ||
192 | "1X c #98896B", | ||
193 | "1Y c #96886C", | ||
194 | "1Z c #95886B", | ||
195 | "1& c #93896D", | ||
196 | "2 c #8F8672", | ||
197 | "20 c #8A8673", | ||
198 | "21 c #948F6F", | ||
199 | "22 c #768092", | ||
200 | "23 c #5B7DD7", | ||
201 | "24 c #B3B5B8", | ||
202 | "25 c #D1CFD3", | ||
203 | "26 c #F7FFFF", | ||
204 | "27 c #C9D0DF", | ||
205 | "28 c #A09088", | ||
206 | "29 c #5B5255", | ||
207 | "2a c #3B3852", | ||
208 | "2b c #94949D", | ||
209 | "2c c #F8F8F9", | ||
210 | "2d c #EFEEF5", | ||
211 | "2e c #F5F9FF", | ||
212 | "2f c #B3B4C0", | ||
213 | "2g c #A0A9B2", | ||
214 | "2h c #4D78EB", | ||
215 | "2i c #3C63D6", | ||
216 | "2j c #5D72B4", | ||
217 | "2k c #6576A3", | ||
218 | "2l c #707B91", | ||
219 | "2m c #827F86", | ||
220 | "2n c #887F7B", | ||
221 | "2o c #8B8071", | ||
222 | "2p c #918871", | ||
223 | "2q c #5873B6", | ||
224 | "2r c #91A3D4", | ||
225 | "2s c #B9B7B5", | ||
226 | "2t c #EAF0F5", | ||
227 | "2u c #E8F2FC", | ||
228 | "2v c #B1AFBA", | ||
229 | "2w c #84736E", | ||
230 | "2x c #93807A", | ||
231 | "2y c #665E65", | ||
232 | "2z c #D8D9E2", | ||
233 | "2A c #EAEAEF", | ||
234 | "2B c #F8FAFE", | ||
235 | "2C c #D4DEF0", | ||
236 | "2D c #9C9C9F", | ||
237 | "2E c #6D81BE", | ||
238 | "2F c #436EE8", | ||
239 | "2G c #5E87ED", | ||
240 | "2H c #3867DA", | ||
241 | "2I c #4069DB", | ||
242 | "2J c #456CDF", | ||
243 | "2K c #4261D2", | ||
244 | "2L c #4663C3", | ||
245 | "2M c #5871BC", | ||
246 | "2N c #5C73B8", | ||
247 | "2O c #5D80D7", | ||
248 | "2P c #B2B6BB", | ||
249 | "2Q c #C3C3CE", | ||
250 | "2R c #FCFFFF", | ||
251 | "2S c #CFD9E9", | ||
252 | "2T c #9C8F8E", | ||
253 | "2U c #7C6E66", | ||
254 | "2V c #927C7C", | ||
255 | "2W c #83819D", | ||
256 | "2X c #FCFCFF", | ||
257 | "2Y c #F9F6FA", | ||
258 | "2Z c #ECEBF1", | ||
259 | "2& c #FBFFFF", | ||
260 | "3 c #B9BCC9", | ||
261 | "30 c #AAB0C3", | ||
262 | "31 c #4870EB", | ||
263 | "32 c #2B5DE1", | ||
264 | "33 c #4F72CE", | ||
265 | "34 c #3C62CB", | ||
266 | "35 c #4E73D6", | ||
267 | "36 c #5777DA", | ||
268 | "37 c #456ED4", | ||
269 | "38 c #7393E1", | ||
270 | "39 c #4D77F4", | ||
271 | "3a c #3060F1", | ||
272 | "3b c #7C94C8", | ||
273 | "3c c #A8A6A6", | ||
274 | "3d c #E6E9EF", | ||
275 | "3e c #EDFAFF", | ||
276 | "3f c #BBBDC7", | ||
277 | "3g c #8C7A74", | ||
278 | "3h c #827670", | ||
279 | "3i c #90847E", | ||
280 | "3j c #ECECF0", | ||
281 | "3k c #ECE5EC", | ||
282 | "3l c #DAE0EF", | ||
283 | "3m c #ACB0B3", | ||
284 | "3n c #869EDC", | ||
285 | "3o c #577EDE", | ||
286 | "3p c #B0C0E7", | ||
287 | "3q c #EFF4FF", | ||
288 | "3r c #E4EAFF", | ||
289 | "3s c #9EC0FC", | ||
290 | "3t c #3265E4", | ||
291 | "3u c #3366E5", | ||
292 | "3v c #4871DC", | ||
293 | "3w c #3660DB", | ||
294 | "3x c #5075E7", | ||
295 | "3y c #8C9097", | ||
296 | "3z c #B3B4B6", | ||
297 | "3A c #D8E4F1", | ||
298 | "3B c #A89A92", | ||
299 | "3C c #837069", | ||
300 | "3D c #91817A", | ||
301 | "3E c #E0DDD8", | ||
302 | "3F c #F8F5F6", | ||
303 | "3G c #F6F2F2", | ||
304 | "3H c #B9BCC7", | ||
305 | "3I c #A8ACC0", | ||
306 | "3J c #BBCCEC", | ||
307 | "3K c #F8F9FA", | ||
308 | "3L c #DCD3CD", | ||
309 | "3M c #EEECEF", | ||
310 | "3N c #D9D8D9", | ||
311 | "3O c #E2E4DB", | ||
312 | "3P c #A4BADE", | ||
313 | "3Q c #3161E4", | ||
314 | "3R c #5F85F4", | ||
315 | "3S c #6387ED", | ||
316 | "3T c #8597D5", | ||
317 | "3U c #A4A8AA", | ||
318 | "3V c #DEE2E9", | ||
319 | "3W c #F4FFFF", | ||
320 | "3X c #BEC3CC", | ||
321 | "3Y c #8D7C6F", | ||
322 | "3Z c #7A6D65", | ||
323 | "3& c #A2928E", | ||
324 | "4 c #FDFBFB", | ||
325 | "40 c #FCFCFE", | ||
326 | "41 c #D1D6EB", | ||
327 | "42 c #F7FAFD", | ||
328 | "43 c #B2B4C6", | ||
329 | "44 c #D0D4E4", | ||
330 | "45 c #F9FCFF", | ||
331 | "46 c #E7EBF4", | ||
332 | "47 c #C3C4CE", | ||
333 | "48 c #B6B3C1", | ||
334 | "49 c #989BA1", | ||
335 | "4a c #E7E7E4", | ||
336 | "4b c #E9ECF7", | ||
337 | "4c c #3B61D1", | ||
338 | "4d c #92A0D0", | ||
339 | "4e c #C7CACC", | ||
340 | "4f c #A0A6B2", | ||
341 | "4g c #B2B4BA", | ||
342 | "4h c #FAFFFF", | ||
343 | "4i c #E2EAF6", | ||
344 | "4j c #A9A3A4", | ||
345 | "4k c #7F6F64", | ||
346 | "4l c #85776E", | ||
347 | "4m c #CAC4C0", | ||
348 | "4n c #EAEDFA", | ||
349 | "4o c #5A80EA", | ||
350 | "4p c #2D64E7", | ||
351 | "4q c #4778E8", | ||
352 | "4r c #788FC7", | ||
353 | "4s c #B4B7CA", | ||
354 | "4t c #CBCCD7", | ||
355 | "4u c #E7EAE9", | ||
356 | "4v c #C6CDD5", | ||
357 | "4w c #AEB3B9", | ||
358 | "4x c #8A8C8B", | ||
359 | "4y c #C0C5C5", | ||
360 | "4z c #B8C4E3", | ||
361 | "4A c #2859CF", | ||
362 | "4B c #2855CD", | ||
363 | "4C c #7989A5", | ||
364 | "4D c #A4A69F", | ||
365 | "4E c #D6DAE0", | ||
366 | "4F c #CBD1DD", | ||
367 | "4G c #938781", | ||
368 | "4H c #84756D", | ||
369 | "4I c #9B8985", | ||
370 | "4J c #F6F3F2", | ||
371 | "4K c #F7F9FE", | ||
372 | "4L c #5C7CE7", | ||
373 | "4M c #205CF1", | ||
374 | "4N c #1C5DEA", | ||
375 | "4O c #0641C7", | ||
376 | "4P c #072DAA", | ||
377 | "4Q c #8593C5", | ||
378 | "4R c #B1B1B5", | ||
379 | "4S c #BCC0C2", | ||
380 | "4T c #F7FBFD", | ||
381 | "4U c #E3E3E1", | ||
382 | "4V c #C6BCA9", | ||
383 | "4W c #AAB4CC", | ||
384 | "4X c #4168D4", | ||
385 | "4Y c #7AA1DF", | ||
386 | "4Z c #9AB2E2", | ||
387 | "4& c #A4ADBD", | ||
388 | "5 c #BDB8BB", | ||
389 | "50 c #E8F4FE", | ||
390 | "51 c #B5B2B9", | ||
391 | "52 c #82736C", | ||
392 | "53 c #817770", | ||
393 | "54 c #BFB4B2", | ||
394 | "55 c #FFFEFE", | ||
395 | "56 c #9FB3ED", | ||
396 | "57 c #1857E7", | ||
397 | "58 c #185ADE", | ||
398 | "59 c #1656DD", | ||
399 | "5a c #1244C2", | ||
400 | "5b c #112D9F", | ||
401 | "5c c #959EC7", | ||
402 | "5d c #D0D1D3", | ||
403 | "5e c #A7AFB2", | ||
404 | "5f c #ACAEB5", | ||
405 | "5g c #B5B2B6", | ||
406 | "5h c #B0AEB5", | ||
407 | "5i c #948C8B", | ||
408 | "5j c #8990B2", | ||
409 | "5k c #7792D9", | ||
410 | "5l c #ABABB5", | ||
411 | "5m c #BAB5B4", | ||
412 | "5n c #8B95AE", | ||
413 | "5o c #A8B1D8", | ||
414 | "5p c #E7EEFF", | ||
415 | "5q c #D7DEE7", | ||
416 | "5r c #9E918A", | ||
417 | "5s c #80736A", | ||
418 | "5t c #898078", | ||
419 | "5u c #EBE9E8", | ||
420 | "5v c #EEF1FA", | ||
421 | "5w c #3262E5", | ||
422 | "5x c #1457E6", | ||
423 | "5y c #1653D9", | ||
424 | "5z c #1852D7", | ||
425 | "5A c #1039BB", | ||
426 | "5B c #2E46A6", | ||
427 | "5C c #BDC4CB", | ||
428 | "5D c #CECDD4", | ||
429 | "5E c #AEB4BF", | ||
430 | "5F c #A2A6B2", | ||
431 | "5G c #A4A3A7", | ||
432 | "5H c #ABADB5", | ||
433 | "5I c #C1C1CF", | ||
434 | "5J c #D4D0DE", | ||
435 | "5K c #DBD8E5", | ||
436 | "5L c #B7BAC3", | ||
437 | "5M c #586DB4", | ||
438 | "5N c #2A5BD4", | ||
439 | "5O c #2457CF", | ||
440 | "5P c #375FCF", | ||
441 | "5Q c #6F7AB3", | ||
442 | "5R c #8C7C77", | ||
443 | "5S c #928274", | ||
444 | "5T c #B4A6A2", | ||
445 | "5U c #FDFDFD", | ||
446 | "5V c #A6B3EA", | ||
447 | "5W c #1037B9", | ||
448 | "5X c #1C4CD1", | ||
449 | "5Y c #1E53DC", | ||
450 | "5Z c #1547CB", | ||
451 | "5& c #1331A4", | ||
452 | "6 c #7788BA", | ||
453 | "60 c #CBCBD3", | ||
454 | "61 c #C6C6D4", | ||
455 | "62 c #BABDCA", | ||
456 | "63 c #B5B9C7", | ||
457 | "64 c #BABDC7", | ||
458 | "65 c #AEB4C0", | ||
459 | "66 c #C8BBC1", | ||
460 | "67 c #C5BDC7", | ||
461 | "68 c #CDCDD0", | ||
462 | "69 c #6C7AB2", | ||
463 | "6a c #204ED0", | ||
464 | "6b c #1E53D9", | ||
465 | "6c c #164BC8", | ||
466 | "6d c #0C33B1", | ||
467 | "6e c #001B87", | ||
468 | "6f c #3F4877", | ||
469 | "6g c #8A7971", | ||
470 | "6h c #E2DDDA", | ||
471 | "6i c #4B5DA9", | ||
472 | "6j c #02126B", | ||
473 | "6k c #0F2079", | ||
474 | "6l c #152C8F", | ||
475 | "6m c #0B2596", | ||
476 | "6n c #3A4CA9", | ||
477 | "6o c #CBCED8", | ||
478 | "6p c #CFD2D5", | ||
479 | "6q c #CAD2D9", | ||
480 | "6r c #D1D1D8", | ||
481 | "6s c #DBCECD", | ||
482 | "6t c #C5C2CF", | ||
483 | "6u c #C3C3D2", | ||
484 | "6v c #CBC5CD", | ||
485 | "6w c #D6D5DF", | ||
486 | "6x c #A5AFC9", | ||
487 | "6y c #2B4DB9", | ||
488 | "6z c #1B50D9", | ||
489 | "6A c #174AC5", | ||
490 | "6B c #1547BF", | ||
491 | "6C c #1636AA", | ||
492 | "6D c #031D7B", | ||
493 | "6E c #192066", | ||
494 | "6F c #9A8F99", | ||
495 | "6G c #FDFCFC", | ||
496 | "6H c #6778B7", | ||
497 | "6I c #001B72", | ||
498 | "6J c #041E7A", | ||
499 | "6K c #00166D", | ||
500 | "6L c #000F66", | ||
501 | "6M c #1D2364", | ||
502 | "6N c #908886", | ||
503 | "6O c #B4A89F", | ||
504 | "6P c #C1B7B3", | ||
505 | "6Q c #DDD6D4", | ||
506 | "6R c #EBE2DB", | ||
507 | "6S c #E2DFE4", | ||
508 | "6T c #E7E7F3", | ||
509 | "6U c #D4D6E2", | ||
510 | "6V c #E9D2C8", | ||
511 | "6W c #6A7AA7", | ||
512 | "6X c #1549C7", | ||
513 | "6Y c #184AC8", | ||
514 | "6Z c #1545C2", | ||
515 | "6& c #1544BD", | ||
516 | "7 c #0F309F", | ||
517 | "70 c #05196E", | ||
518 | "71 c #231F64", | ||
519 | "72 c #C6C1C9", | ||
520 | "73 c #AAB6E3", | ||
521 | "74 c #001D80", | ||
522 | "75 c #102874", | ||
523 | "76 c #27397E", | ||
524 | "77 c #162769", | ||
525 | "78 c #21274C", | ||
526 | "79 c #393D43", | ||
527 | "7a c #6F695C", | ||
528 | "7b c #897C73", | ||
529 | "7c c #7A6D69", | ||
530 | "7d c #96827C", | ||
531 | "7e c #AA958B", | ||
532 | "7f c #BFB1AC", | ||
533 | "7g c #DBCFC9", | ||
534 | "7h c #DFD4D1", | ||
535 | "7i c #344B90", | ||
536 | "7j c #0B38B0", | ||
537 | "7k c #1A46BF", | ||
538 | "7l c #1A4AC3", | ||
539 | "7m c #123FB6", | ||
540 | "7n c #08288F", | ||
541 | "7o c #08115A", | ||
542 | "7p c #3E3B6F", | ||
543 | "7q c #F7F7F7", | ||
544 | "7r c #E1E6F7", | ||
545 | "7s c #04228A", | ||
546 | "7t c #131C4C", | ||
547 | "7u c #74696C", | ||
548 | "7v c #847675", | ||
549 | "7w c #897872", | ||
550 | "7x c #766B61", | ||
551 | "7y c #6C625B", | ||
552 | "7z c #675E57", | ||
553 | "7A c #46463B", | ||
554 | "7B c #595645", | ||
555 | "7C c #645F4B", | ||
556 | "7D c #7A6C60", | ||
557 | "7E c #615249", | ||
558 | "7F c #2D2E34", | ||
559 | "7G c #0D1C65", | ||
560 | "7H c #0D155F", | ||
561 | "7I c #17236A", | ||
562 | "7J c #172B7C", | ||
563 | "7K c #0B2582", | ||
564 | "7L c #081C6E", | ||
565 | "7M c #11104A", | ||
566 | "7N c #65678F", | ||
567 | "7O c #B4C0E3", | ||
568 | "7P c #4A5B97", | ||
569 | "7Q c #6976AA", | ||
570 | "7R c #8283A2", | ||
571 | "7S c #807B88", | ||
572 | "7T c #80767D", | ||
573 | "7U c #9D8A84", | ||
574 | "7V c #928075", | ||
575 | "7W c #8E7D73", | ||
576 | "7X c #746C61", | ||
577 | "7Y c #605D4F", | ||
578 | "7Z c #625E51", | ||
579 | "7& c #594F48", | ||
580 | "8 c #332F34", | ||
581 | "80 c #1B1E58", | ||
582 | "81 c #110C4C", | ||
583 | "82 c #120D3F", | ||
584 | "83 c #15103F", | ||
585 | "84 c #16123D", | ||
586 | "85 c #22225B", | ||
587 | "86 c #8081A9", | ||
588 | "87 c #F8FCFF", | ||
589 | "88 c #E6EBF9", | ||
590 | "89 c #D5DBEF", | ||
591 | "8a c #D5DAE8", | ||
592 | "8b c #E7E5E7", | ||
593 | "8c c #EAE3DF", | ||
594 | "8d c #D2CAC5", | ||
595 | "8e c #BBACA8", | ||
596 | "8f c #AA938F", | ||
597 | "8g c #948079", | ||
598 | "8h c #927D76", | ||
599 | "8i c #9C857A", | ||
600 | "8j c #766F73", | ||
601 | "8k c #524F6B", | ||
602 | "8l c #332F5D", | ||
603 | "8m c #171656", | ||
604 | "8n c #17154A", | ||
605 | "8o c #1A1744", | ||
606 | "8p c #282E71", | ||
607 | "8q c #D3D5E3", | ||
608 | "8r c #FBFAFA", | ||
609 | "8s c #FBFAF9", | ||
610 | "8t c #F0EDED", | ||
611 | "8u c #DAD3CF", | ||
612 | "8v c #C1B7AF", | ||
613 | "8w c #968F8B", | ||
614 | "8x c #7E736F", | ||
615 | "8y c #8A7570", | ||
616 | "8z c #55506E", | ||
617 | "8A c #151C6A", | ||
618 | "8B c #151964", | ||
619 | "8C c #30378A", | ||
620 | "8D c #EDEFF6", | ||
621 | "8E c #F0F3F9", | ||
622 | "8F c #9FA9C6", | ||
623 | "8G c #9396B4", | ||
624 | "8H c #455687", | ||
625 | "8I c #071F7B", | ||
626 | "8J c #00106C", | ||
627 | "8K c #7C81B7", | ||
628 | "8L c #F9FAFC", | ||
629 | "8M c #F6F7FD", | ||
630 | "8N c #EFF2F9", | ||
631 | "8O c #B8C1DD", | ||
632 | "8P c #939FCA", | ||
633 | "8Q c #F7F7FB", | ||
634 | " 0 1 2 3 ", | ||
635 | " 4 5 6 7 8 9 ", | ||
636 | " a b c d e f g h i j j k l j ", | ||
637 | " m n o p q r s t u v w x y z g A B C D E F ", | ||
638 | " G H I J K L M N O P Q R S T U V W X Y Z &0 00", | ||
639 | " 0102030405060708090a0b0c0d0e0f0g0h0i0j0k0l0m0n", | ||
640 | " 0o0p0q0r0s0t0u0v0w0x0y0z0A0B0C0D0E0F0G0H0I0J0K", | ||
641 | " 0L0M0N0O0P0Q0R0S0T0U0V0W0X0Y0Z0&1 101112131415", | ||
642 | " j161718191a1b1c1d1e1f1g1h1i1j1k1l1m1n1o1p1q1r1s", | ||
643 | " 1t1u1v1w1x1y1z1A1B1C1D1E1F1G1H1I1J1K1L1M1N1O1P1Q", | ||
644 | " 1R1S1T1U1V1W1X1Y1Z1&2 202122232425262728292a2b j", | ||
645 | " 2c2d2e2f2g2h2i2j2k2l2m2n2o2p2q2r2s2t2u2v2w2x2y2z ", | ||
646 | " j2A2B2C2D2E2F2G2H2I2J2K2L2M2N2O2P2Q2R2S2T2U2V2W2X ", | ||
647 | " 2Y2Z2&3 303132333435363738393a3b3c3d3e3f3g3h3i3j ", | ||
648 | " j3k 3l3m3n3o3p3q3r3s3t3u3v3w3x3y3z2&3A3B3C3D3E ", | ||
649 | " 3F3G G3H3I3J3K3L3M3N3O3P3Q3R3S3T3U3V3W3X3Y3Z3&4 ", | ||
650 | " 4041423d434445464748494a4b4c4d4e4f4g4h4i4j4k4l4m ", | ||
651 | " 4n4o4p4q4r4s4t4u4v4w4x4y 4z4A4B4C4D4E4h4F4G4H4I4J ", | ||
652 | " 4K4L4M4N4O4P4Q4R4S 4T4U4V4W4X4Y4Z4&5 3K505152535455 ", | ||
653 | " j565758595a5b5c5d5e5f5g5h5i5j5k5l5m5n5o5p5q5r5s5t5u ", | ||
654 | " 5v5w5x5y5z5A5B5C5D5E5F5G5H5I5J5K5L5M5N5O5P5Q5R5S5T5U ", | ||
655 | " 5V5W5X5Y5Z5&6 606162636465666768696a6b6c6d6e6f6g6h ", | ||
656 | " 6i6j6k6l6m6n6o6p6q6r6s6t6u6v6w6x6y6z6A6B6C6D6E6F6G ", | ||
657 | " 6H6I6J6K6L6M6N6O6P6Q6R6S6T6U6V6W6X6Y6Z6&7 707172 ", | ||
658 | " 737475767778797a7b7c7d7e7f7g7h7i7j7k7l7m7n7o7p7q ", | ||
659 | " 7r7s7t7u7v7w7x7y7z7A7B7C7D7E7F7G7H7I7J7K7L7M7N j ", | ||
660 | " A7O7P7Q7R7S7T7U7V7W7X7Y7Z7&8 8081828384848586 i ", | ||
661 | " A 48788898a8b8c8d8e8f8g8h8i8j8k8l8m8n8o8p8q ", | ||
662 | " j8r8s8t8u8v8w8x8y8z8A8B8C8D ", | ||
663 | " 8E8F8G8H8I8J8K8L ", | ||
664 | " A8M8N8O8P8Q ", | ||
665 | " "}; | ||
666 | |||
diff --git a/rbutil/mksums.pl b/rbutil/rbutilqt/irivertools/mksums.pl index 99786fe161..99786fe161 100755 --- a/rbutil/mksums.pl +++ b/rbutil/rbutilqt/irivertools/mksums.pl | |||
diff --git a/rbutil/talkfile.cpp b/rbutil/talkfile.cpp deleted file mode 100644 index 345b327802..0000000000 --- a/rbutil/talkfile.cpp +++ /dev/null | |||
@@ -1,204 +0,0 @@ | |||
1 | /*************************************************************************** | ||
2 | * __________ __ ___. | ||
3 | * Open \______ \ ____ ____ | | _\_ |__ _______ ___ | ||
4 | * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / | ||
5 | * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | ||
6 | * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | ||
7 | * \/ \/ \/ \/ \/ | ||
8 | * Module: rbutil | ||
9 | * File: tts.cpp | ||
10 | * | ||
11 | * Copyright (C) 2007 Dominik wenger | ||
12 | * | ||
13 | * All files in this archive are subject to the GNU General Public License. | ||
14 | * See the file COPYING in the source tree root for full license agreement. | ||
15 | * | ||
16 | * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY | ||
17 | * KIND, either express or implied. | ||
18 | * | ||
19 | ****************************************************************************/ | ||
20 | |||
21 | #include "talkfile.h" | ||
22 | |||
23 | TalkFileCreator::TalkFileCreator() | ||
24 | { | ||
25 | m_supportedTTS.Add(wxT("espeak")); | ||
26 | m_supportedTTSOpts.Add(wxT("")); | ||
27 | |||
28 | m_supportedEnc.Add(wxT("lame")); | ||
29 | m_supportedEncOpts.Add(wxT("--vbr-new -t --nores -S")); | ||
30 | |||
31 | } | ||
32 | |||
33 | bool TalkFileCreator::initEncoder() | ||
34 | { | ||
35 | if(::wxFileExists(m_EncExec)) | ||
36 | { | ||
37 | return true; | ||
38 | } | ||
39 | else | ||
40 | { | ||
41 | return false; | ||
42 | } | ||
43 | } | ||
44 | |||
45 | bool TalkFileCreator::initTTS() | ||
46 | { | ||
47 | if(::wxFileExists(m_TTSexec)) | ||
48 | { | ||
49 | return true; | ||
50 | } | ||
51 | else | ||
52 | { | ||
53 | return false; | ||
54 | } | ||
55 | } | ||
56 | |||
57 | bool TalkFileCreator::createTalkFiles() | ||
58 | { | ||
59 | if(!initTTS()) | ||
60 | { | ||
61 | MESG_DIALOG(wxT("Init of TTS engine failed") ); | ||
62 | return false; | ||
63 | } | ||
64 | if(!initEncoder()) | ||
65 | { | ||
66 | MESG_DIALOG(wxT("Init of encoder failed") ); | ||
67 | return false; | ||
68 | } | ||
69 | |||
70 | // enumerate the dirs | ||
71 | wxDir talkdir(m_dir); | ||
72 | TalkTraverser traverser(this); | ||
73 | if(talkdir.Traverse(traverser) == (size_t)-1) | ||
74 | return false; | ||
75 | else | ||
76 | return true; | ||
77 | |||
78 | |||
79 | } | ||
80 | |||
81 | bool TalkFileCreator::voice(wxString text,wxString wavfile) | ||
82 | { | ||
83 | if(m_curTTS == wxT("espeak")) | ||
84 | { | ||
85 | wxArrayString out; | ||
86 | wxArrayString err; | ||
87 | wxExecute(m_TTSexec+wxT(" ")+m_TTSOpts+wxT(" -w \"")+wavfile+wxT("\" \"")+text+wxT("\""),out,err); | ||
88 | return true; | ||
89 | } | ||
90 | else | ||
91 | { | ||
92 | MESG_DIALOG(wxT("Unsupported TTS engine") ); | ||
93 | return false; | ||
94 | } | ||
95 | } | ||
96 | |||
97 | bool TalkFileCreator::encode(wxString input,wxString output) | ||
98 | { | ||
99 | if(m_curEnc == wxT("lame")) | ||
100 | { | ||
101 | wxArrayString out; | ||
102 | wxArrayString err; | ||
103 | wxExecute(m_EncExec+wxT(" ")+m_EncOpts+wxT(" \"")+input+wxT("\" \"")+output+wxT("\""),out,err); | ||
104 | return true; | ||
105 | } | ||
106 | else | ||
107 | { | ||
108 | MESG_DIALOG(wxT("Unsupported encoder") ); | ||
109 | return false; | ||
110 | } | ||
111 | |||
112 | } | ||
113 | |||
114 | wxString TalkFileCreator::getTTsOpts(wxString ttsname) | ||
115 | { | ||
116 | int index = m_supportedTTS.Index(ttsname); | ||
117 | |||
118 | return m_supportedTTSOpts[index]; | ||
119 | } | ||
120 | |||
121 | wxString TalkFileCreator::getEncOpts(wxString encname) | ||
122 | { | ||
123 | int index = m_supportedEnc.Index(encname); | ||
124 | |||
125 | return m_supportedEncOpts[index]; | ||
126 | } | ||
127 | |||
128 | wxDirTraverseResult TalkTraverser::OnFile(const wxString& file) | ||
129 | { | ||
130 | if(file.EndsWith(wxT(".talk")) || file.EndsWith(wxT(".talk.wav"))) | ||
131 | { | ||
132 | return wxDIR_CONTINUE; | ||
133 | } | ||
134 | |||
135 | wxFileName fname(file); | ||
136 | wxString toSpeak; | ||
137 | if(m_talkcreator->m_stripExtensions) | ||
138 | { | ||
139 | toSpeak = fname.GetName(); | ||
140 | } | ||
141 | else | ||
142 | { | ||
143 | toSpeak = fname.GetName()+fname.GetExt(); | ||
144 | } | ||
145 | wxString filename = file+ wxT(".talk"); | ||
146 | wxString wavname = filename + wxT(".wav"); | ||
147 | |||
148 | if(!wxFileExists(filename) || m_talkcreator->m_overwriteTalk) | ||
149 | { | ||
150 | if(!wxFileExists(wavname) || m_talkcreator->m_overwriteWav) | ||
151 | { | ||
152 | if(!m_talkcreator->voice(toSpeak,wavname)) | ||
153 | { | ||
154 | return wxDIR_STOP; | ||
155 | } | ||
156 | } | ||
157 | if(!m_talkcreator->encode(wavname,filename)) | ||
158 | { | ||
159 | return wxDIR_STOP; | ||
160 | } | ||
161 | } | ||
162 | |||
163 | if(m_talkcreator->m_removeWav) | ||
164 | { | ||
165 | wxRemoveFile(wavname); | ||
166 | } | ||
167 | |||
168 | return wxDIR_CONTINUE; | ||
169 | } | ||
170 | |||
171 | wxDirTraverseResult TalkTraverser::OnDir(const wxString& dirname) | ||
172 | { | ||
173 | wxFileName fname(dirname,wxEmptyString); | ||
174 | wxArrayString dirs=fname.GetDirs(); | ||
175 | wxString toSpeak = dirs[dirs.GetCount()-1]; | ||
176 | |||
177 | wxString filename = dirname + wxT("" PATH_SEP "_dirname.talk"); | ||
178 | wxString wavname = filename + wxT(".wav"); | ||
179 | |||
180 | if(!wxFileExists(filename) || m_talkcreator->m_overwriteTalk) | ||
181 | { | ||
182 | if(!wxFileExists(wavname) || m_talkcreator->m_overwriteWav) | ||
183 | { | ||
184 | if(!m_talkcreator->voice(toSpeak,wavname)) | ||
185 | { | ||
186 | return wxDIR_STOP; | ||
187 | } | ||
188 | } | ||
189 | if(!m_talkcreator->encode(wavname,filename)) | ||
190 | { | ||
191 | return wxDIR_STOP; | ||
192 | } | ||
193 | } | ||
194 | |||
195 | if(m_talkcreator->m_removeWav) | ||
196 | { | ||
197 | wxRemoveFile(wavname); | ||
198 | } | ||
199 | |||
200 | if(!m_talkcreator->m_recursive) | ||
201 | return wxDIR_IGNORE; | ||
202 | else | ||
203 | return wxDIR_CONTINUE; | ||
204 | } | ||
diff --git a/rbutil/talkfile.h b/rbutil/talkfile.h deleted file mode 100644 index 9d6d28a2fe..0000000000 --- a/rbutil/talkfile.h +++ /dev/null | |||
@@ -1,101 +0,0 @@ | |||
1 | /*************************************************************************** | ||
2 | * __________ __ ___. | ||
3 | * Open \______ \ ____ ____ | | _\_ |__ _______ ___ | ||
4 | * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / | ||
5 | * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | ||
6 | * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | ||
7 | * \/ \/ \/ \/ \/ | ||
8 | * Module: rbutil | ||
9 | * File: tts.h | ||
10 | * | ||
11 | * Copyright (C) 2007 Dominik wenger | ||
12 | * | ||
13 | * All files in this archive are subject to the GNU General Public License. | ||
14 | * See the file COPYING in the source tree root for full license agreement. | ||
15 | * | ||
16 | * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY | ||
17 | * KIND, either express or implied. | ||
18 | * | ||
19 | ****************************************************************************/ | ||
20 | |||
21 | |||
22 | #ifndef _TALKFILE_H | ||
23 | #define _TALKFILE_H | ||
24 | |||
25 | #include "rbutil.h" | ||
26 | |||
27 | class TalkFileCreator | ||
28 | { | ||
29 | friend class TalkTraverser; | ||
30 | public: | ||
31 | TalkFileCreator(); | ||
32 | ~TalkFileCreator() {}; | ||
33 | |||
34 | bool createTalkFiles(); | ||
35 | |||
36 | void setTTSexe(wxString exe){m_TTSexec=exe;} | ||
37 | void setEncexe(wxString exe){m_EncExec=exe;} | ||
38 | |||
39 | wxArrayString getSupportedTTS(){return m_supportedTTS;} | ||
40 | void setTTsType(wxString tts) {m_curTTS = tts; } | ||
41 | wxString getTTsOpts(wxString ttsname); | ||
42 | void setTTsOpts(wxString opts) {m_TTSOpts=opts;} | ||
43 | |||
44 | wxArrayString getSupportedEnc(){return m_supportedEnc;} | ||
45 | void setEncType(wxString enc) {m_curEnc =enc; } | ||
46 | wxString getEncOpts(wxString encname); | ||
47 | void setEncOpts(wxString opts) {m_EncOpts=opts;} | ||
48 | |||
49 | void setDir(wxString dir){m_dir = dir; } | ||
50 | |||
51 | void setOverwriteTalk(bool ov) {m_overwriteTalk = ov;} | ||
52 | void setOverwriteWav(bool ov) {m_overwriteWav = ov;} | ||
53 | void setRemoveWav(bool ov) {m_removeWav = ov;} | ||
54 | void setRecursive(bool ov) {m_recursive = ov;} | ||
55 | void setStripExtensions(bool ov) {m_stripExtensions = ov;} | ||
56 | |||
57 | private: | ||
58 | |||
59 | bool initTTS(); | ||
60 | bool stopTTS(); | ||
61 | bool initEncoder(); | ||
62 | |||
63 | bool encode(wxString input,wxString output); | ||
64 | bool voice(wxString text,wxString wavfile); | ||
65 | |||
66 | wxString m_dir; | ||
67 | |||
68 | wxString m_curTTS; | ||
69 | wxString m_TTSexec; | ||
70 | wxArrayString m_supportedTTS; | ||
71 | wxArrayString m_supportedTTSOpts; | ||
72 | wxString m_TTSOpts; | ||
73 | |||
74 | wxString m_curEnc; | ||
75 | wxString m_EncExec; | ||
76 | wxArrayString m_supportedEnc; | ||
77 | wxArrayString m_supportedEncOpts; | ||
78 | wxString m_EncOpts; | ||
79 | |||
80 | bool m_overwriteTalk; | ||
81 | bool m_overwriteWav; | ||
82 | bool m_removeWav; | ||
83 | bool m_recursive; | ||
84 | bool m_stripExtensions; | ||
85 | }; | ||
86 | |||
87 | |||
88 | class TalkTraverser: public wxDirTraverser | ||
89 | { | ||
90 | public: | ||
91 | TalkTraverser(TalkFileCreator* talkcreator) : m_talkcreator(talkcreator) { } | ||
92 | |||
93 | virtual wxDirTraverseResult OnFile(const wxString& filename); | ||
94 | |||
95 | virtual wxDirTraverseResult OnDir(const wxString& dirname); | ||
96 | |||
97 | private: | ||
98 | TalkFileCreator* m_talkcreator; | ||
99 | }; | ||
100 | |||
101 | #endif | ||
diff --git a/rbutil/wizard.xpm b/rbutil/wizard.xpm deleted file mode 100644 index d19402a414..0000000000 --- a/rbutil/wizard.xpm +++ /dev/null | |||
@@ -1,689 +0,0 @@ | |||
1 | /* XPM */ | ||
2 | static char * wizard_xpm[] = { | ||
3 | "200 430 256 2", | ||
4 | " c #040B0E", | ||
5 | ". c #0B080D", | ||
6 | "+ c #090B07", | ||
7 | "@ c #030D15", | ||
8 | "# c #140F0D", | ||
9 | "$ c #0D1214", | ||
10 | "% c #071515", | ||
11 | "& c #0A1319", | ||
12 | "* c #181008", | ||
13 | "= c #09141E", | ||
14 | "- c #081424", | ||
15 | "; c #101411", | ||
16 | "> c #14140B", | ||
17 | ", c #061630", | ||
18 | "' c #1C1406", | ||
19 | ") c #0F1B1E", | ||
20 | "! c #061A3D", | ||
21 | "~ c #151A1F", | ||
22 | "{ c #101C26", | ||
23 | "] c #161D16", | ||
24 | "^ c #1B1B16", | ||
25 | "/ c #211911", | ||
26 | "( c #131D2F", | ||
27 | "_ c #251B0C", | ||
28 | ": c #0F202F", | ||
29 | "< c #171C31", | ||
30 | "[ c #142225", | ||
31 | "} c #13222B", | ||
32 | "| c #10223D", | ||
33 | "1 c #0A234C", | ||
34 | "2 c #0F214C", | ||
35 | "3 c #2B1F0B", | ||
36 | "4 c #0E2447", | ||
37 | "5 c #172832", | ||
38 | "6 c #152838", | ||
39 | "7 c #11294B", | ||
40 | "8 c #18264A", | ||
41 | "9 c #122755", | ||
42 | "0 c #1A2B2E", | ||
43 | "a c #1D283B", | ||
44 | "b c #0E2B54", | ||
45 | "c c #1E2D24", | ||
46 | "d c #312711", | ||
47 | "e c #102D4C", | ||
48 | "f c #372511", | ||
49 | "g c #272A2D", | ||
50 | "h c #292B25", | ||
51 | "i c #172E46", | ||
52 | "j c #1C2F38", | ||
53 | "k c #1A2F3F", | ||
54 | "l c #34291C", | ||
55 | "m c #3C2B0F", | ||
56 | "n c #342C27", | ||
57 | "o c #422B11", | ||
58 | "p c #1C3645", | ||
59 | "q c #0F3864", | ||
60 | "r c #223448", | ||
61 | "s c #18395A", | ||
62 | "t c #223942", | ||
63 | "u c #233A3C", | ||
64 | "v c #1D3A52", | ||
65 | "w c #40341E", | ||
66 | "x c #4A3113", | ||
67 | "y c #32373B", | ||
68 | "z c #463415", | ||
69 | "A c #2C3C31", | ||
70 | "B c #203D4D", | ||
71 | "C c #353831", | ||
72 | "D c #4C3811", | ||
73 | "E c #4D3A0C", | ||
74 | "F c #164770", | ||
75 | "G c #244558", | ||
76 | "H c #0E4A81", | ||
77 | "I c #1E486B", | ||
78 | "J c #064E8D", | ||
79 | "K c #2A484E", | ||
80 | "L c #024F96", | ||
81 | "M c #284855", | ||
82 | "N c #2E4846", | ||
83 | "O c #264862", | ||
84 | "P c #334A3E", | ||
85 | "Q c #584117", | ||
86 | "R c #4A4531", | ||
87 | "S c #2A4D5F", | ||
88 | "T c #3F4841", | ||
89 | "U c #574220", | ||
90 | "V c #464540", | ||
91 | "W c #3F484B", | ||
92 | "X c #57471C", | ||
93 | "Y c #554729", | ||
94 | "Z c #564824", | ||
95 | "` c #23577E", | ||
96 | " . c #345764", | ||
97 | ".. c #335769", | ||
98 | "+. c #315770", | ||
99 | "@. c #5F4F25", | ||
100 | "#. c #39595C", | ||
101 | "$. c #5F4F2B", | ||
102 | "%. c #625020", | ||
103 | "&. c #694C24", | ||
104 | "*. c #664E24", | ||
105 | "=. c #644E2C", | ||
106 | "-. c #4A5457", | ||
107 | ";. c #68501C", | ||
108 | ">. c #46584F", | ||
109 | ",. c #605133", | ||
110 | "'. c #644F33", | ||
111 | "). c #5C5435", | ||
112 | "!. c #5E523F", | ||
113 | "~. c #475D46", | ||
114 | "{. c #6D5318", | ||
115 | "]. c #66542A", | ||
116 | "^. c #535752", | ||
117 | "/. c #645530", | ||
118 | "(. c #5A5743", | ||
119 | "_. c #29638D", | ||
120 | ":. c #59584B", | ||
121 | "<. c #3E6678", | ||
122 | "[. c #5D5F4B", | ||
123 | "}. c #406774", | ||
124 | "|. c #36688B", | ||
125 | "1. c #5C6052", | ||
126 | "2. c #3D6782", | ||
127 | "3. c #45686C", | ||
128 | "4. c #306B96", | ||
129 | "5. c #4D695D", | ||
130 | "6. c #60605B", | ||
131 | "7. c #775F23", | ||
132 | "8. c #416597", | ||
133 | "9. c #646053", | ||
134 | "0. c #5C6359", | ||
135 | "a. c #6E5F3E", | ||
136 | "b. c #79601E", | ||
137 | "c. c #76602F", | ||
138 | "d. c #516D59", | ||
139 | "e. c #5C6661", | ||
140 | "f. c #556870", | ||
141 | "g. c #6C6350", | ||
142 | "h. c #62676C", | ||
143 | "i. c #5C6B6B", | ||
144 | "j. c #3A75A5", | ||
145 | "k. c #3E769F", | ||
146 | "l. c #457599", | ||
147 | "m. c #5B7181", | ||
148 | "n. c #497792", | ||
149 | "o. c #53777A", | ||
150 | "p. c #517492", | ||
151 | "q. c #5E727A", | ||
152 | "r. c #57796B", | ||
153 | "s. c #547684", | ||
154 | "t. c #50778A", | ||
155 | "u. c #66726A", | ||
156 | "v. c #896D2B", | ||
157 | "w. c #5A758A", | ||
158 | "x. c #736F6A", | ||
159 | "y. c #8F6C33", | ||
160 | "z. c #836E4C", | ||
161 | "A. c #8A7034", | ||
162 | "B. c #877041", | ||
163 | "C. c #8A713B", | ||
164 | "D. c #906E41", | ||
165 | "E. c #4882AE", | ||
166 | "F. c #5482A2", | ||
167 | "G. c #93753E", | ||
168 | "H. c #598299", | ||
169 | "I. c #907935", | ||
170 | "J. c #90793B", | ||
171 | "K. c #618099", | ||
172 | "L. c #917A43", | ||
173 | "M. c #5F868D", | ||
174 | "N. c #6B8282", | ||
175 | "O. c #917A49", | ||
176 | "P. c #648782", | ||
177 | "Q. c #628593", | ||
178 | "R. c #8E7C52", | ||
179 | "S. c #508AB5", | ||
180 | "T. c #6C848E", | ||
181 | "U. c #897E66", | ||
182 | "V. c #5C8AAB", | ||
183 | "W. c #618AA2", | ||
184 | "X. c #7C8689", | ||
185 | "Y. c #88887E", | ||
186 | "Z. c #6093B9", | ||
187 | "`. c #6694B3", | ||
188 | " + c #6994AC", | ||
189 | ".+ c #8B8F75", | ||
190 | "++ c #6C989E", | ||
191 | "@+ c #7492AC", | ||
192 | "#+ c #709995", | ||
193 | "$+ c #6E98A5", | ||
194 | "%+ c #7E949F", | ||
195 | "&+ c #7996A5", | ||
196 | "*+ c #829593", | ||
197 | "=+ c #699CC1", | ||
198 | "-+ c #679EBC", | ||
199 | ";+ c #7498B9", | ||
200 | ">+ c #6E9CB4", | ||
201 | ",+ c #6E9CBB", | ||
202 | "'+ c #6EA5C4", | ||
203 | ")+ c #73A4BD", | ||
204 | "!+ c #70A4CA", | ||
205 | "~+ c #76A3C3", | ||
206 | "{+ c #7CA8B9", | ||
207 | "]+ c #85A6B9", | ||
208 | "^+ c #77ADCA", | ||
209 | "/+ c #96A5A5", | ||
210 | "(+ c #78ACD2", | ||
211 | "_+ c #7FABCA", | ||
212 | ":+ c #8DAEAA", | ||
213 | "<+ c #8AABC9", | ||
214 | "[+ c #7CB4D9", | ||
215 | "}+ c #85B2D3", | ||
216 | "|+ c #7EB6D5", | ||
217 | "1+ c #90B0CD", | ||
218 | "2+ c #8EB6D1", | ||
219 | "3+ c #8FB8C9", | ||
220 | "4+ c #87BBD4", | ||
221 | "5+ c #82BEE3", | ||
222 | "6+ c #85BEDD", | ||
223 | "7+ c #8FBCDD", | ||
224 | "8+ c #8DC5E5", | ||
225 | "9+ c #94C2E3", | ||
226 | "0+ c #88C8E6", | ||
227 | "a+ c #A2C1D1", | ||
228 | "b+ c #94C6DF", | ||
229 | "c+ c #8EC9E1", | ||
230 | "d+ c #9DC7CC", | ||
231 | "e+ c #96C8DA", | ||
232 | "f+ c #8FD0ED", | ||
233 | "g+ c #9ACDE8", | ||
234 | "h+ c #8ED3EA", | ||
235 | "i+ c #95D0E9", | ||
236 | "j+ c #A0CBEA", | ||
237 | "k+ c #9AD1E3", | ||
238 | "l+ c #A2CEE1", | ||
239 | "m+ c #95DAF1", | ||
240 | "n+ c #A2D4EE", | ||
241 | "o+ c #9DD8F0", | ||
242 | "p+ c #9CDBEC", | ||
243 | "q+ c #A4DAEC", | ||
244 | "r+ c #A7DAE6", | ||
245 | "s+ c #A3E3F5", | ||
246 | "t+ c #AAE1F3", | ||
247 | "u+ c #ADE3E9", | ||
248 | "v+ c #A9E4EF", | ||
249 | "w+ c #B6E3F8", | ||
250 | "x+ c #AAEAFB", | ||
251 | "y+ c #B3E9FC", | ||
252 | "z+ c #C6E8DE", | ||
253 | "A+ c #BBE9FD", | ||
254 | "B+ c #BAF0FC", | ||
255 | "C+ c #C2F7FD", | ||
256 | "D+ c #CBFDFC", | ||
257 | "E+ c #D6FFFA", | ||
258 | "F+ c #E1FFFC", | ||
259 | "G+ c #EEFFFE", | ||
260 | "Q.Q.$+Q.Q.Q.Q.Q.Q.Q.s.s.s.}.s.s.M.M.}...+.O O O r e e 8 7 | | | ( ( | a { ) % & ~ ) ~ ) ) ) & ~ [ [ [ u N r.d.P c [ 0 j u M <.n.F.V.V.V.V.F.F.F.F.F.F.F.p.F.n.l.l.p.p.n.p.p.p.p.n.n.p.2.2.2.n.2.n.2.n.n.n.n.t.n.n.n.n.n.n.n.F.H.H.H.W.W.`. +>+ +>+-+`.-+-+=+Z.`.,+=+=+=+Z.=+=+=+;+;+!+,+,+~+~+~+~+~+~+~+~+~+_+~+_+_+~+_+_+_+_+_+_+_+_+_+_+_+_+_+_+(+_+_+_+_+_+(+_+_+(+(+_+_+_+_+_+(+(+(+(+(+(+(+(+(+(+(+(+_+(+_+", | ||
261 | "3.r.o.o.o.r.o.o.o.o.r.3.#.3.#.3.3.3.f.+.m.<.2.O +.O H 8.8.F I s s e e i | < - - - = = ( = = & { ~ $ = ) c N A c ) ) { : k B ..p.V.V.V.@+K.V.V.W.Q.W.W.H.F.H.F.V.F.F.F.F.F.F.F.F.K.F.l.n.n.n.l.l.|.n.n.2.n.n.t.2.p.n.n.n.n.n.t.n.n.H.F.H.H.H.W.W.W.W.>+>+`.`.Z.`.`.-+,+=+;+Z.;+=+=+=+=+=+=+=+-+,+,+~+'+'+'+'+'+)+~+'+^+'+~+~+~+_+~+(+!+(+!+_+!+_+^+^+(+^+(+^+(+_+(+(+_+_+(+(+(+(+(+_+<+(+(+(+_+_+_+_+(+(+<+(+<+(+", | ||
262 | "K N N N N P #.P P #.P #.N K K M N . .+.<.m.f.+.+.p.p.p.p.p.8.|.2.` ` I v e < | < , ( < ( ( ~ = { ~ ) = [ [ [ % % = ( ( a B -.p.V.`.Z.Z.;+@+W.Q.Q.M.W.Q.W.W.H.W.V.W.K.W.W.V.H.F.F.V.F.H.n.n.n.n.n.n.n.n.n.n.n.n.n.n.t.n.n.t.t.n.n.n.n.n.n.H.H.W.W.H.H.W.W.W.`.V.-+`. +Z.Z.=+=+=+!+=+=+-+`.=+=+=+-+-+`.,+,+>+)+>+~+;+_+!+~+~+!+!+~+~+~+~+!+~+!+!+~+'+!+'+!+'+'+'+'+~+!+'+'+~+~+~+!+!+!+!+;+(+!+!+!+~+~+!+!+!+!+!+", | ||
263 | "p t p j 5 0 c 0 j c u c u N t K M B G +.+.<.+.m.+.8.S.;+K.K.p.p.p.p.p.p.8.+.I I s s e e | : ( ( { - { { : : { & = { ( a r r O p.V.V.W. +`.W.++o.o.o.o.M.o.M.M.Q.Q.W.W.W.W.W.W.V.@+H.W.F.W.H.F.F.F.F.n.F.n.H.n.n.n.n.n.n.n.n.}.n.n.n.n.n.n.n.n.n.H.n.H.H.W.W.W.H.W.W.W.W.W. +>+,+-+-+-+=+=+Z.Z.`.Z.`.=+=+,+=+;+,+,+=+,+,+!+'+,+,+!+!+=+!+~+!+;+=+;+=+!+!+~+~+!+~+=+=+=+~+,+=+!+=+!+;+!+!+!+~+'+'+!+!+!+(+!+!+!+!+", | ||
264 | "+.B p i | : ( ( { } ) [ [ 0 u u t G S +.2.p.2.2.p.p.K. +W.H.K.K.p.p.p.p.p.p.p.8.+.8.I O O v v 7 a | | < | | | - , , a i r G +.p.F.Z.V. + +Q.o.#.#.#.5.3.3.3.o.o.s.Q.Q.H.Q.W.Q.V.W.Q.W.W.V.H.V.F.F.V.H.W.F.W.H.F.H.l.n.n.n.n.n.n.k.l.l.H.n.n.n.n.n.F.n.n.H.n.H.M.n.W.W.W.W.-+W.-+W.>+W.`.`.`.`.`.`.`.Z.`.`.Z.Z.`.`.,+`.`.,+,+,+,+=+=+=+=+;+;+!+!+=+,+-+=+=+;+=+,+!+=+=+=+!+=+=+!+=+!+!+!+!+!+!+'+~+!+=+!+!+!+!+!+", | ||
265 | "<.S O s v e i | : } } ) [ [ [ j y O +.+.2.p.p.p.p.K.W.Q.t.K.H.p.K.K.H.n.w.p.p.p.p.p.p.p.2.2.I O I s s s q q q s 7 e s s I +.` p.V.V.`.V.-+Q.#.u u c u N K K #.#.5.3.3.o.s.Q.Q.Q.W.W.$+W.W.V.V.V.W.W.V.V.W.W.V.W.F.V.F.F.F.F.F.F.l.l.n.n.E.n.E.F.k.n.n.n.n.n.n.n.H.n.n.n.n.H.W.H.W.H.-+W.W.-+V.W.V.Z.`.Z.V.V.V.V.`.V.`.`.`.`.`.Z.`.Z.;+=+=+=+Z.;+=+=+=+=+=+=+,+=+=+;+;+;+;+=+!+Z.!+!+;+!+;+=+'+=+!+=+!+!+!+!+~+!+", | ||
266 | "p.+.+.` +.I O s s k 6 } ) { { } k r +.m.m.m.w.w.K.w.H.H.H.n.H.H.n.H.K.F.H.t.H.K.F.l.F.p.p.p.p.8.p.|.8.` 8.8.8.8.F 8.8.8.8.p.8.S.;+Z.=+Z.-+M.N [ { ) [ [ 0 0 t u u N #.#.3.}.o.o.s.Q.M.Q.Q.Q.$+W.W.W.W.W.W.W.V.V.W.V.V.V.F.F.S.F.F.F.E.F.H.F.F.F.F.F.k.n.H.n.n.n.n.n.n.H.F.n.H.H.H.H.H.H.H.F.V.V.W.W.W.Z.Z.V.V.F.V.F.V.V.V.V.V.`.`.`.Z.Z.Z.;+Z.,+Z.Z.=+=+=+=+=+=+=+=+=+=+-+=+=+=+!+!+Z.!+!+=+!+=+'+!+,+~+,+;+!+!+", | ||
267 | "m.2.p.p.2.p.` 8.+.O v 6 : - ( ~ a r ..}.}.3.o.3.m.t.m.w.s.q.s.t.p.w.t.w.t.n.H.n.H.W.W.W.K.p.p.p.p.p.p.j.p.E.K.p.8.2.p.p.@+8.;+S.;+!+!+'+-+H.K 5 { } ) } 5 ) { : [ c 0 u N #.#.3.o.}.o.s.s.M.Q.Q.Q.Q.W.$+ + +W. +V.V.`.`.V.V.V.V.S.V.F.W.W.V.F.F.F.F.F.F.n.n.n.H.n.S.n.n.n.H.n.n.n.n.n.H.n.H.n.F.F.F.V.H.W.W.F.F.F.V.F.V.F.V.V.V.W.V.V.V.Z.Z.`.`.>+`.;+;+;+Z.Z.`.`.=+Z.=+=+=+=+!+Z.=+!+=+=+!+-+!+=+-+!+=+!+!+=+;+", | ||
268 | "2.p.2.p.p.p.p.|.|.2.+.I e i | { { a S 3. . . . .#. . .<.}.3.}.}.<.m.s.s.s.w.H.W.Q.W.Q.W.W.F.V.F.F.F.K.V.;+;+;+V.p.p.j.p.;+;+V.;+;+(+(+^+{+Q.M k : 6 : 5 5 : : : = } [ [ c t u N N #.#.5.3.3.3.s.M.M.M.Q.H.W.W.W. +V.W. +`.W.W.V.V.V.V.V.V.W.`.W.V.V.V.V.F.F.F.F.H.H.F.W.F.F.F.H.n.H.n.n.n.n.n.n.n.n.n.n.H.H.n.F.n.V.F.V.F.F.S.F.S.F.S.F.F.S.F.V.`.V.Z.Z.Z.Z.Z.`.Z.;+Z.Z.,+=+;+=+!+Z.!+=+=+=+=+=+!+!+!+=+=+!+!+!+", | ||
269 | "t.m.2.p.2.p.p.p.p.p.8.+.O B k a } r S K M G O G S M S S ......+.....f.}.<.2.V.$+t.H.Q.H.F.K.V.p.V.F.V.F.;+;+;+V.;+V.;+V.V.;+;+=+!+'+)+{+)+n.O v i i i p 6 a 6 6 : : { : ) } [ 0 u u u K N N #.#.3.3.o.o.o.M.M.Q.W.@+W.W.W. +`.`.V.Z.-+W.-+-+V.V.Z.V.-+W.V.V.W.W.F.W.W.-+W.W.n.H.n.n.H.n.F.n.n.n.n.n.H.n.n.n.n.n.n.n.n.n.n.S.n.S.F.F.F.F.E.F.F.F.F.F.H.V.V.`.V.V.Z.Z.`.`.Z.Z.=+=+Z.=+Z.Z.=+;+=+;+=+=+=+!+!+!+S.=+", | ||
270 | "<.t.2.t.p.p.p.t.n.p.p.w.<. .N 0 g 5 B G O I +.+.+.+.I 2.+.+.+.+.2...+.+.2.w.F.W.2.n.F.H.F.l.;+E.;+V.;+F.Z.~+)+`.V.V.;+S.Z.;+`.,+'+-+)+$+>+H._.` I I v I i i r r a 6 : 6 : 6 } [ } 5 } 0 0 u A N N K #.3.3.3.o.o.s.W.W.Q.Q.Q.W.Z.Z.Z.`.W.W.-+`.`.`.Z.Z.V.-+V.-+W.-+W.-+W.W.W.F.W.W.n.F.n.S.n.n.n.n.n.n.n.n.n.k.n.n.n.k.n.n.n.n.k.F.n.E.n.F.F.n.F.n.n.n.H.n.F.F.H.F.V.V.V. +V.Z.;+Z.Z.;+!+Z.=+Z.=+=+=+=+Z.!+=+!+;+", | ||
271 | "}.}.m.2.2.p.n.H.H.Q.Q.M.5.>.0 [ ) a r O ` 2.8.2.p.8.2.p.8.p.p.p.2.p.p.p.2.n.K.E.E.E.E.V.F.E.V.;+;+S.@+`.-+>+)+>+Z.Z.Z.`.`.>+>+>+>+>+-+-+`.F.p.|.2.|.` +.I O G B s v k a i i i 6 6 6 6 [ [ [ 0 0 u u u N N K #.3.o.M.M.M.o.s.M. +;+(+'+$+M.Q. +`.=+`.`.Z.-+W.-+W.-+F.-+W.-+-+F.-+V.S.V.V.W.V.F.n.k.n.k.k.|.k.|.|.|.n.n.|.4.|.|.n.n.k.n.n.k.n.|.k.k.k.n.n.n.n.k.n.F.F.F.F.F.V.V.V.;+S.;+S.;+=+Z.;+=+Z.!+S.;+!+Z.=+", | ||
272 | "3.#.#.<.n.t.t.M.s.o.o.r.P A [ ) & < s m.+.p.p.p.p.p.p.p.p.m.p.m.m.p.2.p.m.p.K.E.!+(+(+=+;+@+V.;+;+Z.`. +~+>+)+@+,+ +;+>+-+,+,+,+,+,+,+-+,+V.K.l.p.l.|.p.|.2.2.+.O O O v v v p v p i 6 p 5 [ 5 5 [ [ [ 0 0 c u K #.3.o.o.>.#.o. +^+3+++M.o.H.W.`.'+-+=+=+=+=+`.-+-+-+-+-+W.-+V.W.W.S.-+F.-+F.V.F.F.n.n.k.n.k.k.k.n.k.k.k.k.|.|.|.<.|.|.n.2.n.k.|.n.|.|.n.|.k.|.k.|.n.n.n.n.n.F.F.F.V.V.Z.Z.Z.Z.Z.=+Z.;+Z.!+Z.;+=+", | ||
273 | "N K K S s.o.o.3.3.5.#.N c % % ~ ( i s +.m.2.p.w.m.p.m.s.s.w.m.2.m.m.}.m.t.s.8.Z.5+j+b+)+ +V.Z.Z.=+@+>+>+>+)+,+-+ +>+)+>+>+,+!+;+,+~+>+ +`.;+;+S.V.F.F.l.p.l.p.l.p.|.|.+.` I I O v v B p p p p k j 6 : { { } [ 0 u >.>.P A N 3.M.:+#+P.3.#.}.W. +-+'+-+=+=+=+=+=+Z.Z.-+-+-+Z.-+-+-+V.-+Z.`.-+V.V.V.V.V.W.V.F.S.F.F.S.k.n.n.n.k.|.n.2.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.2.k.n.n.|.n.l.F.l.E.F.F.V.V.V.;+Z.Z.;+Z.Z.;+", | ||
274 | "0 } 0 M 3.3.>.P N c 0 5 : ~ & = < 7 +.8.m.m.2.p.f.t.<.s.}.}.f.}...f.3.3.3.3.n.!+j+o+e+{+>+`.`.;+=+,+,+,+;+>+~+,+,+>+~+)+)+>+'+~+>+,+,+~+Z.Z.;+Z.;+V.V.V.F.F.F.l.l.p.p.|.2.2.|.` ` O O G B B B p p k k : : 6 } } 5 u u [ ] 0 N 5.r.r.P N K .Q. +~+~+'+!+!+!+!+!+!+!+-+-+=+-+-+-+-+-+Z.Z.`.-+`.-+V.V.-+F.Z.V.V.V.W.V.V.V.F.H.E.n.k.n.k.|.n.n.n.k.|.|.|.|.2.2.<.|.|.|.2.|.|.|.|.|.|.n.2.l.n.n.F.l.F.F.V.V.V.;+`.Z.", | ||
275 | "k k 6 p K N 0 } } - : i 6 : : < i s +...2.2.s.3.}.f.f.#.-. . .......#.#. . .2.`.4+e+3+{+,+;+;+`.,+,+,+;+~+;+;+=+'+~+>+~+,+~+-+-+,+~+;+,+,+,+;+@+;+Z.`.Z.;+V.V.V.K.E.p.F.l.l.l.p.l.|.|.` +.+.O O G G p r r k 6 6 k 5 [ ) } % [ u u c 0 [ p <.t. +>+)+)+~+~+)+)+'+~+'+'+!+!+!+!+-+=+=+!+'+=+=+=+=+-+Z.-+-+Z.V.-+W.-+-+-+V.F.-+F.F.F.k.n.n.k.k.n.n.k.|.|.|.|.|.2.|.|.|.|.2.|.|.|.|.|.|.|.|.|.|.|.k.n.l.F.n.F.F.V.V.", | ||
276 | "W y r B t B 5 ( ( < 6 v O r i e s ` m.<.f.f. .f.#. .M .K M W . .K W K B G +.H.{+$+)+>+`.Z.,+,+,+-+!+,+=+,+,+,+,+~+-+'+>+>+)+~+,+,+;+~+,+=+=+`. +`.;+ +`.`.;+`.`.Z.Z.V.F.V.F.F.p.p.p.l.p._.|.|.+.+.O O v M B B r r a { { { { 6 6 6 6 k B ..t.W.>+>+>+<+~+'+)+'+!+^+'+'+'+^+!+^+'+'+'+'+'+!+'+-+-+=+=+-+=+Z.=+-+-+V.-+`.V.`.V.S.V.V.S.F.H.V.F.H.k.n.n.|.|.2.2.|.|.|.|.|.2.|.2.|.k.|.k.|.2.|.|.|.|.|.n.k.n.n.F.n.", | ||
277 | "K K K M K B G r v r v r O +.O s O +...}... .#.W M K t M G M M M K G B O s I ` n.-+-+-+-+-+>+Z.,+,+,+-+=+,+-+,+,+-+,+,+ +~+>+,+,+,+'+-+,+!+,+,+'+,+,+>+,+,+ +-+`.=+@+;+;+;+V.S.;+S.V.E.p.E.p.p.p.p.p.2.8.+.+.+.O I I s 7 | i i e s s I I O <.n.Q.W.`.,+'+_+_+!+^+'+!+_+~+_+~+^+'+^+_+~+_+'+^+~+_+'+!+=+!+!+=+=+=+=+-+-+-+-+-+-+`.Z.Z.V.W.V.W.Z.F.F.E.k.k.k.k.|.k.|.|.|.|.|.|.|.|.k.k.n.2.|.|.|.|.|.|.|.|.|.|.k.n.", | ||
278 | "M G S I I I 8.s H s O W ..m.I 8.p.m.3.#. .}. .M M B r W r B r B r s I F ` 8.j.F.V.`.`.`.-+>+=+,+,+;+;+,+,+>+>+>+-+,+-+>+~+'+,+;+,+'+-+,+,+=+,+~+~+=+=+,+,+,+,+ +=+=+Z.Z.=+,+Z.;+Z.;+Z.@+S.V.F.p.E.p.p.8.p.2.p.8.2.8.I I F I F F 8.` ` 8.2.2.l.F.V.;+=+!+~+_+~+_+_+!+(+!+^+~+_+'+^+(+!+(+!+(+!+_+~+(+!+'+^+!+~+!+!+=+=+=+`.-+Z.`.`.=+`.-+Z.W.-+V.V.W.V.H.n.F.n.k.n.k.|.|.|.k.k.|.n.F.k.|.n.|.|.n.|.|.2.|.|.|.|.|.", | ||
279 | "q q F 8.8.8.8.8.8.E.t.-.M -.p.p.p.<.#. .M S K M r B G v O s s I ` ` 8.8.E.E.Z.;+=+,+>+>+>+,+;+,+,+,+,+,+;+,+-+;+>+~+>+-+-+,+)+=+,+-+>+~+!+;+=+-+,+;+;+,+,+~+,+-+-+,+,+'+,+,+,+Z.,+`.;+Z.;+;+Z.Z.K.S.p.F.p.p.p.p.p.p.p.8.p.8.|.8.p.p.p.p.4.p.F.V.Z.=+<+~+^+~+_+~+!+_+~+~+_+^+^+_+~+'+^+^+_+_+(+(+(+(+(+!+!+^+!+'+'+^+'+!+!+!+-+-+=+-+=+Z.`.Z.V.`. +S.`.V.-+F.V.F.S.n.k.k.n.n.F.n.W.W.n.|.2.2.|.|.2.n.|.|.|.2.|.|.", | ||
280 | "8.8.;+8.<+;+]+]+]+*+M.>.j O |.V. +M. .G O +.S O O I O F ` 8.8.8.8.E.8.;+;+Z.;+;+;+;+;+;+,+>+,+,+`.,+,+-+~+,+,+;+>+;+<+>+-+,+>+;+;+~+>+>+>+~+~+'+'+!+,+~+,+~+~+,+-+-+>+-+,+~+>+,+~+-+,+=+Z.Z.;+;+Z.;+S.;+V.V.F.V.E.;+p.p.p.p.V.E.E.p.E.p.F.S.Z.;+!+!+(+!+^+_+^+^+!+(+_+~+!+!+^+^+_+!+^+^+(+_+!+!+(+_+_+_+(+^+^+^+'+^+~+!+'+^+!+'+;+=+!+=+=+=+Z.`.`.`.Z.W.`.V.-+F.V.W.V.V.V.S.F.F.W.-+n.n.k.n.|.|.|.|.|.2.|.<.|.|.", | ||
281 | ";+]+>+$+{+++++P.#+o.o.K 6 v 2.W.M.o.G O O O ` I +.8.8.p.8.E.l.;+;+;+;+;+;+`.`.-+-+-+=+,+,+-+,+,+,+-+>+>+>+,+~+,+,+>+>+,+>+,+~+-+,+,+~+,+~+)+,+,+,+,+!+=+~+-+-+'+~+~+'+~+!+-+-+!+=+~+;+>+)+,+=+=+,+Z.,+;+Z.@+;+V.;+;+;+Z.;+V.;+;+;+Z.@+V.V.;+!+!+!+(+)+_+_+!+(+!+(+<+(+!+_+_+_+'+!+^+!+!+)+_+^+^+^+[+(+(+_+^+(+(+(+!+(+(+!+!+(+!+(+!+!+!+,+=+-+=+=+Z.Z.-+V.-+`.W.-+`.`.S.V.W.S.F.V.W.W.k.n.n.n.k.|.|._.|.|.2.|.|.", | ||
282 | "Q.$+%+#+P.M.M.o.3.3. .G i s ` H.M.}.O 8.8.8.p.8.F.E.E.;+;+;+;+V.;+@+`.`.-+>+>+>+,+,+=+,+,+Z. +,+>+,+,+-+>+>+,+,+-+,+-+,+,+,+,+-+,+,+,+>+,+,+,+~+=+,+,+=+,+~+-+)+-+,+,+~+)+~+-+~+;+!+!+'+'+-+-+~+,+=+=+,+=+Z.=+Z.!+!+;+Z.V.V.;+!+~+=+Z.;+Z.=+(+_+^+(+_+(+^+'+_+(+(+(+<+!+(+!+(+^+_+_+^+_+(+~+^+'+)+^+^+^+_+^+^+_+_+^+'+^+_+(+(+!+(+!+!+(+~+!+!+!+!+!+=+=+=+Z.=+`.Z.Z.-+`.-+V.`.Z.`.W.V.V.V.F.n.n.k.n.k.|.|.|.2._.", | ||
283 | "s.s.}.}.<. .2.+.2.` |.+.` ` 2.n.p.p.2.p.p.p.;+V.;+K.;+V.V.;+;+;+`.`.`.>+`.`.`.-+,+ +>+>+,+,+,+,+,+,+-+,+>+>+,+,+;+,+,+,+,+,+~+>+~+;+,+~+~+=+!+,+~+'+~+~+;+-+~+-+'+~+~+-+~+'+~+'+!+~+~+,+~+~+)+-+~+~+'+,+-+~+!+;+!+!+!+;+=+,+(+<+^+~+,+Z.,+'+~+^+!+<+_+^+_+_+!+_+(+(+(+<+~+^+_+_+~+^+~+(+'+^+~+^+_+_+!+!+^+~+(+(+^+_+_+(+(+<+(+(+(+(+_+^+(+_+(+!+!+!+!+!+!+!+=+'+=+=+`.`.`.-+`.W.-+`.`.S.S.-+-+V.S.F.k.k.k.|.k.|.", | ||
284 | "2.2.n.2.2.2.2.|.p.p.p.p.p.p.p.n.K.p.p.E.;+;+V.;+V.;+;+;+;+V.`.`.;+`.`. +-+ + +`.,+`.`.,+,+=+=+,+,+ +,+-+-+>+>+>+,+,+>+,+,+,+,+,+-+~+-+>+,+-+'+>+)+-+'+-+~+>+~+,+'+~+~+-+~+~+,+,+~+~+'+'+'+~+)+'+)+)+~+~+,+~+!+!+<+!+!+,+!+-+^+_+^+~+~+!+~+'+~+_+!+(+!+(+_+^+!+_+_+(+!+(+!+~+_+^+^+^+)+_+!+_+!+!+~+_+~+!+^+_+!+(+(+[+(+(+!+<+(+(+^+(+(+^+!+^+(+[+(+(+(+!+(+^+!+!+!+!+!+=+=+=+=+-+Z.Z.-+`.Z.V.V.W.S.W.S.S.E.E.p.E.", | ||
285 | "n.K.p.p.p.H.p.p.p.F.p.p.p.F.F.K.F.V.V.@+Z.V.Z.`. +`.V.`.;+ + +;+ + +`.>+ +-+;+ +`. +,+`.,+,+;+;+>+,+,+>+>+~+)+)+>+)+,+>+,+,+~+-+~+-+,+'+'+,+-+'+>+)+>+~+;+~+,+~+-+'+~+)+,+-+~+~+'+'+~+'+~+'+~+'+~+!+'+~+!+!+<+!+!+!+~+!+;+~+^+(+<+^+'+~+~+^+!+!+_+!+<+_+!+_+_+(+_+_+(+!+<+(+!+!+(+^+^+^+^+(+<+^+(+~+^+_+!+_+^+(+_+_+_+(+(+(+_+^+^+^+_+(+^+^+^+_+_+_+(+^+!+(+(+(+!+^+!+(+'+!+!+=+-+=+=+-+-+-+Z.=+`.Z.Z.V.V.;+S.V.", | ||
286 | "n.F.K.F.W.H.F.V.H.K.H.H.W.W.V.W.W.@+V.@+`.@+`.`. + + +;+;+Z.`.;+`. +`.>+ +`.,+,+,+-+>+-+,+=+,+,+,+,+,+;+-+,+>+-+ +~+=+,+,+,+,+-+,+,+,+>+~+,+,+!+-+~+>+'+~+,+~+~+-+'+'+'+~+'+~+,+~+'+~+'+~+~+~+'+~+'+'+~+~+!+~+<+~+(+~+!+<+!+~+^+!+!+'+^+!+'+~+(+(+!+(+^+'+^+_+!+_+(+!+(+~+^+_+(+(+(+(+_+^+!+(+!+(+~+_+_+(+_+_+(+(+(+}+_+(+(+(+(+^+[+_+_+(+_+(+(+(+^+^+^+(+(+(+(+(+^+(+!+^+!+(+!+(+'+=+!+=+!+=+=+=+=+=+=+Z.;+S.;+", | ||
287 | "H.H.n.H.H.H.H.H.n.H.H.H.H.F.H.@+V.V.;+`. +`. +`.`.`.;+`.;+,+ +>+ +>+>+`.,+-+`.`.`. + +,+;+>+,+,+>+,+-+-+,+,+,+>+,+,+,+-+-+;+>+>+,+~+>+'+>+'+'+-+,+'+~+,+,+!+,+~+~+-+'+~+~+~+'+~+)+)+'+~+~+~+~+~+'+!+'+^+'+~+!+!+_+~+!+!+!+~+^+~+!+^+~+!+!+_+!+~+~+^+'+_+^+^+!+^+(+_+<+^+^+^+!+<+<+_+_+_+(+(+(+(+^+(+(+(+^+}+(+^+_+}+^+(+_+^+_+}+(+_+(+(+}+(+(+}+(+(+(+(+(+(+[+^+^+(+(+[+(+(+(+(+(+!+(+_+(+!+(+!+(+!+!+!+(+;+!+=+", | ||
288 | "t.H.H.n.H.t.H.K.n.H.F.H.K.F.F.V.V.V.V.@+`.;+`. +`.Z.;+Z.;+`.`. +>+ + +@+@+ +,+-+=+,+ +>+;+,+,+,+>+,+,+,+-+,+;+;+,+,+,+,+'+!+~+;+,+,+,+-+>+-+)+~+,+'+'+'+>+~+'+)+)+~+)+'+-+~+'+~+~+)+'+)+'+!+~+~+~+~+~+'+~+)+~+!+~+_+~+'+<+~+^+)+_+_+~+_+!+_+!+_+_+_+!+!+^+^+_+_+!+(+_+)+(+(+(+!+(+(+(+_+(+(+(+(+_+^+^+(+(+}+(+^+^+^+^+^+_+[+^+^+(+^+^+^+_+<+(+(+}+(+(+[+^+^+(+[+^+[+(+(+[+(+(+(+(+}+(+(+[+(+(+(+(+(+(+(+(+(+(+(+", | ||
289 | "H.t.H.t.F.H.K.p.K.p.K.F.F.W.W.V.V.@+;+V.@+Z. +`.`. +Z.;+`.,+,+,+ +>+;+,+=+,+,+;+ +,+>+,+,+,+,+,+'+>+,+,+>+~+=+,+;+>+,+,+,+,+,+~+,+=+'+)+'+~+;+,+~+>+,+)+'+'+>+~+~+,+!+~+~+'+'+'+'+~+~+'+'+)+'+'+'+'+'+~+!+<+~+'+^+~+^+~+!+~+!+^+'+!+_+!+_+^+_+(+!+!+(+_+!+'+^+_+<+_+_+^+'+(+(+(+_+_+_+^+_+(+<+}+^+^+(+(+(+(+}+_+^+_+^+^+_+)+^+_+^+_+(+(+(+(+(+}+(+}+(+(+[+(+}+_+|+^+|+[+(+[+(+[+[+(+[+(+[+[+[+[+[+[+(+(+(+(+(+(+", | ||
290 | "p.H.H.t.K.n.F.p.F.p.K.K.H.K.K.;+V.V.;+V. +;+ + +`. +`.`.`.`. +>+`. +,+ +Z.`.,+;+,+,+>+,+=+,+>+>+-+>+>+,+,+>+,+>+;+>+>+,+,+,+-+,+~+,+'+-+,+!+~+~+~+'+-+'+)+~+~+~+'+-+'+~+'+)+>+)+~+~+,+~+~+^+)+'+'+'+^+~+!+~+~+~+'+'+^+_+'+_+~+^+(+!+_+!+!+!+^+_+(+~+!+_+_+~+^+_+(+(+(+^+_+(+(+(+(+(+(+_+_+[+(+(+[+(+^+^+_+(+(+_+!+^+^+^+^+~+'+_+^+^+_+^+}+_+(+^+(+|+}+}+|+[+[+(+[+(+[+|+}+[+}+[+}+[+|+(+|+|+[+[+(+[+[+7+[+[+}+[+", | ||
291 | "H.p.n.H.H.K.K.H.K.K.F.F.V.V.F.V.V.@+V.@+Z.`. + + +`.`.,+ + +,+`.,+;+ +>+>+>+,+Z.`.,+,+`.,+>+>+>+ +-+>+>+,+>+>+,+-+,+~+;+,+,+~+-+,+!+,+>+~+,+=+'+-+>+)+>+~+~+~+~+~+~+~+~+>+)+'+~+~+-+!+'+'+'+'+'+'+'+~+'+~+~+_+~+_+_+~+'+_+'+^+!+^+^+_+_+(+^+_+^+~+(+_+^+_+_+_+^+^+^+_+(+(+(+(+(+^+(+_+^+(+(+(+_+(+^+[+^+^+^+[+_+^+'+~+!+~+^+^+)+'+_+^+^+)+^+<+(+^+(+(+(+^+^+(+}+[+}+|+|+|+(+}+(+(+|+(+[+}+[+[+7+[+[+[+(+}+[+[+}+", | ||
292 | "H.H.K.n.H.H.K.n.H.H.F.W.H.V.F.V.V.@+V.@+`.`. +>+ + + + +,+;+`.`.Z.;+`.>+>+`.>+,+,+,+,+`.,+,+>+-+-+,+,+>+,+,+>+>+,+,+-+~+,+,+~+,+,+=+!+-+,+~+=+~+~+~+'+'+'+~+-+,+,+'+~+!+'+'+'+~+!+~+~+~+'+~+~+~+'+^+!+_+!+'+^+'+~+_+_+'+^+!+~+_+~+^+~+<+'+'+(+^+'+!+!+(+(+(+(+_+_+!+<+(+~+_+^+(+^+^+(+(+_+_+^+_+(+_+(+[+(+(+!+_+_+^+^+^+!+~+~+_+)+'+^+)+^+^+^+(+_+}+}+[+[+[+(+(+[+}+|+[+|+[+}+[+[+|+}+(+(+[+}+[+(+[+[+(+7+}+|+|+", | ||
293 | "n.H.F.H.H.H.F.H.H.F.H.W.W.W.W.W.`.V.`.`. + +`. +>+ +`.,+`.-+ +,+ +,+ +,+>+>+,+,+`. +-+>+,+,+ + +>+=+,+-+,+=+,+>+,+,+;+,+;+~+,+,+-+>+>+-+-+,+~+,+,+~+,+>+'+-+~+~+'+,+'+)+-+'+'+'+~+~+'+-+~+!+~+'+~+!+_+!+^+_+~+_+)+<+'+^+~+^+^+~+(+!+'+^+^+^+'+(+(+_+_+~+^+!+!+(+(+_+!+(+(+(+(+^+(+(+(+(+(+[+}+}+(+(+^+_+(+^+[+(+(+(+(+(+^+(+(+~+~+^+'+^+'+^+_+^+^+^+^+}+[+[+[+}+|+[+[+|+(+[+[+[+|+(+[+[+7+(+[+}+[+[+[+[+[+|+^+}+", | ||
294 | "H.t.F.n.H.Q.F.F.Q.F.F.V.K.W.W.W.W. +V.`.`. +`. + + + +>+`.,+>+,+`.,+`.`.-+`.`.,+`. +`.,+ +,+;+,+>+;+,+-+ +=+=+,+,+-+>+'+,+)+>+>+)+~+,+~+'+,+~+'+-+!+!+>+~+'+-+'+'+)+~+~+)+)+'+'+~+~+~+'+~+'+~+^+)+'+'+~+~+'+'+_+'+~+'+'+~+~+(+~+_+_+~+_+)+<+)+_+(+(+(+~+_+<+!+!+(+(+_+_+(+(+!+_+(+(+<+(+(+(+^+}+(+(+(+_+(+(+^+^+(+(+(+(+[+!+(+(+'+^+)+^+!+(+_+^+^+^+^+^+|+|+|+[+^+}+[+[+}+[+|+(+|+[+(+[+}+[+[+[+[+[+7+^+|+[+|+|+", | ||
295 | "p.H.H.H.F.H.F.F.F.F.K.H.V.V.W.W. +V. +`. +`. +`.;+;+`.`. + +`. +>+`.,+-+ +@+;+;+,+>+>+>+,+;+,+;+,+,+,+,+-+>+>+,+-+~+,+,+,+,+,+)+,+,+~+>+>+)+-+-+,+,+~+~+)+>+~+>+'+~+'+)+-+)+)+'+'+~+~+>+'+~+'+)+'+'+^+)+'+_+_+!+^+'+~+^+^+^+'+(+'+!+^+_+_+^+_+_+_+^+'+^+(+!+(+_+_+(+(+(+<+(+(+(+_+<+(+(+(+(+(+(+}+}+}+(+(+^+(+(+(+}+[+[+^+[+(+^+[+^+(+^+^+(+(+(+^+[+^+|+^+[+|+|+[+|+[+|+5+(+[+[+[+[+}+|+[+}+[+7+[+[+[+|+|+[+[+[+", | ||
296 | "F.H.H.W.F.H.K.W.W.F.V.V.K.W.W.V.@+V. +`. + + +`.V.`. +,+`. +,+>+>+ +;+,+-+,+`.;+;+,+,+-+,+,+,+;+,+@+;+;+~+,+,+,+>+,+,+,+,+~+;+~+-+>+'+>+>+>+)+~+~+,+~+~+~+'+~+~+'+)+'+)+'+~+,+~+-+~+!+~+)+'+!+^+)+~+~+<+'+'+)+<+'+!+!+_+~+_+'+^+^+'+~+'+'+^+)+^+!+^+_+)+^+<+(+(+^+'+(+(+_+}+(+(+(+(+(+(+^+(+^+(+[+(+(+(+}+(+[+}+[+_+|+(+^+[+(+^+[+[+[+(+^+[+^+(+^+[+_+[+^+^+^+|+|+|+[+[+5+7+5+[+[+[+[+[+[+(+[+}+7+[+[+[+|+5+|+[+", | ||
297 | "K.K.H.H.H.K.H.H.F.F.V.W.V.H.V.W.V.V.`.V.;+W.`.@+@+@+,+`.;+,+ +>+ +;+-+ + +`.;+-+>+,+,+>+,+,+,+-+,+,+~+,+-+-+-+,+,+,+~+;+>+>+~+@+>+,+>+)+)+>+~+,+,+~+,+,+~+>+)+~+>+)+>+~+~+'+~+-+~+~+~+)+^+~+~+)+'+)+)+'+'+'+^+'+'+^+^+!+^+^+<+~+^+~+^+!+_+'+^+^+)+_+'+<+^+'+_+'+_+(+_+!+_+_+_+_+(+(+_+(+(+(+[+^+^+^+(+(+(+(+_+[+_+[+(+[+[+^+(+(+(+(+[+[+[+^+[+[+[+[+[+|+|+|+|+6+|+6+6+6+5+5+[+[+7+|+}+[+7+[+7+[+[+|+|+6+[+|+|+6+", | ||
298 | "K.l.H.H.F.F.F.K.K.W.K.W.W.W.V.@+V.W. + +`.W. + +`.`. +`.`.-+ +`.`.@+`.>+,+,+ +,+ +>+@+ +>+-+,+,+-+>+-+>+;+,+,+,+,+,+-+~+;+'+'+~+~+>+>+-+~+>+>+-+,+~+~+~+~+~+)+~+~+~+~+'+~+'+~+'+'+~+'+'+'+_+'+)+)+^+'+~+~+~+)+^+'+'+)+(+~+^+^+~+^+!+^+!+!+'+)+^+!+(+'+'+^+'+_+^+^+!+_+(+^+^+!+_+_+(+_+^+^+(+[+(+(+(+[+[+(+[+[+(+[+[+(+[+[+|+[+[+[+[+[+[+[+[+6+|+|+5+[+|+|+^+|+6+|+6+5+6+6+6+7+5+7+7+[+5+7+[+[+5+6+6+5+7+5+6+6+6+", | ||
299 | "p.K.F.K.H.F.K.F.F.H.W.W.W.F.W.V. +`.W.`. +&+`.`. + +>+ +;+ +>+>+,+`. +,+ +`.,+ +,+,+,+,+,+>+ +,+`.,+>+,+>+,+,+,+,+,+~+,+-+>+>+>+)+,+'+>+-+~+~+>+~+-+>+>+)+'+,+~+)+~+~+'+'+~+'+'+~+'+~+'+~+~+'+)+'+'+'+'+'+'+'+)+)+^+^+)+^+~+'+_+!+'+)+^+^+^+^+'+^+^+^+)+(+_+^+!+!+(+(+!+(+^+^+(+(+^+(+(+(+^+^+|+[+[+(+(+[+[+|+[+[+|+6+[+|+[+|+[+|+|+|+[+7+5+|+6+5+5+6+5+6+6+6+6+5+5+6+6+6+6+5+[+5+5+5+[+7+5+7+|+7+|+4+6+6+5+6+6+", | ||
300 | "F.F.F.K.H.F.K.H.F.H.H.F.W.W.W.W.V.`.W. + + + +`.;+`. + +`.`. + + + + +,+>+ +,+`.`.>+`.,+`.-+>+>+-+,+>+,+>+,+-+>+ +>+;+>+,+-+-+,+'+,+~+,+,+>+~+,+~+'+~+>+>+'+'+,+)+'+~+-+'+~+~+'+~+~+~+'+'+~+'+)+'+~+'+^+'+^+'+^+^+'+_+~+^+)+^+_+_+^+)+'+'+'+)+~+~+^+^+)+(+!+_+_+^+(+_+!+(+(+^+^+(+[+(+[+(+|+|+[+|+|+[+[+[+[+5+|+[+|+6+[+6+5+[+5+[+[+6+5+5+6+6+6+6+6+6+5+5+6+6+0+6+8+6+6+6+8+5+5+5+7+9+5+5+5+5+5+5+5+6+7+6+6+7+5+", | ||
301 | "K.K.K.H.H.H.H.F.W.H.W.W.W.V.Q.`.W.V. +W.`.V.`. +`.`.;+`. +>+>+>+,+;+;+ +>+-+`.@+>+`.>+>+>+ +`.,+,+,+,+>+,+-+,+-+)+;+=+,+~+,+~+~+,+=+=+'+)+~+>+~+>+>+-+~+~+)+-+!+,+'+)+~+-+'+'+'+)+'+)+,+~+'+'+'+'+'+~+~+'+)+)+'+'+~+!+^+'+'+'+'+'+~+^+_+_+^+^+^+^+~+^+(+^+^+(+(+(+^+(+^+^+[+(+[+(+[+[+[+|+[+|+6+|+5+6+|+6+5+[+7+5+6+5+5+5+5+5+7+9+7+5+5+5+6+6+6+5+5+6+6+6+0+6+6+5+5+5+5+5+5+7+8+5+8+5+5+5+5+5+5+8+8+6+6+7+6+5+6+", | ||
302 | "H.H.H.H.K.F.K.H.H.H.Q.F.W.V.W.V.@+W. +W. + +`.W. + + + +>+ + +>+`.`.;+`. +>+-+`.>+ +`.>+>+,+;+;+;+Z.,+>+>+>+ +,+>+>+~+,+,+-+-+,+,+)+>+,+-+!+,+'+'+,+,+~+'+)+)+'+-+'+'+)+,+'+>+~+,+;+~+,+~+'+'+'+'+'+'+'+'+'+-+)+'+)+,+'+^+'+'+!+(+!+'+(+!+!+!+!+(+!+'+[+(+[+[+[+[+[+[+(+[+[+[+[+|+|+|+5+5+|+5+0+|+6+6+5+6+6+5+8+6+5+6+5+5+0+6+5+5+9+5+8+8+0+0+0+8+5+0+0+6+0+0+b+c+0+0+8+8+5+5+8+5+8+8+8+8+8+8+7+5+6+6+6+7+6+6+5+", | ||
303 | "F.H.F.F.F.V.K.F.H.F.F.Q.V.W.W.W.W. +W.;+V.;+`. +>+`.`.`. +>+>+$+>+ +`.-+`. + + +>+,+>+ +,+`.`.,+=+,+>+-+~+,+,+>+-+,+,+,+~+>+>+'+,+~+~+~+,+,+)+>+,+)+~+-+-+~+,+,+~+'+)+~+'+~+!+-+'+!+'+~+-+^+)+~+~+'+'+-+)+'+'+'+'+!+!+^+'+~+_+^+!+'+(+!+_+^+^+[+^+[+[+[+[+[+|+[+|+5+[+[+|+6+6+6+5+5+5+5+6+5+6+6+8+5+0+8+8+5+0+0+0+0+5+0+8+8+0+0+8+8+8+8+0+5+6+8+5+8+5+9+0+0+5+5+5+8+b+0+8+0+b+0+0+8+0+8+8+9+5+8+8+9+7+9+5+5+|+6+", | ||
304 | "F.H.K.K.p.;+p.F.H.H.V.H.V.H.W.V.V. +W.@+`.@+`. +$+ + +Z.`.`.>+`.-+`. + +,+,+,+,+,+>+,+>+>+,+ +>+ +,+ + +~+,+,+>+,+,+,+>+~+'+,+~+,+-+-+~+,+,+,+)+,+>+)+)+>+~+>+>+,+,+)+>+>+'+~+=+-+,+'+)+>+'+)+'+'+)+)+^+)+~+!+'+'+^+!+^+^+!+(+^+(+(+[+(+^+(+^+[+|+[+^+|+|+5+6+5+6+7+5+5+5+0+6+6+5+0+6+6+5+0+5+0+8+5+0+0+0+8+0+8+5+8+g+0+f+8+8+8+5+8+0+g+0+0+0+0+0+9+5+5+5+8+8+9+9+f+8+8+8+8+8+8+0+8+0+8+5+8+5+5+5+5+5+5+9+5+6+6+", | ||
305 | "H.K.F.K.F.K.H.H.H.V.F.W.Q.W.F.@+W.W. + +V.V. +`. + +`.@+;+`.`. +`.>+;+,+`.;+`.>+ +,+>+>+,+>+>+-+-+>+,+,+,+,+,+>+,+,+-+'+>+,+-+,+=+,+>+>+>+,+>+>+-+,+>+~+=+>+-+)+)+-+-+'+'+)+-+~+~+!+=+'+'+'+^+^+~+^+^+~+(+^+_+!+(+!+[+(+^+[+(+[+(+[+(+[+[+|+[+5+5+|+6+|+6+6+6+6+5+0+5+8+8+5+0+5+0+0+0+0+0+0+0+0+8+f+f+f+f+f+f+f+f+f+f+f+f+f+8+f+f+f+f+0+g+8+8+8+8+8+0+8+8+0+8+8+5+9+0+8+8+8+8+8+5+8+5+8+8+8+8+8+0+0+8+8+5+8+6+6+", | ||
306 | "F.F.K.K.F.W.F.F.H.F.K.V.W.W.W.V.`.W.`.@+`.V. +`.`. +`.`.,+-+`. +,+>+`.>+`. +,+,+ +>+>+ +>+,+>+ +>+>+,+-+-+,+,+,+-+-+-+-+>+)+>+)+,+,+>+>+)+-+-+{+-+,+,+>+,+)+,+,+~+>+-+'+'+'+~+^+~+~+!+!+^+'+)+(+^+^+!+(+(+(+(+^+[+[+(+[+[+[+[+|+|+[+|+5+|+6+6+6+5+5+5+5+0+8+0+0+8+0+8+0+f+0+0+8+0+0+f+f+f+f+f+f+g+8+f+c+f+i+0+g+g+f+f+i+f+f+f+f+0+8+f+f+f+f+f+f+0+8+8+8+8+f+f+5+f+8+8+0+f+8+8+g+0+8+8+5+f+5+j+5+8+5+5+8+7+8+5+6+", | ||
307 | "p.F.H.F.H.K.K.K.K.F.V.W.V.K.V.W.W.V.@+`.W.`.V.`. + + +;+@+ + +;+;+`. +`.>+>+`.,+,+>+>+,+,+>+>+,+,+,+>+ +>+>+-+`.,+,+,+,+'+>+-+-+-+-+-+,+,+>+>+-+>+-+,+=+'+>+~+~+!+!+~+'+'+^+'+(+!+^+~+^+^+^+(+^+(+^+[+[+[+[+|+[+[+|+|+|+6+[+5+5+5+8+5+6+0+6+6+0+0+0+0+0+0+0+0+8+f+f+f+f+f+f+f+f+f+0+h+f+h+h+f+f+h+o+f+f+h+f+i+f+f+o+i+f+h+f+f+m+f+f+f+f+f+f+c+f+f+f+f+f+0+f+f+f+g+8+0+g+8+8+f+5+8+9+f+8+f+5+8+8+8+0+8+5+5+7+8+0+", | ||
308 | "l.F.H.K.F.H.F.H.K.V.H.H.V.W.W. +W.V.W.`. + +@+@+Z.`. +`. + +`. + +>+&+>+ + + +;+,+-+>+`.,+ + +,+`.,+>+>+-+>+>+ +>+>+=+>+>+>+>+>+)+,+'+-+!+~+>+-+'+)+~+~+~+'+'+'+_+~+'+!+'+^+^+^+(+(+(+(+[+^+[+(+[+[+[+7+5+7+7+[+5+5+6+6+6+6+6+6+6+0+0+0+0+0+0+0+0+f+f+0+0+f+f+0+f+f+f+c+h+f+h+f+h+f+h+h+f+m+f+f+f+m+h+m+h+m+m+h+m+o+m+m+m+m+f+f+o+f+f+f+f+f+f+f+f+f+f+f+f+f+f+f+f+g+f+0+f+0+f+f+5+8+5+8+9+8+f+8+8+8+8+8+5+6+6+6+", | ||
309 | "p.n.K.F.H.F.H.W.F.K.V.F.V.V.V.V.`.W. +W.W.`.Z.`.@+W.W. +;+;+@+`.,+`.`. +`.`.;+`. + +-+-+-+,+,+ + +>+>+,+ +>+>+>+,+,+ +,+~+-+~+=+,+'+-+,+,+'+'+~+>+'+~+!+!+~+_+_+(+^+(+(+[+(+(+[+|+[+[+|+|+5+7+5+5+6+6+5+5+0+5+6+5+5+5+6+0+0+0+8+0+8+0+0+f+0+f+f+f+0+f+f+f+i+f+f+f+f+h+f+f+h+m+h+h+m+h+m+m+o+h+o+m+f+o+m+o+m+f+o+i+m+m+o+m+f+o+m+m+o+o+o+o+m+m+m+o+f+o+f+f+f+h+f+f+f+g+f+f+f+f+n+8+f+f+5+f+0+8+8+8+8+5+8+8+8+7+6+", | ||
310 | "8.k.n.F.H.H.H.H.F.H.F.W.W.V.V.K.Z.V. +`.W.W.;+`.;+;+W. +`.`.;+`.`.`. + +;+`.>+ +>+ +>+@+;+;+;+,+,+,+>+>+)+>+,+>+)+!+,+,+'+-+~+=+,+~+'+~+=+!+'+!+~+'+(+(+!+(+(+^+^+|+^+(+[+[+[+|+|+[+|+|+5+5+5+5+5+8+5+8+5+0+0+0+0+0+0+0+f+f+f+f+0+c+f+h+h+i+i+f+h+f+i+h+h+h+m+h+h+m+m+m+m+m+m+o+h+m+o+p+m+o+f+o+m+m+o+m+q+s+m+m+m+q+m+o+m+o+o+f+m+m+m+m+o+o+f+m+o+o+o+o+o+f+m+h+f+f+g+0+g+f+f+8+f+8+8+8+8+f+0+8+0+8+8+6+6+5+7+5+", | ||
311 | "_.4.4.n.F.H.F.W.K.V.K.F.V.V.F.;+K.@+V.W.`.@+@+V. +W.;+ + + + +;+@+ +`. + +,+ +,+ +>+>+>+`.;+-+Z.,+=+=+-+>+)+,+~+-+,+~+-+)+~+~+~+!+~+~+!+!+'+_+^+(+(+_+(+(+(+[+(+7+(+5+5+5+6+6+0+6+6+6+0+0+0+5+8+f+8+0+8+f+f+f+0+0+f+f+f+f+f+f+f+f+f+i+f+f+f+f+h+m+o+f+o+o+m+o+o+m+p+p+s+p+o+s+o+o+q+m+m+o+o+s+m+m+p+m+s+s+m+t+t+m+s+o+m+o+m+s+m+m+q+m+m+m+m+o+o+m+m+o+f+o+o+f+f+m+f+f+f+0+f+f+f+f+f+f+8+8+8+8+8+8+0+6+8+8+6+5+6+", | ||
312 | "` _.4.l.l.F.F.V.V.K.V.K.@+V.V.V.V.@+@+`.V.V.;+;+;+`.W. +`.`. +>+,+ +,+-+`.,+>+ + +>+,+;+=+;+,+=+,+,+,+!+,+~+,+~+~+'+~+~+'+!+!+_+(+(+(+_+(+(+(+(+[+[+|+[+5+[+5+[+6+7+[+7+5+0+0+4+0+0+6+0+0+f+f+8+f+f+f+f+f+f+f+f+m+f+f+h+h+m+o+o+m+o+o+o+m+m+o+o+m+p+o+m+m+m+o+o+s+s+p+m+m+o+s+t+m+m+o+m+m+o+x+s+m+s+m+m+t+s+m+t+m+t+t+s+t+o+s+q+m+q+s+m+p+m+o+f+o+m+o+m+o+o+o+f+f+g+n+g+8+f+g+f+8+f+8+f+0+8+0+8+8+0+6+6+6+5+6+6+", | ||
313 | "_._._.|.k.p.F.F.F.;+F.;+V.W.V.;+;+`.V.`.>+ + +`.`. +,+ +@+ +`.-+>+ +;+;+>+ + +,+,+,+>+,+,+=+-+,+~+~+!+,+!+'+!+!+'+_+_+!+^+^+(+(+^+^+_+(+|+[+7+5+[+7+|+6+5+6+5+5+9+5+8+0+5+8+0+0+c+0+f+f+0+h+f+f+f+f+f+h+h+f+f+m+h+m+m+m+m+m+m+m+o+m+m+m+m+q+s+o+s+s+m+s+q+s+s+m+s+s+s+t+t+t+t+s+y+y+m+y+y+m+y+y+s+s+y+x+m+t+t+s+s+s+s+t+s+s+o+s+m+m+p+s+m+s+m+m+m+o+o+f+o+f+f+i+f+f+f+f+f+g+0+g+f+8+g+f+8+0+8+8+6+6+8+8+7+6+7+6+", | ||
314 | "_._._._.4.j.E.V.V.V.@+K.Z.@+V. + +,+;+V.`. + +$+Z.;+`. +;+`. + +>+>+`.;+!+-+=+=+;+~+)+;+)+~+'+'+'+_+^+~+!+~+~+(+(+(+^+(+(+_+(+[+[+[+|+|+|+[+6+7+5+6+6+6+5+0+0+0+0+8+8+f+0+c+i+c+f+f+i+i+f+h+f+m+m+m+o+o+o+o+o+m+m+p+m+o+t+o+o+m+t+s+o+y+s+m+s+o+s+s+t+m+x+s+s+s+s+s+s+m+x+m+y+m+s+x+s+s+x+m+x+y+y+m+y+y+x+x+o+y+m+x+s+o+y+m+y+s+t+t+p+q+o+o+p+s+m+m+o+m+o+o+o+i+f+h+h+f+f+f+0+f+g+8+f+0+8+8+5+9+8+6+6+6+6+5+7+5+", | ||
315 | "` _.4._._.8.k.l.F.V.V.;+V.`. +`.`.@+`. +>+`.>+`.@+`.>+-+Z.;+;+>+,+-+;+=+,+,+,+,+!+,+)+'+!+~+~+_+~+_+(+(+^+^+(+(+(+^+}+}+(+5+[+[+}+6+6+6+6+0+6+5+5+8+0+8+8+b+8+8+8+8+f+8+8+f+f+f+i+h+h+h+i+m+m+o+o+o+m+m+m+o+m+m+p+p+s+s+s+s+s+t+s+y+x+s+o+y+y+w+y+m+x+x+s+s+x+t+y+y+y+y+x+y+x+w+y+o+y+y+y+y+y+o+y+y+x+m+x+x+x+s+y+o+x+m+s+y+m+t+o+s+t+m+m+o+o+m+o+o+o+o+o+o+f+f+i+i+f+f+h+f+f+8+f+0+8+f+8+8+0+8+5+8+8+5+6+6+5+|+", | ||
316 | "|.` _.4._._.4.k.F.V.V. +@+ +$+`.`. +`. + +`.@+ + +,+ +>+-+,+;+,+;+=+!+~+'+)+~+'+~+_+_+)+_+(+!+_+(+_+^+(+(+}+}+}+[+[+|+4+|+6+6+6+4+6+8+0+6+7+0+0+8+0+0+0+0+0+f+f+f+f+f+i+h+h+m+h+h+o+o+m+p+p+m+o+m+s+m+t+s+s+y+m+s+m+s+t+m+y+x+y+m+y+y+m+x+y+x+y+y+y+m+x+x+x+y+m+x+m+x+y+x+y+x+y+y+y+y+y+y+y+y+w+y+w+y+y+o+x+x+m+y+x+x+y+m+y+s+s+y+s+o+t+s+o+o+m+o+o+o+o+o+o+o+f+f+i+h+0+c+c+i+f+f+8+8+0+0+b+8+8+6+6+6+8+|+6+6+[+", | ||
317 | "_._._._._._._.4.j.E.V.Z.`.-+ +>+`.;+,+-+>+>+,+,+>+-+=+=+,+-+!+=+'+'+~+'+)+!+(+~+^+'+~+_+!+_+_+(+[+[+(+|+|+[+[+[+[+|+6+7+6+6+8+6+8+8+4+b+b+0+8+8+f+c+c+c+c+h+0+f+f+f+h+h+m+p+p+o+q+p+p+p+p+m+o+m+s+s+s+m+s+y+s+s+x+x+x+x+y+x+x+x+y+m+y+y+y+y+y+y+y+y+y+y+m+y+x+y+y+x+y+y+y+y+x+y+y+y+y+y+x+y+y+x+y+x+y+y+y+y+y+y+x+y+y+y+y+x+o+y+o+t+s+s+o+m+m+o+o+o+o+m+m+f+i+h+o+c+c+k+h+0+f+c+c+c+c+8+8+8+5+6+6+6+8+6+4+|+|+6+", | ||
318 | "_.` 8.` _.8._._.|.k.l.V.`.-+>+-+Z.`.,+`.,+,+,+,+>+~+~+~+~+'+~+~+~+^+^+^+'+'+(+!+^+^+(+}+^+[+(+(+(+6+|+5+|+6+4+}+5+6+5+7+6+0+0+8+8+0+0+8+8+8+f+f+c+c+i+i+c+i+i+f+f+n+o+o+p+p+p+m+m+m+o+m+s+s+s+y+o+y+m+y+m+y+y+s+y+y+y+x+y+y+y+x+y+x+x+x+x+y+y+y+y+y+y+x+B+y+x+x+y+y+y+y+y+y+y+y+y+y+y+y+y+y+y+y+y+x+x+y+y+o+y+y+o+y+s+o+y+y+s+s+y+o+o+s+t+m+m+s+m+o+m+m+o+f+o+i+f+h+h+c+c+0+i+f+8+8+c+c+6+0+8+8+7+7+6+7+6+6+4+|+", | ||
319 | "8.H ` _._._._._.4._.j.E.Z.`.-+>+;+;+;+,+,+'+~+!+!+-+,+'+'+'+^+!+~+_+~+~+^+(+(+(+[+}+[+(+[+}+}+6+|+7+7+|+5+6+6+6+6+8+0+5+5+8+4+0+c+c+0+c+c+c+c+h+i+h+i+i+i+m+f+f+f+m+m+p+m+p+m+m+p+t+m+t+s+s+y+s+x+y+y+y+y+y+s+y+x+y+y+y+x+y+x+y+B+y+B+y+x+x+y+B+x+B+B+B+B+y+y+y+B+A+B+y+y+y+y+y+x+y+y+y+y+y+y+y+x+y+y+y+x+y+y+y+x+m+y+y+t+s+o+y+m+y+m+o+s+t+m+o+m+m+i+o+f+o+i+h+h+c+f+f+0+g+c+c+0+6+6+5+5+6+7+6+6+5+7+6+|+|+|+|+", | ||
320 | "` 8.8.8._._.4.4._._._.4.F.Z.,+>+'+)+~+,+,+,+~+~+~+~+~+^+~+_+^+(+^+^+(+(+_+(+[+(+[+(+7+}+|+|+}+6+6+6+9+5+5+8+6+6+9+8+0+8+b+8+0+0+f+c+0+0+8+f+c+k+i+k+h+o+f+m+o+m+o+s+m+p+s+s+s+m+s+y+s+y+s+s+y+y+o+y+y+y+y+y+x+y+x+x+y+y+y+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+C+B+C+A+B+y+B+y+y+y+y+B+y+y+y+y+y+y+y+y+y+x+y+y+y+y+x+o+y+s+s+s+o+s+o+y+o+m+t+m+o+m+o+f+m+h+i+i+i+i+c+c+i+0+f+c+0+0+8+0+8+7+8+7+|+4+6+6+|+|+}+}+}+", | ||
321 | "_._._._.8.4._._.4._.8.j.j.F.Z.'+,+=+'+'+~+'+'+'+!+(+'+_+^+(+(+^+(+[+|+^+|+(+}+7+5+|+5+6+6+6+6+6+6+6+6+8+8+5+0+8+0+0+8+0+f+i+8+i+f+i+i+g+h+f+f+f+h+m+m+o+q+m+m+s+m+s+s+s+s+s+t+t+s+s+o+y+y+y+x+y+y+y+x+y+y+y+y+y+y+B+B+B+B+B+B+C+B+B+B+B+B+B+B+B+C+A+B+C+C+C+C+A+C+C+B+B+B+B+y+y+B+y+C+A+y+y+y+y+y+y+y+y+w+m+x+x+m+y+x+s+o+s+y+m+o+y+m+s+o+m+q+o+o+i+o+k+k+i+f+i+0+f+i+0+c+0+0+g+8+6+6+6+5+5+5+6+6+6+[+7+}+[+^+^+", | ||
322 | "_._._._.4.|.|.4.4.4.4.k.j.l.F.Z.;+!+~+'+_+_+^+^+^+(+^+^+^+_+(+^+}+[+|+|+|+[+|+|+6+|+6+6+6+6+6+5+0+0+c+8+0+8+8+8+b+c+g+0+f+i+0+i+f+f+f+g+i+m+m+o+h+m+m+m+q+p+o+t+t+t+m+s+y+s+s+o+y+x+y+y+x+y+x+x+y+y+x+y+B+y+B+B+B+B+C+C+B+C+B+C+B+C+A+C+C+A+C+C+D+C+C+C+C+C+C+D+C+C+C+B+C+C+A+C+B+B+y+B+y+y+C+y+y+x+y+x+y+y+y+x+x+o+y+m+y+y+o+x+m+y+m+m+t+m+m+i+f+f+h+h+k+i+0+g+8+8+g+8+8+8+8+b+8+6+5+5+|+6+6+6+6+7+[+[+}+[+(+}+", | ||
323 | "_._.8.8.j.4.4.4.4.|._.4.4.k.k.V.,+~+^+_+!+^+_+!+(+^+[+|+(+[+}+[+[+|+6+5+6+|+6+6+6+8+6+0+6+6+5+8+5+8+8+8+8+g+0+f+0+f+0+h+h+h+i+f+m+o+o+f+o+o+m+o+o+o+m+s+m+y+x+m+y+x+y+y+s+y+y+y+x+y+y+y+y+A+B+B+B+B+B+B+B+B+B+B+C+C+C+C+C+C+C+C+D+C+D+D+C+D+C+C+D+D+C+D+C+C+C+C+C+C+C+B+B+B+B+B+C+B+B+C+y+B+y+y+y+y+y+y+y+y+x+x+x+x+y+y+s+m+s+m+y+o+q+p+m+p+o+f+f+h+h+c+f+0+g+8+8+0+f+0+4+8+6+0+6+2+7+6+5+6+|+|+}+}+[+}+[+(+(+(+", | ||
324 | "4.4._.4.j.4.j.k.k.4.4.8.4.|.4.k.V.`.'+^+^+^+_+(+}+^+}+|+[+|+|+4+|+|+6+6+8+6+6+7+6+6+|+0+0+8+5+8+8+0+0+8+0+i+8+g+f+i+i+i+c+m+m+o+o+f+m+m+p+t+m+o+t+m+o+x+s+y+y+s+y+y+y+y+x+y+y+y+x+x+x+y+B+B+A+B+B+C+C+C+C+C+B+C+C+C+C+D+C+C+D+C+D+C+C+D+D+D+E+D+D+C+D+C+D+F+C+C+C+C+C+C+B+B+B+y+B+B+y+B+B+B+B+B+y+y+y+y+y+o+y+m+y+y+t+y+o+y+o+s+s+m+m+h+m+o+o+h+i+c+h+f+8+0+0+0+8+8+8+8+8+8+6+8+6+|+7+6+6+6+|+6+|+2+}+|+[+}+(+(+", | ||
325 | "k.4.4.4.4.8.j.k.4.8.8.4.4.4.4.4.k.Z.Z.'+(+^+(+(+[+|+|+|+7+7+7+|+4+6+6+6+5+6+9+5+8+b+0+6+7+5+f+0+8+8+b+f+f+c+c+f+i+i+i+f+m+o+i+m+m+m+o+o+s+s+t+m+s+s+x+o+t+x+m+y+y+y+y+y+y+y+y+y+B+B+B+B+C+B+B+B+C+C+C+C+C+D+C+C+C+C+E+D+D+D+D+D+D+D+D+D+D+D+E+D+D+D+C+C+C+C+C+C+B+F+C+C+C+A+C+B+B+B+y+y+B+y+y+y+y+x+y+y+y+x+x+y+m+m+y+s+s+m+t+o+m+m+q+p+k+p+i+i+i+f+0+8+8+8+0+8+8+6+0+5+6+6+8+6+6+4+6+4+4+[+|+4+4+|+[+(+}+(+^+_+", | ||
326 | "_.4.j.k.j.4.k.k._.4.4.4.|.k.4.4.k.F.S.-+[+|+|+[+[+6+|+|+|+|+6+|+6+6+8+0+5+5+0+8+8+b+8+0+b+0+b+0+b+0+c+i+i+h+f+f+f+f+m+f+m+m+p+o+t+s+m+y+o+x+o+y+y+m+x+x+y+y+x+x+y+y+y+y+B+y+B+B+B+C+B+B+C+C+C+C+D+D+D+C+D+C+D+D+D+D+C+E+D+D+D+D+D+D+D+D+D+D+D+D+D+F+D+C+D+D+E+C+B+C+B+C+C+C+B+B+C+y+B+y+B+B+y+y+y+y+y+m+y+y+m+y+y+s+t+m+m+m+s+m+p+f+i+m+i+i+g+f+c+b+f+9+8+8+5+8+0+4+c+0+6+6+|+6+6+6+|+|+7+}+}+^+^+|+}+(+}+_+^+^+", | ||
327 | "4.4.4.4.4.j.k.k.4.4.4.k.4.4.4.4.k.k.n.`.'+_+|+|+4+|+|+6+6+|+5+7+|+8+6+8+0+6+8+4+0+8+b+8+f+i+f+b+f+g+i+h+o+f+h+i+m+m+o+m+m+s+t+s+m+o+y+y+x+y+x+x+x+y+y+y+y+y+B+y+C+B+C+B+B+B+B+C+C+D+C+C+D+D+C+D+C+D+D+D+D+D+D+D+D+D+D+D+D+D+E+E+D+E+D+E+D+D+D+D+E+D+D+C+D+D+D+C+C+B+B+D+B+B+B+B+B+y+B+y+y+y+y+y+y+x+y+x+x+s+y+s+s+o+s+y+o+o+o+q+o+h+h+f+i+i+c+8+8+0+8+5+9+5+0+0+8+6+6+|+0+|+6+6+4+4+|+|+|+|+^+}+|+^+(+^+^+(+_+_+", | ||
328 | "_.4.k.4.4.k.|.4.j.j.j.j.k.j.j.4.4.4.4.S.`.!+6+6+6+6+6+5+6+6+6+5+5+5+0+8+0+6+0+8+0+8+i+0+g+f+f+f+0+g+i+f+o+o+m+p+m+m+t+s+s+s+s+x+x+x+x+x+y+y+x+y+y+x+B+B+B+B+C+C+B+C+C+C+C+C+C+D+D+D+D+D+D+D+D+D+D+D+D+D+D+D+D+D+D+D+E+D+E+D+D+E+E+E+D+E+D+D+D+D+D+D+D+D+C+D+E+C+C+B+C+B+C+A+C+B+y+C+y+y+y+y+y+y+y+y+y+f+x+s+m+x+s+m+m+s+p+m+m+m+m+f+h+f+h+i+g+g+8+8+8+8+5+7+6+4+8+6+4+4+6+6+4+|+|+4+|+^+4+[+^+}+}+^+_+_+)+^+!+'+", | ||
329 | "4.4.4.8.4.4.4.j.k.4.j.k.j.j.j.j.j.8.j.k.E.Z._+7+6+6+6+8+6+6+0+8+8+8+8+8+8+0+8+c+b+g+f+i+f+i+m+h+f+f+f+m+o+o+q+m+t+t+s+y+y+o+y+y+y+y+x+y+B+y+B+B+B+B+B+B+B+B+C+C+D+C+C+D+C+C+D+D+D+D+D+D+D+D+D+D+D+D+D+E+D+D+D+D+C+D+E+D+D+D+D+E+D+E+D+D+D+D+D+E+D+E+E+D+C+D+C+C+B+C+A+C+B+B+B+C+A+y+y+y+y+y+y+y+y+y+y+x+x+x+s+o+y+p+s+o+o+q+o+i+i+o+i+h+f+0+0+0+5+8+5+0+8+8+6+6+6+4+6+}+|+6+|+4+4+4+^+(+_+_+|+)+^+^+^+!+'+)+'+~+", | ||
330 | "4.k.4.4.j.4.4.j.k.4.j.j.j.j.j.4.8.j.8.4.k.E.=+}+6+6+5+5+0+5+8+5+8+8+0+0+g+f+0+f+0+g+f+f+o+i+o+p+m+o+o+s+s+y+t+o+y+o+m+x+y+y+x+y+x+B+y+B+x+B+B+B+B+B+C+C+B+C+C+C+D+D+E+D+D+D+D+D+D+D+D+D+E+D+E+D+E+D+E+D+D+D+E+E+C+D+E+E+E+D+D+E+D+F+E+D+D+E+D+D+D+D+C+D+C+D+C+C+B+C+C+A+C+B+B+y+A+B+y+y+x+y+y+y+x+x+y+o+s+t+s+m+p+p+m+o+f+h+o+i+i+i+i+c+i+c+8+8+8+8+6+6+6+|+|+4+6+4+^+4+4+|+|+^+^+(+|+[+^+^+^+^+~+(+'+)+~+)+'+~+", | ||
331 | "j.4.4.4.k.4.j.k.k.j.j.j.j.j.j.j.j.j.j.j.4.k.S.=+(+6+8+8+8+c+0+8+8+8+i+f+f+i+i+f+i+i+i+o+f+m+s+m+m+s+s+t+y+m+w+y+y+x+y+y+y+B+y+B+B+B+B+B+C+C+C+C+C+C+D+C+C+D+D+D+D+D+E+D+D+D+E+E+D+F+E+D+E+E+E+E+E+F+E+F+E+E+E+E+E+D+E+D+D+E+E+D+E+D+D+E+E+D+D+D+D+C+D+C+B+C+C+C+B+B+C+B+B+B+B+B+B+y+x+y+y+x+x+m+x+y+m+s+o+m+m+m+o+m+o+f+i+o+f+i+f+f+0+b+8+8+6+0+5+6+6+6+6+6+6+^+4+|+|+^+|+(+^+^+^+4+^+)+)+'+^+~+)+_+)+~+'+~+>+,+", | ||
332 | "j.j.j.|.|.4.j.k.k.4.j.j.j.j.j.j.j.j.j.j.k.|.j.S.=+[+5+5+8+b+f+g+0+g+f+i+i+i+h+m+m+m+m+m+o+m+x+s+t+s+y+m+y+x+y+y+y+y+A+x+B+y+B+B+B+C+C+C+C+C+D+C+D+D+D+D+D+D+D+D+E+E+E+D+D+E+D+E+D+D+F+D+D+D+E+D+E+D+D+E+D+E+E+D+E+D+E+E+F+D+E+D+E+E+F+D+D+E+D+D+E+D+C+C+y+y+B+B+A+B+B+B+B+y+y+y+y+B+y+x+y+y+x+y+m+x+s+m+s+p+m+m+i+i+h+f+h+h+h+f+0+b+f+b+6+0+6+0+7+7+6+6+|+4+|+[+^+|+|+^+|+|+^+_+^+)+^+^+)+)+^+'+)+~+)+)+-+~+>+,+", | ||
333 | "j.k.n.k._.k.j.E.4.j.j.j.j.j.j.j.j.j.E.E.4.j.4.k.S.=+5+f+f+f+f+f+g+f+i+h+h+p+p+p+m+q+o+y+y+x+s+y+y+y+x+y+y+y+y+y+B+A+B+B+C+C+A+C+D+C+D+C+D+C+D+D+C+D+D+D+D+D+D+D+D+E+E+E+E+E+E+E+E+E+D+E+E+E+E+E+D+E+E+E+E+D+E+E+E+E+D+E+D+E+D+E+E+D+D+D+E+C+C+D+D+C+C+B+B+B+y+B+B+B+y+y+B+y+B+y+y+y+x+m+y+x+y+m+s+m+m+p+m+q+q+i+o+f+f+h+g+g+8+0+b+0+b+8+6+8+9+|+6+[+5+5+|+|+[+^+}+_+}+[+^+_+_+^+)+^+^+'+~+'+)+<+~+)+~+,+>+>+,+-+", | ||
334 | "k.k.|.4._.j.k.j.j.j.j.E.E.j.S.j.E.E.E.E.E.j.8.j.k.S.(+0+g+g+f+f+o+o+m+o+m+m+m+p+s+x+s+s+o+x+x+x+y+y+y+x+x+y+y+B+B+B+B+C+C+D+C+D+D+C+D+D+D+D+D+D+D+D+D+D+E+D+F+D+E+E+F+E+E+E+E+E+E+E+E+E+E+D+E+E+E+F+E+E+E+D+E+E+D+E+E+E+F+D+D+D+E+E+D+D+D+D+C+D+D+C+B+C+B+x+x+x+y+B+y+C+y+y+y+y+x+x+y+x+x+m+m+y+s+s+m+o+h+f+m+h+h+f+g+f+0+g+b+8+9+5+8+6+6+6+7+5+5+}+[+}+[+^+}+_+^+(+}+_+^+~+~+~+_+_+_+'+)+)+)+)+~+-+~+)+>+>+>+,+", | ||
335 | "k.k.4.4.4.j.E.j.k.k.j.E.E.E.S.S.E.E.E.k.k.j.j.j.j.j.=+|+f+f+m+m+o+p+p+m+q+p+s+y+s+o+y+y+y+y+x+y+y+y+B+B+B+B+C+C+C+C+C+C+C+D+E+D+D+D+D+D+D+E+D+D+E+D+E+E+E+F+E+E+E+E+E+E+E+E+E+E+E+F+E+E+E+E+E+E+E+E+E+E+E+E+E+E+E+E+E+E+D+E+E+E+D+D+E+C+D+D+C+C+B+B+B+B+C+B+x+p+x+x+x+y+x+x+x+x+x+y+x+m+m+s+s+m+f+m+o+o+o+m+i+f+i+g+0+0+g+0+0+8+5+8+5+7+6+6+5+[+|+7+}+(+^+^+^+(+(+_+^+_+~+^+~+~+~+'+'+<+~+)+)+>+>+>+-+,+>+>+,+ +", | ||
336 | "|.4.4.4.j.j.j.E.F.k.E.k.j.j.S.E.E.E.E.E.E.k.j.j.j.j.E.!+6+o+o+s+m+o+y+s+y+o+x+y+x+y+y+y+y+B+B+B+B+A+B+A+C+C+C+C+D+D+D+C+D+C+D+D+D+D+D+E+D+E+E+E+F+E+F+E+E+E+F+E+F+D+E+E+E+E+F+E+E+E+E+E+E+E+E+E+E+E+E+E+E+E+E+E+D+E+E+E+E+E+D+E+D+D+D+C+D+E+B+B+B+A+y+C+x+B+x+p+m+m+x+B+y+y+y+x+m+y+m+x+m+m+s+p+o+m+h+f+i+f+c+g+8+g+8+8+6+8+8+8+5+6+6+6+|+|+|+[+[+(+}+_+_+^+^+^+^+^+^+_+~+)+'+'+'+)+~+)+>+>+~+'+,+>+,+>+@+>+-+>+", | ||
337 | "4.j.j.4.j.j.j.j.E.k.k.j.j.E.E.E.j.E.E.j.E.E.j.j.j.j.j.S.[+f+m+s+y+s+m+y+y+y+y+y+A+x+y+y+B+B+B+B+B+D+C+C+D+C+D+D+C+D+E+C+E+E+D+E+E+E+E+E+E+E+E+E+E+E+D+E+E+E+E+F+E+F+E+F+F+E+E+E+E+E+E+E+F+E+F+E+E+E+E+E+E+D+E+E+E+D+E+E+D+D+E+D+E+D+E+C+C+C+B+C+B+y+y+B+y+y+t+s+p+p+m+s+m+x+o+o+y+s+y+o+p+p+m+m+p+o+i+h+0+c+f+f+g+5+6+5+8+6+6+6+6+7+6+4+6+6+|+|+^+(+^+(+(+!+^+_+^+^+^+'+-+'+'+)+)+~+,+!+;+,+>+@+,+~+@+;+,+;+&+ +", | ||
338 | "j.j.j.j.k.j.j.E.E.k.k.j.j.S.E.j.E.S.S.E.j.E.E.j.j.j.j.j.Z.|+f+t+o+y+x+x+y+y+y+y+B+B+B+B+B+C+C+C+C+C+C+C+D+D+D+D+D+D+D+D+D+E+E+E+D+E+E+F+E+E+E+E+F+F+F+E+F+F+F+F+F+F+F+E+E+F+F+G+E+E+E+E+F+E+E+E+E+E+F+F+E+E+E+E+E+D+E+D+E+E+D+D+D+C+C+C+C+C+y+B+y+y+B+C+B+x+y+y+s+p+h+h+s+o+y+m+s+m+m+s+m+m+i+i+k+i+8+c+f+8+8+0+8+9+6+5+5+6+7+|+6+4+|+|+4+^+^+(+}+(+)+_+(+!+(+'+~+~+>+)+'+>+)+~+'+~+@+~+@+)+,+;+,+,+`.`. +`. + +", | ||
339 | "j.j.E.E.E.j.j.E.S.k.j.j.j.S.E.E.j.S.F.E.E.j.E.E.S.E.j.k.j.Z.0+m+y+y+B+y+B+C+B+C+B+C+B+C+C+C+D+D+D+C+D+C+D+D+D+E+D+D+E+D+E+E+E+D+E+D+F+F+F+E+F+F+E+E+E+F+E+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+E+F+F+E+E+E+F+E+F+E+E+E+D+E+D+D+E+D+C+D+C+C+B+C+B+B+B+y+y+y+x+y+x+x+o+m+h+f+f+s+m+o+t+m+m+o+o+i+h+h+f+f+c+8+0+b+8+8+4+8+7+|+4+8+|+7+|+5+[+[+^+^+|+_+_+'+^+'+_+_+^+~+'+'+~+~+,+~+,+>+)+>+)+>+,+ + +>+`.`. +@+`.`. + +", | ||
340 | "k.E.E.k.k.j.j.S.S.F.j.j.S.S.E.E.j.S.F.k.k.j.S.S.E.S.E.j.8.j.(+f+x+y+B+B+B+B+C+C+D+C+D+C+D+D+D+C+E+D+D+D+D+D+E+E+E+E+F+D+E+E+E+E+F+E+E+F+F+E+F+G+F+G+F+F+F+G+G+F+F+F+G+F+F+F+F+G+E+F+E+E+E+E+E+E+F+E+E+E+E+E+E+E+E+D+D+D+D+D+C+D+C+C+B+A+B+B+B+y+y+x+B+y+y+y+x+x+s+p+h+f+0+m+m+s+m+p+h+h+h+i+i+c+8+8+6+8+0+8+8+7+[+6+6+|+|+|+[+|+|+|+^+(+|+_+(+^+_+~+~+'+_+~+^+-+)+'+,+~+-+>+)+>+,+>+>+ + + +-+ + +;+`. +W. +`.V.", | ||
341 | "E.E.E.k.j.j.E.S.V.j.j.j.S.E.S.E.S.E.E.E.j.E.j.E.E.k.j.j.j.j.S.5+o+B+B+B+C+C+C+C+D+C+D+D+D+E+D+F+D+E+E+E+D+F+E+E+E+E+D+E+E+F+F+E+E+F+F+F+F+F+G+F+G+F+F+F+F+F+F+F+G+G+F+F+F+G+F+F+F+E+F+F+F+F+E+F+E+E+E+E+E+C+E+E+E+D+D+D+D+C+D+C+C+C+B+B+A+B+y+x+y+y+x+x+x+s+y+m+t+o+m+f+h+q+m+h+o+q+i+c+c+i+f+0+8+8+6+6+5+7+6+5+[+|+}+|+|+}+^+[+|+^+[+(+!+'+'+!+'+'+'+_+'+'+,+)+>+>+,+{+>+~+ +>+>+`.`. +,+`. +`.;+W. +W. +V.@+ +", | ||
342 | "k.k.j.E.j.j.E.E.S.E.8.E.S.E.E.E.S.S.E.j.j.j.E.E.j.E.j.j.j.j.j.!+5+x+C+C+E+C+D+D+E+D+D+D+E+D+E+E+E+E+E+E+F+E+E+E+F+E+E+F+E+F+F+F+G+F+G+G+F+F+F+E+F+G+G+G+F+G+G+F+F+G+G+F+F+F+F+G+F+F+F+E+E+F+F+F+E+F+E+E+E+E+E+C+E+C+C+C+C+C+C+C+A+C+A+B+y+B+y+x+y+y+x+t+t+m+t+s+s+q+o+f+m+p+o+c+f+f+i+0+0+0+8+8+6+6+6+b+6+6+6+7+7+[+[+|+[+}+(+_+^+_+_+_+(+~+_+<+)+-+'+~+)+~+~+'+>+>+,+>+>+,+>+,+>+ + + + +;+ + + +W. +W.@+W.W.W.", | ||
343 | "j.j.E.j.E.E.E.E.E.S.8.E.E.E.j.S.E.S.k.E.j.E.S.j.E.S.E.E.S.j.j.j.[+f+B+C+D+E+D+C+E+D+E+E+E+E+E+E+E+F+E+F+E+E+E+E+E+F+F+F+F+F+E+F+E+G+F+F+G+G+F+F+G+F+F+F+G+F+F+F+G+F+E+G+F+F+E+E+F+E+E+F+E+E+E+F+E+C+E+D+C+D+D+E+D+D+D+C+C+A+B+B+B+y+y+B+y+y+y+y+x+x+o+s+s+o+s+o+o+f+o+o+f+i+h+i+b+0+0+c+6+8+8+6+6+6+6+|+6+}+6+|+^+4+|+(+(+(+^+^+^+^+(+(+~+'+'+)+'+,+)+)+,+>+>+>+-+,+>+>+)+ +;+ +@+;+ + + + + +`.V.@+W.@+W.K.W.W.", | ||
344 | "j.j.j.S.S.E.S.E.j.S.S.S.E.E.j.;+E.E.E.j.S.S.S.E.S.E.E.S.S.j.j.j.E.[+m+D+D+D+F+D+E+F+D+F+E+E+F+E+E+F+E+G+E+F+F+F+E+F+F+G+F+F+F+G+F+G+G+G+G+G+G+F+G+G+F+F+F+F+F+F+G+G+E+F+F+F+F+E+F+F+C+E+F+E+E+E+E+E+C+D+C+D+D+C+D+C+C+C+C+B+A+y+y+B+x+B+y+y+t+y+y+y+o+o+s+o+m+m+m+m+f+h+h+i+f+0+8+f+8+4+b+5+5+7+|+4+|+|+|+}+^+[+^+_+}+|+_+'+~+~+'+^+'+^+_+,+'+)+-+-+>+~+,+,+-+ +>+$+>+,+,+ +`.`.W.@+W.W. +W.W. +W.V.W.@+V.@+@+W.", | ||
345 | "S.j.E.S.S.j.S.j.S.S.S.E.E.E.E.S.E.S.j.E.j.S.S.S.S.S.S.S.k.j.j.j.j.S.0+B+D+F+D+E+F+F+E+E+F+G+E+F+F+F+F+F+G+F+F+F+F+F+F+G+G+G+G+F+G+G+G+F+G+G+G+G+G+F+G+F+G+G+G+G+G+F+F+F+F+F+E+F+F+F+E+E+D+E+E+E+E+D+D+D+C+C+C+C+B+A+C+C+B+y+B+B+x+x+y+x+y+x+o+t+s+m+m+m+o+m+o+p+k+f+i+c+c+c+b+8+0+8+6+0+6+6+6+5+|+|+|+|+^+4+}+^+(+(+(+_+'+'+'+~+~+'+'+~+'+~+,+'+>+>+>+>+>+>+ +-+ + +>+ + +>+ +@+Z.V.`. + +K.@+V.V.@+V.K.K.H.W.K.", | ||
346 | "E.j.S.S.E.E.E.j.j.S.S.E.E.S.E.E.S.E.E.E.E.S.S.j.S.S.S.S.S.j.k.j.j.j.(+f+C+E+F+E+F+F+F+F+F+G+G+G+G+G+G+F+G+G+G+G+F+G+F+G+G+F+G+G+G+F+G+G+G+F+F+F+G+G+G+F+F+F+F+F+G+G+E+F+E+F+E+E+F+F+E+E+E+C+D+D+D+D+C+D+B+C+C+B+C+B+B+A+B+y+A+y+y+y+y+x+y+s+s+t+p+t+m+m+p+m+o+h+i+f+f+f+b+6+0+8+0+6+6+6+6+6+|+6+[+|+^+|+^+^+_+'+^+_+!+(+^+^+'+~+~+'+,+,+'+~+>+~+,+-+>+,+ + + +`. +`.`.`. +W.`.@+@+Q.W.W.V.V.@+W.V.@+F.W.W.W.W.K.", | ||
347 | "j.j.S.S.E.S.j.j.S.j.;+j.S.S.E.E.E.E.E.S.E.E.S.j.E.S.S.S.S.S.j.j.8.j.E.[+x+D+D+F+F+F+F+F+F+G+F+F+F+G+G+G+G+G+G+G+G+F+G+G+G+G+F+G+G+G+G+G+F+G+G+G+G+F+F+G+F+F+E+F+F+F+F+C+F+D+E+E+E+D+D+C+E+E+C+C+C+C+C+C+C+B+B+B+B+B+B+B+y+y+x+y+x+t+y+y+o+p+m+m+o+h+i+h+o+o+f+o+i+c+c+4+6+5+|+c+4+4+6+6+7+(+}+[+}+(+[+_+^+^+'+_+~+_+_+)+~+~+~+-+-+,+'+~+,+-+,+,+`.,+>+>+,+`. + +`. +&+ +`. +Q.W.V.W.W.;+K.W.W.F.@+F.@+K.H.H.H.W.", | ||
348 | "E.E.j.S.S.j.S.S.S.S.S.S.;+S.E.;+j.E.S.j.S.S.S.j.S.E.E.S.S.E.k.j.j._.j.E.f+B+F+F+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+F+F+G+G+G+F+F+G+G+F+F+E+F+F+F+E+E+E+E+E+E+E+E+D+D+E+D+C+D+C+C+B+B+C+B+y+B+y+B+y+y+y+x+s+s+t+o+s+o+p+p+m+o+i+o+h+i+m+c+i+b+8+0+6+6+5+|+0+4+6+|+|+6+|+(+(+_+^+(+(+^+^+)+^+!+)+_+^+>+)+~+)+>+>+ +,+;+,+>+,+`.`. + +@+`.`.`.`.`. +;+V.V.W.W.@+W.W.V.W.W.W.V.K.K.K.K.Q.W.K.H.", | ||
349 | "j.E.S.j.S.S.S.j.E.j.S.j.S.S.S.S.S.S.S.S.S.Z.S.S.S.j.E.E.-+k.E.j.j.j.j.j.(+m+C+F+F+F+F+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+F+F+F+F+F+G+C+F+E+E+E+E+E+D+D+E+D+D+D+D+C+C+B+C+C+C+C+A+B+y+y+B+y+x+x+t+s+y+y+y+s+x+o+q+p+o+o+i+i+c+o+b+f+i+c+c+|+4+4+6+8+8+6+|+|+4+|+6+|+_+_+(+(+^+^+_+^+)+^+_+'+'+^+~+~+,+-+,+>+,+-+,+-+,+ + + +`.-+`.`. + + +W.W.@+W. +W.W.W.V.Q.W.W.H.W.Q.Q.K.V.V.W.H.K.H.K.", | ||
350 | "S.j.j.S.S.S.8.S.j.j.E.S.S.S.S.Z.S.E.j.S.(+S.Z.E.S.E.E.S.E.E.E.E.j.j.j.j.j.5+x+D+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+F+F+F+F+E+F+F+E+F+E+E+D+E+D+D+E+E+E+C+C+C+C+C+A+C+B+B+B+B+y+y+y+y+x+s+o+m+m+s+o+m+s+m+q+h+f+h+f+c+8+f+4+0+c+b+4+^+|+|+6+7+7+|+^+|+^+|+|+^+^+_+^+'+'+^+'+^+'+-+'+~+,+,+,+-+)+'+,+ + + + +,+,+`.`. + +@+W.`.W. + + +V.W.W.W.W.W.K.V.K.K.K.K.W.V.W.K.K.H.H.Q.H.H.K.", | ||
351 | "S.S.j.j.S.!+j.S.S.8.j.E.E.E.S.S.;+S.j.S.=+Z.Z.E.S.E.E.S.E.E.j.j.j.E.k.j.8.S.f+C+F+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+F+F+F+G+C+F+F+F+E+E+E+D+E+E+D+D+E+D+C+C+C+C+C+A+B+B+B+B+B+B+y+y+v+y+x+s+m+x+m+s+y+o+m+q+o+i+h+k+h+i+c+0+c+0+4+b+0+6+|+'+|+6+|+6+[+^+|+^+^+4+^+(+(+^+^+)+)+_+)+'+)+'+'+'+,+,+~+,+ +>+>+>+ +,+;+ +`.>+ +W.;+`.`.W.`.V.@+W.W.W.@+H.@+V.K.@+K.W.W.W.K.K.H.H.K.K.Q.K.H.m.t.", | ||
352 | "E.E.j.S.;+j.j.!+j.S.S.S.E.S.;+E.S.8.S.S.S.S.S.E.E.S.E.E.E.S.E.E.j.E.j.j.8.j.5+x+F+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+F+G+G+G+G+G+E+F+G+F+C+F+E+C+E+C+D+D+D+D+D+D+C+B+C+B+B+y+y+B+B+y+y+x+x+y+s+y+s+t+o+q+o+p+m+o+m+h+k+c+0+k+c+0+b+8+c+6+|+4+0+6+^+^+|+|+|+|+|+^+|+^+^+^+'+_+~+'+'+)+)+^+)+'+)+)+'+,+`.>+ +,+-+`.,+,+ +`.;+ +`. +`. +@+V.;+V.W.W.@+Q. +W.W.H.K.W.K.V.K.H.K.F.K.H.m.H.s.w.Q.s.H.w.w.", | ||
353 | "S.j.S.S.S.j.j.(+Z.S.S.E.E.S.S.Z.S.j.j.S.S.S.S.E.S.S.E.E.E.V.k.j.E.j.j.j.4.j.E.f+C+G+G+G+G+G+G+G+G+E+F+G+G+G+G+G+G+G+G+G+G+G+G+G+F+G+F+G+G+F+E+F+F+E+E+E+D+E+E+E+E+E+D+D+C+C+D+A+C+A+B+y+x+B+y+y+x+B+t+x+s+m+s+t+m+p+m+m+h+k+p+i+c+0+0+c+0+c+4+6+6+6+^+^+6+c+^+^+!+4+^+4+^+^+!+^+^+^+^+^+_+_+)+^+'+^+)+>+>+>+>+>+`. + +,+`. + + + +;+`.W.`.V.`.W.W.V.@+W.K. +W.W.W.H.Q.K.V.W.H.H.K.H.H.H.K.H.K.t.w.K.H.s.w.m.m.s.", | ||
354 | "E.S.S.S.j.S.S.S.S.Z.S.S.S.S.S.S.S.S.E.j.S.Z.S.E.E.E.j.j.S.S.j.j.j.j.k.j.8.j.j.!+s+F+G+G+G+G+G+G+G+E+F+F+G+G+G+G+G+G+G+G+G+G+G+G+F+G+F+F+F+F+F+F+F+E+E+E+D+E+D+D+C+E+C+D+C+B+C+B+C+y+B+B+x+y+x+t+s+s+t+o+s+p+s+i+o+i+k+i+f+f+i+c+0+8+0+c+6+4+|+|+6+4+^+^+6+|+[+)+^+|+^+4+'+^+^+(+^+'+'+^+~+~+'+'+~+>+)+)+-+>+,+>+ + + + +;+`.W.>+ + +`. + +W.W.@+ +W.V.K.@+K.V.W.K.K.V.K.K.K.H.H.t.K.H.s.K.s.K.m.w.w.m.w.m.m.m.m.", | ||
355 | "S.j.S.S.S.j.!+Z.S.Z.Z.S.Z.S.E.S.Z.S.S.S.S.Z.E.E.S.k.j.E.S.k.j.E.j.E.j.4.j.8.4.k.6+B+G+G+G+G+G+G+G+F+E+F+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+F+E+E+C+E+E+E+E+D+E+D+D+D+D+C+C+B+B+t+B+B+y+y+t+y+o+m+s+m+s+s+p+p+p+o+o+i+f+i+i+c+c+c+i+b+4+c+6+6+4+|+|+|+|+^+'+^+6+^+4+-+)+'+^+'+^+^+!+'+'+^+'+'+'+^+,+'+{+>+ +>+)+ + + +W.W.H.W. +W. +`.`.`. +V.W. +W.W.H.W.@+V.K.V.K.F.K.F.H.K.K.K.w.Q.w.Q.m.K.w.s.s.t.m.K.w.m.s.q.f.q.", | ||
356 | "S.S.S.8.S.S.S.S.S.S.Z.E.S.V.E.E.S.S.S.S.S.S.S.E.S.j.E.E.E.4.j.j.j.E.4.4.j.j.4.4.E.m+F+G+G+G+G+G+G+z+E+E+G+G+G+G+G+G+G+G+G+G+F+G+F+F+F+F+E+E+E+E+C+E+D+C+C+C+C+E+B+C+C+B+B+y+y+B+B+y+o+y+t+o+s+m+p+m+o+i+m+m+i+i+i+i+e+c+6+0+0+|+}+4+4+|+|+[+(+[+[+|+'+^+|+^+4+-+)+!+^+~+^+^+)+)+'+)+)+)+~+'+,+,+>+>+>+ + + + +H.n.F.n.Q.>+V.W. +W.V. + +W. +W.W.W.H.K.V.H.H.K.K.K.K.H.H.n.w.K.t.w.t.m.s.w.q.s.s.m.m.w.m.m.m.m.f.", | ||
357 | "j.S.S.j.S.S.(+S.S.S.Z.j.E.E.E.j.E.S.S.S.S.S.E.V.E.E.E.E.E.8.E.E.k.k.4.8.j._._._.k.(+C+G+G+G+G+G+G+E+E+F+F+G+G+G+G+G+G+G+G+G+G+F+F+F+F+C+E+E+E+E+E+D+D+D+C+E+C+B+B+B+B+B+y+y+t+w+y+t+o+w+m+m+s+q+p+k+h+h+i+i+c+f+c+c+0+4+4+4+4+|+|+|+^+^+|+}+}+|+^+^+^+^+^+^+^+`.-+)+'+-+!+_+'+'+>+,+'+'+-+)+>+>+ +W.W.Q.H. +W.n.t.t.t.H.W.W.W.W. +W.@+W.W.W.Q.H.H.H.W.H.H.H.H.H.K.t.K.m.w.K.w.w.w.m.Q.m.m.t.q.m.f.m.m.m.f.f.f.f.", | ||
358 | "E.j.j.S.(+S.S.S.E.S.E.j.S.S.E.E.S.E.S.Z.E.S.S.F.E.j.S.l.k.j.E.E.k.j.j.j.j._.4._.4.j.f+C+G+G+G+G+G+E+E+E+E+F+G+G+G+G+G+G+G+G+G+F+F+E+F+E+D+D+D+D+C+C+E+C+B+B+C+B+A+A+y+y+s+y+m+t+y+o+m+o+q+i+o+i+m+i+8+c+i+0+c+c+c+4+6+6+|+^+^+^+^+^+_+_+^+^+<+^+[+^+)+^+'+'+>+`.-+>+)+>+~+,+>+~+'+>+>+>+>+>+W. + +n.n.H.H.V.K.2.t.t.t.}.W.W.W.K.W.W.W.Q.W.V.Q.Q.H.w.H.Q.Q.s.H.s.w.s.H.w.m.w.w.w.w.m.m.q.q.m.f.m.f.f.m.f.f.f.f.f.", | ||
359 | "E.S.j.j.S.;+S.E.j.E.E.E.E.;+j.S.S.j.S.S.E.S.F.E.j.j.S.F.j.j.E.k.4.j.j.j.j.8.j._.4.4.=+B+G+G+G+G+G+F+E+E+F+F+G+G+G+G+G+G+G+G+F+F+F+F+D+E+E+D+C+C+D+C+B+C+B+B+A+B+B+y+x+B+t+o+t+s+m+p+m+o+h+h+c+i+i+c+8+g+b+4+6+6+6+6+^+|+|+(+^+4+)+'+^+'+^+'+)+-+)+'+^+)+)+)+-+-+>+;+,+,+,+,+>+>+ +>+W.>+>+W.Q. +F.}.t.Q.W. +F.n.n.t.}.n.Q.W.V.H.@+K.K.W.W.K.K.Q.K.H.T.w.w.K.w.K.s.w.w.T.s.t.w.m.m.m.f.m.f.f.m.f.f.m.f.f.f.i.f.h.", | ||
360 | "j.j.S.!+S.E.S.j.j.S.E.E.S.E.j.S.S.E.Z.E.k.S.E.j.j.E.S.4.j.k.E.E.k.j.E.4.4.j._.` 4._.j.6+C+G+G+G+G+G+E+E+z+E+F+G+G+G+G+G+G+G+F+F+E+D+E+C+D+D+C+C+B+C+B+y+y+B+A+y+x+B+s+s+m+m+m+s+m+k+m+h+c+c+6+c+0+4+5+0+6+6+|+6+6+6+^+[+|+_+^+)+)+^+)+)+{+`.>+>+)+)+)+>+{+ +&+~+>+>+{+>+>+>+>+>+ + +H. +>+H.H.W.F.2.H.Q.Q.H.H.t.}.n.n.n.n.H.K.H.W.H.H.K.Q.H.t.s.t.w.H.t.s.m.m.m.t.s.t.w.m.s.m.f.m.m.f.m.f.f.f.m.h.f.h.f.h.i.f.h.", | ||
361 | "E.E.j.E.S.E.E.l.j.E.E.E.V.S.j.S.E.E.S.V.k.E.E.E.E.E.k.4.j.k.k.k.k.k.k.4.j.k._._._._._.S.i+C+G+G+G+G+G+F+E+z+F+G+G+G+G+G+G+F+F+D+F+B+E+D+C+C+E+A+B+B+y+v+B+t+x+x+s+s+t+q+q+o+m+p+k+f+c+i+c+8+8+6+6+|+|+7+|+|+4+4+4+^+^+'+_+'+~+)+)+)+>+$+`. +-+$+{+$+$+++$+$+$+++++++M.P.++W.>+,+`.W.t. +W.H.n.H.n.n.n.n.n.s.H.n.}.}.t.<.t.H.H.H.K.H.m.Q.K.m.Q.Q.s.s.m.w.m.s.s.s.q.m.m.f.q.m.m.q.f.f.f.f.f.h.f.h.h.f.f.i.f.f.h.f.", | ||
362 | "j.j.S.S.S.E.k.E.j.S.E.E.F.j.E.S.E.S.E.k.j.j.E.F.l.l.j.4.k.k.j.k.|.k.k.4.k.4._._._.` ` 4.=+t+G+G+G+G+G+G+F+F+G+G+G+G+G+G+F+F+F+F+u+E+C+D+C+B+C+C+B+x+y+t+x+y+t+y+o+m+m+o+o+q+o+m+h+b+c+c+c+4+6+4+|+|+|+4+|+^+4+4+^+_+^+'+~+'+-+-+)+>+>+$+>+Q.$+$+++++P.P.P.P.P.P.r.P.P.P.o.Q. + +W.W.t.W.W.Q.n.H.n.n.t.t.t.}.M.n.<.t.s.<.t.Q.w.H.w.H.m.s.H.m.w.w.w.q.M.q.w.m.f.q.s.m.m.s.m.f.f.q.f.f.f.f.f.f.f.f.h.f.f.e.e.e.e.e.", | ||
363 | "E.j.S.S.E.E.j.E.k.E.S.E.j.j.j.E.E.F.l.l.j.E.E.k.k.k.4.j.k.4.4.k._.4.j.k.|._._.` _._.|._.E.f+F+G+G+G+G+G+G+G+G+G+G+G+F+F+F+F+F+D+C+C+D+C+B+C+A+C+v+t+B+s+t+s+s+s+s+p+q+o+i+o+i+i+8+0+c+c+6+6+|+(+^+_+|+^+4+)+^+{+)+'+>+)+'+)+>+>+&+W.$+ +M.M.++P.P.r.r.r.o.r.r.d.5.~.~.5.o.Q.W.>+ +H.n.H.W.H.t.n.H.Q.t.Q.n.}.t.n.n.2.2.t.K.t.t.w.w.s.t.K.m.t.m.s.w.s.m.s.q.f.s.o.f.f.m.f.f.m.q.f.i.i.e.h.f.h.f.f.f.i.i.-.h.-.h.^.", | ||
364 | "E.S.V.F.F.E.j.j.j.E.V.k.j.E.8.;+E.E.j.j.l.l.E.k.k.|.4.4.4.4.4._._._.j.E.|.` 8.H _._.` ` j.(+y+F+G+G+G+G+G+G+G+G+G+G+G+G+E+D+F+u+D+D+C+C+A+B+u+q+k+c+x+s+q+t+p+p+o+o+o+o+c+k+c+c+6+8+6+|+6+|+|+[+}+^+|+^+)+{+)+{+)+)+>+>+>+>+ +W.$+M.P.M.M.P.r.r.d.d.~.~.P P P P A N P P 3.M.Q. +`.F.n.n.H.Q.}.n.H.H.n.s.<.<.s.t.n.t.<.m.w.w.K.w.w.m.m.m.m.m.m.s.m.s.m.t.m.f.f.q.h.f.f.f.f.f.h.m.h.f.f.f.h.f.h.e.-.-.e.0.6.6.^.6.", | ||
365 | "S.S.S.E.E.p.E.E.j.E.S.p.j.S.j.j.E.E.j.l.E.j.k.4.k.k.|.k.4.4._._._.4.4.4._.H 4._.|.` ` ` _.E.0+F+G+G+G+G+G+G+G+G+G+F+G+E+F+E+E+r+D+B+B+B+C+d+e+^+6+f+t+o+m+p+q+o+p+m+o+b+0+c+b+6+4+4+4+|+6+[+(+_+^+^+(+'+'+'+'+-+$+>+&+$+$+$+++M.P.P.r.d.5.d.~.~.A A A u u c c c 0 0 u N 3.M.$+W.W.W.n.n.Q.H.<.t.H.H.s.n.<.t.H.t.w.w.w.w.w.m.m.m.p.m.m.m.q.m.m.f.f.m.w.f.m.q.f.i.f.h.f.f.m.f.h.f.f.f.e.e.i.-.e.e.e.e.^.0.^.^.h.^.", | ||
366 | "S.S.E.E.S.E.j.E.E.V.E.k.j.j.E.E.E.E.E.E.l.j.k.j.E.4.4.4.4.k.4._._.4.k.4._.` j._._.` F ` _.8.S.y+F+G+G+G+G+G+G+G+z+F+G+E+D+C+B+k+B+t+C+B+u+++-+[+0+f+m+t+o+o+i+o+p+i+f+b+8+0+4+6+8+|+|+}+_+(+_+^+^+)+^+)+{+$+{+{+$+$+$+M.P.P.P.P.5.~.~.~.P A c ] ] % ] [ 0 0 0 0 0 u u N #.o.M.M.Q.H.n.2.n.t.}.H.Q.n.s.2.t.t.t.t.t.w.w.w.w.m.s.m.s.m.m.m.q.q.m.m.f.f.m.f.m.f.f.h.f.f.f.i.f.f.i.i.e.e.e.-.e.0.>.0.^.6.0.^.^.6.^.^.", | ||
367 | "E.F.F.E.j.E.j.S.E.E.E.j.j.8.E.j.S.V.E.F.4.4.4.k.k.|.4.4.k.4.4._.4._._._.` _.4._.` F H ` H _.j.8+E+G+G+G+G+G+G+G+F+F+E+C+u+r+e+4+e+e+t+B+v+n.S.5+f+f+q+m+m+m+i+f+k+k+8+8+8+6+|+4+4+|+|+[+_+_+(+'+^+)+{+++$+++++++P.P.P.r.r.5.5.P P c c c ] ] % % % % % [ 0 [ 0 j 0 u u P #.o.M.M.Q.W.t.n.t.<.n.H.t.s.t.m.w.w.s.s.w.w.w.m.m.t.m.m.m.q.q.q.f.f.f.f.f.q.f.f.f.h.h.f.i.i.i.f.e.e.i.e.e.>.e.6.6.^.9.6.6.-.6.6.6.6.6.6.", | ||
368 | "E.E.j.j.S.8.;+S.l.l.j.j.j.j.S.E.E.l.k.l._.8.4.k.k.k._.4.k.|.4._.4.4._._.|._.4._.` I F ` F _.j.!+B+E+G+G+G+G+F+G+F+F+E+r+e+3+^+6+|+|+c+s+r+n.=+f+y+h+i+q+q+c+c+f+h+4+8+8+6+7+(+|+4+^+^+[+^+)+^+)+{+++{+++#+#+P.r.r.d.d.~.P P c c % ) % % % % + & ) ) ) c 5 0 5 j u u N P r.M.Q.H.K.w.n.t.t.t.t.H.m.w.w.w.w.w.m.m.m.m.m.q.m.m.f.f.f.q.q.f.f.f.h.f.f.h.q.f.f.h.f.f.i.e.e.f.>.h.-.6.6.6.^.h.0.^.e.6.h.-.6.6.^.^.6.", | ||
369 | "l.E.p.j.S.j.k.F.k.8.l.j.j.E.p.l.k.k.|._._._._.n.|._.4.k.k._.4._.k.` |._._._.|.` ` ` H ` F H _.E.m+E+F+G+G+F+G+F+F+E+D+d+ +=+0+m+0+^+'+c+h+-+-+6+m+i+k+f+f+c+0+c+h+c+8+c+7+|+|+|+^+^+^+3+^+{+{+++++#+#+r.r.d.5.~.P A c c ] ] ] ] ] ~ [ [ [ % % [ % ) 5 0 j j 0 j u N #.5.P.M.H.s.K.s.t.t.t.s.s.s.w.m.s.m.m.m.m.f.m.q.f.q.f.m.m.q.f.f.q.h.m.h.i.q.f.i.i.f.f.i.e.>.e.6.6.0.0.6.h.^.0.6.^.6.1.^.6.6.6.^.6.6.^.6.", | ||
370 | "k.j.l.j.l.j.E.l.4.j.j.j.E.E.4.|.l.|._.8.4.4.k.k._._.j.k.k._.4._._.` _.|._._.|.` F I F _.` F H 4.[+x+E+z+G+F+F+F+E+E+C+v+-+!+o+x+i+4+>+^+0+|+W.^+i+h+c+c+0+8+0+8+c+8+6+b+7+7+^+|+^+{+{+++#+#+#+P.r.d.d.~.P A c c c ] ] % ] ] ] h h h c c 0 [ % % ) ) [ 0 0 u p j t u u N 5.M.M.H.s.H.s.w.w.s.w.T.w.w.m.q.f.q.q.f.q.f.q.f.q.f.h.h.h.f.f.q.f.f.q.i.i.i.e.0.e.6.e.e.0.>.6.^.6.-.0.^.0.^.0.6.6.0.0.^.-.h.6.-.6.6.^.", | ||
371 | "E.k.j.k.j.k.l.k.k.j.l.j.E.l.|.4.4._.8.4.4.k._._._.k.k.4._._._._.` _._.|.|.|.` F ` H ` _.F H F 8.E.m+D+F+F+F+E+E+F+C+E+r+)+=+o+y+s+e+>+-+6+0+`.-+^+3+3+^+4+6+8+c+8+6+8+0+6+4+4+{+{+++#+#+r.r.d.~.P P c c ] ] > > ] ] l l d w w l l h ] c C g % % ) ) [ 0 j j j j u u N P 3.o.M.s.w.s.m.m.Q.m.m.m.m.m.q.q.q.q.q.q.h.q.f.q.m.f.m.m.q.q.i.i.i.h.f.e.e.e.5.e.e.^.6.6.^.i.>.e.e.6.e.0.>.6.h.-.h.^.6.6.6.6.6.6.-.6.6.", | ||
372 | "k.E.l.l.j.S.k.4.l.4.4.k.l.4.4.j.4.|.4.j.4.4._._.4.E.n.|.F _._.` H _._.` |.` ` I F F ` ` I F F H j.5+x+E+F+F+E+C+C+C+B+r+^+=+6+q+p+k+$+F.^+6+^+-+-+>+>+!+|+|+8+4+c+6+|+6+|+3+#+#+#+P.5.d.~.P c c ] ] % % % ] ] d w w w w w w A c ] ^ [ [ A y ) @ & ) ) [ 5 j j j j u u K N 3.P.o.Q.m.s.Q.q.m.m.m.m.q.m.m.m.f.f.h.q.m.f.h.q.q.h.f.f.f.i.i.e.i.6.e.e.6.^.e.^.e.^.0.e.6.e.>.e.^.0.^.0.e.6.6.6.-.6.^.6.6.V h.6.6.-.6.", | ||
373 | "E.l.l.j.j.F.l.j.k.4.k.F.|.8.j.k.k.k.|.4._.4.4.4.4.k.` ` ` ` _.F _.` I ` ` ` ` ` F F F F F F ` H _.S.m+D+E+E+E+B+A+B+B+o+c+^+-+c+p+h+Q.n.[+0+^+-+-+V.Z.'+|+6+|+|+4+4+6+^+4+:+#+r.d.P P c c ] ] ] % % > ] h P R Z Y R w C l ] _ ] ] ; % ] W j $ % % ) ) 0 0 j u t p u u N N 3.o.Q.M.m.m.m.w.q.q.m.m.m.m.m.f.f.q.f.f.h.f.o.i.f.i.i.i.h.i.e.e.6.e.6.0.0.6.6.6.0.e.0.:.0.^.e.0.0.0.e.^.^.6.-.6.9.^.6.-.6.^.:.^.6.6.6.", | ||
374 | "k.k.l.|.j.k._.8.|._.k.E.|.4.k.k.|._._._._.4.4._.|.|.` ` ` _._.H ` ` F F ` ` ` F ` F F q F F H F _.j.[+x+D+C+u+r+y+y+s+p+h+4+`.^+3+{+n.k.(+f+4+^+!+=+!+(+|+|+|+|+^+|+|+|+4+#+r.P A ] % % ] + > ] h l n C C R R w d c ] ] > % % % ] % % c T g $ % ) ) 0 0 t 0 u j u u N N 3.o.s.Q.s.m.m.m.m.f.f.m.h.h.m.f.h.f.q.q.q.f.i.i.i.e.i.e.-.e.^.e.-.6.e.0.e.e.e.6.6.e.0.0.6.6.^.0.0.0.h.6.^.9.6.>.:.0.:.6.6.6.:.0.^.:.:.", | ||
375 | "k.l.|.4.j.4.8.|._._.4.k.|.k.k.|.` _.` ` _.k._._.|.` ` ` H _.` ` ` F F ` _.` ` F ` F F H q q F F F _.S.f+v+r+g+y+y+x+s+s+p+e+`.-+>+`.E.Z.0+0+0+6+5+(+[+|+^+}+(+[+|+^+[+^+3+#+~.c ] % % $ ] h l w w w R h R C c ] ] > % > % ; % ] ] ) % c P c & % ) ) 0 0 0 j u p t u N K }.s.M.o.q.f.m.f.f.h.m.m.m.f.h.m.f.q.q.f.f.i.i.5.0.e.^.0.0.e.e.6.6.e.^.0.0.6.6.6.^.6.^.6.6.-.6.^.0.6.^.6.6.0.6.:.6.:.0.6.^.6.^.6.:.1.1.", | ||
376 | "k.k.4.4.j.4.4._._.4.k.|._.|.|._._.` ` _.4.|._._._.` ` F _._._.` F F F ` |.I F ` F F I q q H q ` F ` |.)+e+4+m+x+t+t+t+s+m+e+-+=+Z.=+=+(+0+e+4+4+6+|+)+,+^+}+_+!+[+^+}+4+{+#+P ] ] ^ l n l T R R C l c ] c ] ) % % % & % % ; % % ] ~ ] A T c $ % ) ) 0 u p t j p t u N N 3.}.Q.s.s.h.f.h.m.h.f.q.f.q.q.q.i.i.i.i.i.e.e.e.0.e.^.e.6.0.0.0.0.0.0.0.0.0.e.e.0.0.0.e.6.e.6.6.^.6.6.^.6.6.6.:.6.:.^.1.1.:.1.:.^.^.:.", | ||
377 | "4.j.4.j.8.k.|._.` 4.|.4._.` _.` _.+.` _._._.` |.` ` F H _._.` ` ` F F _.` F F F I F q q H q H F F ` |.n.n.!+o+o+s+y+m+p+i+0+|+!+[+[+[+8+c+{+{+)+^+3+>+V.!+^+_+^+~+^+^+^+)+++o.h n C w R w C l c c ] ] ] % ; % ] % % % % > % % ] % % ) A P C $ % % % ) 0 j j u t u u u N #.3.q.o.M.m.f.m.h.f.q.q.f.q.f.i.e.e.5.5.0.6.e.0.0.^.6.h.6.^.e.0.0.0.0.^.e.^.0.6.e.^.1.^.1.0.^.6.^.6.6.6.6.6.6.^.0.6.6.1.:.1.0.:.0.:.:.^.", | ||
378 | "_.4.4.k.4.k.|.|.` 4.4._.` _._.` _.` ` _._._._._.` ` F _._._.` F F F ` ` I F F F F F q q q q H F q F ` +.2.=+f+o+m+q+o+k+c+c+0+6+6+4+)+4+4+$+Q.-+-+)+Q.H.-+!+_+'+~+^+)+)+)+++N.T w w C l ] h ] ] ] > % % % ) ) % ] % ) % > % % ] ] ) ] A T g % ) ) 0 u u j t u N N N #.3.}.s.o.m.f.q.q.q.q.i.e.e.e.e.5.1.1.d.1.6.6.e.0.0.6.e.0.6.e.6.6.e.e.6.0.e.0.0.0.e.0.0.1.0.^.e.^.6.^.:.^.6.:.^.6.^.^.6.^.:.^.^.:.^.:.^.", | ||
379 | "|.|.|.|.|._._._.` _.j._.` _._.` _._.` _._.` ` ` F ` H _.` ` F F F F F ` I ` F F q q q H q q F q F F O O B |.^+f+h+i+k+h+c+0+0+6+c+3+>+)+6+-+<.n. +$+>+n.`.)+~+)+'+'+)+)+{+:+#+T n h ^ ) ; > ] > % % % % ; % % & ) ) % % % % % ] [ c P >.g & % % [ ) 0 u u t u u N N N #.3.o.M.Q.q.q.f.f.i.e.e.e.e.e.e.0.0.0.0.0.6.h.0.0.0.6.6.e.6.6.6.h.6.6.e.^.6.0.0.>.6.^.0.>.1.0.6.6.^.:.0.9.:.e.^.^.:.6.:.:.^.^.6.:.:.:.:.", | ||
380 | "` |.k.|.|.` ` ` ` _.j._.` ` ` ` _.` ` ` ` ` |.` F ` _._.` ` F F F F F F ` ` q F q q q q F q q q q q s I 6 G V.6+0+f+c+c+4+6+5+|+4+$+n.>+)+>+n.<.W.W.$+n.H.>+>+>+>+ +{+>+>+++#+A ^ & $ ; & % % % % ~ & $ ) ) % @ = ) ; % % + % ] [ c A >.u % % % ) [ j u j t u N N N N K 3.s.T.M.T.f.i.i.i.e.e.^.6.9.e.0.0.e.e.e.6.h.6.6.6.h.6.h.-.0.1.e.6.6.e.e.6.0.^.e.e.6.6.6.0.1.^.6.6.^.6.^.:.6.6.^.(.^.^.9.^.:.^.6.^.1.:.", | ||
381 | "_._.` |.|.` _.F ` _.k.|.` |.F H _._.` F ` ` I F F ` ` I I F F q F F F F _.F q q q q q q q q 7 e e e e v : { 2.-+c+8+6+6+6+|+4+6+4+)+n.W.)+>+t.2.n.H.Q.t.n. +,+ +W.$+>+ +>+#+#+A ) ) % % % ] % @ % ) = & & % ) & & ) ) % + % % % ] ] ] P P A c % % ) [ 0 t u u u u u N N #.3.q.M.T.o.e.e.>.0.0.0.0.1.0.0.e.e.6.6.6.h.6.6.h.e.6.6.6.6.0.1.0.0.e.0.6.-.6.6.6.6.^.^.^.0.>.0.^.6.6.^.:.:.:.:.:.6.:.6.!.6.^.:.^.:.:.^.", | ||
382 | "_._.` |.` ` _.` ` 4.|.|._.` ` _.` F F H F I ` F ` I F F F F F F F F F F ` F q q F q b b s e e e i : e | : = v F.(+}+4+|+_+|+^+)+^+{+n.n.-+W.n.2.H.H.t.}.n.Q. +>+W.V.`.Q. +$+#+P ^ ) % & ) ) $ $ % ~ ) ) ) g { ) [ ) $ + + % % ] ] c P N c % % ) 0 u u u u u N N u N N 3.s.M.N.q.0.0.1.0.1.0.^.0.1.0.e.e.e.6.0.6.6.6.6.6.h.6.e.0.0.6.6.0.e.6.6.6.0.6.^.0.0.0.6.:.:.0.^.^.1.0.^.:.:.1.:.^.:.^.:.V 6.!.^.!.:.!.", | ||
383 | "_.+.` |.` _.|._._.|.` ` ` ` ` ` ` F F I F I F ` I I F F F F q F q H F ` F F q q F s b b 4 i | : : - | 4 - @ 6 |.=+[+|+|+^+^+4+)+)+>+Q.n.Q.>+Q.n.H.H.Q.<.}.H.`.W.`.Q.W.W.W.++#+>.[ ~ ~ & & ) ) ; ) = } [ ) ) } g [ ] ) % % % c P P c + % ) c 0 u u u u u K K N #.3.M.P.P.0.e.0.0.e.0.0.0.e.0.h.6.0.6.1.0.e.e.0.e.e.6.e.6.0.0.0.^.6.6.e.-.e.^.1.1.:.^.6.^.6.0.^.6.6.^.:.[.1.^.6.:.[.:.:.:.^.6.:.^.!.^.:.", | ||
384 | "_.` _.` ` _.|.` ` ` ` ` ` ` ` F ` H F F F F q F F F ` F q q q q F F F F q q 9 q s e | i : { : - ( | | e ( @ { v F.^+^+^+!+^+)+)+)+)+Q.<.H.W.H.<.H.H.n.<.2.n. +Q.W.W.W.H.H.M.#+5.] { ) ) $ ~ ] h ; ~ } 0 [ [ } 0 [ ) ; % + + & @ % % u N [ & ) [ p u u u u u K N N N 5.M.N.u.0.6.6.0.6.6.0.6.6.0.h.6.0.6.0.0.0.0.1.1.0.6.0.6.e.0.0.^.6.6.0.0.0.0.1.1.1.0.:.:.:.:.^.^.:.:.:.:.:.:.:.:.:.(.^.!.!.V :.(.:.:.:.", | ||
385 | "` ` |.` ` |.|.F ` +.` ` F F ` F F F I F F F F ` F ` ` I q q q q q F q q b 9 b e i : : { { - - : ( | | e ( @ - 6 2.`.)+^+)+^+)+>+)+$+W.}.n.W.W.<.n.H.H.n.n.H.W.W.W.K.W.H.K.$+#+r.% { { g & } [ [ ~ [ [ [ ] [ [ ) ; ; + + + % % % % % % c N c % % ) 0 0 0 t K u u K N N #.3.P.u.5.0.e.6.6.0.e.0.1.6.6.0.e.e.e.x.6.6.0.1.d.0.0.6.>.0.0.0.6.6.0.1.^.6.^.6.1.^.^.0.:.1.^.9.(.:.:.:.:.:.(.^.:.^.!.:.^.^.!.:.(.R :.(.", | ||
386 | "_.` _.` ` ` I I F ` ` ` ` F ` H F F F F F F F ` ` ` I F q 9 H q ` F b b 7 7 | : : { { - ) : , | | 4 4 7 | & @ { G n.,+)+>+>+-+>+>+$+H.n.n.n.W.o.n.W.H.n.n.t.Q.H.W.K.H.Q.K.*+*+P.) { } } = ) [ { { ~ ] [ % ] ; % ; + % % > ] % % c N c % ) 0 u u t t u K u K #.#.o.P.q.0.1.0.6.0.0.e.0.0.0.1.1.0.0.0.0.6.i.0.0.0.0.6.6.9.:.0.1.1.1.0.1.0.1.^.6.1.:.:.^.:.1.^.6.:.^.:.:.:.:.(.^.:.^.^.!.(.:.V ^.(.:.:.R ", | ||
387 | "|.` +.I ` ` ` F ` I O ` ` F F q q F F F F F ` F ` I F q q q H _.` b 7 4 | ( : : ) ~ = = - - ( | 4 4 b e | = % = 6 2.W.-+>+>+Q.>+Q.W.W.n.<.F.V.n.t.H.H.w.H.H.H.Q.w.Q.T.K.T.$+P.u.g { a ~ ~ [ ~ ) & & % > + ; + % % % % % % % ] ] ] u P [ % % % 0 u u t K u N N K N #.o.o.i.e.0.1.1.6.0.0.6.0.1.1.0.0.0.0.6.6.6.1.1.6.6.6.6.0.0.~.[.~.1.:.0.^.6.6.:.9.^.6.:.1.(.:.:.0.:.6.^.9.(.:.:.(.(.:.:.:.:.:.R (.R :.:.", | ||
388 | "|.` ` F I F I ` F F F I ` I q q F F F F F ` F F F F b q 9 F ` |.O e 7 | ( - = { { { - ( ( | | | 4 4 1 b | = & : O n.`.`.W. +W.W.W.W.H.n.Q.H.H.H.K.K.w.H.m.w.H.K.w.s.T.H.Q.M.P.y g ~ ) % ; $ $ ; + % & ; % + % % % % % ) ] % % [ N P ) ; % ) u u t K u K K K N #.3.P.o.5.6.0.d.1.6.6.0.6.6.0.0.0.0.6.6.6.6.6.6.1.0.0.9.6.1.0.1.[.~.1.6.6.6.:.^.:.g.:.6.^.^.1.^.^.:.(.(.:.!.6.!.^.:.!.:.:.T (.:.:.R (.:.:.", | ||
389 | "` +.` ` ` ` I F F F F I F I F F F F F q F F F F F q q q q q ` I b | ( - - { = - = ( ( < | | | | | b b 8 7 { % & - e |.F.$+W.W.W. +H.K.H.t.Q.w.K.w.K.Q.w.T.t.w.q.T.t.T.s.s.M.o.N.A % ) $ ; ; % + + + @ % [ % > % % % % ) ) 0 0 [ [ [ 0 N u % % % ) t K B K K u K N K N 5.o.o.e.e.0.0.1.6.x.6.u.1.6.0.0.0.h.6.6.6.x.1.9.9.1.0.1.1.1.d.1.1.0.:.:.6.^.:.:.:.:.:.:.:.[.:.[.^.:.:.(.^.!.V !.6.T :.(.(.(.R :.(.R R !.", | ||
390 | "F ` F ` ` ` I ` I I q F I F F ` F F q q F q q s F q q q q F s i | ( , { = { ~ ( : ( ( | | 8 7 7 e 4 b b 4 ( $ = 6 +.F.W.Q.W.Q.W.Q.H.H.H.Q.s.K.Q.w.w.K.m.s.w.s.q.m.m.s.T.s.o.N.u % + + + + + % [ 0 [ % % % % % [ 0 c c [ c c u W c + % % [ B K K K K K K N N #.5.o.5.6.0.0.6.6.0.0.9.0.0.6.1.u.0.6.6.6.1.9.0.1.[.1.:.1.1.1.1.1.1.1.^.:.0.^.0.^.:.6.:.:.:.:.^.(.^.:.:.R :.!.9.!.(.(.:.R (.(.R :.(.!.(.(.", | ||
391 | "` ` ` I ` I F I F F F I F q F ` I F q q F q F s F q q F s e e | - - = ~ = { = ( ( : : | ! | 7 | | 7 7 4 b | = & & : S t.H.Q.W.Q.Q.H.K.m.s.s.m.T.m.T.w.q.T.q.q.T.m.q.q.q.Q.T.q.M.P + + $ % 0 c [ % % $ ) ) ) c c 0 c u N #.P % % % % 5 . .K K K K K N N #.o.N.e.0.6.e.0.0.6.0.e.6.6.6.6.6.6.6.6.6.6.6.9.[.1.[.1.1.1.1.0.~.1.:.1.0.:.0.:.(.:.:.^.^.:.^.(.:.:.!.:.^.!.:.(.(.:.:.(.:.R (.:.!.!.R (.!.", | ||
392 | "` ` I I I I F F F q F I F F ` +.I I q F q q q s q q q I s e ( : = = = { = { = - ( ( ( | | | 4 7 | 7 7 7 7 e { & & : p <.K.H.W.Q.Q.s.H.w.w.s.m.w.m.T.m.m.w.m.m.q.q.m.m.q.m.H.s.++#.+ + % + ; % [ 0 c % ) ) [ { 0 [ [ 0 u N P P c % % @ } B }. .K .K #.#.5.P #.3.i.e.6.6.6.0.6.6.9.6.6.6.1.1.1.e.6.0.0.0.6.1.[.1.[.[.[.[.0.0.1.1.:.^.:.:.:.:.:.:.:.:.^.:.:.:.:.:.^.!.^.:.!.:.R :.R :.:.:.R :.V !.!.!.R ", | ||
393 | "I ` F I I I F s F I I ` I F I I q F q q q b q q b q q I v | - { = { ~ ) $ $ & { - : ( ( | 7 | 7 1 7 b 1 9 | ( @ & = 6 O n.s.w.T.m.Q.q.q.T.q.Q.q.s.m.m.m.q.q.T.q.m.m.t.H. +Q.Q.$+5.% % % % ) [ % % [ [ [ ) ) [ } [ 0 u u u u N N N ) = : p ..}.o.}.#...#.K #.3.#.5.N.3.e.6.6.0.u.1.1.0.6.0.1.1.[.9.9.1.1.9.9.9.9.[.[.1.1.1.1.^.>.:.1.1.:.^.:.:.6.:.:.(.(.:.(.:.:.^.!.:.:.(.V !.(.:.R (.R !.(.R (.!.!.Y ,.!.", | ||
394 | "I F F F I I F q F F I F F s F s q q q q 9 9 b b b q q I 6 : { ~ & ) ~ % ; + . % = - - ( < | 8 | 7 4 b 7 b 7 : = & = ( r <.w.w.w.m.T.w.m.m.q.q.T.m.m.m.q.m.m.m.w.K.K.%+>+{+&+$+#+r.; % % % % ] ] [ c [ [ [ [ c ) ) c 0 u u u P c u u 0 0 5 B G ..n.t.o.}.}.}.}. .#.#.#.5.i.e.6.6.0.1.1.5.1.1.1.1.1.0.1.9.9.:.1.:.1.0.6.(.[.1.:.1.1.:.:.1.:.(.[.[.(.:.:.:.:.[.(.:.!.^.(.:.:.:.:.(.(.!.!.(.(.(.R (.(.R ).).).R ,.,.", | ||
395 | "I F F I I I F q F s F q q F q b q b q 9 9 q q b q q F e : } ) & % % ; . $ . & = - - < | 8 1 8 8 1 4 b | - @ & - r S t.w.m.w.m.m.m.q.q.q.m.h.T.m.w.m.K.@+@+ +]+ +$+++$+++#+u.% ] [ [ [ [ 0 c c [ u c [ [ c u u u u c N u u 0 t t M .}.}.<.o.M.t.3.}.}.}.}. .}.3.3.i.5.0.1.0.1.1.1.0.u.1.1.1.1.6.6.9.9.1.1.:.6.:.1.:.[.:.:.^.1.^.(.:.:.:.(.:.9.V ^.(.(.(.!.^.!.:.(.R :.(.R :.(.R (.!.!.(.R (.!.R (.Y ).Y Y ", | ||
396 | "I F F I I F s q s F F q q q q q q e q 9 9 q q 9 q q s i : - ~ . + + ; + + @ @ @ = - ( < 4 4 4 1 1 4 b | - $ $ = ( M f.w.m.m.T.q.m.q.m.m.w.p.w.K.@+]+$+>+$+$+$+++{+++++++#+~.] [ c u c c c j 0 c t u 0 u u u u 0 0 u u u M .. .#.}.}.}.}.<.}.3.o.n.}.n.}.}.o.}.o.o.5.0.1.[.d.0.u.0.0.1.1.1.1.1.:.6.(.1.0.^.1.6.(.:.:.[.:.:.6.(.:.[.:.:.:.(.(.(.(.:.:.:.(.!.:.:.(.(.:.:.(.(.R (.!.R !.(.!.Y ).).Y ).).Y Z Y ", | ||
397 | "I F F I s F F q q F F q q q e q q q q q 9 q q q b s i 6 } $ ; + + + . + + . + . . @ = - , | | ! 2 1 b 4 e : & @ @ : r +.m.m.m.m.K.m.m.w.w.@+@+<+&+&+$+>+++M.$+++M.P.++$+#+#+P [ 0 c [ u 0 0 c u u N u c 0 0 u 0 p B M }.}.}.<.}.}.}.}.}.3.}.}.}.3.o.t.M.M.++++M.M.o.e.e.1.1.1.0.1.0.0.1.[.1.[.6.6.:.0.1.[.1.(.(.9.[.[.(.(.:.:.:.[.:.:.:.^.^.(.(.(.R (.(.(.:.:.(.R (.(.R (.(.(.,.).).).R (.R ).Y R Y Z @.Y Z ", | ||
398 | "I F F F F F e F q F q q q q s s q e 9 9 q 9 b 9 b e 5 } ~ + + + + + + @ @ - ! 4 4 7 4 7 | 7 | & & - 6 O h.m.q.q.T.K.@+@+@+<+&+$+ +&+++T.M.M.o.N.N.N.N.N.*+P.c ] 0 c 0 u u N u u u N 0 u 0 0 p G ....}.}.n.}.n.}.n.}.}.}.M.}.M.o.M.M.M.++++#+#+#+P.r.5.0.1.1.9.1.6.:.0.0.[.:.1.^.9.:.9.:.[.1.1.[.[.[.[.1.:.:.:.(.[.:.:.:.(.(.!.(.(.(.[.(.(.R (.(.(.R (.(.).!.R !.R ).).).).Y Y Y Z Y Y Z U Y ", | ||
399 | "F I F s F q F q q q q q q q q q e q q b q b q b e 6 = ) + ; + + ; $ + + + + @ - , | 4 4 4 4 7 8 4 - @ @ & a r <.f.m.m.K.w.H.T. +&+&+T.N.o.q.o.N.o.u.o.u.u.u.P.P.r.c 0 c u K u N N u 0 0 c 0 j B S <.<.n.n.M.n.t.n.M.n.}.M.}.M.n.M.M.M.++$+++++#+#+#+#+u.0.[.1.6.0.[.9.:.1.1.:.1.1.:.1.:.6.0.1.:.(.(.(.[.[.:.(.:.:.:.(.(.(.:.:.(.!.:.(.[.(.(.(.(.).!.(.(.!.(.R (.(.(.).).Y ).Z Z ).Y ).Y Y U U Y U ", | ||
400 | "I F q F q e q q s q 9 q q b e q b b b 9 9 9 b 7 | { % % + + + + + + + . + + . @ - , | | 4 8 4 8 | - @ = & - r ..q.q.q.T.T.Q.T.N.M.q.q.i.i.u.e.e.i.h.i.u.u.u.N.N.3.c N N u u P c c 0 [ j B .}.<.<.t.}.n.n.t.}.M.}.M.H.t.M.M.M.++++++++#+++#+#+#+#+#+r.r.0.1.0.6.6.:.9.9.[.1.0.:.1.:.1.(.:.^.1.:.(.(.:.:.(.1.(.:.(.:.(.(.(.(.!.:.(.:.(.(.(.(.(.(.!.(.!.(.!.).).).Y !.Y ).Y ).Z X Z X Y U Y U U U Y ", | ||
401 | "I I q q q q s q s s b b q b q b b q 9 q 9 9 b e { % + + + + + . + + + @ @ - - < 4 | 4 1 2 8 | = @ @ ( r +.w.m.s.s.s.q.o.q.i.i.i.i.x.h.e.x.h.x.h.e.0.0.o.u.5.P P u N c c c 0 j B +.<.<.t.t.n.M.n.}.t.}.n.n.n.n.M.M.++++++++#+#+#+#+#+#+#+P.r.r.u.1.1.0.6.:.6.9.[.:.0.:.^.0.:.9.(.1.:.[.:.[.).[.(.:.:.[.:.(.:.(.(.(.:.:.:.!.!.!.(.R (.!.R (.!.R ).).).(.R ).).).Y Z Z X Y z Y Y U Z Q w '.U Z ", | ||
402 | "I q s q q q q F q q b 4 b b q b b q b b b 9 4 | ) + + + + + . @ + + + . + + + . @ - , ! | 7 8 1 8 | - @ @ - i +.m.q.f.q.q.h.q.e.h.h.i.i.0.u.e.u.i.6.h.u.x.6.i.P.5.A A c c [ 6 B G ..<.n.n.t.t.o.}.}.n.t.n.n.H.H.M.W.++++++#+#+#+#+P.r.r.u.u.u.u.u.1.1.1.1.1.6.6.^.:.[.[.:.:.:.1.1.1.(.9.:.[.[.[.[.(.(.(.~.).[.(.(.(.!.(.(.!.R (.:.!.(.!.(.(.).).).(.R ).Y ).Z Z Z Z Z Z Z X Z U U Y Y Z X U Y U Z ", | ||
403 | "q q q q q q q s e q b 9 q b b q b 9 q 9 1 1 | : & + + + + + + + + . % % . . + + @ @ - , | 4 4 8 4 4 | - @ $ - a +.m.q.h.h.q.h.x.h.i.i.x.h.h.i.5.0.e.u.e.e.e.u.i.r.d.c [ 0 p K ..<.<.<.M.s.t.H.Q.n.n.n.o.M.M.++M.M.++++#+#+#+P.P.r..+u.u.[.d.u.d.[.1.0.6.1.:.[.:.:.6.6.^.:.1.1.1.1.[.[.[.(.(.:.[.(.(.(.(.(.(.[.(.(.(.(.(.).!.(.(.(.!.(.!.R (.).!.(.).).).Y ).Z ).Z X Z Z z Y Z Z X U X U Z U '.U Y U ", | ||
404 | "q q q b q q q q q b 9 q q q b q b b b 9 1 1 | ) @ + + . . @ & + + + . @ . , , | 4 4 4 1 e ( - - ( v 2.m.q.x.q.i.e.u.h.i.e.e.h.h.i.e.e.e.u.e.6.h.i.P.5.0 u M .}.}.t.n.t.t.t.n.H.M.M.H.++W.++++$+++++P.P.P.r.u.r.u.e.1.1.1.0.[.[.[.d.9.6.6.0.0.^.1.:.1.6.9.:.[.[.[.^.(.(.(.:.(.:.(.[.(.(.(.(.(.(.).~.(.(.(.!.(.!.!.!.(.(.(.!.(.).).Y Y Z Z Z Y U Z Z E Z z Z Y Z z Z U Z U Z U Y U Y Y ", | ||
405 | "q 9 b q q q q q 9 q 9 b s q b q b q b b 1 | : @ + . . . + + . . $ + . + + . @ @ - , | | 7 4 | 8 | = @ & < r +.q.q.q.u.i.u.i.u.e.x.e.e.h.x.u.i.i.h.u.e.u.u.N.3.#.}.}.}.}.t.t.}.t.M.H.M.H.W.M.++++++++#+#+P.P.r.r.u.u.1.6.0.0.0.1.[.[.1.1.1.[.6.^.9.(.[.[.[.[.:.:.:.9.(.[.:.1.1.1.[.(.:.:.(.(.(.(.(.:.(.(.(.(.R (.!.(.,.R (.).).R (.!.Y ).Y ).).Z Z Z z Z Y Y Y Y Z z Z Z @.Z Z Y Z Z Y Z Z Z Z ", | ||
406 | "q q 9 q b b q b b b b q q b 9 b b 9 9 1 7 | ) @ + @ + + . . . + . @ , | 4 4 1 | 4 4 ( @ @ ( a ..N.e.h.h.i.u.i.h.i.e.u.e.i.h.h.h.x.e.i.6.e.5.N.f.}.n.}.t.M.o.M.M.t.M.++$+>+++++++#+#+P.M.u.u.u.0.1.[.1.1.9.1.1.9.1.1.[.1.1.1.:.1.0.:.:.9.:.1.1.1.^.(.:.:.:.(.:.(.:.(.:.:.:.(.(.:.(.(.(.(.(.(.(.(.(.,.(.,.!.!.,.'.,.).Y Y Z Y Y Y Y Z Z Y Z z Z z Y Y Y U Y Z U X U U U Y Y Y Y Y ", | ||
407 | "q b q b q b b b q b b b q b q 9 9 1 1 b | : @ + . + + + . . % + + . + . @ @ - | | 8 | 8 8 | ( = = = ( ..o.q.q.h.i.i.x.i.e.u.e.e.6.h.i.h.i.6.x.6.e.i.N.s.t.n.M.M.M.++M.$+++++{+#+++++#+#+P.o.P.d.u.0.0.1.[.[.1.9.1.9.6.9.9.1.1.[.[.1.1.1.(.9.g.:.:.[.(.(.[.:.9.:.:.9.9.(.(.:.:.!.(.(.(.!.!.).!.(.(.(.(.!.!.(.).(.).!.!.,.,.Y Y Z Z X Z U Y Y z Z Z Z Y Z Z U U U X Z U Z Z '.Y Y Y Z U Z ", | ||
408 | "q q q b b 9 b 1 1 1 1 b b b 1 1 1 1 1 b | ) @ + ; + + . . . . + + + + . . - , 4 1 | | 8 4 < = @ = ( S q.h.i.h.h.i.0.x.h.x.e.i.e.x.e.6.x.i.h.x.6.u.N.o.M.M.$+{+++++++++++:+#+++#+#+r.r.u.0.0.1.u.1.d.1.1.[.[.1.1.9.6.6.6.9.1.1.:.1.:.1.[.:.:.(.:.:.:.:.[.(.(.!.(.:.!.(.(.:.:.:.(.[.[.(.(.(.(.!.(.!.(.(.!.,.).).Y Y Y Y ).Z Y Y Y Z Y Z z Y Y z Y z Y Y Y Z U Z X Z Y Y Y Y Y Z Z Y Y Y ", | ||
409 | "b q e q b b b b 1 1 1 1 9 9 b b b 1 b 4 | - - } % @ + . . . ; + + + @ @ - ( | | 7 4 8 | | = % = ( O s.q.h.i.f.u.i.e.e.h.i.h.i.e.u.e.e.6.6.h.e.e.o.++++{+d+:+d+:+:+:+#+#+#+P.P.d.u.u.1.0.0.1.1.0.[.d.[.1.1.9.:.:.1.:.9.6.1.:.1.:.1.:.:.:.(.1.:.:.9.[.(.[.(.(.9.!.!.(.9.!.:.(.(.(.(.(.(.).!.!.(.!.!.,.,.,.Y ).Y Y Y Y Z Y Y Y Z z Y Y Y Y Y Y Z Y Z Z Z Z X Z Y Y Y '.Y Y U Y Y Z U '.", | ||
410 | "9 q b b b b b 1 1 b 1 b b 1 9 1 1 1 1 7 | b _.s.>.) % ; + + . + . . + . % + + + . . - , 4 4 | 4 8 4 | - % & ( i m.q.h.h.q.h.i.e.u.h.e.x.i.6.u.6.x.e.6.h.h.e.o.++:+d+++{+++++#+#+P.r.u.u.0.1.[.1.0.9.0.1.1.1.1.0.1.1.1.1.9.9.0.:.:.:.9.[.[.(.1.[.1.:.(.[.:.:.:.[.[.(.(.(.(.9.!.!.9.!.:.(.(.(.(.!.(.).).).).).Y ,.Y Y '.Z Y Y Z Z X Y Y Z Z Z Z X Z X Z Y U Z Z Z U Y Z Z Y Y Y U U '.Y Y Y ).Y Y ", | ||
411 | "9 9 9 q b q b b b b b 1 b 9 1 9 9 1 1 7 7 H j+z+d.h % % . . . + . . + . + + + + . @ @ - | | 4 | 4 4 | - @ & ( i <.q.h.h.x.i.h.e.h.u.h.i.h.i.e.e.e.i.u.6.6.u.o.#+#+d+#+:+#+P.P.r.u.1.0.0.u.0.0.1.9.9.6.0.9.6.9.^.0.1.[.[.:.9.(.6.1.1.:.:.(.1.:.:.(.9.9.:.9.(.(.:.:.9.9.(.:.(.(.:.:.!.(.(.(.(.!.!.(.R (.Y ).Y Y Y Y X U U U z Z Z z Z Z Z X X z Y Z Y Y Y Y Z Y Y Y Z Y Z Z Z Z Z Y Y Y '.'.Y Z Y ", | ||
412 | "b b b 7 1 1 9 b 1 e b 4 1 1 9 9 1 1 b 4 b E.A+:+).c ^ ; + + . + + + + . @ @ + . . . @ - 4 4 1 | 8 8 i { @ & - k f.q.q.f.e.u.x.u.i.e.6.u.h.h.x.6.6.h.0.u.e.e.i.P.#+#+++#+P.u.0.1.u.e.6.6.0.[.[.1.0.1.6.^.6.6.1.:.0.0.6.1.[.9.[.(.:.:.[.9.:.[.[.9.(.(.(.(.:.(.(.g.:.(.9.(.(.(.!.!.!.(.(.!.).!.).,.).).Y Z X Z Z Z Y Z U Y Z Z Z Z Z Z w Z Z X Z Y Z Z Z Z Y Z Y Y Y Y Y Y Z Z X Y '.Y Y Y Y Y ).Z ", | ||
413 | "b b b b 1 9 9 b b b b 1 1 2 2 9 2 2 b 8 s ]+z+d.c h h + # + + . @ + + . @ . @ @ , | b 7 | 8 8 8 ( @ = ( a .q.e.h.h.e.i.h.e.x.h.i.u.e.i.i.e.u.0.0.e.u.i.N.P.#+P.5.u.1.u.0.0.1.e.0.0.0.1.0.0.1.[.1.:.^.6.1.:.0.1.[.[.[.(.g.:.g.(.(.(.[.(.(.(.[.~.).[.(.(.(.(.9.!.!.(.(.:.(.(.!.).).).).Y Z Z Z Z Z Z X X U X Z Z X X Z Y Z Z Z Z Z Y Z Z z Y Y Y Y Z R Y Y Y Y Y Z ).Z Z Z U Y '.Y '.,.X '.", | ||
414 | "b b b b b b 1 1 b 9 9 2 1 9 2 2 9 2 7 | i t.P.~.T C ] ] + + + + + + + + + @ . + @ @ @ - | e s | < | | : @ @ - a .q.u.e.h.e.e.i.i.i.h.h.e.e.x.e.1.e.e.u.e.e.e.i.o.i.u.e.e.5.1.0.0.1.6.9.1.1.1.1.0.0.[.~.[.:.:.1.:.9.1.:.:.(.9.(.6.:.:.[.[.[.[.[.:.(.[.(.).[.(.(.(.(.(.).).).(.).).Y ).Y Z Z Z Z Z Z Z X Z Z X Z Z Z Y Z X Z Y Z Y Y Z Z Y Z X Z Y Y Y Y Z Y Y Y Y Y Y Z Z X Z Z '.Y '.Y U '.X Z ", | ||
415 | "b b b 1 b q 9 b 1 1 9 2 1 9 2 2 1 4 4 6 : M o.r.1.T ] ; + + . + . + + . @ - | e e | | 8 | 6 & & - i S q.i.h.i.h.h.e.6.x.6.i.i.i.e.u.u.e.e.0.0.0.e.u.u.i.u.6.u.[.1.6.0.1.1.1.1.1.1.0.1.1.1.[.1.1.0.6.(.6.:.1.:.g.(.9.(.:.[.:.[.(.[.(.:.(.[.).[.).g.).).g.(.(.).).$.).Y ,.U Z @.@.Z U Z Z X Z Z X Z U Y Y Z Z Y Y D R Y Z Z Y Z Z Z Z Z Y Z Z Z Z Y Y Y Z Y Z Z Z X Z Y '.Z U '.=.Z =.", | ||
416 | "b b 1 b b 1 1 b b b 2 2 9 2 9 2 1 4 4 : : +.X.r.d.T ] + + + + . + . + + + + + + + + @ @ @ , | i | | | | | : & ; = 6 S f.i.h.i.u.h.u.e.e.6.h.6.e.e.0.6.e.e.u.e.0.0.0.0.0.0.9.0.1.1.1.1.1.1.1.1.1.6.9.1.[.1.:.[.(.(.6.[.(.(.9.:.[.[.:.(.[.(.(.(.(.(.(.:.!.[.[.(.).).).).)./.).).Z @.@.Z Y ,.Z Z Z Y Z X Z X Z Z X Z Z Z Z Z Z Y Y Y U Y Y Z Y Y Z X Z Y Y Z Z Z Z ).Y Y X Y Y ,.Y =.U Z '.=.Q U =.'.'.", | ||
417 | "b b 1 1 9 1 9 1 b 1 1 1 9 2 1 1 4 1 | ( ( <.N.r.[.c ] + . . + % % @ @ @ @ - , | | a < | | 6 & ) k ..m.h.u.h.i.u.e.e.x.e.e.6.6.0.h.h.h.e.0.0.0.6.0.0.6.6.0.1.1.1.1.1.[.[.g.6.9.:.^.9.1.(.1.:.:.1.(.(.[.9.:.[.[.[.(.[.(.(.(.(.(.[.(.[.(.(.).).).).).$.@.Z X @.Z Z Z Y Z U Z X Z X U Z Z Z Z Z Z Z Z Z Z Y Y Z Y Z Y Y Y Z Y Y ).Z Y Y Z Z ).Y Z Z Z Z Y Y $.Z =.'.=.@.*.=.*.*.U &.=.", | ||
418 | "7 1 1 1 9 9 1 b 1 7 1 1 1 1 1 1 4 1 | - = M 3.>.A ] + + + + + + . @ & % + + . . @ @ = - , | | | 6 | | 8 | - @ = 6 .f.f.u.u.e.u.e.e.e.0.e.x.e.0.6.h.6.e.0.e.e.6.6.e.0.6.0.0.0.1.1.0.1.1.[.0.1.:.:.:.9.(.0.:.(.1.:.(.[.[.(.(.[.(.(.(.[.(.(.).!.).,.).).).).Y ).Z @.$.@.@.@.Z Z Y Z Y Z Z X X X Z Z Z Z Z Z Y Y Z Z Z Z Y Y Z Y Z Z Z Y Z Y Y Y Z Z Y Y Z Y Y ).Z Y ,.Y Y Z Z X Z =.Z *.Z &.&.=.&.*.", | ||
419 | "4 1 2 1 2 1 1 4 1 1 4 1 1 1 4 4 b b a & @ [ c c ] > + + + + + + . + + . @ ~ @ % + @ @ & $ @ = - , | | | | < < | ( - @ = 6 ..f.i.i.i.u.e.i.x.x.6.0.e.h.h.h.x.0.0.e.0.6.6.6.6.1.0.0.6.6.1.1.1.1.1.:.1.:.g.:.[.1.9.:.9.9.(.[.(.(.(.(.(.[.).(.).(.).).).).).Y ).Z Z Y Y Z Z Z X @.@.Z Z Z Z Z Z X X X Z Z @.X X Z Z Y Y Y Z Z Y Y Z Z Y Y Z Z Z X Y Y Y Y ,.Y ).Y ).Z Y X Z Z Y Z Y '.=.Z X =.=.=.=.*.=.&.*.*.", | ||
420 | "1 4 1 1 1 1 b 1 1 1 1 1 7 1 b 1 1 4 | & @ ; ; + + + @ { ~ $ + . = = = @ @ - , 4 | 8 | < | | 7 a - @ @ a S f.i.x.i.0.0.e.e.e.h.e.0.0.6.6.h.e.0.6.0.6.0.1.1.1.1.1.1.1.1.1.:.1.1.:.1.:.:.:.(.[.(.(.:.!.:.1.(.).(.).).).).).$.).).Y Y Y Y Z X X X w Z X Z Z X Z X Z Z Z Z Z Z X X X X @.X Z X Z Y Z ).Y Z Z Z Z Z Z Z Y Z Z Z Z Y ).Y Y ).Y ).Y Y Y ).Z ).=.Y $.Z Z $.=.X *.Q *.@.=.=.&.Q &.", | ||
421 | "1 1 7 1 b 4 4 1 4 1 4 1 4 1 1 1 1 b 6 ) + + + . + $ ) % @ . = - - & = = , | 4 < ! | < | < | ( @ $ ( O 3.q.i.e.e.e.e.0.6.0.x.0.e.0.e.0.6.6.h.6.e.0.1.1.1.1.1.1.1.9.^.1.:.:.9.[.[.[.[.g.!.9.!.!.(.(.).).).$.).).).).$.Z @.X Z Z X Z Z Z Z Z X w Z X @.Z X Z Z X @.$.X @.Z X X @.X Z @.Z Z Z Y Z Z Z Z ).Y Z Z Y ,.Y @.Z ,.Z X $.Y Y Y Y Y R ).Z Z Z Y $.Y Y Z *.=.$.$.*.*.&.=.Q *.&.*.", | ||
422 | "4 | 7 e 4 e 1 4 4 4 4 1 2 2 1 1 1 1 i % . + + + % ) ; + + @ @ - - - - - - , | | i < ! a | < | ( @ % { r f.f.h.h.e.0.u.0.6.e.e.0.0.0.0.e.e.6.h.6.6.0.1.1.[.1.1.^.:.1.1.9.9.(.[.[.[.(.(.(.!.(.(.,.).).).).).Z Z @.X Y @.X @.X Z Z X Z Z @.Z Z Z X Z @.X X X Z Z Z X X @.X Z @.U Y Z Y Z Y Y Y Z Z Z @.Z Z Z ).@.Y =.Z Z Z ,.Y Z $.Z Z Y ).Z Z Y ).Z $.Z @.$.=.Z *.*.*.*.*.*.&.=.=.%.Q &.", | ||
423 | "1 4 4 | e | 1 1 1 4 1 2 2 1 1 8 4 4 i = + . + @ & % @ @ - - - - @ - , 8 4 | | | < | ( | | ( @ @ ( t .i.e.e.h.e.1.u.e.6.6.6.0.0.0.6.6.0.6.6.:.6.6.1.1.[.(.1.1.[.(.(.[.).[.).).(.).,./.$./.).$.Z X X @.X X @.X X @.@.X @.@.Z Z @.X Z X Z Z Z X X X Z Z X X Z Z Z Z =.Z Z Y '.'.Z Z $.Z Z Z @.Z Z Z Z Z X Z @.X '.'.U '.'.$.Z Y ).Z Y ).Y Z Z Z Z Z $.Z $.Z ,.*.*.*.%.*.=.*.Q X X z ", | ||
424 | "4 1 7 4 e ! 1 1 1 4 ! 1 1 ! 4 4 1 b | { & . + @ = & - , , - , - - ( | 4 8 < ( | | ( a < a ( = j -.f.e.0.e.e.0.0.e.6.6.0.0.0.0.6.0.1.0.0.9.0.6.:.(.1.g.(.:.(.).).).).).)./.).).$.$.@.*.@.@.Z @.X @.@.X @.%.%.X @.X X @.@.Z Z X Z X @.X Z @.@.X Z Z Z X Z Z Z Y Z Z '.Y U '.Y Z Z Z $.Z Z ).Z Z Z ).,.Z =.@.Z ).Y Y Y ).Y Y ).).Y $.).Y Y Z =.Z @.$.$.*.=.*.*.&.*.&.Q *.Q z m f ", | ||
425 | "1 1 1 4 4 1 1 4 1 4 1 1 2 1 4 4 7 1 e : ) + + . = & @ @ . . - ( < | , , , , | 4 | 4 | | ( < | < a | ( = & 6 M h.e.0.0.e.e.6.6.1.e.6.0.0.6.0.1.1.9.:.1.:.[.[.g.).(.(.).).).).@.%.].=.$.@.X @.X X @.@.*.@.@.X Z Z Z X X Z %.@.X @.%.X %.@.Z Z @.X @.X Z X Z *.=.Z Z Z Y Y Z Z '.Z Z Z Y Y Z Z Z Z ).Z Z $./.Z Z Y '.'.Z @.X Z U '.Z ).).Y '.=.$.U Z =.=.=.@.%.%.=.=.=.*.*.*.*.*.U z w f / * ", | ||
426 | "1 1 1 1 b 1 1 1 4 4 1 2 2 8 1 1 8 1 b e : @ + + @ $ $ % = $ @ @ @ - , | | | | , , ! 7 4 | | ( ( a ( | ( < a ( & $ $ [ B h.e.6.6.0.0.0.0.1.0.0.0.1.1.[.[.[.[.(.[.(.(.(.)./.$.).).].@.@.@.%.*.&.=.X X @.*.X *.X X X %.X @.X $.@.%.@.X @.@.X %.@.X %.@.@.X @.@.Z Z Z Z X Z X @.Z '.'.Z Z Y Z $.X $.@.Z ,.Y @.Z /.Z Z $.$.$.'.U '.Y ,.$.$.Z =.Z Y ,.Z ,.Y @.@.Z =.*.=.@.@.*.*.*.].%.*.=.U z w d _ / * # ", | ||
427 | "4 1 1 7 1 1 1 4 7 4 1 1 4 1 9 2 9 9 7 e k { . @ @ & @ $ & ) & - | e v e | | : | 4 e e 7 | ( < 6 ( ( } a < | ( ) % % : y e.0.0.0.6.e.6.9.9.9.[.[.1.[.[.(.[.).(.).,.$.@.$.$.$.%.%.%.@.%.%.%.@.=.=.=.*.Q Z @.X @.@.@.X %.%.%.&.*.@.X @.X X @.%.%.@.@.X @.@.X Z X Z $.U *.*.@.Z Z Z Z Z Z Z Z Z ,.Z Z Y R Y Y Z ).,.$.Y Z '.X =.*.=.Z Z '.=.Z $.$.=.$.=.=.=.X *.=.@.&.&.&.*.=.=.U *.Z z w f _ ' # # # * ", | ||
428 | "4 4 4 4 1 4 4 4 1 7 4 1 4 7 1 9 8 7 e e e | | 6 { % % % % $ @ & = : 5 = - , O O O i | i : 4 b 7 e 4 | | | : 6 a : : < a < ~ ) ] } y -.0.0.0.1.[.1.1.1.[.[.(.(.(.).).).Z @.@.@.@.%.X @.=.%.*.*.*.].%.;.%.*.*.$.$.@.U $.*.X X @.@.X X %.X U *.*.$.@.X @.X X X X @.X %.@.@.@.=.X $.X X X $.Z Z Z X @.X Z Z Y Y $.$.Y ,.Y Z Z '.@.$.X =.*.X *.=.=.X '.=.Z Z $.X $.U ,.=.*.&.&.@.=.*.*.=.U '.U w w f _ ' * * * + # * ", | ||
429 | "4 7 b | 1 7 4 1 4 4 1 7 4 4 1 b b b 7 e i i i p } { { ) = = - ( : 6 6 i e v S G G v i | 7 e s 7 7 | | ( ( ( ( < < < | < } [ l h g W >.1.9.[.[.[.[.(.).).).)./.$./.@.$.$.].%.*.Q *.;.*.*.%.%.*.*.&.*.%.%.$.=.=.$.U $.U Z @.@.@.X $.@.@.$.=.=.=.X X %.X %.%.%.@.@.X @.X @.@.X $.Z U =.=.'.Y $.=.$.Z $.$.Y ,.Z Y Y ,.Y Z '.'.Z Z @.$.@.$.*.$.@.X $.Z =.=.$.@.@.%.@.X *.=.=.&.*.*.Z Q U '.x f f _ ' * * * . # * ' ' ", | ||
430 | "4 7 4 7 7 4 e 4 7 7 b 8 4 7 8 b 8 8 b 7 e e v v 6 5 i 6 : - : 6 6 i e v e v O v v v e | 7 e s | | < ( ( 6 : : a ( a | | } h C w R R !.!.!.)././.).).,.$.@.Z Z @.@.%.%.X @.@.@.;.%.;.X *.*.X X @.*.*.*.@.*.*.*.X *.*.Z *.X @.$.X $.@.*.*.*.*.*.@.@.%.%.X X X @.@.@.@.X =.Y Z @.@.X X Z Z Z X *.X $.Z $.Y ).Z $.Z $.).Y Y $.=.Z @.*.@.*.*.@.$.Z =.$.*.=.=.*.*.%.@.@.@.&.*.*.*.@.Z U z w f / * * * * * * * * ' _ 3 ", | ||
431 | "1 7 1 7 1 4 4 7 4 7 7 4 4 8 4 7 b b e 7 e e e e i v G 6 i i i k v s v s s v v v e e e e 7 s e i < ( ( ( ( ( : ( | < ( a g h R '.Y !.Y ,.,.).@.@.%.].%.@.@.@.%.@.$.X X *.%.;.%.X *.X *.X Z *.@.@.%.X %.@.X X @.*.*.X *.X *.@.@.=.Z Z @.@.*.@.$.=.Z @.%.%.@.%.@.@.Z Z @.Z $.$.Z @.Z $.Y '.Z X =.Z Z Z Z Z =.,.Z @.Z @.$.Y Z Z @.@.@.*.*.@.$.@.$.*.=.=.*.*.*.%.;.*.*.@.X $.X U Y w w f / * * * + + * * ' _ _ _ f f ", | ||
432 | "7 4 4 7 4 1 4 4 7 b b 7 7 7 4 7 7 b b e b 7 e s e s O v e v v s i s e s I s e q s I s e e e | | < | : ( a ( : ( < | < ( 6 C R =.Z Y =.=.@.@.%.@.%.].@.$.X Z $.X =.].%.X @.*.;.X *.X X X X U *.Z %.%.;.%.*.*.*.X =.X *.*.*.@.@.*.$.Z X %.X @.@.$.@.@.$.Z @.%.X @.@.U =.Z Z X @.%.@.X U =.Z @.@.$.$.$.$.Y '.=.Z ).Z @.).Z $.Z *.X @.@.=.*.X *.$.=.*.$.@.@.*.%.;.%.*.@.X X Z z w l ' _ * * # * * * * _ _ f f f o x ", | ||
433 | "7 4 4 7 4 4 1 4 4 7 | 4 e | e 7 9 b 4 b 4 7 q b q s s s s F s v v e v I I v I s v v s e | | : : | : ( | ( { ( ( ( < | | a g R Y Y $.$.@.%.%.%.%.@.%.X X @.@.@.=.*.*.*.*.&.X @.*.Q *.E X $.@.@.@.@.X %.%.@.@.@.*.*.$.=.=.@.*.=.$.*.=.$.@.@.@.=.*.@.*.@.].Z *.*.@.Z $.*.$.$.Z X Z Z '.,.U '.Z Z $.Y Y Z '.=.Z Z Z Z X @.).,.=.Z @.%.%.Q =.*.=.&.*.*.*.=.*.%.;.%.*.Z Z X z d d _ ' > # * + * * * * _ _ 3 f o x D D ", | ||
434 | "4 4 4 7 4 7 7 7 b b 7 4 e 7 7 7 b b e 7 4 b 7 1 b b e s v s q I s s v I v I e s s s v i ( | ( ( | ( ( ( < ( a ( < ( ( ( a 5 V $.$.Z ,.$.@.@.%.%.*.$.%.X @.=.*.@.*.X ;.X *.*.%.X X U D X X %.@.@.@.@.X %.*.*.*.@.*.=.=.=.$.@.=.Z ].@.*.].*.=.*.=.@.*.@.*.$.X =.=.=.Y '.,.,.Z $.Z X Z ,.Z '.Z $.Y '.Y $.'.U ,.@./.).Z @.X Z $.$.$.Q *.*.*.@.=.*.@.*.*.@.@.@.X X Q Y w w d _ ' * # * * * * * / _ 3 f o o o E x &.Q ", | ||
435 | "4 4 4 b 4 4 7 7 7 7 4 7 b 7 4 b b 7 7 7 7 7 7 7 b b b e e s e q F s s s e v s e e e 6 | : ( ( ( ( ( : ( ( ( < < ( < | a a g T Y Z $.X $.$.%.%.@.$.Q X %.X *.X *.*.;.%.%.*.%.X @.@.z Z X @.X X =.@.@.@.@.@.].@.@.$.@.@.@.@.*.*.*.@.].@.$.'.=.=.=.=.%.*.'.$.$.X =.'.=.Z Z Z ,.Y ,.Y =.X Z Z @.Z $.Z $.Z Y Y @.Z Z Z Y ,.$.$.=.*.=.=.@.*.%.*.*.*.;.%.;.;.%.X X Q z f d 3 ' > * . * # # * / _ _ f f o o E E E ;.Q {.", | ||
436 | "7 4 4 4 b 4 7 7 4 b b 4 7 7 4 7 7 b e 7 7 4 4 b 4 b 4 b b q 7 q s s s e e e e | | | ( | : ( ( < ( ( : : ( { : : : ( ( < | a C ).$.$.%.X @.%.%.X =.@.*.*.@.@.@.*.%.X *.Z %.%.X Q X X X X *.$.@.X @.%.@.].@.*.=.*.@.].@.@.@.=.$.%.%.@.@.%.=.=.=.=.=.$.@.=.$.$.$.Z $.=.@.@.X $.Z $.U =.$.@.Z ,.Z $.Z Y =.$.Y $.$.$./.Z $.$.X $.*.X *.@.*.*.*.*.&.*.*.=.Q X X z w d _ > > + > * * * * / _ f f f o x D E E Q {.{.;.;.", | ||
437 | "7 7 4 b 4 7 7 7 7 7 7 7 4 7 7 7 7 7 7 | 4 4 4 4 | 4 4 4 7 b b e e q e e 7 | | | | ( : : ( : : a ( ( : ( ( ( : ( : ( < | a a C Y Z @.*.;.*.=.X =.X *.@.*.%.*.*.X %.%.X *.X Q &.X D Z X X $.$.@.%.%.@.*.@.=.$.].$.*.@.@.@.$.@.].*.@.@.].*.*.*.*.*.*.@.$./.$.$.$.@.=.$.Z $.$.X $.U $.Z X Z '.Z '.Z $.@.$.Y $.Y Z ).Y ,.Z @.=.*.@.*.@.*.%.;.;.;.%.*.X U U z w d _ ' > + * * * * * _ _ _ f f o x E D Q E {.{.E ;.{.{.", | ||
438 | "4 4 7 b 4 7 7 4 7 7 7 e 7 7 7 7 7 b 7 | 4 4 4 4 4 7 | 7 4 7 7 4 | e | | | | : : | , ( ( ( ( } : } ( ( ( : ( ( < ( ( < < < a C R $.Z *.*.%.*.$.$.X =.=.*.;.%.*.*.%.%.@.*.%.X X $.X X X X Q /.$.%.%.@.*.=.$.'.=.$.$.$.$.@.=.@.@.].].].].%././.].].]./.=.=.%.@.$.$.*.$.@.Z $.X @.=.=.$.Z @.Z X =.Z =.$.@.$.$.$.Z ,.Y $.=.@.*.&.*.].%.*.%.%.%.;.*.Q Q z m 3 ' > * * * + ' ' ' _ _ 3 f o o o D E Q ;.Q {.;.;.{.{.{.{.", | ||
439 | "b b 4 b b 4 7 7 7 4 b | 7 | 7 7 7 7 e e , | | , | | 7 | | | | 7 | | | | | : : : : ( a : < < < { : : } ( ( ( ( ( ( | < | a k y Y Y Z @.%./.].@.X *.*.*.%.X *.*.X %.X %.X X %.X *.X X X @.$.=.@.@.@.@.$.].$.@.=.$.'.$.=.$.@.*.@.@.$.*.].*.*./.].].].*.=.].@.%.$.,.).Y Z @.=.$.X @.Q *.@.@.*.@.Z $.@.Z Z $.Z Y ,.Y $.$.*.*.=.=.].*.].c.*.;.%.*.U z w f ' ' ' + * + * * * _ _ 3 o o x x D Q Q Q Q ;.{.&.{.{.{.{.{.{.", | ||
440 | "1 1 7 7 1 7 4 7 e 7 7 | e 7 e 7 7 7 i | | | | | | | ( | ( | ( | ( | : | ( : { ( ( ( a : ( ( ( } { ( : ( ( : : : ( ( ( ( < a j Y Z Z '.*.%.c.@.$.@.%.%.%.*.*.Q @.@.X %.%.X X %.X X X Z Z @.=./.$.].$.$.@.@.Z =.$.'.$.@.=.@.@.@.@.$.*.%.].=.*.*.*.=.=.=.$.$.$.$.'.$.,.,.$.Z $.@.@.X *.X X @.*.U $.).).Y /.Z Y $.=.@.@.%.*.*.=.=.%.@.%.%.X X z w d ' ' > + + ' * * ' ' _ _ f m o E E Q ;.;.;.;.&.{.;.{.{.{.{.{.{.{.", | ||
441 | "b 4 7 e 7 4 7 4 1 7 7 b 1 7 4 7 e e e | | | | | | : 6 : : : | , | ( < | , ( ( : : 6 } ( ( ( ( ( ( { ( = { - ( < ( ( ( < | a y R @.$.$./.].*.@./.*.*.%.%.%.@.@.Z /.@.%.X X *.X %.X X $.$.=.$.@.%.$.$.$.$.$.$.Z '.'.*.@.@.,.=.'.=.$.@.].'.=.=./.=.*.*.$.'.$./.).$.,.$.@.X @.X Z @.=.Z @.@.X @.@.Y Z Z /.Y $.@.=.=.@.;.*.c.*.&.*.*.*.U X E w d _ ' > + + * * * * * _ _ f f o x E Q E ;.E {.{.{.;.{.{.{.{.{.b.{.7.{.", | ||
442 | "7 4 7 7 7 b 4 7 7 7 7 7 4 b 7 7 8 7 e | | < | | i | | ( : : : | ( ( ( : : : { ( { : ~ { = { < ( ( = { ( ( { - { { ( | ( < a 0 R Z @.$.].].=.*.*.*.*.X %.@.@.@.@.$.@.%.X Q *.Q X X @.@././.$.@.].@.]./.,.@.$.$.Z Z =.=.@.=.&.=.*.$.$.*.'.'.=.]././.].@.$.$.@.$.$.$.=.$.@.$.X $.X $.$.@.@.Z Z @.=.,.,.$.Z $.=.*.&.].;.*.*.*.*.*.Z X z w d ' > > * * * # * * * _ _ f o o o x E Q ;.;.;.{.{.{.{.;.{.{.{.7.{.7.7.y.{.", | ||
443 | "e 7 4 b 7 7 4 7 7 7 7 7 7 7 7 7 b 7 7 | ( | ( ( i , | | ( : : : ( : : : ( { ( { ( { { { { { = = = ~ ( = { = ( < - : ( ( | | 6 R Z =.=.*.@.*.$.@.$./.*.$.*.Z @.@.@.].$.@.@.X X @.$.$.$.$.@.@./.$.).$.$.$./.@.@.=.'.].Z '.$./.*.].].]./.=.a.*.*.].].].].%.@.].].$.$.'.@.=.'.=.X $.Z X Z '.'.*.=.*.X Z $.$.$.@.*.].;.c.*.*.;.X Z z f 3 ' ' > * + + * * * _ _ _ f f o x x Q Q E ;.E {.E {.{.{.{.{.{.{.{.7.b.b.7.7.b.", | ||
444 | "4 7 7 e b e 7 7 8 b 8 b 7 7 7 4 7 8 7 | | ( | | | : : , | ( : ( : : ( { : { { = - ( @ & @ ~ = = = & = ~ - ~ - ( ( { ( ( ( | 6 C $.@.@.@.X $.=.*.*./.*.].@.@.Z ).$.].$.$.$.@.X @.@././.=.,.$.$.$./.$.$.).$.$.].].,.$.$.$.@.].%.%.%.*.c.*.=.a.*.%.*.%.].].@.].].$.$.'.@.*.=.'.=.@.@.@.@.X Y *.Z *.*.@.@.]././.*.].%.%.@.X Z z m d ' * * + + * * * * / _ _ f f o o E E E Q ;.&.{.;.{.{.;.{.{.{.{.{.{.y.{.7.7.7.7.b.", | ||
445 | "7 7 7 e e 7 | e 7 7 7 | 4 b 7 7 7 7 e | : , | < ( , < : : ( ( - : - : : } ~ ~ = = . @ = @ @ @ = @ & & = & - ( - { { ( ( | | a C Y %.@.@.$.$.,.,.].*.].$.*.$.).Z /./.@.$.@.%.$./.,.$.$.,.$.).@.@.)./.).Z ).$.@.$.Z /.$.@.].%.%.%.c.%.*.=.&.*.*.*.].].].*.].@.].$.$.$.$.$.U =.=.@.Q *.@.@.@.$.*.*.%.%.;.%.@.].].*.%.%.Z z d d ' > + * + * * * * * / _ f f o x E D Q Q {.E ;.;.{.{.&.{.;.;.{.{.{.{.{.b.b.b.b.7.y.b.", | ||
446 | "7 7 7 | 7 e 4 7 7 7 7 e 7 7 7 7 b 8 7 | a | < | | < ( : : | : ( : ( { ~ & $ @ . . . . . . @ . & @ = = - - - - ( ( < < a a V Y @.X @.@.$.$.,.].].]./.@.@./.Z @././././.@./.$.$.,.$.,.$././.@.).*.).$.).$.$./.Y ,.$.@.%.%.%.].].].].].c.%.c.%.]./.$.].].@.@.$.$.@.%.@.=.=.=.$.$.=.@.%.*.*.*.*.%.].%.*.*.*.].=.U z w d ^ > + * + * * * ' ' _ f 3 o o E E E E Q Q {.;.;.;.;.{.{.{.{.{.{.{.{.{.{.b.b.b.b.b.7.7.7.", | ||
447 | "7 | e 7 4 1 b 1 8 7 7 4 | 7 e 4 7 7 7 7 ( ( ( ( < ( | < ( { ( ( ( = & @ & . . @ . @ @ # @ @ @ = - - - - , ( | | | y !.Z ,.)./.).)././.$.'.=.$.@./.@.@./.@./.$.].$.'.'.]./.].].$./.Z @.$.@.$.$./.@././.$.$.%.*.].@.].].].]./.*.*.].].$.@./.].*././.].@.$.@.@.%.X %.*.@.%.%.%.%.%.%.%.%.%.].].].@.X z w d / * * * # + * * * ' 3 3 3 f o m E D E E {.Q {.Q {.{.;.{.{.{.{.{.{.{.{.b.b.{.b.b.b.7.7.7.7.7.", | ||
448 | "7 | 7 7 e 7 7 b 1 7 | 7 | | 7 e 7 8 7 | | | | , ( : : , ( : { = = @ @ . @ @ @ @ + . + $ . . @ = - - { < < < a a y !.Y ,.).).).).)./.$.$.$./.@.,.)././.@.@./.$.$.$.,./.=.=.$.$././.@.$.$.@.@.@.Z )././.].%.].].].].].*.*./.].%.].@.].*.].].$././././.@.$.$.%.@.@.*.*.%.;.;.;.;.%.c.%.].@.Z U z w 3 * > + + + * . * * ' _ 3 3 m o D D E E ;.;.;.{.;.;.{.{.E {.{.{.{.{.{.b.{.{.b.b.{.7.b.b.7.7.A.7.y.", | ||
449 | "4 7 b 7 4 | 4 7 7 8 e e e 7 7 4 7 7 e e i ( | | | | ( : : { = $ $ @ @ @ @ - - - , , , - - @ @ + @ . @ = = - - , ( | | y !.).,.a.).).).,.,.'.,.].$.$.@.$./.*./.).$.].*.$.$.,.=./.'.'.'.,./.$.$.$.$.)./.).).a.].=.$.$.$.=.=.*./.].;.%.*.@.*.].*.$.*.$././.$.$.*.@.$.@.@.@.@.;.%.%.%.%.*.%.@.*.U w d l ' # * # + + * > * * _ 3 3 m o D D D Q X {.;.;.;.%.{.{.{.{.{.{.{.b.{.y.{.{.{.y.{.b.b.7.7.b.b.7.y.v.b.", | ||
450 | "4 7 4 7 b 7 4 1 b b 4 7 7 7 e 7 7 7 v i , ( | , < ( ( : { ) @ @ @ . - , , ! ! ! , ! ! ! , , - @ @ @ @ = = < , ( | a t !.(.).(.).a.a.,.,.,.).]./.$.].$.@.].=.).$./.].].$.)././.,.).=.,.)./.Z @.@./.@.,.,./.%.%.$.=.=.*.].*.*./.*.%.*.*.&.].].=.=././.@./.'.*.%.@.=.*.%.%.*.c.*.*.;.*.%.U z z l ' ' * + * + # * * * _ _ 3 f m m E E Q Q ;.;.;.;.%.{.{.{.{.{.{.{.{.{.{.b.{.b.y.{.b.{.7.b.b.b.b.b.b.b.y.b.", | ||
451 | "7 | b b 7 7 e 7 4 7 7 7 7 e 4 7 b e e 6 | | ( ( < , { & @ - , ! ! 4 e e b 2 2 2 2 2 ! ! , - @ . . . @ @ = - < | a | y :.'.!.a.).).).,.!.,.*.$.].].$.].].].,.$./.].*.$././.$.$./.].,.'.,.)././.$.$././.].@.@.].*./.].].*.%.].=./.*.*.]./.&.*.].@.].].].@.@.=.].*.*.*.*.c.*.&.].%.%.X z w _ ' ' ' + + * * * ' * _ _ _ f o o x D E E ;.Q ;.;.;.;.{.{.{.{.b.{.b.;.7.b.{.{.b.{.b.b.b.v.b.v.b.A.7.b.y.b.b.y.", | ||
452 | "b 7 4 1 b 4 | 7 1 8 7 7 7 e e e 7 s e | : | ( : ( < { & @ @ - , ! 2 2 q 4.k.` s 9 1 9 9 9 b b ! ! - @ @ . . @ . @ = - , , | | k ^.!.!.).).,.,.,.,.,./.$.]./.$.].@./.'.$.$.$.$.$.$.=./././.]././.$.Z $.$.).$.$.$.$.].$././.$.*.*.*.].%.*././.*.&./.*.].%.@.]./.%.].*.%.].*.c.;.*.].=.=.&.$.Y w d _ > > + * + # + * / / 3 3 f o o E E E Q ;.;.{.E {.{.{.;.;.{.{.{.{.b.b.7.7.b.b.b.b.y.b.y.b.y.b.b.v.7.A.b.y.y.v.v.", | ||
453 | "| 7 4 7 7 e b | 4 7 7 b 7 7 | 4 4 e e i | : : ( ( = @ @ @ - , ! 2 q H S.V.|.I q 9 9 9 9 b b b q 7 ! , @ @ . @ @ - - - < < | r V '.).).).).g.(.,.,./.]./.@./.$./.*./.,.=./.]././.,./.$./.$.,.'.).).,.'.$.$.$.$.$.X ].].@.].*.].].].].].=.*.*.].&.].%.].].a.].].].c.].].].].].].=.*.=.Y f f _ ' + * # * * * * ' _ _ 3 3 m D D D E ;.E {.E {.{.{.{.{.;.;.;.{.{.{.{.b.7.7.y.b.v.b.b.b.7.7.7.v.7.A.7.v.b.y.v.y.v.v.", | ||
454 | "4 | e 7 4 e 7 e 7 7 7 b 4 7 e e | 7 7 | < < ( ~ = = @ - , ! ! 2 9 j.S.=+n.I s 1 9 2 2 9 9 b b b 7 7 , - @ . @ @ . - - , ! < 8 y :.'.,./.a.!.,.(.'.'./.].].$./.$./.].].=.=./.@./.$.,.,.,./.$./.$.$.).$./.,./.$.=.$.].@.=.].].].].@.*.&.*.*.*.*.].*.].].%.%./.].c.].c.c.].c.].].=.,.U w 3 / ' + > + * # * * / _ 3 f f m z z E Q *.;.{.{.{.{.{.{.{.;.{.%.;.;.7.{.b.{.{.b.7.7.b.b.v.b.y.y.7.b.v.A.v.7.A.v.y.b.y.y.v.", | ||
455 | "4 e | 7 b 4 e i | 8 8 | | 4 4 | 7 7 | ( | ( ( = = - - , ! 2 1 H j.S.-+|.I q 1 2 2 9 2 2 1 4 b 7 b 4 4 , @ @ . @ - @ - - < 8 | r !.)././.).!.a.'.,.,.=.$.$././.@.].].].].*.]./.,.,.,.,.$.$./.Z /.)./.).,.Y ).,.=./.@.$.$.$.].%.*.*.].].&.*.].]./.=.=.=.*.].c.].].&.].=.*.@.@.'.w w d 3 > * * + + ' * * / _ 3 f f o z z U X Q ;.Q ;.;.{.{.{.{.{.{.{.;.7.c.{.{.b.{.{.b.7.{.7.7.b.7.7.b.v.v.I.7.v.A.v.y.y.v.y.y.C.G.", | ||
456 | "4 7 | | 7 e e | 7 7 1 e 7 7 b 7 7 b e a ( < - @ - , , , ! b H S.S.V.+.v 4 4 1 1 2 1 2 2 9 1 7 b b b b | - @ @ @ @ - - - , < 8 y ^.)./.,.a.,.(.,.,.,.'./.=./././././././.=././.,.,.!.,.).$./.$.@.$.@.).).$.,.,.=.=.=././.$.=.].].].].].].%.].].*.*.&.=.c././.].c.'.a.=.'.Z z w l / * * > # * ' * * ' _ _ f o m z Q Q X ;.;.*.;.*.;.{.{.{.{.{.{.7.7.7.b.c.c.7.7.7.c.7.b.7.b.7.7.7.v.b.b.7.I.A.v.A.v.v.v.v.I.A.y.A.", | ||
457 | "7 4 4 b 4 | e e 4 8 8 8 7 7 4 7 | 7 7 i ( - = @ - , ! 4 q _.S.-+n.F e 1 ! 1 2 2 1 1 2 2 1 4 4 4 7 7 7 | - @ - @ @ @ < < | | r R )././.!.a.'.(.,.,./.'././././.).].,.'.=.=.'.a.'.'.!./.).Z /./.Z /.$.$.,.$.].=.*.*.].*.=.=.%.%.].*.*.&.*.*.].=.a.*.*.=././.].].*.=.U Y w d / ' * * # # # * * ' _ _ 3 f f o E E Q Q ;.{.%.;.&.;.;.{.{.{.7.{.c.{.c.{.7.7.7.7.b.7.7.7.7.7.7.v.7.v.b.b.v.v.b.v.y.y.C.y.v.v.A.v.v.A.", | ||
458 | "7 b 7 4 7 e e e 4 8 4 | 7 e 7 7 | e 7 i { = @ , , ! ! q H S.`.|.s 4 1 b b 1 ! ! 1 1 2 1 1 1 1 1 8 8 7 e ( - @ @ @ , - , , ! a y !.(.).a.,.!.,.).,.,./.=.].$.$././././.'.=./.,.,.'.'.,.)./.@.@./.,.$./.$.$.$.].].].%.].*.].c./.*.].=.a.*.].*.c.&.*.c.*.=././.]./.Y Y m l / / # # # * # * * ' / 3 f f o o x x Q ;.;.;.;.{.%.{.c.;.{.7.7.{.c.7.7.b.7.7.7.7.7.{.7.b.7.7.v.A.c.A.y.7.v.v.b.I.7.A.A.7.y.A.v.v.v.v.A.A.", | ||
459 | "4 4 4 4 b e e | 7 | 4 7 7 4 7 e e 7 7 a { - , , 2 2 b q E.S.` e 1 b 1 q b q 1 1 2 2 2 4 1 1 b b 7 7 7 e i ( @ @ . - - - , | | r :.!.,.).).).,.).,.$.'./.$.]./.,.,.,.=./.,.'.'.,.,.'.,././././.$.$.,.$.,.,.$.].@.].%.c.%.*.].].].a.=.&.].c.;.].]./.=./.=./.@.Z Y w d / ' * * * * * * ' / / _ 3 f m m x x U Q Q E {.X {.{.{.7.b.7.7.{.{.{.b.7.c.7.b.c.7.b.b.7.y.b.v.b.b.A.A.7.A.v.A.v.A.A.I.A.y.y.7.v.v.b.A.A.v.y.", | ||
460 | "4 4 b 4 7 4 7 7 7 7 1 4 7 4 4 4 7 7 7 a - , , ! 2 2 q F k.I e q e q q q e b b b 1 4 1 1 4 1 7 7 7 7 | i | ( = @ @ @ - , , ! a t (.,.!.!.).).,.$.=./.=././.$.,.,.$.,././.a.,.'././.,.,.)./.@.].=././.$.$././.].%.%.%.]./.=.].].%.%.].].*.%.c.].].c././.$.Z Y w d ' _ > * # # # # * / / _ f m m z D E Q Q *.;.;.{.;.;.{.{.{.;.{.{.7.7.b.b.b.b.b.7.b.7.c.b.b.b.7.7.7.A.b.I.I.7.A.v.b.I.y.y.A.A.C.y.y.v.v.v.v.b.v.y.", | ||
461 | "4 4 4 7 7 8 1 4 b 4 7 7 4 4 | 7 | | e | - , ! ! 2 b b F s e 7 q s s e q e q e 4 e | 4 7 7 4 | 7 i 8 i 7 i | - @ @ @ - - , | | y (.g.'.!.!.,.,.'.,.,.,.=.,.,.'.=.,.$./.].$.a.,.,././.,./././.]./.=.,././.$.$./.=.*.].].].].].].].c.;.c.].].]./.].].$.Y Y z d _ > > > * # * * / / _ _ f m m z D E X X %.;.;.;.;.*.;.;.{.{.{.{.{.7.{.{.b.{.7.b.b.7.7.c.7.v.b.v.b.v.v.b.A.b.I.v.v.v.y.C.C.A.v.y.y.A.A.v.v.v.v.v.b.v.", | ||
462 | "b b 4 4 7 7 4 4 7 8 7 e 7 4 4 8 7 7 4 | , ! ! 2 1 b 7 b 1 1 q v s q e q e b e e | | e s O 7 | 8 8 8 i | i | - @ - @ - - , < | y !.).,.,.).,.,.=.=.,.,./.=.,.,./.=.'./.=./.,.,.,.'./.).Z /./.].].=.,.@./.).$.=.=.c.].%.].].].c.*.].*.].]././.$.Z X Y w _ ' ] > + # # * # / / _ 3 f f m z D X X %.%.{.{.%.;.{.{.&.;.;.{.{.b.{.b.b.{.7.b.{.7.7.b.7.A.c.c.v.b.v.b.b.A.A.A.A.b.v.A.v.v.A.A.A.A.y.A.v.A.v.y.y.A.v.y.y.", | ||
463 | "| 7 b e | 8 b 7 4 4 4 4 7 7 7 7 4 8 | | , ! ! ! 4 1 4 1 1 q e F e q e q e b e e i i 6 M G a 7 i 8 i 8 i | a ( @ @ - - , < | a N ).).,.!.,.)./.=.,././././.=.,././.,.'.,.'.,.a.,.$.)./.)./././././.=.,.,.=.=.a.*.*.%.%.c./.*./.].a./.c./.$.,.Y Y w d / ' > * # ; * ' / / / / _ f f z z X X X %.{.%.{.%.{.{.{.{.{.;.&.7.b.b.b.b.7.b.b.b.b.7.7.b.7.7.7.A.7.y.v.y.y.7.A.A.v.I.v.v.A.A.v.A.A.y.A.A.A.y.y.A.A.y.y.C.C.", | ||
464 | "| | 4 7 4 4 b 7 4 7 4 4 1 4 7 4 | b 7 | , ! , ! 1 ! 1 1 e q e e e e b 4 e e B B 6 : k t B B r r | i i | 7 i a @ = @ - , , 8 | C (.).).,.,.=././.'.'.'.'././.,./.]././.,.'.!.g.).$.)./.,.,././.]./.=./.,.].%.].].].c.%.c.].].a.].=.'./.,.Y Y w d _ ' > * > + * > > ' _ _ f f w z z X X X ;.;.*.%.7.{.7.%.7.b.b.7.b.7.7.7.7.7.7.7.b.b.b.7.7.C.7.L.c.7.A.b.b.b.v.y.A.y.A.A.I.v.v.A.J.J.A.A.A.A.A.A.C.A.A.C.C.c.B.c.", | ||
465 | "7 e 7 4 | 4 4 4 7 7 4 b b 7 8 7 1 b 8 ! ! ! , ! ! 1 4 q e q e q e e e e s G K K [ { } 6 y B M B p a 8 a 7 a } @ - - - , ! 8 a T ).).).).,.,.'.'./.=.=.]././.$.$.)./.,./.).a.).).,.).,.,.$.$.].a././.=.a.].c.%.c.]./.].].a.=.]./.,.,.Y Y w 3 _ / * ; # + # / * / _ 3 l m m z z Z X X X %.*.*.{.%.%.c.%.c.{.b.7.b.b.b.7.7.7.7.7.7.7.b.7.7.7.7.A.7.A.7.7.v.v.v.y.7.y.y.A.v.A.v.I.v.J.A.I.G.y.A.C.C.A.A.A.y.B.B.z.z.", | ||
466 | "1 4 4 4 | | 4 4 4 7 | 4 4 4 7 7 8 b 7 4 , ! 1 ! ! 1 b e b b b e b 7 4 e G .N u ) ) % - a y y p B a 7 7 7 a : @ @ - , , | 8 a V !.,.,./.$././.'./.*.'.'.,.).).=.,.,.a./.)./.).).)./././.'.'./.,./.,.=.a.%.c.].a.a.a.].c.).a./.,.).R w l / ] ; # # # / * > / ' _ 3 d m z z X X X Q %.*.%.%.*.;.c.%.c.c.c.7.b.7.b.7.7.b.b.b.7.7.7.C.7.A.7.I.7.A.c.A.A.A.v.v.v.y.v.v.v.A.v.A.y.I.v.v.G.v.G.C.A.J.C.A.C.C.A.B.B.c.z.", | ||
467 | "4 4 4 7 | e 7 1 | 7 4 | 7 7 4 4 1 8 4 ! ! ! 1 ! 1 4 e b 4 e 4 7 4 e 4 v ..u u 0 [ & @ @ & { 5 j p r a 7 a r { = - - - | ! ! a V ).,.$.,././.=.]././././.=.$././.'.).).)./.)./.)./.).'.a./././.a.=.a.'.*.].%.c.&.a.=./.)./.,.Y Y R l _ ' > * * # / * > ^ / _ l l w m z Y D X X *.%.%.;.*.{.c.;.7.;.;.{.{.7.7.7.7.b.7.b.b.7.I.7.A.7.A.7.A.c.A.A.v.7.A.7.A.v.v.v.y.y.y.v.A.y.v.y.v.G.v.D.v.A.C.C.A.A.A.A.C.C.B.B.B.", | ||
468 | "4 4 4 7 7 e 4 4 4 7 4 7 | 4 | 7 1 8 7 7 ! ! ! ! 1 1 1 7 4 4 7 4 e | e u K j j 0 [ & @ @ @ & } r r | i a a ( = - , - , 8 8 5 R '.'.$.,.$././.$./.,.,.,.$.$././.,.).).).).).).a./.).,.,./.=./.a.=.].a.].a.].a.c.a.=.a.$.Y R w d ] ^ ; > # # / > ' / 3 l l d d w z Y D Z X *.;.*.c.%.c.c.7.7.c.7.7.;.7.{.%.7.7.c.7.7.7.I.c.7.I.7.7.I.7.I.7.A.A.A.A.y.A.C.y.A.y.y.v.v.v.v.y.A.y.I.v.y.D.y.C.A.A.A.A.v.v.A.y.C.B.D.", | ||
469 | "4 b b 7 | 4 7 b 7 4 4 | b 4 7 | 7 4 4 | , ! ! 1 b 4 1 4 1 4 4 ! e 6 k 5 j K K t ) @ @ @ = = - : K G a i a a = - , - , ! ! 4 y !.Y ,.,.].=.=././././.$./.,./././.,.'.).)././.).)./.].].a./.a.].a.=.a.].c.].a.]./.].$.Z Y w d ^ > * # * ; * # ^ / ] d l l d Y z Y Z X @.@.@.%.;.c.*.c.%.%.7.%.{.7.7.b.7.c.b.%.c.c.7.c.c.c.7.7.L.I.c.c.A.A.A.A.v.v.v.A.A.A.A.G.G.v.y.y.v.I.v.v.A.y.A.y.y.C.A.y.A.A.v.A.A.A.y.C.y.A.", | ||
470 | "4 4 4 b e 7 | 7 | b 1 4 7 4 | 4 | 4 1 4 | ! ! b 7 4 4 4 4 4 1 4 v 6 6 : 5 W u K & @ = @ : : k 6 K M a a a a < , , ! , ! 8 | j !.).$.,.,.,.,.$.$.$.'.'./.,.$.,./.).$.).).)./.).).)././.].].a./.a.].c.a./.a.].a./.).Y w d ] ' # # # # * ^ / / / l l c C R R R (.).).).,.].c.].%.c.].c.c.c.%.7.%.7.c.7.7.c.7.I.7.c.7.7.C.c.I.7.7.I.7.L.c.C.C.A.A.A.v.A.v.v.I.G.y.v.I.y.G.J.I.I.A.A.y.y.y.c.A.A.A.A.A.y.A.y.y.y.7.v.", | ||
471 | "4 4 1 4 7 7 7 7 4 1 4 4 4 | 7 | 1 1 4 e i ! , 4 4 4 | ! ! 4 1 e .5 } - p B K [ & = = : 6 k p j S W 7 a a < - , , ! ! ! | | V Y *./.'.'.'.=././.=././.$.].=.$.).$.Y ).).,.)./.)./.,.,.,.]./.a.a.a.].].c./.).$.R w l ' ^ * / # ~ / / ^ ^ c C T #.i.q.N.P.++#+*+*+P.N.u.u.U.[.a.a.c.c.%.c.c.c.7.7.7.c.7.7.c.c.c.c.I.7.c.I.c.7.I.7.A.A.A.C.7.A.A.y.A.A.J.I.I.v.G.G.A.A.I.v.y.A.A.y.y.y.y.v.A.I.v.A.A.A.y.y.y.y.A.v.", | ||
472 | "4 1 1 4 4 4 4 b b 1 4 4 1 4 7 7 7 7 b e | 4 1 4 ! | ! ! | ! 1 s G ) : : t t t u & = = } 6 k p p S a i a a a < , , ! < 1 ! < V !.$./././.,.'.'./.=.=./.$.].*.@.,./.).).).$.)./.).).).'.a.=.a.].a.).].a.).).Y w d ] > > ; ; # / ^ ^ g y W 3.M.N.$+{+{+3+3+3+3+3+3+3+3+/+{+:+*+P.U.a.c.7.c.c.%.7.7.7.c.7.I.7.7.I.%.7.b.L.7.I.c.I.c.A.7.A.C.L.A.A.A.v.J.A.v.I.v.y.y.v.A.A.J.G.A.G.C.C.C.C.A.J.A.A.v.A.A.y.y.A.v.G.v.", | ||
473 | "4 4 4 4 1 7 4 4 4 4 4 4 4 b 8 8 | 4 7 7 , ! | ! 4 ! 4 ! 4 ! 4 s v - | p M K N u [ & : ( 5 t k B W a | g a - < , ! ! ! 8 | a V ,.,./.a.)./././.'.a.,.,.'.,./.=.).).Z ).).).,.).a.)./.a.,.a./.a./././.Y Y w l ] ^ * # $ # / ^ [ y -.q.T.$+{+{+e+e+e+e+e+k+r+k+r+r+l+k+k+l+e+3+{+:+#+.+d.c.c.c.L.c.c.7.7.7.c.7.%.I.7.7.c.I.7.I.7.I.C.L.A.A.A.A.C.C.A.I.J.A.I.J.G.G.G.G.G.I.v.A.y.y.y.y.A.A.I.v.v.A.A.A.y.A.C.G.A.J.", | ||
474 | "4 4 1 4 4 1 7 7 | | 4 4 8 1 8 1 7 7 7 e , ! ! ! , 4 ! ! | ! 1 e 6 : B ..M K K u [ ) = ( : 6 j K B a < a a ( , < | 8 4 4 | g !.).).$./.,.,.'./.'.'././.'.'./././.).$.).,.).,.).).).).].].a././.,.Y R l l ^ ' ; # ~ ^ ~ 0 u -.s.H.&+{+3+e+k+e+k+r+p+p+q+p+r+p+r+v+r+q+r+r+r+r+l+d+:+:+*+.+a.a.L.7.L.%.I.7.I.7.c.A.7.I.c.I.c.I.c.A.A.C.C.C.C.J.A.A.C.A.A.G.G.I.I.G.A.A.A.J.G.G.A.A.A.A.A.A.A.A.A.y.y.A.A.A.C.A.A.A.", | ||
475 | "4 4 4 1 7 4 | 7 4 4 4 1 1 4 1 8 1 4 4 | | ! ! ! ! ! , ! , , 4 s p v S }.}.}. .p 5 } & & = } k M p a a a < , < | < | 8 7 | y !.$./.).,./.).]./.,.,./././.,.'.'.).,.).).).,.(.,./.,./.,./.=.'.Y Y l l / * > $ ^ ~ y M f.Q.&+{+{+3+c+e+h+k+p+p+p+p+q+t+s+s+s+t+s+t+y+x+v+y+y+o+q+p+e+3+d+:+#+R.d./.L.c.L.c.L.c.I.c.C.].I.c.7.C.7.A.b.A.A.v.J.J.v.A.A.A.G.v.I.J.v.I.G.J.I.J.I.I.A.A.A.A.v.A.C.y.A.y.C.C.C.A.A.C.G.G.", | ||
476 | "4 4 4 7 7 | 7 7 4 | 1 b 1 4 4 8 b 4 b | | , ! ! ! ! | , | ! e O t G S <.n.<.S p p [ = = { = p M 6 a a a a | , | ! | 7 8 i V )./././.,././.]./.,.,./././.).,.,./.,.$.).).,.,.,./.,./.,.,.Y w l l / ^ ; # ~ u .T.M.$+$+3+3+e+k+k+m+r+p+r+p+r+s+s+s+s+t+v+v+y+y+t+t+y+v+t+B+t+t+v+v+p+k+d+3+:+.+R.c.L.c.L.7.L.c.L.A.L.7.I.L.C.7.C.A.A.C.A.C.A.I.I.A.J.J.G.J.J.G.I.I.J.J.C.C.I.I.v.I.L.A.A.C.A.A.7.A.G.O.C.y.C.C.C.", | ||
477 | "4 4 7 4 4 | 4 4 | 4 4 4 4 8 8 4 4 4 | e 4 , , , , ! | , , ! e ..B G +.n.|.+.G B p p : : : i B r a 5 g a < | | 4 | e v | a V ,.,.'.'./.$././.,.a./.'.).).a.).,.,.,.,./.,.'.'.,.).,.'.'.R n l / / > * ^ [ W T.&+{+3+3+e+k+k+p+p+p+r+p+v+s+s+s+s+r+t+t+v+B+v+v+y+v+B+t+y+w+w+y+y+y+s+v+r+r+e+3+:+#+R.~.L.R.c.L.I.7.R.I.I.7.J.J.C.A.A.A.y.C.C.C.A.y.C.A.G.J.G.G.I.v.J.I.J.L.J.A.J.J.J.J.L.J.y.v.A.A.G.C.G.A.A.A.A.A.", | ||
478 | "4 4 4 | 4 4 4 1 4 4 8 4 ! 8 4 | 7 4 1 4 | , , , ! , , , | 4 s .K G I |.I O G G G G G p p B #.t a g 5 ( | | | 7 4 s e i y !.'.'.=.'.)./.$./.,.,.a./.$.).).(.)./././.a.,.!.'.'.'.Y w w l / / ; / ; # [ 3.$+{+c+c+k+p+p+p+r+r+r+p+p+s+p+r+s+t+y+B+v+v+x+x+y+x+y+y+x+y+B+t+y+y+y+t+y+v+v+v+r+k+e+:+:+.+c.I.L.c.L.L.L.I.I.I.L.L.C.A.A.A.I.A.A.A.C.C.G.C.A.A.J.J.J.J.J.I.J.L.L.J.J.A.J.J.J.I.A.A.G.C.J.L.C.J.A.L.C.A.", | ||
479 | "4 7 7 4 4 4 4 4 4 4 4 8 4 4 4 | 7 7 b b 4 , , , , , , , , , I S ..G +.O p v S ......<. .S s.}.y g a } i | e e e e s 7 e y !.,.,.,.)./.)./././.).).a.,.!.!.,.,.,.).a.'.,.a.,.!.Y w d / # # # # # / ] W &+^+c+e+e+h+k+r+p+p+s+s+s+r+v+v+s+s+v+t+t+x+x+v+y+t+B+y+y+B+t+y+y+y+A+t+B+y+A+y+y+y+t+k+e+:+:+r.c.R.I.L.L.L.L.L.L.J.J.L.J.J.I.A.L.C.J.A.C.C.A.C.C.L.A.A.J.J.J.I.G.v.G.J.J.J.J.J.A.J.J.A.J.J.J.A.I.J.J.L.L.", | ||
480 | "4 7 4 4 4 4 4 7 4 4 4 4 4 7 1 4 7 | 7 7 | , , , , , , , | ! I S ..<...p v B S ..<.n.}.<.n.s.K k a a : i e e e q 7 7 | j R a./.]./.,.@./.,./././.,.a.$.).!.!.,.a.).).!.'.R w l l ] ^ > # ~ ~ ^ ^ ^ u $+3+3+b+4+e+k+h+k+p+k+q+t+t+t+y+t+B+t+x+x+y+y+x+v+x+y+t+y+y+B+B+y+B+y+B+y+y+y+y+B+t+y+A+r+t+k+d+:+.+R.c.L.c.L.I.L.L.L.I.J.J.J.J.J.J.J.I.A.A.L.L.A.A.J.A.A.A.v.v.v.C.y.A.J.J.J.I.I.L.L.L.G.G.J.J.J.I.J.J.C.A.", | ||
481 | "4 7 4 b 4 4 4 7 7 4 4 4 4 7 4 4 4 4 7 e | , , , , , , , , ! I 2.+.2.S p G S ....-+n.W.n.t. .j g a : i e s s s s q b i C ).)././.'./././.a.,.,.,./.).).).!.!.).).,.,.'.Y V n n ~ ~ ) g 0 g 0 y N W q.{+3+4+4+e+c+c+c+k+e+i+i+i+k+r+v+v+t+x+v+t+B+t+y+y+y+y+y+y+y+y+y+y+y+B+y+B+B+y+B+y+y+w+t+w+t+r+a+d+:+d.c.L.I.L.L.I.L.L.I.L.J.I.I.L.I.J.J.I.L.J.J.A.I.A.A.A.A.v.A.y.C.C.C.C.A.J.L.L.L.C.L.J.I.G.J.A.J.J.L.J.L.", | ||
482 | "4 4 4 4 4 4 4 4 4 4 4 7 | 4 4 4 4 4 4 1 | , , , , , , , , ! I +.|.<...G +.+.<.}.-+n.M.n. .j 5 g ( 6 v s e s s s s 7 a V /./.)./.a.).).,.'./.a.,././.).).(.(.(.,.Y R w l g j r -...f.f.o.M.M.M.$+W.{+|+4+4+c+e+c+3+6+4+3+4+4+4+e+e+p+s+y+y+x+t+y+t+x+y+w+A+A+A+A+y+B+y+A+A+y+A+A+A+A+A+y+A+y+y+t+s+q+a+d+/+.+a.I.B.L.L.L.L.I.L.L.I.I.I.I.I.J.J.L.J.J.J.J.L.C.A.A.v.A.A.y.C.A.A.A.v.v.J.J.C.B.G.J.G.J.A.L.J.J.J.J.", | ||
483 | "4 4 4 4 4 4 4 7 b 1 4 7 4 4 4 4 1 7 1 7 | - - , - , , , , , F O I 2...}.n.n.n.W.n.H.<.M k 6 } 6 | e e s v O I F s e y !.'.a.,.,.'.'./.a./././.a.a.).a.!.,.).,.R V C -.#.s.K.@+@+&+&+>+{+{+{+4+{+4+b+4+4+c+c+e+e+c+e+4+4+4+3+3+4+4+b+g+q+s+B+y+t+y+y+A+y+y+A+A+y+B+y+A+y+y+A+B+B+y+B+A+A+B+y+t+B+t+y+q+l+3+*+.+L.c.L.L.L.L.L.L.I.L.L.I.L.I.I.J.J.J.J.A.J.J.v.I.J.L.A.A.A.A.C.J.v.A.A.A.A.c.C.B.A.J.A.L.C.L.J.I.J.", | ||
484 | "4 1 1 4 4 | 4 1 1 1 4 4 4 4 4 4 1 1 7 4 | , , , , , , - , , | e I O 2.<.n.n.n.M.n.<.O 6 a } ( | e s s I I O s I 7 i V ,.'.,.).).a.,././.].a./.a.a.g.,.(.(.:.V ^.f.Q.W.>+]+{+|+4+6+b+b+c+c+e+i+c+0+h+h+h+h+h+k+i+h+k+c+e+4+4+{+{+^+3+2+g+o+t+B+t+B+t+y+y+v+y+y+y+A+B+B+y+B+A+A+A+y+B+A+A+A+A+w+B+t+y+r+r+l+/+*+R.O.L.L.I.L.L.L.I.L.I.I.L.L.I.J.I.I.J.I.I.J.I.A.A.L.A.A.J.J.A.C.J.C.C.A.v.y.y.C.A.C.C.c.C.c.I.J.J.", | ||
485 | "4 4 ! 4 4 7 7 4 2 2 4 1 4 | 7 4 4 b 1 4 | , - , , , , , , , , , e I +.|.n.|.n.<.G k | ( a < 4 v s s F F I I I s O y !.,.,.,./.,.,.,.'.a.a.a.a.[.g.(.6.^.i.q.Q. +$+{+3+4+c+b+e+c+h+i+i+k+k+p+k+q+k+k+i+h+p+p+m+q+k+p+k+c+e+e+3+3+]+{+3+3+b+k+q+B+y+y+B+B+B+B+B+y+B+y+A+B+A+A+B+B+B+A+A+A+y+y+y+w+B+t+t+B+r+k+:+.+R.B.L.L.L.C.L.L.I.J.L.I.J.L.L.L.I.I.I.J.J.J.A.J.A.A.A.A.J.L.A.C.C.A.J.J.A.A.A.C.J.C.J.C.A.C.C.A.", | ||
486 | "4 4 1 4 4 4 4 4 1 2 1 2 2 4 4 4 b 4 1 1 | , , , , , , , , , ! , , e v I +.+.I G 6 : ( ( | , e s I G I I ` +.F s t R ).,.a.,.).).).a.a.a.a.[.[.1.u.N.T.Q.>+]+{+6+4+c+e+c+h+h+h+i+h+m+m+m+p+p+p+o+s+q+q+p+p+p+p+m+p+p+p+m+h+h+c+e+{+{+)+{+4+b+i+q+t+y+w+w+y+y+A+A+y+y+A+B+A+A+A+A+B+A+A+A+y+y+y+w+y+A+t+t+w+w+e+/+U.L.I.L.L.L.I.L.I.I.J.J.J.A.J.L.L.L.I.J.J.J.G.G.G.A.J.J.A.L.J.J.J.J.J.J.J.J.J.J.J.C.C.J.C.A.C.A.", | ||
487 | "4 4 4 4 b 1 4 1 4 1 1 1 1 b 4 4 4 4 4 b 1 < - - , , , ! ! , , , , , e e e | | | , - - , | e s I I I ` F ` I s i y (.,.,.'.!.a.a.,.a.(.[.1.u.N.*+&+&+^+1+4+c+0+b+h+k+h+k+k+p+p+p+p+q+p+p+p+s+q+s+q+p+q+p+m+p+o+t+s+p+s+p+q+k+k+c+b+2+]+]+]+]+e+i+t+y+B+y+y+y+y+y+A+B+y+A+B+B+A+A+A+B+A+y+A+y+y+y+w+y+w+y+r+q+l+a+#+R.R.I.L.I.L.L.L.J.J.J.J.A.A.A.L.J.L.J.J.L.L.A.I.J.J.L.J.I.A.J.J.L.J.J.L.J.J.I.J.J.J.L.J.L.J.C.", | ||
488 | "4 4 4 4 4 4 4 4 4 1 1 1 4 4 4 4 4 1 1 1 7 | - , , , , , , , , , , , , , , , , , - , - ( e e I I O ` |.` ` O e y R )./.a./.,.g.g.9.g.u.N.%+&+{+{+|+4+c+e+e+k+k+k+k+k+p+p+k+p+p+p+p+q+s+p+p+m+t+s+s+m+t+t+t+s+s+p+s+s+s+s+s+s+p+p+k+c+4+{+^+]+3+0+k+s+B+B+B+B+A+B+y+B+y+A+A+B+A+A+A+A+A+B+A+A+y+y+w+y+t+y+B+r+r+l+/+.+R.R.L.L.L.I.I.I.J.A.J.J.I.J.C.J.L.L.L.L.L.J.v.J.A.I.I.J.I.A.J.C.C.J.J.J.J.I.J.J.I.L.L.L.J.J.", | ||
489 | "2 4 1 ! 1 4 4 4 7 ! 4 4 4 4 4 4 4 4 1 7 4 i - - , , , , , - - , - , , , , - , - , - | | e v I I ` +.` ` +.s a V (./.a.a.a.).[.x.i.M.*+{+^+4+4+c+c+k+e+h+h+i+p+p+m+p+p+p+m+p+o+t+q+m+p+s+s+s+m+t+o+s+s+s+s+v+s+t+t+t+t+s+s+s+v+q+p+k+e+e+3+^+^+2+i+k+s+y+y+y+y+y+B+y+B+B+A+A+B+y+B+y+x+y+y+y+y+B+y+y+A+t+t+t+t+r+d+:+.+R.L.I.L.L.I.J.C.A.A.J.A.I.J.J.C.C.G.G.L.C.L.L.C.L.J.I.J.C.J.J.J.A.J.J.I.I.I.L.L.R.L.J.I.J.", | ||
490 | "4 4 4 1 1 1 1 ! | 4 2 4 1 4 4 1 1 4 1 b 7 | - - , , , , , , , - , - , - , - , - , : i v v I I ` ` ` ` ` O r y !.).a./.a.a.1.u.%+]+^+3+e+e+c+h+k+h+h+k+p+q+h+q+p+p+p+p+p+q+s+o+s+s+t+s+o+t+s+x+s+s+m+y+t+t+s+x+x+s+x+t+s+s+s+s+t+t+p+p+e+e+4+4+4+6+e+q+t+B+y+A+y+B+y+y+y+A+A+A+A+A+A+y+B+y+y+w+y+w+t+B+y+t+t+t+q+l+/+.+R.R.L.R.I.L.I.C.G.A.L.C.A.J.J.L.C.G.A.J.C.J.A.A.I.J.J.C.C.L.J.I.I.J.L.L.L.L.L.L.L.L.I.I.J.", | ||
491 | "1 1 1 4 4 1 1 1 1 4 4 2 4 4 4 4 4 1 8 1 b | - @ - , , - , , , , , , , - - : - : | i B I O I +.I ` ` ` I O y V (.[.).[.[.e.X.]+{+3+e+4+h+k+h+k+p+k+p+m+o+o+q+p+q+q+s+p+s+m+v+s+t+t+s+s+t+s+v+s+s+s+t+s+y+s+x+s+s+t+t+s+t+t+t+s+v+s+v+p+p+h+e+3+4+4+0+i+q+y+A+B+A+y+y+A+A+B+A+B+y+y+B+y+y+B+v+y+w+y+B+t+t+A+t+t+r+r+d+:+.+L.L.L.L.L.L.L.G.L.L.J.J.A.J.L.L.L.G.G.J.J.A.A.A.A.J.A.L.L.L.L.J.J.L.L.I.L.I.L.L.L.L.J.J.", | ||
492 | "8 1 ! 1 1 4 4 1 1 1 4 1 ! 4 4 7 8 1 b 2 b 7 < - - - , , - , , - - , - : : } 6 6 e G I G ` I ` ` ` ` ` I p V 9.g.[.a.[.e.Q.>+^+4+4+c+c+c+c+h+k+h+p+q+p+p+q+p+m+m+r+s+p+s+m+s+m+v+s+s+s+s+y+m+x+t+s+x+s+y+t+x+y+s+x+y+x+x+x+y+s+s+s+s+s+p+p+h+c+4+^+4+6+i+t+y+y+A+A+y+y+A+B+y+y+B+A+B+A+y+A+t+B+t+w+y+B+v+B+w+t+w+q+d+/+.+R.R.R.L.L.L.L.L.L.L.L.J.A.J.L.G.J.J.C.L.C.J.C.A.L.A.A.J.L.L.J.I.I.J.J.J.L.I.L.I.L.L.C.A.", | ||
493 | "4 ! 1 ! 1 1 1 8 1 1 4 4 b b 4 8 1 4 8 b 4 e , - @ - - , : , , : : - - 6 B B B B I G I G ` G I F F F ` G W :.!.[.(.(.:.f.]+^+7+6+6+0+4+0+6+6+0+h+o+m+q+o+s+o+t+s+s+p+s+s+t+s+v+s+s+s+s+t+s+t+s+x+y+t+y+s+x+t+y+y+y+s+y+t+t+s+y+t+t+t+s+v+p+p+k+c+3+4+4+e+k+t+B+y+A+B+y+y+y+y+B+A+y+A+y+A+w+B+w+B+x+v+t+t+t+v+t+r+r+l+d+:+.+L.L.L.O.J.J.L.J.L.J.L.J.J.J.L.L.C.J.A.C.C.A.L.A.J.J.L.L.L.L.I.L.I.I.L.L.L.L.C.C.J.J.A.", | ||
494 | "1 8 2 2 2 2 1 1 4 b 7 7 7 b 4 7 1 4 4 7 4 7 | - = - - 6 5 { : : 6 6 6 B B G O O +.` I +.G ` +.I ` F I G >.!.!.(.Y T W &+<+^+^+4+4+|+|+^+|+|+|+6+b+i+p+m+s+m+p+m+s+s+r+s+t+t+o+t+t+x+s+y+x+y+s+s+x+s+y+y+y+t+y+m+x+x+x+x+y+s+x+y+s+o+t+s+r+p+k+h+e+3+|+4+e+o+t+B+y+A+y+y+B+y+y+y+y+A+y+y+w+s+t+A+y+B+x+y+v+t+B+w+r+r+d+/+.+L.R.L.L.I.I.L.L.O.J.L.J.J.J.J.J.J.C.J.A.A.A.G.A.J.J.J.L.L.L.J.L.L.J.L.I.L.L.L.L.J.J.I.", | ||
495 | "4 1 ! 4 4 1 1 4 4 e b b b 4 7 7 7 7 7 1 b b 8 | | - 6 B u K p p p p G ..S +.+.+.+.<.|.2.2.+.|.` ` |.` #.0.:.(.R C g p.'+)+)+4+^+^+^+)+)+'+'+!+[+[+8+g+q+t+s+v+s+s+s+s+s+s+x+s+x+x+v+x+s+t+s+y+x+y+y+x+m+y+x+x+y+y+y+y+x+y+y+y+x+y+x+s+v+s+s+p+p+c+c+4+^+6+e+q+q+B+B+A+t+B+B+y+A+w+y+y+y+t+B+B+t+t+t+t+v+t+v+t+t+t+r+l+d+.+.+I.L.L.I.J.J.L.L.L.J.L.L.L.L.L.L.J.J.J.G.G.A.J.C.I.J.L.C.J.L.A.C.C.A.I.A.L.C.G.A.I.J.", | ||
496 | "! 4 8 4 ! 1 4 4 b | 7 4 e 7 7 7 7 1 7 4 b b b e s i v G K N M .+...2.k.n.n.n.H.F.n.-+W.-+H.W.F.F.W.n.M.o.q.f.i.e... +^+)+)+)+)+)+~+,+>+>+>+>+>+~+[+5+f+o+m+t+s+s+s+s+t+t+s+t+s+x+t+y+y+y+t+y+s+t+y+y+y+y+y+x+x+y+y+y+s+x+y+s+x+t+y+s+x+s+s+m+p+h+e+4+4+|+4+i+o+t+B+B+w+t+y+y+y+y+t+t+y+y+t+v+B+w+v+y+v+v+t+r+t+r+w+d+d+.+R.L.R.L.I.I.J.J.L.G.L.L.L.L.L.J.J.I.J.J.L.J.J.J.L.J.J.L.L.J.C.A.C.A.J.C.C.L.C.D.A.J.J.", | ||
497 | "4 ! 4 4 4 4 4 7 7 7 4 e 4 4 1 4 7 e 7 e e 7 q s v G I +.}.}.n.H.n.H.-+>+-+-+-+)+-+-+-+)+)+^+)+^+'+-+)+>+>+Q.$+W.W.@+_+}+^+)+{+{+>+&+ +>+`.$+ + +>+ +~+|+b+o+s+t+t+s+t+s+s+y+s+x+o+y+y+t+y+x+s+y+y+y+y+y+y+x+y+y+y+x+y+y+y+x+y+y+y+s+y+s+s+s+s+p+q+m+e+4+^+|+b+e+t+t+y+y+y+y+y+w+w+y+y+y+t+x+y+y+v+y+v+v+B+u+t+t+t+r+q+l+:+.+R.L.R.L.L.J.J.L.L.G.J.J.L.L.L.L.I.J.J.J.I.L.I.L.L.L.L.O.O.C.L.A.A.J.A.C.G.D.A.G.L.L.", | ||
498 | "1 1 4 1 4 7 4 7 ! b b 7 7 8 1 b 1 b 4 7 e s s I |.2.|.W.W.>+>+-+)+-+)+^+^+4+4+^+6+|+0+6+|+0+|+6+6+|+4+^+4+)+4+)+)+4+4+2+4+^+)+{+)+{+ + + + + +W. + +@+!+^+0+h+p+t+s+x+x+s+t+y+s+x+s+x+y+t+y+y+o+x+y+y+y+y+y+y+x+y+x+y+x+y+x+y+y+y+y+y+v+x+t+x+s+q+m+k+c+4+4+4+c+k+t+B+t+t+y+x+t+w+y+t+y+y+v+s+y+t+t+v+v+s+v+t+r+r+r+r+l+/+.+O.L.L.J.J.J.J.J.L.L.J.J.J.J.L.L.L.J.L.L.I.I.L.L.L.O.L.L.O.L.L.O.J.A.A.L.G.G.G.J.L.L.", | ||
499 | "4 4 4 2 2 4 7 4 1 4 7 4 4 4 7 8 7 7 e s s +.|.n.n.W.-+-+)+-+^+|+|+|+0+|+6+6+4+0+6+^+6+6+6+6+0+0+0+6+6+c+b+6+4+c+4+4+6+6+4+4+4+4+^+)+]+$+ + +Q. +Q.Q.W.W.-+^+c+m+m+s+s+s+x+s+s+y+t+x+s+s+y+y+y+y+y+o+y+o+y+y+x+y+x+x+x+y+x+y+x+x+y+y+x+x+y+x+s+p+s+p+m+k+4+|+^+4+c+p+t+A+t+B+t+x+x+v+x+v+v+s+t+s+w+B+t+t+B+r+w+w+t+r+w+l+d+.+R.O.L.O.L.J.J.L.J.J.O.I.I.J.L.L.L.L.L.I.R.L.L.L.L.L.L.L.L.O.O.O.O.L.L.B.C.C.C.C.C.G.", | ||
500 | "7 4 4 4 4 4 7 4 4 4 b 4 b 1 7 e e s F ` |.F.V.-+-+)+-+^+[+[+[+|+6+0+|+6+6+6+0+|+0+6+0+c+4+c+4+0+0+0+8+0+c+c+0+0+0+8+b+b+c+c+4+c+4+4+^+{+{+&+ +$+Q.W.W.K.@+`.)+4+h+s+s+t+y+y+s+x+y+y+x+x+s+x+y+y+y+y+y+y+x+y+x+y+y+y+y+y+y+y+y+y+y+y+y+s+t+s+s+p+t+s+p+h+c+4+}+}+4+k+v+B+t+v+B+t+y+v+x+t+t+v+t+v+t+t+t+t+t+v+r+r+t+r+r+l+a+/+R.L.L.L.L.L.L.L.O.L.O.O.L.I.O.O.L.L.L.L.L.L.R.I.I.L.L.O.L.L.L.O.L.L.J.L.L.C.L.L.L.C.", | ||
501 | "| 7 4 4 7 4 | e 4 4 4 1 1 7 e s I ` n.F.`.-+'+!+^+|+[+[+[+|+6+6+|+6+6+0+4+6+6+0+6+0+4+6+0+0+c+c+c+c+0+0+c+c+c+c+c+h+h+0+c+c+k+k+c+c+e+6+3+^+{+>+$+$+T.Q.Q.W. +^+6+f+t+x+y+t+y+t+s+s+y+y+y+y+x+y+y+y+y+y+y+y+y+y+y+y+y+y+x+y+y+y+s+y+y+y+x+t+t+s+s+p+p+k+c+6+4+2+^+c+k+t+v+y+t+B+s+t+B+v+v+v+v+t+v+B+r+r+r+w+s+t+r+r+r+l+a+/+.+O.L.L.L.J.J.L.L.O.L.L.L.L.L.L.L.J.L.L.L.I.L.L.L.I.L.L.L.R.O.O.L.J.I.J.L.L.J.L.J.J.", | ||
502 | "4 4 2 4 4 e e v 7 4 4 e 7 s O +.p.F.`.-+~+_+^+(+[+|+6+4+6+4+6+4+6+6+6+0+6+0+8+0+5+0+c+0+0+0+0+0+h+h+i+h+i+i+f+i+c+c+k+h+c+f+h+k+c+h+c+0+e+e+{+{+{+$+$+ +T.Q.W.W.'+5+f+s+y+t+y+y+y+y+t+y+s+y+y+x+x+x+y+A+x+y+y+y+y+B+y+B+y+x+x+y+y+s+s+y+x+x+t+s+s+o+m+p+k+c+4+2+^+4+e+t+v+v+x+t+y+t+t+v+x+y+s+s+t+t+t+y+r+r+l+t+q+r+r+l+a+/+R.O.O.L.L.L.L.L.L.L.L.L.L.L.L.L.L.L.R.I.R.L.L.L.L.L.L.R.I.R.L.J.J.L.L.L.L.O.L.L.L.I.", | ||
503 | "4 1 1 1 4 7 s e b b e s O 2.l.F.`.-+'+~+}+(+|+|+|+6+|+6+4+0+4+5+5+0+0+7+0+c+0+8+c+g+f+i+c+i+h+h+h+c+h+h+h+h+h+f+h+h+f+c+h+c+f+h+h+h+i+k+h+k+h+4+4+^+{+&+ +H.Q.Q. +^+8+f+y+y+x+v+x+s+x+y+y+x+y+y+y+y+x+B+y+B+x+B+y+y+y+y+B+y+y+y+y+y+y+t+y+v+x+x+t+s+q+p+h+k+c+|+^+)+c+k+s+y+v+B+r+t+y+t+v+v+t+r+t+t+t+q+t+t+q+w+l+w+r+r+d+/+U.O.L.L.L.L.L.I.R.L.L.L.L.I.L.I.I.L.L.R.L.I.R.L.L.L.L.L.O.L.L.L.J.J.L.L.R.L.L.L.L.L.", | ||
504 | "4 ! ! 4 4 e s 7 7 q ` 2.n.K.;+-+,+'+^+(+^+}+|+|+|+5+6+6+4+0+4+0+5+8+0+8+8+0+f+0+0+0+0+f+8+c+k+k+h+c+e+h+h+i+h+i+h+h+f+h+h+h+f+i+f+k+h+h+h+k+c+h+4+4+3+{+{+&+Q.Q.W.=+[+0+m+y+y+t+y+y+s+y+y+y+y+x+x+y+B+x+B+y+y+B+B+x+B+y+y+y+y+y+y+y+y+t+y+s+s+x+y+m+t+p+m+m+k+e+4+)+4+e+r+v+s+t+y+v+s+r+r+v+v+v+q+t+t+q+t+r+r+v+r+l+l+l+a+/+R.L.L.L.J.L.L.J.L.L.L.L.L.L.L.L.I.R.L.R.L.L.L.L.L.L.L.L.R.O.L.O.L.I.L.L.L.L.L.L.L.L.", | ||
505 | "| 4 4 4 | e e | I 2.n.F.`.,+~+<+)+^+(+^+[+|+|+6+5+6+6+4+0+6+8+8+8+8+8+8+0+c+c+c+i+i+i+c+i+i+f+0+i+h+h+i+i+i+i+i+i+f+h+c+h+k+p+i+h+m+m+h+h+p+k+h+e+h+4+6+{+)+$+ + +>+^+7+i+p+x+v+y+x+x+x+y+y+x+y+B+x+B+y+x+B+x+y+y+y+y+y+y+y+y+y+x+y+x+x+s+x+y+s+s+t+m+q+q+q+h+h+4+4+^+3+h+r+t+x+v+q+B+t+t+t+t+q+q+w+r+r+r+t+q+r+q+w+r+l+l+:+U.L.L.O.O.O.O.L.O.L.L.L.L.I.L.L.L.I.L.L.L.R.L.L.L.L.I.R.L.L.R.L.R.L.L.L.L.L.L.O.O.L.", | ||
506 | "| ! 4 ! | | 7 s 2.H. +$+'+'+^+_+_+^+^+^+|+|+|+|+[+6+6+4+b+6+8+c+8+8+8+b+8+c+h+c+c+c+f+h+h+h+k+h+i+i+i+i+f+i+h+k+k+i+h+h+f+f+p+k+h+h+p+k+h+k+p+c+h+k+h+8+e+4+{+{+{+>+'+[+0+m+y+x+y+y+y+y+y+y+x+y+y+x+y+x+B+y+y+B+y+y+y+y+y+y+y+y+s+y+y+y+t+s+t+s+s+t+s+s+p+q+k+k+c+^+)+{+c+r+u+t+t+t+s+t+t+q+t+w+q+q+t+t+r+r+q+r+r+l+l+l+a+/+U.O.L.L.L.L.O.J.L.L.L.L.L.L.L.R.L.L.L.L.I.L.L.I.L.L.L.O.R.L.R.L.R.L.L.I..+I.R.O.O.L.", | ||
507 | "4 1 | 4 4 7 q ` F.`. +,+>+)+^+^+|+}+}+|+4+4+|+4+6+6+6+8+6+b+b+8+0+0+c+0+0+f+c+i+c+h+c+h+c+k+h+h+k+h+o+i+m+f+n+h+h+k+h+o+m+m+h+m+f+k+p+m+m+f+p+h+p+h+k+e+c+e+4+3+^+^+)+^+|+c+m+t+y+x+y+y+y+y+y+y+B+y+x+y+x+B+x+y+y+y+y+y+y+x+x+y+y+x+t+y+v+x+x+t+y+s+s+o+p+p+p+h+e+e+4+)+4+c+t+s+v+t+q+w+q+t+q+q+q+r+r+r+q+w+r+l+w+l+l+l+l+/+U.R.O.R.L.O.G.L.J.L.L.I.L.L.L.L.L.L.L.L.L.L.J.L.L.L.L.L.L.L.I.R.I..+I.I.I.R.L.L.L.L.", | ||
508 | "1 1 4 4 ! 7 I l.W. + +`.>+'+!+^+|+|+4+|+4+4+6+4+6+6+6+c+6+8+8+8+8+c+c+c+c+i+c+i+c+k+k+k+h+h+k+h+i+h+h+i+f+f+f+h+h+k+h+p+p+p+o+o+m+m+h+f+m+p+k+p+k+h+h+h+c+c+6+4+3+4+4+4+^+5+f+m+y+y+t+x+y+y+y+x+x+y+B+y+B+y+y+y+y+y+y+y+y+y+y+x+y+x+s+x+t+y+s+s+s+o+s+t+p+p+p+h+h+e+^+)+^+e+r+t+v+r+p+q+q+r+p+q+q+q+q+r+r+l+r+r+l+r+l+l+a+/+z.O.O.D.G.L.G.G.A.J.L.J.I.L.R.L.R.I.O.L.J.L.J.I.G.G.L.L.R.L.R.L.I.L.L..+I.L.L.I.L.L.", | ||
509 | "4 ! 2 1 4 e _.H.W.W.`. +`.`.-+!+'+[+[+|+6+|+4+4+|+6+6+6+c+0+8+9+b+8+0+c+f+c+h+c+h+h+h+h+h+k+h+h+h+i+i+i+m+m+i+p+i+h+p+k+p+m+p+p+o+o+o+o+o+m+m+p+m+p+p+k+k+k+c+c+c+4+4+4+^+^+5+i+s+x+x+y+x+x+x+y+y+x+y+y+y+B+y+y+y+y+y+y+y+y+s+y+t+y+y+y+s+s+y+s+t+s+t+m+q+p+p+k+e+h+e+{+{+3+b+q+t+t+q+w+r+t+r+w+l+w+r+q+q+r+l+l+r+l+r+a+a+/+z.O.O.G.B.G.A.A.A.A.L.L.L.L.L.O.L.L.J.L.O.L.J.J.J.J.L.J.J.O.L.R.L.I.I.L.L.R.R.L.O.L.", | ||
510 | "4 ! 2 4 1 s |.H.H.W.W.W.W. +W.=+,+_+}+|+4+4+6+4+6+6+6+6+6+4+8+8+c+c+8+8+c+f+i+i+f+h+h+i+h+k+i+i+f+m+h+i+h+m+f+k+i+i+m+h+k+m+m+m+m+q+m+m+p+p+p+p+p+m+p+h+h+k+k+c+c+4+c+{+4+^+|+5+f+y+x+y+y+y+x+x+y+x+x+y+y+x+y+x+B+y+y+y+y+y+y+x+y+s+s+y+s+s+t+x+t+s+t+m+s+p+m+p+k+c+c+4+)+^+e+l+t+t+p+w+p+q+r+q+q+l+l+l+l+r+r+l+l+l+l+a+a+Y.z.G.G.G.D.G.G.C.A.A.C.J.A.J.L.L.L.L.L.L.L.L.L.J.L.J.L.L.J.O.O.L.L.R.L.L.L.L.L.L.R.L.", | ||
511 | "! 4 ! 4 4 q |.H.H.Q.H.W.V.F.V.W.Z.=+!+}+6+6+4+c+4+c+6+0+8+0+8+8+0+8+f+c+f+c+f+h+c+h+k+k+i+h+k+m+h+i+o+i+o+k+p+f+h+m+m+p+m+k+p+p+p+m+p+p+m+m+m+p+p+p+m+p+p+p+h+c+c+h+e+c+4+4+^+6+g+o+t+y+t+y+y+x+y+y+y+x+y+y+y+y+y+y+x+y+y+y+t+y+x+v+x+x+t+y+x+m+s+s+s+t+q+q+p+p+k+c+4+4+)+{+3+k+q+r+q+p+q+q+q+n+q+q+r+l+q+l+l+l+k+k+a+a+/+U.O.O.O.G.G.C.C.y.D.C.C.C.A.L.B.O.O.O.O.O.L.L.L.L.L.O.L.O.L.L.O.O.L.R.L.R.O.O.O.L.L.O.", | ||
512 | "! 4 4 4 1 F l.H.H.H.H.H.H.Q.H.H.F.V.=+!+^+4+4+c+4+c+|+6+6+0+8+8+c+8+c+c+c+h+c+k+h+f+f+h+h+h+i+i+f+h+m+h+h+h+m+m+h+p+p+p+m+m+m+o+p+q+p+q+p+p+m+m+p+p+p+h+h+k+p+k+e+0+c+4+4+|+^+[+5+f+m+x+x+y+y+x+x+y+y+y+y+x+B+s+x+y+y+t+o+y+y+t+y+y+v+x+s+s+v+s+o+t+o+o+s+q+m+m+k+h+4+4+<+)+{+e+m+t+q+q+q+q+r+l+w+k+k+l+q+q+l+l+l+k+a+a+/+z.O.G.O.L.L.A.C.A.G.C.O.B.L.A.C.B.B.O.L.L.L.O.L.L.L.O.O.O.O.O.O.L.L.L.L.R.L.O.O.L.O.O.", | ||
513 | "4 ! 4 2 9 I 2.n.t.H.H.t.H.H.n.H.H.F.V.Z.!+^+4+4+c+8+c+6+8+8+0+c+0+c+c+c+g+8+h+f+c+h+h+f+f+f+h+f+h+o+i+f+m+m+k+i+q+k+m+m+m+o+k+m+p+p+p+m+q+p+p+p+p+p+k+p+k+h+h+h+h+e+h+c+4+4+4+4+|+8+o+t+y+y+y+y+y+y+y+y+y+t+y+y+y+x+x+x+x+y+t+x+s+s+s+s+s+t+y+t+t+s+s+s+o+m+p+k+p+e+c+4+{+{+{+4+l+q+r+r+q+q+l+l+l+w+l+k+l+l+k+l+l+e+g+1+Y.R.O.O.O.O.L.L.L.L.J.L.J.G.C.L.C.A.G.C.C.C.D.O.O.D.O.O.O.O.D.O.G.L.J.L.L.O.O.L.L.L.L.O.", | ||
514 | "4 4 ! 2 2 F 2.n.p.n.t.t.n.Q.n.n.n.p.p.V.Z.!+^+|+4+4+c+4+c+6+8+c+0+0+g+c+i+c+c+c+h+c+i+i+h+o+h+o+f+f+o+o+i+m+m+m+m+k+o+q+m+o+p+m+p+p+p+m+o+p+p+p+m+m+h+m+p+p+p+k+k+h+e+c+4+4+4+4+^+|+f+m+s+y+y+t+y+w+y+s+y+t+y+s+y+t+y+y+s+y+o+y+t+y+s+x+s+s+s+s+y+o+o+s+t+o+m+o+m+k+e+4+]+{+$+3+e+q+q+r+q+q+n+q+k+k+n+l+l+l+k+a+l+a+a+a+U.R.L.L.O.O.L.L.L.L.J.G.L.L.C.L.L.G.G.D.y.y.y.D.B.O.O.O.D.O.D.R.D.D.G.J.L.O.O.L.O.O.O.O.", | ||
515 | "! 4 ! ! 9 I 2.t.p.t.p.t.t.n.t.t.H.p.p.l.E.V.!+^+6+8+4+c+b+6+c+b+8+8+0+f+g+c+h+h+c+f+h+k+k+f+o+i+h+o+f+f+o+f+o+f+m+m+p+m+p+m+o+p+m+p+p+q+p+p+p+p+p+m+q+p+p+h+p+p+m+k+4+c+c+c+4+6+6+|+5+8+o+n+y+y+s+x+s+x+s+t+s+y+t+y+s+t+y+m+t+y+x+s+s+s+y+s+t+y+m+t+t+o+p+p+p+h+k+k+h+b+4+{+>+{+3+l+q+k+r+k+r+l+k+l+l+l+e+e+e+k+a+a+a+/+U.G.O.G.G.L.O.L.L.L.J.J.L.L.G.A.L.O.O.B.C.C.G.O.D.B.O.O.G.O.O.R.L.L.O.O.O.O.G.L.L.O.O.O.", | ||
516 | "! ! 1 ! 8 q 2.2.w.t.s.t.t.n.t.n.n.p.p.p.n.n.Z.=+^+6+4+0+e+8+0+c+b+8+8+0+f+f+c+i+h+h+h+h+h+c+f+i+f+m+m+f+m+f+o+k+p+m+k+h+o+o+o+p+o+o+m+m+s+p+p+p+p+p+o+p+p+p+m+p+p+p+e+c+c+c+c+4+6+6+5+8+f+y+s+y+y+y+t+x+s+B+t+y+s+y+x+x+y+y+s+o+x+t+t+s+s+s+m+t+s+s+t+q+q+q+q+m+h+k+c+4+3+{+$+{+3+e+q+k+k+k+k+k+k+l+k+k+k+l+e+e+e+a+a+Y.R.O.O.O.D.G.L.O.L.L.L.G.G.J.G.G.L.O.L.L.A.A.G.O.D.D.G.B.O.D.R.O.D.L.O.O.O.G.O.O.R.R.O.O.", | ||
517 | "! ! ! 8 8 s 2.<.n.2.t.<.<.t.<.t.<.n.w.n.n.n.l.F.=+!+6+b+c+4+b+8+8+8+8+b+c+c+g+i+c+k+i+f+i+i+h+o+m+i+i+m+o+m+o+m+o+p+m+q+p+p+m+m+p+s+s+q+m+o+p+p+s+o+s+m+p+m+q+p+h+p+h+e+c+c+b+8+b+|+|+5+0+m+s+x+s+y+B+t+v+t+x+s+x+s+y+t+m+s+t+y+o+s+s+t+t+s+t+s+s+o+o+o+o+m+m+k+p+h+i+b+4+2+&+%+{+e+r+q+k+k+r+k+k+l+e+a+e+a+a+a+a+a+/+U.O.O.O.D.O.L.G.L.G.G.G.J.L.J.J.J.L.O.O.O.O.O.O.B.O.G.O.G.O.R.O.O.O.D.O.O.O.G.L.O.L.L.R.R.", | ||
518 | "! < , 8 ! s +.<.<.2.t.t.<.p.<.n.<.n.<.p.2.n.l.p.S.;+(+|+c+c+b+8+8+g+8+b+0+0+f+i+c+k+h+f+f+i+h+i+o+o+i+i+i+f+f+f+f+m+m+m+m+p+q+m+m+m+m+p+p+s+p+p+p+o+q+s+p+m+o+q+o+p+m+k+i+c+c+c+c+4+4+|+6+f+o+y+t+y+v+y+x+x+x+t+x+s+s+v+s+s+m+t+y+o+s+s+s+s+q+s+s+s+t+t+q+k+m+i+k+k+e+b+e+^+%+*+*+d+e+r+k+k+e+d+k+b+e+a+e+e+3+e+d+a+Y.R.G.G.O.D.O.L.G.G.B.L.L.G.L.L.G.L.O.O.L.L.G.O.G.O.O.G.G.G.O.O.D.D.D.O.G.O.O.G.L.O.O.L.O.R.", | ||
519 | "! , | ! ! 8 ` 2.n.<.<.<.p.2.p.<.2.<.n.2.2.2.2.l.l.S.=+(+6+0+c+0+c+8+8+8+g+c+c+c+h+0+c+c+h+h+k+i+f+h+i+m+f+o+o+o+q+q+p+p+p+o+m+p+p+p+p+p+p+p+m+m+s+o+o+p+p+p+m+m+p+p+r+h+h+k+e+c+e+c+4+|+6+0+f+o+y+t+y+s+y+t+t+x+t+s+t+y+s+s+s+y+o+t+t+s+r+t+s+s+r+q+m+m+p+m+q+q+i+i+i+c+b+3+{+X.*+3+k+k+k+k+k+k+e+e+e+e+3+a+3+3+a+/+U.O.O.O.G.D.G.D.J.G.G.O.O.L.L.L.L.G.O.G.L.O.O.L.L.G.G.L.L.L.G.O.R.D.O.G.O.O.O.L.L.O.O.O.O.R.", | ||
520 | ", , < ! ! 8 I +.<.<.t.<.<.<.2.t.m.<.<.t.t.<.m.2.n.k.S.=+}+6+b+8+c+c+0+8+8+g+f+0+h+f+f+c+i+f+h+h+f+o+i+o+m+f+m+m+i+o+m+m+p+p+p+p+q+o+o+s+s+p+q+o+q+o+o+o+s+p+p+o+p+m+p+p+h+h+c+c+e+c+c+|+}+6+0+o+x+x+y+s+x+v+t+x+t+x+s+t+y+t+m+s+t+o+t+t+s+s+q+s+s+t+q+o+q+m+i+p+k+k+k+c+e+3+{+*+*+:+e+g+l+l+l+l+e+a+3+a+e+a+3+/+a+Y.R.L.G.C.L.D.L.O.B.O.D.D.L.L.L.L.L.G.O.O.G.O.O.L.L.O.G.G.L.L.O.O.R.D.D.O.O.O.O.L.L.O.O.O.R.R.", | ||
521 | ", < , ! ! 8 I +.<.<.<.<.2.2.<.2.2.<.<.}.<.2.}.}.<.p.l.S.=+[+5+b+8+0+b+c+0+0+8+i+c+c+c+i+i+h+i+i+i+f+o+h+i+h+o+o+m+m+k+q+p+p+m+o+m+s+p+p+m+p+p+s+m+s+m+p+p+p+o+p+k+p+p+k+p+k+k+h+h+4+c+4+4+|+8+f+o+s+x+t+s+x+s+t+s+t+t+s+o+s+t+t+x+o+s+s+p+q+s+s+o+q+p+p+p+k+k+k+i+i+c+l+c+3+]+X.*+%+a+l+c+e+b+e+e+3+e+3+3+3+3+]+/+U.R.L.C.L.O.O.O.C.G.D.B.C.G.G.G.G.G.O.O.G.O.L.G.O.O.L.O.O.G.O.O.L.L.O.G.O.O.O.O.L.O.O.L.L.R.R.", | ||
522 | "- , - , , , s ..<.}.}.<.<.2.<.<.2.<.<.}.}.}.}.<.<.2.p.k.V.!+[+8+j+f+b+b+8+0+8+8+f+i+c+f+i+i+h+k+h+f+f+f+o+f+i+k+o+m+m+m+m+p+p+t+m+p+p+p+p+p+p+p+p+s+m+m+p+p+o+m+q+k+m+m+m+k+k+c+h+c+c+6+4+4+|+0+i+p+x+y+t+x+s+y+s+s+t+s+t+s+s+o+s+t+m+t+s+o+m+t+o+t+q+o+o+o+o+k+k+k+c+b+b+3+{+*+*+*+a+l+b+l+b+2+e+a+3+3+/+a+/+/+Y.D.O.G.G.O.O.O.O.G.C.G.D.D.G.B.D.C.C.O.O.G.G.O.G.G.O.O.O.O.O.O.L.L.L.O.O.O.O.R.R.L.L.O.O.L.R.R.", | ||
523 | "- - , - - < e +...<...<.<.<.<.<.}.2.<.<.}.}.}.}.}.}.2.2.l.S.!+[+6+b+b+8+0+b+8+8+0+c+i+c+i+h+h+f+h+h+o+o+f+o+m+o+k+p+m+p+p+m+m+m+p+m+m+o+s+m+o+p+m+p+s+p+p+s+p+p+p+m+p+k+p+m+h+k+k+c+b+c+4+4+4+|+c+o+o+s+x+t+y+s+t+t+s+y+o+t+o+m+s+m+t+s+o+s+s+s+q+o+o+q+l+o+l+k+k+i+k+b+b+b+]+%+*+*+d+e+e+a+a+e+2+3+a+3+3+/+/+Y.U.z.B.O.B.L.L.G.G.L.J.L.G.B.C.D.y.L.C.G.C.B.B.y.G.O.D.D.O.G.O.R.O.L.L.O.O.O.O.L.L.L.L.L.O.R.O.O.", | ||
524 | "- - - - - < | O +.+.<.....<...<...<.+.<.<.}.}. .}.}.2.2.p.l.S.!+[+0+c+b+8+0+c+b+0+f+g+c+i+c+h+h+f+i+h+m+f+o+f+m+o+k+p+p+m+m+m+o+s+p+s+o+s+p+o+o+o+p+o+m+m+m+p+m+p+p+m+m+h+p+h+h+e+h+c+c+4+4+4+|+6+h+q+v+v+s+o+x+t+t+s+o+y+o+t+p+s+p+q+p+q+q+o+m+s+q+o+o+q+o+o+i+e+c+l+b+b+4+3+*+*+*+3+d+e+e+3+3+3+3+3+/+]+/+X.z.D.D.O.G.C.L.O.L.J.J.J.C.J.G.J.G.G.O.B.L.L.G.B.G.G.O.O.D.G.G.G.R.G.O.O.O.O.L.L.R.R.L.L.L.L.L.O.O.", | ||
525 | "- - - - - , < s +.+.+.+.....<.....+.}. ...<. .<.}...<.<.<.l.p.Z.!+|+b+g+c+8+8+0+g+8+g+i+f+i+i+i+h+f+i+i+m+i+h+o+h+m+m+h+p+p+q+p+p+m+o+p+m+t+o+o+q+m+p+p+p+p+o+p+p+p+p+p+m+h+k+i+h+c+e+b+c+0+4+4+4+6+f+o+t+v+s+o+s+s+s+t+o+t+s+o+s+o+o+q+s+p+s+p+o+m+q+p+o+o+k+k+k+k+c+b+2+b+]+%+*+*+:+e+3+e+a+3+3+]+a+]+/+Y.U.z.R.O.G.L.C.G.L.R.O.G.G.L.L.O.O.C.L.O.O.O.O.O.A.G.L.J.D.O.G.O.D.O.O.O.O.R.O.L.L.L.L.L.O.O.O.O.O.L.", | ||
526 | "- - - - @ - < e O -.+.f.+.+.....<.+.<. ...+.....2...<...}.2._.p.;+!+|+9+j+0+g+0+f+0+8+b+g+8+g+k+k+h+i+i+i+o+h+o+i+k+p+p+o+m+p+m+p+m+o+t+m+o+o+o+t+p+q+m+o+m+q+o+o+m+m+k+o+m+p+i+i+h+c+0+4+4+4+6+^+|+0+m+t+t+s+t+o+t+s+t+o+t+p+q+v+s+o+p+s+p+q+p+p+o+q+p+p+o+o+i+b+b+c+b+2+a+3+*+*+*+{+e+d+3+3+3+3+/+]+/+Y.U.z.z.D.G.G.L.C.O.L.O.G.G.J.G.C.L.L.O.O.O.D.O.O.O.D.L.L.O.O.D.D.O.D.O.D.D.G.O.O.R.O.L.O.O.O.O.O.O.R.R.", | ||
527 | "- @ - = @ - , i s +.O -.........+.+. .<......... .......<...2.4.k.Z.!+[+0+g+c+c+b+8+g+0+0+i+c+c+h+k+h+h+f+i+o+h+p+m+o+h+p+p+m+m+o+s+m+m+m+m+m+m+o+o+m+q+p+q+m+o+m+k+p+m+m+f+i+f+k+k+c+b+c+0+4+4+|+4+4+f+m+s+t+s+t+s+t+o+s+m+q+s+p+q+p+q+q+q+m+p+q+p+m+k+k+k+k+i+f+l+e+b+b+4+]+%+N.*+:+3+3+3+a+]+]+]+/+X.U.z.D.D.O.C.L.O.O.L.O.G.O.O.O.O.O.L.O.O.O.O.O.O.O.G.L.L.O.O.D.O.G.G.O.O.O.O.O.O.O.O.O.L.L.O.O.O.O.O.R.O.", | ||
528 | "- @ @ @ @ @ , < v S +.S S -.........S +... . . . . ... . .}...+.8.|.S.!+[+8+c+f+8+f+8+g+0+f+f+c+h+i+f+i+f+f+o+h+h+h+p+m+o+p+p+m+o+p+p+q+m+t+t+p+p+m+m+m+m+m+p+q+m+k+h+m+o+f+m+f+h+h+c+c+c+0+4+4+|+^+|+0+o+s+t+s+q+p+s+o+t+m+p+m+p+t+m+o+o+q+p+m+k+k+o+p+o+i+k+e+c+e+b+3+b+3+3+%+X.*+3+3+3+a+]+]+/+/+X.z.D.D.z.D.C.A.C.B.B.B.O.D.D.O.D.O.O.L.O.O.O.O.O.O.O.L.C.L.O.R.O.D.G.G.O.O.O.O.R.O.O.D.O.O.O.O.R.R.R.O.R.R.", | ||
529 | "@ - - @ @ - - , i O S ..S ..O S -...S +... ...........+.....S G O F 8.S.(+6+c+c+c+8+f+8+8+0+c+h+f+f+i+f+f+f+f+h+h+m+h+i+h+h+p+p+p+m+p+m+p+m+m+m+o+q+p+p+p+k+o+m+q+m+p+o+h+o+i+m+h+k+h+c+c+4+c+4+4+|+}+|+0+o+s+q+s+t+q+t+s+v+s+s+q+p+q+p+q+q+k+q+m+o+k+o+k+k+k+h+k+b+a+4+2+3+]+%+*+*+:+]+3+]+a+]+/+X.U.U.D.D.D.B.C.C.G.B.O.D.D.B.B.D.B.B.B.B.B.L.O.O.L.R.O.O.O.O.O.L.O.J.O.G.O.O.O.O.O.O.O.O.O.G.O.O.O.O.O.R.R.O.", | ||
530 | "@ @ @ @ . . @ - ( r S -.S -...S S S -.S S .. ...S ..+...S r G r i e F 8.S.(+0+b+b+9+0+8+f+0+0+c+c+f+i+i+i+h+i+k+m+p+i+o+q+h+o+i+q+o+m+o+m+p+p+m+m+p+p+m+m+m+o+m+h+o+h+o+o+o+k+k+h+k+k+c+e+c+4+e+3+4+_+^+6+f+m+t+s+s+p+q+q+q+r+p+q+q+q+p+o+o+k+q+k+m+k+n+o+i+k+c+b+c+j+3+2+3+]+%+*+*+:+]+3+]+/+%+X.U.D.z.D.C.D.D.D.D.D.y.B.B.B.B.B.D.D.O.B.C.B.B.B.D.O.O.D.D.O.O.O.R.O.O.O.O.O.O.R.R.O.R.R.O.R.O.R.R.D.O.O.D.R.R.", | ||
531 | "@ - @ @ @ @ @ - ( k M M S S W S S S S ..S M .S S S -.M W r k : a a s I j.Z.[+8+f+i+b+0+8+0+f+0+f+i+h+f+f+i+i+h+k+h+h+m+h+q+p+p+m+m+q+m+p+h+o+p+q+o+m+p+p+m+o+f+m+f+m+f+f+h+m+o+k+h+h+c+0+b+c+6+4+4+4+^+|+8+q+p+q+s+t+p+p+p+m+p+m+o+p+p+k+q+o+i+m+k+o+i+k+k+c+l+b+j+3+b+3+3+]+*+*+:+:+3+/+]+/+Y.U.z.z.B.R.B.B.D.C.C.C.B.G.O.O.O.G.C.B.B.G.B.C.C.L.R.O.O.O.O.O.L.R.O.R.R.O.O.R.R.R.R.R.O..+R.R.R..+R.R.R.R.R.U.R.", | ||
532 | "- - @ @ @ @ @ = - a B W M M .S S M O S S W K S S G r r 6 a } } 6 6 a s ` k.=+[+8+i+g+b+c+c+h+0+8+f+h+h+f+h+h+f+i+m+i+o+h+h+o+k+p+h+p+i+p+p+p+m+h+p+p+h+p+h+o+o+m+i+m+m+i+h+h+m+i+h+k+i+0+c+c+6+c+3+4+)+^+5+f+p+p+p+t+p+p+p+p+p+p+q+k+m+i+q+q+k+o+k+k+i+k+l+i+b+b+c+2+2+3+]+]+T.%+*+*+{+/+]+X.U.D.D.D.B.O.B.B.B.D.D.D.B.B.B.O.R.B.L.L.B.C.B.G.C.G.B.D.O.R.L.R.O.R.R.R.R.R.R.R.R..+.+.+.+.+/+.+.+/+.+.+/+.+.+U..+", | ||
533 | "@ @ @ @ @ . @ = < r M K K M M W S M S K S M M M y k : ( } ( : } 5 a | s _.E.!+6+8+c+0+8+8+8+c+f+0+c+c+c+f+f+i+f+i+h+i+o+q+o+m+m+p+o+m+m+h+m+h+p+i+i+p+i+o+m+k+k+p+h+i+h+p+k+i+i+k+h+b+k+c+4+c+4+|+4+|+_+^+b+o+t+s+p+t+q+q+p+p+o+o+o+n+p+h+k+i+k+i+k+k+i+i+b+c+b+b+3+3+3+]+]+*+*+%+:+]+/+X.Y.z.B.R.R.z.D.B.B.y.c.D.D.O.O.D.O.D.G.L.O.L.O.B.O.C.R.O.R.O.O.R.R.R..+R.U..+/+.+/+.+.+z+.+z+/+z+/+z+/+z+/+d+/+/+/+/+", | ||
534 | "@ @ . . @ @ . @ @ - 6 B K K M M M M M M M G G j j 5 } : : } ( : : 6 ( | 8 s 4.S.(+8+f+c+c+c+8+8+g+f+g+f+c+g+f+i+i+g+o+i+f+h+p+k+m+h+o+o+p+i+o+o+m+m+o+m+m+i+m+p+h+i+h+o+i+h+h+p+h+i+i+c+k+k+c+4+c+4+3+^+'+!+|+c+k+p+p+m+s+p+q+k+k+o+k+k+q+m+h+h+k+h+k+k+e+i+b+b+2+b+4+3+]+]+%+%+*+%+/+%+/+U.D.D.B.B.O.B.z.y.B.D.B.B.D.D.B.D.R.O.O.O.B.O.L.O.O.O.R.R..+R..+.+.+:+.+/+/+/+z+/+z+/+d+/+a+/+a+d+a+a+d+d+a+r+l+r+d+d+", | ||
535 | ". @ @ @ @ @ @ @ - , r B K B M B B W G B t t 5 5 [ } { : : } } } : } 6 a 7 F 8.Z.(+8+c+8+8+8+b+8+8+0+0+f+f+f+f+f+h+f+f+h+o+h+m+k+o+f+m+i+p+m+h+k+h+h+h+k+p+o+h+k+h+i+f+i+i+k+h+k+k+h+h+0+0+c+c+c+4+4+3+<+~+~+6+o+q+q+p+p+q+p+o+q+q+o+o+i+i+k+k+i+k+c+c+i+e+j+b+b+3+3+3+1+]+X.*+%+*+%+Y.U.U.D.R.B.D.B.B.D.B.C.y.C.B.c.C.B.B.D.O.R.z.O.O.R.R..+.+.+.+.+:+:+:+:+:+d+d+d+d+d+a+d+a+a+z+r+r+r+r+r+w+r+w+r+r+r+r+p+p+", | ||
536 | "@ @ . @ @ @ . @ - 6 p K r M W v M y y 6 } } ) } } { - : { } } ( ( : a a s 8.j.=+5+c+g+g+8+b+g+f+c+8+0+c+i+i+i+h+h+f+f+h+h+m+m+m+i+p+i+k+p+m+k+m+q+m+h+k+h+h+k+o+i+f+f+i+i+i+h+k+i+k+h+c+c+4+4+4+0+^+^+)+'+(+h+m+q+o+h+o+q+m+h+k+k+q+k+o+h+k+k+k+k+c+8+b+7+3+b+3+2+{+]+%+X.*+*+*+Y.Y.z.B.O.B.O.B.R.R.B.c.B.y.B.B.B.y.B.B.B.O.O.R.R.R..+:+.+:+d+d+d+d+z+d+u+d+d+d+d+r+l+r+r+r+r+r+r+r+r+r+r+r+r+w+l+t+s+r+r+t+", | ||
537 | "@ @ @ . @ @ . . - ( y r K r B p r 6 : } : ) { ) { = { { { : { } } : : 6 | s 8.j.!+7+8+8+0+0+0+c+b+c+i+f+f+i+i+k+i+f+f+f+h+h+h+h+o+h+p+h+i+o+f+i+i+i+k+f+i+h+m+h+h+h+h+i+i+f+i+h+k+h+e+c+0+c+c+6+4+{+3+)+{+)+6+k+p+q+q+k+o+k+p+h+o+k+k+k+l+i+c+c+b+b+b+8+e+b+2+2+1+a+]+%+X.Y.Y.Y.Y.z.D.G.L.O.B.R.O.B.O.B.C.R.O.B.y.D.D.C.D.O.R.R..+.+:+z+d+d+d+d+d+d+k+r+r+r+v+r+r+r+r+t+w+w+t+t+r+r+w+w+t+t+t+v+v+v+t+v+v+t+", | ||
538 | "@ @ . . . @ @ . - - k p t W k 6 : } { = - - { { { { - : = { ( : } } : : ( 7 F 8.S.(+5+g+c+c+8+0+8+0+8+0+8+f+f+k+h+i+i+i+h+o+i+h+i+h+o+o+i+o+o+f+o+f+m+o+k+h+h+i+f+i+h+h+c+h+c+h+c+i+c+c+c+4+c+4+0+|+{+)+>+>+|+c+h+q+o+k+o+k+p+k+i+i+i+i+i+g+c+i+e+8+b+7+2+b+2+3+]+]+%+X.Y.Y..+U.z.z.L.L.O.O.C.O.R.R.R.C.C.B.O.B.B.O.B.C.B.B.R..+:+z+d+d+d+u+r+u+p+r+v+r+r+p+s+q+t+t+r+r+r+q+t+t+t+v+r+t+t+v+t+t+t+v+y+x+v+v+", | ||
539 | ". @ . @ . @ @ . . = 6 k j j } ) = = = = = - = { ) { { { { { : { } } } } 6 a s H j.Z.[+8+b+b+c+8+0+8+0+g+f+c+h+f+k+h+i+h+k+h+f+f+h+h+f+h+h+f+f+f+f+f+f+h+f+i+i+i+i+i+i+k+h+c+i+c+i+c+g+c+0+0+4+4+4+4+4+]+{+>+'+c+q+m+k+o+h+m+k+k+k+k+k+k+l+g+g+b+0+b+7+b+4+3+3+1+1+]+/+x.u.U.U.R.z.B.O.O.O.B.O.B.B.O.B.B.O.O.D.O.G.B.B.R.z.R..+:+:+d+d+k+k+k+k+q+q+k+q+p+s+r+p+s+r+r+t+s+s+t+v+s+t+t+x+t+v+y+v+t+y+y+v+t+x+y+", | ||
540 | ". @ @ @ @ @ @ = 6 } ) = { = { = { = = { { ) ) = { { } : { } } } [ } 6 i s 8.E.!+5+8+8+8+b+8+b+0+0+0+0+0+0+i+h+k+f+g+h+h+f+f+h+f+f+h+f+i+f+i+g+i+h+i+i+f+i+i+k+h+c+h+f+i+i+f+c+c+c+c+c+c+6+4+|+4+)+{+$+>+^+e+o+k+k+k+h+h+i+i+k+k+c+b+b+c+b+b+b+2+3+2+2+3+1+]+%+X.U.U.z.U.B.z.D.B.C.D.B.B.O.O.C.C.C.O.R.R.z.O.O.z.O.z..+.+r+e+k+k+k+k+n+g+o+o+q+t+p+t+t+r+y+t+t+v+v+s+t+t+v+x+v+x+y+t+y+v+v+B+w+y+B+s+y+", | ||
541 | "@ @ . . . . @ = = = = = & = = { = = { = = ) = { { ~ : { { } : } : 5 a r i s 8.S.(+6+b+c+8+c+0+b+b+8+g+0+f+f+c+h+h+f+f+i+h+i+i+i+i+f+h+f+f+f+f+f+i+i+h+i+f+h+h+h+h+c+i+c+c+c+f+c+c+c+8+0+3+|+4+^+^+{+ + +)+0+k+p+k+o+k+k+k+k+i+i+k+8+b+j+2+9+2+b+2+2+4+1+/+1+X.x.z.z.z.z.z.D.z.D.B.O.B.B.B.B.L.C.R.O.R.U.R.D.O.O.z.R..+d+3+e+e+e+k+i+e+i+k+k+o+k+q+t+r+t+t+x+v+v+t+B+s+B+y+t+s+v+s+y+y+y+t+w+y+y+t+B+t+", | ||
542 | " @ + . @ @ = @ @ @ = = = = = = ) ) { - ) ) ) ~ { { { } } [ 6 5 6 6 a s F l.Z.[+8+c+c+c+c+8+c+0+8+8+c+f+0+f+0+i+f+i+h+f+i+h+i+f+i+h+i+f+c+f+f+i+h+k+c+k+k+e+h+k+h+k+c+8+f+c+b+c+4+0+e+4+4+3+)+$+$+ + +|+k+p+k+k+k+i+i+k+e+c+e+b+c+b+b+b+4+4+b+2+2+1+]+%+X.z.z.z.D.z.z.O.z.B.C.C.O.O.O.B.R.B.O.R.R.z.z.z.z.R.R..+:+d+3+c+b+b+l+g+l+b+b+c+i+k+i+o+q+s+q+t+v+v+t+t+t+s+v+y+y+y+v+t+A+A+t+y+t+y+y+y+y+", | ||
543 | ". . @ @ % . . $ @ % = = { = & = = = = = - { ) ) } } } { } } 5 } 6 5 k k i s ` j.=+7+8+b+c+b+b+8+8+8+0+8+b+b+c+i+c+c+h+f+c+f+f+h+c+f+i+f+c+f+i+i+0+h+h+k+c+0+f+c+c+e+c+c+b+c+b+0+b+c+4+6+2+4+|+3+^+&+Q. +<+c+k+p+i+i+k+k+c+h+c+0+c+4+b+3+4+2+2+2+1+3+]+1+X.x.g.z.g.a.z.z.z.z.B.R.R.R.U.R.R.R.R.R.R.R.R.R.D.O.R.R..+:+3+e+3+l+b+j+e+b+b+b+j+b+j+b+l+k+k+q+s+t+y+y+y+w+B+y+t+t+t+x+y+y+t+w+w+A+A+t+y+y+", | ||
544 | "@ . . . $ @ @ @ @ & @ = = = @ & & ) = = = - { ) ) = { } { } } 5 5 6 5 6 6 a i I 8.E.(+6+b+0+0+8+8+8+8+0+f+0+g+0+f+f+0+c+i+c+i+f+f+c+c+i+f+c+f+0+i+c+0+c+h+h+c+c+f+f+h+c+c+0+0+c+0+0+0+c+4+4+4+4+{+)+{+Q.Q.{+4+k+k+k+c+e+k+e+e+e+b+b+b+4+b+3+2+4+3+<+]+]+%+Y.U.U.U.U.x.U.U..+.+.+.+.+.+.+.+.+.+.+U..+U.R.R.R.R.R.R.#+:+2+b+2+j+3+j+2+2+b+3+e+4+b+4+b+e+e+k+o+k+s+r+x+t+t+B+w+B+t+t+y+A+y+y+y+y+w+y+t+y+", | ||
545 | " @ @ @ @ @ @ @ . @ @ = @ @ = = = ) = = = - { { ) ) } } ~ { } { } [ g ( 6 5 k a a i I 4.Z.(+8+2+b+c+6+8+8+8+0+c+0+0+8+c+c+c+0+g+c+c+0+f+h+h+0+f+0+i+c+f+i+f+8+c+0+f+0+0+8+8+f+c+c+8+b+c+4+6+c+4+4+^+4+{+>+&+m.@+3+b+n+i+k+i+c+e+c+c+c+e+4+3+4+b+4+3+3+3+]+a+]+/+Y.*+/+*+/+*+*+:+#+*+#+:+:+:+:+/+:+.+/+.+.+.+.+.+R..+.+:+3+3+3+b+2+7+a+b+2+2+4+2+a+2+2+2+2+3+b+b+i+k+t+t+y+B+w+t+w+t+B+t+y+y+w+w+w+y+A+A+y+", | ||
546 | " . % @ @ @ = = = @ @ = = = = = = = = = { } } { { [ } } } } } } 5 6 k a a s ` j.!+5+8+b+b+6+8+8+8+0+8+8+0+0+f+0+c+0+0+0+c+0+8+0+c+c+c+0+f+c+c+c+c+f+c+0+8+c+c+0+0+8+0+c+6+0+0+8+6+4+4+4+4+^+{+$+++q.K.1+b+g+c+c+b+c+b+b+3+8+4+b+3+2+3+2+3+3+3+3+3+:+d+:+:+d+:+d+:+d+d+3+d+e+e+e+d+d+d+d+d+:+d+:+/+/+/+.+*+.+:+{+3+3+4+2+7+2+a+2+a+2+7+2+a+3+3+4+3+2+4+a+e+r+r+w+v+B+t+A+w+A+s+y+y+y+y+y+w+y+w+y+", | ||
547 | "@ @ @ @ @ = @ @ @ % = = & ) = = { = { { { { { : : ) } [ { 5 } 6 5 6 j 6 k a a s |.S.!+6+8+6+c+4+6+b+4+0+0+0+0+8+0+0+g+c+0+g+8+g+8+f+0+f+g+0+0+0+8+8+0+0+c+0+0+f+b+8+c+0+8+c+4+8+4+0+c+4+3+^+3+{+{+%+q.T.]+b+e+k+b+c+c+c+b+0+3+b+4+b+b+b+e+h+e+e+e+e+e+e+e+h+d+k+k+e+e+k+k+k+d+e+k+k+e+a+d+k+d+d+d+3+d+d+3+:+:+3+3+3+4+a+3+3+4+1+3+2+2+1+2+4+2+3+3+2+3+1+4+4+b+g+o+q+t+y+t+y+t+B+t+y+w+w+w+y+A+B+A+", | ||
548 | "@ @ @ @ @ % $ @ @ @ & = @ @ = % & & { { ) { ) ) { { : } } { } 0 ~ 5 5 6 5 g 6 j a r I l.Z.^+b+b+6+0+6+8+b+6+6+7+c+c+8+0+8+0+8+0+0+0+0+c+c+0+c+c+c+0+g+8+c+0+c+c+8+0+b+8+8+c+4+b+b+b+4+6+8+6+4+4+)+{+$+*+q.q.%+6+b+i+b+b+e+4+e+b+b+l+e+e+b+e+e+k+k+k+k+k+k+k+r+k+k+k+r+k+k+k+k+h+p+r+k+p+k+o+k+p+r+r+k+e+e+e+a+e+3+e+4+e+c+c+c+3+3+3+<+]+1+1+]+]+2+]+1+1+3+]+1+]+3+4+g+q+t+y+t+B+w+A+y+y+y+A+A+B+w+t+y+", | ||
549 | "@ . @ @ $ @ $ @ & @ & @ = % = & ) ) { = ) { { { } } { } } { ( } } 5 5 } 5 j 5 g 5 0 a r ` F.!+[+6+c+b+6+6+6+9+9+0+6+6+0+8+8+8+0+8+5+8+8+0+8+0+8+0+0+c+0+c+0+c+c+8+0+8+0+0+8+8+8+8+8+6+8+4+4+4+4+4+4+{+{+$+N.N.@+1+c+b+b+b+b+b+b+b+e+c+k+k+k+h+k+k+h+k+k+h+h+k+h+h+k+k+h+k+k+k+m+k+k+k+r+r+m+k+k+i+h+o+k+k+k+k+k+e+e+b+e+b+e+e+e+b+3+e+3+2+]+3+]+3+]+3+]+]+1+3+]+]+1+1+3+j+l+q+B+t+y+y+A+w+w+A+A+w+y+A+A+", | ||
550 | "@ @ % @ % $ = = @ = @ = & = = ) % { : { ) { { { { { } } ( } 5 [ } } 5 5 5 5 j j 5 6 i I 4.Z.(+|+6+8+6+7+5+5+6+8+5+8+6+0+8+9+8+0+8+9+9+8+b+0+8+8+0+0+0+c+0+8+0+b+8+8+8+8+6+b+8+6+0+b+8+6+6+4+^+4+^+{+{+T.N.i.N.3+b+b+e+c+e+e+i+c+k+i+k+k+e+i+h+k+h+k+k+k+h+k+k+p+k+p+k+p+m+k+q+k+h+h+h+k+o+o+p+q+k+q+o+q+k+k+p+h+o+i+k+c+k+k+i+i+e+e+e+b+3+3+]+1+]+]+1+]+]+]+1+]+]+1+]+2+j+n+o+y+t+y+y+y+y+y+A+A+B+A+y+", | ||
551 | " @ % % & @ & @ = = & = % ) ) = = ) { ) } } { { { { a { g } } } { g } 5 5 6 6 6 5 0 } a s I k.Z.[+8+4+4+6+|+6+6+6+6+6+0+6+9+5+6+b+0+0+5+8+8+8+8+0+b+8+c+0+8+0+8+0+0+c+c+8+b+8+b+b+b+6+6+4+4+4+4+4+^+)+{+$+N.N.$+{+b+e+b+l+i+k+e+k+i+k+h+h+i+h+k+k+k+h+k+h+k+q+k+k+k+k+m+i+k+k+o+m+q+k+p+p+q+q+k+p+p+o+q+i+m+o+k+q+k+k+i+q+i+k+p+k+m+k+l+e+b+3+3+]+3+]+]+]+]+]+]+3+]+]+]+1+3+a+l+q+B+w+A+w+A+y+y+y+w+A+B+", | ||
552 | "@ . @ @ & & @ @ & $ & & = ) = = { = ) - ) { [ { { { } } } 5 { g 5 5 [ ~ } } 6 } : 6 5 } 5 k v ` F.!+6+6+7+7+6+6+6+6+6+6+6+6+5+0+6+6+5+8+5+8+8+8+8+0+c+8+c+c+b+b+8+8+6+8+4+8+6+8+6+0+0+4+6+6+|+|+4+^+{+)+{+$+$+*+{+3+c+c+c+e+c+k+i+e+h+e+k+k+k+k+h+k+k+h+k+k+i+o+i+m+k+k+p+q+o+k+k+o+p+k+k+k+o+q+o+p+p+o+q+q+p+o+k+o+o+q+k+q+m+k+m+k+p+p+k+k+c+i+e+3+3+3+]+]+]+]+]+]+:+]+]+]+]+3+b+g+s+y+y+y+A+y+A+y+y+A+y+", | ||
553 | "@ @ @ % @ @ % @ & @ @ @ = & = ) = = { = : - ~ } } { } ~ { } 6 5 5 0 5 5 0 0 5 : a { 5 } } } 5 : 6 i O 4.V.^+4+6+6+7+|+6+6+0+6+6+0+6+5+6+8+0+0+0+6+0+6+6+8+5+6+8+6+0+5+0+6+0+6+0+8+8+6+c+4+6+0+6+|+4+1+2+4+|+)+{+{+{+3+3+e+e+e+e+k+e+c+e+h+e+i+c+k+i+h+k+i+o+k+k+o+k+k+k+k+p+k+k+i+k+o+p+k+k+p+q+o+q+o+p+k+q+q+p+o+o+p+m+q+q+k+m+q+q+q+q+q+k+q+o+o+k+e+k+l+e+a+3+3+3+]+/+{+]+{+/+]+]+]+4+e+k+s+x+y+B+A+y+y+y+A+A+", | ||
554 | " @ @ @ % @ & $ & = & = = = ) ~ = : { { { : { { { ( { a { } 5 5 0 5 j 5 0 0 [ 5 } 5 [ g } 0 6 6 a i F l.;+[+6+|+6+6+|+6+|+6+5+6+6+5+5+6+5+|+6+6+6+6+6+0+0+6+0+6+c+6+8+8+c+4+6+8+8+7+6+9+6+4+4+|+|+|+4+^+<+)+]+3+3+e+e+e+b+i+c+k+k+c+e+i+c+l+c+e+b+c+k+e+k+o+k+i+i+k+k+i+m+m+p+o+k+i+o+m+o+h+p+o+q+k+m+m+p+q+p+p+q+q+m+o+o+q+o+o+m+q+o+o+o+q+k+m+q+k+p+r+k+e+a+3+3+{+]+/+]+:+{+:+{+{+4+4+c+o+t+t+y+A+A+B+y+B+y+", | ||
555 | "@ @ = @ @ @ & & & & $ & = = = = = } { : ) : ~ { ) { { : } } a 6 6 6 p k j 6 } 5 ~ } [ [ } } ( ~ } : | r 8.S.;+4+4+4+4+6+|+6+[+|+6+|+5+|+5+5+6+6+|+6+8+6+7+6+c+6+6+6+8+6+6+6+8+8+6+6+6+b+6+7+6+4+4+|+}+^+4+{+{+4+e+4+4+6+8+c+b+e+e+c+e+b+e+e+c+c+i+i+k+c+i+i+i+i+k+k+o+o+k+k+k+k+k+m+l+o+k+p+q+o+k+o+o+q+q+k+m+p+q+m+p+r+t+q+o+q+q+q+m+p+q+q+o+m+q+p+p+q+m+m+h+k+e+3+d+3+{+{+]+]+]+]+3+{+2+2+b+o+t+t+y+A+w+A+w+A+", | ||
556 | "@ = & $ % @ = = = = & = = : { { - { { : } 6 [ : } ( } 5 6 [ 5 5 k j p k j k j 5 0 } 0 [ } } : { } } ( i s 4.Z.^+4+4+4+|+|+6+6+|+|+5+6+|+|+6+6+6+5+6+6+6+7+7+6+6+6+6+5+8+8+6+6+9+8+b+6+4+6+6+4+4+|+^+}+_+^+^+3+^+3+4+e+4+2+b+c+c+k+c+e+b+b+e+e+c+e+c+i+k+i+k+k+k+h+h+i+p+k+i+n+o+k+m+k+o+p+k+p+m+p+q+o+o+m+q+q+p+q+q+m+p+m+t+o+t+t+q+o+o+m+p+q+p+q+o+p+q+p+t+p+p+k+b+e+3+3+{+{+{+^+^+1+^+4+|+4+f+p+t+y+y+B+A+A+A+", | ||
557 | "@ @ $ @ = = = & = { = { = ~ { { { { } { } [ } { 6 5 } 5 j k j j t p p k k k j 0 } } } } { { } { } } : a e ` l.=+^+4+|+4+|+^+|+6+|+|+|+6+6+|+|+6+6+6+6+6+5+5+7+6+6+6+0+6+6+0+6+6+6+6+4+6+6+|+6+|+4+4+^+^+3+{+^+3+6+4+|+b+3+4+4+e+e+k+c+c+c+g+i+e+c+e+c+h+e+i+i+h+k+k+k+i+o+q+i+i+o+k+p+p+k+h+k+q+o+o+q+q+q+p+h+o+q+m+q+m+p+q+t+q+q+t+t+p+q+q+t+q+p+q+q+t+t+q+p+r+s+q+k+d+d+e+3+4+3+]+^+^+^+4+4+b+g+q+s+y+A+A+A+A+", | ||
558 | "& = & & = & = = & { { ( = { = ) : ( } } } } [ : k 6 6 k k p r r t M M p k p j 0 5 [ } ~ { { { { { [ } { 6 s 8.S.!+4+|+|+|+^+|+|+|+[+[+}+5+6+|+6+|+6+6+6+6+6+6+|+4+4+|+6+6+4+6+7+6+6+4+4+6+6+|+|+_+<+<+)+<+{+2+)+^+4+}+4+4+4+6+4+c+c+e+l+e+a+g+b+c+e+b+f+c+k+k+k+h+h+k+k+k+k+q+k+o+g+k+o+q+o+h+k+q+o+i+m+q+q+q+o+q+p+q+q+p+p+o+o+o+t+t+p+m+m+p+s+s+o+p+o+s+t+s+p+p+p+p+p+k+k+3+4+4+3+4+3+^+4+4+4+0+i+q+s+x+y+A+y+", | ||
559 | "= = = @ ) = = = = ) ~ ) { ~ ) { { } : } } } } 6 r k j a r p K t G M M B t j 5 j 5 : } } ~ ~ } ~ [ { { } : a I l.`.^+4+4+4+[+(+[+[+}+}+5+|+|+6+|+5+|+6+6+7+6+7+6+|+6+6+4+4+6+6+|+|+4+6+6+4+4+|+}+|+^+3+{+{+4+^+^+{+<+<+2+2+4+3+4+2+2+b+c+c+c+b+g+g+g+c+e+k+i+i+i+k+k+k+h+k+q+i+o+k+q+l+k+n+i+k+m+m+k+p+p+m+q+o+q+q+q+p+s+o+o+t+t+q+q+p+o+q+t+o+q+q+t+t+s+q+p+p+s+o+s+p+r+r+p+i+b+3+4+^+4+4+^+4+4+4+b+h+p+t+y+y+A+", | ||
560 | "@ = = - { ) { = { { : { } { { { { } : } : 5 0 6 p r p r r B K K S M K K K j j 5 5 { { } { { { { } { { { : a e ` F.=+^+^+^+}+_+}+[+|+|+|+|+|+5+|+|+|+|+6+5+6+4+|+6+6+6+6+6+4+4+4+6+4+4+4+4+4+4+_+^+)+^+{+<+]+<+^+{+3+)+^+]+^+3+3+7+6+7+j+e+l+e+l+e+l+c+c+e+k+i+k+k+h+k+h+i+k+k+o+i+o+o+i+o+i+o+o+m+o+q+q+m+p+o+o+o+s+m+q+s+m+p+o+o+w+s+s+t+t+o+o+s+q+q+m+t+t+q+s+q+t+p+p+r+q+p+i+e+e+4+4+4+4+^+4+|+4+b+h+t+y+y+A+", | ||
561 | "= = = ) ) ) & { = { { = : : : ( ( } 5 5 5 5 j p B K t p B M S S S S S .K t j 6 g ( { { { ~ ) ~ { = = { { : | s 4.Z.'+4+4+}+[+(+}+(+[+|+[+[+|+[+7+[+5+[+|+4+|+4+|+6+5+7+7+6+6+7+7+|+|+^+|+}+_+|+4+)+{+_+{+^+{+{+{+^+^+3+1+^+<+_+{+1+}+2+9+b+g+c+k+c+b+c+k+c+l+i+h+e+p+k+k+o+o+k+k+p+k+p+i+o+n+i+q+q+o+o+q+q+o+q+p+o+q+o+q+t+o+t+q+m+q+o+o+p+s+s+q+o+t+t+n+t+m+q+p+q+t+t+m+p+q+q+h+e+e+4+4+|+4+|+2+6+4+b+i+o+y+y+", | ||
562 | "& = = { { ) = ) ) = : ( ( 6 : : 6 6 k 6 p t u t S M K r B G S S S S S G G t p 5 } = ( ~ = ~ & ) = ) ) ~ { { < e I F.=+^+^+_+}+^+}+_+[+[+[+[+|+[+[+[+5+}+[+|+|+|+|+|+[+[+|+6+|+4+|+|+[+[+^+|+_+_+^+^+)+)+]+^+)+4+{+3+{+{+]+{+^+<+)+1+4+<+4+e+e+k+e+i+k+c+l+c+e+l+i+i+k+k+k+k+o+o+k+h+k+p+i+p+k+m+m+o+p+q+o+q+o+q+o+o+o+o+o+s+o+m+t+o+t+s+t+q+o+o+s+o+t+t+o+t+o+t+o+t+o+s+t+q+p+r+o+i+e+b+3+4+4+|+7+6+4+c+c+k+s+t+", | ||
563 | "{ { - { { ) } ) [ } : ( 6 ( 6 6 a p 6 p B K K M S ..G B O ......S .G G B M t j ~ { = ~ = ) ) ) ) ) ) = % { ( 8 s _.V.~+}+<+^+(+(+(+(+(+(+_+}+^+|+}+}+|+|+[+5+7+7+|+|+7+|+4+4+|+4+}+}+}+}+_+<+_+)+<+]+_+>+]+{+{+{+{+)+]+^+)+]+{+{+{+<+{+2+4+e+e+k+l+c+e+e+k+h+c+k+k+i+i+i+i+k+k+h+k+o+k+p+k+m+o+k+q+o+m+q+q+q+o+s+s+t+t+s+p+s+t+t+s+o+q+o+o+t+s+o+s+o+o+t+t+o+y+t+o+s+t+s+o+t+m+p+p+k+e+c+4+4+4+4+4+6+4+4+h+k+t+", | ||
564 | "= ) { - : : } ) [ [ 5 6 a a ( a p v k t S S K G +...O K S ........ .S G G K p 5 ~ { { ) = % ) ) ~ = ) { $ ~ { < | F l.;+(+}+}+_+(+^+(+}+[+[+[+^+|+^+|+|+}+|+[+[+[+}+[+|+|+^+4+^+|+}+_+^+^+^+_+)+)+)+]+]+>+>+{+{+)+]+)+{+{+)+{+{+$+{+{+)+<+3+6+b+b+a+h+h+e+e+k+e+c+i+i+k+k+k+i+k+q+k+o+i+m+k+p+o+o+k+k+o+o+o+p+q+q+o+q+q+v+q+q+m+q+t+m+t+t+t+t+t+o+s+s+t+t+o+o+t+o+t+s+q+s+m+t+t+q+p+p+k+e+b+4+4+4+{+6+4+4+c+c+o+", | ||
565 | ") { { : { { : : } : 5 6 k a 6 k p p B G .S G O ....G G +.+.+.+. . .M B B p j } } ~ ) ) ) = ~ ) & ) & = { ~ = ( < i ` E.)+_+_+^+^+(+(+[+^+^+^+}+^+|+^+_+|+}+^+|+|+[+(+[+^+[+|+4+4+^+[+_+_+^+)+<+]+>+>+>+$+$+$+)+{+<+)+{+{+{+>+{+{+$+]+]+{+)+{+4+8+b+l+e+i+i+c+i+l+b+g+h+k+i+k+h+h+h+i+k+k+p+i+h+p+o+o+q+q+p+o+o+o+p+m+p+o+s+m+t+s+s+t+o+t+m+q+s+s+t+o+s+t+y+o+t+t+o+r+s+o+t+s+o+t+t+q+p+h+c+c+e+e+4+3+|+4+4+6+b+", | ||
566 | "} { } { } } } : } } 5 k k k r p B B G G S G G O <.f.O G O O +.+...G B p k k a { } { = = ) & & ) & ) % % = = = = ( | I p.Z.'+}+)+^+^+_+_+_+(+(+^+^+|+[+}+|+|+^+}+}+}+}+[+|+^+_+_+^+^+^+^+)+<+>+)+]+ +&+&+&+>+$+>+$+]+&+>+$+&+]+$+{+>+&+{+{+)+{+]+6+2+l+e+l+l+b+c+g+g+l+h+k+k+k+k+k+k+o+i+i+p+p+i+q+o+o+o+o+q+p+p+t+q+q+p+o+t+p+q+q+t+t+o+t+s+o+q+o+t+o+o+o+t+y+o+t+s+s+t+t+q+s+o+t+o+s+r+k+k+c+4+4+4+4+|+4+4+6+8+", | ||
567 | "} } } } { } } [ 5 6 j p t p i B G G O O G G G +.+.+.M G S S G G G v v p j ( } { = ) { & & % % & & & % & & = = & = < 8 ` F.~+)+^+<+_+~+!+[+_+(+_+^+^+^+(+^+^+}+^+|+(+(+(+_+_+}+|+_+^+^+)+<+'+>+>+>+>+>+ +$+$+&+]+,+&+{+$+{+$+>+&+&+&+]+@+&+]+)+)+<+7+2+b+b+e+g+l+e+e+c+l+c+h+k+k+o+i+i+k+k+k+k+p+m+q+p+m+q+m+q+o+o+s+m+q+s+p+t+o+t+n+s+o+t+o+s+s+t+o+y+t+t+o+s+o+t+o+t+t+o+t+t+t+t+s+q+s+q+q+k+h+0+|+4+4+4+4+6+4+", | ||
568 | ": : 6 : : } 5 j 6 6 6 p p p v O G G S G v B B S +. ...S S S S G p a a k } ~ ) = { = = = & & & % % & $ $ $ & & @ & = , s p.Z.^+)+^+^+^+)+^+^+(+^+_+_+^+}+(+(+(+_+}+}+^+^+}+^+_+^+<+)+{+)+{+~+{+>+$+&+&+@+ +$+ +&+ +&+&+ +>+&+&+>+$+$+$+&+$+&+@+]+)+<+4+2+g+e+c+k+e+e+c+c+g+i+i+e+k+i+i+o+i+o+k+k+h+o+k+m+q+o+q+p+q+q+o+q+t+m+t+t+s+t+s+t+t+t+t+o+s+o+t+o+t+o+s+s+t+o+o+t+t+o+t+t+q+t+q+s+q+p+k+e+c+6+|+|+4+4+}+|+", | ||
569 | "6 6 6 : } 5 5 k k r k p K B v G G S S G B B O O S ..S S K ..G B p k 6 : { { = ) = = = & $ & & % % % $ $ % $ & $ $ = { i F F.,+^+<+)+<+^+^+_+^+^+^+(+_+(+_+^+}+^+^+^+_+_+^+~+^+_+^+)+)+{+,+&+ +$+&+ +W. +Q.&+$+&+&+ +$+&+$+$+>+&+&+&+%+>+&+@+&+ +&+{+<+4+3+e+k+i+i+h+c+l+c+e+k+i+h+k+k+k+k+i+h+p+p+k+m+o+o+o+o+o+m+p+s+o+o+t+s+m+t+s+t+o+y+o+t+t+t+s+s+s+t+t+s+o+t+t+s+o+t+t+o+p+t+o+o+q+s+q+o+m+c+c+c+4+^+4+4+|+", | ||
570 | ": a 6 : } 0 6 k j p i v M B G S S S S M G G O S S S O S S S B r 6 : } { = [ = = @ = @ & $ $ @ $ & $ $ % & & ) $ & = ( s 4.Z.)+^+)+)+)+'+)+~+^+)+^+^+_+!+_+_+^+^+^+(+_+^+<+_+!+~+_+)+{+>+>+ + + + +Q.%+W.Q.W.&+&+&+$+&+&+&+$+&+&+$+&+&+&+&+@+&+&+>+&+<+2+2+e+e+l+e+c+e+i+c+k+e+c+g+i+i+k+k+i+k+m+k+k+h+m+o+q+q+q+q+p+t+o+o+t+t+o+s+t+o+y+t+o+x+o+s+t+s+m+t+s+o+t+t+s+t+s+t+o+t+t+o+y+r+q+t+r+r+c+b+c+4+4+4+4+^+", | ||
571 | "6 : : : 6 j p t B p p B M S G S S ...... .S S +. .S v G G G r k ( : : : { { { @ @ $ $ % @ $ $ . & & @ % % ) ~ { | ` p.,+)+{+)+'+)+~+^+~+^+^+~+(+_+^+^+^+'+(+)+^+)+)+~+)+'+>+)+$+>+$+@+ +Q.%+W.Q.T.%+++Q.W.Q.Q.&+Q.Q.&+Q.Q.&+Q.$+T.@+$+Q.&+&+&+>+_+3+b+b+e+g+k+e+l+b+c+i+i+i+k+k+i+k+k+h+k+p+m+p+k+p+o+o+m+m+q+o+t+t+t+s+t+t+t+s+o+y+x+o+s+t+s+t+t+o+t+t+s+s+q+t+o+o+t+t+o+t+o+o+t+p+q+o+n+c+c+4+|+|+}+}+", | ||
572 | ": } : 6 6 k B K K p B G G G S ..S S ........S S G B v B B p : 6 } { { : { ) & $ @ @ $ + % + & $ % $ & $ & < s 8.`._+{+{+)+^+'+'+~+~+^+)+~+~+_+)+_+)+_+<+)+^+{+~+)+)+>+>+>+ + +@+W.W.T.Q.Q.M.Q.M.%+%+T.$+Q.&+Q.T.$+Q.%+Q.&+T.%+Q.$+Q.&+&+&+>+<+1+4+e+c+k+c+l+e+b+b+c+c+i+k+i+h+k+h+i+k+k+m+i+o+o+q+k+o+q+o+o+o+o+t+t+t+t+s+o+o+y+t+o+t+o+y+o+t+o+o+t+o+s+t+t+o+t+t+t+o+t+s+t+p+p+p+o+k+c+c+4+|+|+|+", | ||
573 | "5 6 5 a i B G M M B M M B G G ..S S +.+.+.S S G G k 6 k p 6 : [ { { = { - = $ @ $ @ % $ + $ @ % % @ % $ % @ @ - | +.l.>+)+)+)+)+~+)+)+'+~+^+)+^+'+_+)+^+)+)+)+{+~+)+>+;+>+>+ +@+ +Q.@+T.Q.Q.T.T.T.Q.M.M.%+T.T.M.%+W.T.%+Q.T.&+K.%+T.T.%+&+T.@+@+>+)+2+2+e+c+l+c+b+g+c+c+h+c+i+i+k+i+k+k+i+o+i+n+o+o+o+m+p+o+t+o+s+t+m+y+o+y+t+s+x+o+t+y+t+t+t+o+y+t+t+t+t+o+o+o+t+o+o+t+t+s+p+p+s+q+q+p+i+c+b+7+2+2+_+", | ||
574 | "6 k p p p v S M M G S S B G G ..S S S S S G G G p p 6 6 k } : ~ & = = = = @ $ $ @ @ & $ @ @ ; $ . - ( s p.`.{+{+~+>+~+_+]+-+~+^+)+)+'+_+)+)+)+<+~+)+)+)+>+ +&+ + +&+&+Q.W.K.T.H.T.T.T.T.Q.M.Q.Q.T.Q.T.&+K.T.M.T.T.Q.%+T.%+Q.T.Q.%+&+%+]+<+1+4+b+e+g+e+g+l+e+k+e+k+i+k+k+n+k+i+k+p+i+i+p+q+o+o+o+o+o+m+s+m+m+o+y+o+t+t+t+o+y+o+y+s+o+y+o+t+o+t+t+t+t+m+t+o+o+o+t+q+q+s+t+q+q+q+c+b+8+6+2+|+", | ||
575 | "k p t t B O S S G +.S B O G +.S ..G G O G B p p p B p 5 : : = = @ @ @ & @ & $ @ % + % + ; & . - r ` F.`.~+)+>+{+>+>+_+>+)+'+'+~+>+<+~+)+>+{+>+]+>+>+ +>+$+Q.W.Q.M.Q.Q.t.m.m.q.T.T.T.T.T.T.Q.T.Q.T.T.T.%+M.T.X.M.M.T.%+T.%+Q.Q.W. +&+]+4+4+j+e+l+e+c+b+c+i+e+k+h+i+i+i+k+i+i+k+k+i+o+o+o+o+o+t+t+t+t+y+o+s+s+s+s+y+t+t+o+t+o+y+o+t+x+o+y+o+t+m+t+y+o+o+t+o+t+o+q+p+q+m+o+q+c+j+b+4+2+", | ||
576 | "p B G B B O O +.S S S S O O O S +.G v p p p i p B p 6 } { { = ~ $ $ $ $ + + + + . + ; + ; + % @ $ @ a s n.V.@+~+>+>+-+>+)+>+)+)+~+'+>+{+~+~+,+>+>+&+>+ + + +W.@+@+K.%+T.w.T.q.T.q.T.X.T.Q.Q.N.T.T.T.Q.T.T.T.T.T.T.T.T.Q.T.T.X.T.%+T.Q. +@+]+^+2+6+k+e+k+l+e+h+c+c+i+l+n+h+k+i+o+m+q+i+k+o+o+q+o+q+o+p+o+t+y+t+t+y+o+y+t+t+s+s+o+t+y+o+s+m+s+t+t+o+o+t+s+o+t+o+s+s+q+m+r+q+q+k+k+b+b+4+4+", | ||
577 | "B G M M G O O G +.S G S S S O S G G B p B p v p p 6 : : ~ = = = @ $ $ + + % + % + % + % & @ - i ` F.;+)+>+>+>+-+>+)+)+'+>+>+{+>+>+>+>+>+>+>+$+ + +W.W.Q.Q.Q.Q.s.T.q.q.h.f.h.N.w.N.T.T.M.N.M.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T. +@+<+_+4+4+k+k+e+c+e+e+e+e+h+k+k+h+k+g+k+h+q+o+q+o+m+p+m+p+q+s+t+o+s+x+o+y+o+y+s+t+t+s+t+m+t+t+t+o+o+t+o+t+m+n+t+o+t+q+q+o+t+m+o+o+o+p+k+k+b+4+", | ||
578 | "M M M B M G G O S S G G O G G S B v i p i i i 6 6 6 { = & @ & & & @ $ @ & @ + + + % % + + % + + + + $ & < O p.@+>+>+,+>+-+>+$+ +,+,+-+>+>+,+>+;+`. + + +Q. +Q.@+Q.Q.Q.T.q.q.q.i.6.h.q.q.T.q.T.q.T.q.N.s.T.q.Q.T.X.T.T.X.T.T.T.T.T.T.T.T.w.K.K.V.;+^+4+c+c+e+k+c+b+c+e+c+i+i+i+i+g+i+h+h+h+p+p+p+p+o+o+q+o+s+t+t+s+o+y+o+w+y+s+t+t+t+s+t+t+o+y+o+t+s+t+m+o+t+o+n+o+s+q+q+q+q+p+o+o+i+k+e+b+", | ||
579 | "S K K B v B G S ..S O v O G G G G p i i 6 6 6 : { { { = & $ @ @ @ & . + . + + . + + + + + . & . $ = i 2.H.>+>+>+&+ +>+>+>+ +>+ +-+;+>+;+ + + + +&+Q.@+K.Q.Q.Q.q.Q.s.s.i.x.V 6.h.X.q.N.N.M.N.N.q.X.N.T.q.T.q.T.q.T.X.q.T.T.T.T.Q.w.w.m.2.p.F. +^+|+b+c+k+k+c+e+i+b+b+g+i+l+i+p+k+k+o+i+o+h+k+q+t+o+t+t+o+s+t+y+s+y+s+o+t+s+s+y+o+t+t+t+o+t+y+o+m+t+p+o+q+s+q+q+p+q+o+o+k+p+p+p+h+c+b+", | ||
580 | "S S K B B G G S ..S G p v B G v i k i 6 : : } { { = = & $ $ @ $ + + + $ . & @ % ) 6 O H. +>+>+ + + + +>+ +>+ +>+ +>+ +&+ + +W.W.W.Q.K.Q.T.Q.o.w.q.q.i.9.R (.h.q.q.N.q.q.m.T.q.q.X.X.q.T.N.N.T.q.X.T.q.T.m.m.m.<.2.......2.F.`.~+4+4+e+e+i+e+c+g+i+g+i+k+e+h+m+k+k+h+p+m+m+o+p+o+q+t+o+y+o+o+s+y+s+y+t+t+o+y+y+o+y+o+t+o+t+t+p+q+q+o+q+o+m+o+o+q+p+o+q+k+q+k+k+c+b+", | ||
581 | "S S G M K G G S . .B p k v B B v k k : : : { { = ) ) % $ $ . + . + + + + + + + + $ @ $ $ $ { G m.W. +$+ + + + + + + + + + + + +W.W.W.W.@+K.Q.Q.T.M.q.T.o.q.f.6.V Y ).u.u.N.q.q.q.q.q.N.o.q.T.w.N.q.X.q.T.m.X.q.m.s.m.<...S ..S ..+.2.F.`.!+4+c+e+e+e+l+c+b+i+c+h+h+k+e+h+m+k+i+k+q+p+o+o+o+o+t+o+s+t+t+t+t+s+y+x+t+t+m+x+o+t+o+t+m+o+o+o+o+q+o+p+q+q+q+m+o+p+o+o+m+m+o+i+c+", | ||
582 | "S S G M M G G S +. .M p k i v k i 6 6 : - = ) ) = & & @ % @ . @ @ + + + + . + + + + + + + # . $ ^ g r <.H. +$+$+ + + + + + + + +W. + +@+W.Q.Q.W.W.T.t.s.M.s.q.q.i.e.g.Y Y ).1.u.i.q.q.q.q.q.N.q.N.q.q.N.q.q.T.q.s.w.s.f.....S S M M K S G S 2.F.`.'+6+c+c+c+g+c+l+c+e+k+h+h+k+h+h+p+m+i+o+q+q+q+s+o+t+o+s+t+s+s+t+s+t+y+o+y+o+y+o+y+o+t+t+t+t+t+o+q+q+q+m+m+q+q+o+p+q+q+k+n+n+i+c+", | ||
583 | "S S S M M S G G S S B p 6 i i k | 6 : ) ) = ) ) = ) % + + . + + + + + + + + + + + + . ; ] ~ y y ..w.Q.$+ + + + +W.W. +Q. + +W.@+Q.W.K.Q.Q.K.K.H.w.m.q.q.i.i.0.R Z @./.g.u.X.h.X.q.q.N.q.N.q.N.q.T.q.T.q.q.m.m.....S S M K G K M B B O +.2.F.`.'+}+b+l+e+l+c+e+c+h+c+k+h+k+k+i+i+k+h+i+m+m+m+s+o+t+o+s+t+y+s+t+x+o+y+t+y+o+t+o+t+t+o+o+o+o+o+o+o+o+q+p+o+o+q+q+o+o+q+o+k+k+l+", | ||
584 | "G O G G M G B G O v r 6 6 k i { : : - ) = & @ & = & @ + + + @ @ $ + + + + + + + + + + $ + # . # ] h g y r S m.Q.$+Q. +Q. + +W.W.W.Q.W.Q.W.Q.W.Q.Q.T.t.w.Q.m.m.s.o.3.>.9.Y X %./.[.0.i.h.h.N.h.i.q.N.q.N.i.N.q.q.m.f...+.S S M M M K B B B r B B B +.2.n.Z._+|+c+e+e+c+k+c+e+h+e+h+h+k+k+i+q+o+k+q+q+q+p+o+s+y+s+s+y+s+t+t+t+s+s+t+y+t+t+t+o+t+t+t+t+o+o+o+o+k+q+q+o+o+q+q+o+p+p+q+o+i+", | ||
585 | "G G O B B v k v r k 6 6 6 : : - - = & = @ & = = = @ + @ + . . $ $ . . + + + + + + + + + + + $ ~ ^ h c y y y W ..t.W.$+W. +Q.Q.W. +W.W.W.W.K.K.Q.Q.Q.H.T.w.m.w.m.q.f.e.6.Y Z @.%.@.(.x.h.q.i.i.N.i.q.q.i.q.q.q.f.m.......S G M B B B B t t B p p t B B +.|.F.`.~+4+c+k+k+c+b+f+b+h+e+k+i+f+f+g+o+o+i+p+m+o+s+t+m+o+t+o+t+t+s+y+t+t+y+o+t+o+w+t+t+o+o+o+o+q+o+o+o+o+i+i+n+o+o+q+k+q+o+k+k+", | ||
586 | "G G G B B p k i | ( 6 6 : : = & = = = = = @ @ = @ . + + . % . + + ; ; + > ^ g y 0 j y y B f.p.H.&+Q.W.W.W.Q.Q.W.Q.K.W.Q.Q.H.M.q.t.w.T.q.q.m.f.f.1.(.Z @.@.*.*.).x.x.i.q.i.q.u.q.q.q.o.f.f.+...S W M W G r B p B B B t p p p p B v G +.2.F.`.^+|+4+b+g+e+c+c+h+c+k+k+k+f+f+i+p+i+q+q+q+o+t+s+y+o+y+y+o+s+s+s+s+y+t+o+s+o+t+o+t+s+s+n+o+o+n+o+o+q+q+k+k+h+o+o+k+o+k+k+", | ||
587 | "G G B p p k 6 6 6 6 6 } : = & = & = = = = @ @ % + + + + + + + + + + . + . + + . + + $ ; h c c g g y y y y M m.K.W.W.H.Q.Q.Q.W.K.K.Q.Q.H.Q.T.s.Q.w.q.s.s.q.f.h.e.:.Z X @.*.%.%.).g.i.x.h.q.i.q.h.m.f.f.f.S -.r G B B B B B B p p p p p p t t p p p t B +.2.F.-+^+4+b+e+e+l+l+e+g+h+i+h+k+i+h+i+q+o+o+o+t+m+o+m+t+y+o+y+t+o+y+t+m+y+y+o+t+t+t+o+o+o+o+o+p+o+i+k+o+i+o+o+q+o+q+o+l+o+o+", | ||
588 | "v v v i k k : ( ( 6 5 { - & % $ % @ @ @ @ @ @ @ + . + + + + + + + . + + + + + + ; ; ] ^ g h g y g g g y y G ..m.Q.Q.W.Q.Q.H.H.W.H.H.s.Q.s.s.m.T.s.q.q.3.o.f.e.^.Y Z @.].=.].].a.9.e.h.x.q.i.q.f.f...S G O G M B W p r p t k p p t p k p t k k k p p p M S 2.F.-+_+7+b+c+c+c+e+c+c+k+i+k+k+o+i+h+q+q+m+p+p+y+o+t+o+y+t+t+t+t+w+o+t+m+s+o+o+s+o+o+m+q+o+m+o+m+k+q+o+k+i+l+g+o+o+k+k+k+", | ||
589 | "v i i 6 i : : : : { : = & & @ @ % & @ % @ . . . + @ + + + + + + + . + + + + ; > ^ h h h 0 c g g y h y y y +.w.K.T.Q.H.H.Q.H.t.Q.s.Q.q.H.m.s.m.m.s.s.f.i.f.^.(.Y @.].%.%.*.*.,.).x.u.i.f.f.3.-.-.O W S y B B p r r r p p p k a k k k 6 k p k i k p j p O +.2.F.-+^+4+b+b+g+i+l+g+g+i+i+i+k+i+k+h+i+q+q+t+o+t+t+y+o+o+y+y+o+s+t+y+o+y+t+t+o+s+o+o+m+k+k+o+n+m+h+i+h+o+o+o+l+k+n+o+o+", | ||
590 | "i : : : : : = = = = { = & $ + + . . + @ + . . + + + + + + + * # # ] ] c g g h g g g j c C y y S m.w.T.t.s.K.w.s.w.Q.o.t.s.m.m.m.q.f.m.m.f.e.6.!.,.$.@.].%.%.].]./.).6.e.i.#.-. .S W G B B W B B t p p k k j j j j j k k r 6 k k r 6 k 5 j r O +.2.W.-+^+b+b+e+c+e+c+i+i+h+h+k+m+o+m+o+m+o+o+t+o+t+t+y+s+s+y+t+s+o+t+o+t+o+t+o+o+w+o+m+o+n+i+g+o+p+i+g+g+g+o+o+p+i+g+i+", | ||
591 | ": } { : { { { ) & & @ @ % + + + + + + + + + . + + + + + + . . . . + + $ # ~ h g ~ g g g h g g y h u C y W ..p.H.Q.H.s.H.w.t.s.s.s.s.t.m.o.q.3.f.f.-.i.^.!.U Z @.%.%.*.%.*.a.).:.i. . .M M K M W r B p t t p k p k p p k k t k 6 6 k a j k k j j k 6 p p O +.|.V.,+^+4+c+e+i+g+i+c+l+i+k+k+o+i+h+q+p+o+y+o+s+x+o+t+t+t+t+y+y+o+y+o+y+o+o+o+o+o+o+o+i+o+o+k+i+k+k+n+n+i+i+k+q+k+l+", | ||
592 | ": : { { { ) ~ & & & $ @ $ + + + + + + + . @ + + + + + + + + + . . + + + + + + . + # ~ ^ g ~ g g ~ n g h g g g g g c y N f.m.s.m.H.s.t.t.t.s.s.s.s.s.m.}.f.3.i.3.e.:.R Y U @.%.%.@.*.].].).(.>.W W M M M t t t r r B p k k k j k k k k k j j j 5 j k 5 5 6 j 0 j 0 j p B S +.p.V.;+}+8+b+i+c+i+h+k+h+k+h+o+i+o+q+q+o+o+s+o+y+y+t+s+o+t+m+t+o+t+o+o+t+s+o+o+o+n+q+n+g+i+k+o+h+h+g+g+n+g+i+o+i+k+", | ||
593 | ": { = { ~ { ) $ @ @ & $ % % + . . + + + + + + + + + + + + . + . > # g ] g / g h g c h h g y h y y C W M m.m.s.m.m.w.m.s.s.m.m.f.f.3.f.s.f.f.e.>.R Z X *.X %.@.X /.Z ).~.T K M M K t p B B t p k k k j k j k k 6 j k k k k k 6 6 5 6 6 j 5 0 0 j j j k p O +.|.V.,+}+b+b+k+k+e+k+k+i+k+i+k+h+m+m+p+t+o+t+o+o+m+t+s+o+t+t+t+m+t+o+o+o+o+k+q+o+o+i+i+n+o+k+o+k+i+k+i+i+l+g+k+o+", | ||
594 | "{ { ) : ~ = & $ . & @ @ ; . . . . . + + + + + + + + + + + # # ^ ^ ^ ^ h ^ g ^ g g g g h g g g y c y K }.m.m.s.}.m.m.3.m.}.m.}.s.3.f.3.i.-.^.:.R U X Q Z @.Z Y ).~.C A N t t t t t B p p t j k k a k k 0 5 k a j j k 6 5 j k 6 5 5 5 0 j 0 j j p p k r v G +.|.W.,+2+8+b+i+h+c+k+i+k+o+q+i+q+o+o+t+o+t+t+y+y+o+s+t+t+o+t+m+s+s+o+o+n+o+q+g+o+k+i+i+f+i+i+k+g+g+i+i+k+i+k+k+", | ||
595 | "- ) { & = = & @ $ . + . + + + + + . + + + + . + . . + + + + . > + + $ # ~ ~ ^ ] n ^ g g g g g g g y g y C y M -.m.m.m.q.}.3.s.}.f.}.f.f.f.i.#.i.-.:.Y U X X Z @.Z R ).A T W K t t B t B t k p k j k j 5 k 5 5 j 6 k k k 5 6 j k 6 5 g 6 a a 5 0 k j j k k k r r B O +.p.`.'+4+e+k+k+k+h+k+m+k+i+p+i+q+t+o+p+s+o+o+m+s+o+t+s+m+s+o+q+o+o+o+o+o+h+o+q+n+n+g+n+k+k+i+i+i+k+k+i+k+i+i+", | ||
596 | "- & & & @ @ . @ @ . . + + + + + + + + + . + . . + + + + + + + > > * # # ] [ g ~ h ] g ~ g g h g h c C g y y M ..f.}.f.f.s.f.f.3.i.}.f.3.f.i.-.>.>.R Z X X X Y R R A T W u t t t t t t p p k j k 6 5 j 0 k 5 6 j 5 5 j j j 6 5 5 5 5 0 0 6 6 6 0 5 j 0 j k k a r r B O 2.n.`.^+4+e+i+k+i+k+h+k+i+m+m+m+p+o+o+q+o+t+t+m+t+o+o+o+s+m+t+o+o+q+p+o+i+g+o+i+n+i+h+h+c+i+i+i+g+k+i+k+k+k+", | ||
597 | "& & & @ $ $ + + + + . + + + + . + + + . . + + . + + + + . + + + + > + > + $ ; ^ ^ ^ ^ / n h ~ h h c h C h h y y y -.}.q.3.3.f.}.3.3.3.f.f.-.3.-.>.>.R Z X Z Z Z R R A u u u B r t t t p k r k 5 6 5 5 5 0 5 5 6 5 0 j j j p 0 j j g 0 5 5 5 g 6 j 5 j k 6 6 k k k a r k B O 2.H.`.^+4+e+k+k+k+o+o+k+i+o+k+o+p+t+o+t+o+s+o+s+o+s+p+o+o+o+o+o+o+i+h+o+o+i+k+k+i+g+g+g+g+g+g+i+c+k+c+i+g+", | ||
598 | "& & $ . @ @ @ + + + @ + + + . + + + + . . . + + + + + # > + > > + ; # ~ n ~ h ^ n g g h h h C c C y y y -. .f.f.f.f.f.f.f.-.f.-.f.-.-.T R R Z Z ~.w ~.A u u y t t t r B t p k 6 5 6 j 6 6 6 6 j 5 5 5 5 5 j p 0 p 0 5 j 0 0 0 0 5 5 5 5 5 5 5 k j 6 j t k k y r B +.<.F.-+^+8+b+g+k+o+o+q+k+m+q+q+o+o+o+s+m+o+s+s+p+o+t+q+o+q+o+p+q+l+i+g+i+i+i+l+k+c+i+i+c+b+g+g+g+g+g+b+g+", | ||
599 | " @ @ & $ + + + . + + + + . . + + . + + + + + + + # + > * + > > + > > > ; * ~ / ~ n ^ ^ g g h h C h C C C W W #.3.3.#.f. .-.f. .f.-.-.-.T R R d Z d R A A t t B B t B B B k p 6 k 5 5 5 6 5 5 j j 6 6 5 p 5 k k j p j j j 5 5 j 5 5 j 0 0 0 5 5 6 5 6 k p 6 k j p p r G +.2.V.)+^+8+k+g+k+i+i+m+k+o+o+o+o+q+o+t+s+o+p+q+q+m+o+o+m+o+o+o+f+o+i+n+i+i+f+i+i+g+b+g+f+g+b+b+b+j+g+g+", | ||
600 | "$ @ ; + . . @ + + + + + . + . + + + . . . + + + + + + * + + > # > ' > > + > + * # / ~ n g n ^ g g h h h C n A T W -.f.f.#.f. .f.-. .-.#.-.V C w R R A A A A u t B t p k k r k k k 6 k 6 } } 5 5 6 j k 6 6 6 5 p j p p p p 5 0 5 5 5 5 0 5 5 0 0 5 j 6 5 5 6 j j k j j p k p G +.p.V.~+}+c+i+k+q+k+q+k+q+q+o+m+q+q+q+m+s+m+o+q+m+p+o+i+n+g+o+i+o+h+i+i+g+i+l+i+g+g+g+c+f+g+j+g+j+j+g+", | ||
601 | "@ @ + + . + . + . + + + + + + + . + + + + + + . * * + + + # ; # + + + + ' + > > # # # / # ^ g n g h h g y y C A y T -.3.-.f.-.-. .f.-.-.^.n A d A A A A A u t t k k p p j k k 6 5 5 6 6 } j 0 5 5 j 6 k 5 j 5 p t B p p k j k 6 6 6 k 0 5 6 0 5 j 5 0 0 5 5 6 6 k k 5 t j j p k G +.n.V.^+4+e+k+k+q+o+o+o+o+o+q+o+o+o+t+o+n+o+q+q+o+p+o+i+f+n+n+f+i+k+i+i+g+f+g+g+b+b+b+b+c+8+9+8+8+8+", | ||
602 | " . + + + . + + + + + + + + + + + * + + + + * + ' > * # * * * > > > + # # # # # ^ / ^ ^ n g g h y n y y T T N -.f.-.-.-.-.-.-.W W y n C C A A A u p t t t p k k r j j 5 k 5 5 6 6 5 : 5 5 } 5 5 k 6 6 k p t B p k j j 0 6 j 5 6 0 j j 5 5 j k j 0 j 5 6 0 0 k 6 j j j t k t M 2.n. +|+0+k+l+k+q+k+q+k+o+q+n+o+o+q+q+o+o+o+h+o+k+o+i+i+k+g+g+i+i+k+c+g+i+g+g+8+g+f+g+g+c+g+g+b+g+", | ||
603 | " . + . + + . + . + + + + . + + + + + + * + + + * + > > > ; # + * > > > * * * * # . / ~ ~ ~ n g g n y y V C T T #.-.-...-...W W y y n h l h y u t p p p k k k k k 6 6 6 6 6 5 } 5 j 5 5 } 0 0 5 0 j 5 j p p p p j k k j 0 j 5 j 0 j j 5 j j k 6 6 j 0 5 j k j 5 k k j j j j j B M 2.F.>+^+8+o+l+k+o+o+o+k+o+o+n+k+o+o+n+o+i+q+i+h+i+o+i+i+i+i+i+g+g+i+c+b+f+g+8+8+b+b+8+b+c+b+b+c+", | ||
604 | " @ . + + . + + + . . + + + + + + + + # + + > + + # # # # # > * + + > + + ; # > * # # # # ~ g h n n h n y y V W V -.-.-.-.W W r y n n n j 0 u j j k k k t k k a 6 6 5 } 5 6 a 6 6 6 } 5 5 5 5 0 k 6 k k j p p v 6 6 6 5 5 p j k k j j j k k k j j 5 j j 5 0 k j 0 j j j j k r k p M S 2.V.)+}+c+o+o+o+o+o+i+n+o+f+o+o+o+o+p+i+o+n+i+g+i+i+l+g+i+i+i+g+g+i+b+8+g+g+j+9+j+8+b+8+j+9+8+", | ||
605 | ". @ . + + + + . + + + + + + + . + + . + + . . + + + # . + + * * + + # # # # * # # ; * * * * # # # * * # . / # # # ~ g g n y y y C W W -.-.-.W W y y y g c u j j r k k k r k r k a k j 5 6 6 } 6 : a } 5 k 6 6 6 5 j j k p k p k i 6 i 6 6 j 6 j k k j k k p j j k a j j j j g j 0 5 5 j 0 j j j k k k r G +.n.`.)+4+c+k+k+o+i+q+n+o+n+g+g+n+i+i+o+g+i+k+k+g+g+i+i+i+c+b+g+i+8+g+b+8+8+8+8+e+j+9+b+8+b+j+", | ||
606 | ". . + + + + + . + + + + + . + + + + + # . # * + + * * + # * * ; * * / # # # * * * * # * * * # . # # # ~ n g n n n W V T W -.W W y y n ^ g 0 0 j j j 6 k k 6 a 6 k 6 6 6 a a 5 6 5 6 5 0 5 a 6 k j j 6 6 k k k k k j 6 6 6 6 5 t p j j p p k j p t t t j j j j 0 j a 5 j 0 5 j j j 5 a j k k p B +.p.,+<+8+i+k+o+i+k+g+i+k+i+i+n+g+f+i+i+i+f+i+i+i+c+c+i+f+8+j+b+8+j+j+b+8+j+8+b+8+9+8+9+b+b+", | ||
607 | " + + . . . + + + + + . + * + # + * + # + * * + * * * + * * ; ; > * * # ; # + + > * * * * * * # * ~ # g h y C N P W W y a g ~ g g 0 g j j j 5 j 5 6 k k a a 6 5 5 5 } } : 6 5 5 j 5 j j j 6 j j k a k p k t j j 5 5 5 p p t p p p t t t t p t j u t t y k k 5 j 5 j 5 5 6 6 g j 5 j 6 k r O 2.F.-+^+e+o+k+l+o+k+k+i+n+g+i+i+i+f+k+i+h+i+g+c+i+g+b+b+b+8+g+j+8+5+j+b+b+9+8+9+8+9+8+9+9+", | ||
608 | " . . + + + + . + + + . + . + . + + + * * * + * + + + + * + + > > ' > ' ' * * ; * * * * > > + * * * * # . # * # # ~ n g y y y y y g ~ g ) } } 5 g j j k j 5 5 5 k 5 6 6 6 6 6 6 5 5 } 6 j 0 j 6 6 k t p 5 k k k k p p p p 5 5 j t t t t B t M B B B t p p t u j t j j k j 5 g 5 5 0 5 k 5 5 5 j j j k r G 2.V.)+4+b+o+n+m+g+i+c+i+i+i+k+i+f+i+i+i+0+c+c+c+f+0+g+8+9+8+j+b+8+9+8+b+9+8+9+j+2+j+2+b+", | ||
609 | " + . + + . + + . + . + + + + . * + + + + + + + + + + > > ' ' * * > > * * > > ' > * > > * > > > * * # * * # # * # # / ~ g g y a ~ ~ ^ ~ { ~ } 5 6 5 6 k 6 5 j 6 5 6 a 5 } 5 } 5 5 6 6 6 0 p j j k 6 k j j k k p p p t t t j 5 p p t M B B M B B B K B t t t p t t u j j j 0 5 5 5 5 5 [ [ j 5 5 j j j p r ..p.V._+8+b+k+k+k+g+g+g+g+i+i+c+i+8+g+0+i+g+8+g+8+b+0+8+j+9+8+9+8+b+j+9+b+j+b+b+9+8+8+b+", | ||
610 | "+ + + + . + + . + . + + + + + * + + > + > * * > * > > * * * * * ' / ' / / * * > * * ' * * * + * * * # * # # # # # / * ~ ~ ~ ~ ^ % ] ~ [ { } [ 5 6 5 5 : 6 5 6 5 0 } 6 6 5 [ 5 0 j 6 j j p p j p k k p 6 k k p p p B K t t t t B B M K B M t K M K t K B t t K t j u 5 k j } 5 } [ 0 j 5 5 6 : 6 j y p r M ..H.`.}+4+b+i+k+i+c+c+b+g+g+c+i+8+g+c+0+b+g+b+c+e+e+0+9+9+8+b+8+b+6+7+b+4+8+b+b+2+9+b+", | ||
611 | " . . + + + + + + . + + + . + + + + # + + + + * > * ' + * > * * ' * ' ' ' ' > / ' > / > * * > + * * # > > * * * + * * * # * # # # ~ . & & % ) ) } { [ } 5 } 6 6 5 } 6 } } 5 5 0 } } 6 5 5 j j j p p p p 5 j k k p k p p p M K K K K B B M B t M K M M M K K K K K K K t t t k k j 5 0 [ 0 5 [ [ [ [ } 6 j k k j 6 p O 2.W.'+7+j+i+i+b+8+j+8+8+9+8+b+8+c+c+b+8+5+8+b+8+f+8+8+8+9+8+b+8+b+8+6+9+b+9+9+b+2+4+", | ||
612 | " + + + + + . + . . + + . + + + > * + > * + ' > + * * ' > ' > ' ' ' ' ] _ ' ' / ' / * > ' ' ' ' ' * * * * + * * * * * # * * * # & . & # = { ~ } } [ [ 0 } } 6 6 } 6 5 } 6 6 5 6 5 6 6 j p p p p p k p p j k i k p B t B B S K M K K M M B M B K M G M K M K B M M M M t t t k j 6 0 } } } } 5 5 g [ [ j j k j 6 6 v O p.V.'+2+b+g+g+0+b+b+8+8+9+b+9+9+8+8+b+8+8+b+b+b+b+9+8+9+7+7+9+b+9+b+4+4+b+b+b+j+4+", | ||
613 | ". . + . + + + + + + + # + + * + + + + * + > * > ' ' ' ' ' _ _ ] _ _ _ _ ' _ ' _ ' ' ' ' ' ' ' * * * > > > + * + # # # ; $ . & & % = ) ) } ~ { 5 [ 5 5 } } } } 0 } 6 5 } 0 5 5 6 5 p u B t p p k j p p p p t B B B M M K M K M G G G M M .M M .S K S M M S M K B t t j j k 0 5 5 5 } } [ [ } [ 0 [ 5 0 5 5 5 6 v +.H. +4+4+b+b+b+8+9+8+j+8+9+8+8+8+9+j+9+c+c+6+8+7+6+b+4+c+b+7+7+b+7+b+j+3+2+4+b+b+", | ||
614 | "+ + + + + . + . + + + + * * + > + ' > + * * * * ' ' _ ' ' _ _ 3 _ 3 _ ] 3 _ _ ' ' ' ' > _ ' ' ' ' ' ' ' > * + * + + + $ $ $ $ $ & ) { [ } } } : } } } 5 } 5 5 } 5 5 : 6 } 5 6 j k p t K K B p p k p p k k p K K B B G .K S .M K S S K .#. . .K . . .S S S O W G p t t t k 0 0 [ } [ [ { [ } [ } 5 } [ [ 5 [ 6 k O 2.F.~+|+b+b+j+8+9+8+9+8+9+8+9+8+6+8+8+9+8+6+9+b+7+8+6+8+b+9+7+b+2+b+6+b+2+2+2+b+", | ||
615 | ". . + + + + + . . + + + + # + + * * * > + > * * ' ' ' ] ' 3 3 _ d _ ] d d _ 3 _ _ _ 3 ] _ ' ' _ ' _ ' _ ' > ' ' + * + + % @ & $ % ) { [ ) [ : } } } } } } 6 } } 6 6 [ 0 0 5 j k k B p B K t t p r v p t p B t M B K K K S ...S . .S G . . .}. . . . . . .O S S G B p p t j k 6 0 0 ~ 0 } [ { } { } [ } } } [ 0 [ 5 k +.p.`.)+7+b+b+j+2+b+6+9+8+2+8+7+8+4+7+6+9+7+8+7+8+9+2+4+6+6+9+2+b+7+j+2+9+b+b+2+", | ||
616 | ". . + + . + + + + + . + # + + + + + # + + * > > ' ' ' ' _ _ 3 ] d _ d d 3 d 3 _ _ d ' 3 3 3 _ ] ' _ 3 ] _ ' ' > + > + # . & ; ; & = ) % ) { } } [ : : } [ [ 5 [ : : 6 } 6 6 } j 6 j p p t B K p K p p p p p B t K K G M K M .....+.+. .......}.}.}.}.}..... . . .+.O G B r p k p j j 6 [ 5 [ [ } } : : { { ~ } ~ } { } } } 6 r +.F. +_+6+b+8+9+j+6+7+8+7+8+7+b+4+9+6+9+7+8+4+b+8+9+9+2+b+8+2+3+b+7+2+2+4+b+4+", | ||
617 | "+ . + + . + + + * + # * + * > + + * * > ' ' ' > 3 ] d d 3 d d d 3 d 3 d _ d d d 3 _ 3 3 3 3 _ _ ' _ ' _ ' > ' * + + % % $ % % & ) ) ~ ) } } } : : } } } 5 } 5 5 : g 6 6 5 j 6 p t B v B B B t p p k p p B t B K K K S M ...........+.....}.<.}.<.}.<.<.........S O G t p k k j p 6 [ 5 [ } } { } ~ { } { { ~ ) ) } [ } } ( r O 2.V.>+2+4+b+4+b+2+2+7+6+7+6+6+b+b+2+7+6+6+b+6+4+4+4+8+7+2+b+8+2+4+b+b+2+4+2+", | ||
618 | "+ . . . + + + + + + + > > > + + > + ' > ' ' d _ _ d d d ] d 3 d d d d d d d d d d 3 3 d 3 3 3 3 3 _ ' ' > ; + . $ + % @ & ) = { } } } { : { { { } } } 5 6 g } 5 0 } k k k r p p B v v B B t K p B p p t B K K G M ... ...+.......<...<.<.<.n.2.<.<.+.<. .S S S O G y p k k 5 5 6 } } [ : { { } ~ { { { } } ~ ~ { { { ~ [ 5 r S p. +<+4+b+4+8+8+8+2+8+4+4+7+7+b+6+7+2+6+4+9+8+6+2+b+4+4+2+8+b+2+4+2+j+4+4+", | ||
619 | " + + + + + + # * # + > > > + > > > ' ' ' 3 ' _ 3 d d d d f f f d d d d d d d f 3 d d d d d 3 3 _ ' ' ^ ; + ; $ $ @ & % & ) { = : ) { } } } { ( : : } 6 } 6 5 } 5 0 5 j k p p t p p k p p B t B B B t B p K B K K K S ........+.<.}.<.....<.<.<.2.+.2.+.....S +.S M G G r r k j 5 6 } ( ( { } ~ } ~ } { ~ ) ) ) } } ~ { } [ ~ } 5 M ..K.>+<+4+b+3+b+2+6+7+9+7+4+4+6+7+9+7+7+7+|+4+7+6+7+4+7+b+2+2+j+2+3+2+2+2+", | ||
620 | "+ + + + + * + + # # # * + > * * * ' ' ' _ d d d ] d d d d f o o m f f d d d d m f m m d m d 3 _ / / * * $ ; % $ & = & ) { { : : ) [ } [ { 6 : } : } 5 5 0 j k k t t p B r r p v v p v p v B B M p B B B G S S ......}.....}.}.<.<.+.2.+.<.+.<.+.+.+.+.S G O B r r r k 6 6 } a { } { ~ { ~ { ) ~ { ~ ( = { ) ) ~ { { ~ } g : k S 2.W.>+1+b+3+4+2+4+4+b+4+4+2+4+4+7+6+4+b+7+2+7+6+7+4+7+2+6+2+2+7+b+2+e+4+", | ||
621 | "+ + + + + + + + # # * * + + * > * ' > ' 3 3 ] d d d d m d m w m m m w m m m m m f m m d d m d _ / ' > ; % $ & $ % $ = & - { } ) { { } } } } } } } } 6 [ } } k 6 k j t t p B r r k k k p p k p t K M K B K G G S K ...}.+.<.....}.<.<...<.+.+.+...+.....+.O S B B M r B y j 5 } } { : { ~ ~ ~ { { = ) % ~ ) - ~ { { } ~ ) [ ~ { [ 0 t .p. +<+2+j+2+b+2+7+6+2+2+4+2+2+6+7+6+7+4+6+7+}+4+7+2+b+1+4+7+4+7+2+2+3+", | ||
622 | " . + + + + # * * # + * * > ' ' ' _ _ _ d d d d d w m d m m m z z m w m m d m m m m m d 3 3 / / * # ; $ % $ & $ & & & = & = { ) : = ) : ) } } } { } } 6 5 0 0 k j p p k r r v i r v t t p B p B B K K B K B M K S ....}...<.}...}.2.2.}.+.}.....+.+.+...+.S O G M p B r B r 6 6 ( } ) { { ) [ ) ) ) = ) ) { ~ = ) = { ) ) ) [ [ ) } [ k M <.Q.-+^+3+7+4+4+1+6+4+b+6+4+4+4+7+4+7+7+2+2+2+4+2+7+4+2+3+a+2+4+2+2+4+", | ||
623 | "+ + + # # > > ; + > # * + ' * * ' ' 3 _ d l d d z m m m z z z m m m z z m m o z z m w d _ _ ] ' # . $ & & & % & & = - = { - { { : } } } } } } 5 : 5 5 5 0 j j p r p k r i r v i p t p v p B B M M M M K .S S ..S ..}.}.2.<.}.}.}.2.<.2.....+.S +.2.+...S G O v v r r p k a { } { : ~ ~ ) % ] ) ) % = = & ) ) = ~ ~ ~ ) ) ) % ) ) [ } k +.n.@+]+}+4+2+3+4+2+}+}+2+4+4+2+4+7+2+2+6+4+6+a+4+4+2+7+|+4+2+3+4+2+3+", | ||
624 | "+ + # . # * * # * > ' * ' _ _ 3 3 d d d m w m m d z z m z z z z z m z m o o m w d l / ] ' ; % $ @ $ % ) = ) & % $ ) = - { : { ) { ) } } } g } } : 6 k p p p p p k p k k k r p p p t t B B M S M S S M S S S .... .}.}.2.<.2.<.2.<.<.2...2.+.G S S ....+.+.B r r k p r k 6 a ( { = { = = ) & % ] ) ) ) & ~ & ~ ~ ~ ) % ) ) { ) ) ) ) } 6 B ..W.]+<+4+2+3+3+4+7+}+7+2+|+}+4+4+4+2+2+4+4+2+2+2+2+a+}+4+2+a+2+2+2+", | ||
625 | "+ # * # * * > # * * * ' ' _ _ 3 d d d w m m m z z w z z z z m z D z z z z z w f l n / ^ > % % $ & ; ) % { ) ) % % ) & = = - { : { } } } } } } : 5 0 5 j t p k k k k k k k k p p B B M M B M G S S G .S ......+...}.}.<.}.2.<.<.2.<...+.....S +.G G +.S G O v r i k j a i a : { { ~ = { = & = & & & & & & & ~ & = = & ~ ) ~ ) { { ~ ~ ~ { r O p.W.{+2+4+2+4+<+2+2+}+}+4+4+2+3+2+7+7+2+|+4+2+|+4+4+3+3+2+2+2+4+3+", | ||
626 | "+ + # # + # > > > ' ' _ _ 3 3 d f f f m w m z m z m z z w z z z D z z m w m l l ' ] > $ $ @ & % & % ) % [ ) [ ) % ~ & = { = { { } { : ) } 5 0 5 5 5 p p p p i k 5 j j k p k p p B B M K B .S +...S S S +...}.+.<.}.<.2.2.2.2.2.}.<.2.......S S S O +.G O v k | a a k : ( ( : { ~ = = = = ) & & & & & ) & $ % % % { & $ = { % ) ) ) ~ ~ } a B <.H.&+<+4+1+3+}+}+1+^+2+2+^+4+4+4+1+2+2+}+4+1+2+2+4+2+2+2+4+3+1+3+", | ||
627 | "> > # * * * * ' ' _ _ d 3 f d o f f o w z z w z z m z z Z z z z z m w w f l ] ] ; ; $ @ $ & ) { ) } } [ } [ ) ) ) { ) } ) [ [ } : 6 5 5 6 p 5 p i p v k k 6 p 5 p p r B t t M G S G K S .S +.......+.+.}.....<.}.2.2.+.2.|.+.<...2.+.S G M G G v v i 6 6 6 a 6 } { } = ~ & ) & = & % $ $ & % % & $ @ ~ % % $ ) = ) ~ ~ % ) ) ~ ~ ~ } j S n. +{+]+3+}+1+}+^+4+2+2+2+}+1+2+|+^+2+2+2+3+2+4+2+}+4+2+1+1+2+1+", | ||
628 | "* * + > ' ' ' 3 _ d d m f m f o o o x z m z m z z D z z z z z z z w l l _ ' ^ % & % @ % % @ = = = { ) [ [ } } [ ) ) = % [ } [ } j 6 6 6 5 j p k i i p k p 6 6 k p p p p B B M M S ..S S ....S +.....+.....+.....2.}.2.2...<.+.2.......+.G G B M B p i i | } } { : } } ) = { = & & & % % % & & & $ $ & ; % % ~ & & % & % ) ~ = ~ ) ) ~ ~ { g t .Q.{+{+3+^+1+2+<+^+|+2+1+|+^+2+2+}+}+1+}+2+3+1+2+1+2+1+1+1+^+3+", | ||
629 | "+ + * * ' > d _ d d m z z z z z o z z z z z o z D X z z m z m w d l / ] ] ; & = @ = @ & % & = & = { = : [ } } 5 } [ { ) [ } } } } 6 j k k k p p p 6 i k k j 6 k k t p B p p M M S ..S +.+...+.+.....<.<.+...+...2...<.<.+.....+.+...2.+.O G G B B p 6 6 : } 5 } } ~ : { = { @ & & $ % @ @ % % ; $ & & ) $ $ % $ & % ; % $ & ~ & ~ ~ ) ~ ~ [ t -.w.Q.{+{+3+{+<+<+2+<+1+}+1+1+}+}+}+2+}+}+2+<+2+1+3+^+3+^+1+1+1+", | ||
630 | "* * * * ' ' d d w m z E E E z z U U z U z z m z z X z w w w d l _ ] ' ] % ; @ = = @ = & ) - ~ { { { { ) 5 [ } } [ ) [ ) } [ 5 6 k p k k k k 6 i 6 i p j p p k p t t M t B G S S ......+.+.+.+.<.<...<.......+...+.<.+.+...+.+.+...+.G O B v v p p 6 6 5 0 5 } { & = = & $ & @ & $ $ $ & $ . $ $ ; @ @ & & @ & $ ~ ) $ % ~ ~ ) ~ ~ ~ ) [ [ [ 0 K m.K.]+<+4+3+^+<+^+<+^+_+}+1+1+2+1+2+1+}+}+}+2+2+1+2+3+<+1+]+2+", | ||
631 | "* * ' ' _ 3 3 d m m Z E X X X z X D U z z z z z z z m f d d c ] ^ > ; % + $ & = - = & & & = ) ) { ) } } : } } } } ) } 5 : 5 j t t k r a i i 5 k 6 p p j t p B B B B M M M S ..<.<.+...<. . .<.}.<.<.<.......+.+.+.+.+.+.+.O G I G G v v i i 6 i : } } 5 : } = = & ) @ @ & . & + $ & & @ $ $ $ $ # & $ & & = & $ & ~ ~ $ % & ] % ) ) ) ) h c W f.T.W.{+]+]+3+1+1+_+2+<+1+^+^+^+^+1+1+1+}+]+^+1+3+]+<+3+]+2+]+", | ||
632 | "' ' / _ 3 3 m d z m z E X E Z Z X D X X D X D Y w w w l ] / ] > $ % % & @ & @ $ @ = - = ) = - = = } { { [ : } } { } } : 6 : 5 k p p r k 6 k k 6 k k i k p p G G M B B M M .+.+...}.}...<.<.<.<.<.2.}.......+.S +.+.+...+.O O G v v v e i k 6 : : ( : 5 } : - = = $ $ $ . & . & + + + $ @ @ $ @ & . $ # & @ & @ & $ & ~ $ % % % ) ~ ~ ~ ) ~ 0 N -.q.@+$+{+1+{+{+2+<+_+<+1+3+3+1+^+<+_+2+4+3+^+1+<+3+<+1+1+<+3+", | ||
633 | "/ _ f 3 f m z m f w z Z z Y Z Z Z D X Q D Z z z f d _ / / ; % & & $ @ & % & & & & = & { { } [ { } = } : : } } } } } } } } 6 6 6 p a 6 a 5 j k k i p B p p B B B M K M M .S ..+... .<.<...+...2.}.2.}...........O +.S G G G v v v v i k | : : ( : - : ) { = ~ = ) $ & . $ $ + % $ $ ; + $ ; ; $ $ & & ; $ $ # & $ & $ ~ % ~ $ & ~ ~ ~ 0 h T e.f.T.&+{+{+2+1+{+^+]+^+{+<+<+<+1+1+1+<+<+<+3+{+3+<+<+<+<+{+<+", | ||
634 | "3 f f o m z z x o z z z z Z z Y Y Z E X X z w d l _ ] % $ $ & @ @ $ @ & % & % & & & ~ = - { } ) ) } { { ( : : : 5 5 } [ } } } 6 6 5 k k k k j k k r r B B p M G S G K G S .....+.<.+.<.+.+.<.+.+.}.+.}... .+.S S S S S O G v B v k k i 6 6 { - - { - = = ) = & & & $ & & @ & # + $ % $ $ # + ; + $ ; + ; % % $ ~ ; ; ; ; ; ] ~ ~ ~ ~ / g 0 T -.3.s.W.]+]+{+3+]+^+]+4+{+^+]+_+<+<+<+3+^+<+1+<+{+]+2+]+1+]+]+", | ||
635 | "f f o z D z U x x D D D z Z z Z z X Z E Z w l / ; % ; $ & & & & & $ & = = & % % ) ) ) { } { } { } } { } [ a } 5 [ 5 5 5 5 : : } 0 6 6 6 6 5 k p p p B B B B G K S G S M ... .....+.+.<.+.+...2.+.<.+.+.<...+.+.S O S O G v p i p p p k 6 { - - = = = = = & % $ & . . . + $ $ $ & $ ; % $ $ % ; ; % $ > ; ~ ; ~ ] $ ^ ~ ~ ~ h g C T e.-.q.T.&+{+]+)+3+3+{+]+<+<+4+]+^+^+]+^+1+]+<+]+4+^+<+<+<+3+]+", | ||
636 | "m m z z X D D E x D D X z Z z X z z z Y w d ^ ^ . & @ = = = & & = = = ) & = { ) { } } } } ) } } 5 [ 6 5 a 0 5 5 6 6 6 : } } : 6 6 j p k p B t M M M B G S S S S S .S ....+.+...+.+...+.+.+.+.+.+.+.S S O S G O G B p i k p i k 5 : } & & = & = @ & & $ @ $ . & & @ + + ; ; + ; > ; ; ] % $ $ $ ; ; ; ; ; ; ; # ; ; $ ^ ~ ^ ^ ^ ~ h C P ^.-.i.f.m.T.)+]+<+]+]+^+{+]+<+<+]+<+<+]+{+^+]+}+]+3+]+<+]+<+<+]+", | ||
637 | "o z z z E Q E D E D D X X Z D Z z z Y w w l # . @ % & @ & @ - = = & % & = = { { { { } } } } } [ { } } k 6 k j 6 5 6 6 : } [ } } 5 5 6 5 k B p t M M M M S S .S S S S S +.+... .....+...+...I +.+.S S O O O G O G G B v k i 6 6 k k 6 : & & & @ & $ @ . @ . . . + @ + + + % + % ; ~ ) ] ] ] ; + ; ; ; ; ; $ # ~ ~ ] ; % $ ] ] ^ h A A T T ^.-.f.q.T.%+{+{+{+<+]+]+^+<+)+_+]+{+^+2+]+<+1+<+<+1+{+<+]+]+<+", | ||
638 | "x x D U Q Q Q Q D D X X X Z z Z z z z w ] ^ $ . $ . @ @ @ = = = = % % = = ) { { : : { [ } } } [ : 5 5 6 k k 5 6 6 } 5 6 } } { } : 5 k p p B B B M K K . . . .S S S ..S ..+.+.+...S ..S .. .+.G I O O G O I B G B v e 6 6 6 6 | 6 : } { & & % & % $ $ $ $ . $ $ $ & + $ + % > % + ; # ^ ~ ] ; ~ $ > > % > ; $ ~ $ # ~ ^ ^ ~ ~ ^ h h c A ~.:.>.^.-.i.f.T.++$+]+{+<+{+]+]+<+]+1+<+]+]+1+]+{+]+]+]+]+3+{+]+]+]+", | ||
639 | "U x U D D U Q Q E D E z Z z z X Z z w d / + @ @ . . @ @ & & = & ) ) ) } = } ) } : : : } : } : { } k a 6 6 a ( a 6 5 } } [ } 5 5 j p p B B B K B S S . ... . .S O S S +.+.+...+.+.S +.S S S +.G G v v p v v v i e | | : : : } : { { = & % @ & @ $ $ . $ . . + > > ^ ^ ~ ^ ; ^ ^ ; ; ; ; + ; $ $ ~ # ~ # ^ ] ] ] h c R ~.T -.^.^.^.-.h.q.T.&+{+]+{+]+]+_+<+)+<+]+<+3+)+1+]+3+{+<+<+{+3+]+]+]+", | ||
640 | "z x &.D Q z X Q U X X D U X Z z R w l _ ^ + + + . & = = = { { } } } } } } : } 6 6 : 5 6 a 5 6 a a : : ( : } 0 5 } 0 [ 5 j k B B t B M G S . . ...+... .S S ..S +...+.+.+.+.S +.S S S G v v i i i p e i 6 | ( : 6 : { { - = ) & = @ % $ $ . @ . . $ . . $ . # + + + ; ; > ; ; ] ~ ~ ; ; > % $ $ ~ ; ; ~ ; ] ~ ] h h C A T T ^.-.-.>.^.-.-.q.T.%+]+]+]+]+]+{+]+]+<+]+<+]+]+<+<+<+]+]+]+]+]+]+]+]+", | ||
641 | "x D x U x x Q Q E Q Q U D Z z z w h h # . $ + . . $ % = { { { { { } } } } : : 5 5 0 } } a 5 } a 6 5 : 6 [ } ( : 5 } 0 5 0 p k p M M M G G G +...+.<.<.........+.S +...+.+.+...S +.+.S G G v p i 6 6 i 6 i 6 ( ( - ( ( { ~ ( = = = @ @ = & @ @ $ . $ $ + + $ + $ # > + + + + > ^ ^ > > > ^ ^ # ; $ # $ $ ; % ; ^ ^ ] ^ g h A P T T ^.-.-.^.-.>.-.i.i.q.Q.&+{+{+{+]+]+)+{+]+)+]+<+<+]+]+]+]+{+]+<+]+]+]+]+", | ||
642 | "Q Q x Q x x Q Q Q Q D x z w l h l ; $ . . @ @ & ) = ) ) { { : } } 0 5 5 0 5 6 6 } 5 a g a : 5 } 6 } } : : 6 5 5 j u p p M M M M M S S ..+.+.<.+.<.S ......+.S ....S S ..+.G O G G v v 6 p 6 | 6 : | ( = & { = { ( & ~ & @ & @ . & $ $ $ + . + + + $ + + # + . + $ $ $ # ; ] ] ] > ^ / ] ] ; $ ~ # ~ ; ] ^ ^ ^ h h C C R T :.>.V -.-.^.>.>.-.#.e.q.T.%+]+]+]+]+]+]+{+]+]+]+]+)+<+)+<+]+]+]+]+]+]+]+]+", | ||
643 | "Q Q &.x Q x X X Q Q x z w d l ] $ # . $ . + @ . = = ) { { } : } } 0 5 6 6 5 6 : 6 6 } : : } } : } [ : : } 6 6 p p p t t B M G S S S .. .+.+.+.+.<...+.+.+.+.S +.S +.+.+...S O G p v 6 e 6 6 : : : : { - = = = - ~ & & & $ . . & . $ ; + + + ; + + # + ; $ $ + . . & # ; ] ] ; ] ] ] ^ ~ # # # ; ^ $ ^ ^ h h n V V T ^.T ^.-.^.>.-.e.-.>.^.e.i.q.&+$+]+{+{+]+]+>+]+]+{+{+]+]+]+]+]+]+{+]+]+]+]+&+", | ||
644 | "Q Q x Q U x U Z U U x o l ^ # $ $ $ @ @ + . $ @ = ) { } { [ } 5 5 [ 5 k 6 6 6 a 5 a } a } 5 0 6 a : } a } j j p p t K K K M S K S +.S ..+.+.+.+.+.<.+.+.S +.S G S O S G G O I v v 6 i 6 | : : : { - { ) = = & = = & @ & & & $ @ $ $ $ $ % % + + + $ + # ; > # # $ + # . ] ; ] ] ] > > ] * ~ ~ ; ^ ; ^ ] h h C A T T >.T -.^.T -.-.>.-.-.-.-.-.e.f.q.T.$+%+{+$+{+]+@+)+@+]+]+]+]+]+<+]+&+]+{+]+&+]+]+", | ||
645 | "Q Q &.x x w '.z U x w l _ * . . + + @ @ @ & ) ) ) ) } : } 6 j 5 6 k 6 a } { ( a } a : } 5 : 5 6 } k k p t B B K S K S S M G S +.+.+.+.+.+.+.+.+...+.S S G O O O G G O p e 6 i 6 : : } { - ( - @ & & = = & & . @ % . . + . + # $ $ . # . + > ^ ; ; # $ # + ; ] > ^ ; ; ; > ^ * # ; ; ] ] h c c R T ^.T W -.T >.-.-.^.-.-.-.-.e.>.-.e.i.T.%+$+]+]+{+]+]+<+]+]+>+]+@+]+]+]+]+$+]+%+]+]+&+", | ||
646 | "Q U Q x '.w !.w Y x w l / $ + $ % @ $ % & & ) ) [ { ) : : : k k 6 6 5 6 5 6 6 : [ } 6 5 6 6 6 a 6 k p p t B M S . .S S S ..S ..+.+.+.+.+...+.+...S O G B v B v v B v i i : | 5 : : = ) & ~ = = & $ $ = = @ & . @ $ @ # $ . # . . # # + ; ; + ; ^ ^ ; ; $ . ; ; ] $ ^ ^ ; > > ^ ; ^ ^ ^ ^ h c R A P T T >.W -.T >.^.W -.-.^.-.-.-.^.^.i.f.q.%+%+$+]+]+]+&+@+<+]+<+]+]+]+]+]+]+]+{+%+%+%+]+", | ||
647 | "U U w '.n V n V w w l / + # @ @ $ + $ % = = { { ~ ( } 5 6 6 6 6 5 5 5 } a 5 6 5 5 } 5 6 a 6 6 k t B B M M S S S ...S S S S +...I +.+.S +.S O S +.G G v p v s v p i 6 6 : : : } { { = = & . @ @ @ $ @ . & @ @ . . + @ $ + # @ . # # + ; ; > > ; > # # # # # # ^ # ; > > ] > ^ ; ] h h c A P T T W -.W ^.T -.T -.-.T -.>.^.-.-.e.-.e.e.i.T.&+%+%+&+]+]+]+]+&+&+]+@+]+%+]+%+]+%+{+{+%+%+", | ||
648 | "U R V y -.W W y n n / # . + + . . + @ @ @ & $ % @ % = = = = { { : } 5 6 } : } [ 5 5 6 5 6 5 5 k 6 6 a 6 k p B M B M G S .....S . .S S S ..+.I O S G S O S G G B r e a e i i i 6 : } : ( { - - & & & $ $ % $ $ @ & . . $ & $ + . . $ . # . + . . + + > ; ] > ; > ; $ # $ ^ ; ^ # ; ; > ; > ] ^ c c C C R T W T W -.W V ^.T >.T -.>.-.>.>.^.>.>.-.e.i.q.N.&+&+{+%+]+$+$+]+]+]+]+]+]+]+:+$+]+]+/+%+%+]+", | ||
649 | "n V r O s I O G W h ^ # # . . . . . % $ $ % $ % % = ~ ) & { = = } [ } } : } 5 j 5 k 6 k j 5 a k k r k k p B K M M G S S +.........S S S +.S G S O O G G G G G B k k : i 6 i 6 : : ( { = ~ { = & & $ @ & @ $ $ . + ; . $ . + . $ + + + + + > + > > ] ; ^ > # # ; ; > ; ; * > ] > c _ c A C A T P T T W W W W -.W -.-.-.^.^.>.>.1.>.6.-.>.^.h.f.q.T.*+]+]+$+]+]+$+&+]+@+]+&+]+&+/+:+&+]+%+/+%+", | ||
650 | "r q 8.q 8.I I s r g ; @ . . . . + . @ @ @ & ~ % & = = ) = ) - ~ : { } { ( } } 5 5 j 6 k k k k p j p r p B B G M S S S O S S S ....+...O O O G G r v v B B B B v k 6 : : : : : : : ( { { { = = & $ $ $ $ % + + # . @ $ + $ @ . $ ; # + ; ; + + ; ; + $ ; > ; ^ > # * ; > > > ; ; > ] ] c c w A T W W T -.T >.W -.T ^.V W -.W -.W -.>.>.>.^.^.e.^.e.h.q.%+%+%+%+%+%+]+]+&+]+&+]+&+]+$+&+&+&+]+%+%+%+", | ||
651 | "s s H H H H H I v : } . . . + . @ & = ~ % ~ = = & = & = & = ) { - ( { : 6 6 k 6 6 k j k p j B p t t B M .S S S S G +...+.....S S S S M G B B i v i v i i k 6 ( { ( { ( ( : { { = = $ & = @ & ; $ $ # + + $ + + ; $ + + > ; + + + ; ; > ; # > > ] > ^ ; ; > ; ; ; ; > ] 3 c l A A P A T W P T P W T T W T -.-.V -.-.-.-.-.-.-.>.-.-.e.-.i.q.q.%+]+]+%+]+&+&+]+&+]+@+]+&+]+]+]+%+%+%+%+%+", | ||
652 | "H H H J 8.J F F s : { $ + . + + . . . @ = = ) ) = & & = = = = & ) = { { } 5 a 6 6 6 p t p B B B G M G G S .S S S .G S G S ......S S G M B r p i i i i i i a 5 } { { ) = { - = = & = $ $ & $ . + + ; + + + & $ @ . > > + ; > ; # ; > > + + + # ; ; ; > > ^ / + ; > > > > ; ] ] c A c C A P P T T P T T W W >.W T T -.T -.^.^.^.-.-.-.e.^.e.0.h.6.q.q.N.*+$+%+]+%+]+%+%+&+%+]+%+%+%+%+]+]+%+%+X.", | ||
653 | "H J J L L J J q s i { & . . . . . + + % & & ~ = = ~ = ~ = = = { = = = ( ( : : a a p j B t K t M B G M S G S S S S G G G +.S S S S S O G G M r r 6 i 6 6 e ( 6 6 : ~ { - { = & & = = & & & . $ @ % . ; + + + @ . @ # ; + ; ; ; ^ # $ > ; + + > # / # ^ > ^ > # ; > > ; ; > ] ] ] l h C R T C A C W T T W -.W W -.T ^.-.T -.P W >.-.^.>.^.-.-.-.^.e.e.i.X.T.%+%+/+%+$+%+]+&+]+&+%+]+%+%+%+%+%+%+%+X.", | ||
654 | "J L L J L J J F s i { = & . . + @ @ & & & ) & & = = ~ = = = ~ = = = ( : } : 6 p t K M M M M M S G .S I S +.S S S G G G S S S G G r r B v r 6 6 a ( : : { } : ~ { = { - = @ @ @ & @ & $ $ $ + + + . $ + + + $ > > > + ; ] ; ] ; ; . ^ ; # ^ ; ; ; ^ # $ + > > > ] _ l c c C C A A C W y W W T T T T T W W T -.^.-.>.-.T -.^.-.>.e.e.e.^.^.e.i.q.N.%+&+%+%+{+*+@+%+%+]+%+&+]+%+%+%+%+%+X.X.", | ||
655 | "J L L L J J J q F i : { & @ . + + . $ @ % % & & & = ~ . = = = - ~ { = { { 6 6 6 p M M M M M M G S O S S G +.G +.+.G S G M G G G G B r v v a k a a ( : : : : : { { ~ { & & = & $ . $ $ . # + + ; + + . . . + ; + > > % ; ; > > ] ^ ^ > > . ; ] # > > > $ # # # # > ] ] c h C C h A C C y C T y W W T T W T T >.W W W >.T >.-.>.-.>.^.>.^.5.0.5.0.e.i.T.T.%+&+%+%+&+%+@+&+%+%+%+%+%+%+%+%+X.X.x.", | ||
656 | "L L L L L J J F F e i : = & @ @ . . + . . @ @ $ % $ & = = ~ = = . - & & ~ { { 6 6 k B M M M G S G G S S S .G S O G S O S G M G S G O B r i e r k | : ( ( { = = = - - & = @ @ & @ $ $ . . @ # + + + + . $ + ; ; + + ] > > ; ^ ; ^ ^ ^ ; > # # ] ; ; # ; $ . . # > > / h l l l A C C A n y y T C T y W V T >.W >.T -.W -.W ^.^.>.^.-.-.e.^.5.e.0.e.i.i.X.T.%+%+%+&+]+%+%+%+&+%+@+%+%+%+%+%+X.X.x.", | ||
657 | "L L L J L J H H F s e ( - @ . . $ @ $ & & & & & & & { { ) ~ & & = = : 6 6 p B G S S M M S S S G G K G G S +.S S G G G G G v p p a i 6 6 | 6 ( ( - = = = = = - = & $ . . $ $ . + + % ; + + + + $ + + $ > > > ; ^ ; / ^ ^ # # ; ; $ ; > * ; # * # # # # ] d c h c C h C c C V y y y u W V W W W W T T -.W -.-.V >.-.>.>.0.>.-.e.^.0.5.e.u.u.N.X.%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+X.x.x.", | ||
658 | "L L L L J L J H q q e e , - @ @ @ + . & $ # = = = ~ & $ ) ~ ) ~ = = ~ { } k j B G S S G G G G G G G G G G G M G G S G G B v v v i k 6 | < ( < ( = ) = = = @ = & = . = & $ . $ + $ $ + + + $ + + + ; + ; + + + + ; ; ] / > > ^ ^ ^ ] ^ / > > ; # ; * > ; # * * * * ; ^ h h n y g C u C y y V V C V V W V T W -.W T W V -.^.T -.#.>.1.~.e.^.e.e.i.h.e.u.q.X.T.*+%+&+%+%+%+%+%+%+%+%+%+X.X.X.h.x.z.", | ||
659 | "L L L J L J H H H q q 7 4 , - . . . @ . + . & # ~ { = ~ & & & { = } { { { = = { 6 k t M S S O S S M G M .G B B B B M G G G v B r i a k a 6 : } - - - - = = ~ = ~ & @ @ @ @ . . @ $ $ . . . . + + + + + $ + ; ; ; + > > $ ; ; ] > ] * ^ ; ; > ^ ^ ; # ; > ; > + # * * ' * * # / ^ h / g n C h C y C C y y y T y V W W P T W -.^.-.>.>.>.>.^.^.>.>.0.e.e.e.6.0.i.h.i.N.X.%+%+%+%+%+%+%+%+%+%+%+X.@+@+X.x.x.a.", | ||
660 | "L L L L L L J J H H q b 1 ! , - @ @ . @ . & & % [ ~ ~ ~ & & { { ) { ~ ~ = { : k B B G G S O G G G K M M K M G B B B B B v p p e i 6 | 6 ( : { = = = = @ = = @ . # @ . . $ @ $ @ $ + ; > + + + + ; > > ; ; + * # + + ; ^ ] # # ^ ^ > > ] ; > + # + ; * # > * ^ * / # * * ^ g g g h y n C C A V C W C T T T T -.P T T T V ^.W -.^.>.^.^.e.^.^.e.u.e.x.x.h.X.N.X.X.%+%+%+%+%+%+%+X.X.%+X.X.X.x.x.z.'.", | ||
661 | "L L L L L L J J L q H q b ! ! , @ @ @ . @ ) [ c 0 [ ) ~ & ) } } } ( { { = 5 p B M S G S O S G .M K G K B B B B B p v p i 6 6 i : : : : { { = = = & # @ # . @ @ & @ @ @ $ . + + + + + ; + + + + + * ^ ] ^ + $ + ; ; ; ] # ~ ^ $ # ; # ^ ; > # * > * * / * / / ' ' * ' / * / / / n C h C C A C y y C T T T T W T -.W -.-.>.>.>.>.-.^.^.^.e.e.e.0.e.x.x.i.x.u.X.N.%+X.%+X.%+X.%+%+%+%+%+X.@+x.x.z.z.c.", | ||
662 | "L L L L L L L L J J 9 q 9 1 ! , - @ . @ . @ & } 0 0 6 { = = ) } 5 5 : { { ( 6 p B S G G S G G G S M G K B K B B v i i i 6 6 | : ( : { : - ~ = { & & & % ) & . # . # # # . $ @ . + $ + > + ; > ; ; ; > > ] > # $ + + > + ^ ; ^ ~ ; ; # # * ^ ; # / > / * / * * _ _ ' ' ' / * / / h ^ n h C C C y y W y C T W T T T T W W -.W ^.>.>.>.>.^.-.e.>.e.e.i.i.h.u.u.u.X.X.T.X.%+%+%+X.%+X.X.X.X.X.x.x.g.z.D.c.", | ||
663 | "L L L L L J L L L L J J q b ! ! , . @ . - { 6 6 5 } ~ ) { 6 } 5 0 g ~ { 6 p G M G K M G G G G B B B B B B p e v k k k : : : : { - & ) = = & ~ & ) ) % ; $ $ . + $ # . + + % % > + + ; % ; ] ^ > + ; $ $ > ; * ^ # # ^ ; ; ; ^ * * * * > / / / / ' ' 3 _ / / / * / / ^ h c l n y y C C C u C A W V W W -.T T >.W ^.>.>.-.^.>.e.e.e.i.h.i.u.i.x.i.N.N.X.%+X.T.X.%+X.X.%+X.X.X.x.x.'.D.c.C.", | ||
664 | "L L L L L L L L J J 9 J 9 q 9 2 , , @ @ . . @ = : : a : { & ) { 6 j t 0 0 5 ( 6 i B G G G B M B B B B O B B B v i i k 6 6 : { { & { ) ) = & = = & & % ) ) [ ] ; ; + + . . . . @ . + > > > > ] % > + ; > ; $ ~ * ; # + $ > > ; > ^ # * / # ; > > * / / ' ' _ _ _ 3 _ d 3 _ / / / ' / ' / c h h C C C T C T W V C V T T V ^.^.>.T ^.>.>.>.-.e.>.e.6.e.6.h.h.u.h.x.X.X.X.X.%+X.@+X.%+X.X.X.X.x.z.g.D.z.{.y.", | ||
665 | "L L L L L L L L L L J L J 9 9 2 ! - - @ @ - : : { = { = { 5 j t t t 5 5 6 i v B B B B B B v v v v p v k i k 6 6 6 : { { { = & & @ @ & & & = ~ & ) ] [ ) ) ; $ + . . & & . $ # + > % + ] % > > + + > ; ; ; / ; * > > ; $ ; ; ^ # # ; ; ^ * > > / * / ' _ _ _ 3 ] d _ _ 3 3 3 3 _ _ ] / ^ l h C A C C C V C T T T T -.T V >.T ^.>.^.0.^.e.^.e.e.i.h.u.u.x.q.u.i.i.N.N.X.X.X.X.X.%+X.X.X.x.x.U.'.D.&.y.c.", | ||
666 | "L L L L L L L J J J J q q J 9 q 2 , - @ @ . . . @ - - { = = { : a k B t t j k 6 6 i k v B v v v i p i i i i i 6 6 6 : : : { = = = % % $ @ @ @ @ @ & & { [ h ) ) % + + + + . + ; + > + ; ; % > % + % + ; # $ ^ ; ; # > ; ; ^ ; $ / ^ # # * / / * / * * / / _ _ _ 3 3 3 d _ _ _ _ _ 3 3 _ ^ l h h C C C V V y V P R T V ^.V ^.>.-.^.-.-.^.i.^.e.6.i.i.e.u.u.x.u.u.X.X.X.X.%+X.X.X.X.X.X.x.x.g.z.'.D.c.y.c.", | ||
667 | "L L L L L L L L L J L J J q J 9 9 ! , - @ @ @ . - @ - & & ) { i v r K M t j 6 6 6 6 i i i i 6 p 6 i i i | i : : : : : - = = = & & . @ @ @ @ = = ) [ ~ ) . + $ # + ; + ; % ; ; # ; ] ; > + ; $ ; # ~ # * / ; ; > ; ; # # ; # * / * * * / / / / / _ _ _ 3 _ ' 3 ] d 3 3 f _ _ _ _ _ / / l h C C C y V T T ^.T T V T ^.V ^.-.-.e.>.e.e.6.h.h.h.u.u.h.x.X.i.u.u.X.X.X.X.X.X.X.X.x.x.g.z.z.c.D.&.y.7.", | ||
668 | "L L L L L L L J L L J J H J 9 9 9 2 ! , - . . . . @ @ @ @ & = : 6 p B M M K j 5 6 : : i | i i 6 6 5 6 | 6 : | : { : - = - = @ & ; $ % . . . @ . . @ @ % ] ~ & + + ; + + . + ; > > % ; $ ; ; ; ; ; > + . $ ; # ^ ; * / # # > > / * / * # * ' / ' _ _ ' / _ _ _ 3 3 3 _ d 3 3 d 3 d 3 _ l _ _ _ / l l l C C C C R A T T T ^.W V ^.^.^.-.6.6.i.e.6.x.e.e.u.u.i.x.x.N.u.N.X.X.X.X.X.X.X.x.x.U.z.&.c.c.c.c.c.c.", | ||
669 | "J J L L J L L J J L L J L J J J 9 b ! , - @ @ . . @ . @ @ = { a r v B M M t p 6 : : : | 6 6 i 6 6 6 | | : { - - = & = . @ @ $ % . & @ $ @ @ $ . = & $ $ + + + # + ; % ; $ + ; . ; ; > > > + ; # # # ; ; ^ > ; / # ^ # ; / * / / ' ' _ ' _ _ _ _ _ _ 3 ' d 3 _ _ _ _ 3 3 _ 3 _ 3 h d _ 3 / ] l n n C V A T :.T V -.V -.^.^.-.0.-.e.e.h.h.h.x.u.e.i.x.u.N.x.Y.N.u.X.X.X.X.X.x.x.g.z.z.c.B.c.D.y.y.7.", | ||
670 | "J J L L L L L L L J L J 9 J H 9 L 1 b ! , - . @ . @ . @ @ = - < e v G B G t p 5 } - = : : 6 6 | 6 : : - - { = = = & = = # & . . . . . . . . . @ @ @ . @ + . + > ; ; $ . $ # ; ; ; ; ; # ; # # # # # ^ ^ ; ; # # # / # / > / / / _ _ 3 3 _ _ f 3 3 3 3 3 _ l 3 _ d d l _ 3 3 3 d _ d _ ] l l n C C V R T R V V -.V ^.^.>.e.e.e.e.6.6.e.x.x.u.u.i.u.u.u.u.Y.N.X.X.x.x.x.x.x.z.z.z.&.C.c.c.c.c.A.", | ||
671 | "H H J L J L L J L L L L J L L q J q b 1 ! , @ . . . - - < i i B G M p p : } ) - - : : 6 | : : = { = = = & = . @ @ @ @ . $ @ @ @ @ $ . . . # . + + ; ; + ; $ + + ; $ # $ ; ; > ; # . # ; ^ # ^ ~ $ * > / # / / > / ' / / _ 3 3 3 3 3 f f _ 3 f d d 3 d d 3 3 3 _ f l 3 _ _ _ _ _ d _ _ / h l C n C T V V -.V ^.^.^.6.^.>.0.0.i.e.u.e.e.x.x.u.u.u.u.X.u.X.X.X.x.Y.x.g.z.z.c.D.B.c.B.c.C.7.C.", | ||
672 | "J J J J L L L L L L L J J J J H 9 J 9 9 1 , = @ . . . @ - - | i i v p i k } { = - = - { : : ( : = = = & % & . $ . $ + + . + + # . . . # + # + # + $ . . # $ # # > # # ~ > ; * > > > > ^ ; ^ ; # ^ * ' ' _ _ _ _ _ 3 3 d f f 3 f f f d d m d f f 3 f f f 3 _ 3 3 3 3 d 3 3 _ d _ ] l h n V V V V -.-.V ^.^.^.6.e.e.0.x.h.u.u.e.x.x.u.u.u.u.Y.x.X.x.X.x.U.z.z.z.c.c.c.c.D.c.B.B.C.C.", | ||
673 | "L J J L J L J L J L L L L L L L J J q q b | , - @ @ . . @ . - < < i e i i 6 : { ) = = - { - { - = = = = & $ + + $ . $ % . . . + + + + # . + . . + + + + + # # . $ + ; ; ; ~ # * ; / $ $ / > ^ ' ^ # / ' ' / ' _ _ _ 3 d d d d d d m m d f f d m f f f f f 3 f 3 f f f l _ l _ 3 3 d _ _ l / l n n C V V V V ^.^.^.^.6.6.0.6.e.e.6.x.x.e.u.x.u.Y.u.u.x.x.x.U.U.g.z.z.D.B.B.c.B.c.B.c.C.C.C.", | ||
674 | "J J J J L L L L L J L J L 9 L H q H J 9 q 7 , - @ @ . . . . @ - - , | | 6 : : : = & ) % & & - = = = = = & @ & @ . . + . + + + . . + + + > + + + $ ; # # > > + > ~ ^ # ; * # ~ # > ^ > / * * * / / _ _ d _ d d d d d m d m d d f m m d m m m f f f f f f 3 f f f _ f l 3 _ d _ _ / l l n n C V V V V ^.-.e.^.0.0.6.x.6.e.e.x.x.u.u.u.u.u.N.Y.x.Y.g.z.z.z.B.c.B.B.c.C.B.B.B.B.B.B.", | ||
675 | "J J J J L L L L L L L L L J L L L J H H q q e , - . @ @ . @ - - ( < ( 6 } { { & % @ @ & @ & & & & @ @ $ . . $ + + + + . + # + + + # + + ; ; + + # # + + $ ; ; ^ # / / ~ ^ * # ] ' * ; * / / _ _ _ d _ d d d m d m m m m m d d m m f m f m m m f f f f 3 f _ f f 3 f _ 3 _ f 3 3 / / l h n n V W W ^.^.^.0.5.0.0.h.e.x.x.u.0.x.x.x.x.x.x.x.x.U.z.z.z.z.B.B.B.B.B.B.c.B.c.C.C.B.", | ||
676 | "L J L J L L L L L L L L L L L J J H J q q q q | - = @ . @ @ . = - - , - { { ) = = % & = @ & @ @ & . . . . + + + + + + + + + + + . . + + + # + + + # # ; ; + # / ; ; ; # * # ^ # / > ' ' ' ' ' / _ _ _ d d d d d m d m z z m z m d m m m m m m m f o f f f f f f f 3 f f l 3 d 3 3 3 _ _ _ l l n n n V V W -.^.0.0.0.0.e.0.1.u.u.6.h.x.x.x.x.g.g.z.g.B.B.c.B.B.B.c.B.B.B.B.B.c.B.B.", | ||
677 | "L L L L J L L L L L J L L L L L L L J J H q q e | : = @ + @ . @ @ - - { = = = = @ @ . . @ . @ . . + + + + + + + + + + . . . . # + ; + + > . $ $ ; + # # ; > > ; / # ] ] ^ # ^ * > * / / ' / / _ _ 3 l 3 d f m m f o m m w z m z z m m m m m o o o o o o o f f f f f f 3 f f f f f f f d 3 3 _ l n n y y V ^.V ^.e.6.u.0.u.e.x.6.x.x.9.U.g.g.g.x.a.z.B.c.C.B.B.B.B.B.c.B.B.B.L.C.B.", | ||
678 | "L L J L L L L L L L L L L L J L J J H H H q F q v : : - = + . @ = - = { = & & . @ . & + # . + + + + + + + + + + + . + . + + + ; > + + $ . $ # ; > ; ; ] ; ^ # > > / ; / * ^ ' ' ' _ _ _ 3 _ 3 l f d m m m m w o z z z z D z m z o o m m o o o m m m m f o f f o f f f l f f 3 _ l l 3 l _ n n n n V C V V ^.^.6.6.6.6.6.9.9.x.g.9.g.z.z.z.z.a.c.c.B.c.z.B.c.B.B.B.c.B.B.B.B.", | ||
679 | "L L L L J L L L L L L L J L L J L L J J J H H q F s i : = @ + . . $ @ & & @ & = % @ $ @ + + . + + + + + + . + . . # . # # + + + > + + ; # # ; * ; ; ; > > > ] $ / ^ > > ' * * ' ' _ _ _ 3 f f f d d d f m m z z x x w z D D z D D o o f o m m m o o m m o o f o o m m f o o f o f f f f l f l / / n n n y n n V V -.^.6.9.9.9.[.g.g.z.z.'.z.'.z.B.c.C.c.z.c.c.B.c.B.B.B.C.B.R.z.", | ||
680 | "L L L L L L L L L L L L L J L L L L L J J H H H F q e i { = @ . . @ & & & % & & % @ @ . . . . + + + + + + + + . # + + . + # + + $ $ + + + > + + # ; > > > ] ; ^ * ^ ; # # * * / / / ' _ 3 3 _ 3 3 o m m m w f z m m o m x w m z z z z z z x z x m z z m x o m f o m o f o z o o o o o o m f f f f f f f / _ l n n n V n V V !.6.!.(.(.a.a.a.a.B.c.z.z.c.B.c.C.B.B.B.B.B.B.B.B.c.B.R.B.", | ||
681 | "L J L L L L L L L L L L L L L L J L J J J J H H F F F s 6 { & . @ @ & @ $ $ + + + + + + + + + . + . + + + + + + # # ; + $ + > ; ; ; > ; ; ; ^ # # > ^ / ' > / / / ' _ _ _ 3 3 f m d m m w m z z w x z o m x o m z z z D x D D x x m D z m z o x m m x x o o w o o o x o o o o f f f f f f f l l n o l n !.w R !.!.,.,.a.a.a.c.c.c.B.c.B.B.B.c.B.c.B.c.B.B.a.B.z.B.z.z.", | ||
682 | "L L J J L L L L L L L L L L J L J L L J J J J H _.H F I v 6 = @ + + . $ & @ & & $ $ + + + + + + + + + + + + . + . . . . . + + + # # + + ; ; > ; ; ^ ^ * / # / ^ * > + ; / ' ' ' _ _ _ f 3 f f f f o o z z w z x x w o w x x x z z m z z z z D D z m D z z z D m D D x x x o x x w z z o x o w o o f f f l f l f f w o o w U U Y ,./.=.c.c.c.B.B.a.L.B.L.B.R.B.B.B.B.B.B.B.R.B.B.B.B.B.", | ||
683 | "L L L J L L L L 9 L L L J L L J J J J J J J J H H H F I s p { & . . + + @ ; @ & + . + + . . . * + + + + + + + + + + + + + + + + + + > + ; ; $ + ; ; # $ ^ ; $ ^ # # # * * / ' ' ' _ 3 3 d f f f f f o o o o z z o w x x x x z x o x m D m D m D z z z z z D x x x x m z x o x x z z x z x w x o x o x o o f f f f f o w w x U w Y U *.].c.].a.a.c.R.c.B.a.R.L.B.B.C.L.C.L.B.B.R.R.B.B.B.B.", | ||
684 | "L L L L L L L L L L L L L J L J L J L J L J J J j.J _.F F e : % + + $ $ @ + + + + + + + + + + + + + + + + + > + > + > > + ; ; * # ; > > > ^ # ~ ^ # ; * / / * ' / _ _ _ _ 3 f f m m z o o o m x x x x x w x x o x z x x x o z m z z E D D z D z E D E D D D D D x x x D D D D z U x w z z z o x o o f o w z z U Y U X X %.*.].].c.c.c.C.a.B.R.B.c.R.c.R.B.C.L.L.B.R.R.R.B.B.B.B.", | ||
685 | "L L L L L 9 L L L L 9 L L L L L L J L j.L J L L J J H H F s 6 ) % + + # @ & $ . # + + . + + + . + + + + + + + + + + + + + + + + + # + ; > * ; ; ^ ; ; ^ ~ / # # / * # * * / / _ ' _ 3 f f o o o m o z o x x x x o x x x w x o o x o x x x o D x D z z z x o D x D x Q D D D D U U z x E D z D U U x x U z z z w x o z z z z U E X U *.*.&.*.c.c.c.c.c.c.R.].R.R.R.B.R.c.L.c.R.R.R.R.R.R.O.O.R.", | ||
686 | "L L L L L L L L L L L L L J L L L J J L L j.L J J J J _.F q e : @ + + + . . @ . + + + + . . + + + . + + + + + . + ; + . + > ; ; # > ; > > > / # # ^ # # / * * / _ _ _ _ _ 3 3 f f o o o z m z z D o x o x o x x x o o x x x E o o o x o D z z z x x x x D D x E E E D D D D E E X D X z U z E D z z z z z U U D U X X ;.X ;.;.;.c.c.c.c.c.B.B.c.R.c.L.].L.B.L.c.R.L.c.R.R.R.R.R.L.R.", | ||
687 | "L L 9 L L L L L L L J L L J J L L L j.L J J J J J J J H F q e : = ; + + . . . . . + + + + . + + + + + + # . . # + ; + > ; # $ + + > ] > ] ] ^ ^ # ^ * * * / * / / * / _ _ f f 3 f o o o o z o o o o o x o x o o x x x x x o x o x x D x x x z D D x x x x x x E Q Q D X X X X Q X D X Q Q D U Q D X D X X D D D U X X X X %.;.;.7.;.c.c.c.c.c.].R.a.R.a.L.R.c.L.R.c.R.R.R.a.R.R.R.L.R.O.", | ||
688 | "L L L L J L L L 9 L J L J L J L L J L J L j.L J j.J J H H q 1 e = % + . + + + . . . # + + + + + + + + . . + + + + + + + + + + + ; ; $ # ^ # ] > > > # ^ * * > * * / / * _ _ f _ _ _ f f f o m o o o o o x o x o o x x x x o x x x x E x x o o o x z z D x x x x x x Q Q E Q D X X Z z Q X Q X E X X D U U E X D X U D X X X X ;.;.;.%.;.c.c.c.c.c.c.C.c.R.c.L.a.L.R.R.a.L.R.c.R.R.R.R.R.R.R.R.R.", | ||
689 | "L J L L L L L L L L J L L J L J L j.L J L L J L J H J H L q b | - @ + + . + . . . + + + + . + + + + . + + + + + + + * # + > ; ; > > > ~ # # ^ ; ] ^ ^ ^ # * / * * / * _ _ _ _ f f f f f f o f o o o o x o x x x o o o x x x x x x D x x x x x x x D D x D x x x x x x x D D E X D z Z X X X U X X Q Z X X Z X X X X X X E %.;.%.%.%.;.c.%.c.7.c.c.B.c.c.a.R.L.a.L.].L.R.R.R.R.a.R.R.L.R.R.R.R.R.R."}; | ||
diff --git a/rbutil/wx_pch.h b/rbutil/wx_pch.h deleted file mode 100644 index c4da9a20ef..0000000000 --- a/rbutil/wx_pch.h +++ /dev/null | |||
@@ -1,43 +0,0 @@ | |||
1 | /*************************************************************************** | ||
2 | * __________ __ ___. | ||
3 | * Open \______ \ ____ ____ | | _\_ |__ _______ ___ | ||
4 | * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / | ||
5 | * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | ||
6 | * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | ||
7 | * \/ \/ \/ \/ \/ | ||
8 | * Module: rbutil | ||
9 | * File: wx_pch.h | ||
10 | * | ||
11 | * Copyright (C) 2005 wxWidgets team | ||
12 | * | ||
13 | * All files in this archive are subject to the GNU General Public License. | ||
14 | * See the file COPYING in the source tree root for full license agreement. | ||
15 | * | ||
16 | * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY | ||
17 | * KIND, either express or implied. | ||
18 | * | ||
19 | ****************************************************************************/ | ||
20 | |||
21 | #ifndef WX_PCH_H_INCLUDED | ||
22 | #define WX_PCH_H_INCLUDED | ||
23 | |||
24 | #if ( defined(USE_PCH) && !defined(WX_PRECOMP) ) | ||
25 | #define WX_PRECOMP | ||
26 | #endif // USE_PCH | ||
27 | |||
28 | // basic wxWidgets headers | ||
29 | #include <wx/wxprec.h> | ||
30 | |||
31 | #ifdef __BORLANDC__ | ||
32 | #pragma hdrstop | ||
33 | #endif | ||
34 | |||
35 | #ifndef WX_PRECOMP | ||
36 | #include <wx/wx.h> | ||
37 | #endif | ||
38 | |||
39 | #ifdef USE_PCH | ||
40 | // put here all your rarely-changing header files | ||
41 | #endif // USE_PCH | ||
42 | |||
43 | #endif // WX_PCH_H_INCLUDED | ||