Mercurial > hg > Game > Cerium
changeset 90:312b535f121e
Initial revision
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/TaskManager/Test/simple_render/test/LoadTexture/Makefile Wed Feb 27 21:17:47 2008 +0900 @@ -0,0 +1,41 @@ +TARGET = test_nogl + +SRCS = $(wildcard *.cpp) +OBJS = $(SRCS:.cpp=.o) + +TASK_OBJS = $(TASK_SRCS:.cpp=.o) + +CC = g++ +CFLAGS = -O9 -g -Wall -DDEBUG +INCLUDE = -I../../../../include/TaskManager -I. + +EXTRA_CFLAGS = `sdl-config --cflags` `xml2-config --cflags`\ + +EXTRA_LIBS = -lCellManager -lspe2 -lpthread +#EXTRA_LIBS = -lFifoManager + +LIBS = `sdl-config --libs` -lSDL_image -lGL \ + `xml2-config --libs` -L../../.. $(EXTRA_LIBS) + +.SUFFIXES: .cpp .o + +.cpp.o: + $(CC) $(CFLAGS) $(EXTRA_CFLAGS) $(INCLUDE) -c $< -o $@ + +all: $(TARGET) + +$(TARGET): $(OBJS) + $(CC) -o $@ $(OBJS) $(TASK_OBJS) $(LIBS) + +link: + $(CC) -o $(TARGET) $(OBJS) $(TASK_OBJS) $(LIBS) + +run: $(TARGET) + sudo ./$(TARGET) -width 576 -height 384 -bpp 32 + +debug: $(TARGET) + sudo ppu-gdb ./$(TARGET) + +clean: + rm -f $(TARGET) $(OBJS) $(TASK_OBJS) + rm -f *~ \#*
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/TaskManager/Test/simple_render/test/LoadTexture/base64_de.cpp Wed Feb 27 21:17:47 2008 +0900 @@ -0,0 +1,92 @@ +#include <stdio.h> +//#include <iostream> +#include <fstream> +using namespace std; + +class tagTT +{ +public: + unsigned char buf; + char *cont; + int nlen; +}; + + +unsigned char CtoNum(int c) +{ + if (c >= 'A' && c <= 'Z') return c-'A'; + if (c >= 'a' && c <= 'z') return (c - 'a')+26; + if (c >= '0' && c <= '9') return (c - '0')+52; + if (c == '+') return 62; + if (c == '/') return 63; + return 0; +} + + +int GetNumB64(tagTT &pWork) +{ + char wr; + unsigned char w; + unsigned char r; + + wr = *pWork.cont; + pWork.cont++; + if (wr=='\0' || wr=='=') + return -1; + + while(wr=='\n' || wr=='\t') + { + wr = *pWork.cont; + pWork.cont++; + } + + w = CtoNum(wr); + if (pWork.nlen == 0) + { + unsigned char w2; + + wr = *pWork.cont; + pWork.cont++; + if (wr!='\0' && wr!='=') + w2 = CtoNum(wr); + else + w2 = 0; + + pWork.buf = w << 2; + w = w2; + pWork.nlen = 6; + } + + pWork.nlen -= 2; + + r = pWork.buf | (w >> pWork.nlen); + + pWork.buf = (w << (8 - pWork.nlen)); + return r; +} + + +//int decode(char *cont, char *file_name) +int decode(char *cont, FILE *outfile) +{ + int rw; + tagTT work; + + //ofstream outfile(file_name); + + work.buf = 0; + work.nlen = 0; + work.cont = cont; + + rw = GetNumB64(work); + while ( rw != -1 ) + { + //outfile << (char)rw; + putc(rw, outfile); + rw = GetNumB64(work); + } + + //outfile.close(); + + return 0; +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/TaskManager/Test/simple_render/test/LoadTexture/cube.xml Wed Feb 27 21:17:47 2008 +0900 @@ -0,0 +1,987 @@ +<?xml version="1.0"?> +<OBJECT-3D> + <surface name="Cube" size="36" prim="Triangle" parent="NULL"> + <coordinate> + 33.894611 -26.947258 -0.020792 + -10.057590 -35.861061 22.086847 + -33.894611 -19.425222 -18.676613 + -33.894611 -19.425222 -18.676613 + 10.057603 -10.511419 -40.784245 + 33.894611 -26.947258 -0.020792 + 33.894611 19.425220 18.676622 + 10.057590 35.861061 -22.086845 + -33.894608 26.947262 0.020781 + -33.894608 26.947262 0.020781 + -10.057608 10.511419 40.784245 + 33.894611 19.425220 18.676622 + 33.894611 -26.947258 -0.020792 + 33.894611 19.425220 18.676622 + -10.057608 10.511419 40.784245 + -10.057608 10.511419 40.784245 + -10.057590 -35.861061 22.086847 + 33.894611 -26.947258 -0.020792 + -10.057590 -35.861061 22.086847 + -10.057608 10.511419 40.784245 + -33.894608 26.947262 0.020781 + -33.894608 26.947262 0.020781 + -33.894611 -19.425222 -18.676613 + -10.057590 -35.861061 22.086847 + -33.894611 -19.425222 -18.676613 + -33.894608 26.947262 0.020781 + 10.057590 35.861061 -22.086845 + 10.057590 35.861061 -22.086845 + 10.057603 -10.511419 -40.784245 + -33.894611 -19.425222 -18.676613 + 33.894611 19.425220 18.676622 + 33.894611 -26.947258 -0.020792 + 10.057603 -10.511419 -40.784245 + 10.057603 -10.511419 -40.784245 + 10.057590 35.861061 -22.086845 + 33.894611 19.425220 18.676622 + </coordinate> + <normal> + -0.000000 -0.927450 -0.373948 + -0.000000 -0.927450 -0.373948 + -0.000000 -0.927450 -0.373948 + -0.000000 -0.927450 -0.373948 + -0.000000 -0.927450 -0.373948 + -0.000000 -0.927450 -0.373948 + 0.000000 0.927450 0.373948 + 0.000000 0.927450 0.373948 + 0.000000 0.927450 0.373948 + 0.000000 0.927450 0.373948 + 0.000000 0.927450 0.373948 + 0.000000 0.927450 0.373948 + 0.476740 -0.328717 0.815269 + 0.476740 -0.328717 0.815269 + 0.476740 -0.328717 0.815269 + 0.476740 -0.328717 0.815269 + 0.476740 -0.328717 0.815269 + 0.476740 -0.328717 0.815269 + -0.879044 -0.178276 0.442153 + -0.879044 -0.178276 0.442153 + -0.879044 -0.178276 0.442153 + -0.879044 -0.178276 0.442153 + -0.879044 -0.178276 0.442153 + -0.879044 -0.178276 0.442153 + -0.476740 0.328717 -0.815269 + -0.476740 0.328717 -0.815269 + -0.476740 0.328717 -0.815269 + -0.476740 0.328717 -0.815269 + -0.476740 0.328717 -0.815269 + -0.476740 0.328717 -0.815269 + 0.879044 0.178276 -0.442153 + 0.879044 0.178276 -0.442153 + 0.879044 0.178276 -0.442153 + 0.879044 0.178276 -0.442153 + 0.879044 0.178276 -0.442153 + 0.879044 0.178276 -0.442153 + </normal> + <model> + 0.000000 0.000000 0.000000 + </model> + <texture> + 0.000000 1.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 0.000000 1.000000 + </texture> + <image name="icon.bmp"> + Qk0cwAAAAAAAABoAAAAMAAAAgACAAAEAGAAAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA + AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA + kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAA + nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0Ck + W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmSc + fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA + AJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA + kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA + nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck + W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmSc + fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYA + AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA + AJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA + kpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA + nQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck + W0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc + fmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYA + AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIA + kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAA + nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCk + W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck + W0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc + fmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA + AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA + kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAA + nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0Ck + W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmSc + fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA + AJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA + kpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA + nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck + W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmSc + fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYA + AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA + kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA + kpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA + nQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck + W0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc + fmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA + AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIA + kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAA + nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0Ck + W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck + W0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc + fmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA + AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA + kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA + nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0Ck + W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmSc + fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA + AJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA + kpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA + nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck + W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmSc + fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYA + AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIA + kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA + kpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA + nQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck + W0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc + fmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA + AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIA + kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAA + nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0Ck + W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Cc + fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc + fmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA + AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA + kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA + nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck + W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmSc + fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA + AJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA + kpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA + nQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck + W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc + fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYA + AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIA + kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA + nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA + nQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck + W0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc + fmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA + AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIA + kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAA + nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0Ck + W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmSc + fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc + fmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA + AJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA + kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA + nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck + W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmSc + fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYA + AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA + AJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA + kpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA + nQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck + W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc + fmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYA + AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIA + kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAA + nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA + nQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck + W0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc + fmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA + AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA + kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAA + nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0Ck + W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmSc + fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA + AJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA + kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA + nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck + W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmSc + fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYA + AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA + AJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA + kpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA + nQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck + W0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc + fmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYA + AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIA + kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAA + nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCk + W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck + W0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc + fmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA + AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA + kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAA + nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0Ck + W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmSc + fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA + AJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA + kpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA + nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck + W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmSc + fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYA + AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA + kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA + kpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA + nQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck + W0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc + fmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA + AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIA + kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAA + nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0Ck + W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck + W0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc + fmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA + AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA + kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA + nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0Ck + W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmSc + fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA + AJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA + kpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA + nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck + W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmSc + fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYA + AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIA + kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA + kpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA + nQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck + W0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc + fmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA + AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIA + kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAA + nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0Ck + W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Cc + fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc + fmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA + AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA + kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA + nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck + W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmSc + fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA + AJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA + kpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA + nQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck + W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc + fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYA + AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIA + kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA + nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA + nQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck + W0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc + fmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA + AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIA + kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAA + nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0Ck + W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmSc + fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc + fmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA + AJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA + kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA + nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck + W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmSc + fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYA + AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA + AJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA + kpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA + nQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck + W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc + fmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYA + AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIA + kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAA + nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA + nQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck + W0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc + fmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA + AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA + kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAA + nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0Ck + W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmSc + fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA + AJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA + kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA + nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck + W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmSc + fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYA + AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA + AJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA + kpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA + nQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck + W0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc + fmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYA + AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIA + kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAA + nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCk + W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck + W0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc + fmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA + AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA + kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAA + nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0Ck + W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmSc + fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA + AJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA + kpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA + nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck + W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmSc + fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYA + AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA + kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA + kpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA + nQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck + W0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc + fmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA + AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIA + kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAA + nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0Ck + W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck + W0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc + fmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA + AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA + kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA + nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0Ck + W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmSc + fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA + AJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA + kpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA + nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck + W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmSc + fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYA + AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIA + kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA + kpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA + nQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck + W0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc + fmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA + AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIA + kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAA + nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0Ck + W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Cc + fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc + fmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA + AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA + kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA + nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck + W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmSc + fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA + AJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA + kpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA + nQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck + W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc + fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYA + AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIA + kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA + nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA + nQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck + W0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc + fmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA + AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIA + kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAA + nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0Ck + W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmSc + fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc + fmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA + AJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA + kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA + nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck + W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmSc + fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYA + AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA + AJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA + kpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA + nQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck + W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc + fmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYA + AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIA + kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAA + nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA + nQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck + W0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc + fmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA + AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA + kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAA + nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0Ck + W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmSc + fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA + AJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA + kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA + nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck + W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmSc + fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYA + AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA + AJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA + kpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA + nQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck + W0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc + fmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYA + AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIA + kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAA + nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCk + W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck + W0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc + fmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA + AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA + kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAA + nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0Ck + W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmSc + fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA + AJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA + kpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA + nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck + W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmSc + fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYA + AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA + kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA + kpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA + nQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck + W0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc + fmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA + AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIA + kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAA + nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0Ck + W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck + W0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc + fmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA + AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA + kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA + nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0Ck + W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmSc + fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA + AJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA + kpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA + nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck + W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmSc + fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYA + AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIA + kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA + kpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA + nQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck + W0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc + fmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA + AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIA + kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAA + nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0Ck + W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Cc + fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc + fmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA + AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA + kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA + nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck + W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmSc + fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA + AJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA + kpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA + nQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck + W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc + fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYA + AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIA + kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA + nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA + nQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck + W0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc + fmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA + AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIA + kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAA + nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0Ck + W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmSc + fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc + fmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA + AJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA + kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA + nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck + W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmSc + fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYA + AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA + AJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA + kpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA + nQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck + W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc + fmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYA + AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIA + kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAA + nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA + nQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck + W0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc + fmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA + AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA + kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAA + nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0Ck + W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmSc + fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA + AJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA + kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA + nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck + W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmSc + fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYA + AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA + AJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA + kpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA + nQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck + W0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc + fmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYA + AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIA + kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAA + nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCk + W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck + W0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc + fmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA + AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA + kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAA + nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0Ck + W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmSc + fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA + AJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA + kpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA + nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck + W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmSc + fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYA + AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA + kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA + kpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA + nQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck + W0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc + fmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA + AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIA + kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAA + nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0Ck + W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck + W0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc + fmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA + AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA + kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA + nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0Ck + W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmSc + fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA + AJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA + kpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA + nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck + W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmSc + fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYA + AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIA + kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA + kpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA + nQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck + W0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc + fmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA + AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIA + kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAA + nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0Ck + W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Cc + fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc + fmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA + AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA + kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA + nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck + W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmSc + fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA + AJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA + kpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA + nQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck + W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc + fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYA + AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIA + kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA + nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA + nQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck + W0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc + fmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA + AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIA + kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAA + nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0Ck + W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmSc + fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc + fmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA + AJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA + kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA + nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck + W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmSc + fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYA + AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA + AJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA + kpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA + nQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck + W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc + fmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYA + AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIA + kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAA + nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA + nQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck + W0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc + fmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA + AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA + kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAA + nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0Ck + W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmSc + fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA + AJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA + kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA + nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck + W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmSc + fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYA + AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA + AJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA + kpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA + nQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck + W0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc + fmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYA + AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIA + kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAA + nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCk + W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck + W0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc + fmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA + AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA + kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAA + nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0Ck + W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmSc + fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA + AJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA + kpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA + nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck + W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmSc + fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYA + AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA + kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA + kpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA + nQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck + W0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc + fmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA + AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIA + kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAA + nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0Ck + W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck + W0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc + fmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA + AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA + kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA + nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0Ck + W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmSc + fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA + AJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA + kpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA + nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck + W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmSc + fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYA + AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIA + kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA + kpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA + nQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck + W0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc + fmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA + AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIA + kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAA + nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0Ck + W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Cc + fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc + fmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA + AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA + kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA + nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck + W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmSc + fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA + AJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA + kpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA + nQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck + W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc + fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYA + AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIA + kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA + nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA + nQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck + W0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc + fmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA + AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIA + kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAA + nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0Ck + W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmSc + fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc + fmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA + AJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA + kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA + nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck + W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmSc + fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYA + AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA + AJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA + kpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA + nQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck + W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc + fmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYA + AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIA + kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAA + nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA + nQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck + W0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc + fmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA + AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA + kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAA + nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0Ck + W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmSc + fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA + AJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA + kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA + nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck + W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmSc + fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYA + AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA + AJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA + kpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA + nQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck + W0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc + fmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYA + AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIA + kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAA + nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCk + W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck + W0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc + fmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA + AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA + kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAA + nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0Ck + W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmSc + fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA + AJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA + kpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA + nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck + W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmSc + fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYA + AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA + kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA + kpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA + nQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck + W0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc + fmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA + AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIA + kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAA + nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0Ck + W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck + W0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc + fmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA + AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA + kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA + nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0Ck + W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmSc + fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA + AJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA + kpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA + nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck + W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmSc + fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYA + AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIA + kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA + kpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA + nQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck + W0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc + fmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA + AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIA + kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAA + nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0Ck + W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Cc + fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc + fmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA + AJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA + kpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA + nQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck + W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmSc + fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYAAJYA + AJYAAJYAAJYAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIAkpIA + kpIAkpIAkpIAkpIAkpIAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAAnQAA + nQAAnQAAnQAAnQAAnQAAnQAAnQCkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0Ck + W0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CkW0CcfmScfmScfmScfmScfmScfmScfmScfmScfmScfmSc + fmScfmScfmScfmScfmScfmScfmScfmScfmScfmScfmRHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZH + RkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkZHRkYAAA== + </image> + </surface> +</OBJECT-3D> \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/TaskManager/Test/simple_render/test/LoadTexture/fb.cpp Wed Feb 27 21:17:47 2008 +0900 @@ -0,0 +1,87 @@ +#include <iostream> +#include <SDL.h> +#include <SDL_opengl.h> +#include <math.h> +#include <unistd.h> +#include <linux/fb.h> +#include <sys/mman.h> +#include <sys/ioctl.h> +#include <sys/types.h> +#include <sys/stat.h> +#include <fcntl.h> +#include "viewer.h" +using namespace std; + +#define DEVICE_NAME "/dev/fb0" +#define DIV_BYTE 8 + +int get_fbdev_addr(void); +void send_current_error_msg(char *c); +void send_current_information(char *c); + +char *fbptr; +long int screensize; +int fd_framebuffer; +void cleanup_fbdev() { + munmap(fbptr, screensize); + close(fd_framebuffer); +} + +void send_current_error_msg(char *ptr) { + fprintf( stderr, "%s\n", ptr); +} + +void send_current_information(char *ptr) { + fprintf( stdout, "%s\n", ptr); +} + +int get_fbdev_addr(void) { + struct fb_var_screeninfo vinfo; + struct fb_fix_screeninfo finfo; + char tmp[DIV_BYTE*10]; + + int xres,yres, vbpp, line_len; + + /* open the file only for read */ + fd_framebuffer = open( DEVICE_NAME, O_RDWR); + if( !fd_framebuffer ) { + send_current_error_msg("Framebuffer device open error\n"); + exit(1); + } + send_current_information("The framebuffer device was opened\n"); + + /* Get the fixed screen info */ + if( ioctl( fd_framebuffer, FBIOGET_FSCREENINFO, &finfo) ) { + send_current_error_msg("Fixed information not gotton !"); + exit(2); + } + + /* Get the flucture screen info */ + if( ioctl( fd_framebuffer, FBIOGET_VSCREENINFO, &vinfo) ) { + send_current_error_msg("Variable information not gotton !"); + exit(3); + } + + xres = vinfo.xres; + yres = vinfo.yres; + vbpp = vinfo.bits_per_pixel; + line_len = finfo.line_length; + sprintf( tmp, "%d(pixel)x%d(line), %dbpp(bits per pixel)", xres, yres, vbpp); + send_current_information( tmp ); + + /* calcurate screen size per byte */ + screensize = xres * yres * vbpp / DIV_BYTE; + + /* mapping device to memory */ + fbptr = (char *)mmap(0,screensize, PROT_READ | PROT_WRITE, MAP_SHARED, fd_framebuffer, 0); + if( atoi(fbptr) == -1) { + send_current_error_msg("Don't get framebuffer device to memory !"); + exit(4); + } + send_current_information("The framebuffer device was mapped !"); + + printf("fbptr:%x\n",atoi(fbptr)); + //munmap(fbptr, screensize); + //close(fd_framebuffer); + return atoi(fbptr); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/TaskManager/Test/simple_render/test/LoadTexture/main.cpp Wed Feb 27 21:17:47 2008 +0900 @@ -0,0 +1,107 @@ +#include <iostream> +#include "viewer.h" +#include "TaskManager.h" +#include "error.h" + +int init(void*, void*); +int finish(void*, void*); + + +Viewer *screen; +TaskManager *manager; + +struct init_arg { + int bpp; + int w; + int h; +}; + +struct init_arg *initArg; + +int init(void *r, void *w) { + int fd_sdl_init,fd_run; + HTaskPtr task_sdl_init, task_run; + + __debug("[%s]\n",__FUNCTION__); + + screen = new Viewer(initArg->bpp, initArg->w, initArg->h); + + fd_sdl_init = manager->open("sdl_init"); + fd_run = manager->open("run"); + + task_sdl_init = manager->create_task(fd_sdl_init, 0, 0, 0, NULL); + task_run = manager->create_task(fd_run, 0, 0, 0, NULL); + + task_run->set_depend(task_sdl_init); + + task_sdl_init->spawn(); + task_run->spawn(); + + free(initArg); + return 0; +} + +int sdl_init(void *r , void *w) { + + __debug("[%s]\n", __FUNCTION__); + screen->sdl_init(); + return 0; +} + +int run(void *r, void *w) { + + __debug("[%s]\n", __FUNCTION__); + screen->run_init(); + return 0; +} + +int finish(void *w, void *r) +{ + __debug("[%s]\n", __FUNCTION__); + delete screen; + delete manager; + return 0; +} + + +int main(int argc, char *argv[]) { + manager = new TaskManager(1); + manager->init(); + + //task_initialize(); + + manager->set_symbol("init", (void*)init); + manager->set_symbol("sdl_init", (void*)sdl_init); + manager->set_symbol("run", (void*)run); + manager->set_symbol("finish", (void*)finish); + + int bpp = 0; + int width = 640; + int height = 480; + + for(int i = 1; argv[i]; ++i) { + if (strcmp(argv[i], "-bpp") == 0) { + bpp = atoi(argv[++i]); + } + if (strcmp(argv[i], "-width") == 0) { + width = atoi(argv[++i]); + } + if (strcmp(argv[i], "-height") == 0) { + height = atoi(argv[++i]); + } + } + HTaskPtr task_init; + int fd_init; + initArg = new struct init_arg; + initArg->bpp = bpp; + initArg->w = width; + initArg->h = height; + + fd_init = manager->open("init"); + task_init = manager->create_task(fd_init, 0, 0, 0, NULL); + task_init->spawn(); + manager->run(); + finish(NULL, NULL); + return 0; +} +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/TaskManager/Test/simple_render/test/LoadTexture/polygon.cpp Wed Feb 27 21:17:47 2008 +0900 @@ -0,0 +1,117 @@ +#include <iostream> +#include <SDL_image.h> +#include <libxml/parser.h> +#include "polygon.h" +#include "TaskManager.h" +using namespace std; + + +#define redMask 0x00ff0000 +#define greenMask 0x0000ff00 +#define blueMask 0x000000ff +#define alphaMask 0 +#define width 128 +#define height 128 +#define bpp 32 + + +extern int get_fbdev_addr(); + +extern int decode(char *cont, FILE *outfile); + +#define LOAD_TEXTURE_SIZE 128*128*3/4 + +void Polygon::set_data(char *file_name) +{ + xmlDocPtr doc; + xmlNodePtr cur; + Polygon *tmp; + + doc = xmlParseFile(file_name); + + cur = xmlDocGetRootElement(doc); + + xmlStrcmp(cur->name,(xmlChar*)"OBJECT-3D"); + + tmp = this; + + for (cur=cur->children; cur; cur=cur->next) { + if (!xmlStrcmp(cur->name,(xmlChar*)"surface")) { + tmp->create_data(cur); + if(cur->next->next) { + tmp->add_next(); + tmp = tmp->next; + } + } + } + xmlFreeDoc(doc); +} + +void Polygon::create_data(xmlNodePtr cur) +{ + size = atoi((char *)xmlGetProp(cur,(xmlChar *)"size")); + name = (char *)xmlGetProp(cur,(xmlChar *)"name"); + parent_name = (char *)xmlGetProp(cur,(xmlChar *)"parent"); + next = NULL; + + data = new float[size*3*3]; + + get_data(cur->children); +} + +void Polygon::add_next() +{ + Polygon *p; + p = new Polygon; + + next = p; +} + + +void Polygon::get_data(xmlNodePtr cur) +{ + char *cont; + HTaskPtr task_load_texture = NULL; + unsigned int fbdev_addr; + for(;cur;cur=cur->next) { + if(!xmlStrcmp(cur->name,(xmlChar*)"image")) { + char image_name[20] = "/tmp/image_XXXXXX"; + int fd = mkstemp(image_name); + FILE *outfile = fdopen(fd, "wb"); + if(NULL == outfile) { + cout << "error open file\n"; + } + cont = (char *)xmlNodeGetContent(cur); + decode(cont, outfile); + fclose(outfile); + + texture_image = IMG_Load(image_name); + //texture_image = SDL_LoadBMP(image_name); + if(unlink(image_name)) { + cout << "unlink error\n"; + } + + } + } + + //void *_pixels = new Uint32[width*height*32/8]; + void *_pixels; + SDL_Surface *screen; + posix_memalign((void**)&_pixels, 16, 3*128*128); + + memcpy(_pixels, texture_image->pixels, 3*128*128); + + // screen を返すけど、いつか free して + //screen = SDL_CreateRGBSurfaceFrom(_pixels, width, height, 32, + //width*4, redMask, greenMask, + // blueMask,alphaMask); + + fbdev_addr = get_fbdev_addr(); + task_load_texture + = manager->create_task(0,LOAD_TEXTURE_SIZE, + //(unsigned int)texture_image->pixels + (unsigned int)_pixels ,fbdev_addr,NULL); + task_load_texture->set_cpu(CPU_SPE); + task_load_texture->spawn(); +} +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/TaskManager/Test/simple_render/test/LoadTexture/polygon.h Wed Feb 27 21:17:47 2008 +0900 @@ -0,0 +1,28 @@ +#include <libxml/parser.h> +#ifndef INCLUDED_POLYGON +#define INCLUDED_POLYGON + +#ifndef INCLUDED_VIEWER +#include "viewer.h" +#endif + +#include "TaskManager.h" + +extern TaskManager *manager; + +class Polygon { +public: + int size; + char *name; + char *parent_name; + float *data; + SDL_Surface *texture_image; + Viewer *viewer; + Polygon *next; + void set_data(char*); + void create_data(xmlNodePtr); + void add_next(); + void get_data(xmlNodePtr); +}; + +#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/TaskManager/Test/simple_render/test/LoadTexture/spe/Load_Texture.cpp Wed Feb 27 21:17:47 2008 +0900 @@ -0,0 +1,84 @@ +#include <stdio.h> +#include <spu_intrinsics.h> +#include "Load_Texture.h" +#include "error.h" +#include "SchedTask.h" +#include "SchedTaskList.h" +#include "SchedNop2Ready.h" +#include "DmaManager.h" +#include "TaskManager.h" + +#define height 128 +#define width 128 + +void *texture; + +int +LoadTexture::run(void *rbuf , void *wbuf) +{ + //int rgb; + for(int y = 0; y < height; y++) { + for(int x = 0; x < width; x++) { + //linebuf[x] = get_rgb(x,y); + } + } + printf("hoge\n"); +} + +// byteperpixel = 3 width = 128 dma_height= 32 +#define LOAD_SIZE 3*128*32 + +void +LoadTexture::read(void) +{ + __debug("[SchedTask:%s]\n", __FUNCTION__); + connector->dma_load(readbuf,task->in_addr,LOAD_SIZE,DMA_READ); + connector->dma_load((void*)((int)readbuf+LOAD_SIZE),task->in_addr+LOAD_SIZE,LOAD_SIZE,DMA_READ); + connector->dma_load((void*)((int)readbuf+LOAD_SIZE*2),task->in_addr+LOAD_SIZE*2,LOAD_SIZE,DMA_READ); + connector->dma_load((void*)((int)readbuf+LOAD_SIZE*3),task->in_addr+LOAD_SIZE*3,LOAD_SIZE,DMA_READ); + +} + +void +LoadTexture::write(void) +{ + __debug("[SchedTask:%s]\n",__FUNCTION__); + connector->dma_wait(DMA_WRITE); +} + +/* +Uint32 Polygon::get_rgb(int tx, int ty) +{ +SDL_PixelFormat *fmt; +Uint8 red, green, blue; + +fmt = texture_image->format; + +if (tx<0) tx = 0; +if (texture_image->w-1< tx) tx = texture_image->w-1 ; +if (ty<0) ty = 0; +if (texture_image->h-1< ty) ty = texture_image->h-1 ; + + + +char *p = get_pixel(tx,ty,texture_image); +blue = (Uint8) p[0]; +green = (Uint8) p[1]; +red = (Uint8) p[2]; + + +SDL_PixelFormat *pf; +pf = viewer->screen->format; + +//cout << SDL_MapRGB(pf, red, green, blue) << endl; +return SDL_MapRGB(pf, red, green, blue); +} +*/ + + + +SchedTask * +createTask_LoadTexture(TaskListPtr _taskList, TaskPtr _task, + void *rbuf, void *wbuf, DmaManager *dma) { + return new LoadTexture(_taskList, _task, rbuf, wbuf, dma); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/TaskManager/Test/simple_render/test/LoadTexture/spe/Load_Texture.h Wed Feb 27 21:17:47 2008 +0900 @@ -0,0 +1,21 @@ +#ifndef INCLUDED_TASK_LOAD_TEXTURE +#define INCLUDED_TASK_LOAD_TEXTURE + + +#ifndef INCLUDED_SCHED_TASK +#include "SchedTask.h" +#endif + +#define LOAD_TEXTURE 2 + +class LoadTexture: public SchedTask { +public: + LoadTexture(TaskListPtr _tlist, TaskPtr _task, + void* _rbuf, void* _wbuf, DmaManager* _con) + :SchedTask(_tlist, _task, _rbuf, _wbuf, _con) {} + int run(void *readbuf, void *writebuf); + void read(void); + void write(void); +}; + +#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/TaskManager/Test/simple_render/test/LoadTexture/spe/Makefile Wed Feb 27 21:17:47 2008 +0900 @@ -0,0 +1,23 @@ +TARGET = ../spe-main + +SRCS = $(wildcard *.cpp) +OBJS = $(SRCS:.cpp=.o) + +CC = spu-g++ +CFLAGS = -O9 #-g -Wall# -DDEBUG +INCLUDE = -I../../../../../include/TaskManager -I. -I.. +LIBS = -L../../../.. -lspemanager# -lm + +.SUFFIXES: .cpp .o + +.cpp.o: + $(CC) $(CFLAGS) $(INCLUDE) -c $< -o $@ + +all: $(TARGET) + +$(TARGET): $(OBJS) + $(CC) -o $@ $(OBJS) $(TASK_OBJS) $(LIBS) + +clean: + rm -f $(TARGET) $(OBJS) + rm -f *~ \#*
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/TaskManager/Test/simple_render/test/LoadTexture/spe/spe-main.cpp Wed Feb 27 21:17:47 2008 +0900 @@ -0,0 +1,16 @@ +#include "SchedTask.h" + +extern SchedTask* +createTask_LoadTexture(TaskListPtr _taskList, TaskPtr _task, + void *rbuf, void *wbuf, DmaManager *dma); + +SchedTask::TaskObject task_list[16] = {createTask_LoadTexture, 0, 0, 0}; + +static void set_task(int cmd, SchedTask::TaskObject task) { + task_list[cmd] = task; +} + +void task_init(void) { + set_task(0, createTask_LoadTexture); +} +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/TaskManager/Test/simple_render/test/LoadTexture/viewer.cpp Wed Feb 27 21:17:47 2008 +0900 @@ -0,0 +1,47 @@ +#include <iostream> +#include <SDL.h> +#include <math.h> +#include <unistd.h> +#include "viewer.h" +#include "polygon.h" +using namespace std; + +Polygon *polygon; + +#define redMask 0x00ff0000 +#define greenMask 0x0000ff00 +#define blueMask 0x000000ff +#define alphaMask 0 + +Viewer::Viewer(int b, int w, int h) { + bpp = b; + width = w; + height = h; +} + +void Viewer::sdl_init() { + if( SDL_Init( SDL_INIT_VIDEO ) < 0) { + fprintf(stderr,"Couldn't initialize SDL: %s\n", SDL_GetError()); + exit(1); + } +#if 0 + screen = SDL_SetVideoMode( width, height, bpp, SDL_HWSURFACE); + if(screen == NULL) { + fprintf(stderr, "Couldn't set GL mode: %s\n", SDL_GetError()); + SDL_Quit(); + exit(1); + } +#else + void *_pixels = new Uint32[width*height*32/8]; + screen = SDL_CreateRGBSurfaceFrom(_pixels, width, height, 32, + width*4, redMask, greenMask, + blueMask,alphaMask); +#endif +} + +void Viewer::run_init() { + polygon = new Polygon; + polygon->set_data("cube.xml"); + polygon->viewer = this; +} +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/TaskManager/Test/simple_render/test/LoadTexture/viewer.h Wed Feb 27 21:17:47 2008 +0900 @@ -0,0 +1,23 @@ +#include <SDL.h> + +#ifndef INCLUDED_VIEWER +#define INCLUDED_VIEWER + +#include "TaskManager.h" + +class Viewer { +public: + + int width; + int height; + int bpp; + SDL_Surface *screen; + Uint32 *pixels; + + Viewer(int b, int w, int h); + void sdl_init(); + void run_init(); + +}; + +#endif