diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 0f90dcd..01e03dd 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,5 +1,6 @@ stages: - build + - test build:sh4-gcc: stage: build @@ -17,11 +18,28 @@ build:sh4-gcc: build:x86-gcc: stage: build - image: fedora:34 + image: fedora:38 before_script: - - sudo dnf install -y cmake gcc gcc-c++ SDL2-devel glibc-devel pkgconf-pkg-config glibc-devel.i686 SDL2-devel.i686 + - sudo dnf install -y cmake gcc gcc-c++ SDL2.i686 SDL2-devel.x86_64 glibc-devel glibc-devel.i686 SDL2-devel.i686 pkgconf-pkg-config.i686 pkgconf-pkg-config.x86_64 script: - mkdir builddir - cd builddir - cmake -DCMAKE_BUILD_TYPE=Release .. - make + artifacts: + paths: + - builddir/tests/gldc_tests + +test:x86-gcc: + stage: test + image: fedora:38 + dependencies: + - build:x86-gcc + before_script: + - sudo dnf install -y cmake gcc gcc-c++ SDL2.i686 SDL2-devel glibc-devel pkgconf-pkg-config glibc-devel.i686 SDL2-devel.i686 pkgconf-pkg-config.i686 + script: + - cd builddir/tests/ + - SDL_VIDEODRIVER=dummy ./gldc_tests --junit-xml=report.xml + artifacts: + reports: + junit: builddir/tests/report.xml diff --git a/CMakeLists.txt b/CMakeLists.txt index 41a2b07..65b940f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -54,10 +54,10 @@ else() set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -ffast-math") endif() -set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -O3 -mpretend-cmove -fexpensive-optimizations -fomit-frame-pointer -finline-functions") +set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -O3 -fexpensive-optimizations -fomit-frame-pointer -finline-functions") set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -std=c++14 -O3 -g0 -s -fomit-frame-pointer -fstrict-aliasing") -set(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO} -O3 -mpretend-cmove -fexpensive-optimizations -fomit-frame-pointer -finline-functions") +set(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO} -O3 -fexpensive-optimizations -fomit-frame-pointer -finline-functions") set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -std=c++14 -O3 -fomit-frame-pointer -fstrict-aliasing") set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -O0 -g -Wall -Wextra") @@ -80,7 +80,7 @@ set( GL/state.c GL/texture.c GL/util.c - GL/yalloc/yalloc.c + GL/alloc/alloc.c ${CMAKE_CURRENT_BINARY_DIR}/version.c ) @@ -175,6 +175,8 @@ function(gen_sample sample) endif() endfunction() +add_subdirectory(tests) + gen_sample(blend_test samples/blend_test/main.c) gen_sample(depth_funcs samples/depth_funcs/main.c) gen_sample(depth_funcs_alpha_testing samples/depth_funcs_alpha_testing/main.c samples/depth_funcs_alpha_testing/gl_png.c) @@ -206,12 +208,13 @@ gen_sample(zclip_trianglestrip samples/zclip_trianglestrip/main.c) gen_sample(scissor samples/scissor/main.c) gen_sample(polymark samples/polymark/main.c) gen_sample(cubes samples/cubes/main.cpp) - gen_sample(zclip_test tests/zclip/main.cpp) if(PLATFORM_DREAMCAST) gen_sample(trimark samples/trimark/main.c) gen_sample(quadmark samples/quadmark/main.c samples/profiler.c) + gen_sample(prof_texture_upload samples/prof_texture_upload/main.c samples/profiler.c) else() gen_sample(quadmark samples/quadmark/main.c) + gen_sample(prof_texture_upload samples/prof_texture_upload/main.c) endif() diff --git a/GL/alloc/alloc.c b/GL/alloc/alloc.c new file mode 100644 index 0000000..6760ff4 --- /dev/null +++ b/GL/alloc/alloc.c @@ -0,0 +1,534 @@ +#include +#include +#include +#include + +#include "alloc.h" + + +/* This allocator is designed so that ideally all allocations larger + * than 2k, fall on a 2k boundary. Smaller allocations will + * never cross a 2k boundary. + * + * House keeping is stored in RAM to avoid reading back from the + * VRAM to check for usage. Headers can't be easily stored in the + * blocks anyway as they have to be 2k aligned (so you'd need to + * store them in reverse or something) + * + * Defragmenting the pool will move larger allocations first, then + * smaller ones, recursively until you tell it to stop, or until things + * stop moving. + * + * The maximum pool size is 8M, made up of: + * + * - 4096 blocks of 2k + * - each with 8 sub-blocks of 256 bytes + * + * Why? + * + * The PVR performs better if textures don't cross 2K memory + * addresses, so we try to avoid that. Obviously we can't + * if the allocation is > 2k, but in that case we can at least + * align with 2k and the VQ codebook (which is usually 2k) will + * be in its own page. + * + * The smallest PVR texture allowed is 8x8 at 16 bit (so 128 bytes) + * but we're unlikely to use too many of those, so having a min sub-block + * size of 256 should be OK (a 16x16 image is 512, so two sub-blocks). + * + * We could go down to 128 bytes if wastage is an issue, but then we have + * to store double the number of usage markers. + * + * FIXME: + * + * - Only operates on one pool (ignores what you pass) + */ + +#include +#include + +#define EIGHT_MEG (8 * 1024 * 1024) +#define TWO_KILOBYTES (2 * 1024) +#define BLOCK_COUNT (EIGHT_MEG / TWO_KILOBYTES) + +#define ALLOC_DEBUG 0 +#if ALLOC_DEBUG +#define DBG_MSG(fmt, ...) fprintf(stderr, fmt, ##__VA_ARGS__) +#else +#define DBG_MSG(fmt, ...) do {} while (0) +#endif + + +static inline intptr_t round_up(intptr_t n, int multiple) +{ + if((n % multiple) == 0) { + return n; + } + + assert(multiple); + return ((n + multiple - 1) / multiple) * multiple; +} + +struct AllocEntry { + void* pointer; + size_t size; + struct AllocEntry* next; +}; + + +typedef struct { + /* This is a usage bitmask for each block. A block + * is divided into 8 x 256 byte subblocks. If a block + * is entirely used, it's value will be 255, if + * it's entirely free then it will be 0. + */ + uint8_t block_usage[BLOCK_COUNT]; + uint8_t* pool; // Pointer to the memory pool + size_t pool_size; // Size of the memory pool + uint8_t* base_address; // First 2k aligned address in the pool + size_t block_count; // Number of 2k blocks in the pool + + /* It's frustrating that we need to do this dynamically + * but we need to know the size allocated when we free()... + * we could store it statically but it would take 64k if we had + * an array of block_index -> block size where there would be 2 ** 32 + * entries of 16 bit block sizes. The drawback (aside the memory usage) + * would be that we won't be able to order by size, so defragging will + * take much more time.*/ + struct AllocEntry* allocations; +} PoolHeader; + + +static PoolHeader pool_header = { + {0}, NULL, 0, NULL, 0, NULL +}; + +void* alloc_base_address(void* pool) { + (void) pool; + return pool_header.base_address; +} + +size_t alloc_block_count(void* pool) { + (void) pool; + return pool_header.block_count; +} + +static inline void* calc_address( + uint8_t* block_usage_iterator, + int bit_offset, + size_t required_subblocks, + size_t* start_subblock_out +) { + uintptr_t offset = (block_usage_iterator - pool_header.block_usage) * 8; + offset += (bit_offset + 1); + offset -= required_subblocks; + + if(start_subblock_out) { + *start_subblock_out = offset; + } + + return pool_header.base_address + (offset * 256); +} + +void* alloc_next_available_ex(void* pool, size_t required_size, size_t* start_subblock, size_t* required_subblocks); + +void* alloc_next_available(void* pool, size_t required_size) { + return alloc_next_available_ex(pool, required_size, NULL, NULL); +} + +void* alloc_next_available_ex(void* pool, size_t required_size, size_t* start_subblock_out, size_t* required_subblocks_out) { + (void) pool; + + uint8_t* it = pool_header.block_usage; + uint32_t required_subblocks = (required_size / 256); + if(required_size % 256) required_subblocks += 1; + + /* Anything gte to 2048 must be aligned to a 2048 boundary */ + bool requires_alignment = required_size >= 2048; + + if(required_subblocks_out) { + *required_subblocks_out = required_subblocks; + } + + /* This is a fallback option. If while we're searching we find a possible slot + * but it's not aligned, or it's straddling a 2k boundary, then we store + * it here and if we reach the end of the search and find nothing better + * we use this instead */ + uint8_t* poor_option = NULL; + size_t poor_start_subblock = 0; + + uint32_t found_subblocks = 0; + uint32_t found_poor_subblocks = 0; + + for(size_t j = 0; j < pool_header.block_count; ++j, ++it) { + /* We just need to find enough consecutive blocks */ + if(found_subblocks < required_subblocks) { + uint8_t t = *it; + + /* Optimisation only. Skip over full blocks */ + if(t == 255) { + found_subblocks = 0; + found_poor_subblocks = 0; + } else { + /* Now let's see how many consecutive blocks we can find */ + for(int i = 0; i < 8; ++i) { + if((t & 0x80) == 0) { + bool block_overflow = ( + required_size < 2048 && found_subblocks > 0 && i == 0 + ); + + bool reset_subblocks = ( + (requires_alignment && found_subblocks == 0 && i != 0) || + block_overflow + ); + + if(reset_subblocks) { + // Ignore this subblock, because we want the first subblock to be aligned + // at a 2048 boundary and this one isn't (i != 0) + found_subblocks = 0; + } else { + found_subblocks++; + } + + /* If we reset the subblocks due to an overflow, we still + * want to count this free subblock in our count */ + if(block_overflow) { + found_subblocks++; + } + + found_poor_subblocks++; + + if(found_subblocks >= required_subblocks) { + /* We found space! Now calculate the address */ + return calc_address(it, i, required_subblocks, start_subblock_out); + } + + if(!poor_option && (found_poor_subblocks >= required_subblocks)) { + poor_option = calc_address(it, i, required_subblocks, &poor_start_subblock); + } + + } else { + found_subblocks = 0; + found_poor_subblocks = 0; + } + + t <<= 1; + } + } + } + } + + if(poor_option) { + if(start_subblock_out) { + *start_subblock_out = poor_start_subblock; + } + + return poor_option; + } else { + return NULL; + } +} + +int alloc_init(void* pool, size_t size) { + (void) pool; + + if(pool_header.pool) { + return -1; + } + + if(size > EIGHT_MEG) { // FIXME: >= ? + return -1; + } + + uint8_t* p = (uint8_t*) pool; + + memset(pool_header.block_usage, 0, BLOCK_COUNT); + pool_header.pool = pool; + pool_header.pool_size = size; + + intptr_t base_address = (intptr_t) pool_header.pool; + base_address = round_up(base_address, 2048); + + pool_header.base_address = (uint8_t*) base_address; + pool_header.block_count = ((p + size) - pool_header.base_address) / 2048; + pool_header.allocations = NULL; + + assert(((uintptr_t) pool_header.base_address) % 2048 == 0); + + return 0; +} + +void alloc_shutdown(void* pool) { + (void) pool; + + if(!pool_header.pool) { + return; + } + + struct AllocEntry* it = pool_header.allocations; + while(it) { + struct AllocEntry* next = it->next; + free(it); + it = next; + } + + memset(&pool_header, 0, sizeof(pool_header)); + pool_header.pool = NULL; +} + +static inline uint32_t size_to_subblock_count(size_t size) { + uint32_t required_subblocks = (size / 256); + if(size % 256) required_subblocks += 1; + return required_subblocks; +} + +static inline uint32_t subblock_from_pointer(void* p) { + uint8_t* ptr = (uint8_t*) p; + return (ptr - pool_header.base_address) / 256; +} + +static inline void block_and_offset_from_subblock(size_t sb, size_t* b, uint8_t* off) { + *b = sb / 8; + *off = (sb % 8); +} + +void* alloc_malloc(void* pool, size_t size) { + DBG_MSG("Allocating: %d\n", size); + + size_t start_subblock, required_subblocks; + void* ret = alloc_next_available_ex(pool, size, &start_subblock, &required_subblocks); + + if(ret) { + size_t block; + uint8_t offset; + + block_and_offset_from_subblock(start_subblock, &block, &offset); + + uint8_t mask = 0; + + DBG_MSG("Alloc: size: %d, rs: %d, sb: %d, b: %d, off: %d\n", size, required_subblocks, start_subblock, start_subblock / 8, start_subblock % 8); + + /* Toggle any bits for the first block */ + int c = (required_subblocks < 8) ? required_subblocks : 8; + for(int i = 0; i < c; ++i) { + mask |= (1 << (7 - (offset + i))); + required_subblocks--; + } + + if(mask) { + pool_header.block_usage[block++] |= mask; + } + + /* Fill any full blocks in the middle of the allocation */ + while(required_subblocks > 8) { + pool_header.block_usage[block++] = 255; + required_subblocks -= 8; + } + + /* Fill out any trailing subblocks */ + mask = 0; + for(size_t i = 0; i < required_subblocks; ++i) { + mask |= (1 << (7 - i)); + } + + if(mask) { + pool_header.block_usage[block++] |= mask; + } + + /* Insert allocations in the list by size descending so that when we + * defrag we can move the larger blocks before the smaller ones without + * much effort */ + struct AllocEntry* new_entry = (struct AllocEntry*) malloc(sizeof(struct AllocEntry)); + new_entry->pointer = ret; + new_entry->size = size; + new_entry->next = NULL; + + struct AllocEntry* it = pool_header.allocations; + struct AllocEntry* last = NULL; + + if(!it) { + pool_header.allocations = new_entry; + } else { + while(it) { + if(it->size < size) { + if(last) { + last->next = new_entry; + } else { + pool_header.allocations = new_entry; + } + + new_entry->next = it; + break; + } else if(!it->next) { + it->next = new_entry; + new_entry->next = NULL; + break; + } + + last = it; + it = it->next; + } + } + } + + DBG_MSG("Alloc done\n"); + + return ret; +} + +static void alloc_release_blocks(struct AllocEntry* it) { + size_t used_subblocks = size_to_subblock_count(it->size); + size_t subblock = subblock_from_pointer(it->pointer); + size_t block; + uint8_t offset; + block_and_offset_from_subblock(subblock, &block, &offset); + + uint8_t mask = 0; + + DBG_MSG("Free: size: %d, us: %d, sb: %d, off: %d\n", it->size, used_subblocks, block, offset); + + /* Wipe out any leading subblocks */ + int c = (used_subblocks < 8) ? used_subblocks : 8; + for(int i = 0; i < c; ++i) { + mask |= (1 << (7 - (offset + i))); + used_subblocks--; + } + + if(mask) { + pool_header.block_usage[block++] &= ~mask; + } + + /* Clear any full blocks in the middle of the allocation */ + while(used_subblocks > 8) { + pool_header.block_usage[block++] = 0; + used_subblocks -= 8; + } + + /* Wipe out any trailing subblocks */ + mask = 0; + for(size_t i = 0; i < used_subblocks; ++i) { + mask |= (1 << (7 - i)); + } + + if(mask) { + pool_header.block_usage[block++] &= ~mask; + } +} + +void alloc_free(void* pool, void* p) { + (void) pool; + + struct AllocEntry* it = pool_header.allocations; + struct AllocEntry* last = NULL; + while(it) { + if(it->pointer == p) { + alloc_release_blocks(it); + + if(last) { + last->next = it->next; + } else { + assert(it == pool_header.allocations); + pool_header.allocations = it->next; + } + + DBG_MSG("Freed: size: %d, us: %d, sb: %d, off: %d\n", it->size, used_subblocks, block, offset); + free(it); + break; + } + + last = it; + it = it->next; + } + + DBG_MSG("Free done\n"); +} + +void alloc_run_defrag(void* pool, defrag_address_move callback, int max_iterations, void* user_data) { + + for(int i = 0; i < max_iterations; ++i) { + bool move_occurred = false; + + struct AllocEntry* it = pool_header.allocations; + + if(!it) { + return; + } + + while(it) { + void* potential_dest = alloc_next_available(pool, it->size); + if(potential_dest < it->pointer) { + potential_dest = alloc_malloc(pool, it->size); + memcpy(potential_dest, it->pointer, it->size); + + /* Mark this block as now free, but don't fiddle with the + * allocation list */ + alloc_release_blocks(it); + + callback(it->pointer, potential_dest, user_data); + + it->pointer = potential_dest; + move_occurred = true; + } + + it = it->next; + } + + if(!move_occurred) { + return; + } + } +} + +static inline uint8_t count_ones(uint8_t byte) { + static const uint8_t NIBBLE_LOOKUP [16] = { + 0, 1, 1, 2, 1, 2, 2, 3, + 1, 2, 2, 3, 2, 3, 3, 4 + }; + return NIBBLE_LOOKUP[byte & 0x0F] + NIBBLE_LOOKUP[byte >> 4]; +} + +size_t alloc_count_free(void* pool) { + (void) pool; + + uint8_t* it = pool_header.block_usage; + uint8_t* end = it + pool_header.block_count; + + size_t total_free = 0; + + while(it < end) { + total_free += count_ones(*it) * 256; + ++it; + } + + return total_free; +} + +size_t alloc_count_continuous(void* pool) { + (void) pool; + + size_t largest_block = 0; + + uint8_t* it = pool_header.block_usage; + uint8_t* end = it + pool_header.block_count; + + size_t current_block = 0; + while(it < end) { + uint8_t t = *it++; + if(!t) { + current_block += 2048; + } else { + for(int i = 7; i >= 0; --i) { + bool bitset = (t & (1 << i)); + if(bitset) { + current_block += (7 - i) * 256; + if(largest_block < current_block) { + largest_block = current_block; + current_block = 0; + } + } + } + } + } + + return largest_block; +} diff --git a/GL/alloc/alloc.h b/GL/alloc/alloc.h new file mode 100644 index 0000000..49400f9 --- /dev/null +++ b/GL/alloc/alloc.h @@ -0,0 +1,29 @@ +#pragma once + +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +int alloc_init(void* pool, size_t size); +void alloc_shutdown(void* pool); + +void *alloc_malloc(void* pool, size_t size); +void alloc_free(void* pool, void* p); + +typedef void (defrag_address_move)(void*, void*, void*); +void alloc_run_defrag(void* pool, defrag_address_move callback, int max_iterations, void* user_data); + +size_t alloc_count_free(void* pool); +size_t alloc_count_continuous(void* pool); + +void* alloc_next_available(void* pool, size_t required_size); +void* alloc_base_address(void* pool); +size_t alloc_block_count(void* pool); + +#ifdef __cplusplus +} +#endif diff --git a/GL/draw.c b/GL/draw.c index 2fa6d88..38139d7 100644 --- a/GL/draw.c +++ b/GL/draw.c @@ -78,7 +78,7 @@ static void _readVertexData3f3f(const GLubyte* __restrict__ in, GLubyte* __restr // 10:10:10:2REV format static void _readVertexData1i3f(const GLubyte* in, GLubyte* out) { - const static float MULTIPLIER = 1.0f / 1023.0f; + static const float MULTIPLIER = 1.0f / 1023.0f; GLfloat* output = (GLfloat*) out; @@ -585,7 +585,6 @@ static void _readPositionData(ReadDiffuseFunc func, const GLuint first, const GL const GLubyte* vptr = ((GLubyte*) ATTRIB_POINTERS.vertex.ptr + (first * vstride)); float pos[3]; - float w = 0.0f; ITERATE(count) { PREFETCH(vptr + vstride); @@ -726,9 +725,7 @@ typedef struct { } Float2; static const Float3 F3Z = {0.0f, 0.0f, 1.0f}; -static const Float3 F3ZERO = {0.0f, 0.0f, 0.0f}; static const Float2 F2ZERO = {0.0f, 0.0f}; -static const uint32_t U4ONE = ~0; static void generateElementsFastPath( SubmissionTarget* target, const GLsizei first, const GLuint count, @@ -910,24 +907,6 @@ static void transform(SubmissionTarget* target) { TransformVertices(vertex, target->count); } -static void mat_transform3(const float* xyz, const float* xyzOut, const uint32_t count, const uint32_t inStride, const uint32_t outStride) { - const uint8_t* dataIn = (const uint8_t*) xyz; - uint8_t* dataOut = (uint8_t*) xyzOut; - - ITERATE(count) { - const float* in = (const float*) dataIn; - float* out = (float*) dataOut; - - TransformVec3NoMod( - in, - out - ); - - dataIn += inStride; - dataOut += outStride; - } -} - static void mat_transform_normal3(const float* xyz, const float* xyzOut, const uint32_t count, const uint32_t inStride, const uint32_t outStride) { const uint8_t* dataIn = (const uint8_t*) xyz; uint8_t* dataOut = (uint8_t*) xyzOut; @@ -1224,7 +1203,6 @@ GL_FORCE_INLINE void submitVertices(GLenum mode, GLsizei first, GLuint count, GL target->header_offset = vector_size; target->start_offset = target->header_offset + (header_required ? 1 : 0); - gl_assert(target->header_offset >= 0); gl_assert(target->start_offset >= target->header_offset); gl_assert(target->count); diff --git a/GL/flush.c b/GL/flush.c index cf85a4e..e07c3a1 100644 --- a/GL/flush.c +++ b/GL/flush.c @@ -46,10 +46,22 @@ void APIENTRY glKosInitConfig(GLdcConfig* config) { config->initial_pt_capacity = 512 * 3; config->initial_tr_capacity = 1024 * 3; config->initial_immediate_capacity = 1024 * 3; - config->internal_palette_format = GL_RGBA8; + + // RGBA4444 is the fastest general format - 8888 will cause a perf issue + config->internal_palette_format = GL_RGBA4; + + config->texture_twiddle = GL_TRUE; } +static bool _initialized = false; + void APIENTRY glKosInitEx(GLdcConfig* config) { + if(_initialized) { + return; + } + + _initialized = true; + TRACE(); printf("\nWelcome to GLdc! Git revision: %s\n\n", GLDC_VERSION); @@ -70,6 +82,10 @@ void APIENTRY glKosInitEx(GLdcConfig* config) { _glInitTextures(); + if(config->texture_twiddle) { + glEnable(GL_TEXTURE_TWIDDLE_KOS); + } + OP_LIST.list_type = GPU_LIST_OP_POLY; PT_LIST.list_type = GPU_LIST_PT_POLY; TR_LIST.list_type = GPU_LIST_TR_POLY; @@ -83,6 +99,12 @@ void APIENTRY glKosInitEx(GLdcConfig* config) { aligned_vector_reserve(&TR_LIST.vector, config->initial_tr_capacity); } +void APIENTRY glKosShutdown() { + aligned_vector_clear(&OP_LIST.vector); + aligned_vector_clear(&PT_LIST.vector); + aligned_vector_clear(&TR_LIST.vector); +} + void APIENTRY glKosInit() { GLdcConfig config; glKosInitConfig(&config); @@ -117,4 +139,4 @@ void APIENTRY glKosSwapBuffers() { aligned_vector_clear(&TR_LIST.vector); _glApplyScissor(true); -} \ No newline at end of file +} diff --git a/GL/platforms/software.c b/GL/platforms/software.c index 59d3859..4245930 100644 --- a/GL/platforms/software.c +++ b/GL/platforms/software.c @@ -12,7 +12,7 @@ #define CLIP_DEBUG 0 #define ZNEAR_CLIPPING_ENABLED 1 -static size_t AVAILABLE_VRAM = 16 * 1024 * 1024; +static size_t AVAILABLE_VRAM = 8 * 1024 * 1024; static Matrix4x4 MATRIX; static SDL_Window* WINDOW = NULL; @@ -33,6 +33,10 @@ static VideoMode vid_mode = { AlignedVector vbuffer; void InitGPU(_Bool autosort, _Bool fsaa) { + + // 32-bit SDL has trouble with the wayland driver for some reason + setenv("SDL_VIDEODRIVER", "x11", 1); + SDL_Init(SDL_INIT_VIDEO | SDL_INIT_EVENTS); WINDOW = SDL_CreateWindow( diff --git a/GL/platforms/software.h b/GL/platforms/software.h index bbb4f35..5fee317 100644 --- a/GL/platforms/software.h +++ b/GL/platforms/software.h @@ -48,7 +48,8 @@ void TransformVec3NoMod(const float* v, float* ret); /* Transform a 3-element normal using the stored matrix (w == 0)*/ static inline void TransformNormalNoMod(const float* xIn, float* xOut) { - + (void) xIn; + (void) xOut; } void TransformVertices(Vertex* vertices, const int count); diff --git a/GL/private.h b/GL/private.h index b0fe41a..5b11c52 100644 --- a/GL/private.h +++ b/GL/private.h @@ -164,7 +164,9 @@ typedef struct { GLboolean isCompressed; GLboolean isPaletted; //50 - GLubyte padding[14]; // Pad to 64-bytes + GLenum internalFormat; + //54 + GLubyte padding[10]; // Pad to 64-bytes } __attribute__((aligned(32))) TextureObject; typedef struct { @@ -376,6 +378,9 @@ extern GLubyte ACTIVE_TEXTURE; extern GLboolean TEXTURES_ENABLED[]; GLubyte _glGetActiveTexture(); +GLint _glGetTextureInternalFormat(); +GLboolean _glGetTextureTwiddle(); +void _glSetTextureTwiddle(GLboolean v); GLuint _glGetActiveClientTexture(); TexturePalette* _glGetSharedPalette(GLshort bank); diff --git a/GL/state.c b/GL/state.c index 2a16367..52f2656 100644 --- a/GL/state.c +++ b/GL/state.c @@ -494,7 +494,11 @@ GLAPI void APIENTRY glEnable(GLenum cap) { GPUState.is_dirty = GL_TRUE; } break; + case GL_TEXTURE_TWIDDLE_KOS: + _glSetTextureTwiddle(GL_TRUE); + break; default: + _glKosThrowError(GL_INVALID_VALUE, __func__); break; } } @@ -596,7 +600,11 @@ GLAPI void APIENTRY glDisable(GLenum cap) { GPUState.is_dirty = GL_TRUE; } break; + case GL_TEXTURE_TWIDDLE_KOS: + _glSetTextureTwiddle(GL_FALSE); + break; default: + _glKosThrowError(GL_INVALID_VALUE, __func__); break; } } @@ -977,6 +985,10 @@ void APIENTRY glGetIntegerv(GLenum pname, GLint *params) { case GL_FREE_CONTIGUOUS_TEXTURE_MEMORY_KOS: *params = _glFreeContiguousTextureMemory(); break; + case GL_TEXTURE_INTERNAL_FORMAT_KOS: + *params = _glGetTextureInternalFormat(); + break; + default: _glKosThrowError(GL_INVALID_ENUM, __func__); break; diff --git a/GL/texture.c b/GL/texture.c index e18c2e4..fe1df47 100644 --- a/GL/texture.c +++ b/GL/texture.c @@ -8,7 +8,7 @@ #include "config.h" #include "platform.h" -#include "yalloc/yalloc.h" +#include "alloc/alloc.h" /* We always leave this amount of vram unallocated to prevent * issues with the allocator */ @@ -23,25 +23,82 @@ GLubyte ACTIVE_TEXTURE = 0; static TexturePalette* SHARED_PALETTES[MAX_GLDC_SHARED_PALETTES] = {NULL, NULL, NULL, NULL}; -static GLuint _determinePVRFormat(GLint internalFormat, GLenum type); +static GLuint _determinePVRFormat(GLint internalFormat); static GLboolean BANKS_USED[MAX_GLDC_PALETTE_SLOTS]; // Each time a 256 colour bank is used, this is set to true static GLboolean SUBBANKS_USED[MAX_GLDC_PALETTE_SLOTS][MAX_GLDC_4BPP_PALETTE_SLOTS]; // 4 counts of the used 16 colour banks within the 256 ones -static GLenum INTERNAL_PALETTE_FORMAT = GL_RGBA8; +static GLenum INTERNAL_PALETTE_FORMAT = GL_RGBA4; +static GLboolean TEXTURE_TWIDDLE_ENABLED = GL_FALSE; -static void* YALLOC_BASE = NULL; -static size_t YALLOC_SIZE = 0; +#define STRINGIFY(x) #x +#define TOSTRING(x) STRINGIFY(x) +#define INFO_MSG(x) fprintf(stderr, "%s:%s > %s\n", __FILE__, TOSTRING(__LINE__), x) -static void* yalloc_alloc_and_defrag(size_t size) { - void* ret = yalloc_alloc(YALLOC_BASE, size); +static void* ALLOC_BASE = NULL; +static size_t ALLOC_SIZE = 0; + +static struct TwiddleTable { + int32_t width; + int32_t height; + int32_t* table; +} TWIDDLE_TABLE = {0, 0, NULL}; + +int32_t twiddle_recurse(int32_t* table, int32_t stride, int32_t x, int32_t y, int32_t block_size, int32_t idx) { + int32_t prev_idx = idx; + if(block_size == 1) { + table[y * stride + x] = idx++; + } else { + block_size = block_size >> 1; + idx += twiddle_recurse(table, stride, x, y, block_size, idx); + idx += twiddle_recurse(table, stride, x, y + block_size, block_size, idx); + idx += twiddle_recurse(table, stride, x + block_size, y, block_size, idx); + idx += twiddle_recurse(table, stride, x + block_size, y + block_size, block_size, idx); + } + + return (idx - prev_idx); +} + +void build_twiddle_table(int32_t w, int32_t h) { + free(TWIDDLE_TABLE.table); + TWIDDLE_TABLE.table = (int32_t*) malloc(w * h * sizeof(int32_t)); + TWIDDLE_TABLE.width = w; + TWIDDLE_TABLE.height = h; + + int32_t idx = 0; + + if(w < h) { + for(int32_t i = 0; i < h; i += w) { + idx += twiddle_recurse(TWIDDLE_TABLE.table, w, 0, i, w, idx); + } + } else { + for(int32_t i = 0; i < w; i += h) { + idx += twiddle_recurse(TWIDDLE_TABLE.table, w, i, 0, h, idx); + } + } +} + +/* Given a 0-based texel location, and an image width/height. Return the + * new 0-based texel location */ +GL_FORCE_INLINE uint32_t twid_location(uint32_t i, uint32_t w, uint32_t h) { + if(TWIDDLE_TABLE.width != w || TWIDDLE_TABLE.height != h || !TWIDDLE_TABLE.table) { + build_twiddle_table(w, h); + } + + uint32_t ret = TWIDDLE_TABLE.table[i]; + return ret; +} + + +static void* alloc_malloc_and_defrag(size_t size) { + void* ret = alloc_malloc(ALLOC_BASE, size); if(!ret) { /* Tried to allocate, but out of room, let's try defragging * and repeating the alloc */ fprintf(stderr, "Ran out of memory, defragmenting\n"); glDefragmentTextureMemory_KOS(); - ret = yalloc_alloc(YALLOC_BASE, size); + ret = alloc_malloc(ALLOC_BASE, size); } gl_assert(ret && "Out of PVR memory!"); @@ -146,78 +203,12 @@ static void _glReleasePaletteSlot(GLshort slot, GLushort size) } } -/* Linear/iterative twiddling algorithm from Marcus' tatest */ -#define TWIDTAB(x) ( (x&1)|((x&2)<<1)|((x&4)<<2)|((x&8)<<3)|((x&16)<<4)| \ - ((x&32)<<5)|((x&64)<<6)|((x&128)<<7)|((x&256)<<8)|((x&512)<<9) ) -#define TWIDOUT(x, y) ( TWIDTAB((y)) | (TWIDTAB((x)) << 1) ) - - -static void GPUTextureTwiddle8PPP(void* src, void* dst, uint32_t w, uint32_t h) { - uint32_t x, y, yout, min, mask; - - min = MIN(w, h); - mask = min - 1; - - uint8_t* pixels; - uint16_t* vtex; - pixels = (uint8_t*) src; - vtex = (uint16_t*) dst; - - for(y = 0; y < h; y += 2) { - yout = y; - for(x = 0; x < w; x++) { - int32_t idx = TWIDOUT((yout & mask) / 2, x & mask) + - (x / min + yout / min)*min * min / 2; - - gl_assert(idx < (w * h)); - vtex[idx] = pixels[y * w + x] | (pixels[(y + 1) * w + x] << 8); - } - } +GLboolean _glGetTextureTwiddle() { + return TEXTURE_TWIDDLE_ENABLED; } -static void GPUTextureTwiddle4PPP(void* src, void* dst, uint32_t w, uint32_t h) { - uint32_t x, y, yout, min, mask; - - min = MIN(w, h); - mask = min - 1; - - uint8_t* pixels; - uint16_t* vtex; - pixels = (uint8_t*) src; - vtex = (uint16_t*) dst; - - for(y = 0; y < h; y += 2) { - yout = y; - for (x = 0; x < w; x += 2) { - vtex[TWIDOUT((x & mask) / 2, (yout & mask) / 2) + - (x / min + yout / min) * min * min / 4] = - vtex[TWIDOUT((x & mask) / 2, (yout & mask) / 2) + - (x / min + yout / min) * min * min / 4] = - ((pixels[(x + y * w) >> 1] & 15) << 8) | ((pixels[(x + (y + 1) * w) >> 1] & 15) << 12) | - ((pixels[(x + y * w) >> 1] >> 4) << 0) | ((pixels[(x + (y + 1) * w) >> 1] >> 4) << 4); - } - } -} - -static void GPUTextureTwiddle16BPP(void * src, void* dst, uint32_t w, uint32_t h) { - uint32_t x, y, yout, min, mask; - - min = MIN(w, h); - mask = min - 1; - - uint16_t* pixels; - uint16_t* vtex; - pixels = (uint16_t*) src; - vtex = (uint16_t*) dst; - - for(y = 0; y < h; y++) { - yout = y; - - for(x = 0; x < w; x++) { - vtex[TWIDOUT(x & mask, yout & mask) + - (x / min + yout / min)*min * min] = pixels[y * w + x]; - } - } +void _glSetTextureTwiddle(GLboolean v) { + TEXTURE_TWIDDLE_ENABLED = v; } TexturePalette* _glGetSharedPalette(GLshort bank) { @@ -235,8 +226,8 @@ void _glSetInternalPaletteFormat(GLenum val) { GPUSetPaletteFormat(GPU_PAL_ARGB4444); break; case GL_RGB5_A1: - GPUSetPaletteFormat(GPU_PAL_ARGB1555); - break; + GPUSetPaletteFormat(GPU_PAL_ARGB1555); + break; case GL_RGB565_KOS: GPUSetPaletteFormat(GPU_PAL_RGB565); break; @@ -252,7 +243,6 @@ void _glApplyColorTable(TexturePalette* src) { GLushort i; GLushort offset = src->size * src->bank; - for(i = 0; i < src->width; ++i) { GLubyte* entry = &src->data[i * 4]; @@ -278,11 +268,53 @@ GLubyte _glGetActiveTexture() { return ACTIVE_TEXTURE; } - static GLint _determineStride(GLenum format, GLenum type) { +static GLint _determineStrideInternal(GLenum internalFormat) { + switch(internalFormat) { + case GL_RGB565_KOS: + case GL_ARGB4444_KOS: + case GL_ARGB1555_KOS: + case GL_RGB565_TWID_KOS: + case GL_ARGB4444_TWID_KOS: + case GL_ARGB1555_TWID_KOS: + return 2; + case GL_COLOR_INDEX8_TWID_KOS: + case GL_COLOR_INDEX4_TWID_KOS: + case GL_COLOR_INDEX4_EXT: + case GL_COLOR_INDEX8_EXT: + return 1; + case GL_RGBA8: + return 4; + case GL_RGB8: + return 3; + case GL_RGBA4: + return 2; + } + + return -1; +} + + +static GLint _determineStride(GLenum format, GLenum type) { switch(type) { case GL_BYTE: case GL_UNSIGNED_BYTE: - return (format == GL_RED || format == GL_ALPHA) ? 1 : (format == GL_RGB) ? 3 : 4; + switch(format) { + case GL_RED: + case GL_ALPHA: + case GL_COLOR_INDEX: + case GL_COLOR_INDEX8_TWID_KOS: + case GL_COLOR_INDEX4_TWID_KOS: // We return 1 for 4bpp, but it gets sorted later + case GL_COLOR_INDEX4_EXT: + case GL_COLOR_INDEX8_EXT: + return 1; + case GL_RGB: + return 3; + case GL_RGBA: + return 4; + default: + break; + } + break; case GL_UNSIGNED_SHORT: return (format == GL_RED || format == GL_ALPHA) ? 2 : (format == GL_RGB) ? 6 : 8; case GL_UNSIGNED_SHORT_5_6_5: @@ -297,6 +329,8 @@ GLubyte _glGetActiveTexture() { return 2; } + fprintf(stderr, "Couldn't find stride for format: 0x%x type: 0x%x\n", format, type); + _glKosThrowError(GL_INVALID_VALUE, __func__); return -1; } @@ -500,15 +534,15 @@ GLubyte _glInitTextures() { //memset((void*) SUBBANKS_USED, 0x0, sizeof(SUBBANKS_USED)); size_t vram_free = GPUMemoryAvailable(); - YALLOC_SIZE = vram_free - PVR_MEM_BUFFER_SIZE; /* Take all but 64kb VRAM */ - YALLOC_BASE = GPUMemoryAlloc(YALLOC_SIZE); + ALLOC_SIZE = vram_free - PVR_MEM_BUFFER_SIZE; /* Take all but 64kb VRAM */ + ALLOC_BASE = GPUMemoryAlloc(ALLOC_SIZE); #ifdef __DREAMCAST__ /* Ensure memory is aligned */ - gl_assert((uintptr_t) YALLOC_BASE % 32 == 0); + gl_assert((uintptr_t) ALLOC_BASE % 32 == 0); #endif - yalloc_init(YALLOC_BASE, YALLOC_SIZE); + alloc_init(ALLOC_BASE, ALLOC_SIZE); gl_assert(TEXTURE_OBJECTS.element_size > 0); return 1; @@ -528,6 +562,16 @@ TextureObject* _glGetBoundTexture() { return TEXTURE_UNITS[ACTIVE_TEXTURE]; } +GLint _glGetTextureInternalFormat() { + TextureObject* obj = _glGetBoundTexture(); + if(!obj) { + return -1; + } + + return obj->internalFormat; +} + + void APIENTRY glActiveTextureARB(GLenum texture) { TRACE(); @@ -538,8 +582,6 @@ void APIENTRY glActiveTextureARB(GLenum texture) { ACTIVE_TEXTURE = texture & 0xF; gl_assert(ACTIVE_TEXTURE < MAX_GLDC_TEXTURE_UNITS); - gl_assert(ACTIVE_TEXTURE >= 0); - gl_assert(TEXTURE_OBJECTS.element_size > 0); } @@ -597,7 +639,7 @@ void APIENTRY glDeleteTextures(GLsizei n, GLuint *textures) { } if(txr->data) { - yalloc_free(YALLOC_BASE, txr->data); + alloc_free(ALLOC_BASE, txr->data); txr->data = NULL; } @@ -777,13 +819,13 @@ void APIENTRY glCompressedTexImage2DARB(GLenum target, case GL_PALETTE4_RGB8_OES: glColorTableEXT(GL_TEXTURE_2D, GL_RGBA8, 16, internalFormat, GL_UNSIGNED_BYTE, data); ptr += 16*3; - glTexImage2D(GL_TEXTURE_2D, level, GL_COLOR_INDEX4_EXT, width, height, border, GL_COLOR_INDEX, GL_UNSIGNED_BYTE, ptr); + glTexImage2D(GL_TEXTURE_2D, level, GL_COLOR_INDEX4_EXT, width, height, border, GL_COLOR_INDEX4_EXT, GL_UNSIGNED_BYTE, ptr); return; case GL_PALETTE4_RGBA8_OES: glColorTableEXT(GL_TEXTURE_2D, GL_RGBA8, 16, internalFormat, GL_UNSIGNED_BYTE, data); ptr += 16*4; - glTexImage2D(GL_TEXTURE_2D, level, GL_COLOR_INDEX4_EXT, width, height, border, GL_COLOR_INDEX, GL_UNSIGNED_BYTE, ptr); + glTexImage2D(GL_TEXTURE_2D, level, GL_COLOR_INDEX4_EXT, width, height, border, GL_COLOR_INDEX4_EXT, GL_UNSIGNED_BYTE, ptr); return; case GL_PALETTE4_R5_G6_B5_OES: @@ -791,31 +833,28 @@ void APIENTRY glCompressedTexImage2DARB(GLenum target, case GL_PALETTE4_RGB5_A1_OES: glColorTableEXT(GL_TEXTURE_2D, GL_RGBA8, 16, internalFormat, GL_UNSIGNED_BYTE, data); ptr += 16*2; - glTexImage2D(GL_TEXTURE_2D, level, GL_COLOR_INDEX4_EXT, width, height, border, GL_COLOR_INDEX, GL_UNSIGNED_BYTE, ptr); + glTexImage2D(GL_TEXTURE_2D, level, GL_COLOR_INDEX4_EXT, width, height, border, GL_COLOR_INDEX4_EXT, GL_UNSIGNED_BYTE, ptr); return; case GL_PALETTE8_RGB8_OES: glColorTableEXT(GL_TEXTURE_2D, GL_RGBA8, 256, internalFormat, GL_UNSIGNED_BYTE, data); ptr += 256*3; - glTexImage2D(GL_TEXTURE_2D, level, GL_COLOR_INDEX8_EXT, width, height, border, GL_COLOR_INDEX, GL_UNSIGNED_BYTE, ptr); + glTexImage2D(GL_TEXTURE_2D, level, GL_COLOR_INDEX8_EXT, width, height, border, GL_COLOR_INDEX8_EXT, GL_UNSIGNED_BYTE, ptr); return; case GL_PALETTE8_RGBA8_OES: - // glColorTableEXT(GL_TEXTURE_2D, GL_RGBA8, 256, internalFormat, GL_UNSIGNED_BYTE, data); ptr += 256*4; - glTexImage2D(GL_TEXTURE_2D, level, GL_COLOR_INDEX8_EXT, width, height, border, GL_COLOR_INDEX, GL_UNSIGNED_BYTE, ptr); + glTexImage2D(GL_TEXTURE_2D, level, GL_COLOR_INDEX8_EXT, width, height, border, GL_COLOR_INDEX8_EXT, GL_UNSIGNED_BYTE, ptr); return; - - case GL_PALETTE8_RGBA4_OES: case GL_PALETTE8_RGB5_A1_OES: case GL_PALETTE8_R5_G6_B5_OES: glColorTableEXT(GL_TEXTURE_2D, GL_RGBA8, 256, internalFormat, GL_UNSIGNED_BYTE, data); ptr += 256*2; - glTexImage2D(GL_TEXTURE_2D, level, GL_COLOR_INDEX8_EXT, width, height, border, GL_COLOR_INDEX, GL_UNSIGNED_BYTE, ptr); + glTexImage2D(GL_TEXTURE_2D, level, GL_COLOR_INDEX8_EXT, width, height, border, GL_COLOR_INDEX8_EXT, GL_UNSIGNED_BYTE, ptr); return; default: { @@ -837,20 +876,18 @@ void APIENTRY glCompressedTexImage2DARB(GLenum target, /* Set the required mipmap count */ active->width = width; active->height = height; - active->color = _determinePVRFormat( - internalFormat, - internalFormat /* Doesn't matter (see determinePVRFormat) */ - ); + active->internalFormat = internalFormat; + active->color = _determinePVRFormat(internalFormat); active->mipmapCount = _glGetMipmapLevelCount(active); active->mipmap = (mipmapped) ? ~0 : (1 << level); /* Set only a single bit if this wasn't mipmapped otherwise set all */ active->isCompressed = GL_TRUE; /* Odds are slim new data is same size as old, so free always */ if(active->data) { - yalloc_free(YALLOC_BASE, active->data); + alloc_free(ALLOC_BASE, active->data); } - active->data = yalloc_alloc_and_defrag(imageSize); + active->data = alloc_malloc_and_defrag(imageSize); gl_assert(active->data); // Debug assert @@ -868,53 +905,99 @@ void APIENTRY glCompressedTexImage2DARB(GLenum target, _glGPUStateMarkDirty(); } +static GLboolean isTwiddledInternalFormat(GLint internalFormat) { + switch(internalFormat) { + case GL_RGB565_TWID_KOS: + case GL_ARGB4444_TWID_KOS: + case GL_ARGB1555_TWID_KOS: + case GL_COLOR_INDEX8_TWID_KOS: + case GL_COLOR_INDEX4_TWID_KOS: + case GL_RGB_TWID_KOS: + case GL_RGBA_TWID_KOS: + return true; + default: + return false; + } +} + +/** + * Takes an internal format, and returns a GL format matching how we'd store + * it internally, so it'll return one of the following: + * + * - GL_RGB565_KOS, + * - GL_ARGB4444_KOS + * - GL_ARGB1555_KOS + * - GL_RGB565_TWID_KOS + * - GL_ARGB4444_TWID_KOS + * - GL_ARGB1555_TWID_KOS + * - GL_COLOR_INDEX8_EXT + * - GL_COLOR_INDEX4_EXT + * - GL_COLOR_INDEX8_TWID_KOS + * - GL_COLOR_INDEX4_TWID_KOS + */ static GLint _cleanInternalFormat(GLint internalFormat) { switch (internalFormat) { + /* All of these formats are fine as they are, no conversion needed */ + case GL_RGB565_KOS: + case GL_ARGB4444_KOS: + case GL_ARGB1555_KOS: + case GL_RGB565_TWID_KOS: + case GL_ARGB4444_TWID_KOS: + case GL_ARGB1555_TWID_KOS: + case GL_COLOR_INDEX8_TWID_KOS: + case GL_COLOR_INDEX4_TWID_KOS: + return internalFormat; + /* Paletted textures are always twiddled.. otherwise they don't work! */ case GL_COLOR_INDEX4_EXT: - return GL_COLOR_INDEX4_EXT; - case GL_COLOR_INDEX8_EXT: - return GL_COLOR_INDEX8_EXT; + return GL_COLOR_INDEX4_TWID_KOS; + case GL_COLOR_INDEX8_EXT: + return GL_COLOR_INDEX8_TWID_KOS; + + case GL_RGB_TWID_KOS: + return GL_RGB565_TWID_KOS; + case GL_RGBA_TWID_KOS: + return GL_ARGB4444_TWID_KOS; case GL_ALPHA: -/* case GL_ALPHA4: + case GL_ALPHA4: case GL_ALPHA8: case GL_ALPHA12: - case GL_ALPHA16:*/ - return GL_ALPHA; + case GL_ALPHA16: + return (TEXTURE_TWIDDLE_ENABLED) ? GL_ARGB4444_TWID_KOS : GL_ARGB4444_KOS; case 1: case GL_LUMINANCE: -/* case GL_LUMINANCE4: + case GL_LUMINANCE4: case GL_LUMINANCE8: case GL_LUMINANCE12: - case GL_LUMINANCE16:*/ - return GL_LUMINANCE; + case GL_LUMINANCE16: + return (TEXTURE_TWIDDLE_ENABLED) ? GL_ARGB1555_TWID_KOS : GL_ARGB1555_KOS; case 2: case GL_LUMINANCE_ALPHA: -/* case GL_LUMINANCE4_ALPHA4: + case GL_LUMINANCE4_ALPHA4: case GL_LUMINANCE6_ALPHA2: case GL_LUMINANCE8_ALPHA8: case GL_LUMINANCE12_ALPHA4: case GL_LUMINANCE12_ALPHA12: - case GL_LUMINANCE16_ALPHA16: */ - return GL_LUMINANCE_ALPHA; -/* case GL_INTENSITY: + case GL_LUMINANCE16_ALPHA16: + return (TEXTURE_TWIDDLE_ENABLED) ? GL_ARGB4444_TWID_KOS : GL_ARGB4444_KOS; + case GL_INTENSITY: case GL_INTENSITY4: case GL_INTENSITY8: case GL_INTENSITY12: case GL_INTENSITY16: - return GL_INTENSITY; */ + return (TEXTURE_TWIDDLE_ENABLED) ? GL_ARGB4444_TWID_KOS : GL_ARGB4444_KOS; case 3: - return GL_RGB; + return (TEXTURE_TWIDDLE_ENABLED) ? GL_RGB565_TWID_KOS : GL_RGB565_KOS; case GL_RGB: - /* case GL_R3_G3_B2: */ + case GL_R3_G3_B2: case GL_RGB4: case GL_RGB5: case GL_RGB8: case GL_RGB10: case GL_RGB12: case GL_RGB16: - return GL_RGB; + return (TEXTURE_TWIDDLE_ENABLED) ? GL_RGB565_TWID_KOS : GL_RGB565_KOS; case 4: - return GL_RGBA; + return (TEXTURE_TWIDDLE_ENABLED) ? GL_ARGB4444_TWID_KOS : GL_ARGB4444_KOS; case GL_RGBA: case GL_RGBA2: case GL_RGBA4: @@ -923,92 +1006,77 @@ static GLint _cleanInternalFormat(GLint internalFormat) { case GL_RGB10_A2: case GL_RGBA12: case GL_RGBA16: - return GL_RGBA; - + return (TEXTURE_TWIDDLE_ENABLED) ? GL_ARGB4444_TWID_KOS : GL_ARGB4444_KOS; /* Support ARB_texture_rg */ case GL_RED: -/* case GL_R8: + case GL_R8: case GL_R16: - case GL_RED: - case GL_COMPRESSED_RED: */ - return GL_RED; -/* case GL_RG: + case GL_COMPRESSED_RED: + return (TEXTURE_TWIDDLE_ENABLED) ? GL_RGB565_TWID_KOS : GL_RGB565_KOS; + case GL_RG: case GL_RG8: case GL_RG16: case GL_COMPRESSED_RG: - return GL_RG;*/ + return (TEXTURE_TWIDDLE_ENABLED) ? GL_RGB565_TWID_KOS : GL_RGB565_KOS; default: return -1; } } - static GLuint _determinePVRFormat(GLint internalFormat, GLenum type) { +static GLuint _determinePVRFormat(GLint internalFormat) { /* Given a cleaned internalFormat, return the Dreamcast format * that can hold it */ + switch(internalFormat) { - case GL_ALPHA: - case GL_LUMINANCE: - case GL_LUMINANCE_ALPHA: - case GL_RGBA: - /* OK so if we have something that requires alpha, we return 4444 unless - * the type was already 1555 (1-bit alpha) in which case we return that - */ - if(type == GL_UNSIGNED_SHORT_1_5_5_5_REV) { - return GPU_TXRFMT_ARGB1555 | GPU_TXRFMT_NONTWIDDLED; - } else if(type == GL_UNSIGNED_SHORT_1_5_5_5_REV_TWID_KOS) { - return GPU_TXRFMT_ARGB1555 | GPU_TXRFMT_TWIDDLED; - } else if(type == GL_UNSIGNED_SHORT_4_4_4_4_REV_TWID_KOS) { - return GPU_TXRFMT_ARGB4444 | GPU_TXRFMT_TWIDDLED; - } else { - return GPU_TXRFMT_ARGB4444 | GPU_TXRFMT_NONTWIDDLED; - } - case GL_RED: - case GL_RGB: - switch(type) { - case GL_UNSIGNED_SHORT_5_6_5_TWID_KOS: - return GPU_TXRFMT_RGB565 | GPU_TXRFMT_TWIDDLED; - case GL_COMPRESSED_RGB_565_VQ_KOS: - case GL_COMPRESSED_RGB_565_VQ_MIPMAP_KOS: - return GPU_TXRFMT_RGB565 | GPU_TXRFMT_NONTWIDDLED | GPU_TXRFMT_VQ_ENABLE; - case GL_COMPRESSED_RGB_565_VQ_TWID_KOS: - case GL_COMPRESSED_RGB_565_VQ_MIPMAP_TWID_KOS: - return GPU_TXRFMT_RGB565 | GPU_TXRFMT_TWIDDLED | GPU_TXRFMT_VQ_ENABLE; - default: - return GPU_TXRFMT_RGB565 | GPU_TXRFMT_NONTWIDDLED; - } - break; - /* Compressed and twiddled versions */ - case GL_UNSIGNED_SHORT_5_6_5_TWID_KOS: - return GPU_TXRFMT_RGB565 | GPU_TXRFMT_TWIDDLED; - case GL_UNSIGNED_SHORT_4_4_4_4_REV_TWID_KOS: - return GPU_TXRFMT_ARGB4444 | GPU_TXRFMT_TWIDDLED; - case GL_UNSIGNED_SHORT_1_5_5_5_REV_TWID_KOS: - return GPU_TXRFMT_ARGB1555 | GPU_TXRFMT_TWIDDLED; - case GL_COMPRESSED_RGB_565_VQ_KOS: - case GL_COMPRESSED_RGB_565_VQ_MIPMAP_KOS: - return GPU_TXRFMT_RGB565 | GPU_TXRFMT_NONTWIDDLED | GPU_TXRFMT_VQ_ENABLE; - case GL_COMPRESSED_RGB_565_VQ_TWID_KOS: - case GL_COMPRESSED_RGB_565_VQ_MIPMAP_TWID_KOS: - return GPU_TXRFMT_RGB565 | GPU_TXRFMT_TWIDDLED | GPU_TXRFMT_VQ_ENABLE; - case GL_COMPRESSED_ARGB_4444_VQ_TWID_KOS: - case GL_COMPRESSED_ARGB_4444_VQ_MIPMAP_TWID_KOS: - return GPU_TXRFMT_ARGB4444 | GPU_TXRFMT_TWIDDLED | GPU_TXRFMT_VQ_ENABLE; - case GL_COMPRESSED_ARGB_4444_VQ_KOS: - case GL_COMPRESSED_ARGB_4444_VQ_MIPMAP_KOS: - return GPU_TXRFMT_ARGB4444 | GPU_TXRFMT_NONTWIDDLED | GPU_TXRFMT_VQ_ENABLE; - case GL_COMPRESSED_ARGB_1555_VQ_KOS: - case GL_COMPRESSED_ARGB_1555_VQ_MIPMAP_KOS: - return GPU_TXRFMT_ARGB1555 | GPU_TXRFMT_NONTWIDDLED | GPU_TXRFMT_VQ_ENABLE; - case GL_COMPRESSED_ARGB_1555_VQ_TWID_KOS: - case GL_COMPRESSED_ARGB_1555_VQ_MIPMAP_TWID_KOS: - return GPU_TXRFMT_ARGB1555 | GPU_TXRFMT_TWIDDLED | GPU_TXRFMT_VQ_ENABLE; - case GL_COLOR_INDEX8_EXT: - return GPU_TXRFMT_PAL8BPP | GPU_TXRFMT_TWIDDLED; - case GL_COLOR_INDEX4_EXT: - return GPU_TXRFMT_PAL4BPP | GPU_TXRFMT_TWIDDLED; - default: - return 0; + case GL_RGB565_KOS: + return GPU_TXRFMT_RGB565 | GPU_TXRFMT_NONTWIDDLED; + case GL_ARGB4444_KOS: + return GPU_TXRFMT_ARGB4444 | GPU_TXRFMT_NONTWIDDLED; + case GL_ARGB1555_KOS: + return GPU_TXRFMT_ARGB1555 | GPU_TXRFMT_NONTWIDDLED; + case GL_RGB565_TWID_KOS: + return GPU_TXRFMT_RGB565 | GPU_TXRFMT_TWIDDLED; + case GL_ARGB4444_TWID_KOS: + return GPU_TXRFMT_ARGB4444 | GPU_TXRFMT_TWIDDLED; + case GL_ARGB1555_TWID_KOS: + return GPU_TXRFMT_ARGB1555 | GPU_TXRFMT_TWIDDLED; + case GL_COLOR_INDEX8_EXT: + return GPU_TXRFMT_PAL8BPP | GPU_TXRFMT_NONTWIDDLED; + case GL_COLOR_INDEX4_EXT: + return GPU_TXRFMT_PAL4BPP | GPU_TXRFMT_NONTWIDDLED; + case GL_COLOR_INDEX8_TWID_KOS: + return GPU_TXRFMT_PAL8BPP | GPU_TXRFMT_TWIDDLED; + case GL_COLOR_INDEX4_TWID_KOS: + return GPU_TXRFMT_PAL4BPP | GPU_TXRFMT_TWIDDLED; + case GL_COMPRESSED_ARGB_1555_VQ_KOS: + return GPU_TXRFMT_ARGB1555 | GPU_TXRFMT_VQ_ENABLE; + case GL_COMPRESSED_ARGB_1555_VQ_TWID_KOS: + return GPU_TXRFMT_ARGB1555 | GPU_TXRFMT_VQ_ENABLE | GPU_TXRFMT_TWIDDLED; + case GL_COMPRESSED_ARGB_4444_VQ_KOS: + return GPU_TXRFMT_ARGB4444 | GPU_TXRFMT_VQ_ENABLE; + case GL_COMPRESSED_ARGB_4444_VQ_TWID_KOS: + return GPU_TXRFMT_ARGB4444 | GPU_TXRFMT_VQ_ENABLE | GPU_TXRFMT_TWIDDLED; + case GL_COMPRESSED_RGB_565_VQ_KOS: + return GPU_TXRFMT_RGB565 | GPU_TXRFMT_VQ_ENABLE; + case GL_COMPRESSED_RGB_565_VQ_TWID_KOS: + return GPU_TXRFMT_RGB565 | GPU_TXRFMT_VQ_ENABLE | GPU_TXRFMT_TWIDDLED; + case GL_COMPRESSED_ARGB_1555_VQ_MIPMAP_KOS: + return GPU_TXRFMT_ARGB1555 | GPU_TXRFMT_VQ_ENABLE; + case GL_COMPRESSED_ARGB_1555_VQ_MIPMAP_TWID_KOS: + return GPU_TXRFMT_ARGB1555 | GPU_TXRFMT_VQ_ENABLE | GPU_TXRFMT_TWIDDLED; + case GL_COMPRESSED_ARGB_4444_VQ_MIPMAP_KOS: + return GPU_TXRFMT_ARGB4444 | GPU_TXRFMT_VQ_ENABLE; + case GL_COMPRESSED_ARGB_4444_VQ_MIPMAP_TWID_KOS: + return GPU_TXRFMT_ARGB4444 | GPU_TXRFMT_VQ_ENABLE | GPU_TXRFMT_TWIDDLED; + case GL_COMPRESSED_RGB_565_VQ_MIPMAP_KOS: + return GPU_TXRFMT_RGB565 | GPU_TXRFMT_VQ_ENABLE; + case GL_COMPRESSED_RGB_565_VQ_MIPMAP_TWID_KOS: + return GPU_TXRFMT_RGB565 | GPU_TXRFMT_VQ_ENABLE | GPU_TXRFMT_TWIDDLED; + default: + fprintf(stderr, "Unexpected format: %d\n", internalFormat); + _glKosThrowError(GL_INVALID_ENUM, __func__); + return 0; } } @@ -1064,7 +1132,13 @@ GL_FORCE_INLINE void _rgb888_to_rgba4444(const GLubyte* source, GLubyte* dest) { } GL_FORCE_INLINE void _rgb888_to_rgb565(const GLubyte* source, GLubyte* dest) { - *((GLushort*) dest) = ((source[0] & 0b11111000) << 8) | ((source[1] & 0b11111100) << 3) | (source[2] >> 3); + GLushort* d = (GLushort*) dest; + + uint16_t b = (source[2] >> 3) & 0x1f; + uint16_t g = ((source[1] >> 2) & 0x3f) << 5; + uint16_t r = ((source[0] >> 3) & 0x1f) << 11; + + *d = r | g | b; } GL_FORCE_INLINE void _rgb565_to_rgb8888(const GLubyte* source, GLubyte* dest) { @@ -1121,113 +1195,103 @@ static inline void _a8_to_argb4444(const GLubyte* source, GLubyte* dest) { *((GLushort*) dest) = (color << 8) | color; } -static TextureConversionFunc _determineConversion(GLint internalFormat, GLenum format, GLenum type) { - switch(internalFormat) { - case GL_ALPHA: { - if(format == GL_ALPHA) { - /* Dreamcast doesn't really support GL_ALPHA internally, so store as argb with each rgb value as white */ - /* Applying alpha values to all channels seems a better option*/ - return _a8_to_argb4444; - } else if(type == GL_UNSIGNED_BYTE && format == GL_RGBA) { - return _rgba8888_to_a000; - } else if(type == GL_BYTE && format == GL_RGBA) { - return _rgba8888_to_a000; - } - } break; - case GL_RED: { - if(type == GL_UNSIGNED_BYTE && format == GL_RED) { - /* Dreamcast doesn't really support GL_RED internally, so store as rgb */ - return _r8_to_rgb565; - } - } break; - case GL_RGB: { - if(type == GL_UNSIGNED_BYTE && format == GL_RGB) { - return _rgb888_to_rgb565; - } else if(type == GL_UNSIGNED_BYTE && format == GL_RGBA) { - return _rgba8888_to_rgb565; - } else if(type == GL_BYTE && format == GL_RGB) { - return _rgb888_to_rgb565; - } else if(type == GL_UNSIGNED_BYTE && format == GL_RED) { - return _r8_to_rgb565; - } - } break; - case GL_RGBA: { - if(type == GL_UNSIGNED_BYTE && format == GL_RGBA) { - return _rgba8888_to_argb4444; - } else if (type == GL_BYTE && format == GL_RGBA) { - return _rgba8888_to_argb4444; - } else if(type == GL_UNSIGNED_SHORT_4_4_4_4 && format == GL_RGBA) { - return _rgba4444_to_argb4444; - } - } break; - case GL_RGBA8: - case GL_RGBA4: - case GL_RGB5_A1: - case GL_RGB565_KOS: - if(type == GL_UNSIGNED_BYTE && format == GL_RGBA) { - return _rgba8888_to_rgba8888; - } - else - if (type == GL_BYTE && format == GL_RGBA) { - return _rgba8888_to_rgba8888; - } - else - if(type == GL_UNSIGNED_BYTE && format == GL_RGB) { - return _rgb888_to_rgba8888; - } - else - if (type == GL_BYTE && format == GL_RGB) { - return _rgb888_to_rgba8888; - } - else - if(type == GL_UNSIGNED_SHORT_4_4_4_4 && format == GL_RGBA) { - return _rgba4444_to_rgba8888; - } - else - if(type == GL_UNSIGNED_BYTE && format == GL_RGBA4) { - return _rgba4444_to_rgba8888; - } - else - if(type == GL_UNSIGNED_BYTE && format == GL_RGB5_A1) { - return _rgba5551_to_rgba8888; - } - else - if(type == GL_UNSIGNED_BYTE && format == GL_RGB565_KOS) { - return _rgb565_to_rgb8888; - } - break; - case GL_COLOR_INDEX8_EXT: - if(format == GL_COLOR_INDEX) { - switch(type) { - case GL_BYTE: - case GL_UNSIGNED_BYTE: - return _i8_to_i8; - default: - break; +enum ConversionType { + CONVERSION_TYPE_NONE, + CONVERSION_TYPE_CONVERT = 1, + CONVERSION_TYPE_TWIDDLE = 2, + CONVERSION_TYPE_PACK = 4, + CONVERSION_TYPE_INVALID = -1 +}; + + +/* Given an cleaned internal format, and the passed format and type, this returns: + * + * 0 if not conversion is necessary + * 1 if a conversion is necessary (func will be set) + * 2 if twiddling is necessary + * 3 if twiddling and conversion is necessary (func will be set) + * -1 if a conversion is unsupported + * + */ +static int _determineConversion(GLint internalFormat, GLenum format, GLenum type, TextureConversionFunc* func) { + static struct Entry { + TextureConversionFunc func; + GLint internalFormat; + GLenum format; + GLenum type; + bool twiddle; + bool pack; // If true, each value is packed after conversion into half-bytes + } conversions [] = { + {_a8_to_argb4444, GL_ARGB4444_KOS, GL_ALPHA, GL_UNSIGNED_BYTE, false, false}, + {_rgba8888_to_argb4444, GL_ARGB4444_KOS, GL_RGBA, GL_UNSIGNED_BYTE, false, false}, + {_rgba4444_to_argb4444, GL_ARGB4444_KOS, GL_RGBA, GL_UNSIGNED_SHORT_4_4_4_4, false, false}, + {NULL, GL_ARGB4444_KOS, GL_BGRA, GL_UNSIGNED_SHORT_4_4_4_4_REV, false, false}, + {NULL, GL_ARGB4444_TWID_KOS, GL_BGRA, GL_UNSIGNED_SHORT_4_4_4_4_REV_TWID_KOS, false, false}, + {_rgba8888_to_argb4444, GL_ARGB4444_TWID_KOS, GL_RGBA, GL_UNSIGNED_BYTE, true, false}, + {NULL, GL_ARGB1555_KOS, GL_BGRA, GL_UNSIGNED_SHORT_1_5_5_5_REV, false, false}, + {NULL, GL_ARGB1555_TWID_KOS, GL_BGRA, GL_UNSIGNED_SHORT_1_5_5_5_REV_TWID_KOS, false, false}, + {_rgba8888_to_rgb565, GL_RGB565_KOS, GL_RGBA, GL_UNSIGNED_BYTE, false, false}, + {_r8_to_rgb565, GL_RGB565_KOS, GL_RED, GL_UNSIGNED_BYTE, false, false}, + {_rgb888_to_rgb565, GL_RGB565_KOS, GL_RGB, GL_UNSIGNED_BYTE, false, false}, + {_rgba8888_to_rgb565, GL_RGB565_KOS, GL_RGBA, GL_UNSIGNED_BYTE, false, false}, + {_r8_to_rgb565, GL_RGB565_KOS, GL_RED, GL_UNSIGNED_BYTE, false, false}, + {NULL, GL_RGB565_KOS, GL_RGB, GL_UNSIGNED_SHORT_5_6_5, false, false}, + {NULL, GL_RGB565_TWID_KOS, GL_RGB, GL_UNSIGNED_SHORT_5_6_5_TWID_KOS, false, false}, + {_rgb888_to_rgb565, GL_RGB565_TWID_KOS, GL_RGB, GL_UNSIGNED_BYTE, true, false}, + {NULL, GL_COLOR_INDEX8_EXT, GL_COLOR_INDEX, GL_UNSIGNED_BYTE, false, false}, + {NULL, GL_COLOR_INDEX8_EXT, GL_COLOR_INDEX, GL_BYTE, false, false}, + {NULL, GL_COLOR_INDEX8_TWID_KOS, GL_COLOR_INDEX, GL_UNSIGNED_BYTE, true, false}, + {NULL, GL_COLOR_INDEX8_TWID_KOS, GL_COLOR_INDEX, GL_BYTE, true, false}, + {NULL, GL_COLOR_INDEX4_EXT, GL_COLOR_INDEX, GL_UNSIGNED_BYTE, false, true}, + {NULL, GL_COLOR_INDEX4_EXT, GL_COLOR_INDEX, GL_BYTE, false, true}, + + {NULL, GL_COLOR_INDEX4_EXT, GL_COLOR_INDEX4_EXT, GL_UNSIGNED_BYTE, false, false}, + {NULL, GL_COLOR_INDEX4_EXT, GL_COLOR_INDEX4_EXT, GL_BYTE, false, false}, + {NULL, GL_COLOR_INDEX4_TWID_KOS, GL_COLOR_INDEX, GL_UNSIGNED_BYTE, true, true}, + {NULL, GL_COLOR_INDEX4_TWID_KOS, GL_COLOR_INDEX, GL_BYTE, true, true}, + + {NULL, GL_COLOR_INDEX4_TWID_KOS, GL_COLOR_INDEX4_EXT, GL_UNSIGNED_BYTE, true, false}, + {NULL, GL_COLOR_INDEX4_TWID_KOS, GL_COLOR_INDEX4_EXT, GL_BYTE, true, false}, + + {NULL, GL_COLOR_INDEX8_EXT, GL_COLOR_INDEX8_EXT, GL_UNSIGNED_BYTE, false, false}, + {NULL, GL_COLOR_INDEX8_EXT, GL_COLOR_INDEX8_EXT, GL_BYTE, false, false}, + {NULL, GL_COLOR_INDEX8_TWID_KOS, GL_COLOR_INDEX8_TWID_KOS, GL_UNSIGNED_BYTE, false, false}, + {NULL, GL_COLOR_INDEX8_TWID_KOS, GL_COLOR_INDEX8_TWID_KOS, GL_BYTE, false, false}, + {NULL, GL_COLOR_INDEX8_TWID_KOS, GL_COLOR_INDEX8_EXT, GL_UNSIGNED_BYTE, true, false}, + {NULL, GL_COLOR_INDEX8_TWID_KOS, GL_COLOR_INDEX8_EXT, GL_BYTE, true, false}, + + {NULL, GL_RGBA8, GL_RGBA, GL_UNSIGNED_BYTE, false, false}, + {NULL, GL_RGBA8, GL_RGBA, GL_BYTE, false, false}, + {_rgb888_to_rgba8888, GL_RGBA8, GL_RGB, GL_UNSIGNED_BYTE, false, false}, + {_rgb888_to_rgba8888, GL_RGBA8, GL_RGB, GL_BYTE, false, false}, + {_rgb888_to_argb4444, GL_RGBA4, GL_RGB, GL_UNSIGNED_BYTE, false, false}, + {_rgb888_to_argb4444, GL_RGBA4, GL_RGB, GL_BYTE, false, false}, + {_rgba8888_to_argb4444, GL_RGBA4, GL_RGBA, GL_UNSIGNED_BYTE, false, false}, + {_rgba8888_to_argb4444, GL_RGBA4, GL_RGBA, GL_BYTE, false, false}, + }; + + for(size_t i = 0; i < sizeof(conversions) / sizeof(struct Entry); ++i) { + struct Entry* e = conversions + i; + if(e->format == format && e->internalFormat == internalFormat && e->type == type) { + *func = e->func; + + int ret = (e->func) ? CONVERSION_TYPE_CONVERT : CONVERSION_TYPE_NONE; + + if(e->twiddle) { + ret |= CONVERSION_TYPE_TWIDDLE; } - } - break; - default: - fprintf(stderr, "Unsupported conversion: %x -> %x, %x\n", internalFormat, format, type); - break; - } - return 0; -} -static GLboolean _isSupportedFormat(GLenum format) { - switch(format) { - case GL_ALPHA: - case GL_RED: - case GL_RGB: - case GL_RGBA: - case GL_BGRA: - case GL_COLOR_INDEX: - case GL_UNSIGNED_SHORT_4_4_4_4_REV_TWID_KOS: - return GL_TRUE; - default: - return GL_FALSE; + if(e->pack) { + ret |= CONVERSION_TYPE_PACK; + } + + return ret; + } } + + fprintf(stderr, "No conversion found for format: 0x%x, internalFormat: 0x%x, type: 0x%x\n", format, internalFormat, type); + return CONVERSION_TYPE_INVALID; } GLboolean _glIsMipmapComplete(const TextureObject* obj) { @@ -1271,14 +1335,14 @@ void _glAllocateSpaceForMipmaps(TextureObject* active) { memcpy(temp, active->data, size); /* Free the PVR data */ - yalloc_free(YALLOC_BASE, active->data); + alloc_free(ALLOC_BASE, active->data); active->data = NULL; } /* Figure out how much room to allocate for mipmaps */ GLuint bytes = _glGetMipmapDataSize(active); - active->data = yalloc_alloc_and_defrag(bytes); + active->data = alloc_malloc_and_defrag(bytes); gl_assert(active->data); @@ -1295,54 +1359,53 @@ void _glAllocateSpaceForMipmaps(TextureObject* active) { active->baseDataOffset = _glGetMipmapDataOffset(active, 0); } -#define STRINGIFY(x) #x -#define TOSTRING(x) STRINGIFY(x) -#define INFO_MSG(x) fprintf(stderr, "%s:%s > %s\n", __FILE__, TOSTRING(__LINE__), x) - -void APIENTRY glTexImage2D(GLenum target, GLint level, GLint internalFormat, - GLsizei width, GLsizei height, GLint border, - GLenum format, GLenum type, const GLvoid *data) { - - TRACE(); - +static bool _glTexImage2DValidate(GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type) { if(target != GL_TEXTURE_2D) { INFO_MSG(""); _glKosThrowError(GL_INVALID_ENUM, __func__); - return; + return false; } if (width > 1024 || height > 1024){ INFO_MSG("Invalid texture size"); _glKosThrowError(GL_INVALID_VALUE, __func__); - return; + return false; } - if(format != GL_COLOR_INDEX) { - if(!_isSupportedFormat(format)) { - INFO_MSG("Unsupported format"); - _glKosThrowError(GL_INVALID_ENUM, __func__); - return; - } + GLint validFormats [] = { + GL_ALPHA, + GL_LUMINANCE, + GL_INTENSITY, + GL_LUMINANCE_ALPHA, + GL_RED, + GL_RGB, + GL_RGBA, + GL_BGRA, + GL_COLOR_INDEX, + GL_COLOR_INDEX4_EXT, /* Extension, this is just so glCompressedTexImage can pass-thru */ + GL_COLOR_INDEX8_EXT, /* Extension, this is just so glCompressedTexImage can pass-thru */ + GL_COLOR_INDEX4_TWID_KOS, /* Extension, this is just so glCompressedTexImage can pass-thru */ + GL_COLOR_INDEX8_TWID_KOS, /* Extension, this is just so glCompressedTexImage can pass-thru */ + 0 + }; + if(_glCheckValidEnum(format, validFormats, __func__) != 0) { + return false; + } + + if(format != GL_COLOR_INDEX4_EXT && format != GL_COLOR_INDEX4_TWID_KOS) { /* Abuse determineStride to see if type is valid */ if(_determineStride(GL_RGBA, type) == -1) { INFO_MSG(""); _glKosThrowError(GL_INVALID_ENUM, __func__); - return; + return false; } + } - internalFormat = _cleanInternalFormat(internalFormat); - if(internalFormat == -1) { - INFO_MSG(""); - _glKosThrowError(GL_INVALID_VALUE, __func__); - return; - } - } else { - if(internalFormat != GL_COLOR_INDEX8_EXT && internalFormat != GL_COLOR_INDEX4_EXT) { - INFO_MSG(""); - _glKosThrowError(GL_INVALID_ENUM, __func__); - return; - } + if(_cleanInternalFormat(internalFormat) == -1) { + INFO_MSG(""); + _glKosThrowError(GL_INVALID_VALUE, __func__); + return false; } GLuint w = width; @@ -1352,7 +1415,7 @@ void APIENTRY glTexImage2D(GLenum target, GLint level, GLint internalFormat, /* Width is not a power of two. Must be!*/ INFO_MSG(""); _glKosThrowError(GL_INVALID_VALUE, __func__); - return; + return false; } @@ -1360,7 +1423,7 @@ void APIENTRY glTexImage2D(GLenum target, GLint level, GLint internalFormat, /* height is not a power of two. Must be!*/ INFO_MSG(""); _glKosThrowError(GL_INVALID_VALUE, __func__); - return; + return false; } } else { /* Mipmap Errors, kos crashes if 1x1 */ @@ -1368,26 +1431,42 @@ void APIENTRY glTexImage2D(GLenum target, GLint level, GLint internalFormat, gl_assert(ACTIVE_TEXTURE < MAX_GLDC_TEXTURE_UNITS); gl_assert(TEXTURE_UNITS[ACTIVE_TEXTURE]); TEXTURE_UNITS[ACTIVE_TEXTURE]->mipmap |= (1 << level); - return; + return false; } } if(level < 0) { INFO_MSG(""); _glKosThrowError(GL_INVALID_VALUE, __func__); - return; + return false; } if(level > 0 && width != height) { INFO_MSG("Tried to set non-square texture as a mipmap level"); printf("[GL ERROR] Mipmaps cannot be supported on non-square textures\n"); _glKosThrowError(GL_INVALID_OPERATION, __func__); - return; + return false; } if(border) { INFO_MSG(""); _glKosThrowError(GL_INVALID_VALUE, __func__); + return false; + } + + return true; +} + +static inline GLboolean is4BPPFormat(GLenum format) { + return format == GL_COLOR_INDEX4_EXT || format == GL_COLOR_INDEX4_TWID_KOS; +} + +void APIENTRY glTexImage2D(GLenum target, GLint level, GLint internalFormat, + GLsizei width, GLsizei height, GLint border, + GLenum format, GLenum type, const GLvoid *data) { + + TRACE(); + if(!_glTexImage2DValidate(target, level, internalFormat, width, height, border, format, type)) { return; } @@ -1400,21 +1479,23 @@ void APIENTRY glTexImage2D(GLenum target, GLint level, GLint internalFormat, return; } - gl_assert(active); - GLuint original_id = active->index; - - GLboolean isPaletted = (internalFormat == GL_COLOR_INDEX8_EXT || internalFormat == GL_COLOR_INDEX4_EXT) ? GL_TRUE : GL_FALSE; - - /* Calculate the format that we need to convert the data to */ - GLuint pvr_format = _determinePVRFormat(internalFormat, type); + GLboolean isPaletted = ( + internalFormat == GL_COLOR_INDEX8_EXT || + internalFormat == GL_COLOR_INDEX4_EXT || + internalFormat == GL_COLOR_INDEX4_TWID_KOS || + internalFormat == GL_COLOR_INDEX8_TWID_KOS + ) ? GL_TRUE : GL_FALSE; + GLenum cleanInternalFormat = _cleanInternalFormat(internalFormat); + GLuint pvrFormat = _determinePVRFormat(cleanInternalFormat); + GLuint originalId = active->index; if(active->data && (level == 0)) { /* pre-existing texture - check if changed */ if(active->width != width || active->height != height || - active->color != pvr_format) { + active->internalFormat != cleanInternalFormat) { /* changed - free old texture memory */ - yalloc_free(YALLOC_BASE, active->data); + alloc_free(ALLOC_BASE, active->data); active->data = NULL; active->mipmap = 0; active->mipmapCount = 0; @@ -1428,12 +1509,25 @@ void APIENTRY glTexImage2D(GLenum target, GLint level, GLint internalFormat, /* All colour formats are represented as shorts internally. Paletted textures * are represented by byte indexes (which look up into a color table) */ - GLint destStride = isPaletted ? 1 : 2; - GLuint bytes = (width * height * destStride); + GLint destStride = _determineStrideInternal(cleanInternalFormat); + GLint sourceStride = _determineStride(format, type); + GLuint srcBytes = (width * height * sourceStride); + GLuint destBytes = (width * height * destStride); - //special case 4bpp - if(internalFormat == GL_COLOR_INDEX4_EXT){ - bytes >>= 1; + TextureConversionFunc conversion; + int needs_conversion = _determineConversion(cleanInternalFormat, format, type, &conversion); + + // Hack: If we're doing a 4bpp source (via glCompressedTexture...) + // halve the srcBytes + if(format == GL_COLOR_INDEX4_EXT || format == GL_COLOR_INDEX4_TWID_KOS) { + srcBytes /= 2; + } + + /* If we're packing stuff, then the dest size is half what it would be */ + if((needs_conversion & CONVERSION_TYPE_PACK) == CONVERSION_TYPE_PACK) { + destBytes /= 2; + } else if(internalFormat == GL_COLOR_INDEX4_EXT || internalFormat == GL_COLOR_INDEX4_TWID_KOS) { + destBytes /= 2; } if(!active->data) { @@ -1445,20 +1539,21 @@ void APIENTRY glTexImage2D(GLenum target, GLint level, GLint internalFormat, /* need texture memory */ active->width = width; active->height = height; - active->color = pvr_format; + active->color = pvrFormat; + active->internalFormat = cleanInternalFormat; /* Set the required mipmap count */ active->mipmapCount = _glGetMipmapLevelCount(active); active->mipmap_bias = GL_KOS_INTERNAL_DEFAULT_MIPMAP_LOD_BIAS; active->dataStride = destStride; - active->baseDataSize = bytes; + active->baseDataSize = destBytes; - gl_assert(bytes); + gl_assert(destBytes); if(level > 0) { /* If we're uploading a mipmap level, we need to allocate the full amount of space */ _glAllocateSpaceForMipmaps(active); } else { - active->data = yalloc_alloc_and_defrag(active->baseDataSize); + active->data = alloc_malloc_and_defrag(active->baseDataSize); } active->isCompressed = GL_FALSE; @@ -1476,139 +1571,122 @@ void APIENTRY glTexImage2D(GLenum target, GLint level, GLint internalFormat, /* If we run out of PVR memory just return */ if(!active->data) { _glKosThrowError(GL_OUT_OF_MEMORY, __func__); - gl_assert(active->index == original_id); + gl_assert(active->index == originalId); return; } /* Mark this level as set in the mipmap bitmask */ active->mipmap |= (1 << level); - /* Let's assume we need to convert */ - GLboolean needsConversion = GL_TRUE; - - /* Let's assume we need twiddling - we always store things twiddled! */ - GLboolean needsTwiddling = GL_TRUE; - - /* - * These are the only formats where the source format passed in matches the pvr format. - * Note the REV formats + GL_BGRA will reverse to ARGB which is what the PVR supports - */ - if(format == GL_COLOR_INDEX) { - /* Don't convert color indexes */ - needsConversion = GL_FALSE; - - if(type == GL_UNSIGNED_BYTE_TWID_KOS) { - needsTwiddling = GL_FALSE; - } - } else if(format == GL_BGRA && type == GL_UNSIGNED_SHORT_4_4_4_4_REV && internalFormat == GL_RGBA) { - needsConversion = GL_FALSE; - } else if(format == GL_BGRA && type == GL_UNSIGNED_SHORT_1_5_5_5_REV && internalFormat == GL_RGBA) { - needsConversion = GL_FALSE; - } else if(format == GL_RGB && type == GL_UNSIGNED_SHORT_5_6_5 && internalFormat == GL_RGB) { - needsConversion = GL_FALSE; - } else if(format == GL_RGB && type == GL_UNSIGNED_SHORT_5_6_5_TWID_KOS && internalFormat == GL_RGB) { - needsConversion = GL_FALSE; - needsTwiddling = GL_FALSE; - } else if(format == GL_BGRA && type == GL_UNSIGNED_SHORT_1_5_5_5_REV_TWID_KOS && internalFormat == GL_RGBA) { - needsConversion = GL_FALSE; - needsTwiddling = GL_FALSE; - } else if(format == GL_BGRA && type == GL_UNSIGNED_SHORT_4_4_4_4_REV_TWID_KOS && internalFormat == GL_RGBA) { - needsConversion = GL_FALSE; - needsTwiddling = GL_FALSE; - } - GLubyte* targetData = (active->baseDataOffset == 0) ? active->data : _glGetMipmapLocation(active, level); gl_assert(targetData); - GLubyte* conversionBuffer = NULL; - - if(!data) { - /* No data? Do nothing! */ - gl_assert(active->index == original_id); + if(needs_conversion < 0) { + _glKosThrowError(GL_INVALID_VALUE, __func__); + INFO_MSG("Couldn't find necessary texture conversion\n"); return; - } else if(!needsConversion && !needsTwiddling) { - gl_assert(targetData); - gl_assert(data); - gl_assert(bytes); - - /* No conversion? Just copy the data, and the pvr_format is correct */ - FASTCPY(targetData, data, bytes); - gl_assert(active->index == original_id); - return; - } else if(needsConversion) { - TextureConversionFunc convert = _determineConversion( - internalFormat, - format, - type - ); - - if(!convert) { - INFO_MSG("Couldn't find conversion\n"); - _glKosThrowError(GL_INVALID_OPERATION, __func__); - return; - } - - GLint stride = _determineStride(format, type); - gl_assert(stride > -1); - - if(stride == -1) { + } else if(needs_conversion > 0) { + /* Convert the data */ + if(sourceStride == -1) { INFO_MSG("Stride was not detected\n"); _glKosThrowError(GL_INVALID_OPERATION, __func__); return; } - conversionBuffer = malloc(bytes); + GLubyte* conversionBuffer = (GLubyte*) memalign(32, srcBytes); + const GLubyte* src = data; + GLubyte* dst = conversionBuffer; - GLubyte* dest = conversionBuffer; - const GLubyte* source = data; + bool pack = (needs_conversion & CONVERSION_TYPE_PACK) == CONVERSION_TYPE_PACK; + needs_conversion &= ~CONVERSION_TYPE_PACK; - gl_assert(conversionBuffer); - gl_assert(source); - - /* Perform the conversion */ - GLuint i; - for(i = 0; i < bytes; i += destStride) { - convert(source, dest); - - dest += destStride; - source += stride; - } - } - - if(needsTwiddling) { - const GLubyte *pixels = (GLubyte*) (conversionBuffer) ? conversionBuffer : data; - - if(internalFormat == GL_COLOR_INDEX8_EXT) { - GPUTextureTwiddle8PPP((void*) pixels, targetData, width, height); - } - else{ - if(internalFormat == GL_COLOR_INDEX4_EXT) { - GPUTextureTwiddle4PPP((void*) pixels, targetData, width, height); + if(needs_conversion == CONVERSION_TYPE_CONVERT) { + // Convert + for(uint32_t i = 0; i < (width * height); ++i) { + conversion(src, dst); + dst += destStride; + src += sourceStride; } - else { - GPUTextureTwiddle16BPP((void*) pixels, targetData, width, height); + } else if(needs_conversion == 2) { + // Twiddle + if(is4BPPFormat(internalFormat) && is4BPPFormat(format)) { + // Special case twiddling. We have to unpack each src value + // and repack into the right place + for(uint32_t i = 0; i < (width * height); ++i) { + uint32_t newLocation = twid_location(i, width, height); + + assert(newLocation < (width * height)); + assert((newLocation / 2) < destBytes); + assert((i / 2) < srcBytes); + + // This is the src/dest byte, but we need to figure + // out which half based on the odd/even of i + src = &((uint8_t*) data)[i / 2]; + dst = &conversionBuffer[newLocation / 2]; + + uint8_t src_value = (i % 2) == 0 ? (*src >> 4) : (*src & 0xF); + + if(newLocation % 2 == 0) { + *dst = (*dst & 0xF) | (src_value << 4); + } else { + *dst = (*dst & 0xF0) | (src_value & 0xF); + } + } + } else { + for(uint32_t i = 0; i < (width * height); ++i) { + uint32_t newLocation = twid_location(i, width, height); + dst = conversionBuffer + (destStride * newLocation); + + for(int j = 0; j < destStride; ++j) + *dst++ = *src++; + + src += sourceStride; + } + } + } else if(needs_conversion == 3) { + // Convert + twiddle + for(uint32_t i = 0; i < (width * height); ++i) { + uint32_t newLocation = twid_location(i, width, height); + dst = conversionBuffer + (destStride * newLocation); + src = data + (sourceStride * i); + conversion(src, dst); + } + } else if(pack) { + FASTCPY(conversionBuffer, data, srcBytes); + } + + if(pack) { + assert(isPaletted); + size_t dst_byte = 0; + for(size_t src_byte = 0; src_byte < srcBytes; ++src_byte) { + uint8_t v = conversionBuffer[src_byte]; + + if(src_byte % 1 == 0) { + conversionBuffer[dst_byte] = (conversionBuffer[dst_byte] & 0xF) | ((v & 0xF0) << 4); + } else { + conversionBuffer[dst_byte] = (conversionBuffer[dst_byte] & 0xF0) | (v & 0xF); + } + + if(src_byte % 1 == 0) { + dst_byte++; + } } } - /* We make sure we remove nontwiddled and add twiddled. We could always - * make it twiddled when determining the format but I worry that would make the - * code less flexible to change in the future */ - active->color &= ~(1 << 26); - } else { - /* We should only get here if we converted twiddled data... which is never currently */ - gl_assert(conversionBuffer); - - // We've already converted the data and we - // don't need to twiddle it! - FASTCPY(targetData, conversionBuffer, bytes); - } - - if(conversionBuffer) { + FASTCPY(targetData, conversionBuffer, destBytes); free(conversionBuffer); - conversionBuffer = NULL; + } else { + /* No conversion necessary, we can just upload data directly */ + gl_assert(targetData); + gl_assert(data); + gl_assert(destBytes); + + /* No conversion? Just copy the data, and the pvr_format is correct */ + FASTCPY(targetData, data, destBytes); + gl_assert(active->index == originalId); } - gl_assert(active->index == original_id); + gl_assert(active->index == originalId); _glGPUStateMarkDirty(); } @@ -1762,15 +1840,21 @@ GLAPI void APIENTRY glColorTableEXT(GLenum target, GLenum internalFormat, GLsize GLint sourceStride = _determineStride(format, type); + /* We always store the palette in RAM in RGBA8888. We pack when we set + * the individual colours in the PVR */ + GLint destStride = 4; + gl_assert(sourceStride > -1); - TextureConversionFunc convert = _determineConversion( - INTERNAL_PALETTE_FORMAT, + TextureConversionFunc convert; + int ret = _determineConversion( + GL_RGBA8, format, - type + type, + &convert ); - if(!convert) { + if(ret < 0) { _glKosThrowError(GL_INVALID_OPERATION, __func__); return; } @@ -1811,8 +1895,8 @@ GLAPI void APIENTRY glColorTableEXT(GLenum target, GLenum internalFormat, GLsize palette->bank = -1; } - palette->data = (GLubyte*) malloc(width * 4); - palette->format = format; + palette->data = (GLubyte*) malloc(width * destStride); + palette->format = internalFormat; palette->width = width; palette->size = (width > 16) ? 256 : 16; gl_assert(palette->size == 16 || palette->size == 256); @@ -1837,10 +1921,15 @@ GLAPI void APIENTRY glColorTableEXT(GLenum target, GLenum internalFormat, GLsize /* Transform and copy the source palette to the texture */ GLushort i = 0; for(; i < width; ++i) { - convert(src, dst); - - src += sourceStride; - dst += 4; + if(convert) { + convert(src, dst); + src += sourceStride; + dst += destStride; + } else { + for(int j = 0; j < sourceStride; ++j) { + *dst++ = *src++; + } + } } _glApplyColorTable(palette); @@ -1951,36 +2040,35 @@ GLAPI void APIENTRY glReadPixels(GLint x, GLint y, GLsizei width, GLsizei height gl_assert(0 && "Not Implemented"); } GLuint _glMaxTextureMemory() { - return YALLOC_SIZE; + return ALLOC_SIZE; } GLuint _glFreeTextureMemory() { - return yalloc_count_free(YALLOC_BASE); + return alloc_count_free(ALLOC_BASE); } GLuint _glUsedTextureMemory() { - return YALLOC_SIZE - _glFreeTextureMemory(); + return ALLOC_SIZE - _glFreeTextureMemory(); } GLuint _glFreeContiguousTextureMemory() { - return yalloc_count_continuous(YALLOC_BASE); + return alloc_count_continuous(ALLOC_BASE); +} + +static void update_data_pointer(void* src, void* dst, void*) { + for(size_t id = 0; id < MAX_TEXTURE_COUNT; id++){ + TextureObject* txr = (TextureObject*) named_array_get(&TEXTURE_OBJECTS, id); + if(txr && txr->data == src) { + fprintf(stderr, "Defrag moved 0x%x -> 0x%x\n", src, dst); + gl_assert(txr->index == id); + txr->data = dst; + return; + } + } } GLAPI GLvoid APIENTRY glDefragmentTextureMemory_KOS(void) { - yalloc_defrag_start(YALLOC_BASE); - - GLuint id; - - /* Replace all texture pointers */ - for(id = 0; id < MAX_TEXTURE_COUNT; id++){ - TextureObject* txr = (TextureObject*) named_array_get(&TEXTURE_OBJECTS, id); - if(txr){ - gl_assert(txr->index == id); - txr->data = yalloc_defrag_address(YALLOC_BASE, txr->data); - } - } - - yalloc_defrag_commit(YALLOC_BASE); + alloc_run_defrag(ALLOC_BASE, update_data_pointer, 5, NULL); } GLAPI void APIENTRY glGetTexImage(GLenum tex, GLint lod, GLenum format, GLenum type, GLvoid* img) { diff --git a/GL/yalloc/LICENSE b/GL/yalloc/LICENSE deleted file mode 100644 index 8aa2645..0000000 --- a/GL/yalloc/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) [year] [fullname] - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/GL/yalloc/README.md b/GL/yalloc/README.md deleted file mode 100644 index ca23ec2..0000000 --- a/GL/yalloc/README.md +++ /dev/null @@ -1,158 +0,0 @@ -# Summary - -yalloc is a memory efficient allocator which is intended for embedded -applications that only have a low amount of RAM and want to maximize its -utilization. Properties of the allocator: - - - pools can be up to 128k - - user data is 32bit aligned - - 4 bytes overhead per allocation - - supports defragmentation - - uses a free list for first fit allocation strategy (most recently freed - blocks are used first) - - extensively tested (see section below) - - MIT license - -# Defragmentation - -This feature was the initial motivation for this implementation. Especially -when dealing with highly memory constrained environments fragmenting memory -pools can be annoying. For this reason this implementation supports -defragmentation which moves all allocated blocks into a contiguous range at the -beginning of the pool, leaving a maximized free range at the end. - -As there is no garbage collector or other runtime system involved that updates -the references, the application must do so. This is done in three steps: - - 1. yalloc_defrag_start() is called. This calculates the new - post-defragmentation-addresses for all allocations, but otherwise leaves - the allocations untouched. - - 2. yalloc_defrag_address() is called by the application for every pointer that - points to an allocation. It returns the post-defragmentation-address for - the allocation. The application must update all its relevant pointers this - way. Care must be taken not not yet dereference that moved pointers. If the - application works with hierarchical data then this can easily be done by - updating the pointers button up (first the leafs then their parents). - - 3. yalloc_defrag_commit() is called to finally perform the defragmentation. - All allocated blocks are moved to their post-defragmentation-address and - the application can continue using the pool the normal way. - -It is up to the application when (and if) it performs defragmentation. One -strategy would be to delay it until an allocation failure. Another approach -would be to perform the defragmentation regularly when there is nothing else to -do. - -# Configurable Defines - -INTERNAL_VALIDATE - -If this is not defined on the compiler commandline it will be defined as 0 if -NDEBUG is defined and otherwise as 1. If you want to disable internal -validation when NDEBUG is not defined then define INERNAL_VALIDATE as 0 on the -compiler commandline. - -If it is nonzero the heap will be validated via a bunch of assert() calls at -the end of every function that modifies the heap. This has roughly O(N*M) -overhead where N is the number of allocated blocks and M the number of free -blocks in a heap. For applications with enough live allocations this will get -significant. - -YALLOC_VALGRIND - -If this is defined in yalloc.c and NVALGRIND is not defined then -valgrind/memcheck.h is included and the the allocator functions tell valgrind -about the pool, the allocations and makes the block headers inaccessible outside -of yalloc-functions. This allows valgrind to detect a lot of the accidents that -can happen when dealing dynamic memory. This also adds some overhead for every -yalloc-call because most of them will "unprotect" the internal structure on -entry and "protect" it again (marking it as inaccessible for valgrind) before -returning. - -# Tests - -The tests rely on internal validation of the pool (see INTERNAL_VALIDATE) to -check that no assumptions about the internal structure of the pool are -violated. They additionally check for correctness of observations that can be -made by using the public functions of the allocator (like checking if user data -stays unmodified). There are a few different scripts that run tests: - - - run_coverage.sh runs a bunch of testfunctions that are carefully crafted to - cover all code paths. Coverage data is generated by clang and a summary is - shown at the end of the test. - - - run_valgrind.sh tests if the valgrind integration is working as expected, - runs the functions from the coverage test and some randomly generated - testcases under valgrind. - - - run_libfuzzer.sh uses libfuzzer from clang to generate interesting testcases - and runs them in multiple jobs in parallel for 10 seconds. It also generates - coverage data at the end (it always got 100% coverage in my testruns). - -All tests exit with 0 and print "All fine!" at the end if there where no -errors. Coverage deficits are not counted as error, so you have to look at the -summary (they should show 100% coverage!). - - -# Implementation Details - -The Headers and the user data are 32bit aligned. Headers have two 16bit fields -where the high 15 bits represent offsets (relative to the pools address) to the -previous/next block. The macros HDR_PTR() and HDR_OFFSET() are used to -translate an offset to an address and back. The 32bit alignment is exploited to -allow pools of up to 128k with that 15 significant bits. - -A pool is always occupied by non-overlapping blocks that link to their -previous/next block in address order via the prev/next field of Header. - -Free blocks are always joined: No two free blocks will ever be neighbors. - -Free blocks have an additional header of the same structure. This additional -header is used to build a list of free blocks (independent of their address -order). - -yalloc_free() will insert the freed block to the front of the free list. -yalloc_alloc() searches that list front to back and takes the first block that -is big enough to satisfy the allocation. - -There is always a Header at the front and at the end of the pool. The Header at -the end is degenerate: It is marked as "used" but has no next block (which is -usually used to determine the size of a block). - -The prev-field of the very first block in the pool has special meaning: It -points to the first free block in the pool. Or, if the pool is currently -defragmenting (after yalloc_defrag_start() and before yalloc_defrag_commit()), -points to the last header of the pool. This state can be recognized by checking -if it points to an empty block (normal pool state) or a used block -(defragmentation in progress). This logic can be seen in -yalloc_defrag_in_progress(). - -The lowest bit of next/prev have special meaning: - - - low bit of prev is set for free blocks - - - low bit of next is set for blocks with 32bit padding after the user data. - This is needed when a block is allocated from a free block that leaves only - 4 free bytes after the user data... which is not enough to insert a - free-header (which is needs 8 bytes). The padding will be reclaimed when - that block is freed or when the pool is defragmented. The predicate - isPadded() can be used to test if a block is padded. Free blocks are never - padded. - -The predicate isNil() can be used to test if an offset points nowhere (it tests -if all 15 high bits of an offset are 1). The constant NIL has all but the -lowest bit set. It is used to set offsets to point to nowhere, and in some -places it is used to mask out the actual address bits of an offset. This should -be kept in mind when modifying the code and updating prev/next: Think carefully -if you have to preserve the low bit when updating an offset! - -Defragmentation is done in two phases: First the user calls -yalloc_defrag_start(). This will put the pool in a special state where no -alloc/free-calls are allowed. In this state the prev-fields of the used blocks -have a special meaning: They store the offset that the block will have after -defragmentation finished. This information is used by yalloc_defrag_address() -which can be called by the application to query the new addresses for its -allocations. After the application has updated all its pointers it must call -yalloc_defrag_commit() which moves all used blocks in contiguous space at the -beginning of the pool, leaving one maximized free block at the end. diff --git a/GL/yalloc/yalloc.c b/GL/yalloc/yalloc.c deleted file mode 100644 index 6dcf0e5..0000000 --- a/GL/yalloc/yalloc.c +++ /dev/null @@ -1,803 +0,0 @@ -#include "yalloc.h" -#include "yalloc_internals.h" - -#include -#include - -#define ALIGN(num, align) (((num) + ((align) - 1)) & ~((align) - 1)) - -#if defined(YALLOC_VALGRIND) && !defined(NVALGRIND) -# define USE_VALGRIND 1 -#else -# define USE_VALGRIND 0 -#endif - -#if USE_VALGRIND -# include -#else -# define VALGRIND_MAKE_MEM_UNDEFINED(p, s) ((void)0) -# define VALGRIND_MAKE_MEM_DEFINED(p, s) ((void)0) -# define VALGRIND_MAKE_MEM_NOACCESS(p, s) ((void)0) -# define VALGRIND_CREATE_MEMPOOL(pool, rz, z) ((void)0) -# define VALGRIND_MEMPOOL_ALLOC(pool, p, s) ((void)0) -# define VALGRIND_MEMPOOL_FREE(pool, p) ((void)0) -# define VALGRIND_MEMPOOL_CHANGE(pool, a, b, s) ((void)0) -#endif - -#define MARK_NEW_FREE_HDR(p) VALGRIND_MAKE_MEM_UNDEFINED(p, sizeof(Header) * 2) -#define MARK_NEW_HDR(p) VALGRIND_MAKE_MEM_UNDEFINED(p, sizeof(Header)) -#define PROTECT_HDR(p) VALGRIND_MAKE_MEM_NOACCESS(p, sizeof(Header)) -#define PROTECT_FREE_HDR(p) VALGRIND_MAKE_MEM_NOACCESS(p, sizeof(Header) * 2) -#define UNPROTECT_HDR(p) VALGRIND_MAKE_MEM_DEFINED(p, sizeof(Header)) -#define UNPROTECT_FREE_HDR(p) VALGRIND_MAKE_MEM_DEFINED(p, sizeof(Header) * 2) - - -#if USE_VALGRIND -static void _unprotect_pool(void * pool) -{ - Header * cur = (Header*)pool; - for (;;) - { - UNPROTECT_HDR(cur); - if (isFree(cur)) - UNPROTECT_HDR(cur + 1); - - if (isNil(cur->next)) - break; - - cur = HDR_PTR(cur->next); - } -} - -static void _protect_pool(void * pool) -{ - Header * cur = (Header*)pool; - while (cur) - { - Header * next = isNil(cur->next) ? NULL : HDR_PTR(cur->next); - - if (isFree(cur)) - VALGRIND_MAKE_MEM_NOACCESS(cur, (char*)next - (char*)cur); - else - PROTECT_HDR(cur); - - cur = next; - } -} -#define assert_is_pool(pool) assert(VALGRIND_MEMPOOL_EXISTS(pool)); - -#else - -static void _unprotect_pool(void * pool){(void)pool;} -static void _protect_pool(void * pool){(void)pool;} -#define assert_is_pool(pool) ((void)0) -#endif - -// internal version that does not unprotect/protect the pool -static int _yalloc_defrag_in_progress(void * pool) -{ - // fragmentation is indicated by a free list with one entry: the last block of the pool, which has its "free"-bit cleared. - Header * p = (Header*)pool; - if (isNil(p->prev)) - return 0; - - return !(HDR_PTR(p->prev)->prev & 1); -} - -int yalloc_defrag_in_progress(void * pool) -{ - _unprotect_pool(pool); - int ret = _yalloc_defrag_in_progress(pool); - _protect_pool(pool); - return ret; -} - -#if YALLOC_INTERNAL_VALIDATE - -static size_t _count_free_list_occurences(Header * pool, Header * blk) -{ - int n = 0; - if (!isNil(pool->prev)) - { - Header * cur = HDR_PTR(pool->prev); - for (;;) - { - if (cur == blk) - ++n; - - if (isNil(cur[1].next)) - break; - - cur = HDR_PTR(cur[1].next); - } - } - return n; -} - -static size_t _count_addr_list_occurences(Header * pool, Header * blk) -{ - size_t n = 0; - Header * cur = pool; - for (;;) - { - if (cur == blk) - ++n; - - if (isNil(cur->next)) - break; - - cur = HDR_PTR(cur->next); - } - return n; -} - -static void _validate_user_ptr(void * pool, void * p) -{ - Header * hdr = (Header*)p - 1; - size_t n = _count_addr_list_occurences((Header*)pool, hdr); - assert(n == 1 && !isFree(hdr)); -} - -/** -Validates if all the invariants of a pool are intact. - -This is very expensive when there are enough blocks in the heap (quadratic complexity!). -*/ -static void _yalloc_validate(void * pool_) -{ - Header * pool = (Header*)pool_; - Header * cur = pool; - - assert(!isNil(pool->next)); // there must always be at least two blocks: a free/used one and the final block at the end - - if (_yalloc_defrag_in_progress(pool)) - { - Header * prevUsed = NULL; - while (!isNil(cur->next)) - { - if (!isFree(cur)) - { // it is a used block - Header * newAddr = cur == pool ? pool : HDR_PTR(cur->prev); - assert(newAddr <= cur); - assert(newAddr >= pool); - - if (prevUsed) - { - Header * prevNewAddr = prevUsed == pool ? pool : HDR_PTR(prevUsed->prev); - size_t prevBruttoSize = (char*)HDR_PTR(prevUsed->next) - (char*)prevUsed; - if (isPadded(prevUsed)) - prevBruttoSize -= 4; // remove padding - assert((char*)newAddr == (char*)prevNewAddr + prevBruttoSize); - } - else - { - assert(newAddr == pool); - } - - prevUsed = cur; - } - - cur = HDR_PTR(cur->next); - } - - assert(cur == HDR_PTR(pool->prev)); // the free-list should point to the last block - assert(!isFree(cur)); // the last block must not be free - } - else - { - Header * prev = NULL; - - // iterate blocks in address order - for (;;) - { - if (prev) - { - Header * x = HDR_PTR(cur->prev); - assert(x == prev); - } - - int n = _count_free_list_occurences(pool, cur); - if (isFree(cur)) - { // it is a free block - assert(n == 1); - assert(!isPadded(cur)); // free blocks must have a zero padding-bit - - if (prev) - { - assert(!isFree(prev)); // free blocks must not be direct neighbours - } - } - else - { - assert(n == 0); - } - - if (isNil(cur->next)) - break; - - Header * next = HDR_PTR(cur->next); - assert((char*)next >= (char*)cur + sizeof(Header) * 2); - prev = cur; - cur = next; - } - - assert(isNil(cur->next)); - - if (!isNil(pool->prev)) - { - // iterate free-list - Header * f = HDR_PTR(pool->prev); - assert(isNil(f[1].prev)); - for (;;) - { - assert(isFree(f)); // must be free - - int n = _count_addr_list_occurences(pool, f); - assert(n == 1); - - if (isNil(f[1].next)) - break; - - f = HDR_PTR(f[1].next); - } - } - } -} - -#else -static void _yalloc_validate(void * pool){(void)pool;} -static void _validate_user_ptr(void * pool, void * p){(void)pool; (void)p;} -#endif - -int yalloc_init(void * pool, size_t size) -{ - if (size > MAX_POOL_SIZE) - return -1; - - // TODO: Error when pool is not properly aligned - - // TODO: Error when size is not a multiple of the alignment? - while (size % sizeof(Header)) - --size; - - if(size < sizeof(Header) * 3) - return -1; - - VALGRIND_CREATE_MEMPOOL(pool, 0, 0); - - Header * first = (Header*)pool; - Header * last = (Header*)((char*)pool + size) - 1; - - MARK_NEW_FREE_HDR(first); - MARK_NEW_HDR(first); - - first->prev = HDR_OFFSET(first) | 1; - first->next = HDR_OFFSET(last); - first[1].prev = NIL; - first[1].next = NIL; - - last->prev = HDR_OFFSET(first); - last->next = NIL; - - _unprotect_pool(pool); - _yalloc_validate(pool); - _protect_pool(pool); - return 0; -} - -void yalloc_deinit(void * pool) -{ -#if USE_VALGRIND - VALGRIND_DESTROY_MEMPOOL(pool); - - Header * last = (Header*)pool; - UNPROTECT_HDR(last); - while (!isNil(last->next)) - { - Header * next = HDR_PTR(last->next); - UNPROTECT_HDR(next); - last = next; - } - - VALGRIND_MAKE_MEM_UNDEFINED(pool, (char*)(last + 1) - (char*)pool); -#else - (void)pool; -#endif -} - - -void * yalloc_alloc(void * pool, size_t size) -{ - assert_is_pool(pool); - _unprotect_pool(pool); - assert(!_yalloc_defrag_in_progress(pool)); - _yalloc_validate(pool); - if (!size) - { - _protect_pool(pool); - return NULL; - } - - Header * root = (Header*)pool; - if (isNil(root->prev)) - { - _protect_pool(pool); - return NULL; /* no free block, no chance to allocate anything */ // TODO: Just read up which C standard supports single line comments and then fucking use them! - } - - /* round up to alignment */ - size = ALIGN(size, 32); - - size_t bruttoSize = size + sizeof(Header); - Header * prev = NULL; - Header * cur = HDR_PTR(root->prev); - for (;;) - { - size_t curSize = (char*)HDR_PTR(cur->next) - (char*)cur; /* size of the block, including its header */ - - if (curSize >= bruttoSize) // it is big enough - { - // take action for unused space in the free block - if (curSize >= bruttoSize + sizeof(Header) * 2) - { // the leftover space is big enough to make it a free block - // Build a free block from the unused space and insert it into the list of free blocks after the current free block - Header * tail = (Header*)((char*)cur + bruttoSize); - MARK_NEW_FREE_HDR(tail); - - // update address-order-list - tail->next = cur->next; - tail->prev = HDR_OFFSET(cur) | 1; - HDR_PTR(cur->next)->prev = HDR_OFFSET(tail); // NOTE: We know the next block is used because free blocks are never neighbours. So we don't have to care about the lower bit which would be set for the prev of a free block. - cur->next = HDR_OFFSET(tail); - - // update list of free blocks - tail[1].next = cur[1].next; - // NOTE: tail[1].prev is updated in the common path below (assignment to "HDR_PTR(cur[1].next)[1].prev") - - if (!isNil(cur[1].next)) - HDR_PTR(cur[1].next)[1].prev = HDR_OFFSET(tail); - cur[1].next = HDR_OFFSET(tail); - } - else if (curSize > bruttoSize) - { // there will be unused space, but not enough to insert a free header - internal_assert(curSize - bruttoSize == sizeof(Header)); // unused space must be enough to build a free-block or it should be exactly the size of a Header - cur->next |= 1; // set marker for "has unused trailing space" - } - else - { - internal_assert(curSize == bruttoSize); - } - - cur->prev &= NIL; // clear marker for "is a free block" - - // remove from linked list of free blocks - if (prev) - prev[1].next = cur[1].next; - else - { - uint32_t freeBit = isFree(root); - root->prev = (cur[1].next & NIL) | freeBit; - } - - if (!isNil(cur[1].next)) - HDR_PTR(cur[1].next)[1].prev = prev ? HDR_OFFSET(prev) : NIL; - - _yalloc_validate(pool); - VALGRIND_MEMPOOL_ALLOC(pool, cur + 1, size); - _protect_pool(pool); - return cur + 1; // return address after the header - } - - if (isNil(cur[1].next)) - break; - - prev = cur; - cur = HDR_PTR(cur[1].next); - } - - _yalloc_validate(pool); - _protect_pool(pool); - return NULL; -} - -// Removes a block from the free-list and moves the pools first-free-bock pointer to its successor if it pointed to that block. -static void unlink_from_free_list(Header * pool, Header * blk) -{ - // update the pools pointer to the first block in the free list if necessary - if (isNil(blk[1].prev)) - { // the block is the first in the free-list - // make the pools first-free-pointer point to the next in the free list - uint32_t freeBit = isFree(pool); - pool->prev = (blk[1].next & NIL) | freeBit; - } - else - HDR_PTR(blk[1].prev)[1].next = blk[1].next; - - if (!isNil(blk[1].next)) - HDR_PTR(blk[1].next)[1].prev = blk[1].prev; -} - -size_t yalloc_block_size(void * pool, void * p) -{ - Header * a = (Header*)p - 1; - UNPROTECT_HDR(a); - Header * b = HDR_PTR(a->next); - size_t payloadSize = (char*)b - (char*)p; - if (isPadded(a)) - payloadSize -= sizeof(Header); - PROTECT_HDR(a); - return payloadSize; -} - -void yalloc_free(void * pool_, void * p) -{ - assert_is_pool(pool_); - assert(!yalloc_defrag_in_progress(pool_)); - if (!p) - return; - - _unprotect_pool(pool_); - - Header * pool = (Header*)pool_; - Header * cur = (Header*)p - 1; - - // get pointers to previous/next block in address order - Header * prev = cur == pool || isNil(cur->prev) ? NULL : HDR_PTR(cur->prev); - Header * next = isNil(cur->next) ? NULL : HDR_PTR(cur->next); - - int prevFree = prev && isFree(prev); - int nextFree = next && isFree(next); - -#if USE_VALGRIND - { - unsigned errs = VALGRIND_COUNT_ERRORS; - VALGRIND_MEMPOOL_FREE(pool, p); - if (VALGRIND_COUNT_ERRORS > errs) - { // early exit if the free was invalid (so we get a valgrind error and don't mess up the pool, which is helpful for testing if invalid frees are detected by valgrind) - _protect_pool(pool_); - return; - } - } -#endif - - _validate_user_ptr(pool_, p); - - if (prevFree && nextFree) - { // the freed block has two free neighbors - unlink_from_free_list(pool, prev); - unlink_from_free_list(pool, next); - - // join prev, cur and next - prev->next = next->next; - HDR_PTR(next->next)->prev = cur->prev; - - // prev is now the block we want to push onto the free-list - cur = prev; - } - else if (prevFree) - { - unlink_from_free_list(pool, prev); - - // join prev and cur - prev->next = cur->next; - HDR_PTR(cur->next)->prev = cur->prev; - - // prev is now the block we want to push onto the free-list - cur = prev; - } - else if (nextFree) - { - unlink_from_free_list(pool, next); - - // join cur and next - cur->next = next->next; - HDR_PTR(next->next)->prev = next->prev & NIL; - } - - // if there is a previous block and that block has padding then we want to grow the new free block into that padding - if (cur != pool && !isNil(cur->prev)) - { // there is a previous block - Header * left = HDR_PTR(cur->prev); - if (isPadded(left)) - { // the previous block has padding, so extend the current block to consume move the padding to the current free block - Header * grown = cur - 1; - MARK_NEW_HDR(grown); - grown->next = cur->next; - grown->prev = cur->prev; - left->next = HDR_OFFSET(grown); - if (!isNil(cur->next)) - HDR_PTR(cur->next)->prev = HDR_OFFSET(grown); - - cur = grown; - } - } - - cur->prev |= 1; // it becomes a free block - cur->next &= NIL; // reset padding-bit - UNPROTECT_HDR(cur + 1); - cur[1].prev = NIL; // it will be the first free block in the free list, so it has no prevFree - - if (!isNil(pool->prev)) - { // the free-list was already non-empty - HDR_PTR(pool->prev)[1].prev = HDR_OFFSET(cur); // make the first entry in the free list point back to the new free block (it will become the first one) - cur[1].next = pool->prev; // the next free block is the first of the old free-list - } - else - cur[1].next = NIL; // free-list was empty, so there is no successor - - VALGRIND_MAKE_MEM_NOACCESS(cur + 2, (char*)HDR_PTR(cur->next) - (char*)(cur + 2)); - - // now the freed block is the first in the free-list - - // update the offset to the first element of the free list - uint32_t freeBit = isFree(pool); // remember the free-bit of the offset - pool->prev = HDR_OFFSET(cur) | freeBit; // update the offset and restore the free-bit - _yalloc_validate(pool); - _protect_pool(pool); -} - -size_t yalloc_count_free(void * pool_) -{ - assert_is_pool(pool_); - _unprotect_pool(pool_); - assert(!_yalloc_defrag_in_progress(pool_)); - Header * pool = (Header*)pool_; - size_t bruttoFree = 0; - Header * cur = pool; - - _yalloc_validate(pool); - - for (;;) - { - if (isFree(cur)) - { // it is a free block - bruttoFree += (char*)HDR_PTR(cur->next) - (char*)cur; - } - else - { // it is a used block - if (isPadded(cur)) - { // the used block is padded - bruttoFree += sizeof(Header); - } - } - - if (isNil(cur->next)) - break; - - cur = HDR_PTR(cur->next); - } - - _protect_pool(pool); - - if (bruttoFree < sizeof(Header)) - { - internal_assert(!bruttoFree); // free space should always be a multiple of sizeof(Header) - return 0; - } - - return bruttoFree - sizeof(Header); -} - -size_t yalloc_count_continuous(void * pool_) -{ - assert_is_pool(pool_); - _unprotect_pool(pool_); - assert(!_yalloc_defrag_in_progress(pool_)); - Header * pool = (Header*)pool_; - size_t largestFree = 0; - Header * cur = pool; - - _yalloc_validate(pool); - - for (;;) - { - if (isFree(cur)) - { // it is a free block - size_t temp = (uintptr_t)HDR_PTR(cur->next) - (uintptr_t)cur; - if(temp > largestFree) - largestFree = temp; - } - - if (isNil(cur->next)) - break; - - cur = HDR_PTR(cur->next); - } - - _protect_pool(pool); - - if (largestFree < sizeof(Header)) - { - internal_assert(!largestFree); // free space should always be a multiple of sizeof(Header) - return 0; - } - - return largestFree - sizeof(Header); -} - -void * yalloc_first_used(void * pool) -{ - assert_is_pool(pool); - _unprotect_pool(pool); - Header * blk = (Header*)pool; - while (!isNil(blk->next)) - { - if (!isFree(blk)) - { - _protect_pool(pool); - return blk + 1; - } - - blk = HDR_PTR(blk->next); - } - - _protect_pool(pool); - return NULL; -} - -void * yalloc_next_used(void * pool, void * p) -{ - assert_is_pool(pool); - _unprotect_pool(pool); - _validate_user_ptr(pool, p); - Header * prev = (Header*)p - 1; - assert(!isNil(prev->next)); // the last block should never end up as input to this function (because it is not user-visible) - - Header * blk = HDR_PTR(prev->next); - while (!isNil(blk->next)) - { - if (!isFree(blk)) - { - _protect_pool(pool); - return blk + 1; - } - - blk = HDR_PTR(blk->next); - } - - _protect_pool(pool); - return NULL; -} - -void yalloc_defrag_start(void * pool_) -{ - assert_is_pool(pool_); - _unprotect_pool(pool_); - assert(!_yalloc_defrag_in_progress(pool_)); - Header * pool = (Header*)pool_; - - // iterate over all blocks in address order and store the post-defragment address of used blocks in their "prev" field - size_t end = 0; // offset for the next used block - Header * blk = (Header*)pool; - for (; !isNil(blk->next); blk = HDR_PTR(blk->next)) - { - if (!isFree(blk)) - { // it is a used block - blk->prev = end >> 1; - internal_assert((char*)HDR_PTR(blk->prev) == (char*)pool + end); - - size_t bruttoSize = (char*)HDR_PTR(blk->next) - (char*)blk; - - if (isPadded(blk)) - { // the block is padded - bruttoSize -= sizeof(Header); - } - - end += bruttoSize; - internal_assert(end % sizeof(Header) == 0); - } - } - - // blk is now the last block (the dummy "used" block at the end of the pool) - internal_assert(isNil(blk->next)); - internal_assert(!isFree(blk)); - - // mark the pool as "defragementation in progress" - uint32_t freeBit = isFree(pool); - pool->prev = (HDR_OFFSET(blk) & NIL) | freeBit; - - _yalloc_validate(pool); - internal_assert(yalloc_defrag_in_progress(pool)); - _protect_pool(pool); -} - -void * yalloc_defrag_address(void * pool_, void * p) -{ - assert_is_pool(pool_); - assert(yalloc_defrag_in_progress(pool_)); - if (!p) - return NULL; - - Header * pool = (Header*)pool_; - - _unprotect_pool(pool); - _validate_user_ptr(pool_, p); - - if (pool + 1 == p) - return pool + 1; // "prev" of the first block points to the last used block to mark the pool as "defragmentation in progress" - - Header * blk = (Header*)p - 1; - - void * defragP = HDR_PTR(blk->prev) + 1; - - _protect_pool(pool); - return defragP; -} - -void yalloc_defrag_commit(void * pool_) -{ - assert_is_pool(pool_); - _unprotect_pool(pool_); - assert(_yalloc_defrag_in_progress(pool_)); - Header * pool = (Header*)pool_; - - // iterate over all blocks in address order and move them - size_t end = 0; // offset for the next used block - Header * blk = pool; - Header * lastUsed = NULL; - while (!isNil(blk->next)) - { - if (!isFree(blk)) - { // it is a used block - size_t bruttoSize = (char*)HDR_PTR(blk->next) - (char*)blk; - - if (isPadded(blk)) - { // the block is padded - bruttoSize -= sizeof(Header); - } - - Header * next = HDR_PTR(blk->next); - - blk->prev = lastUsed ? HDR_OFFSET(lastUsed) : NIL; - blk->next = (end + bruttoSize) >> 1; - - lastUsed = (Header*)((char*)pool + end); - VALGRIND_MAKE_MEM_UNDEFINED(lastUsed, (char*)blk - (char*)lastUsed); - memmove(lastUsed, blk, bruttoSize); - VALGRIND_MEMPOOL_CHANGE(pool, blk + 1, lastUsed + 1, bruttoSize - sizeof(Header)); - - end += bruttoSize; - blk = next; - } - else - blk = HDR_PTR(blk->next); - } - - // blk is now the last block (the dummy "used" block at the end of the pool) - internal_assert(isNil(blk->next)); - internal_assert(!isFree(blk)); - - if (lastUsed) - { - Header * gap = HDR_PTR(lastUsed->next); - if (gap == blk) - { // there is no gap - pool->prev = NIL; // the free list is empty - blk->prev = HDR_OFFSET(lastUsed); - } - else if (blk - gap > 1) - { // the gap is big enouogh for a free Header - - // set a free list that contains the gap as only element - gap->prev = HDR_OFFSET(lastUsed) | 1; - gap->next = HDR_OFFSET(blk); - gap[1].prev = NIL; - gap[1].next = NIL; - pool->prev = blk->prev = HDR_OFFSET(gap); - } - else - { // there is a gap, but it is too small to be used as free-list-node, so just make it padding of the last used block - lastUsed->next = HDR_OFFSET(blk) | 1; - pool->prev = NIL; - blk->prev = HDR_OFFSET(lastUsed); - } - } - else - { // the pool is empty - pool->prev = 1; - } - - internal_assert(!_yalloc_defrag_in_progress(pool)); - _yalloc_validate(pool); - _protect_pool(pool); -} diff --git a/GL/yalloc/yalloc.h b/GL/yalloc/yalloc.h deleted file mode 100644 index 4349eb9..0000000 --- a/GL/yalloc/yalloc.h +++ /dev/null @@ -1,176 +0,0 @@ -/** -@file - -API of the yalloc allocator. -*/ - -#ifndef YALLOC_H -#define YALLOC_H - -#include - -/** -Maximum supported pool size. yalloc_init() will fail for larger pools. -*/ -#define MAX_POOL_SIZE ((2 << 24) - 4) - -/** -Creates a pool inside a given buffer. - -Pools must be deinitialized with yalloc_deinit() when they are no longer needed. - -@param pool The starting address of the pool. It must have at least 16bit -alignment (internal structure uses 16bit integers). Allocations are placed at -32bit boundaries starting from this address, so if the user data should be -32bit aligned then this address has to be 32bit aligned. Typically an address -of static memory, or an array on the stack is used if the pool is only used -temporarily. -@param size Size of the pool. -@return 0 on success, nonzero if the size is not supported. - */ -int yalloc_init(void * pool, size_t size); - -/** -Deinitializes the buffer that is used by the pool and makes it available for other use. - -The content of the buffer is undefined after this. - -@param pool The starting address of an initialized pool. -*/ -void yalloc_deinit(void * pool); - -/** -Allocates a block of memory from a pool. - -This function mimics malloc(). - -The pool must not be in the "defragmenting" state when this function is called. - -@param pool The starting address of an initialized pool. -@param size Number of bytes to allocate. -@return Allocated buffer or \c NULL if there was no free range that could serve -the allocation. See @ref yalloc_defrag_start() for a way to remove -fragmentation which may cause allocations to fail even when there is enough -space in total. -*/ -void * yalloc_alloc(void * pool, size_t size); - -/** -Returns an allocation to a pool. - -This function mimics free(). - -The pool must not be in the "defragmenting" state when this function is called. - -@param pool The starting address of the initialized pool the allocation comes from. -@param p An address that was returned from yalloc_alloc() of the same pool. -*/ -void yalloc_free(void * pool, void * p); - -/** -Returns the maximum size of a successful allocation (assuming a completely unfragmented heap). - -After defragmentation the first allocation with the returned size is guaranteed to succeed. - -@param pool The starting address of an initialized pool. -@return Number of bytes that can be allocated (assuming the pool is defragmented). -*/ -size_t yalloc_count_free(void * pool); - -/** -Returns the maximum continuous free area. - -@param pool The starting address of an initialized pool. -@return Number of free bytes that exist continuously. -*/ -size_t yalloc_count_continuous(void * pool_); - -/** -Queries the usable size of an allocated block. - -@param pool The starting address of the initialized pool the allocation comes from. -@param p An address that was returned from yalloc_alloc() of the same pool. -@return Size of the memory block. This is the size passed to @ref yalloc_alloc() rounded up to 4. -*/ -size_t yalloc_block_size(void * pool, void * p); - -/** -Finds the first (in address order) allocation of a pool. - -@param pool The starting address of an initialized pool. -@return Address of the allocation the lowest address inside the pool (this is -what @ref yalloc_alloc() returned), or \c NULL if there is no used block. -*/ -void * yalloc_first_used(void * pool); - -/** -Given a pointer to an allocation finds the next (in address order) used block of a pool. - -@param pool The starting address of the initialized pool the allocation comes from. -@param p Pointer to an allocation in that pool, typically comes from a previous -call to @ref yalloc_first_used() -*/ -void * yalloc_next_used(void * pool, void * p); - -/** -Starts defragmentation for a pool. - -Allocations will stay where they are. But the pool is put in the "defagmenting" -state (see @ref yalloc_defrag_in_progress()). - -The pool must not be in the "defragmenting" state when this function is called. -The pool is put into the "defragmenting" state by this function. - -@param pool The starting address of an initialized pool. -*/ -void yalloc_defrag_start(void * pool); - -/** -Returns the address that an allocation will have after @ref yalloc_defrag_commit() is called. - -The pool must be in the "defragmenting" state when this function is called. - -@param pool The starting address of the initialized pool the allocation comes from. -@param p Pointer to an allocation in that pool. -@return The address the alloation will have after @ref yalloc_defrag_commit() is called. -*/ -void * yalloc_defrag_address(void * pool, void * p); - -/** -Finishes the defragmentation. - -The content of all allocations in the pool will be moved to the address that -was reported by @ref yalloc_defrag_address(). The pool will then have only one -free block. This means that an yalloc_alloc(pool, yalloc_count_free(pool)) -will succeed. - -The pool must be in the "defragmenting" state when this function is called. The -pool is put back to normal state by this function. - -@param pool The starting address of an initialized pool. -*/ -void yalloc_defrag_commit(void * pool); - -/** -Tells if the pool is in the "defragmenting" state (after a @ref yalloc_defrag_start() and before a @ref yalloc_defrag_commit()). - -@param pool The starting address of an initialized pool. -@return Nonzero if the pool is currently in the "defragmenting" state. -*/ -int yalloc_defrag_in_progress(void * pool); - - -/** -Helper function that dumps the state of the pool to stdout. - -This function is only available if build with yalloc_dump.c. This -function only exists for debugging purposes and can be ignored by normal users -that are not interested in the internal structure of the implementation. - -@param pool The starting address of an initialized pool. -@param name A string that is used as "Title" for the output. -*/ -void yalloc_dump(void * pool, char * name); - - -#endif // YALLOC_H diff --git a/GL/yalloc/yalloc_dump.c b/GL/yalloc/yalloc_dump.c deleted file mode 100644 index f0dfdcb..0000000 --- a/GL/yalloc/yalloc_dump.c +++ /dev/null @@ -1,39 +0,0 @@ -#include "yalloc_internals.h" - -#include - -static void printOffset(void * pool, char * name, uint16_t offset) -{ - if (isNil(offset)) - printf(" %s: nil\n", name); - else - printf(" %s: %td\n", name, (char*)HDR_PTR(offset) - (char*)pool); -} - -void yalloc_dump(void * pool, char * name) -{ - printf("---- %s ----\n", name); - Header * cur = (Header*)pool; - for (;;) - { - printf(isFree(cur) ? "%td: free @%p\n" : "%td: used @%p\n", (char*)cur - (char*)pool, cur); - printOffset(pool, cur == pool ? "first free" : "prev", cur->prev); - printOffset(pool, "next", cur->next); - if (isFree(cur)) - { - printOffset(pool, "prevFree", cur[1].prev); - printOffset(pool, "nextFree", cur[1].next); - } - else - printf(" payload includes padding: %i\n", isPadded(cur)); - - if (isNil(cur->next)) - break; - - printf(" %td bytes payload\n", (char*)HDR_PTR(cur->next) - (char*)cur - sizeof(Header)); - - cur = HDR_PTR(cur->next); - } - - fflush(stdout); -} diff --git a/GL/yalloc/yalloc_internals.h b/GL/yalloc/yalloc_internals.h deleted file mode 100644 index ffb70cb..0000000 --- a/GL/yalloc/yalloc_internals.h +++ /dev/null @@ -1,63 +0,0 @@ -#ifndef YALLOC_INTERNALS_H -#define YALLOC_INTERNALS_H - -#include - -typedef struct -{ - uint32_t prev; // low bit set if free - uint32_t next; // for used blocks: low bit set if unused header at the end - - /* We need user data to be 32-byte aligned, so the header needs - * to be 32 bytes in size (as user data follows the header) */ - uint8_t padding[32 - (sizeof(uint32_t) * 2)]; -} Header; - -// NOTE: We have 32bit aligned data and 16bit offsets where the lowest bit is used as flag. So we remove the low bit and shift by 1 to address 128k bytes with the 15bit significant offset bits. - -#define NIL 0xFFFFFFFEu - -// return Header-address for a prev/next -#define HDR_PTR(offset) ((Header*)((char*)pool + (((offset) & NIL)<<1))) - -// return a prev/next for a Header-address -#define HDR_OFFSET(blockPtr) ((uint32_t)(((char*)blockPtr - (char*)pool) >> 1)) - -#ifndef YALLOC_INTERNAL_VALIDATE -# ifdef NDEBUG -# define YALLOC_INTERNAL_VALIDATE 0 -# else -# define YALLOC_INTERNAL_VALIDATE 1 -#endif -#endif - - -/* -internal_assert() is used in some places to check internal expections. -Activate this if you modify the code to detect problems as early as possible. -In other cases this should be deactivated. -*/ -#if 0 -#define internal_assert assert -#else -#define internal_assert(condition)((void) 0) -#endif - -// detects offsets that point nowhere -static inline int isNil(uint32_t offset) -{ - return (offset | 1) == 0xFFFFFFFF; -} - -static inline int isFree(Header * hdr) -{ - return hdr->prev & 1; -} - -static inline int isPadded(Header * hdr) -{ - return hdr->next & 1; -} - - -#endif // YALLOC_INTERNALS_H diff --git a/include/GL/gl.h b/include/GL/gl.h index f65bee6..7cc049e 100644 --- a/include/GL/gl.h +++ b/include/GL/gl.h @@ -310,7 +310,7 @@ __BEGIN_DECLS #define GL_4_BYTES 0x1409 /* ErrorCode */ -#define GL_NO_ERROR 0 +#define GL_NO_ERROR ((GLenum) 0) #define GL_INVALID_ENUM 0x0500 #define GL_INVALID_VALUE 0x0501 #define GL_INVALID_OPERATION 0x0502 @@ -371,6 +371,31 @@ __BEGIN_DECLS #define GL_RGBA 0x1908 #define GL_LUMINANCE 0x1909 #define GL_LUMINANCE_ALPHA 0x190A + +#define GL_R3_G3_B2 0x2A10 + +#define GL_ALPHA4 0x803B +#define GL_ALPHA8 0x803C +#define GL_ALPHA12 0x803D +#define GL_ALPHA16 0x803E + +#define GL_LUMINANCE4 0x803F +#define GL_LUMINANCE8 0x8040 +#define GL_LUMINANCE12 0x8041 +#define GL_LUMINANCE16 0x8042 + +#define GL_LUMINANCE4_ALPHA4 0x8043 +#define GL_LUMINANCE6_ALPHA2 0x8044 +#define GL_LUMINANCE8_ALPHA8 0x8045 +#define GL_LUMINANCE12_ALPHA4 0x8046 +#define GL_LUMINANCE12_ALPHA12 0x8047 +#define GL_LUMINANCE16_ALPHA16 0x8048 + +#define GL_INTENSITY4 0x804A +#define GL_INTENSITY8 0x804B +#define GL_INTENSITY12 0x804C +#define GL_INTENSITY16 0x804D + #define GL_BGRA 0x80E1 #define GL_INTENSITY 0x8049 #define GL_RGB4 0x804F @@ -387,6 +412,14 @@ __BEGIN_DECLS #define GL_RGBA12 0x805A #define GL_RGBA16 0x805B +#define GL_R8 0x8229 +#define GL_RG8 0x822B +#define GL_RG 0x8227 +#define GL_R16 0x822A +#define GL_RG16 0x822C +#define GL_COMPRESSED_RED 0x8225 +#define GL_COMPRESSED_RG 0x8226 + /* Polygons */ #define GL_POINT 0x1B00 #define GL_LINE 0x1B01 diff --git a/include/GL/glkos.h b/include/GL/glkos.h index e2ef11a..81827d5 100644 --- a/include/GL/glkos.h +++ b/include/GL/glkos.h @@ -35,8 +35,6 @@ extern const char* GLDC_VERSION; #define GL_NEARZ_CLIPPING_KOS 0xEEFA -#define GL_UNSIGNED_BYTE_TWID_KOS 0xEEFB - /* Initialize the GL pipeline. GL will initialize the PVR. */ GLAPI void APIENTRY glKosInit(); @@ -57,6 +55,13 @@ typedef struct { GLuint initial_pt_capacity; GLuint initial_immediate_capacity; + /* Default: True + * + * Whether glTexImage should automatically twiddle textures + * if the internal format is a generic format (e.g. GL_RGB). + * this is the same as calling glEnable(GL_TEXTURE_TWIDDLE_KOS) + * on boot */ + GLboolean texture_twiddle; } GLdcConfig; @@ -87,7 +92,7 @@ GLAPI void APIENTRY glKosInitConfig(GLdcConfig* config); */ GLAPI void APIENTRY glKosInitEx(GLdcConfig* config); GLAPI void APIENTRY glKosSwapBuffers(); - +GLAPI void APIENTRY glKosShutdown(); /* * CUSTOM EXTENSION multiple_shared_palette_KOS @@ -186,12 +191,28 @@ GLAPI void APIENTRY glKosSwapBuffers(); /* Memory allocation extension (GL_KOS_texture_memory_management) */ GLAPI GLvoid APIENTRY glDefragmentTextureMemory_KOS(void); +/* glGet extensions */ #define GL_FREE_TEXTURE_MEMORY_KOS 0xEF3D #define GL_USED_TEXTURE_MEMORY_KOS 0xEF3E #define GL_FREE_CONTIGUOUS_TEXTURE_MEMORY_KOS 0xEF3F //for palette internal format (glfcConfig) #define GL_RGB565_KOS 0xEF40 +#define GL_ARGB4444_KOS 0xEF41 +#define GL_ARGB1555_KOS 0xEF42 +#define GL_RGB565_TWID_KOS 0xEF43 +#define GL_ARGB4444_TWID_KOS 0xEF44 +#define GL_ARGB1555_TWID_KOS 0xEF45 +#define GL_COLOR_INDEX8_TWID_KOS 0xEF46 +#define GL_COLOR_INDEX4_TWID_KOS 0xEF47 +#define GL_RGB_TWID_KOS 0xEF48 +#define GL_RGBA_TWID_KOS 0xEF49 + +/* glGet extensions */ +#define GL_TEXTURE_INTERNAL_FORMAT_KOS 0xEF50 + +/* If enabled, will twiddle texture uploads where possible */ +#define GL_TEXTURE_TWIDDLE_KOS 0xEF51 __END_DECLS diff --git a/samples/lights/main.c b/samples/lights/main.c index f03ede9..afd048d 100644 --- a/samples/lights/main.c +++ b/samples/lights/main.c @@ -145,7 +145,7 @@ int check_start() { void DrawCube(float x, float z) { static float pos = 0.0f; - const static float radius = 30.0f; + static const float radius = 30.0f; pos += 0.001f; diff --git a/samples/nehe06/main.c b/samples/nehe06/main.c index 387d963..543c3a2 100644 --- a/samples/nehe06/main.c +++ b/samples/nehe06/main.c @@ -53,10 +53,10 @@ void LoadGLTextures() { // 2d texture, level of detail 0 (normal), 3 components (red, green, blue), x size from image, y size from image, // border 0 (normal), rgb color data, unsigned byte data, and finally the data itself. - glTexImage2D(GL_TEXTURE_2D, 0, 3, image1->sizeX, image1->sizeY, 0, GL_RGB, GL_UNSIGNED_BYTE, image1->data); + glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, image1->sizeX, image1->sizeY, 0, GL_RGB, GL_UNSIGNED_BYTE, image1->data); free(image1); -}; +} /* A general OpenGL initialization function. Sets all of the initial parameters. */ void InitGL(int Width, int Height) // We call this right after our OpenGL window is created. @@ -74,7 +74,7 @@ void InitGL(int Width, int Height) // We call this right after our OpenG gluPerspective(45.0f,(GLfloat)Width/(GLfloat)Height,0.1f,100.0f); // Calculate The Aspect Ratio Of The Window - glMatrixMode(GL_MODELVIEW); + glMatrixMode(GL_MODELVIEW); } /* The function called when our window is resized (which shouldn't happen, because we're fullscreen) */ diff --git a/samples/nehe06/romdisk/NeHe.bmp b/samples/nehe06/romdisk/NeHe.bmp index 6b3db10..ad2171d 100644 Binary files a/samples/nehe06/romdisk/NeHe.bmp and b/samples/nehe06/romdisk/NeHe.bmp differ diff --git a/samples/paletted/main.c b/samples/paletted/main.c index 7ada768..7b88cf3 100644 --- a/samples/paletted/main.c +++ b/samples/paletted/main.c @@ -132,7 +132,7 @@ void LoadGLTextures() { // 2d texture, level of detail 0 (normal), 3 components (red, green, blue), x size from image, y size from image, // border 0 (normal), rgb color data, unsigned byte data, and finally the data itself. - glTexImage2D(GL_TEXTURE_2D, 0, GL_COLOR_INDEX8_EXT, image1->width, image1->height, 0, GL_COLOR_INDEX, GL_UNSIGNED_BYTE_TWID_KOS, image1->data); + glTexImage2D(GL_TEXTURE_2D, 0, GL_COLOR_INDEX8_EXT, image1->width, image1->height, 0, GL_COLOR_INDEX8_TWID_KOS, GL_UNSIGNED_BYTE, image1->data); glGenerateMipmapEXT(GL_TEXTURE_2D); free(image1); diff --git a/samples/paletted_pcx/main.c b/samples/paletted_pcx/main.c index 4f08a64..e397ab7 100644 --- a/samples/paletted_pcx/main.c +++ b/samples/paletted_pcx/main.c @@ -254,6 +254,8 @@ int BMP_Infos(FILE *pFile, uint32_t *width, uint32_t *height) *width = (uint32_t)BmpInfoHeader.Width; *height = (uint32_t)BmpInfoHeader.Height; + fseek(pFile, BmpInfoHeader.Size + 14, SEEK_SET); + return 1; } @@ -270,6 +272,7 @@ int BMP_GetPalette(FILE *pFile) bitCount = BmpInfoHeader.ClrImportant * sizeof(RGB_QUAD); if (fread(BmpRgbQuad, 1, bitCount, pFile) != bitCount){ + fprintf(stderr, "Failed to read palette: %d\n", bitCount); return 0; } @@ -281,6 +284,8 @@ int BMP_GetPalette(FILE *pFile) } return 1; } + + fprintf(stderr, "BitCount: %d\n", BmpInfoHeader.BitCount); return 0; } @@ -346,7 +351,7 @@ int LoadPalettedBMP(const char* filename, Image* image) } if (!BMP_GetPalette(fp)) { - printf("Only 16c BMP are supported for this sample"); + printf("Only 16c BMP are supported for this sample\n"); return 0; } @@ -429,7 +434,7 @@ void LoadGLTextures() { #ifndef USE_16C_PALETTE glTexImage2D(GL_TEXTURE_2D, 0, GL_COLOR_INDEX8_EXT, image1.width, image1.height, 0, GL_COLOR_INDEX, GL_UNSIGNED_BYTE, image1.data); #else - glTexImage2D(GL_TEXTURE_2D, 0, GL_COLOR_INDEX4_EXT, image1.width, image1.height, 0, GL_COLOR_INDEX, GL_UNSIGNED_BYTE, image1.data); + glTexImage2D(GL_TEXTURE_2D, 0, GL_COLOR_INDEX4_EXT, image1.width, image1.height, 0, GL_COLOR_INDEX4_EXT, GL_UNSIGNED_BYTE, image1.data); #endif glBindTexture(GL_TEXTURE_2D, textures[1]); // 2d texture (x and y size) @@ -444,7 +449,7 @@ void LoadGLTextures() { #ifndef USE_16C_PALETTE glTexImage2D(GL_TEXTURE_2D, 0, GL_COLOR_INDEX8_EXT, image1.width, image1.height, 0, GL_COLOR_INDEX, GL_UNSIGNED_BYTE, image1.data); #else - glTexImage2D(GL_TEXTURE_2D, 0, GL_COLOR_INDEX4_EXT, image1.width, image1.height, 0, GL_COLOR_INDEX, GL_UNSIGNED_BYTE, image1.data); + glTexImage2D(GL_TEXTURE_2D, 0, GL_COLOR_INDEX4_EXT, image1.width, image1.height, 0, GL_COLOR_INDEX4_EXT, GL_UNSIGNED_BYTE, image1.data); #endif glBindTexture(GL_TEXTURE_2D, textures[2]); @@ -463,7 +468,7 @@ void LoadGLTextures() { #ifndef USE_16C_PALETTE glTexImage2D(GL_TEXTURE_2D, 0, GL_COLOR_INDEX8_EXT, image2.width, image2.height, 0, GL_COLOR_INDEX, GL_UNSIGNED_BYTE, image2.data); #else - glTexImage2D(GL_TEXTURE_2D, 0, GL_COLOR_INDEX4_EXT, image2.width, image2.height, 0, GL_COLOR_INDEX, GL_UNSIGNED_BYTE, image2.data); + glTexImage2D(GL_TEXTURE_2D, 0, GL_COLOR_INDEX4_EXT, image2.width, image2.height, 0, GL_COLOR_INDEX4_EXT, GL_UNSIGNED_BYTE, image2.data); #endif } diff --git a/samples/paletted_pcx/romdisk/NeHe-Alpha.bmp b/samples/paletted_pcx/romdisk/NeHe-Alpha.bmp index db96b15..d8d9dea 100644 Binary files a/samples/paletted_pcx/romdisk/NeHe-Alpha.bmp and b/samples/paletted_pcx/romdisk/NeHe-Alpha.bmp differ diff --git a/samples/prof_texture_upload/image.h b/samples/prof_texture_upload/image.h new file mode 100644 index 0000000..44d9898 --- /dev/null +++ b/samples/prof_texture_upload/image.h @@ -0,0 +1,8207 @@ +/* GIMP header image file format (RGB): /home/kazade/Documents/Untitled.h */ + +static unsigned int width = 512; +static unsigned int height = 256; + +/* Call this macro repeatedly. After each use, the pixel data can be extracted */ + +#define HEADER_PIXEL(data,pixel) {\ +pixel[0] = (((data[0] - 33) << 2) | ((data[1] - 33) >> 4)); \ +pixel[1] = ((((data[1] - 33) & 0xF) << 4) | ((data[2] - 33) >> 2)); \ +pixel[2] = ((((data[2] - 33) & 0x3) << 6) | ((data[3] - 33))); \ +data += 4; \ +} +static char *header_data = + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D*C=H)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D;7JKR-<&XO$@V.85L+WN;7JJ*S=H)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D@8Z^X_(AZODHZ?@GY_8EZ/L:>(2T256&GZS<>XFY+CIK)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-DA)'\"" + "Y?0CZODHZODHZODHZODHZODHZODHZ?@GS=L(?XNYM\\3TY_8EY_8ET^(1H*W>3UR," + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-DAI/$Y?0C" + "ZODHZODHZODHZODHZODHZODHZODHYO4DP<[[BI?&X>`?Z/8:V*C=G)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-DAY3$Y?0CZODH" + "ZODHZODHZODHZODHZODHZODHZ?@GW>L:O\\OXQM0#Z?@GZ/\\>N@7H:_?15*\")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-DB9;'Y/,BZODHZ?@GZODHZODHZODHZODHZODHZODHZ?@GZ?@G" + "Z?@GZ?@GZ?02HZ_@7Y?,BZO@GZOEZ34O\\>X>\\>" + "X>\\>XN`?XN`?X_$@X_$@Y/(AXN`?ZODGY?0CU>,2M<+SC9K)1U.$)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + "1E*#Q-,\"Z?@GZODHZODHZODHZODHZODHZODHZODHZ?@GZODHZODHZ?@GZ?@GZ?@G" + "Z?@GZ?@GZ/\\>H:S9U^43Z/@7I[3D4V\"1)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D*S=H:'6EJ;;FU.(1Z/8EZ_DH[/LJZ_DH" + "Z?@GY_4DY?,BY/(AXN`?X>\\>X.X=WNP;W>L:W.H9V^D8VN@7VN@7V><6V><6V><6" + "V><6V.<6V><6VN@7VN@7V^D8V^D8WNP:X_(AXO$@Y/(AY/(AU^03<7VM)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D8&R=" + "U.(1ZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZ?@GZ?@GZ?@GZ?@G" + "Z?@GZ/\\>NL?W`?W^T=WNP;W.H9V^D8VN@7V><6V.85U^44UN03UN03U>,2U.(1U.(1T^$0T^$0" + "T^$0T^$0T^$0TM`0T^$0T^$0U.(1U.(1UN03UN03V><6V^D8V^D8P,W\\*C9G)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D>XBYW^X=" + "ZODHZODHZODHZODHZODHZODHZ?@GZODHZODHZ?@GZODHZODHZODHZ?@GZ?@GZ?@G" + "Z?@GZ?@GYO4DKKKGR-4\"Z/WNT<6U^85UN44U>,3T^$1TM`/T=\\.T-X.S]T-S]T,S]T,SMP+S=L*S-H)" + "S=L*S-H)S=L*S-H)S=L*S=L*SMP+SMP+S]T,T-X-T-X-S]T,T=\\.T-X-L\\#PAY/$" + "25:&)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-DEJ/3Y?0CZODH" + "ZODHZODHZODHZODHZ?@GZODHZODHZODHZODHZ?@GZODHZ?@GZ?@GZ?@GZ?@GZ?@G" + "Z?@GZ/<6Z?8E[/LI[?PJZ_HIZ/`?WNP;W.L:V^D8VN@7V><6" + "U^44U>,2T^$1T=\\/S]T-S]T-SMP+S=L*S=P+S-H)R]D(R]D(S-H)RM@(RM@'RMD(" + "RM@'RM@'R=@'R=@&R=@'R=@'R=@'R=@'R=@&RM@'RMD'R]D(S-H)S=L*SMT+T-X-" + "S=L*K;KJLL#PC)G*-D)S)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D,3UNK[SLZ/`?N<;V;WRL)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D/TM\\" + "I;+BW>L:Z/8E[/LJ[?PKZ_HJY_8EX_(AX.X=W>L:V^D9VN@7V><6U^44U>03T^$0" + "T-X-S]T-S=L+S-L*S-L*S-H*S=L*R]H)R]D(R]D(RM@'R]D(RMD'RMD(RM@'RM@'" + "R=@'R=@'R=@'R=<&R-<&R-<&R-<&R-<&R-<%R-<%R-8%R-<%R=<&R=<&RM@'RM@'" + "R]H)R]H)R]D%Z_HJV><7J[?H7VN<)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D1%\"!P](\"ZODHZODHZODHZODH" + "ZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZ?@GZ?@GZ?@GZ?@GZ?@G" + "Z/,1Z/<6VN@7V.86UN04T^$1T-X.SMP,S-H*" + "R]D(S-H)R]H)R]D)R]D(RM@'Q=(\"O\\O[P\\[^R=<&RM@'R]D(RM@'RM@'RM@'RM@'" + "RM@'RM@'RM@'R=@'R=<&R-<&R-<&R-<&R-<&R-8%R-<&R-<%Q]8$R-<%R-<%R-8%" + "R-8%R-8%K+GGYO0CY?,CY/,BX_$@P]$!>8:W*S=H)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D7FN<7V><6U^44U>,3TM`0S]T-S=L*R]D)RMD(RMD(" + "R]D(R]D)S-H)Q]0%M+GILJW9MZ_:O;+=NK+=L[#;M[CEQL[[R]D(RMD(RM@'RM@'" + "RMD(RM@'RMD'RM@'R=<&R=<&R=<&R-<&R-<&R-<&R-<&Q]8%Q]8%R-8%Q]8%R-8%" + "Q]8$Q]8$J[GIU>(0X_(BX>\\?X_$@Y/(BX_(AQ-$!=(&Q)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D>86VWNPW>L:V^D8V><6U^85U.(2TM`0S]T,S-H*RMD(RMD(RM@(RM@(RMD(" + "RMD(R]D(PLW_M*[:R:/.UG^EVFE`V6!KV6)QVG.-T9>\\P;#8O+[HRM@&R]D(RMD(" + "RMD(RM@'RM@'R=@'R=@'R=<&R=@'R=<&R-<&R-<&R-<&R-<%R-8%R-8%Q]8%R-8%" + "Q]8$Q]8$N\\GZNL7SY_4FX>\\?X.X>X>\\?X_$@Y/(AX_$AP,W]9W2E)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-DDZ#1Y/,BZODHZODHZODHZODHZODHZODHZODH" + "ZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZ?@GZODHZODHZ?@GZ?@GZ/<6V.85U>03T=`0SMP,S-H)RMD(RMD(RMD(RMD(RMD(R]D(R]D(" + "R]D(Q,`\"N:_2VVU]R;3Y_4EXN`@X.X>X.X>X.X>X.X>XN`@X_(AX>\\>L+SM3EJ+)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D+CIKK+GJZ/03H*W=2E>()S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D>H>XS]T,Y?,BY_4C[/PJ[OTLZODIW.H:W^X<" + "W.L:VN@7V.<6UN44TN$0SMT-S-H*RM@(R=@'R=@'RM@'R=@'RMD(RMD(R]D(R]D(" + "R]D)N;3EU(FTV(.1R+SDSJO8UXVUV8BLUX^TSZW5R;SIUXFMVV]_QKKDO\\7QR]D(" + "R]D(RM@'RM@'R=@'RM@'R=<&R=<&R-<&R=<&R-<&R-<&R-<&R=<&R-8%R-8%Q]8%" + "Q]8$Q]8$Q]8$H:[>X.X=XN`@X.X>X.X>X.X>X.X>X.X>X>\\?XO$@X_$@VN@7DI_/" + "*S=H)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D0DY_P<__Z?@GZODHZODHZODHZODHZODHZODHZODHZODHZODH" + "ZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZ?@GZ?@GZ?@GXO$@" + "HJ_V.86UN43" + "V><6V.85U.,2T-\\/S-L*RM@'RM@'R=@'R=@'R=@'RMD(RM@(RMD(R]D(R]D)S-H)" + "P\\S_RJ+1VG%YRKKBU9K*X&-MVHZGU9R^VHJIX5]EV(^KR;[KVH*EV8F@OL+NR-/`" + "R]D(RMD(RMD'RM@'RM@'R=@'R=@'R=@'R=<&R-<&R=@&R-<&R=<&R=@'Q]8$R-8%" + "Q]8$R-8%Q]8$K+KJS]P)Y/(CX.X>X.X>X.X>X.X>X.X>X.X>W^T=X>\\>XN`@X_$@" + "N\\CX35J*)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D7&B9T=`/ZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODH" + "ZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZ?@GZ?@GSMP*" + "HZ_L;VN@7V><6V.86" + "UN44T^(2SMP,R]H)R=@'R=@'R=@'RM@(R=@'RM@(RMD(RMD(R]D(R]D(R]D)S-H)" + "O\\'SV(>RTJ&\\S;#>WF9PTK'4T:S9U*/+S[+X.X>X.X>X.X>X.X>X.X>W^T=X.X>X.X>X>\\?" + "XN`@U>,2?(FY)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D=X.TW>P;Z?@GZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODH" + "ZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZ?@GZ?@GY_4EKKKH" + "Q='_Z?@GZ/Y_8EZ_HIZ_HIW^T=V><7V.85V.85U>,3" + "T=`0S-L*RM@(RM@(R=<'R=@'R=@'RM@(RMD(RMD(RMD(R]D)R]D(RMD(R]H)S-H*" + "PK_PW'\"1S;37V(ZZVI2JUIS+X&APWX.:XV)JUZ\"_U*/0WVQUR,+MT:O5R;SBO<;T" + "SML)R]D(RMD'R]D(RM@'RMD(RM@'R=@'R=@'R=@'R=<&R=<&R-<&R-<%R-8%R-<%" + "Q]8%R-8%Q]8$QM4$H:W;YO0DX>\\?X.X>X.X>X.X>X.X>W^T=W^T=W^T=W^T=W^T=" + "X.X>X>\\?WNP;H:_?,3UN)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + "+CIKGZW>Y/,BZODHZODHZODHZ?@GZODHZODHZODHZODHZODHZODHZODHZODHZODH" + "ZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZ?@GVN@7GJG6" + "W^XL9V^@6W.D7X_$@Y?,BYO4DV^D9V.85V.85U.,3S]X." + "R]H)RMD(R=@'R=@'R=@'R=@'R=@'RM@(RMD(RMD(R]D)R]D)R]D(R]D)R]D)S=L+" + "Q<#PW&=`RKC>W(.NU*7#W(&JUZ*^R,'MTZW:X69JS[KBWW*-T*W.P,CWP,O[O\\O[" + "R-4!R]D(R]D(RMD(RM@'RMD(RMD(R=@'R=@'R=@&R=@&R=<&R=<&R=<&R-<%R-<%" + "R-8%R-8%Q]8$Q]8%H:_?WNP;XN`@X.X>X.X>X.X>X.X>X.X>W^T=W^T=W^T=W^T=" + "W^T=X.X>X>\\?XN`?P,W]3UN,)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D5&\"1" + "Q=0#ZODHZODHZODHZODHZODHZODHZODHZODHZ?@GZODHZODHZODHZODHZODHZODH" + "ZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZ/84V.43X.X=X_$@VND9U^85U^85U.,3SMT-RMD(" + "R=@'RMD(R=@(R=@'R=@'RM@'RM@(RM@(RM@(R]D(R]D(R]D)R]D)R]H)R]H)S-L+" + "Q,3SW7*2SZ[0UY;#V9:QUI_)X6Y`W8.DS[;>X'\"2TJ[/VI;#V96MPX.X>X.X>X.X>X.X>X.X>W^T=W^T=W^T=" + "W^T=W^T=W^T=X.X>X>\\?TM`/;7FJ)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D@Y\"`W>P;" + "ZODHZ?@GZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZ?@G" + "ZODHZODHZODHZODHZODHZODHZ?@GZODHZODHZODHZODHZODHZ?@GX>`?GZS9U.(0" + "Z?@GZ?@GZ?@GZ?@GZ/<6T^,3S-L+RMD(R=@'" + "RM@(RMD(RMD(RMD(R=@'RM@(RM@(RM@(RMD(RMD(R]D)R]D)R]H)S-H)R]H)S-L*" + "Q,GXV92`VI.JSK3BX6IVT+??TJS4U*G,T;/@XF9]T+/4V)O*W)\"?PX.X>X.X>X.X>X.X>W^T=W^T=W^T=W^T=" + "W^T=W^T=W^T=W^T=X.X>X>\\?VN@7A)'!)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D-T-TK[SMZ/\\>X.X=W^TP;WNP;W>P;W>P;W>P;WNP;W^TX>\\>XO$@X_(AY/(AY?,BYO0C" + "YO4DZ/8EZ/P;L+WN8FZ?)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-DN<7VV.43W>L8Z?ZW).ZXFE\\VIJQR\\'NX'JAU:;!P,O[P\\?X.X>X.X>X.X>W^T=X.X>X.X>W^T=W^T=" + "WNP\\>WNP;FZC8*S=H)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D97&BS]X.Z?@GZODHZODH" + "ZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODH" + "ZODHZODHZODHZODHZ?@GZODHZODHZODHZODHZODHZODHZ?@GY?0CJ[?EO\\>" + "W.H9VN<6V><5V><5VN@6W.D8W>L:WNP;W^T\\>XO$@X_(@Y/,AY?,BY?,BYO0C" + "YO0CYO0CYO4DYO0CYO4DYO4CYO0CY?0CY?,BY?,BY/,AY/(AX_$@XN`?XN\\>X>\\=" + "X.X=W^TXO$@Y/,BYO0CY_8EZ/L9XO$AX>\\?X.X>X.X>X.X>W^T=W^T=W^T=W^T=" + "W^T=W^T=W^T=WNP\\?X>\\?K[SL0DY_)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D*S=HE*'2XO$@Z?@GZODHZ?@GZ?@G" + "ZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODH" + "ZODHZODHZODHZODHZODHZODHZ?@GZ?@GZODHZODHZ?@GZ?@GU^44F:71T^$/XN`?" + "Y/(AYO0CY_8EZ/\\>X.X=X.X=X>\\>X_(AY?0CY_8E" + "Z?H^WVY]V9F^U*K4TJO7UI['WW22WWJ&R[[EO\\KZP,S\\P,W]P,W]" + "O\\S\\OLO[N\\GYI;3FN\\CXO\\S\\O,GXS-H'RMD(RM@'RM@'RM@'R=@&R=@&R=@&R-<%" + "R-<%R-<%Q]8%R-8%Q]8%KKSMR=8#Y?,DX>\\?X.X>X.X>X.X>X.X>X.X>W^T=W^T=" + "W^T=W^T=W^T=W^T=W^T=W^T=W^T=W^T=X.X>X>\\?X.\\?W>P;WNT=WNP<7U.(2" + "S]X-R]H)R-<&Q-(\"O\\S]N\\CYMH>X0$Q]" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D1E*#O\\>X.X=XN`?Y?,BY_8EZ?@GZO@HZ?@GZ/8EY_8EY_8EY_8EY_8EY_8EY_8EY_8E" + "Y_8EY_8EY_8EY_8EY_8EY_8EY_8EY_8EY_8EY_8EY_8EY_8EY_8EY_8EY_8EY_8E" + "Y_8EY_8EYO4DYO4DY_8EY_8EYO4DW>L:KKOK7VR<)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D-$!QNLCXZ?`AF:?8SMT+RMD(R=@'RM@(" + "R=@'RMD(R=@'RMD(R=@'R=@'RMD(RMD(RMD(RMD(RMD(R]D)RMD(R]H)R]H)S-H)" + "S-L*O\\OZP\\?X.X>X.X>X.X>X.X>W^T=W^T=W^T=" + "W^T=W^T=W^T=W^T=W^T=W^T=W^T=W^T=WNPXN`@Y/(BW^T=V^H:Y?,CYO4E" + "Y?,CY?0DY?0DY?0DY?0DYO4DYO4DYO0DYO4DYO4DYO4DYO4DYO4DYO4DYO0DWNP<" + "KKOL04U^)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D=8&RV.<6Z?@GZODHZODHZ?@GZODHZ?@GZ?@G" + "Z?@GZODHZODHZODHZODHZODHZ?@GZ?@GZODHZ?@GZODHZODHZ?@GZODHZODHZ?@G" + "ZODHZODHZ?@GZODHZODHZ?@GY_8EW^X=T^(1R=<&S-D'U>,1W^T;Z/\\>X.X=X_$@YO0CZ/\\?X>\\?X.X>X.X>X.X>X.X>W^T=W^T=" + "W^T=W^T=W^T=W^T=WNPVN@8U.(2W>L;" + "X.X>X.X>X.X>X.X>X.X>X.X>X.\\?X>\\?X>\\?XN`@X>\\?XN`@XN`@XN`@XN`@XN`@" + "W^TV^@6XN`@X.X>X.X>X.X>X.X>X.X>W^T=W^T=" + "W^T=W^T=W^T=W^T=W^T=W^T=W^T=WNPL;W^T=WNPL9Z/8EZ?@GZODHZODHZODHZODHZODHZODHZ?@GZ?@G" + "Z?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@G" + "Z?@GZ/L;LK[N" + "9G*C)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-DF:;7Y/,B[/LJ\\/\\O\\/\\PZ?@IY?0EY/0DY/0DY/,DV^L=EJ+1T-\\.RMD(R=@'" + "R=@'RMD(RM@(RMD(RMD(RM@'RMD(RMD(R]D)R]D(R]D(S-H*RMD*M,'RKK_SE*/4" + "J;?GEJ?;J[ONHK'CG:[BG*W@I;/BJ;CMD9_4F:C;LL+VJ;;EH+'GH;#BI[;IJKGJ" + "J;?FM\\3SOX.X>X.X>X.X>X.X>W^T=X.X>" + "W^T=W^T=W^T=W^T=W^T=W^T=W^T=WNPPL;W>L;W>L;W>L;W>L;W>L;" + "W>L;W.H:TM\\.6665)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-DAY/$WNTX>\\>Y/,BY_8EZ/`AF:G=S=L)RMD(R=@'" + "RM@(R=@'RMD(RMD(RMD(RMD(RMD(R]D)RMD(RMD(RMD(S-H)Q=0$O\\S[N,?XF:C;" + "N\\CXK;_TDJ38I[/CF*C?K[OJM<3WFZKGJS=N\\CXL[_OO,GZO\\O[P,W]P,W]" + "P,W]O\\?X.X>X.X>X.X>X.X>X.X>X.X>" + "W^T=W^T=W^T=W^T=W^T=WNPPL;" + "TN$1U.(2W^T=WNPL;W>L;WNPL;W>L;W>L;W>L;W>L;W>L;W>L;" + "W>L;WNP\\>X.X=Y/(AY_4DZ/\\?X.X>X.X>X.X>X.X>X.X>X.X>" + "W^T=W^T=W^T=W^T=W^T=W^T=W^T=WNP<6W^T=WNPL;WNPL;W>L;W>L;W>L;W>L;W>L;W>L;W>L;W>L;" + "W>L;W>L;W>L;V><6@X^_)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + "9W.DT=`/Z?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@G" + "Z?@GZ?@GZ?@GZ?@GZ/X>X.X=Y/(AY_8EY_8EY_8EY_8EY_8EY_8E" + "YO4DY_8EYO4DY_4DYO4DYO4DYO4DYO4DYO4DYO4DYO4DYO4DYO4DYO4DYO4DYO4D" + "YO4DYO4DYO4DYO4DYO0CX.\\>NL?W=H*S*C9H)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D0T]`SML+" + "Y?,B[OTL\\?`P[OTMY_8GY?0EY?0DY?,DY/,CY?0DY/0DY/(CR=H.I[/?SMX.R=@'" + "R=@'RMD(RM@(RMD(R=@'RM@(RMD(RM@(RMD(RMD(R]D(R]H)S-L*O\\W\\P<[_H;3G" + "I;+BI;/DOX.X>X.X>X.X>X.X>X.X>" + "W^T=W^T=W^T=W^T=W^T=W^T=W^T=WNPL;WNPL;W>L;W>L;W>L;W>L;W>L;W>L;W>L;W>L;" + "W>L;W>L;W>L;V^D9RM@'/TM\\)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D*S=HFJ?8" + "X_$AZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ/\\>Y?,BY_8EY_8EYO4D" + "Y_4DYO4DY_8EY_8EYO4DYO4DYO4DYO4DYO4DYO4DYO4DYO4DYO4DYO4DYO4DYO4D" + "YO4DYO4DYO4DYO4DYO4DYO4DY?0CY?,BS=L*DZ#0/TM\\)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D*C9GN<;WX_$@" + "Z_HI\\/\\O\\/\\OZ/DZ#/T-\\.RMD(" + "R=@'R=@'RM@(RM@(RM@(RMD(R]D(RM@(RMD(RMD(R]D)R]H)S-L*P,[^QM0#O\\S\\" + "O\\S\\P,W]P<[^OLO[NX.X>X.X>X.X>X.X>X.X>" + "W^T=W^T=W^T=W^T=W^T=WNPWNPL;W>L;WNPL;W>L;W>L;W>L;" + "W>L;W>L;W>L;W.H:VN@7H:[=)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D6&25QM0#Z?@G" + "Z?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ/\\?X.X>X.X>X.X>W^T=X.X>" + "X.X>W^T=W^T=W^T=W^T=W^T=W^T=WNPL;W>L;W>PL;W>L;W>L;W>L;W>L;W>L;" + "W>L;W>L;W>L;W>L;W.H:U.(18FZ>)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D*C=HD9[.X.\\>Z?@GZ?@G" + "Z?@GZ?@GZ?@GZ?@GZ?@GZ_HIZODHZ/`>Z/\\>Y?0CY_8EYO4DYO4DYO4DY_4DYO4DYO4DYO4DYO4DYO4DYO4DYO4DYO4DYO4D" + "YO4DYO4DYO4DYO4DYO4DYO4DYO4DYO4DYO4DYO4DYO0CYO0CX_$@PL__@Y\"`,3UN" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D;7JKW>L:Y/,B[?PK" + "\\P$Q[?PMYO4FY?,DY/,DY/,DY/0DY/,DY?0DY/,DY/,DY/,DX_(CLL+VO\\?X.X>X.X>X.X>X.X>W^T=" + "W^T=X.X>W^T=W^T=W^T=W^T=W^T=W^T=WNPL;WNPL;WNPL;W>L;W>L;W>L;W>L;W>L;" + "W>L;W>L;W>L;W>L;W.H:VN@8N<;V*C9G)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D4%V.P,[^Z/X.X>W^T=X.X>W^T=" + "W^T=X.X>W^T=W^T=W^T=W^T=W^T=WNPWNPPL;WNPL;W>L;W>L;WNPL;" + "W>L;W>L;W>L;W>L;W>L;W.H:V.85@HZ^)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-DB9;'W>L:Z?@GZ?@GZ?@GZ/Z/\\>X.X=Y/(AY_4DY_4DYO4DYO4DYO4DYO4DYO4DYO4DYO4DYO4D" + "YO4DYO4DYO4DYO4DYO4DYO4DYO4DYO4DYO4DYO4DYO4DYO4DYO4DYO4DYO4DY?0C" + "Y?0CW^TP>D9W,T-X-" + "R-<&R-<&R=@'R=@'R=@'RMD(R]D(R]D)R]D)R]D(R]D(S-H)S=L*S-L*S=L*S=L*" + "S=L*S=L+S=P*SMP+SMP+SMP+SMP+S=L*RMD(Q-,\"NLCYK[WLHK'@EZ?5D*#-C)O'" + "B9G%AY?$AI7\"A)/!@Y&_@(Z\\?8NY>XFW>8:T=(&O<7ZL=8*O>(6S=(*O>HBUG:K7" + "Q-,!RMD'R=@'R=<&R=<&R-8&R-8%Q]8%J[GJR-4\"Y/,CX.X>X.X>X.X>X.X>X.X>" + "X.X>X.X>W^T=W^T=W^T=W^T=W^T=W^T=W^T=W^T=W^T=WNPL;W>L;W>L;W>L;W>L;W>L;W>L;" + "W>L;W>L;W>L;W>L;W>L;W>L;VN@8R=8%.D9W)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D1U2%NL?XZ/<7P,W[O,0Y_4DZ?@G" + "Z?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ/\\>X.X=Y/(AY_8EYO4DYO4DYO4DYO4DYO4DYO4DYO4D" + "YO4DYO4DYO4DYO4DYO4DYO4DYO4DYO4DYO4DYO4DYO4DYO4DYO4DYO4DY?0CYO4D" + "YO4DYO4DY?0CY/(ARM@'CIO+.$1U)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D@H^_X.X=Y/$@Z_HI\\?`O\\/XO" + "Y_8GY?,DY/,DY/,DY/,CY/,DY/,DY/,DY/,DY/,DY/,DY/,DY/,DX>`AG*O=RM@&" + "R=@(R-<&R=@'R=@'RMD(R]D)R]D)R]D(R]H)R]H)S-H)S-H)S-H*S=L*S=L*SMP+" + "S=L+SMP+SMP+SMP+S=L*R=@'P,__L,#PH+#?D:'0BYK(B9?%AY;#AY7\"AI3\"A9/!" + "@Y&_@I\"^@8^]?XR[>XFW>8:T=8&O;WRJ;'BG9W2B97*@:'6C:'6C;7JG?8RYDI_-" + "L;[LS=L*R=@'R=@'R=<&R-<&R-8%Q]8%O,O\\K+CEYO4EX.X>X.X>X.X>X.X>X.X>" + "X.X>X.X>W^T=W^T=W^T=W^T=W^T=W^T=W^T=W^T=W^T=WNPL;W>L;W>L;WNPL;W>L;W>L;" + "W>L;W>L;W>L;W>L;W>L;W>L;W.H:V.45EZ/3)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D@(V]VND8Z?@GZ?@GZ?@GZODHZODHZ?@GZ?@GZ?@G" + "Z?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GYO4DU>,2N\\CUP,WYV^D6Z/W^X=Y?,BY_8EYO4DYO4DYO4DYO4DYO4D" + "YO4DYO4DYO4DYO4DYO4DYO4DYO4DY?0CYO4DYO4DYO4DYO4DYO4DYO4DYO4DYO4D" + "YO4DYO4DYO4DYO4DY?0CY?0CV><6J+7E6666)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D2%6&UN03XN`?Y_4D[OTM\\`$QZ?DJ" + "Y?0EY/,DY/,DY/,DY/,DY/,DY/,DY/,DY/,DY/,DY?,DY/,DY/,DX_(CM,3XNL;S" + "R]L*R=<'RM@(R]D)R]D)R]D)R]H)R]H)S-H)S-H)S-H)S-H)S-L*S=L*S=L*S=L+" + "S=L+S=L+R]D)Q-,\"LL'RG:S;BYO)A9/!A)&_A)*`A)*`A)&_A)*`@Y&_@I\"^@H^]" + "@(Z\\?HRZ?(JX>8:T=H.Q54U^-45V*4EZ,76J7=X6QBYG'H;#>" + "LL#NS=L*R]D(R=@'R-<&R-<%R-8%R-8%QM4$FJ;5Y?,BX>\\?X.X>X.X>X.X>X.X>" + "W^T=X.X>W^T=W^T=W^T=W^T=W^T=W^T=W^T=W^T=W^T=WNPL;S]X.V.86X.X>WNPL;W>L;W>L;W>L;" + "W>L;W>L;W>L;W>L;W>L;W>L;W.H:VN@8RM<&-4%R)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D0$Q]L\\'QY_8EZ?@GZ?@GZODHZODHZODHZODHZ?@GZ?@GZ?@G" + "ZODHZ?@GZ?@GZ?@GZ?@GYO4DT^(1N,3QP`?OH>W+CIK)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-DL+[NXN`?Y/$@Z_HI\\?`O[_XNY?0E" + "Y/,DY/(CY/,DY/,DY/(CY/,DY/,DY/,DY/,DY/,DY?,DY/,DY/,DY/(CS=X1H*S9" + "S]X.R=@'RM@(RMD(R]D)RMD(R]H)R]H)R]H)S-H)S-H)S-H)S-L*S=L*S=L*S-H*" + "R=<'OXFW>8:T=(&O;WNI:W>E:76C:WBD;GRI;GRJ:'>F7FR:HFW@I&_G*O:K+OI" + "M<3RR-<%SMT-RM@'R-<&R-<%R-8%Q]8%R-8%FJC8W.H8XN`@X.X>X.X>X.X>X.X>" + "X.X>X.X>W^T=W^T=W^T=W^T=W^T=W^T=W^T=W^T=WNP04S]X.X.X=WNPL;WNPPL;" + "W>L;W>L;W>L;W>L;W>L;W>L;W.H:V^D9U^45AI+\")S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D=X2UU^44ZODHZODHZODHZ?@GZ?@GZODHZODHZODHZ?@GZODHZ?@G" + "Z?@GZ?@GZ?@GY_8EUN04ML/QO,GTW>L8Z?`?YO4DY_4DYO4D" + "YO4DYO4DYO4DYO4DYO4DYO4DYO4DYO4DY?0CYO4DYO4DYO4DYO4DYO4DYO4DYO4D" + "YO4DYO4DY?0CYO0CY?0CYO4DY?0CY?0CYO4DY?0CY?,BS]T-F:7615&\")S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-DT>DI[." + "S]X-RM@(RM@(RMD(R]D)R]D)R]D(R]D)R]H)S-H)S-H)S-L*S=L*S-H*Q]8&N(:S=X6R>(:T>HBU?(FW?(JX?HRZ?XRZ?XV[?HRZ?8NY>HBV=X6R=H2Q" + ">(6R?(FV@(Z[@Y*_?HZ];H\"Q6VV>052((C5H$\"17$2!16&6,H[/ACI[.I;7DK[[M" + "M<7SP<_^T=`/R=@'R-<&R-<&R-<%R-8%R-8%I[7GRM<$Y/(BX.X>X.X>X.X>W^T=" + "X.X>W^T=W^T=W^T=W^T=W^T=W^T=W^T=WNPPWNPL;W>L;" + "W>L;W>L;W>L;W>L;W>L;W.H:W.H:W.H:VN@8O\\S[*C9G)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D.45VK;KKY_8EZODHZODHZODHZ?@GZODHZODHZODHZODHZODHZ?@GZODHZ?@G" + "Z?@GZ?<3Z?L:L;WN9G*C" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D,3UNR=<&XN`?X_$@ZODH\\O`P[_XOYO4FY/(C" + "Y/(CY/,DY/(CY/(CY/,DY/,DY/(CY/,DY/,DY/,DY/,DY/,DY/,DY/,CX?$AG:S?" + "R-8$R]D)RM@(RMD(RMD)R]D)R]D)R]H)R]H)R]H)S-H*S-H)R=<'N(:T>8>T>8>T>8:T=X2R>8:S?8JW@Y\"\\B9C#B9K&" + "?I&`;'^P56F<-TV\"&\"]B\"298\"\"=:!RU?!C%F!3AO\"#5M2EJ#LL+QFJO=J;KIL<#O" + "M<7TN\\KZTN$0RM@(R=<&R-<&R-<&R-8%R-8%NLGZK[KGYO0EX.X>X.X>X.X>X.X>" + "X.X>W^T=W^T=W^T=W^T=WNT=WNPPL;" + "WNPL;W>L;W>L;W>L;W>L;W.H:W.H:V^D9U^44<7VM)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ";WRMT^$0ZODHZODHZODHZODHZ_HIZ_HIZODHY?,BZ/\\>Y?,B[OTL\\`$QZ?@IY/,DY/,D" + "Y/,CX_(CY/,DY/,DY/,CX_(CY/(CY/,DY/,CY/,DY/,DY/,DY/,DY/,DX_(CM<7X" + "M\\/PS=P,R=@'RMD(RMD(RMD(R]D(R]H)S-H)S-H*S-H)PL`!GJW>H:S@(RYB)2`C)O'A9?%>(NZ9'FI2F\"2*4)V" + "#RYA\"BI\\?X.X>X.X>W^T=" + "W^T=W^T=W^T=W^T=W^T=W^T=W^T=WNPPPWNPL;W>L;W>L;W>L;W.H:W.H:W.H:W.H:V><7LK[N)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D-$!QIK/C" + "Y?0CZODHZODHZODHZODHZ/03" + "K;OHN\\?RXO$>Z?@GZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODH" + "ZODHZ?@GZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODH" + "ZODHZODHZODHZODHZ?@GZ?@GZ?@GZO@HZODHZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@G" + "Z?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ/,2HJ_@4%R-)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D0D]`U>,2X.TZ?@G\\?`O[_XOYO4FY/,DY/,D" + "Y/(CXO$AY/,DY/,DY/,DY/,DY/(CY/(CY/,DY/,DY/(CY/(CY/,DY/,DY/(CSMX1" + "GZK6T-\\/R=@'RMD(RMD(RMD(R]D(R]D)S-H*R]H)OLS^@Y'#86^=7VV;8F^<9'&?" + "9W.A:G:D;WNI>(2R@8Z[BIC%B9G'@)&`;H*R66V>.$^#&39J\"RYA\"#%D!C=M!39L" + "!#AO!#IQ!#MQ!#MT!#QS!#YX!$!Y!$-^!$B&!%&.!%*2$SMRI;3AN\\O]JKOKL\\3T" + "M<7VN,CYR=@&SMT,R=@&R-<&R-8%R-8%R-8%Q]8%EZ;5W>L9XN\\@X.X>X.X>W^T=" + "X.X>W^T=W^T=W^T=W^T=W^T=W^T=W^T=W^T=WNPPPPPPP04S=P+X>\\?WNPL;WNPL;W>L;W>L;W>L;W.H:W.H:V^D9T^$06V>7)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D9W.DSMT,Z?@G" + "ZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHY/(AP<_^J+/=" + "T]`,Z?@GZ?@GZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODH" + "ZODHZODHZODHZODHZODHZ_HIZODHZODHZODHZODHZODHZODHZODHZODHZ?@GZ?@G" + "ZODHZODHZODHZODHZODHZODHZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@G" + "Z?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ/T?" + "D9W.S]X-RMD(RMD(RMD(R]D)R]D)R]D)S-H*R-<'D:#47VN:6&226V>49G*?=(\"L" + "@(VZAY7#@I/\"=8>W872G1ER/)S]S$3%D#S-D!S5I!3EO!#MR!#QR!$%X!$1^!$1^" + "!$-^!$1`!$5_!$5`!$5`!$5`!$>\"!$J%!$V-!%.4!%F<#$%\\CY[*Q]<(JKOLL\\3U" + "M<7VN,CXPM#`T-`/R=@'R-<&R-<&R-8%Q]8%Q]8%I++CS=H'X_$BX.X>X.X>X.X>" + "W^T=W^T=W^T=W^T=W^T=W^T=W^T=W^T=W^T=WNPPPPPPPT=W.PWNPL;" + "WNPL;W>L;W>L;W>L;W>L;W>L;W.H:W.H:V^D9V.86I+'@)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D*S=HEZ35Y/,BZODHZODH" + "ZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZ?@GVND8K;OGM+_IXN`=" + "ZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODH" + "ZODHZODHZODHZODHZODHZ_HIZODHZODHZODHZODHZODHZODHZODHZODHZODHZODH" + "ZODHZODHZODHZODHZODHZODHZ?@GZODHZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@G" + "Z?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@G" + "Z?@GZ?@GZ/\\>XN`?Z/8E[/LK\\?`P[OTNYO4FY/,DY/,CX_(C" + "Y/(CX_(CY/(CY/(CY/(CY/,DY/,DY?,DY/,DY/(DY/(CY/,DY/,DY/,DY/,DXO$B" + "GJW@R-8#R]H)RMD(RM@(R]D)R]D)R]H*R]H*PM$\"9G2D8VZ98BV=H6T:'BH" + "4F68,DQ]%S=K#3)D\"3-G\"39K!SAP!#YV!$!X!$-Z!$=_!$9_!$B!!$J#!$N%!$N'" + "!$J'!$R(!$R(!$R(!$B%!$F&!$N)!$^-!%&3!%>9!%ZB!TR)=8>OR]P,K;[PL\\3U" + "M<;WM\\CYOX.X>W^T=" + "W^T=W^T=W^T=W^T=W^T=W^T=W^T=W^T=W^T=WNPPL;W>L;WNPL;W>L;W>L;W.H:W.H:W.H:W.H:VN@8S]T,1%!`)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D1%\"!N\\GYZ?@GZODHZODHZODH" + "ZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZ/\\>YO4DYO4DYO0CYO4DYO0CYO4DY?0CYO4DYO4DYO0C" + "Y?0CYO4DY?0CY?0CY?0CY?0CY?0CY?0CY?0CY?0CY?0CY?0CY?0CY?0CY?0CY?0C" + "Y?0CY?0CY?0CY?0CY?0CY?0CY?0CY?0CY/,BV><6JK?G7&F9)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D9W2EML3TW>L:XN`?Y?,BZ/!!$J\"!$J\"!$N%!$^(!$Z(!$V(!$^)!$Z)!$Z)" + "!$^+!%\"+!$^*!%\",!$N)!$V*!$Z-!%&1!%.6!%JW^T=W^T=" + "W^T=W^T=W^T=W^T=W^T=W^T=W^T=W^T=W^T=WNPP(2D;#@7Y>T8J:[?L#4J=?ST^@2V.<6X.X=X.X>WNPL;W>L;W>L;W>L;W>L;W.H:W>L;W.H:W.H:V^D9U^04C9K))S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D(.ZODHZODHZODH" + "ZODHZ_HIZODHZODHZODHZOHHZ_HIZODHZODHZODHZODHZODHZODHZODHZODHZODH" + "ZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODH" + "ZODHZODHZODHZODHZ?@GZODHZODHZ?@GZODHZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@G" + "Z?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ/\\>X.X=Y?0CYO4DYO4DYO4DYO4DYO0CYO4DYO0CYO4D" + "YO0CYO0CY?0CY?0CY?0CY?0CY?0CY?0CY?0CY?0CY?0CY?0CY?0CY?0CY?0CY?0C" + "Y?0CY?0CY?0CY?0CY?0CY?0CY?0CY?0CY?0CY?0CY?,BX>\\>O\\S\\?HJ[+CIK)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D:W>H" + "NL?WX.X=X_$@YO0CZODI[?PLX>`@X>\\?[_XMZ_LLYO4FY?,DY/,DY/(CY/,CY/(C" + "Y/(CX_(CY/(CY/(CY/,DY/(CY/,DY/(CY/(CY/,CY/(CY/(CY/(CY/,DY/(CY/(C" + "SMX1GJK7T-\\.RMD(RMD(RMD(R]D)S-H*S-H)Q-4'.ER=$3-F#S1G\"#=K!SIO!#UU" + "!$%Y!$-\\!$A`!$F#!$N$!$R$!$Z'!%\"*!%\"+!%\",!%&,!%&-!%*.!%&,!%*,!%*-" + "!%*-!%*-!%&,!$^+!%\"-!$Z+!$Z-!%&0!%67!%J;!&\"E!%VB*$EZP-#]P-(#LL3U" + "M<;WML?XNLGZR=@'SMP,R=<&R-<&Q]8%Q]8%Q]4$Q]4$EZ33W^T;X>\\?W^T=W^T=" + "W^T=W^T=W^T=W^T=W^T=W^T=W^T=W^T=W^T=WNP_<%WNPL;W>L;W>L;W>L;W>L;W>L;W.H:W.H:V^D9V><6NL?V)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D-$!QJ+;FYO4DZODHZODHZODHZODHZODHZODH" + "ZODHZODHZODHZODHZODHZODHZODHZODHXO$@M,'OHJ_9WNP9ZODHZODHZ_HIZ_HI" + "Z_HIZODHZ_HIZ_HIZ_HIZ_HIZ_HIZODHZODHZODHZ_HIZ_HIZODHZODHZ_HIZOHH" + "Z_HIZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODH" + "ZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZ?@GZ?@GZ?@GZ?@GZ?@GZ?@G" + "Z?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@G" + "Z?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ/C)C'S]X,RMD(R=@'RMD(R]H)R]H)R]H)R=@(8H;%##MP!CEN!#QS!$!W!$-[" + "!$A`!$J$!$N$!$V'!$Z(!%\")!%\"*!%&+!%*,!%60!%60!%61!%62!%60!%..!%6/" + "!%2/!%2/!%.-!%./!%*/!%&.!%\"/!%*1!%:7!%F9!%^C!&.H#49_JKGES-T.L,+S" + "M<;WML?XNW^T=" + "W^T=W^T=W^T=W^T=W^T=W^T=W^T=W^T=WNP.WV@_L,9_,\"7._Z8>WZ6>OV6NKT:.OVI^D#U^@6W.L;W>PL;WNPL;W>L;W>L;W>L;W.H:W.H:W.H:V^D9VN@8T^$05F*2)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D4V\"0RMD(Z?@GZODHZODHZODHZODHZ_HIZ_HIZ_HI" + "ZODHZ_HIZ_HIZ_HIZODHZ_HIZODHW^X=JK?DJ;7>X_$?ZODHZ_HIZ_HIZ_HIZ_HI" + "Z_HIZ_HIZODHZ_HIZ_HIZ_HIZ_HIZODHZ_HIZODHZODHZODHZODHZ_HIZODHZODH" + "ZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODH" + "ZODHZODHZODHZODHZ?@GZODHZ?@HZ?@GZODHZODHZ?@GZ?@GZ?@GZ?@GZ?@GZODH" + "Z?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@G" + "Z?@GZ?@GZ?@GZ/L:LK_O:'6F)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D*C9G=(\"QO\\S\\X.X=Y/(AZ/8E" + "[/LK[OTM[_XN[OTNZOHJX>`BR]D*Z/`AEJ77Q]4#R]D)R=@(RMD)R]D)R]H)R]H)R]H)B:7C!T%X!#UU!$!Z!$1\\!$A_" + "!$N#!$Z(!$^)!%\"*!%\")!%.,!%*,!%6/!%6/!%:0!%B2!%>3!%:2!%>3!%:2!%>0" + "!%60!%6/!%*,!%21!%*/!%&.!%&/!%.3!%24!%F9!%V@!&:K!$Z,CZ#+TN,3L,+T" + "M<;WML?XN,GYOLW]T-\\.R=@'R-<&R-8%Q]8%Q]8$Q]8$L<#QN,/OX_(BW^T=W^T=" + "W^T=W^T=W^T=W^T=W^T=WNPH:E\\7P9^'EB?T.OV3^GS5>CT1>'H6>CS8^?SL>,\"UN85V^H:W>P<" + "WNPL;W>L;W>L;W>L;W>L;W.H:W.H:W.H:W.H:VN@8UN03F*34)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D=X2UV^D8ZODHZODHZODHZ_HIZODHZODHZ_HIZ_HIZODH" + "ZODHZ_HIZ_HIZODHZODHZODHW>L;I;+?K;GAYO0BZODHZ_HIZ_HIZ_HIZ_HIZ_HI" + "ZODHZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZODHZODHZODHZODHZODHZ_HIZ_HIZODHZODH" + "ZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODH" + "ZODHZODHZODHZODHZODHZODHZODHZ?@GZ?@GZODHZODHZ?@GZ?@GZ?@GZ?@GZ?@G" + "Z?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@G" + "Z?@GZ/86VPL_`X>X=Y/(AZ/$!$)]!$-]!$A`!$N\"" + "!$V&!$^(!%&*!%*,!%2.!%6/!%:0!%:0!%B1!%>1!%>2!%B3!%>2!%:1!%61!%:/" + "!%:0!%60!%.-!%..!%*/!%&.!%&0!%.3!%66!%B8!%Z?!&:K!523:'NFTN,2ML?Z" + "M<;WML?XN,GYO,O\\S]X-R]D)R=<&R-8%Q]8$Q]4$Q]8%P=$!G:C5Y/,BX.X>W^T=" + "W^T=WNPP<78,'4?O3_A/L-8._]0.3M0N;N4NGT0N+L4N;P4^GU5>3P>^+RR]\\+V.86V^H:" + "W>L;W>PL;W>L;W>L;W>L;W>L;W.H:W.H:W.H:V^D9V^D9V.86P<[^)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D*S=HFZC8YO4DZODHZODHZODHZODHZODHZODHZODIZ_DIZ?@GZ_HI" + "Z_HIZ_HIZODHZ_HIZ_HIW>P;HJ[\\>Y_8EYO4DYO0CYO4D" + "YO4DYO4DYO4DYO0CYO4DY?0CY?0CY?0CYO0CY?0CY?0CY?0CY?0CY?0CY?0CYO0C" + "Y?0CY?0CY?0CY?0CY?0CY?0CY?0CY?0CY?0CY?0CY?0CY?0CY?0CY?,BY?,BY?0C" + "Y?,BY?0CY?0CY?,BY/(BU>03I+#A5&\"1)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D*C9G?HN[Q-(!X>\\>Y/(AZ?!$9^!$F\"!$N#!$V%" + "!%\"(!%.+!%.,!%6.!%:0!%>0!%B2!%B2!%B1!%B2!%F3!%B3!%>2!%B4!%B4!%:0" + "!%>1!%F5!%61!%61!%21!%.0!%.2!%65!%:6!%B8!%Z>!&2I!%R?1%F&S=X+OL`\"" + "M,;WML?XN,CYN\\O[RMD(S=P,R=<&R-8%Q]8$Q]8$Q]8%QM4$DI[.W>H9X.X>W^T=" + "W^T=W^T=W^T=W^T=W^T=W^T=WNPPSY4.GT-./K/.3L+]_E8NSZ3^7P4>/N7./NLMC\\T^$0V><7" + "W.H:W>L;W>L;W>L;W.H:W>L;W.H:W.H:W.H:W.H:V^D9V^D9V><7U.(16VB8)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D1%\"!O,KZZODHZODHZODHZ_HIZODHZ_HIZ?@GZ_HI[/LKZ?@GY/(AZODH" + "Z_HIZ_HIZ_HIZ_HIW^T=HK#Y_8DZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HI" + "Z_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZODHZODHZODHZODH" + "ZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODH" + "ZODHZODHZODHZODHZODHZODHZODHZODHZODHZ?@GZ?@GZ?@GZODHZODHZ?@GZ?@G" + "Z?@GZ?@GZODHZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ/XNL9X.@6X.84X><5XND7Y.P:YN`>" + "Z/4DZ_@GZ?\\>Z/8EYO0CY_4D" + "YO4DYO4DYO4DYO4DYO4DYO4DY?0CY?0CYO0CY?0CYO4DYO0CY?0CY?0CY?0CY?0C" + "Y?0CY?0CY?0CY?0CY?0CY?0CY?0CY?0CY?0CY?0CY?0CY?0CY?0CY?0CY?0CY?0C" + "Y?,BY?,BY?,BY?0CY/,BY?,BY/,BX.X=N\\CX>(2U*C9G)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D+3EK@HZ_Q]4$X>\\>Y/,BZ?1!%B1!%B2!%F3!%F4!%B2!%J6!%F3!%B2" + "!%>2!%>3!%:4!%21!%20!%63!%.2!%:5!%65!%B8!%V\\?W^T=" + "W^T=W^T=W^T=W^T=WNP,22,K.@?@(8O#`2^OU2NGR2NGR,./K/.3L7NSY2^3M3>/L5>+LG-7QS-L*UN45" + "VND9W.H:W>L;W>L;W>L;W.H:W.H:W.H:W.H:W.H:V^D9V^D9VN@8UN03DI[.)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D;7JKUN44ZODHZODHZODHZODHZ_HIZ_HIZODHY_8EX_(AY?0CY_4DZO@GZ_HI" + "Z_HIZ_HIZ_HIXO$@IK/AHJ_6Y?0BZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HI" + "Z_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZODHZODHZODHZODHZODH" + "ZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODH" + "ZODHZODHZODHZODHZODHZODHZODHZ?@GZODHZ?@GZ?@GZODHZODHZODHZ?@GZ?@G" + "Z?@GZ?@GZODHZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@G" + "Z?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@G" + "Z?@GZ?@GZ?@GZ?@GZ/8EX.L9VN$/W=\\,YMD%[<;Q]+7<]JS.]JO,]:_4\\KG@[L;O" + "Y]3`X^(.X^H7Z/,BZO\\>Y_8EYO4D" + "YO4DYO4DYO4DY?0CYO4DYO4DYO0CY?0CY?0CY?0CY?0CY?0CY?0CY?0CY?0CY?0C" + "Y?0CY?0CY?0CY?0CY?0CY?0CY?0CY?0CY?0CY?,BY?0CY?0CY?0CY?0CY?0CY?,B" + "Y?0CY?,BY?,BY?0CY?,BY?0CY/,BY/,BY/,BY/(ASMP+EJ/30$Q])S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D*S=H=X2UQ-(!X>\\>Y/(AZ?`AE:/6R-8$R]D)RMD)R]D)S-H*S-L*S-H*RMD)?Z#>!$R#!$R\"!$Z&!%&)" + "!%.+!%.+!%6-!%B1!%>0!%B1!%>0!%J4!%J4!%B1!%J4!%F3!%J5!%F4!%J3!%F2" + "!%N6!%F5!%J6!%>3!%60!%61!%:3!%:4!%:5!%F8!%V>!&.E!&FK#D^(I+3@TN,4" + "LL3VML?XM\\CYNL;VNH:" + "SN440\\7-=?+`6>[\\0>GR0N?P1.?O1^;P-.+I3^CT1^/M2>+L4N#KDM#IQ-+`U.,2" + "V><7W.H:W.H:W>L;W>L;W.H:W.H:V^H:W.H:W.H:W.H:V^D9V^D9V.86N,3T)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + "DI_/X_(AZODHZODHZODHZODHZ_HIZ_HIZ_HIZ_HIZ_HIZODHZODHZ_HIZ_HIZ_HI" + "Z_HIZ_HIYO4DK[SKEZ/*XN`=Z_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HI" + "Z_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZODHZODHZODHZ_HI" + "ZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODH" + "ZODHZODHZODHZODHZODHZODHZ?@GZODHZODHZ?@GZODHZ?@GZODHZ?@GZ?@GZ?@G" + "Z?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@G" + "Z?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ/HO0!%F2!%F2!%J4!%J4!%J3!%F3!%J4!%J4!%F2!%N4!%N5" + "!%N4!%J5!%F4!%:2!%:2!%:1!%:1!%:2!%>6!%B8!%R;!&*B!&JL\"%61B)C$U>86" + "M,;XML?XM\\CYN,GZOL;VNH:" + "U>869L'88^KQ5NWX0.GQ/N;P/.7N/^7N'=WD3.;R0^+L1N#K4=[JD,+?P,[YT^$0" + "V><7V^D9W.H:W.H:W.H:V^H:VNH:VNH:V^H:V^H:V^H:W.H:V^D9V><7T=\\.0DY_" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D.T=XM,+R" + "Z?@GZODHZODHZODHZODHZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HI" + "Z_HIZ?P;W.H9W>L:X.X=Y?,BZO@GZ?@GZ?@G" + "Z?@GZ/8EW.@6V^,1X>85\\,'I_WZ%];G;ZML&\\L;P^J3#^Y>P^YJU^YNW^YNW^:7#" + "\\\\#I[=@#\\[_C^X^E]+7:Y=\\,X^H8ZO<6[_TMZODIZ/@HZ/1!%>2!%>2!%:1!%B3!%>5!%>7!%R;!&&@!&FK!5R;9'B@U.44" + "NLO]ML?XML?XN,GZO,S\\R]D)S-L*R-8%R-8%Q]4$QM4$QM0#Q-,\"EJ+1X>\\>X.X>" + "W^T=W^T=W^T=WNPL;W>L;V^L:" + "V.@8H,KQ4-C;4>KT1.?P/^7N.N3M../L+-[B3^?R/>#J0=[I4]GEB:G/N<;PT^$1" + "V.86VND9V^H:V^H:VNH:VND9VND9VNH:VNH:V^H:V^H:W.H:W.H:V^D9U>,2@8V]" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D7FNL:V><7VN@7WNL;XN`@Y/,B" + "X>\\>W.<7WND9W^H8Z=D$`'J\"];O>Y]X+^*K*_XJ;\\L;M\\LOS];G?]K?=\\\\;N\\0!%F2!%J3!%F2!%N4!%N5!%N4!%N3!%R6!%N5!%N4!%N4!%N3" + "!%J3!%F3!%B2!%>1!%>3!%>2!%:0!%:2!%>4!%B7!%N9!%^>!&BI!&*@-51_S-T)" + "P]4&M<;WML?XN,GZNLO[QM4$S]T-R-<&Q]8%Q]4$QM4$QM4$Q=0#F:?7V>84X>\\?" + "W^T=W^T=W^T=WNPL;W.L;" + "VND9SN(18;W*5N'G1^7N/./L-N+K,>'I0.+K0N'L/=[H0]SF@9U^<8U>48UN88V>@9V^D:V^H:V^H:V^H:V^D9U^45J+7D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D?HN\\W^X=ZODHZ_HI" + "ZODHZODHZ_HIZODHZODHZODHZODHZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HI" + "W>P\\>WNL:W^T\\>" + "W^T2!%:2!%B6!%B6!%R9!%ZH'4N\"ML;R" + "S-T.M,7VM\\CYM\\CYNL;W>L;W>PL;" + "V^H:U^@7N]8#2[S&2=SB/>'J,N#H+M_F,-[F--WF-MKC6\\G9F[?;JKGHL+[KUN44" + "V><7VN@9V>@9U>88M\\`+A)[@8X'%;(W4E['QQ]D-VND:V^H:V^H:W.H:V><7P\\__" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D+CIKH['AY_8EZ_HIZ_HIZODH" + "Z_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIY_8E" + "J[GHCYJ`Y/(@Z_HIZ_HIZ_HIZ_HIZ_HIZ_HJZ_HJ[/LJZ_HIZ_HIZ_HIZ_HIZ_HI" + "Z_HIZ_HIZ_HIZ_HIZ_HJZ_HIZ_HIZ_HIZ_HIZ_HIZODIZ_HIZ_HIZODHZODHZODH" + "ZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODH" + "ZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZ?@GZ?@GZ?@GZ?@G" + "Z?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@G" + "Z?@GZ?@GZ?@GZ?@GZ/[=@\"_)ZX_)NX[-3`[=D#`GA^" + "^*O-Z]L'`(:5_9\"GY=X+\\<#F`VQ@[LGRV-L'Z?/!%B0!%F0!%N2!%R5!%N5!%R5!%N3!%R5!%N5!%R5!%R5!%N4!%V7" + "!%J3!%N4!%J4!%J5!%B3!%B3!%>3!%:3!%:4!%F5!%R8!%V;!&.A!&NK\"U\"(G:W4" + "U.05LL3VM\\CYN,GZNL;W>L;W>L;" + "W.L;VND9U^<7O=<#9K?)00LW69+K*FK79N@7" + "V>@8V>@8U.48DJ_W*6C$09K`3+0A1K,3W>L:W^P@7]+O?_H>8\\L8XN`?Y/,B" + "YO4EZ/\\?Y/(CZ/.!%F0!%F0!%J1!%N4!%N4!%R5!%N3!%V6!%N5!%R4!%N4!%R5!%N5" + "!%J4!%N4!%J5!%J6!%B3!%B3!%B4!%:2!%>5!%>4!%F5!%R9!&&?!&NJ!5>/>XVS" + "U.45M\\GZM\\CYM\\CYNL;W>L;WNP;" + "W>L;W.H:V>D9UN<6T>,2KZS&E;'3K\\+LP,[]S-H)SMT,M,+QV^D9" + "V>@8UN87H+T!%G;=1+,C1KHN(*\\H\"J@8VN@9U>,2" + "?HFY)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D7FN;T^$0ZODHZ_HIZ_HIZ_HIZ_HIZ_HI" + "Z_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIXO$@E*'." + "I+#6ZODH[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJZ_HIZ_HIZ_HIZ_HI" + "Z_HIZ_HIZ_HJZ_HJZ_HJZ_HIZ_HIZ_HIZ_HIZODHZ_HIZ_HIZODHZODHZ_HIZODH" + "Z_HIZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODH" + "ZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZ?@GZ?@GZ?@GZ?@GZODHZ?@G" + "Z?@GZ?@GZODHZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@G" + "Z?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ/H9WNH:X><6[\\KR_(ZB^:G+[]'[\\-'Y];SA^*W-^J;\"^+#/[M+[" + "[M/^_XVC_8^AZMH%Z-X*_9\"F_HF7Y=`-V=X+Z?\\>X.X=X_(AY_4DYO4DYO4DYO4DYO4DYO4DYO4DYO4DYO4DYO4DYO4DYO4D" + "Y?0CY?0CY?0CY?0CY?0CY?0CY?0CY?0CY?0CY?0CY?0CY?0CY?0CY?0CY?0CY?0C" + "Y?0CY?0CY?0CY?,BY?0CY?0CY?0CY?0CY?0CY?,BY?,BY/,BY?,BY/,BY/,BY/,B" + "Y/,BY/,BY/,BY/,BY/,BY/,BY/,BY/,BY/(AY/(AX.X>O,GY>H:W*C9G)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D1U2&T=X,WNP;XN`?Y/,B" + "YO4EZ/W^T=XO$AZ/.!%>.!%J2!%N4!%N4!%N4!%N4!%R4!%R5!%N4!%R4!%R6!%R6!%J4" + "!%N5!%N5!%F4!%J5!%F5!%B3!%B4!%>3!%:4!%:4!%J6!%R8!%^W^T=W^T=WNPL;W.H:W.H:VND9V>@8U^86T^03SMX-R]L*S-L*S]T,T=`0U>,3UN44NLCXVN@8" + "VND9R=\\7/7G:.*T>6;\\P):`H$*HE!Z8C!)X>!)\\>\"*(?(*,=D,$6T^(3V.86UN04" + "H*S=)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D@(V]W^X=ZODHZODHZ_HIZ_HIZ_HIZ_HIZ_HI" + "Z_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HI[/LJ[/LJZ_HIZ_HIZ_HIZ_HIZODHO,GY?(BL" + "W.D5Z_HI[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJZ_HJ[/LJ[/LJZ_HI[/LJZ_HI[/LJ" + "[/LJZ_HIZ_HJ[/LJZ_HJZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZODHZODHZ_HIZ_HIZ_HI" + "ZODHZ_HIZODHZODHZODHZODHZODHZODHZODHZODHZ_HIZODHZODHZODHZODHZODH" + "ZODHZODHZODHZODHZODHZODHZODHZODHZODHZ?@GZODHZODHZODHZODHZ?@GZODH" + "ZODHZODHZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@G" + "Z?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ/W.H:V^D9P<[`" + "Q=,#QM0$M\\3VUN,3T-T-V^<7WN<7X^(/\\,'F^9JS_)BT^*W0]+OB\\\\+K];[E^:S-" + "_X:5^:G&ZMX*XN<5Z=3`^Y>NZM/]W^02XNT;Z/8EZ/8EZ/W>L;W>P<" + "Y?0DZ/.!%F0!%J3!%J4!%N4!%R5!%R5!%N4!%N4!%R5!%V7!%V6!%N5" + "!%N5!%R6!%J4!%B3!%>3!%B4!%B4!%:2!%:3!%>4!%J5!%N7!%^\\?W^T=W^T=WNPL;W>L;W.H:W.H:V^D9VND9VND9V><7V.<6V.86V><7V>@8V>@8O\\W^U^44" + "VND:I\\,%&8CW7,$N1;B97#K+?@" + "Z_HI[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJZ_HIZ_HJZ_HI[/LJ[/LJ[/LJZ_HJZ_HI" + "Z_HI[/LJ[/LJZ_HJZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZODHZODHZ_HIZ_HIZODH" + "ZODHZODHZODHZODHZODHZ_HIZODHZODHZODHZODHZODHZODHZODHZODHZODHZODH" + "ZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZ?@GZODH" + "Z?@GZ?@GZ?@GZODHZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@G" + "Z?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ/\\?W.H9" + "R]D)S]T-O@8X.<6YM`,Z]/\\\\,?N\\L+F\\L+G[LWT" + "Z=\\*XNH9X>P;X>TP;X>H9W^@7Y.`>Z?\\>Y_8EYO4DYO4DYO4DYO4DYO4DYO4DYO4DYO4DYO4DY?0C" + "YO0CYO4DYO4DY?0CY?0CY?0CY?0CY?0CY?0CY?0CY?0CY?0CY?0CY?0CY?0CY?0C" + "Y?0CY?0CY?0CY?0CY?0CY?0CY?0CY?0CY?,CY?,BY?,BY?,BY?,BY?,BY/,BY/,B" + "Y/,BY/,BY/,BY/,BY/,BY/,BY/,BY/(AY/(AY/(AX_$@X.X=V.85S=L*QM,!Q-'`" + "I;+CD9[.3%B))S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-DC)K,U>$.W^TV^H:" + "V^D9XO$AY_8FY_8GYO4FYO4FY?0DY/,DY/,DY/(CY/(CY/(CY/(CY/(CY/(CX_(C" + "X_(CY/(CX_$BXN`AH;#DP,OYRMD)R=@'R=@'R]D)R]D)R]H)R]D)C:OI!%*)!$^&" + "!%*)!%2,!%:.!%B/!%F0!%F1!%J3!%R5!%N4!%R5!%Z7!%V8!%R4!%V7!%V7!%V6" + "!%R5!%N5!%N5!%F4!%F4!%>3!%J6!%>3!%:2!%B4!%B4!%N7!%^;!&6E!&JI%D^$" + "K[_HT>(3M<;WN,GZN,GZNLK[P,__S]X.Q]8%QM4$QM0#QM0#Q=0\"Q=,\"KKSNN,/P" + "XO$AW^T=W^T=W^T=W^T=WNPL8W>H8WNL9W^P;WNP;" + "W^TL;W.H:W.H:W.H:W.H:W.H:W.H:W.H:W.H:V^H:Q=0$T^$0" + "W.L,3" + "S=L*,3QM)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D-D)SML3TZODHZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HI" + "Z_HIZ_HIZ_HIZODH[/LJ[/LJZ/8FYO4D[/LJ[/LJZ_HIZ_HJZ_HIN\\CY=8&JW.H6" + "[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJZ_HJZ_HIZ_HJ[/LJ[/LJ[/LJ[/LJ" + "Z_HI[/LJ[/LJZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZODHZ_HIZ_HIZ_HIZ_HIZ_HI" + "ZODHZ_HIZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODH" + "ZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZ?@GZODHZ?@GZODH" + "ZODHZ?@GZ?@GZODHZ?@GZ?@GZ/H9W^L;X.L;X>PTT=" + "X>T=X>X>X>X>X>X>X>X=X>X=Y_0CZ?Y?,BYO4DYO4DYO4DYO4DYO4DY?0CYO4DYO0CY?0CYO4D" + "Y?0CYO4DYO4DY?0CY?0CY?0CY?0CY?0CY?0CY?0CY?0CY?0CY?0CY?0CY?0CY?0C" + "Y?0CY?0CY?0CY?0CY?0CY?0CY?0CY?0CY?0CY?,BY?0CY?,BY?0CY?,BY?,BY?0C" + "Y/,BY/,BY/,BY/,BY/,BY/,BY/(AXN`?W>L:T^$0Q]0#N<7TKKOIOUN,0X.X=X_$@Y?,C" + "Y_8FZ?@H\\?\\O\\?`P[?TM[/PLZ_LK[/LK[/LK[/LK[/LK[?PL[?PL[OTM[OTM[?TM" + "[/PL[/PLZ_LKZODJYO4FX>`AWNP=WNT=X>`@Y/,CY?0DY?0DY?,CY/(BX_$AX.\\?" + "V^D9V.86W^X>YO4EYO4FYO4FY?0EY?0EY/,DY/(CY/,DY/(CY/(CY/(CX_(CY/(C" + "X_(CY/(CX_$BX_$BN3!%:2!%B3!%:3!%>4!%N7!%V:!&2B!&NL\"%6." + "E*3,UN<7M<;XN,GZN,GZNL;W>L;W>L;W.H:W>L;W>L;W>L;W>L;W>L;W.L;RMD*S=L*" + "W>T>>Z#R+:,76;TN\"J4E!:0C!)49\")T,2T-X.T=\\/N,;WS-H)O\\S^S=L+V^D9W^PX>X>X>" + "XN\\?XN\\?X>\\>XN\\>X>X=Z?8EZ/<6S]T+P]#_N,3RK+GFJ+7BO@7Y/,CY/,CY?,C" + "Y/,CY/,BY/(AX_$@R=<&5F*3)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-DKKOLV>83X.X=X_$AY?,C" + "YO4EZODI\\P$Q\\?`P[?TMZ_HJZ_HJZ_HJZ_HJ[/LK[?PL[OTM[_XN[OXN[OXN[?TM" + "[/PLZ/T?HFV?XJW@HVZCYO)K+CGT-X,X_$AY/(BX_$AXN`@" + "X.X>V><7UN04W^T=Y?0EY?4EY?0EY?0EY/,DY/,DY/,DY/(CY/(CY/(CY/(CX_(C" + "X_(CX_$BX_$BX_$BS]\\2D9O)SMT-RM@(RM@(RMD(R]D)R]D)R]D)O=(&(F2G!$^&" + "!%\"'!%.+!%6-!%>/!%>0!%F1!%J3!%N5!%J4!%N4!%R5!%R6!%V6!%R7!%R6!%V6" + "!%Z8!%R5!%R6!%N5!%B3!%F4!%B4!%B5!%>2!%>3!%>5!%J6!%R9!&*A!&NM!%R7" + "`?W^T=WNPH9R]/ZF8^3OZI!X]!!\\-Y![]Q!Y=)L;W>L;W>L;W>L;W>L;W>L;W>L;W>L;W.L;S]T.Q]4#" + "W^\\?A*;U))P30+0K!*$C!*$B!)D:\"Y88\"9L<$)`=!)(5#9`;!9L68J<.P,[`T-X." + "TM`0AI'!)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D;7JJU^85ZODHZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HI" + "[/LJ[/LJZ_HIZODHZODHZ_HI[/LJ[/LJ[/LJ[/LJ[/LJZ_HIR=@'<7^ET=X)[/LJ" + "[/LJ[/LJ[/LJ[/LJ[/LJ[/LJZ_HJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ" + "[/LJ[/LJZ_HJZ_HIZ_HIZ_HIZODIZ_HIZ_HIZ_HIZODHZ_HIZ_HIZ_HIZ_HIZ_HI" + "ZODHZODHZODHZODHZODHZODHZ_HIZ_HIZODHZODHZODHZODHZODHZODHZODHZODH" + "ZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZ?@GZODHZODHZODHZODH" + "Z?@HZ?@HZODHZODHZODHZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@G" + "Z?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ/V.85V><7RM<'ML/UM\\3VR]@)S-H*V.86WNPX>X>X>X>\\>X.T=Y/(AZ?\\>Y/,BYO4DYO4DYO4DYO4DYO4DYO4DYO4DYO4DYO4D" + "YO4DYO4DYO0CY?0CYO4DYO0CYO4DY?0CY?0CY?0CY?0CY?0CY?0CY?0CY?0CY?0C" + "Y?0CY?0CY?0CY?0CY?0CY?0CY?0CY?0CY?0CY?,BY?,CY?0CY/,BY?,BY/,BY/(B" + "X>`?W.H9T^$0RM@'P<[]M\\3RK+CEHZ_DWNP,2X.X>Y/,DY?0EY?0EY/,DY/,DY/,DY/(CY/(CY/(CY/(CY/(C" + "X_(CX_(CX_$BXO$AW.P=B9;'R]H(RM@(R=@(RMD(R]D)R]D)R]D)Q]<'6H;(!%&'" + "!%\"'!%.+!%2+!%>0!%>0!%F1!%J3!%J3!%R6!%R5!%R5!%R6!%R5!%N5!%N4!%R4" + "!%Z7!%V7!%R7!%N6!%J6!%J6!%B4!%B5!%>5!%>5!%>5!%J7!%N:!%^?!&JK!&.B" + "25^&T>$.P]0%M\\CYN,GZNP:X.X>W^T=W^T%!`_1!`_!!`NQ!`>I!`.E!_NE!" + "[N*LWND.W^TL;W>L;W>L;W>L;W>L;W.H:T^(3P,S\\" + "X?$AG;C_\"(D\"&*HE!)`B!)T@!)H;$IL:!:$>!)H9!(`2)J0,3T^$1S]T-R]D)S-L+" + "W.H:WNPW^P\\>Y_8EYO4DYO4DYO4DYO4DYO4DYO4DYO4DYO4D" + "Y?0CY?0CYO4DYO4DY?0CYO4DYO4DY?0CY?0CY?0CY?0CY?0CY?0CYO0CY?0CY?0C" + "Y?0CY?0CY?0CY?0CY?0CY?0CY?0CY?0CY?,BY?0CY/,BY/,BX_$@WNPL9X.X=Y/(BY?0D" + "Y_8FZ_HJ\\`$Q[OTNZ?@HZ?@HZ?@HZ_HJ[/LK[?PL[_XN\\P$Q\\?`P\\/\\O[?PMQ-4)" + "AI\"`K+?CQ]4#T-X-T^$0U>,2UN03U>,2T^$0T=\\.T=\\.S]T,Q=,\"IK+AL;SJW^T<" + "X.X>W^T=V^D9U>,2U.(2X>\\?Y/,DY?0EY/,DY/,DY/,DY/,DY/(CY/(CX_$BX_(C" + "X_$BX_(CX_$BX_$BX.\\@G*K>PL_]RMD)R=@'RM@(RM@(RMD)RMD)R=@(@J/B!%&'" + "!%&(!%*)!%6+!%:/!%>0!%B0!%J3!%J5!%N6!%N5!%R5!%V6!%V7!%R7!%V8!%R5" + "!%R5!%N6!%R7!%R7!%F4!%N6!%F5!%B5!%>5!%>5!%B6!%J8!%R;!%^>!&>I!&JI" + "(D^#O\\[YS=X.M\\CXNW^T=W^T=W^TA!`.5!_>)!_N1!" + "_>1![>.YVN<2WNP;WNPL;W>L;W>L;W>L;W>L;W.H:U^46N\\CW" + "XO$AP=<2&7#A\")`=!)`B!)T?!)L=!)$4!(T1!(P.%YX9%I\\9$)@2@JKZO,KZS=L+" + "T^$0ML/R)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D*C9G" + "G:O;Y_8EZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HI" + "Z_HIZ_HIZ_HIZ_HI[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJW^X>?(FVK[GBZ_HI[/LJ" + "[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ" + "[/LJZ_HJZ_HJZ_HIZ_HIZ_HIZODHZOHIZODHZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HI" + "Z_HIZ_HIZ_HIZODHZ_HIZ_HIZODHZ_HIZODHZODHZODHZODHZODHZODHZODHZODH" + "ZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODH" + "ZODHZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@G" + "Z?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ/\\>YO0CYO4DYO4DYO4DYO4DYO4DYO4DYO4DYO4D" + "YO4DYO4DYO4DYO4DY?0CYO4DYO4DYO4DYO4DY?0CY?0CYO4DY?0CYO0CY?0CY?0C" + "Y?0CY?0CY?0CY?0CY?0CY?0CY?0CY?,CY/(AX.\\>VN@7T=\\.R=<&PL_^OL:X>\\>Y/(AY?0D" + "Y_8F[/LK\\P$QZ?@HZ/L;W.H:V.86T=\\/UN44XN`AY/,DY?,DY/,DY/,DY/(CY/(CY/(CX_$BX_$B" + "X_$BX_$BX_$BX_$BX>\\@M,3XL+OHS-H*R=<'R=@(RMD)RMD(RMD)RM@(G[OV!%6-" + "!%\"'!%&(!%.*!%6-!%:.!%B1!%F2!%F5!%N7!%R7!%R7!%R7!%V7!%V8!%V8!%R7" + "!%R6!%N6!%J5!%N6!%N6!%J5!%B4!%F6!%F7!%F7!%J8!%N9!%V45M\\CXNLKZNLKZN\\O[P,__S]X-Q]8%QM0#QM0#Q=0#Q=0\"Q=,\"GJO<" + "T^$.X>\\?W^T=W^T=W^TE!_^-!`.5!_^-!]]A!`.=!" + "_>%!^>!*W-_KV><6W>L:WNP;WNP;WNPL;W>L;W>L;V><8N,7U" + "X_$@UN88>9OL!8H\"!)TAT=X([/LJ[/LJ" + "[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ" + "[/LJZ_HJZ_HJZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZODHZ_HIZ_HIZ_HI" + "Z_HIZODHZODHZ_HIZ_HIZ_HIZ_HIZ_HIZODHZODHZODHZODHZ_HIZODHZODHZODH" + "ZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODH" + "ZODHZODHZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@G" + "Z?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@G" + "Z?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GY_8EX_$@W>L;T=X.QM0$S=L+" + "M,#RSMT-N,7VO,GZV^D9W^TL:Z/\\>X.\\>XN`?Y_8EY_4DYO4DYO4DYO4DYO4DYO4DYO4D" + "YO4DYO4DYO4DYO4DYO4DYO4DYO4DYO4DYO4DYO4DYO4DY?0CYO4DYO4DY?0CY?0C" + "Y?0DY?0CY?0CY?0CY/,BXO$@W>L:U>,2S-H)Q-(!O\\S[N\\CWML/QJ[CEFZ?4@HVY" + ">(2PG*C7P<[^WNP;X_$AY/(BY/,CY?0CY?0CY?0DY?0DY?0CY?0CY?0DY?0CY?0C" + "Y/,CX_(AX.X=V><6T=X-R-8#L:X>\\>Y/(BY?0D" + "Y_8F[OTL[/LLYO4EY_8FZ?@HZODIZ_HJ[?PL\\?`P\\`$Q\\P$Q\\?`PR-H/D9S'QM+`" + "TM`/U>,2U^44VN@7V.85T^$0TM`/TM`/T-X-S]T,SMP+S=L*S-H)S-H(R]D(R=@&" + "Q='`V^@8VN@8V><7T^$1S]T-W.H:XO$AX_(CY/(CY/,DY/(CY/(CY/(CY/(CX_$B" + "X_$BX_$BX_$BX_$BXN`@S=T0EZ'.S=P+R-<'R=@'RM@(RMD)RMD(RMD(NLX$&%R?" + "!%\"'!%&(!%2,!%6,!%:/!%F2!%F5!%B4!%N7!%N7!%N6!%R8!%Z9!%Z:!%V8!%R7" + "!%R7!%N7!%R8!%N6!%J6!%N6!%F6!%N8!%F8!%F8!%J9!%R:!%ZF!&^N" + "!UN7B)F`V.@8N\\@W^T=W^T=W^TL9Q\\#2^>!!`_E\"`^U!_^1!^]I!_>%!^^!!^]Y!_^=!" + "_.!!^]]!Y-JKU.$-V^D7W>L;WNP;WNPL;W>L;W>L;VN@8M\\3T" + "X>\\?VND9Q=D12WK9#(X$!I@7!)@8!)87!)46!),4!9,3+I4+?:'KL\\'PQM0#T-X." + "U>,2TM\\.0DU^)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D6&25S]T-Z_HI" + "Z_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HI[/LJZ_HIZ_HIZ_HIZ_HIZ_HI[/LJ" + "[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJZ_HIJ[KI='VBY?0A[/LJ[/LJ" + "[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ" + "[/LJZ_HJZ_HIZ_HIZODHZ_HIZODHZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HI" + "Z_HIZ_HIZ_HIZ_HIZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODH" + "ZODHZODHZODHZODHZODHZODIZODHZODHZODHZODHZODHZODHZODHZODHZODHZODH" + "ZODHZODHZODHZODHZODHZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@G" + "Z?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@G" + "Z?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ/\\>Y_8EYO4DYO4DYO4DYO4DYO4DYO4DYO4D" + "YO4DYO4DYO4DYO4DYO4DYO4DYO4DYO4DYO4DYO4DYO4DY?0CY?0CYO4DY?0CY?0C" + "Y?0CY/(BW^T=V.85S]T,Q]4#PCYO)=8&N=8*NFZC6P<[]" + "W.H9XN`@X_(AY/,BY/,BY?,CY?0CY?0CY?0CY?0CY?0DY?0DY?0CY?0CY?0CY?,C" + "Y/(AX>\\>VN@7TM\\.R-4#QM,!:7:G)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D@I#!TM\\,W>L:X>\\>Y/(BY?0D" + "Y_8F[/PLY?0DY?0CY_8EZ?@HZODIZ_HJ[_TM\\`$R\\`$Q\\P$QWN\\CD)S+PL_\\TM`/" + "U.(1U.(1W.H8V^D8V><6UN03U.(1T-X-S]T,RM@'S-H)S-H)R-8%R]D'RM@&R-8$" + "Q]4#S=L)V.86U^45U>03S]T-TM`0W^T>XO$AX_(BY/(CX_(CY/(CX_(CY/(CY/(C" + "X_$BX_$BX_$BXO$AXN`AW.L=B97%S-H)R=@(R=<'R=@'RM@(RMD(RMD(Q=8'27F^" + "!%\"&!%&(!%**!%6-!%:/!%>2!%B4!%F5!%B4!%N7!%N8!%R9!%Z:!%V9!%R9!%R8" + "!%Z:!%R8!%N6!%V8!%N7!%N8!%V:!%R:!%J9!%N;!%V!&\">!&.B!&BF!'&N" + "#&2<;GZAVNH9P-(\"O,W]OL[_O\\__P-#`SMT,RMD(QM4$Q=,\"Q=,\"Q=,\"Q=,\"HK#A" + "SML'X>`@W^T=WNP)!" + "^]]!^=Y![-IRS=C^U^44V^D8WNP;WNPL;W>L;W>L;W.H:V^D9M\\7U" + "X.X=V^H:U^86P-,,6H'5&X'S'9(+%9,0#Y(/&9(,.H[^>IKEJ[KJP,[]S-H*TM`0" + "U>,3TM`/:76E)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D<'VMV^D9Z_HIZ_HI" + "Z_HIZ_HIZ_HJZ_HIZ_HIZ_HI[/LJZ_HI[/LJ[/LJZ_HI[/LJ[/LJ[/LJ[/LJ[/LJ" + "[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJZ/8FCY[,D)K!Z_HH[/LJ[/LJ" + "[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ" + "[/LJZ_HJZ_HIZ_HIZODHZ_HIZODHZODHZODHZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HI" + "Z_HIZ_HIZODHZ_HIZODHZ_HIZODHZODHZODHZODHZODHZODHZODHZODHZODHZODH" + "ZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODH" + "ZODHZ?@GZ?@GZ?@GZODHZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@G" + "Z?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ/\\>W.D9W>L:WNP\\>Z/8EZ/`?W.H9" + "T^$0RM@'P]#_OLOZN\\?VL\\#NI[/AE:'.?(BU:W>D?8JXIK/BRM@&WNP;XN`?X_$@" + "Y/(AY/,BY/,BY/,BY?,CY?0CY?0DY?0CY?0CY?0CY?0CY?0DY?0DY?0CY?0CY/(B" + "X>\\?V^D8T]`/R=8$Q-#_QM,!9G.D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-DD)_1T]`-W>L:X>\\>Y/(BY?,C" + "Y_8FZ/,2VN<6W>L:U^44V><6UN03TM`/SMP+SMP+S=L*R]D'R]D(R=<&R=<&R=<%Q]4#" + "Q]4#QM0\"T-T,U>,3U>,3T-X.S-H)VN@8X>\\?XN`AX_$BX_(CY/(CX_(CX_(CX_$B" + "X_$BX_$BX_$BX_$BXN`AX.\\@E:38Q=,!R=@(R-<'R=<'R=@(RM@(RM@(R-<'=9K<" + "!%&(!%&(!%*+!%6-!%6.!%>2!%F5!%F5!%N7!%J7!%R:!%ZUY/,CRML+Q=<'QM<'QM<'Q]@(U>03R]H*QM0#Q=0#Q=,\"Q=,\"Q=,\"HK#A" + "SML(XN`@W^T=WNP5!`_)!`>A!`.1!_N)!_.)!^MQ!^]]!^^!!" + "^=Y!^-U![MA1R='OU.(1VN@7W.H:W>L;W>L;W>L;W>L;W>L;W.H:W.H:V^D9N<;W" + "W^TL;VN@8V.87SM\\2H[;O;8S657[56H38=(_5F:O?M,+SPL__S-H)TM`/U>,2" + "UN04T^$0@X^_)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-DA9+\"X_(AZ_HIZ_HIZ_HI" + "Z_HIZ_HIZ_HIZ_HIZ_HI[/LJ[/LJZ_HI[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ" + "[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJX.\\?>H:QK;?A[/LJ[/LJ[/LJ" + "[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ" + "[/LJZ_HIZ_HIZODHZODHZ_HIZODHZODHZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HI" + "Z_HIZ_HIZ_HIZ_HIZODHZODHZODHZODHZ_HIZODHZODHZODHZ_HIZODHZODHZODH" + "ZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODH" + "ZODHZODHZ?@GZODHZODHZODHZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@G" + "Z?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ/X_$@Y_8EYO4DYO4DYO4DYO4DYO4DYO4D" + "YO4DYO4DYO4DY?0CYO4DYO4DYO4DYO4DYO4DY?0CX_(AWNT(/W>L:X>\\>X_(BY?,C" + "Y_8FY/(BX_(AYO4DY_8FZ?@HZ?@H[/LK\\`$Q]0$R\\`$QV^T@F:32S-H'U>,2X>\\>" + "V^@7X.X=WNP<6T^$0TM`/TM`/S-H)RM@'Q]4$R=<&Q]4$R=<%Q=,\"Q]4#" + "QM0\"Q]4#Q-'`T=\\/T^$1T=\\/R]D(TM`0W>P`AK;WQM<'ORMD)R-<&R-<&R=@(R=@(RM@(R=@(F+3R" + "!%.,!%\"'!%.+!%2-!%:/!%>3!%>4!%J6!%N7!%N8!%R:!%VR]P,RML+RML+RML+SMX.V>D9R=<'QM0#Q=0#Q=,\"Q=,\"Q=,\"GJS>" + "T-T*X>\\@WNP<6W.H:W>L;W>L;W>L;W>L;W>H:W.H:W.D9V^D9NL?W" + "WNL:WNP,2UN04" + "U^45U.(2F:75)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-DF:76YO4DZ_HIZ_HIZ_HIZ_HI" + "Z_HIZ_HJ[/LJ[/LJZ_HI[/LJ[/LJ[/LJ[/LJZ_HI[/LJZ_HI[/LJ[/LJ[/LJ[/LJ" + "[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJU>,3;WFBPLWW[/LJ[/LJ[/LJ" + "[?PK[/LJ[/LJ[/LK[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ" + "[/LJZ_HIZ_HIZ_HIZODHZODHZODHZODHZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HI" + "Z_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZODHZODHZODHZODHZODHZODHZODHZODHZODH" + "ZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODH" + "ZODHZODHZ?@GZODHZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@G" + "Z?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ/(1R]@&Q='`Q-#_Q-#_Q]0#9G*C)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-DH:[@UN,0W>L:X>\\>X_(AY?,C" + "YO4EX>`?X_(AYO0DY_8FZ/L;U^44T^$0TM`/S-L*RMD'S-H)R]D(R-8%R-8%QM0#QM0\"QM0\"" + "QM0#PL__P@8WNT=X>\\@XN`AXN`AX_$BX_$BX_$B" + "X_$BX_$BX_$BX_$BXN`AXN`AQ=8)GJG5S-L*R-<'R-<'R=<'R=@(RM@(R=@(L\\H!" + "\"%B8!%\"(!%.+!%2,!%:/!%B3!%B5!%F6!%N8!%N8!%R:!%V=!%Z=!%Z=!%Z=!&\">" + "!&*>!&*>!&\"=!&.>!&2>!&2?!&6?\"FF@)FN?57ZMA*',J[[JR-H$W>P;Y/,BX.`@" + "V.<7S]T-R=@'RMD(R=D(RMH)S-L*T^,2T^(2QM4$QM0#Q=0\"Q=,\"Q=,\"Q=,\"FZC9" + "UN,1X.X?WNPH9T=7WY\\E!_^A!_N-!_>%!^]]!]-=!_N=!_.%!^-M!" + "^MY!]-I!W,IVP\\OPT=\\-V.86W.H9W>L:W>L;W>H:W>H:W.D9W.D9W.D9V^@8N<7U" + "W>H9WNP@8V.<7V.87UN04U>,3U.(2U.(2U>,3UN04U^45V.86" + "V.86U>,3J[?F)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D+CIKJ[CIZ?@GZ_HIZ_HIZ_HIZ_HI[/LJ" + "[/LJZ_HJ[/LJZ_HJZ_HI[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ" + "[/LJ[/LJ[/LJ[/LJ[/LK[?PK[/LJ[/LJ[/LJ[/LJR-8&9G\"9S]P&[/LK[/LJ[/LK" + "[/LK[/LJ[/LJ[/LK[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ" + "[/LJZ_HIZ_HIZODHZODHZODHZODHZODHZODHZODHZ_HIZ_HIZ_HIZ_HIZ_HIZ_HI" + "Z_HIZ_HIZ_HIZ_HIZODHZODHZODHZODHZODHZODHZODHZ_HIZODHZODHZODHZ?@G" + "ZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODH" + "ZODHZODHZ?@GZODHZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@G" + "Z?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?<6XO$@Y_8EYO4DYO4DYO4DYO4DYO4DYO4D" + "YO4DYO4DY?0CX_$AWNP;U>,2S-H)Q-'`O\\S[N\\CVM<'OJ[CFF:73@8RY:G2B9&^<" + "B9;%LK_NT=\\-W^TL:U>,1" + "S-D'Q='`Q-#_P\\_^Q-#_Q]0#76F:)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-DI;/EV.43WNP;X>\\>X_$AY/,C" + "X_(BX>\\>X_$@Y?0CYO4EZ/,2Y?0DXO$A" + "W>L:W.H:W>L;V^D9U^45U.(1S=L*S=L*R]D(R=@&QM4#R-8%R-8%QM0#R-8%P]#_" + "P<[]PL__P<[]PL[]S-H)SMP+R]D)Q=,#UN04W.L;X.X>X>\\@X>\\@XN`AX_$BX_$B" + "X_$BX_$BXN`AXN`AXN`AXN`AV.@:B)/!S-H*R-<'R-<&R=<'R=@'R=@(R=@(P]0&" + ".G*U!%&)!%&*!%2-!%60!%B6!%B6!%N9!%V;!%R;!%Z=!%Z>!&\"?!&\"@!&*?!&6@" + "!&:@!&>@!&BB%6NB,G*B:8JVEZW9M\\CUT-`,X.\\>Y/,BX.\\?V.<7S]X.Q]8%PL__" + "P,W]P<[^P]#`R-<&R]H(S=P+T^(1TN$1R-<&QM4#Q=0#Q=,\"Q-,!Q=,\"Q-(!E:+3" + "W>L8X.X>WNPL:VN83S[B=]]U!_N-!_>%!^M]!]]E!_N5!^-U!]MM!" + "]MM![]5!Q+RAQ<_XTM`/V><6W.D9W.H:W.H:W.H:W.D9W.D8W.@8W.D9V^@8NL;U" + "W>H8W^P<7V.86V><6V.86V><6V><7V><6" + "V.86UN03N\\?X)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D.45VO,GZZ_HIZ_HI[/LJZ_HI[/LJ[/LJZ_HJ" + "[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ" + "[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJN\\GY8VV3U^41[/LK[/LJ[/LK" + "[/LK[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ" + "[/LJ[/LJZ_HIZODHZ?@GZODHZ_HIZ_HIZ_HIZ_HIZODHZ_HIZ_HIZ_HIZ_HIZ_HI" + "ZODIZ_HIZODHZ_HIZODHZ_HIZODHZODHZODHZODHZ_HIZODHZODHZODHZODHZODH" + "ZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZ?@G" + "ZODHZODHZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@G" + "Z?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ/<6X_$AY?0CY_8EYO4DYO4DYO4DYO4DY?,C" + "X>\\?VN@7T=X-Q]4$PCIG'>(.P9&^:>86RH[#>Q-(!W.H8" + "XN`?X_$@X_$@Y/(AY/(AY/(AY/(AY/,BY/,BY/,BY/,BY/,BY/,BY/,BY/,BY?,B" + "Y?,BY?0CY?0CY?,CY?0CY?0CY?0CY?0CY?0CY?0DY?0CY/,BXN`@WNP;U>,2S-H(" + "Q='`Q-#_Q-#_Q-#_Q-#_Q]4#35J*)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-DJ[CJV><4WNP;X>\\>X_$AY/,C" + "XN`@X.X=X_$@Y/,CYO4EY_8FZ/,3U.(1T^$1S=L*S-H)Q]4$R-<%R-8$Q]4$Q=,\"Q=,\"P]#`P\\__" + "P\\__PL[^P,W\\O@8W>PX>\\@XN`AXN`AXN`A" + "X_$BX_$BXN`AXN`AXN`AXN`AWNT>C9S.QM0!R-<'R-<&R-<&R=@'R=@'R=@(Q]8&" + ";9/2!%&*!%&*!%2-!%:1!%F6!%N8!%N9!%Z@(FN>" + "2'NG?9C%I+GEPM+^U^<5XO$?X_(BW^X>V.<7T-\\/R-<&Q-(\"P](!P](!P]'`Q-,!" + "Q=0#QM4$R-<&R]H)T=`/U.03SMT-R-<%QM0#QM0#QM0#Q=,\"Q-,!Q-(!P](!D9W," + "XN`?X.X>WNPL;V^D8TM;YV+UA^-Q!^^!!^-Y!^=Y!^-Q!]MI!\\]E!" + "\\-5!U<7W.D9W.D9W.D9V^@8V>05Q\\K^N;7HP+KJU-4#V^44" + "WNH9WNL;W>H:W>H:W.H:V^D9V^D9V^D9VN@8VN@8VN@8VN@8VN@8VN@7V>@7V><7" + "V.86UN04R-8%*C9G)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D2U>(R]@(Z_HI[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ" + "[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ" + "[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LK[/LJL\\#P9FV1WNP8[?PK[/LK[/LK" + "[/LK[/LK[/LK[/LK[?PK[/LK[?PK[/LJ[/LK[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ" + "[/LJ[/LJZ_HIZODHZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HI" + "Z_HIZ_HIZODHZ_HIZ_HIZ_HIZ_HIZODHZ_HIZ_HIZODHZODHZ_HIZODHZODHZ?@G" + "ZODHZODHZ_HIZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODH" + "Z?@GZODHZ?@GZODHZ?@GZ?@GZ?@GZODHZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@G" + "Z?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?XN`?X_$@X_$A" + "Y/(AY/(AY/(AY/(AY/,BY/,BY/,BY/,BY/,BY/,BY/,BY/,BY/,BY/,CY/,BY/,B" + "Y?0CY?0CY?,CY?0CY?,CY?0CY?0CY?0CY?0CY?0CY/,BX_$@WNP;U^03S=H(QM,!" + "Q-#_Q-#_P\\_^Q-#_P\\_^R=8$15&\")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-DL;_PVN@5W>L:X>\\>X_$AY/(B" + "W^X>X.X=XN`@Y/,BY?0DY_8FZ/H:W.H9V^D8U^85U.(2S=L*S-H)RM@'R-8%Q]4$Q]4$Q]4$QM0#R-8%Q-#`Q-(!" + "PL_^P,W\\P\\@X>\\@X.X?I;3HN,3QRMD(R-8&R-<&R=@'R-<'R=<'R=<'" + "DJ_M!%.,!%**!%2-!%:1!%N8!%N7!%V:!&&%F6>,&R?7H*PC:71K\\/OS-P'" + "W>P:Y/(BXO(AW.L;UN45SMT-Q]8%Q=0#QM4$Q]8$Q]4$Q]8%Q]8%Q]8%Q]8%R-<&" + "R=@'RMD(S]X-U.,2T=`/RM@(Q]8%QM0#QM0#Q=0\"Q=,\"Q-(!Q-(!Q-(!P<_`DI[," + "YO4DW^T=WNPL;W>L:VN<6S]#KU+EL[]1!\\MI!\\]I!\\MA!\\=9!Z]%!" + "SKA;M;.[PLWXT-T,U^44VN@8W.D9W.D9V^<7RLT\"B'&IFT-LPUV(UFB4V&V7VI_)" + "W=X,WNH:W>H:W>H:W.H:W.H:W.H:V^D9V^D9V^D9V^D8VN@8VN@8VN@7VN@8V><7" + "V><6U^45T-X-1U.$)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D6F:7U.,2Z_HI[/LJ[/LJ[/LJZ_HI[/LJ[/LJ[/LJ[/LJ" + "[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LK[/LJ[/LJ[/LJ[/LJ[/LK" + "[?PK[/LJ[?PK[/LJ[/LJ[/LJ[/LJ[/LJ[/LKZ_HJKKOK;'27X.X;[/LK[?PK[/LK" + "[?PK[?PK[/LK[/LK[?PK[?PK[?PK[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[?PK" + "[/LJZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZODHZ_HIZ_HIZ_HI" + "Z_HIZODHZODHZ_HIZ_HIZ_HIZODHZ_HIZODHZODHZODHZODHZ_HIZODHZODHZ?@G" + "ZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZ?@GZODHZODH" + "ZODHZODHZ?@GZ?@HZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@G" + "Z?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ/H:T^$0R=<&P<[]N\\CVL\\#N" + "JK?EG:G7AY3!DCYO)L\\#NT-X,W^TL:X>\\>XN`@Y/(B" + "WNP\\>V.<7" + "V><6VN@7V.85U>,3TM`/T-X-R]D(RMD(Q]4$Q]4$QM0#QM0#Q=,\"PL__PL__P,W]" + "P,W]O\\S[O,3V>@8W>LX.X?X>\\@" + "X>\\@XN`AXN`AXN`AXN`AX>\\@X.\\@O\\`$H:O7RMD(Q]8&R-<&R-<&R-<&R=<'R-<&" + "KL3^!%>5!%**!%2+!%B/!%R4%EZ4.FJ:;(FVEZW9NLGUT=`-W^X@8" + "T>$0RMD(Q=0#Q=0\"QM0#QM4$Q]8$Q]8$Q]8%R=<&R=@'RM@'RMD(R]D(RMD(S-L*" + "T-X.U.,2T=`0R]H)Q]8%QM4$QM0#QM0#Q=0\"Q=,\"Q-,\"Q-(!Q-(!Q-(!NL;W>L;W>L;W.H9V><5T]K`QKNVSK9@U[]!U;U!R+-2MJF+" + "MKG,P\\WVSML*U>,2V><6V^@8W.D9V^@8RLL!J4^#\\6N3`WNI`V^A`VJ:`VF9`F^?" + "^(VYX]8#W.@8W>H:W.H:W.H:W.H:V^D9V^D9V^D9V^D8VN@8V><7VN@8V><7V><7" + "V><7U^45TM`/:W>G)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D7FJ;VN@7[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ" + "[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LK[/LJ[/LJ[/LK[/LJ" + "[/LK[/LJ[?PK[/LJ[/LJ[?PK[/LK[/LK[?PKZ_HJK;KJT^$/W>L:UN03OLOZN<7SK[WKH[#>D)S(>X6R" + "<7RIBI?$K;KIR]D'W>P:XN`?X_$@X_$@X_$@X_$@Y/(AY/(AY/(AY/(AY/(AY/(A" + "Y/(AY/,BY/,BY/,BY/,BY/,BY/,BY/,BY/,BY/,BY/,BY/,BY/,BY/,BY?,CY/,B" + "Y?,BY?0CY?,CY?,CY/,BY?0CY?,CY/,BY/,BX_$@W^T\\>XN`@X_$A" + "W>L;WNP;X>\\>X_$AY/(BY?,CYO4EZODJZ_HKZ_HKT.$4LK[KS=L*S]T,UN03U>04" + "U>,2T=\\.U.(1SMP+SMP+R=<'R=<&Q]4$Q]4$Q]4$QM0#Q=,\"Q-,!Q-(!PL__PL__" + "P,W\\OLOZO,GXN,7TM<'OPL__QM0#PL[_P]#`T^$1U^86V^H:W>PX.X?" + "X>\\@X.X?X>\\@XN`AX>\\@X>\\@X>\\@U^<9B)/!RM@'Q]8&Q]8%R-8&R-<&R=<'R-<&" + "P=,%.W\"M(%2#0&2/<8BOEJC4ML;PSMX+VND8W.L:V.<7T>$0S-L+QM0$P](!Q-,!" + "Q=,\"QM0#QM4#QM4#QM4$Q]8%R-<%R=@&RM@'RM@'R]D(R]H)S-H)SMP+TM`/U.,2" + "T-\\/R]H)R-<&Q]8%QM4$QM4$QM0#Q=0#Q=0#Q=,\"Q-,\"Q-(!Q-(!Q-(!I[7GP,OW" + "Y/,CWNPL;W>L;W>L:W.H:V^D8VN@7V>84TMT%R,WLP\\CCPLKJQ=#Y" + "R]@%T=\\-UN03V><6V^@8V^D8W.D9V=`3LVFG^VN5`X*Q`VR>`V66`V.5`V*4`F*4" + "`F65^H2NWM8#VN<7W.D9W.H:W.H:W.H:V^D9V^D8V^D8VN@8VN@8VN@8V><7V><7" + "V><7U^45TM`/AI+!)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D9'&AW.L:[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ" + "[/LJ[/LK[/LK[/LK[?PK[/LK[/LJ[/LK[?PK[/LJ[/LK[/LK[?PK[/LK[?PK[/LK" + "[/LK[?PK[?PK[?PK[/LK[?PK[/LK[/LK[?PK[/LJK[WM=H*GWNP9[?PK[?PK[?PK" + "[?PK[?PK[?PK[/LK[?PK[?PK[/LK[/LJ[/LJ[?PK[/LJ[/LJ[/LJ[/LK[/LJ[/LJ" + "[/LJ[/LJZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZODHZ_HIZ_HI" + "ZODHZ_HIZ_HIZ_HIZODHZ_HIZODHZODHZODHZ_HIZODHZODHZODHZODHZODHZODH" + "ZODHZODHZODHZODHZODHZODHZODHZ?@GZODHZODHZODHZODHZODHZODHZODHZ?@G" + "ZODHZODHZ?@GZODHZODHZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@G" + "Z?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ/L:XN`?X_$@X_$@X_(AX_$@X_$@Y/(AY/(AY/(AY/(AY/(AY/,BY/,BY/(AY/,B" + "Y/,BY/,BY/,BY/,BY/,BY/,BY/,BY/,BY/,BY/,BY/,BY/,BY/,BY?,CY?,BY?,B" + "Y?,BY?,BY/,BY?,CY?0CY?0CY?,BY?,CX_$@W^TL:X.X>XN`@X_$A" + "W>L;W>L:X.X=XN`@X_$AY/(BY?0DZ/@9W.H;WNP=WNP=X.X?" + "X.X?X>\\@X>\\@XN`AX>\\@XN`@X>\\@W^T?E:37P83" + "X.\\?WNPL;W>L;W>L;W.H:V^D9V^D8VN@7V><6UN03U>,2U>,2" + "UN03V.85VN@7V^D8V^D9W.D9V^@8Q;SVZ51Z`XJW`W2H`V26`V26^UN+`5Z-`F\"2" + "`&\"1_F>5[IB_U=\\-V>86V^D8W.H9W.H9V^D9V^D8V^D8VN@8VN@8VN@8V><7V><7" + "V><7V.86TM`/EZ/4)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D:7:FWNP;[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[?PK[?PK[?PK" + "[?PK[/LK[/LK[/LK[/LK[/LJ[?PK[?PK[?PK[?PK[?PK[/LK[/LK[/LK[/LK[/LK" + "[?PK[/LK[?PK[?PK[/LK[?PK[/LK[/LK[?PK[/LJML3T=H*IV>@4[?PK[?PK[?PK" + "[?PK[?PK[?PK[?PK[/LJ[?PK[/LK[?PK[/LJ[?PK[/LJ[/LJ[/LK[/LJ[/LK[/LJ" + "[/LJ[/LJZ_HJZ_HIZ_HIZ_HIZODHZ_HIZODHZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HI" + "Z_HIZ_HIZ_HIZODHZODHZODHZODHZ_HIZODHZODHZ_HIZODHZODHZODHZ?@GZODH" + "ZODHZODHZODHZODHZODHZODHZ?@GZODHZODHZODHZODHZODHZODHZODHZ?@GZ?@G" + "ZODHZ?@GZ?@GZODHZODHZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@G" + "Z?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ/<6W^X=X_$@X_$@OX:T:7:CGZS;Q-'`W>L9X_$@X_(AX_(A" + "Y/(AY/(AY/(AY/(AY/(AY/(AY/(AY/(AY/,BY/(AY/,BY/,BY/,BY/,BY/,BY/,B" + "Y/,BY/,BY/,BY/,BY/,BY/,BY/,BY/,BY/,BY/,BY/,BY/,BY?,BY/,BY?0CY?,B" + "Y?0CY?0CY/,BY?,CY?0CY/,BY/,BX_$@W^TL:X.X=XN`@X_$A" + "W>L;W.H9W^T\\>XN`@X_$AY/(BY_8FZ/T?K+CGQ]4#R-<%R=<&Q-'`" + "S-H(S]T,SMP+S-H)S=L*R-8%Q=,\"Q]4$Q-(!Q-(!QM0#PL__PL__P,W]P<[]OLOZ" + "O,GXN\\CWM\\3SJKCGKKKGO,3V.87V^D:W.H;WNP=W^T>" + "X.X?X.X?X>\\@X>\\@X>\\@X>\\@X>\\@X.X?NL;W>L;W>L;W.H:W.H:W.H:V^D9V^D9V^D8V^D8V^D8VN@7" + "V^D8V^D9V^D9W.H9W.H9V^D9VN87PY+._VV3`Y7(`V*4`V\"2`V&3^%.$_5&$`5^1" + "_V\"1_6.2^&^9U\\?SU.(1V><6V^D9V^D9V^D9V^D9V^D9VN@8VN@8VN@8V><7VN@7" + "V><7V.86T^$0I[/B)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D;WRMX.\\>[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[?PK[?PK[?PK[/LK[/LK" + "[/LK[?PK[/LK[/LK[/LK[/LK[/LK[/LJ[/LJ[?PK[?PK[/LK[?PK[?PK[?PK[/LK" + "[/LK[?PK[?PK[?PK[?PK[?PK[?PK[?PK[/LK[/LJPM#`=8&IT=\\*[?PK[?PK[?PK" + "[?PK[?PK[?PK[?PK[/LK[?PK[/LK[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ" + "[/LJ[/LJZ_HJZ_HIZODHZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZODHZ_HIZ_HIZ_HI" + "Z_HIZ_HIZ_HIZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODH" + "ZODHZODHZODHZODHZ?@GZ?@GZODHZODHZODHZODHZODHZODHZODHZ?@GZODHZODH" + "Z?@HZODHZ?@GZODHZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@G" + "Z?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ/L:X.X=XN`@X_$A" + "W>PL:W^T=X.X>X>\\?X_$AY/,DY?0EY?0EXO$BK[SMPL__QM0#QM4#PL__" + "Q-'`S-H)S=L*RM@'QM0#Q]4$QM0#QM0#P]#`Q-(!PL__P<[^PL_^O\\S\\O@9W.H;W>L\\?X>\\@X>\\@X>\\@X>\\@X.X?V.@:A9&`Q]4#QM4%Q]8%Q]8%Q]8%R-<&" + "R-<&R=<'PM#`J[OHJ;GEK[[KM,+PM\\7SNLCWO,GYO\\S\\P,W]P<[^P]#`Q=0\"QM4#" + "Q]4$R-<%S-H)SMP+T-\\.TN$0TN$0T=\\/S=L+RM@(R-<&Q]8%Q]8%Q]4$QM4$Q]4$" + "QM4$QM0$QM0#QM4$Q=,#Q=,\"Q=,\"Q=,\"Q-,\"Q-(!Q-(!Q-(!Q-(!K;SNKKCDYO4E" + "WNPL;W>L;W>L;W>L;W>L;W>L;W.H:W.H:W.H:W.H9W.H:W.H:W.H:" + "W.H:W.H:W.H:W.H:W.H:W.D9V>46RW:S`G>@`XB\\`UZ/`UZ0`UZ1^E!`_5:,_U>)" + "_F&2_&.3]6.1W*S4S]P+UN03VN@7V^D9V^D9VN@8VN@8VN@8VN@8VN@8V.86V><7" + "V><6V.86T^$1M,'P)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ">(6VX>`?[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LK[/LK[/LK[/LK[?PK[/LK[/LK[/LK" + "[?PK[/LK[/LK[/LK[/LK[/LK[/LK[/LJ[/LJ[/LJ[/LJ[?PL[?PK[?PK[?PK[/LK" + "[/LK[?PK[?PK[/LK[?PK[?PK[?PK[?PK[?PK[/LJT=\\0<'RFQM+_[?PK[?PK[/LK" + "[?PK[?PK[?PK[?PK[/LK[/LK[/LK[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ" + "[/LJ[/LJZ_HJZ_HIZ_HIZ_HIZ_HIZ_HIZODHZ_HIZ_HIZ_HIZ_HIZODHZ_HIZODH" + "Z_HIZODHZ_HIZ_HIZODHZODHZODHZ_HIZ_HIZODHZODHZ_HIZODHZODHZODHZODH" + "ZODHZODHZO@GZ?@GZ?@GZODHZODHZODHZODHZODHZODHZODHZODHZ?@GZODHZ?@H" + "Z?@GZ?@GZ?@GZ?@GZODHZ?@GZ?@GZ?@GZ?@GZ?@GZODHZ?@GZ?@GZ?@GZ?@GZ?@G" + "Z?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ/\\>Y/(AY/,BY/,B" + "Y/,BY?0CY?,BY?0CY?,BY?,BY/(AM+[K&R54F*C9Y?0CY/,BY/,BY/,BY/,BY/,B" + "Y/,BY/,BY/,BY/(AY/,BY/,BY/,BY/(AY/(AY/(AY/,BY/,BY/(AY/(AY/,BY/(A" + "Y/,BY/,BY/,BY/,BY/,BY/,BY/,BY/,BY/,BY/,BY/,BY/,BY/,BY/,BY?,BY/,B" + "Y?0CY?0CY?,CY?,BY/,BX_$@W^TL:W^T\\?X_$A" + "X.X>V><6V^D8WNP;W^T=X.X>X>\\?X_(BY/(BX_(CX_(COLW`N\\CVP]#`Q-'`P<[^" + "N\\CWR-8$Q]4$R-8%Q]4$Q=0\"QM0#P]#`PL__PL__P<[^P<[]OLOZN\\CWO,GXNL?V" + "N,7TN<;UKKWM@HVYLK[LN\\CXO\\S\\M\\3TP<[^SMP,T^$2UN04V.<7V^D:W.H;WNP=" + "W^T>W^T=X.X?X.X?X>\\?X>\\@X>\\@X>\\@W^T>I+3GL;SIR-<'Q]4%QM4$Q]8%R-<&" + "R-8&R-8&R=<'R]H)S=L+R]H)RMD(RM@'RM@'RM@'R]D)S=L*SMP+S]T,T-\\.T=\\." + "T=\\/T=\\/T-X.SMT,S-L*RMD(R=<'R-8&Q]8%Q]4%Q]8%Q]4$QM4$QM4$QM4$QM0#" + "QM4$QM4$Q=0#Q=0#Q=,#Q=,\"Q=,\"Q-(!Q-(\"Q-(!Q-(!Q-(!P]#`C)K+U^01X>\\@" + "W>L;WNPL;W>L;W>L;W>L;W.H:W.H:W.H:W.H:W.H:V^D9V^D9W.H:W.H9W.H:" + "W.H:W.H:V^D9W.H:W.D:V^@9V>06RV^M`G.?`W:J`UN.`ER/`EZ1^DU]`&N;^4Z!" + "_F&2^V.3]F21WIS$RM8$U.(1V.85VN@7VN@8VN@8VN@8VN@8VN@8VN@8V><7V><7" + "V><6V.85U.(1P,W\\)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-DA)#!" + "Y/,B[/LJ[/LJ[/LJ[/LJ[/LK[/LJ[/LK[?PK[/LK[/LK[?PK[?PK[/LK[/LK[?PK" + "[?PK[?PK[?PK[?PK[?PK[?PK[/LK[/LJ[/LJ[/LJ[/LJ[/LJ[?PK[?PK[?PK[?PK" + "[?PK[?PK[?PK[?PK[?PK[?PK[?PK[?PK[?PK[/LJX.X>;WJEM04V.87VN@9W.H:W>L<" + "WNPX.X?X.X?X>\\?X>\\@X.X?X.X?T>(4@X^]Q=0\"Q]8%QM4$Q]8%Q]4%" + "Q]8%Q]8%R-8&R-8&R-<&R=@'R=@'R]D(R]D)R]H)R]H)R]D)R]D)RMD(R=@'R=<'" + "R-<&R-<&R-8&R-<&R-8&Q]8%Q]8%Q]4%Q]4%Q]4$Q]4$QM4$QM4$QM0#QM0#QM0$" + "Q=0#QM0#Q=0#Q=,\"Q=,\"Q-(!Q-(!Q-(!Q-(!P]#`P](!P]'`N\\CZCYG%Y_4EW^T=" + "W>L;W>L;W>L;W>L;W>L;W>L;W.H:W.H:W.H:W.H:W.H:V^D9W.H:W.H:W.H:V^D9" + "W.H:W.H:W.H:V^D9W.D:V^@9V.04Q(._`&24`VJ=`EN.`EN.`%R/^4M`^4-[^U.&" + "^E>(^6.0]F62V9O\"QM#_TM\\/U^44VN@7VN@8VN@8VN@8VN@8V><7V><7V><7V><7" + "V><7U^45U.(1RM<&,#QM)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-DCIS,Y_8E" + "[/LJ[/LJ[/LJ[/LJ[/LK[/LJ[?PK[/LK[/LJ[/LK[/LK[/LK[?PK[/LK[?PK[?PK" + "[?PK[?PK[?PL[?PK[?PK[/LK[/LJ[/LK[/LJ[/LJZ_HJZ_HJZ_HJ[?PK[?PK[?PK" + "[?PK[/LK[?PK[?PK[?PK[?PK[/LK[/LK[/LK[/LKZ/G*O=Y?0CY/,BY/,BY/,BY/,BY/,B" + "Y?,BY/,BY/,BY/,BY/,BY/(AY/(AY/,BY/,BY/,BY/,BY/,BY/,BY/,BY/,BY/(A" + "Y/,BY/,BY/,BY/,BY/(BY/(AY/,BY/,BY/,BY/,BY/,BY?,BY/,BY/,BY/,BY/,B" + "Y?,BY?,CY/,BX_$AW^T@9V^D:W.H;" + "W.H;W^T=W^T>X.X>X.X?X>\\?X>\\?X.X?X.X?WNT>H*_CK+CEQ]8%Q]8%QM0$QM4$" + "QM4$Q]8%Q]8%Q]8%Q]8&Q]8&Q]8%Q]8%Q]8&Q]8%R-<&Q]8%Q]8%R-<&Q]8%Q]8%" + "Q]8%Q]8%Q]8%Q]8%Q]8%QM4$QM4$QM4$QM4$Q]4$QM4$QM4$QM0#QM0#Q=0#QM0$" + "Q=0#Q=0#Q=0#Q=,\"Q-(!Q-,\"Q-,\"Q-(!Q-(!P]#`P]#`P]#`E:+4Q]/`X_(BWNP<" + "W>L;W>L;W>L;W.L;W.H:W.H:W.H:W.H:W.H:W.H:W.H:W.H:W.H:V^D9W.H:W.H:" + "W.H:W.H:V^D9V^D9V^D9VN@8V>86PJ;B]%>$`V*5`EJ.`5J-_%:)_%6#`6&1_U^." + "\\U2#^621\\F21RJ3-Q,_^T=X-UN03V><6VN@8VN@7VN@8VN@8VN@8V><7V><7V><7" + "V.86U^45U.(1SML*45V,)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-DF:?7Z?@G[/LJ" + "[/LJ[/LJ[/LK[/LJ[/LK[?PK[/LK[/LJ[/LJ[/LK[/LK[/LK[?PK[?PK[?PK[?PL" + "[?PL[?PL[?PK[?PL[?PK[/LJ[/LK[/LK[/LJZ_HJZ_HIZ_HIZODH[?PK[?PK[?PK" + "[?PK[?PK[?PK[?PK[?PK[?PK[?PK[?PK[/LK[/LKZ_HJG*G8BY>_X_(@[?PK[/LK" + "[/LK[?PK[/LK[/LK[/LJ[/LK[/LK[/LK[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ" + "[/LJ[/LJZ_HJ[/LJZ_HIZ_HIZ_HIZODHZODHZ_HIZODHZODHZODHZ_HIZ_HIZ_HI" + "Z_HIZ_HIZ_HIZ_HIZ_HIZ_HIZODHZODHZODHZODHZODHZODHZODHZODHZODHZ?@G" + "Z?@GZ?@GZ?@GZODHZODHZODHZODHZODHZODHZ?@GZODHZODHZODHZODHZODHZODH" + "Z?@GZODHZODHZODHZ?@GZ?@GZODHZ?@GZ?@HZ?@HZ?@HZ?@GZ?@GZ?@GZ?@GZ?@G" + "Z?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ/-C]LI;3EYO0DY/,BY/,BY/,BY/,BY/,B" + "Y?,BY/,BY/,BY/,BY/(AY/,BY/(AY/,BY/,BY/,BY/,BY/(AY/,BY/(AY/(AY/(A" + "Y/(AY/,BY/,BY/,BY/(AY/(AY/,BY/(AY/,BY/,BY/,BY/,BY/,BY/,BY/,BY?0C" + "Y?,BY/,BX_$@W^TXN`@" + "Y/,CW^X?U^44V><7V^D8W.H:W.H:WNPW^T>W^T>U.06K;OJN<;UNL?V" + "N,7TL;[MJ;;DN<7TP,W]P,W]P,W]O\\S\\OLO[O@8VND:V^H:" + "W.L;WNPX.X>X>\\?X>\\?X.X?X.X?W^T>T^,5?XJYP<_]QM4$QM0$Q=0#" + "QM0$QM4$Q]8%Q]8%Q]8%Q]8%Q]4%Q]8%Q]8%Q]8%Q]8%Q]8%Q]8%Q]8%QM4%Q]8%" + "Q]4$Q]4$Q]4$Q]4%Q]4$QM4$QM4$QM4$QM0#QM0#QM4$QM0#Q=0#Q=0#Q=,#Q=,#" + "Q-,\"Q=0#Q=,\"Q-(!Q-(!Q-(!Q-(!Q-(!P]#`P](!P]#`NP<" + "W>L;W>L;W.L;W.L;W.H:W.H:W.H:W.H:W.H:V^D9W.H:V^D9W.H:W.H:V^D9V^D9" + "V^D9V^D9V^D9V^D9VN@8V^@9V>87T=('T$Y__V\"0`5J-_U:*^52%^V&-^U2'^E2%" + "^%R+]5^.YVZ8NK/=Q='`T=\\.UN03V.86V><7VN@8VN@8V><7V><7V><7V><7V><6" + "V.86U^45U.(2S=L*;GJI)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D*C9GI+'BZODH[/LJ[/LJ" + "[/LK[/LK[/LK[/LJ[/LKZ_HJZ_HJZ_HJ[/LJ[/LK[/LK[?PK[?PK[?PK[/LJZ/8F" + "Y/(AX.\\>W>P;W.L:W>L:WNP;X>`?YO4DZ_HIZ_HJZ_HIZODHZ?@GZ_HI[?PK[?PK" + "[?PK[?PK[?PK[?PK[?PK[?PK[?PK[?PK[?PK[?PK[/LJO,GZ>82LU>,1[/LK[/LK" + "[/LK[/LK[?PK[/LK[/LK[/LK[/LK[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ" + "[/LJ[/LJ[/LJ[/LJZ_HJZ_HIZ_HIZODHZ_HIZODHZODHZ_HIZ_HIZ_HIZODHZ_HI" + "Z_HIZ_HIZ_HIZ_HIZODHZ_HIZODHZODHZODHZ_HIZODHZODHZODHZODHZ?@GZODH" + "ZODHZODHZ?@GZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODH" + "ZODHZ?@GZ?@GZ?@GZ?@HZ?@GZ?@GZ?@GZ?@HZ?@HZ?@HZ?@GZ?@GZ?@GZ?@GZ?@G" + "Z?@GZ/XN`@" + "X_(BY?0EUN45U^44V><6VN@8V^D9W.H:W.H:WNPPPPI[3AM,#ON<;VNL;VKKWLN\\CWQ]4%S=L+T=\\0U.(2U^46V><8VND:V^H;" + "W.L;W>PX.X>X.X>X.X?X.X?X.X>X.X>W^T>K[_RF*30QM4$QM4$Q=0#" + "Q=0#QM4$QM4$QM4$QM4$Q]4%Q]4$Q]4$QM4$QM4$QM4$Q]4$QM4$QM4$QM4$QM4$" + "QM4$QM4$QM4$QM4$QM4$QM4$QM4$QM0#Q=0#QM0#Q=0#Q=,\"Q=0#Q=,\"Q-,\"Q=0#" + "Q=,\"Q-,\"Q=,\"Q-,\"Q-(!Q-(!Q-(!P]#`P]#`P]#`PL__BIC)R=4!Y/(BWNPL;" + "W>L;W>L;W.L;W.H:W.H:W.H:V^D9W.H:W.H:W.H:W.H:V^D9V^D9V^D9V^D9V^D9" + "V^D9V^D9V^D9V^D9V^D9V^D9VN<7UN(3OJ#9Y%6!_5V/_E6(^U.$^E6&^5.$^F\"1" + "]5:([EV+Q)*YN<#LR=4$TM\\/UN04V.86V><7V><7VN@8VN@7V><7V><7V><7V><6" + "V.86U^45U.(2S=L*@XZ^)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D+CIKKKOKZODI[/LK[/LK[/LJ" + "[/LJ[/LK[/LJ[/LKZ_HJZ_HJZ_HJZ_HJ[/LJ[/LK[/LK[/LKY_4EW^X=V><7V.85" + "V.85U^44U^44U^44UN03UN03UN03UN03V.<6X>`?Z/<4W.H9W>L;X.X=X>\\?" + "X_(AY_8FWNP>U>,2U^44V.86V><7V><7VN@8W.H:W.L;V^L;V^L;V^H;P],#K;KH" + "L+[LK[WKK[SJI;+AF*;4EJ/1J+3BML+QN<;UN<;UML3RM,'PL+WKH*S<LPW^T>X.X>X.X?X.X>X.X>X.X>X.X>V^H;AI7'LK[LQM0#Q=0#" + "Q=0#Q=0#QM0$QM4$QM4$QM4$Q]4$QM4$QM4$QM4$QM4$QM4$QM4$QM0#QM0$QM0#" + "Q=0#QM0$QM0$Q=0#QM0#QM0#QM0#Q=0#Q=0#Q=0#Q=,#Q=,#Q=,#Q=,#Q=,#Q=,#" + "Q-,\"Q-(\"Q-(!Q-(!Q-(!P]#`P]#`P]#`P]#`P]#`K+OLE9_+Y_4EW^T=W>PL;" + "W>L;W>L;W.L;W.H:W.H:W.H:V^D9W.H:W.H:W.H:V^D9V^D9V^D9V^D9V^D9V^D9" + "V^D9V^D9V^D9V^D9V^D9VN@8VN@8V.45U-X/MHW\"W%F'\\V\"0]U6']5&#\\U\"%\\%*'" + "YUZ-QHFPL[3?P<7V><7VN@7V><7V><7V><7V><7V.86" + "V.86U^45U.(1S=L*CIK))S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D,3UNM\\7UZ_HJ[/LJ[/LK[/LK[/LK" + "[/LJ[/LJ[/LK[/LJZODHZODIZ_HJZ_HJ[/LJ[/LJYO0DW.H9V.85V.85V.85U^44" + "U^44V.85U^44U^44UN03UN03UN03UN03U>,2U>,2VN@7Y/,BY?,BZ/8E[?PK[?PK" + "[?PL[?PK[?PK[?PK[?PK[?PK[?PK[?PK[?PK[?PK[/LKZODHA)*`J+3?YO0C[?PK" + "[/LK[/LJ[/LJ[/LK[/LJ[/LK[/LK[/LK[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJZ_HJ" + "[/LJ[/LJ[/LJ[/LJ[/LJZ_HJZ_HIZ_HIZ_HIZ_HIZODHZ_HIZ_HIZ_HIZ_HIZ_HI" + "Z_HIZ_HIZODHZODHZ_HIZODHZODHZODHZODHZODHZODHZODHZ?H9A(ZY6V>5S-L+Y?,BY/,BY/,BY/,BY/,BY/(A" + "Y/(AY/,BY/,BY/,BY/,BY/,BY/,BY/,BY/,BY/(AY/,BY/(AY/(AY/(AY/(AY/,B" + "Y/,BY/,BY/(BY/,BY/,BY/,BY/,BY/,BY/,BY/,BY/,BY/,BY/,BY/,BY/,BX_$@" + "W^PL:W^T=X>\\?" + "X_$AYO4EY_,2UN03U^44U^45V.86V><7VND9VNH:VNH:VND9VND:Q]8'" + "J;;EJ;?EJ[GGJ;?EI;+@G:K9EZ32DY_-E*#.E:'/DI_-BI?&=H*Q5%^--#]L;':?" + "HZ_LLW^X>X.X>X.X>X.X>X.X>W^T=SMX0>H:TO82SV^@6X>\\@WNPL;W>L;" + "W.L;W.H:W.H:W.H:W.H:V^H:V^D9W.H:V^H:V^D9V^D9V^D9V^D9V^D9V^D9V^D9" + "V^D9V^D9VN@8V^D9V^D9V^D9VN@8V><7U^45U=X0NZ_ANFJ8SEJ(UUJ'TEN(QW\"6" + "M9C!M+?DP,KXRM<&T=\\.U>,2U^45V><6V><7V><7V><7V><7V><7V><7V><7V.86" + "V.86U^45U.(1S=L*F:75)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D.$5VP,W^Z_HI[/LJ[/LJ[/LJ[/LK[/LK" + "[/LJ[/LJ[/LJZODHZ?@GZ?@HZODIZ_HJZ?@HWNP;U^44U>,2U^44V><6U^44V.85" + "V.85V.85V.85U^44U^44U^44UN03UN03UN03U>,2U>,2U.(1X>\\>Y_4D[?PK[?PK" + "[?PL[?PK[?PK[/LK[?PK[?PK[?PK[?PK[?PK[?PK[?PK[/LJM\\7UCIK%U^43[?PK" + "[?PK[?PK[/LK[/LK[/LK[/LK[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ" + "[/LJ[/LJ[/LJ[/LJ[/LJ[/LJZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HI" + "Z_HIZODHZ_HIZ_HIZ_HIZ_HIZODHZ_HIZODHZODHZODHZ?@GZODHZODHZODHZODH" + "ZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODH" + "ZODHZODHZ?@GZODHZ?@HZ?@GZODHZODHZ?@GZ?@GZ?@HZ?@HZ?@GZ?@GZ?@GZ?@G" + "Z?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ/" + "XN`@YO4EZODIW>T>T=\\.T^$0U.(1U>,3UN04U^44U^45V><7V>@8V>@8V>@8VND9" + "T=`0KKSKG*G7GJO9G:K8G*C7F*33D9[,BY?&A)\"^=H*P7VN91U)_3UF$BY7!J[CF" + "L\\#OML3SN<;VN,7TL<#OJ;;DOLO[QM0$S-H*S]T-T^$1U>,3UN45V.<7VND9VNH:" + "V^L;WNPX.X>X.X>X.X>X.X>X.X>W^T>NLK]@HVZP<[]" + "Q=0#Q=0#Q-,\"Q=,#Q-,\"Q=0#Q=,#Q=0#QM0$Q=0#Q=0#Q=0#Q=0#Q=0#Q=0#Q=0#" + "Q=0#Q=0#Q=,#Q=,#Q=0#Q=,\"Q=0#Q=,\"Q=,\"Q=,\"Q=,#Q=,\"Q=,\"Q-(\"Q-,\"Q-(!" + "Q-(!Q-(!P]#`P]#`P]#`P]#`Q-(!P]#`P,[^A9/$P,OXY?0DWNPL;W.L;W.L;" + "W.H:W.H:W.H:V^H:W.H:V^H:W.H:V^D9V^D9V^D9V^D9V^D9VN@8V^D9V^D9V^D9" + "V^D9V^D9VN@8VN@8V^D9VN@8VN@8V><7V>86U^04UN,3TMP,PL3TM;/ANK?AO,#M" + "O\\CWQM'`S=D(T=\\.U.(1U^44V.85V.86V><7V><7V><7V><7V><7V><7V><7V><6" + "V.86U^45T^$1S=L*I+#?)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D04Y^Q]8%[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ" + "[/LJ[/LJZ_HJZ/8FZ/<6UN03TM`/UN03T^$0U>,2T-X-TM`/" + "U.(1UN03U^44V.85U^44U^44UN03UN03U>,2U>,2U.(1R=<&T]`.Y?0B[?PK[?PK" + "[?PL[?PK[?PK[?PK[?PK[?PK[?PK[?PK[?PK[?PK[?PK[/LJW^X>?(JTP,WZZODH" + "[?PK[/LJ[/LK[/LJ[/LJ[?PK[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ" + "[/LJ[/LJ[/LJ[/LJ[/LJZ_HIZ_HJZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZODHZ_HIZ_HI" + "Z_HIZ_HIZ_HIZ_HIZ_HIZ_HIZ_HIZODHZODHZODHZODHZODHZODHZODHZODHZODH" + "ZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZ?@GZODHZODH" + "ZODHZODHZODHZ?@GZODHZODHZODHZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@G" + "Z?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ/BD)S'K;KGM,'QML3S" + "N<;VNL?WN,7UL\\'PI;/CM04U^45V.<7VN@9VNH:" + "V^H;W>LPX.X>X.X>W^T>W^T>W^T>WNT>J;CLC)?#" + "PL_^Q-,#Q=,#Q-,\"Q=,#Q-,\"Q=,\"Q-,\"Q=,#Q=,#Q=0#Q=0#Q-,\"Q=,#Q=,#Q-,\"" + "Q=,\"Q=,#Q-,\"Q-,\"Q=,#Q-,\"Q=,\"Q=,\"Q=,\"Q=,\"Q-,\"Q-(\"Q-(\"Q-(\"Q-(\"Q-(!" + "Q-(!P]$!P]#`P]#`P]#`P]#`P]#`P<__EZ78H:O7YO4EW^T=W>L;W>L;W.L;W.L;" + "W>L;W.H:W.H:V^H:V^D9V^H:W.H:V^D9V^D9V^D9V^D9V^D9VN@8V^D9V^D9V^D9" + "V^D9V^D9V^D9V^D9V^D9VN@8VN@8VN@8V><7V.86U^45U^44U.$1IK'APLKTS]P," + "S]P,T=\\.T^$0U>,2U^44V.85V><6V><6V><7V><7V><7V><7V><7V><7V.86V.86" + "V.85U^44T^$1S=L*J[CH)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D2E>(SMT,Z_HJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LK[/LJ" + "[/LJ[/LJZ?@HY?,CYO4DY_8EY?,CV.85UN03U.(1U^44TM`/V.85U.(1T^$0U.(1" + "U.(1T^$0TM`/T^$0UN03U^44UN03UN03U>,2U.(1U.(1P]#`OL;W^T=" + "X>\\?Y/,CY_8FY_8GX>`ASMT-S=L+S]T-T-X.T=\\/T=\\/TM`0T^$1UN04UN04V.86" + "V.87V.86UN04UN04TM`0QM0#M\\7TK[OIL;WJM,#NN<7SO,KYO,GYN\\CXN\\CXO@8VND9VNH:" + "W.L;W>LPX.X>X.X>W^T>W^T>W^T>X.X>W^T>W>P=GJW@" + "CIG%P<[]Q-,\"Q-(\"Q-(\"Q-,\"Q-(\"Q-(\"Q=,\"Q-,\"Q=,\"Q=,\"Q-,\"Q-,\"Q-(\"Q-,\"" + "Q-,\"Q-,\"Q-(!Q-,\"Q=,\"Q-,\"Q-(\"Q-,\"Q-(\"Q-(\"Q-(\"Q-(\"Q-(\"Q-(\"P]$!Q-(!" + "P]#`P]#`P]#`P]#`P]#`P]#`PL__H*[@C);\"X_(AX.X>W>L;W.L;W>L;W.L;W.H:" + "W.H:W.H:W.H:V^H:V^D9V^D9V^D9V^D9V^D9V^D9V^D9V^D9V^D9V^@9VN@8VN@8" + "VN@8VN@8VN@8VN@8VN@8VN@8VN@8VN@8VN@8V><7V.86V.85U.(2CIG'W.D7U^45" + "UN03U^44U^44V.85V.86V><6V><6V><7V><7V><7V><7V><7V.86V><6V.86V.86" + "V.86UN04T^$0S-H)M<+Q)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D5F*3T^(1Z_HJ[/LJ[/LJ[/LJ[/LK[/LK[/LK[/LK[/LJ" + "[/LJ[/LJYO4DX_$@Y/(AY/,BV.86U^44UN03U^44U^44UN03U>,3U^44U.(1U.(1" + "UN03TM`/U.(2UN03T-X-T=\\/T^$0U>,2U.(1U.(1T^$0M\\3TO04CIO'R-<#" + "Z_DH[?PK[/LK[/LJ[/LJ[/LJ[/LJ[/LK[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ" + "[/LJZ_HI[/LJ[/LJZ_LJ[/LJ[/LJZ_HJ[/LJZ_HIZ_HIZODHZ_HIZ_HIZ_HIZODH" + "ZODHZ_HIZ_HIZ_HIZ_HIZ_HIZODHZODHZ_HIZ_HIZODHZODHZODHZODHZODHZODH" + "ZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODH" + "Z?@GZODHZ?@GZODHZ?@GZODHZODHZ?@HZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@G" + "Z?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ/:WBFN,?WY?,BY/(AY/(AY/(AY/,BY/(AY/,B" + "Y/,BY/(AY/(AY/(AY/,BY/(AX_(AY/(AY/(AY/(AY/(AY/,BY/(AY/,BY/,BY/(A" + "Y/,BY/,BY/(AY/,BY/,BY/(AY/,BY/,BY/,BY/,BY/,BXO$@WNP:U^03S]P*Q]0\"" + "Q='`Q='`QM+`QM'`Q='`QM,!QM,!QM,!QM,!QM,!QM,!QM,!QM,!QM,!QM,!QM,!" + "QM,!QM,!QM,!QM,!QM,!M,'P)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D@I#$S]P)V^D8W.H9W.H:WNP<" + "X.X>X_(BYO4EY_8FY/(CW.P=RMD)R]D(S=L*SMP+S]T-S]T-T-X-T=\\/T^$1U>,3" + "U>04U>,3T^$1TM`0T-X.S]T-S=L+R]D)R=<&Q=,#P]#`P<[_P,W^P,W]O\\S\\N\\CX" + "M<+QLL#OI[;FIK3CN\\GYQ-(\"R=<'SMP,T-X.T^$1U>,3U^46V.<7VN@9VND9V^H:" + "W.L;W>LPX.X>W^T>W^T>W^T>X.X>X.X>W^T>W^T>W.L<" + "G:O>B)2`O\\S\\Q-(\"Q-,\"Q-(\"Q-(\"Q-(\"Q-(\"Q-(!Q-(\"Q-(\"Q-,\"Q-,\"Q-(\"Q-(\"" + "Q-(\"Q-(\"Q-(!Q-(\"Q-,\"Q-(\"Q-(!Q-,\"Q-(\"Q-(!Q-(!P](!P]$!P](!P]#`P]#`" + "P]#`P]#`PL_`PL_`P]#`P<__GZ[@@XVYX.X=X.\\?W>L;W>L;W>L;W.L;W.L;W.H:" + "W.H:W.H:V^D9V^D9V^D9V^D9V^D9W.H:V^D9V^D9VN@8V^D9V^D9VN@8VN@8V^@9" + "VN@8VN@8VN@8VN@8VN@8VN@8VN@8VN@8VN@8V><7V><7V.86Q]8'J;/@Y/(BV><7" + "V><6V><6V><6V><6V><6V><7V><7V><7V><7V><7V><7V><7V><7V.86V.86V.86" + "U^45UN03T^$0S=L*O,2U.(1T^$0T=\\/H:S8WNL6[?PK[?PL[?PL" + "[?PL[?PL[?PL[?PK[?PK[?PK[?PK[?PK[?PL[?PL[?PK[?PK[/LKZODII+'@L+[J" + "W^X=[?PK[/LK[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ" + "[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJZ_HI[/LJ[/LJZ_HIZ_HIZ_HIZ_HIZ_HIZ_HI" + "Z_HIZ_HIZ_HIZ_HIZ_HIZ_HIZODHZ_HIZ_HIZ_HIZ_HIZODHZODHZODHZODHZODH" + "ZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODH" + "ZODHZODHZODHZODHZODHZODHZ?@HZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@G" + "Z?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ/84C)?#=(&PS]\\.Y?,BY/(AY/,BY/,BY/(AY/(AY/,B" + "Y/,BY/,BY/(AY/(AY/(AY/,BY/(AY/(AY/,BY/,BY/(AY/,BY/,BY/,BY/(AY/,B" + "Y/,BY/,BY/(AY/(AY/(AY/,BY/,BY/,BY/,BY/(AXN`?W>L:UN,2SMP*R-4\"Q='`" + "Q='`Q='`QM,!QM(!QM,!QM,!QM,!QM,!QM,!Q]0\"QM,!Q]0\"QM,!Q]0\"QM,!QM,!" + "QM,!QM,!QM,!QM,!QM,!LK[N)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D,3UN45U^86V>@8VND9V^D:W.L;" + "W.L;W>PX.X>W^T>W^T>W^T>W^T=W^T>W^T>W^T=W^T=" + "WNP=I;3G>X>SN<;UP](!Q-(\"Q-(\"P](!Q-(!P](!Q-(!Q-(!Q-(!P](!Q-(!Q-(\"" + "Q-(\"Q-(\"Q-(!Q-(!Q-(\"P](!Q-(!P](!P](!P]$!P]$!P]#`P](!P]$!P]#`P]#`" + "P]#`P]#`PL_`P]#`P,W^F*;9A(^ZX.X=X>\\?W>L;W>L;W>L;W.H:W.H:W.H;W.H:" + "W.H:W.H:W.H:V^D9V^D9V^D9V^D9V^D9V^D9VN@8VN@8VN@8VN@8V^D9VN@8VN@8" + "VN@8VN@8VN@8VN@8VN@8VN@8VN@8VN@8VN@8V><7V><7V.86M,'SQM+_X>\\@V><7" + "V><7V><7V><7V><7V><7V><7V><7V><7V><7V><7V><7V><6V.86V.86V.86V.85" + "U^44U>,2TM`/S-H)Q='`)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D:G>GW.L:Z_HJ[/LK[/LK[/LK[/LJ[/LJ[/LK[/LK[/LJ[?PK[/LJ" + "[/LJ[/LKW.H:V><6U.(1UN03UN04UN04U^44U^44U^44U^44U^44UN04UN04UN04" + "U^44UN03T^$0U.(1T=\\/TM`/U>,2U.(1T^$0T^$0P]#`O\\OU[/LJ[?PK[?PL[?PK" + "[?PL[?PK[?PL[?PL[?PK[?PL[?PK[?PL[?PK[?PK[?PK[?PK[?PK[/LJV.86F:;2" + "R=<$Z?@G[?PK[/LK[/LJ[/LK[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ" + "[/LJ[/LJ[/LJ[/LJZ_HI[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJZ_HIZ_HIZ_HIZ_HI" + "Z_HIZ_HIZ_HIZ_HIZODHZODHZ_HIZ_HIZODHZODHZ_HIZ_HIZODHZ_HIZODHZ_HI" + "ZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODH" + "ZODHZODHZODHZODHZODHZ?@HZ?@HZ?@GZ?@GZ?@GZODHZ?@GZ?@GZ?@GZ?@GZ?@G" + "Z?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ/`@Y/,BY/(AY/,BY/,BY/(AY/(AY_4D" + "Y?0CX_(AY/(AY/(AY/,BY/(AY/(AY/(AY/(AY/(AY/(AY/,BY/,BY/(AY/(AY/,B" + "Y/,BY/,BY/,BY/(AY/(AY/,BY/,BY/,BY/(AXN`?W>H9UN02SML)Q]0\"Q='`Q='`" + "Q='`Q='`Q='`QM,!QM,!QM,!QM,!QM,!QM,!Q]0\"QM,!QM,!Q]0\"QM,!Q],\"QM,!" + "Q]0\"QM,!QM,!QM,!P\\_^KKKH)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D6VFL;" + "W^T=XN`@Y/,CY_8GY/(CXO$AX>`@V>D:Q]8&QM0#Q]4$Q]4%R-8&R-8&R-8&R-8&" + "R=<'R]D(S-H*S=L+S=L+S=L+S-H*RM@(R-8&Q=,#PL_`OLO[N,7UL\\'PL;[MK[WL" + "H+#@I;/ANPW^T>W^T>W^T>W^T>W^T=W^T=W^T>W^T>" + "X.X>W^T>M\\7X<'NJK+CFPM#`Q-(\"P](!Q-(!P]$!P]$!P]$!P]#`P]$!P](!P]#`" + "P]$!P]$!P]$!P]$!Q-(\"P](!P]$!P]$!P]$!P]#`P]$!P]#`P]#`P]#`PL_`PM#`" + "P]#`PL_`P<[_N\\GZ@Y'#E9_,XN`?X>\\?W>L;W>L;W>L;W.H:W.H:W.H:W.H:W.H:" + "W.H:V^D9V^D9V^D9V^D9V^D9V^D9V^D9VN@8V^D9VN@8VN@8VN@8VN@8VN@8VN@8" + "VN@8VN@8V><7VN@8VN@8VN<8VN@8V><7V><7V><7V><7U^45H*S=W>H9W.H;V><7" + "V><7V><7V><7V><7V><7V><7V><7V><7V><7V><7V><7V.86V.86V.86V.86V.85" + "U^44U>,3TM`/S-H)R=8%,CYO)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D<'VMW^X=[/LJ[/LK[/LK[/LK[/LK[/LK[/LK[/LK[/LK[/LK[/LK[/LK" + "[?PK[/LJV.86S-H)O,CVU>,2UN03UN03UN03UN03UN04UN03UN03UN03UN03UN04" + "UN04UN04UN04UN03T=\\.U>,2U.(1U.(1T^$0S-H)M\\/LZODG[?PK[?PL[?PL[?PL" + "[?PL[?PK[?PK[?PK[?PK[?PK[/LK[?PK[?PK[?PK[?PK[?PK[?PK[?PKZ_HILK_M" + "L[_MW.H8[/LJ[/LK[/LK[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ" + "[/LJ[/LJ[/LJZ_HI[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJZ_HIZ_HIZ_HIZ_HI" + "Z_HIZ_HI[/LJZ_HIZODHZODHZODHZ_HIZ_HIZODHZ_HIZ_HIZ_HIZ_HIZ_HIZ_HI" + "ZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODH" + "ZODHZODHZODHZODHZODHZ?@GZ?@GZ?@GZ?@HZ?@GZ?@GZODHZ?@GZ?@GZ?@GZ?@G" + "Z?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ/L:" + "WNP\\?Y/(BYO4EY/(DX_$BXN`@X>\\@VND;R=<(PL__Q-(!Q-(!Q=,\"Q-(!Q-(\"" + "Q-(!Q-(!P]#`P]#`PL_`PL__P,3U^45V.<7V>@8V^D:W.H:W.H;W.L;" + "W.L;W>PPW^T=W^T>W^T=W^T>WNT=W^T=W^T=W^T=W^T=" + "W^T>W^T>W^T=RMH+>H>XCYK(N\\GXP]$!P](!P](!P]$!P]$!P]$!P]$!P]$!P]$!" + "P]#`P]$!P]#`PL_`P]$!P]#`P]#`P]$!P]$!P]#`P]#`P]#`PM#`PM#`PL_`PL_`" + "PL__P,W^J;CJ:':FL;SIY?,CX.X>W>L;W>L;W>L;W.H:W.H:W.H:V^H:W.H:W.H:" + "V^H:V^D9V^D9V^D9V^D9VN@8V^D9V^D9V^D9VN@8VN@8VN@8VN@8VN@8VN@8VN@8" + "VN@8VN@8VN@8V><7VN@8V><7V><7V><7V><7V><7V.86S-H+HZ[<7" + "V><7V><7V><7V><7V><7V><7V><6V><7V><7V><7V><6V.86V.86V.86V.86V.86" + "U^45U>,3TM`/S-H)RM<&2%2$)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D;WNLX.X=[/LJ[/LJ[/LK[/LJ[/LJ[/LJ[/LK[/LJ[/LK[/LK[/LK[/LK[?PK" + "[/LK[/LKVND9L+WNJ+3>U.(2U>,2U>,2U>,2U>,2U>,2U>,2UN03UN03UN03UN04" + "UN04UN03UN04UN03U>,3U>,2U>,2U.(1R]H)N<3OY_4C[?PK[?PK[?PK[?PL[?PK" + "[?PK[?PK[/LK[?PK[?PK[/LK[?PK[?PK[/LK[?PK[?PK[?PK[?PK[?PK[/LJX>`?" + "H*[:Q-'_Y_4D[/LK[/LJ[/LJ[/LK[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ" + "Z_HJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJZ_HIZ_HIZ_HI" + "Z_HIZ_HI[/LJZ_HIZODHZODHZODHZODHZ_HIZ_HIZ_HIZ_HIZ_HIZODHZ_HIZODH" + "ZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODH" + "ZODHZ?@GZODHZODHZODHZODHZ?@HZ?@GZ?@HZODHZ?@GZ?@GZ?@GZ?@GZ?@GZ?@G" + "Z?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ/\\>W.D8U>,1S=H(QM,!Q='`Q='`Q='`Q='`" + "QM,!QM,!QM,!QM,!QM,!Q]0\"QM,!Q]0\"Q]0\"QM,!QM,!QM,!Q]0\"Q]0\"Q]0\"QM,!" + "QM,!Q=,!N\\;TLKWJR=8#O,CW)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D*C9GO\\S\\V><5VN@7W.H9W.H:" + "WNP;X.X>X_(BY?0DY/,DX_$BXN`AXN`AX.X?V^H:T-\\/PL_`O\\S\\P<[^P<[^P,W^" + "P,3U^45V.<7V>@8VND9V^D:V^H:W.L;W>L;" + "W>PW^T>W^T>W^T=WNT=W^T=W^T=WNT=W^T=" + "W^T=W^T=W^T=W^T=VND:I;/F;'>EH*S:OLO[P]#`P]$!P]$!P]$!P]$!P]#`P]#`" + "P]#`P]#`P]#`PM#`P]#`P]#`PM#`P]#`P]#`P]#`PM#`PM#`PL_`PL_`PL_`P<[_" + "M<+T@)#!>(.PT-X+Y/,CW^T=W>L;W>L;W>L;W.L;W.H:W.H:W.H:V^H:V^D9V^H:" + "V^D9V^D9V^D9V^D9V^D9V^D9VN@8VN@8VN@8VN@8VN@8VN@8VN@8VN@8VN@8VN<8" + "VN@8VN@8V><7V><7VN@8VN@8V><7V><7V><7V><7V.86M,'SPL[\\X_$BV><7V><7" + "V><7V><7V><6V><7V><7V.86V><6V.86V><7V.86V.86V.86V.86V.86V.86U^45" + "U^45U.(2T=\\/S-H)R=<%6F:5)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ";7FJW^X=Z_HI[/LJ[/LK[/LK[/LK[/LJ[/LJ[/LK[/LK[/LK[/LK[/LK[?PK[?PK" + "[?PK[?PKZ/,2U>,2U>,2U>,2UN03UN03UN04" + "UN04UN04UN04UN04UN03U>,3T^$1Q=,\"OY/(AY/(AY/(AY/(AY/,BY/(AX_$@W>L:" + "V.85VN@6W.H9Y/(AY/(AY/(AY/(AY/(AY/(AY/(AY/(AY/(AY/(AY/(AY/(AY/(A" + "Y/,BY/,BY/,BY/,BY/,BX_(AX.X=VN@7U.(1S-D'QM,!Q-#_Q='`Q='`QM,!QM,!" + "QM,!Q='`QM,!Q]0\"QM,!Q],\"Q]0\"Q],!QM,!QM,!QM,!QM,!Q]0\"Q]0\"Q]0\"Q]0\"" + "Q='`M\\+ON,3QR]@%R-4\"OL;W^T=XN`@Y?,DY?,DXO$BXN`AXN`AXN`AW^X>W>LD9VND9V^H:V^H;V^H;W.L;W>L<" + "W>LW^T>W^T=W^T=WNP=W^T=WNT=W^T=WNT=" + "W^T=W^T=W^T=W^T=W^T=W^T>T-X/DJ#1;WJHGJK8N\\CWPL__PL_`P]$!P]$!P]#`" + "PM#`P]#`P]#`P]#`PM#`P]#`P]#`P]#`P]#`PL_`P]#`PM#`PL_`O\\W]L<#QAI3&" + "97\"=ML'OXO$@X>\\?W>L;W>L;W>L;W>L;W.L;W.H:W.H:V^D9W.H:W.H:V^D9V^D9" + "V^D9V^D9V^D9VND9VN@8VN@8VN@8VN@8VN@8VN@8VN@8VN@8V><7VN@8VN@8VN@8" + "V><7VN@8V><7V><7V.86V><7V><7V>87V><7V><7U>,3GJK:W>L9W>L;V.86V><7" + "V><6V><6V.86V><6V.86V><6V.86V.86V.86V.86V.86V.86V.86V.86V.86V.85" + "UN04U.(2T=\\.R]D(R=8%97\"@)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D9'\"A" + "W>P;Z_HI[/LJ[?PK[/LJ[/LJ[/LK[/LK[?PK[/LK[/LK[?PK[?PK[?PK[?PK[/LK" + "[?PK[?PK[/LJRMH+AI&XR=<%U.(1U.(1U.(1U.(1U>,2U.(2U.(1U>,2U>,3UN03" + "UN04UN04UN04UN03U.(2SMP+NL;SRM<#Z_DH[?PK[?PK[?PL[?PL[?PL[?PK[?PK" + "[?PK[?PK[?PK[?PK[/LK[/LK[/LK[?PK[/LK[/LK[/LK[?PK[/LK[/LK[/LK[/LJ" + "Z?@HLK_NO,GWWNP;[/LJ[/LK[/LJ[/LK[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ" + "[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJZ_HI" + "Z_HIZ_HIZODHZODHZODHZODHZODHZ_HIZ_HIZ_HIZ_HIZODHZ_HIZODHZODHZODH" + "ZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODH" + "ZODHZODHZODHZODHZ?@GZODHZ?@HZ?@HZODHZ?@GZ?@GZODHZ?@GZ?@GZ?@GZ?@G" + "Z?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@G" + "Z?@GZ?@GZ/L:WNP\\?Y/(BY?0EX_$BXN`AXN`AXN\\@X>\\@X.X?WNP=V^D:UN45S=P,P](!" + "O,KZM\\7TM<+RL\\'QLK_OL+[NKKOJJ[GGJ;?GJ[CHL+[NN\\CXPL_`Q]4%R]D)S=L," + "S]X.TM`0T^$1U.,3U.04UN45U^86U^87U^<7V.<8V>D9V^D:W.L;V^L;W>PP<" + "W>PPWNP=WNP=WNT=W^T=WNT=WNP=WNP=" + "W^T=WNT=W^T=W^T=WNT=W^T=W^T=W^T=SMT-FJC9:W>FBI7$J;7DN\\CXP<[^PL__" + "PL_`PM#`PL__PL_`PM#`PL_`PL_`PL_`PL__PL__O\\W]ML3UG*G;L;W>L;W>L;W>L;W.H:W.L;W.H:W.H:V^D9V^D9V^D9V^D9V^D9" + "V^D9V^D9V^D9VN@8VN@8VN@8VN@8VN@8VN@8VN@8VN@8VN@8V><7V><7V><7V><7" + "VN@8V><7V><7V><7V><7V><7V><7V><7V.86V.86QM0%I[+?YO0DVN@8V><6V.86" + "V.86V.86V.86V.86V.86V.86V.86V.86V.86V.86V.86V.86V.86V.86V.86U^45" + "UN04U.(2T-X.R]D(R-4$<'RL)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D-T-TT-X-" + "ZODH[/LJ[?PK[?PK[/LK[/LK[/LK[/LK[/LK[/LK[?PK[?PK[?PL[?PL[?PK[?PL" + "[?PK[?PK[?PK[/LKQ=0\"L+[LRM@&T^(0U.(1U>,2U.(2U>,2U>,2U>,2U>,3UN03" + "U>,3UN03UN04SMP+OLKYOLKVW^T:[/LK[?PK[?PL[?PL[?PL[?PL[?PK[?PK[?PK" + "[?PK[?PK[?PK[?PK[?PK[/LK[?PK[?PK[?PK[?PK[?PK[/LK[?PK[?PK[?PK[?PK" + "[/LJX>`?K+KGQ]4#Y?,B[/LK[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ" + "[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJZ_HJ" + "Y/,BY_8EZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZ_HIZ_HI" + "ZODHZ_HIZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODH" + "ZODHZODHZODHZODHZODHZODHZ?@GZ?@GZODHZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@G" + "Z?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ/\\>S-@$?XFU4U^.T^,2Y/,BY/(AY/(AY/(AY/(AY/(AY/(AY/,BY/,B" + "Y/(AY/(AY/(AY/,BY/,BY/(AY/(AY/(AY/(AY/(AY/(AY/(AY/,BY/(AY/,BY/,B" + "Y/,BY/,BY/(AX_$@X.X=VN@7TM`/RM@&Q='`Q=#_QM'`Q='`Q='`QM,!QM,!QM,!" + "QM,!Q]0\"Q]0\"Q]0\"Q]0\"QM,!Q]0\"Q]0\"Q]0\"QM,!Q]0\"Q]0\"QM,!QM0!PLW[L+OH" + "Q='_RM<$Q]0\"Q]0!R-4#M\\/R)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-DE:+6T-T*V><6VN@8W.H9" + "W>L:WNP;X.X>X_$AY?0EX_(CXN`AXN`AX>\\@XN`AX>\\@X>\\@W^X?W>P=VND9U^87" + "T^(3S]T.R]D*QM4%P](\"P<_`P<_`P<_`P](\"M,4T^,4S-L,M\\3WH:_AD)W.B97&BY?'EZ/2NL7SWNPPPPPW^T=WNP=WNP=WNP=WNT=WNP=WNP=WNP=WNP=" + "WNP=WNP=WNP=WNP=W^T=W^T=W^T=W^T=W^T=W^X>V>@8NL?YD9[/;WRJ?8FVDI[-" + "H:[=K+GHL\\#PM\\3TN,7UML/SL;[NJ+7EFZG8B)7%;'FH9G&?F*32R-4#XO$@XN`@" + "W^T=W>L;W>L;W>L;W.L;W.L;W.H:W.H:W.H:W.H:V^D9V^D9V^D9V^D9V^D9VN@8" + "V^D9VN@8V^D9VN@8VN@8VN@8VN@8VN@8VN@8VN@8VN@8V><7V><7V><7VN@8V><7" + "V><7V><7VN<8V><7V><7V><7V><7V><7V.86UN04J;;GS-@&X>\\@V><6V><6V.86" + "V.86V.86V.86V.86V.86V.86V.86V.86V.86V.86V.86V.86V.86V.86V.85U^45" + "UN04T^$1S]T-R]D(Q]4#?(>W)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D?(BYX>\\>" + "Z/,3" + "T-X.R-4$NL?UP]#^W.H8[/LJ[?PL[?PL[?PL[?PK[?PL[?PK[?PK[?PL[?PK[?PK" + "[?PK[/LK[?PK[/LK[?PK[?PK[/LJ[?PK[?PK[?PK[?PK[?PK[/LK[?PK[?PK[?PK" + "[/LJ[/LJU.(1L\\'OSMP+Z/H8Z?@GZ?@GZODHZ_HIZODHZODHZODHZODHZODHZ_HIZODHZODHZODH" + "ZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODH" + "ZODHZODHZODHZ?@GZODHZODHZODHZ?@HZODHZODHZ?@GZ?@GZ?@GZ?@GZ?@GZ?@G" + "Z?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?<6TM\\.RM<%Q='`Q-#_Q-#_Q='`Q='`QM,!QM,!QM,!QM,!" + "Q]0\"Q]0\"Q]0\"Q]0\"Q]0\"Q]0\"Q]0\"Q]0\"Q]0\"Q]0\"Q]0\"QM,!Q='`O<6VN@7V^D8" + "W.H:W>L;W^T=XN`@Y?0DY/(CXN`AXN`AXN`AX>\\@X>\\@XN`AX>\\@X.X?WNP=W>L<" + "V^D:V><8U^46U.04T^(2TM`1T=\\0T=\\0T=\\0RMD+HK'AN<;UU>04U.,3U>04U.04" + "U>,4TN$2ML7Y@8_#1U2&+#9F)C)B+#AG,S]O,SYM;WFFLK[LWNP;W>PPP<" + "W>PPX>\\?W.L;S-L+M\\7V" + "H['BDI_/A)\"`>8:U82RD)W+I;'AO,GXT^$0XN`@XN`AW^X>W>PP<" + "W>L;W>L;W.L;W.H:W.H:W.H:V^H:W.H:V^H:V^D9V^D9V^D9V^D9V^D9VND9VN@8" + "VN@8VN@8VN@8VN@8VN@8VN@8VN@8VN@8VN@8V><7V><7V><7V><7V><7VN<8VN@8" + "V><7V><7V><7V><7V><7V.86V><7V.86V.86S]X.F*32X_$@V^D9V.86V><6V.86" + "V.86V.86V.86V.86V.86V.86V.86V.86V.86V.86V.85V.86U^45V.85U^45U^44" + "U>,3T^$1S]T-RM@'QM,\"AI&`)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-DDI[/W.D8" + "Y/(AYO4DZ/P;S=P+P]#`P,W]P<[]P<[]O\\S\\O,1ZODH[/LK[/LK[?PK[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ" + "[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJX_$@" + "U>,2UN03U.$0UN,1YO4CZ?@GZODHZODHZODHZODHZODHZODHZODHZODHZODHZODH" + "ZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODH" + "ZODHZODHZODHZODHZ?@GZODHZ?@GZ?@HZODHZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@G" + "Z?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ/\\>Q]+`@8RY7&B6T^(1Y/(AX_(AY/(AY/(AY/(AY/(AY/(AY/,BY/(AY/(A" + "Y/(AY/(AY/(AY/(AY/(AY/,BY/(AY/(AY/(AY/,BY/(AY/,BY/,BY/,BY/,BY/,B" + "Y/(AX_$@WNP;V><6T=\\-R=<$Q='`Q-#_Q='`Q-#_Q='`Q='`QM,!QM,!QM,!QM,!" + "Q]0\"Q]0\"Q]0\"Q]0\"Q]0\"Q]0\"Q]0\"Q]0\"Q]0\"QM0\"Q='`Q='_N,/PML/PS-D&R=8#" + "R-4\"R-4\"R-4\"R-4\"R=8#J;;E)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D:WFLR=8#V><6VN@7V^D8" + "W.H9W>L:W^T\\@X>\\@X>\\@X>\\@X>\\@XN`AX>\\@X>\\@X.X?" + "WNP=W>L@8V.<7V.87V.87U^87UN05O\\[`M\\3UT^$0U^87U^86U>05" + "O,O_PPP<" + "W>PPP" + "X.\\?XN`@XN`@XN`@XN`@XN`@XO$AXN`AX>\\@X.X?WNP=W>L;W>PPPL;" + "W.L;W.L;W.H:W.H:W.H:W.H:W.H:V^D9W.H:V^D9VN@8V^D9V^D9V^D9VN@8VN@8" + "VN@8VN@8VN@8VN@8V><7V><7VN@8V><7V><7V><7V><7V><7V><7V><7V><7V><7" + "V><7V><7V><7V><7V><7V.86V.86V.86U^45M,'SNL7SY/,CV><7V.86V.86V.86" + "V.86V.86V.86V.86V.86V.86V.86V.86V.86V.86V.86V.86U^45V.85U^45UN04" + "U>,3TM`0S]T,RM@'Q=(!BY;$)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-DG*C9T=\\." + "VN@7W^T,2U>,2U.$/X.XH:_@Y/,BY/(AY/(AY/(AY/(AY/,BY/(AY/(AY/(AY/(AY/(A" + "Y/(AY/(AY/(AY/(AY/(AY/(AY/(AY/(AX_(AY/(AY/,BY/,BY/,BY/,BX_$@X_(A" + "XN`?WNP;V.44T-X,R=8$Q='`Q-#_Q='`QM,!Q='`Q='`QM,!QM,!QM,!QM0\"QM,!" + "Q]0\"Q]0\"Q]0\"Q]0\"Q]4#Q]0\"Q]0\"Q]0\"Q]0\"QM,!Q-#_L[[KO,GWS=H(R-4\"R-4\"" + "R-4\"R-4\"R-4\"R-4#R=8#IK+B)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D0$U_QM,\"V.85V><6V^D8" + "W.H9W>L:WNP\\?X_(BY/,DXN`AX>\\@X>\\@X>\\@X>\\@X>\\@X>\\@X>\\@X>\\@X>\\@" + "X.X?W^T>WNT=WNP=W>LL@9TN(3OQ=#_VNH:W.L;W>P<" + "W>PP<" + "WNPPPPPPP<7V><7VN@8V><7V><7V><7V><7V><7V><7V><7V><7V><7" + "V><7V><7V><7V><7V><7V.86V.86U^45TN$1EJ/3WNP:W>L;V><6V.86V.86V.86" + "V.86V.86V.86U^45V.86V.86V.86V.86V.86V.85V.86V.86U^45V.45U^44UN04" + "U>,2TM`0SMP+R=<&P]#`D)S*)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-DI+'AS=L*" + "TM`/U.(1U^85W.H9W^X=X_$@Y?0CY_8FZ?@GZ_HI[/LK[?PK[?PL[OTL[OTM[OTL" + "[OTM[OTL[OTL[?PL[OTL[OTM[OTM[OTM[?PL[OTL[?PL[OTL[?PL[?PL[?PL[?PL" + "[?PL[OTL[?PL[?PL[?PL[?PL[?PL[?PL[?PK[?PK[?PK[?PK[?PK[?PK[?PK[/LJ" + "[?PK[?PK[?PK[/LK[/LK[?PK[?PK[/LK[?PK[/LK[?PK[/LK[/LK[?PK[?PK[/LK" + "[/LK[/LJ[/LJ[/LJY_8EO,KXP]'_W>L:Z_HI[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ" + "[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJZ_HIUN03" + "UN03U>,3U>,2U>,2U>,2U.(1V><5YO4DZODHZODHZODHZODHZODHZ_HIZODHZODH" + "ZODHZODHZ_HIZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODH" + "ZODHZODHZ?@GZODHZODHZODHZ?@GZ?@GZ?@GZODHZODHZ?@GZ?@GZ?@GZ?@GZ?@G" + "Z?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ/L9N<3Q>X:R<7ZLW.P;Y/(AY/(AY/(AY/(AY/(AY/(AY/(AY/(AY/(AY/(AY/(A" + "Y/,BY/(AY/,BY/(AY/,BY/(AY/(AY/(AY/,BY/(AY/,BY/,BY/,BY/,BX_(AXN`?" + "W>L:U^03S]P+R-4#Q='`Q='`Q='`QM,!Q='`QM,!QM,!QM,!QM,!QM,!QM,!QM,!" + "Q]0\"Q]0\"Q]0\"Q]0\"Q]0\"Q]0\"Q]0\"QM,!Q='`PLW[L;SIQ-'_S-D'R-4\"R-4\"R-4\"" + "R-4\"R-4\"R-4\"R-4#R=8#I+#?)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-DM\\/SV.83VN@7VN@7" + "V^D9W.H:WNP;X.X=X_$AY/,CX>`@X.\\?X.X?X>\\@X>\\@X>\\@X>\\@X>\\@X>\\@X>\\@" + "X>\\@X>\\@X>\\?X.X?X.X>W^T>W^T=WNP=W.H;W.L;V^D:Q]8'P,W_U>,2VND9R=P0" + "-4-X?XNXL;[MQ=,!U>,3T=\\/R]D)QM4$Q=,#Q-(\"PL_`F:C:J+/?UN04V^D9W.L;" + "W>PW^T=W^T=W^T=W^T=W^T=WNPPP<" + "WNPPPPPPPPPPPPL;W>L;W>L;W.L;W.L;W.L;W.L;W.L;" + "W.L;W.H:W.H:V^H:V^H:V^H:V^D9V^D9VN@8VN@8V^D9VN@8VN@8VN@8VN@8VN@8" + "VN@8VN@8V><7V><7V><7V><7V><7V><7VN<8V><7V><7V><7V><7V><7V><7V><7" + "V><7V><7V.86V><7V><7V.86U^45U^45N<7V.86V.86V.86V.86" + "V.86V.86U^45U^45V.86V.86U^45U^45U^45U^45V.85V.86U^45U^44U^44UN04" + "U.(2TM`0S=L*R-8%PL__E:#0)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-DK+CHS=L)" + "T-X-TM`/T^$0T^$0U>,2V.85W>L:X>\\>Y/(BYO4DZ?@GZODI[/LJ[?PK[OTL[OTM" + "[OTM[OTM[OTM[OTM[OTM[OTM[OTM[OTM[OTM[OTM[OTM[OTL[?PL[?PL[OTM[OTL" + "[OTL[OTL[OTL[?PL[?PK[OTL[?PL[?PL[?PK[?PK[?PK[?PK[?PK[?PK[?PK[/LK" + "[?PK[?PK[/LJ[?PK[?PK[?PK[/LK[?PK[?PK[?PK[?PK[/LK[?PK[?PK[?PK[?PK" + "[/LK[/LK[/LJ[/LJ[/LJY?0CN\\GWQ]0\"WNP;[/LJ[/LK[/LK[/LK[/LJ[/LK[/LJ" + "[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJX_(AU^44" + "UN03UN03U>,3U>,2U>,2U>,2U>,2U.(1WNT;Z?@GZODHZODHZODHZ_HIZODHZODH" + "Z_HIZODHZ_HIZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODH" + "ZODHZODHZODHZODHZODHZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@G" + "Z?@GZ/X=" + "R-4\"CIG%9W.@P](!Y/,BY/(AY/(AY/,BY/(AY/(AY/,BY/(AY/(AY/(AY/(AY/(A" + "Y/,BY/(AY/(AY/(AY/(AY/,BY/,BY/,BY/,BY/,BY/,BY/,BY/,BX_$@XN\\?W>H9" + "UN,2SML*Q]0\"Q=#_Q='`Q='`Q='`Q='`QM,!QM,!QM,!QM,!QM,!QM,!QM0\"QM,!" + "Q]0\"Q]0\"Q]0\"Q]0\"Q]0\"Q],!QM,!QM,!OLGWL;SIRM<$R]@&R-4\"R-4\"R-4#R-4\"" + "R-4\"R-4\"R-4\"R-4#R=8$GZO:)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-DHJ_@U>(.V><6VN@7" + "V^D8W.H9W>L;W^T`AX.X?X.X?X.X?X>\\@X>\\@X>\\@X>\\@X>\\@X>\\@" + "X>\\@X>\\@XN`@X>\\@X>\\@X.X?W^T>W^T>WNP=WNP=W.H;UN46P](\"Q=,\"V^H:U>47" + "7V^G;GJGH*WPL<" + "W>LPPL;WNPLPPPPPPP<" + "W>PPPPL;W.L;W.L;W.L;W.L;V^L;V^H;W.L;V^L;V^H;" + "V^H:V^H:V^H:V^H:V^H:VND9V^D9V^D9V^D9V^D9VN@8VN@8VN@8VN@8VN@8VN@8" + "VN@8VN@8V><7V><7V><7V><7V><7V><7V><7V><7V><7V><7V><7V><7V><7V><7" + "V><7V.86V.86V.86V.86V.86U^45TN$2E:+2VN<5W>L,3" + "U.(2T=\\.S=L*Q]4$PL[^FZ?6)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-DL;[MS-H)" + "T-X-TM`/TM`/TM`/T^$0T^$0U>,2U^44VN@7WNP;XN`@Y?0CZ/P;U^44" + "U>,2UN03U>,3U>,2U>,2U>,2U>,2U>,2U>,2UN03X>\\>ZODHZODHZODHZ_HIZODH" + "ZODHZ_HIZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODH" + "ZODHZODHZODHZODHZODHZODHZODHZ?@HZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@G" + "Z?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ/Y/,BY/(AY/(AY/(AY/(AY/,BY/(AY/,BY/(AY/(AY/(AY/,BY/(A" + "Y/(AY/(AY/(AY/(AY/,BY/,BY/,BY/,BY/,BY/,BY/,BY/,BX_$@X>X=V^D8U>(1" + "S=H)Q]0\"Q='`Q-#_Q='`Q='`Q='`Q=,!QM,!QM,!QM,!QM,!QM,!Q]0\"Q]0\"Q]0!" + "Q]0\"Q]0\"Q]0\"Q]0\"QM,!QM,!Q='_N,/QM<#NS=H'R]<%R-4\"R=8#R-4\"R-4\"R-4\"" + "R-4\"R-4#R-4\"R-4\"RM<$FZ?6)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-DCIS/T=X)V><6VN@7" + "V^D8V^D9W>L:WNP\\@X>\\@" + "X>\\@X>\\@X>`AX>\\@XN`AX>\\@X.\\@X.X?W^T>WNT=WNP=W.LPT=W>P=W>LP<" + "W>LL;W>L;W.L;W>L;W.L;W>PLL;W>PL;W>PPL;W>L;W>P<" + "W>PL;W>LL;W>L;W.L;W.L;W.L;W.L;W.L;W.L;V^L;V^H;V^H:V^H:V^L;" + "V^H:V^H:VNH:V^H:V^D9VN@8V><7V^D9VN@8VN@8VN@8VN@8VN@8VN@8VN@8VN@8" + "VN@8V><7V><7V><7V><7V><7V><7V><7V><7V><7V><7V><7V.86V>87V><7V><7" + "V><7V.86V.86V.86V.86U^45UN04N,;XK;?CYO0DVN@8V.86V.86V.86U^45U^45" + "U^45U^45U^45U^45U^45U^45U^45U^45U^45U^45U^45U^45U^45U^44UN04U>,3" + "T^$1T-X-S-H)QM0#P,2UN03V.85W.H9X.X=Y/(BYO4EZ?@H" + "ZODI[/LJ[?PK[OTM[OTL[OTM[OTM[OTM[OTM[OTM[OTM[OTM[OTM[OTM[OTL[OTL" + "[OTL[OTL[OTL[?PL[OTL[?PL[?PL[?PK[?PL[?PK[?PK[?PK[?PK[?PK[/LK[?PK" + "[/LK[/LK[?PK[/LK[?PK[?PK[?PK[/LK[?PK[?PK[?PK[?PK[?PK[/LK[?PK[/LK" + "[?PK[/LK[/LJ[?PK[/LJ[/LJ[/LJXO$@OLSZRM<&W^T<6UN04" + "UN03UN03UN03UN03U>,2UN03UN03U>,2U>,2U>,2UN03U^44XN`?ZODHZODHZODH" + "ZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODH" + "ZODHZODHZODHZ?@GZ?@GZODHZODHZ?@HZODHZODHZ?@GZ?@GZ?@GZ?@GZ?@GZ?@G" + "Z?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ/X:SAI3\"X.\\>Y/(AY/(AY/(AY/(AY/(AY/,BY/,BY/,BY/,BY/(AY/(AY/(AY/(A" + "Y/(AY/,BY/,BY/(AY/,BY/,BY/,BY/,BY/,BY/,BY/,BX_(AW^T<6V><6" + "VN@8V^D9W.H:WNP\\?XN`AXN`AX>\\@X.X?X.X?X.X?X>\\@X.\\?X.\\@X>\\@X>\\@" + "X>\\@X>\\@X>\\@X>\\@X>\\@X>\\@X>\\@X>\\?X.X?W^T>WNP=WNP=V>@9R-<'Q-(\"V^H9" + "J+GO5V*/E:'1KKOKQM,\"R=<'P]$!PL_`PL_`PL_`PL_`O,K\\:W>HN\\;SU.,3V.<7" + "V>@8T^(3Q-,$KKOLDZ#/D9O(U.$/W^T=W^T=WNP=WNP=W>PPL;" + "W>L;W>PL;W>L;W>L;W>L;W>PL;W>L;W>PLL;W.L;W.L;W.L;W.L;W.L;V^L;V^L;W.L;V^H:V^H;V^L;V^H:V^H:" + "V^H:V^H:V^H:V^D9V^D9V><7VN@8VN@8VN@8VN@8VN@8VN@8VN@8VN@8VN@8VN@8" + "VN<8V><7V><7V><7V><7V><7V><7V><7V><7V><7V><7V.86V.86V.86V.86V><7" + "V.86V.86V.86V.86V.86U^45T=`0DI[-VN@5W>P,2UN03U^44VN@7WNP;X>`?" + "Y?,CZ/L:Z_HI[/LK[/LK[/LK" + "[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJZ_HIY?0CV.85UN04" + "UN03UN03UN03UN03U>,2UN03UN03U>,2UN03UN03UN03U>,2U>,2U^44X>\\>Z?@G" + "ZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODH" + "ZODHZODHZODHZODHZ?@GZ?@GZ?@GZ?@GZODHZ?@GZ?@HZ?@GZ?@GZ?@GZ?@GZ?@G" + "Z?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ/<5M<#LA(^[" + ">H:SU^85Y/,BY/(AY/(AY/(AY/(AY/(AX_$@Y?0CY?0CY/(AY/(AY/(AY/(AY/(A" + "Y/(AY/(AY/,BY/,BY/,BY/,BY/,BY/,BY?,BY/,BX_$@W^T<6TM\\.RM<%Q='`" + "Q-#_Q='`Q='`Q='`Q='`Q='`Q='`QM,!QM,!QM,!QM,!QM0!QM,!Q]0\"Q]0\"Q]0\"" + "Q]0\"Q]0\"Q]0\"Q='`PL[\\L;SIPL_]SML(R-4\"R-4\"R=8#R=8#R=8#R=8#R-4#R=8#" + "R-4#R-4#R-4\"R-4#RM<$F*33)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D3%N-R=8#V.85V><6" + "VN@7V^D8W.H9W>L;W^T=XN`@XN`AX>\\@X>\\@X.X?X.X?X.X?X.X?X.X?X.X?X.X?" + "X>\\@X>\\@X>\\@X>\\@X>\\@X.X?X.X?X.X?X.X?X.X>W^T>WNP=W.L;T=`1Q=0%T-X-" + "Q=8*45R-CYO*J[GHPPPL;W>L;W.L;" + "W>L;W.L;W.L;W.L;W.L;W>L;W.L;W.L;W.L;W.L;W.L;W.L;W.L;W.L;W.L;W.L;" + "V^L;W.L;W.H;W.L;W.L;W.L;V^H;V^H:V^H:V^H;V^H:V^H:V^H:V^H:VNH:V^H:" + "V^H:VND9V^D9V^D9VN@8V><7V^D9VN@8VN@8VN@8VN@8VN@8VN@8VN@8V><7VN@8" + "V><7V><7V><7V><7V><7V><7V><7V><7V><7V><7V.86V.86V.86V.86V.86V.86" + "V.86V.86U^45V.86U^45UN04L+[QLKWFY?,CV><7V.86V.86V.86V.86U^45U^45" + "U^45U^45U^44U^45U^44U^45UN04U^45U^45U^45UN04U^45U^45UN04U>,3U.(2" + "TM`0S]T,R]D(Q=,\"O\\S\\I;'?)S-D)S-D)S-D)S-D)S-D)S-D)S-D45V/O\\OZRM@&" + "S=L*T=\\.TM`/TM`/TM`/T^$0T^$0U.(1U.(1U.(1U.(1U>,2UN03UN03U^44V><6" + "V^D8WNP,2U>,2UN03UN03U>,2U>,2U>,2U.(1" + "W.H9Y_8EZODHZO@GZO@HZODHZODHZODHZODHZODHZODHZODHZODHZODHZODHZODH" + "ZODHZODHZ?@GZODHZODHZ?@GZ?@GZ?@GZ?@GZ?@GZ?@HZ?@GZ?@GZ?@GZ?@GZ?@G" + "Z?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ/`=H.M" + "S=P,Y/,BY/(AY/(AY/(AY/(AY/(AY/(AY/(@Y_8EY?,BX>\\>X.T<6" + "VN@7VN@7V^D9W>L:W^T\\@X.X?X.X?X.X?X.X?X.X?X.X?X.X?" + "X.X?X.X?X.X?X.X?X.X?X.X?X.X?X.X?X.X?X.X?W^T>WNP=WNP=W.H;S=P-SMP," + "V.@997.HB)7#JKCGOPPPL;" + "W>LL;W.L;W.L;W.L;W.L;W.L;W.L;W.L;W.L;W.L;W.H;W.L;W.L;" + "V^L;V^H;V^H;V^H;V^H:V^H:V^H:V^H:V^H:V^H:V^H:V^H:V^H:VND:VNH:VND:" + "V^D:VND9VND9V^D9V^D9VN@8V^D9VN@8VN@8VN@8VN@8VN@8V><7V><7V><7V><7" + "V><7V><7V><7V><7V><7V><7V><7V>87V><7V.86V.86V.86V.86V.86V.86V.86" + "V.86V.86U^45U^45U^45R]H+D)S(W^P:W.L;V.86V.86V.86V.86U^45U^45U^45" + "U^45U^45U^44U^45U^44UN04UN04U^44U^45UN04UN04UN04UN04U>,3U>,3T^$1" + "T=\\/S]T,RM@'Q-(!O\\S[I[/A)S-D)S-D)S-D)S-D)S-D)S-D)S-D7&F:O\\OZR=<%" + "S=L*T-X-TM`/TM`/TM`/TM`/T^$0T^$0U.(1U.(1U.(1U>,2UN03U>,2UN03U^44" + "U^44V.85V><6W.H9X.\\>Y/(AYO4EZ?@GZODI[/LK[?PL[?PL[OTM[OTM[OTM[OTL" + "[OTM[OTL[?PL[OPL[?PL[?PL[?PL[?PL[?PL[?PL[?PK[?PK[?PK[?PK[?PK[?PK" + "[?PK[/LK[/LK[?PK[?PK[?PK[?PK[?LK[/LK[/LK[/LK[/LK[/LK[/LK[/LK[/LK" + "[/LK[/LK[/LK[/LK[/LJ[/LJ[/LJ[/LJ[/LJZ_HJZ/8FRM@'R-8$U^43Z/,2U>,2U>,2U>,2U>,2U>,2U>,2" + "U>,2U.(1V.85X>\\>Z?@GZODHZODHZ?@GZODHZODHZODHZODHZODHZODHZODHZODH" + "ZODHZODHZODHZ?@GZ?@GZ?@GZ?@GZ?@GZ?@HZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@G" + "Z?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ/(2NQM4$" + "Y/,BY/(AY/(AY/(AY/(AY/,BY/(AX_(@X.X,1X_$AY/(AY/(A" + "Y/(AY/,BY/,BY/,BY/,BY/,BY/,BY/(AXN`?W>L:U^03S]P*Q]4\"Q='`Q-#_Q='`" + "Q='`Q='`Q='`QM,!QM(!QM,!QM,!QM,!QM,!Q]0\"QM,!Q]0\"Q]0\"Q]0\"Q]0\"Q]0\"" + "QM,!Q-#_NL7SM<'NS=H'R]@&R-4\"R-4\"R=8#R-4\"R=8#R=8#R=8#R=8#R-4#R=8#" + "R-4\"R-4\"R-4#R-4\"RM<$@HZ^)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-DJK;FU^43V.86" + "VN@7VN@8V^D8W.H:WNP;X>\\>X_$AX_$BX>`@X.X?X.X?X.X?X.X?X.X?X.X?X.X?" + "X.X?X.X?X.X?X.X?X.X?X.X?X.X?X.X?X.X?W^X>W^T>WNT>WNT=W>P=V>D9QM0#" + "W>PPL;W.L;" + "W.L;V^L;W.L;W.L;V^H:W.L;V^L;V^H:V^H;W.H:W.L;W.L;W.H;W.L;W.H;W.H;" + "W.L;V^H;V^H:V^H:V^L;V^D9V^H:V^H:VNH:V^H:V^H:V^H:V^H:VND9VND9VND9" + "VND9VND9V^D9V^D9VN@8VND9V^D9VN@8VN@8VN@8VN@8V><7V><7V><7V><7V><7" + "V><7V><7V><7V><7V><7V><7V><7V.86V.86V.86V.86V.86V.86V.86V.86V.86" + "V.86V.86U^45U^45U>,3GZW?PLWXXO$AV><7V.86U^45V.86U^45U^45U^45V.85" + "U^45U^45U^45UN04UN04UN04UN04UN04U^44UN04UN04UN04UN03U>,3U.(2T^$1" + "T=\\.SMP+RM@'Q-(!O\\S[J[?E)S-D)S-D)S-D)S-D)S-D)S-D)S-D:7:GOLOZR-8$" + "S-H)T-X-TM`/TM`/TM`/TM`/T^$0T^$0T^$0U.(1U.(1U>,2U>,2UN03UN03UN03" + "U^44U^44U^44V.85V><6V^D8WNP;X>`?Y?,CY_8EZ?@HZ_HI[/LK[?PL[OTM[OTM" + "[OTM[OTL[OTL[?PL[OTL[?PL[?PL[?PL[?PK[?PL[?PL[?PK[?PK[?PK[?PK[?PK" + "[/LK[/LK[?PK[/LK[/LK[?PK[?PK[?PK[/LK[/LK[/LK[/LK[/LK[/LJ[/LK[/LJ" + "[/LJ[/LK[/LJ[/LK[/LJ[/LJ[/LK[/LJ[/LJ[/LJ[/LJZODHT-\\-Q]4#T^$/Y?0C" + "[/LJ[?PK[/LJ[/LK[/LK[/LK[/LK[/LJ[/LK[/LJ[?PK[/LJYO4DV.85U^44UN04" + "UN03UN03UN03UN03UN03UN03UN03UN03UN03U>,2U>,2U>,2U>,2U>,2U>,2U>,2" + "U>,2U>,2U>,2U.(0T^$0V^D7Y/(AZODHZ?@HZ?@GZODHZ?@GZODHZ?@GZ?@GZ?@H" + "ZODHZODHZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@HZ?@GZ?@HZ?@GZ?@GZ?@GZ?@G" + "Z?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ/(:PP](!Y/,B" + "Y/,BY/,BY/(AY/(AY/(AY/(AY/(AY/(AX_$@WNP:VN@6U^03W^T\\=V^D8U>(1S=L)Q]0!Q-#_Q-#_Q-#_Q='`" + "Q='`Q='`QM,!QM,!Q],!QM,!QM,!QM,!QM,!QM,!Q]0\"Q]0\"Q]0\"Q]0\"Q]0\"QM,!" + "Q=#_M<#NNL?TS]P)RM<$R-4\"R-4\"R-4\"R=8#R=8#R=8#R=8#R=8#R=8#R=8#R-4\"" + "R-4\"R-4#R-4\"R-4#RM<$(0V><6" + "V><6VN@7V^D8W.H9W>L:X.X>X>\\@XO$AX>`AX.X?X.X?X.X?X.X?X.X?X.X?W^T>" + "W^T>W^T>W^T>W^T>X.X?X.X?W^X?X.X?W^T>W^X>W^T>WNT>WNT>WNT>W^X?WNP<" + "W.LL;W>PP<7V><7V><7V><7V><7" + "V><7V><7V><7V><7V><7V.86V><7V><7V.86V><7V.86V.86V.86V.86V.86V.86" + "V.86U^45U^45UN04O,K\\FJ7/X_$@VN@8V.86U^45U^45U^45U^45U^45U^45U^45" + "U^45U^45U^44UN04UN04UN04U^45UN04UN04UN04UN04UN04UN03U>,3U.(2TM`0" + "T-X.S-H*R-8%P]#`OLOZKKGG)S-D)S-D)S-D)S-D)S-D)S-D)S-D=(*QOLOZQ]4#" + "S-H(S]T,T=\\.TM`/TM`/TM`/T^$0T^$0T^$0U.(1U.(1U>,2U>,2UN03UN03UN03" + "UN03U^44U^44V.85V.85V.85V.85V><6W.H9W^T@7QM0\"S]T," + "X.X=Z_HI[/LK[/LK[/LK[/LJ[/LK[/LK[/LK[/LK[/LJ[/LJX.X=V.85U^44UN03" + "UN03UN03UN03UN03UN03UN03UN03UN03UN03UN03U>,2U>,2U>,2U>,2U>,2U>,2" + "U>,2U>,2U.(1U>,2U.(1U.(1TM`/U>,1W>H9YO0CZ?@GZ?@GZ?@GZ?@GZ?@GZ?@G" + "Z?@GZ?@GZ?,/WNP=V.86V.86U^45U^45U^45U^45U^45U^45U^45" + "U^45U^45U^45UN04UN04UN04UN04UN04UN04UN03UN03UN04U>,3U>,3T^$1TM`0" + "S]T-S-H)R-8%P]#`OLOZK;GG)S-D)S-D)S-D)S-D)S-D)S-D)S-D?8NZO\\S[QM0\"" + "R]D(SMP+T-X-TM`/TM`/TM`/T^$0T^$0U.(1U.(1U.(1U>,2U>,2UN03UN03UN03" + "U^44U^44U^44U^44U^44U^44V.85V.85V.85V><6VN@7W>L:X>\\>Y/(BY_4EZ?@G" + "Z_HI[/LK[?PK[?PL[?PL[OTL[?PL[?PL[?PK[?PL[?PL[?PL[?PK[?PL[?PK[?PK" + "[?PK[?PK[?PK[?PK[?PK[?PK[/LK[/LK[?PK[/LK[/LJ[/LJ[/LK[?PK[/LJ[/LK" + "[/LJ[/LK[/LK[/LJ[/LK[/LJ[/LJ[/LK[/LJ[/LJ[/LJ[/LJ[/LJ[/LJXN`@R=<%" + "R]D'VN@7Z?,2U>,2U>,2U>,2U>,2U>,2U>,2U>,2" + "U>,2U>,2U.(1U.(1U.(1U.(1U.(1U.(1U.(1T=\\-U^44WNT;YO0DZ?@GZ?@GZ/8E" + "Y_4EY_8EZ/U>,1M,#MCIG$?XVUR-<&Y/,BY/(AY/(A" + "Y/(AY/(AY/(AY/,BY/,BY/(AY/(AY/(AY/(AY/(AY/(AY/(AY/(AY/(AY/,BY/(A" + "Y/,BY/(AY/(AY/(AXN`?WNP;V>85T=\\-RM<%Q='`P\\_^Q-#_Q-#_Q-#_Q='`Q='`" + "QM,!QM,!QM,!QM,!QM,!QM,!QM,!Q]0\"Q]0\"Q]0\"Q]0\"QM,!QM,!Q='`O\\OYL+SI" + "R-8#SMH(R-4\"R-4#R-4\"R=4#R-4\"R-4\"R=8#R-4\"R=8#R=8$R=8#R=8#R=8#R-4#" + "R-4#R-4\"R-4#R-4\"R=8$.T=X)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D9'*DSMH&V>86" + "V><6VN@7V^D8V^D9W.H:WNPXN`@XN`AX>\\@X.X?W^T>X.X?W^T>W^T>W^T>" + "W^T>W^T>WNT>WNP=W^T>W^T>W^T>W^X>W^T>UN46P<`!H['C@(V_5&\"22%.#76F9" + ">XBUFZC7K+GGM<7V><7V><7V><7V><7" + "V><7V><7V><7V.86V><7V><7V.86V.86V.86V.86V.86V.86V.86V.86V.86V.86" + "U^45UN04U.(2GJ[?N<3NX_$AV><7U^45U^45U^45U^45U^45U^45U^45U^45U^45" + "U^45U^45UN04UN04UN04UN04UN04UN04UN04UN03UN03U>,3U>,3U.(2T^$1T=\\/" + "S]T-R]D)Q]4$PL__O,2U>,2U>,2UN03UN03" + "UN03U^44U^44U^44U^44U^44V.85V.85V.85V.85V.85V><6V><6V^D8WNP;XN`?" + "Y?,CZ/8EZ?@HZ_HJ[/LK[?PL[?PL[?PL[?PL[?PL[?PK[?PL[?PL[?PL[?PK[?PK" + "[?PK[?PK[?PK[/LK[/LK[?PK[/LK[/LK[/LK[/LK[/LK[/LK[/LK[/LK[/LK[/LK" + "[/LJ[/LK[/LJ[/LK[/LJ[/LJ[/LK[/LK[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJZ/,2U>,2U>,2U>,2U>,2U>,2U>,2U.(1U.(1" + "U.(1U.(1U.(1U.(1U.(1U.(1U.(1T^$0T^$0T^$0T^$0T^$0S]T,R]D'Y/(AZ/8F" + "Z?@GZ?@GZODHZODHZODHZODHZODHZODHZODHZ?@GZ?@GZ?@GZ?@GZ?@GZ?@HZ?@G" + "Z?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ/\\>W>L:U^44T-T,R=8$Q-#_P\\_^Q-#_Q-#_Q='`Q='`Q='`Q='`" + "QM,!QM,!QM,!QM,!QM,!QM,!QM,!Q]0\"Q]0\"Q]0!Q]0!QM,!Q='_N\\;TM<'NS=H'" + "S-D&R-4\"R-4\"R-4\"R-4\"R-4\"R=8#R=8#R-4\"R=8#R=8#R=8#R=8#R=8#R=8#R-4#" + "R=8#R-4\"R-4#R-4#O,CV)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D.DAYR=8#V.85" + "V><6V><6VN@7V^D9W.H9WNP;X.X>X>\\?XN`@X>\\@X.X?W^T>W^T>W^T>W^T>W^T>" + "W^T>W^T>W^T>WNP=W^T>WNP=W^T>WNT=V>D;:WNS.T5T0DQ\\45V,:WBGBY?%I;+A" + "NL?VQM0#R]D(SMP,S]T-S-L+Q=0$J[KMIK3DK+OLM,+SN<;WOT^$1V><7V^H:W.L;W.L;V^H:V^H:" + "V^H:V^L;V^H:W.H:V^H:V^H:V^H:V^H:V^D9V^D9V^D9VND9V^H:V^H:V^H:VNH:" + "V^H:V^D9VNH:VND:V^D:VND:VND:VND9VNH:VND9VND9VND9VND9VND9VN@9VN@8" + "VN@9V>@9VN@8VN@8VN@8VN@8VN@8V>@8VN@8V><7V><7VN@8V><7V><7V><7V><7" + "V><7V><7V><7V><7V.86V.86V.86V.86V.86V.86V.86V.86V.86V.86U^45U^45" + "U^45UN04M\\7XFJ7,X_$@VN@9U^45U^45V.86U^45U^45U^45U^45U^45U^45U^45" + "U^45UN04UN04UN04UN04UN03UN03UN03UN03UN03U>,3U>,3U.(2U.(2T^$1T=\\." + "SMP,R]D(QM0#PL__O,2U>,2UN03UN03UN03" + "UN03U^44U^44U^44V.85V.85V.85V.85V.85V.85V.85V.85V><6V><6V><6VN@7" + "W.H9X.X=X_(AYO4DZ/,2U>,2U>,2U>,2U>,2U>,2U.(1U.(1U.(1" + "U.(1U.(1U.(1U.(1T^(1T^$1T^$1T^$1T^$0T-X-QM,!P,SZT=\\-Y?,BZODIZODI" + "ZODHZODIZODHZODHZ?@HZODHZ?@GZ?@HZ?@HZ?@HZ?@GZ?@GZ?@HZ?@HZ?@GZ?@G" + "Z?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ/\\>W.H9U>,2SML)Q]0\"Q-#_P\\_^Q-#_Q-#_Q='_Q='`Q='`QM,!Q='`" + "QM,!QM,!QM,!QM,!QM,!QM,!QM0\"Q]0\"QM,!QM,!QM+`Q-#^ML'ON\\?US]P*R]<%" + "R-4\"R-4\"R-4\"R-4\"R-4\"R-4\"R-4#R=8#R=8#R=8#R=8#R=8#R=8#R=8#R=8#R=8#" + "R-4\"R-4#R-4#R=8#J+3C)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-DNL;UV.85" + "V.85V><6VN@7V^D8V^D9W>L:W^T=X>\\?X>\\@X>\\@W^X>W^T>W^T>W^T>W^T>WNT>" + "WNP=WNP=WNP=WNP=WNP=WNP=W>P=WNP=UN<976R@E:'-M<+QP]#`S-L*S]T-T-X." + "SMP,R]H)R=<'Q]4%QM0$Q=,#O\\W_I[7EKKWLM@9VND9VN@8VN@9VN@9" + "VN@9V>@8VN@8V>@8VN@8VN@8VN@8V><8V><7VN@8V><7V><7V><7V><7V><7V><7" + "V><7V.86V.86V.86V><7V.86V.86V.86V.86V.86V.86V.86V.86U^45U^45UN04" + "UN04QM4&B96`V.83W>L,3UN03U>,3U>,3U>,3U>,3U>,3U.(2U.(2TM`0T-X." + "SMP+RM@'QM0#P<[^O,GXK;GF)S-D)S-D)S-D)S-D)S-D)S-D)S-DGJS;OLOYQ-'`" + "R=<%S=L*S]T,T=\\.TM`/TM`/T^$0T^$0T^$0U.(1U.(1U.(1U>,2UN03UN03UN03" + "UN03U^44U^44V.85U^44V.85V.85V.85V.85V.85V.85V.85V.85V.85V.85V><6" + "V><6VN@7V^D8WNP;XN`?Y?,CY_8EZ?@HZ_HJ[/LK[?PK[?PL[?PL[?PL[?PL[?PK" + "[?PK[?PK[?PK[?PK[?PK[?PK[/LK[/LK[/LK[?PK[/LJ[/LJ[/LK[/LK[/LK[/LK" + "[/LJ[/LK[/LK[/LK[/LK[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ" + "[/LJ[/LJY?0CT-X-S-H)U.(1X_(A[/LJ[?PK[/LJZO@HTM\\.SML*U>,2U^44UN03" + "UN03UN03UN03UN03UN03U>,2U>03U>,2U>,2U>,2U>,2U>,2U>,2U.(1U.(1U.(1" + "U.(1U.(1U.(1U.(1T^(1T^$1T=\\/R-8$N,3QNL;RT^$.Y_8EZ?@GZODHZODIZ_HI" + "ZODIZODIZODIZODIZODHZODHZODHZODHZ?@HZODHZ?@HZ?@HZ?@HZ?@HZ?@GZ?@G" + "Z?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ/<6V><6VN@7V^D8V^D8W.H:W^TX>\\@X>\\@X.X?W^T>W^T>WNP=WNP=WNP=" + "W>PLLP=WNP=W>LLL,3V><8V^H:W.L;V^H:W.H:" + "V^H:V^H:W.H:W.H:V^H:V^H:V^H:V^H:V^D9V^D9V^D9V^D9V^D:V^D9V^D9V^D9" + "VNH:VND:VND9VND9VND9VND9VND9V^D9VND9VND9VND9VND9VND9VN@8VN@9VN@8" + "VN@9VN@9V>@8V>@8VN@8VN@8VN@8VN@8VN@8V><7V><7V><7V><7V><7V><7V>87" + "V.86V.86V><7V.86V><7V.86V.86V.86V.86V.86V.86V.86V.85U^45U^45UN04" + "S]T.C)C(Q]+^X>\\?V.86U^45U^45U^45U^45U^45U^45U^45U^45UN04U^45UN04" + "UN04UN04UN04UN04UN03UN03U>,3U>,3U>,3U>,3U>,3U>,3U.(2T^$1TM`0S]T-" + "S=L*R=@'Q=,\"P,W]O,GXK;GF)S-D)S-D)S-D)S-D)S-D)S-D)S-DI;+?O<6V><6" + "V.85V><6V><6V><6VN@7W.H9X.X=X_(AYO0DZ/,2S-D(T^$0" + "U^44UN04U>,2UN03U>03UN03U>,2U>,2U>,2U>,2U>,2U>,2U.(2U.(1U.(1U.(1" + "U.(1U.(1T^$1TM`0R]D(O,GWK;KGP,SZVND7Y_8EZ/\\@WNX?U^87RMD)QM0$" + "Q=0$Q-(\"PL_`O<7V^D9V^H:V^H:W.H:" + "V^H:V^H:W.H:V^H:V^H:V^H:VND:V^H:V^H:V^D9V^H:V^D9V^D9VND9V^D9VND9" + "VND9VND9VND9VND9VND9VND9VND9VND9VND9VND9VN@9VN@9VN@8VN@8V>@8VN@8" + "VN@9VN@9VN@8V>@8V>@8VN@8VN@8V><8V><7V><7V><7V><7V><7V><7V><7V><7" + "V>87V><7V.86V.86V.86V.86V.86V.86V.86V.86V.86V.86V.86U^45U^44T^$2" + "F:;7LKSFX_(BVN<7U^45U^45U^45U^45U^45U^45U^45U^45U^45UN04UN04UN04" + "UN04UN04UN04UN03UN04U>,3U>,3U>,3U>,3U>,3U.(2U.(2U.(2T^$1T=\\/S]T-" + "S=L*R=<&Q-(!P,W]O,CXK;KG)S-D)S-D)S-D)S-D)S-D)S-D)S-DJ[GFO,2U>,2U>,2UN03" + "UN03UN03U^44U^44U^44V.85V.85V.85V.85V.85V.85V.85V.85V.85V><6V><6" + "V><6V><6V.85V><6V><6V><6VN@7V^D8WNP;X>\\?Y?,BY_8EZ?@HZ_HJ[/LJ[?PK" + "[?PK[?PL[?PK[?PK[?PK[?PK[?PK[?PK[?PK[/LK[?PK[/LK[/LK[?PK[/LK[/LK" + "[/LK[/LJ[/LK[/LJ[/LK[/LK[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ" + "[/LJ[/LJ[/LJ[/LJ[/LJY_8EU>,2S=L*TM`/WNT03U>03U>,2U>,2U.(1U>,2U>,2U>,2U>,2U.(2U.(2U.(1U.(1" + "T^$1S]T,PL_^K[OIJ[CDR-8$X_(AZ?@GZODHZ?BY?!E:+.T^(0Y/(AY/(AY/(AY/(AY/,BY/,BY/,BY/,BY?,B" + "Y/,BY/,BY/,BY/(BY/,BY/,BY/,BY/(AY/,BY/,BY/,BY/(AY/(AX_(AX>\\>W.H9" + "UN,2S]T+Q]4#Q-#_P\\_^Q-#_P\\_^Q-#_Q-#_Q='`Q='`Q='`QM'`Q='`QM,!QM,!" + "QM,!QM,!Q],!Q]0\"QM,!QM,!QM,!Q='_O,?TL[_LS-D'S=H'R-4\"R-4\"R-4\"R-4#" + "R-4\"R-4\"R-4\"R-4\"R-4\"R-4\"R-4\"R-4\"R-4#R-4#R=8#R=8#R-4#R=8#R=8#R=8#" + "R-4\"R-4\"R-4\"R-4#0$Q\\)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D=X6YTM\\+" + "V.85V><6VN@7VN@7V^D8W.H9W>L;W^T=X.X>X>\\?X>\\?W^T>WNP=WNP=WNP=W>L<" + "W>LP=W>LLLLL@:<7^RK;GGP<[_R-8%SMP,R-8&PL_`" + "PL_`PL_`PL_`P]$!P]$!Q=,#Q=,#P<[_Q-(\"RM@(T=\\0V^D:V>D9U>05Q=,#N\\GZ" + "LL#PHJ_@B9?(;WRM2E>(*S=G)C)A45R)HJS8SMP,U.(2V.86VND9V^H:V^L;W.H:" + "V^H:V^H:V^H:V^H:V^H:V^H:VND:V^H:V^D9V^D9V^D9V^D9VND9VND9VND9VND9" + "VND9VND9VND9VND9VND9VND9V^D9VND9VND9VN@9VN@8VND9VN@8VN@8VN@8VN@8" + "V>@8V>@8V>@8VN@8V>@8VN@8V><7V><7VN@8V><7V><7V><7V><7V><7V><7V><7" + "V><7V><7V.86V.86V.86V.86V.86U^45V.86V.86V.86V.86U^45U^45U.(2IK3F" + "G:G6XO$@V^D9V.86U^45U^45U^45U^45U^45U^45U^45UN04U^45UN04U^45UN04" + "UN04UN04UN04U>,3UN04U>,3U>,3U>,3U>,3U.(2U>,3U.(2U.(2TM`0T-X.SMP," + "S-H)R-8%Q-(!O\\S\\N\\CWK;KH)S-D)S-D)S-D)S-D)S-D)S-D-$!QL;[KO,2U>,2UN03UN03" + "UN03UN03U^44U^44V.85V.85V.85V.85V.85V.85V.85V.85V.85V.85V><6V><6" + "V><6V><6V><6V><6V><6V><6V.85V><6VN@7V^D8W>L:X.X=X_(AYO4DZ/,2U>,2U>,2U>,2U>,2U.(2U.(2U.(2U.(1T=`/R-8%" + "M\\3SIK+>L;WIT=\\-YO4DZ?@GZODHZ_HIZODHZODHZ/X=" + "T^$/N,3REZ//B)2`L\\'OX.\\>Y/(AY/(AY/(AY/,BY/,BY/,BY/(AY/,BY?0CY_8E" + "Y?0CY/(AY/,BY/,BY/,BY/,BY/,BY/,BY/(AY/,BY/,BY/(AX_$@X.X=VN@7U.$0" + "S-H(QM,!P\\_^P\\_^P\\_^Q,__Q-#_Q-#_Q='`Q='`Q='`Q='`QM(!Q='`QM,!QM,!" + "QM,!QM,!QM,!QM,!QM,!Q='`Q-#_M\\+PN,3RS]P)S-@&R-4\"R-4\"R-4\"R-4\"R-4\"" + "R-4#R-4\"R-4\"R-4\"R=8#R-4\"R=4#R=8#R-4\"R=8#R-4#R-4\"R-4#R=8#R=8#R-4\"" + "R-4\"R-4\"Q]0!O,CW)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D5V:8SML(" + "V.85V><6VN@7VN@7V^D8V^D9W>L:W^T=X.X>X.X?X.X?W^T>WNP=WNP=WNP=W>L<" + "W>LLLLLLLL04U>04RM@)N\\G[>XF\\" + "/TIZ&B55%B)2&B94(\"Q;,#MJ256#?8BTN\\?TT=\\/U>,3V.<7VND9V^H:V^L;V^H:" + "V^H:V^H:W.H:V^H:V^H:V^H:VNH:V^H:V^D9VND9V^D9V^D9V^D9VND9VND9VND9" + "VND9VND9VND9VND9VND9VND9V^D9VN@9VND9VND9VND9V>@8VN@8VN@8VN@8VN@8" + "V>@8V>@8V>@8VN@8V>@8VN@8VN@8V><7V><7V><7V><7V><7V><7V><7V><7V><7" + "V><7V><7V.86V.86V.86V.86V.86U^45V.86V.86V.86U^45U^45U>,3L+[OD9O)" + "W^T,3U>,3U>,3U>,3U>,3U>,3U>,3U.(2U.(2T^$1TM`0T-X-SMP," + "R]D(Q]4%Q-(!O\\S\\NL?WKKKI)S-D)S-D)S-D)S-D)S-D)S-D2U>(L;_JO,GXPL_^" + "Q]4#RM@'S=L*T-X-TM`/TM`/T^$0T^$0U.(1T^$0U.(1U.(1U>,2U>,2UN03UN03" + "UN03U^44U^44U^44U^44V.85V.85V.85V.85V.85V.85V.85V.85V.85V><6V><6" + "V><6V><6V><6V><6V><6V><6V><6V><6V><6V><6VN@7VN@7W.H9WNP;XN`?Y?,C" + "Y_8FZ?@GZODI[/LJ[/LK[?PK[?PK[?PK[?PK[/LK[?PK[?PK[?PK[/LJ[/LK[/LK" + "[/LK[/LK[/LK[/LK[/LJ[?PK[/LK[/LJ[/LJ[/LK[/LJ[/LK[/LK[/LJ[/LJ[/LJ" + "[/LJ[/LJ[/LJ[/LJ[/LJ[/LJ[/LJZ_HIZODHWNTP;SMP+U.$1UN03U>,2U.(2U.(2U.(2T^(1S]P,P<[^K[SJH[#<" + "M\\7RV.85Z/C9G&F:;3T-\\.X_(AY/(AY/(AY/(AY/(AY/,BY/,BY/,BY/,BY/,BZ/\\>Y/,BY/,BY/,BY/,BY/,BY/,BY/(BY/(AXN`?WNP;V.85TM\\-RM<%" + "Q-#_P\\_^P\\_^P\\_^P\\_^Q-#_Q='`Q='`Q='`Q='`Q='`QM,!QM,!QM,!QM,!QM,!" + "QM,!QM,!QM,!QM,!Q='`P\\[\\L[[KO\\OYS]T*RM<$R-4#R=8#R-4\"R-4\"R-4\"R=8#" + "R-4\"R=8#R=8#R=8#R=8#R=8#R=8#R-4\"R=8#R=8#R=8#R-4\"R-4\"R=8#R=8#R-4\"" + "R-4\"R-4\"R-4\"H:W<)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D,3YOR-4\"" + "V.85V><6V><6V><7VN@7V^D8W.H9WNPX.X>X.X?W^T>W^T>WNP=WNP=W>L<" + "W>LLL@8VND9V^H:V^H;V^H:" + "V^H:V^H:V^H:V^H:V^D9V^H:VNH:VND:VND9VND9VND9V^D9VND9VND9VND9VND9" + "VND9VND9VND9VND9VND9VND9VN@9VN@8VN@9VN@9VN@9V>@8VN@8VN@8VN@8VN@8" + "V>@8V><8V>@8VN@8V>@8VN@8V><7V><7V><7V><7V><7V><7V><7V><7V><7V><7" + "V><7V.86V.86V.86V.86V.86V.86V.86V.86V.86V.86U^45U>,3M,'SBI7#W.H8" + "W^T=V.86U^45U^45U^45U^45U^45U^45U^45U^45UN04UN04UN04UN04UN04UN04" + "UN04UN03UN04U>,3U>,3U>,3U>,3U.(2U.(2U.(2U.(2U.(2TM`0T=\\/S]T-S=L+" + "RM@(Q]4$P]#`OLO[NL?VK[SI)S-D)S-D)S-D)S-D)S-D)S-D6F>7L;[JN\\CWP<[]" + "Q=,\"R=<&S=L*S]T,T=\\.TM`/T^$0T^$0U.(1T^$0U.(1U.(1U>,2U>,2U>,2UN03" + "UN03U^44U^44U^44U^44U^44V.85V.85V.85V.85V.85V.85V.85V><6V><6V><6" + "V><6V><6V><6V.85V><6V><6V><6V><6V><6V><6VN@7V><6VN@7V^D8V^D8WNL:" + "X>\\>Y/,BYO4EZ/(.M?(BSAY3!J+7D" + "Q-(!S=L*UN03Y?0CZ_HJV^H9S=L*U.,2U>,2TM`0RM@'N\\?WJ+7BI+'>PL_]X.X=" + "Z?H9S=H)LKWJEJ+." + "CYS(OLS[X>`?X_(AY/(AY/(AY/(AY/,BY/,BY/(AY/,BY/,BY/,BY/(AW^TH9UN,2S]P+R-4#Q-#_" + "P\\_^P\\_^P\\_^P\\_^Q-#_Q-#_Q-#_Q='`Q='`Q='`Q='`QM,!QM,!QM,!QM,!QM0\"" + "QM,!QM,!Q='`Q-#_P,SZL+SIQM0!S]P)R=8#R-4\"R-4\"R-4\"R-4\"R=8#R=8#R-4\"" + "R=8#R-4\"R-4\"R-4#R-4#R-4\"R=8#R=8#R=8#R=8#R-4#R-4\"R=8#R-4\"R-4\"R-4\"" + "R-4\"R-4\"R-4\"9W.C)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-DN<3R" + "V.85V><6V><6V><7VN@7V^D8W.H9W>L;W^T=W^T=W^T>WNP=WNP=WNP=W>LL<" + "W>LLSJ;?EOLO[Q]4$R]D)SMP+S]T-TM`0T^(2UN45V.<8VN@8V^H:V^H:V^H:V^H:" + "V^H:V^H:V^H:V^D:V^D9V^D9VND9VNH:VND9VND9VND9VND9VND9VND9VN@9VN@9" + "VND9VND9VND9VN@9VND9VND9VN@9VN@9VN@8VN@9V>@9VN@9VN@8VN@8VN@8V>@8" + "V>@8V><8V><7V><7V><7V><7V><7V><7V><7V><7V><7V><7V><7V><7V><7V.86" + "V><7V.86V.86V.86V.86V.86V.86V.86U^45V.86U^45U>,3ML/UBY;$RM<&U.(2" + "VN@8V.86V.86U^45U^45U^45U^45U^45UN04UN04UN04UN04UN04UN04UN04UN04" + "U>,3U>,3UN04U>,3U>,3U>,3U>,3U>,2U>,3U.(2U.(2T^$1TM`0T=\\/S]T-S=L+" + "RM@'QM0#P]#`OLO[NL?VL;[J)S-D)S-D)S-D)S-D)S-D)S-D:'2DLK[JN\\CWP<[]" + "Q=,!R=<%S-H)S]T,T=\\.T^$0T^$0T^$0T^$0U.(1U.(1U.(1U>,2U>,2U>,2UN03" + "UN03U^44U^44U^44U^44U^44V.85V.85V.85V><6V.85V.85V.85V.85V><6V><6" + "V><6V><6V><6V><6V><6V><6V><6V><6V><6V><6V><6VN@7VN@7VN@7VN@7V^@7" + "V^D8W.H9X.X=X_$AY?0CZ/9W*?9W&=;WJF?(BTB9;%F:73" + "GJO8KKOJQ-(!S-L)V.<5Z/JK?ERMD&Y/,BZ?@GZODH" + "Z_HIZ_HIZ_HIZ_HIZ_HIZ_HJZ_HIZ_HIZ_HIZODIZODIZODIZODIZODIZODIZODI" + "ZODIZODIZODHZODHZODHZODHZODHZODHZODHZ?@HZ?@HZ?@HZ?@HZ?@HZ?@GZ?@G" + "Z?@GZ?@GZ?@GZ?@GZ/" + "V^D7W>L:Y/(AY/,BY/,BY/,BY/,BY/(AX_(AX.X=V^D8U.$0S-H'QM,!P\\_^P\\_^" + "P\\_^P\\_^P\\_^Q-#_Q-#_Q-#_Q='`Q='`Q=,!Q='`QM,!QM,!QM,!QM,!QM,!Q]0\"" + "QM,!Q='`QM'`O,CULK[KR]@&S=H(R=8#R=8#R-4\"R-4#R-4#R-4\"R-4\"R=8#R=8#" + "R-4\"R-4#R=8#R-4\"R-4\"R=8#R=8#R-4\"R=8#R-4#R-4\"R=8#R-4\"R-4\"R-4\"R-4\"" + "R-4\"R-4\"K;GG*C9G)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-DHZ_>" + "V.85V><6V.86V>@7VN@7VN@8V^D9W>L;WNPW^T>WNP=WNP=W>L<" + "W.H;W.L;W.L;W.L;V^H;V^H;W.H;W.LL47;GNMHJ[HJ_" + "HJS8P<[^R]D(T-X.TM`0U.(2U>03UN45V.86V.<7VN@9V^D9V^H:V^H:V^H:V^H:" + "V^H:V^H:V^H:V^H:VND9VND9VND:VND9VND9VND9VND9VND9VND9VND9VND9VN@8" + "VND9VN@9VN@8VN@9VN@9VN@9VN@9VN@8V>@8VN@8VN@8VN@8VN@8V>@8V><8V><8" + "V>@8V><7V><7V><7V><7V><7V><8V><7V><7V><7V><7V><7V><7V><7V.86V.86" + "V.86V.86V.86V.86V.86V.86V.86V.86U^45UN04U>,3M<+TC9C&RM@'TM`0S]T-" + "U>,2V><7U^45U^45U^45U^45U^45U^45UN04UN04UN04UN04U>,3U>,3U>,3U>,3" + "U>,3UN04U>,3U>,3U>,3U>,3U>,3U>,2U.(2U.(2T^$1TM`0T=\\/T-X-SMP+S-H)" + "RM@'QM0#PL__OLOZNL?VLK_L*S=H)S-D)S-D)S-D)S-D)S-D=H*QLK_KN\\CVP,W\\" + "Q-(!R=<%S-H)S]T,T=\\.TM`/T^$0T^$0T^$0U.(1U.(1U.(1U>,2U>,2U>,2UN03" + "UN03UN03UN03U^44U^44U^44V.85V.85V><6V.85V.85V.85V.85V.85V.85V><6" + "V><6V><6V><6V><6V><6V><6V><6V><6V><6V><6VN@7V><6V><6VN@7VN@7VN@7" + "VN@7VN@7V^D8W.H9W^T02Y/,B" + "Y/,BY/,BY/,BY/,BY/,BY/,BY/,BY/(AY/(AY/,BY/,BY/,BY/,BY/,BY/,BY/,B" + "Y/(AY/,BY/,BY/,BY/,BY/,BY/(AX_$@W^T85TM`/RM@&Q-'_P\\_^P\\_^P\\_^" + "P\\_^Q-#_Q-#_Q-#_Q-#_Q='`Q='`Q='`Q='`QM,!QM,!QM,!QM,!QM,!QM,!QM,!" + "Q='`Q-#^N<3QML/PSMP)R]@%R-4\"R=8#R-4\"R-4\"R-4\"R-4\"R-4\"R-4\"R=8#R=8#" + "R-4\"R-4\"R=8#R=8#R=8#R=8#R-4\"R-4\"R=8#R-4#R-4\"R-4\"R-4\"R-4\"R-4\"R-4\"" + "R-4\"QM+`7&B8)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-DC)C)" + "U^02V><6V><6V><6VN@7VN@8V^D9W.H:WNPW^T>WNP=W>LL<" + "W.H;W.H;W.H;W.H;W.H;W.H;W.H;W>LL<8V>@8VN@8V^D9V^D:V^D:V^H:V^H:V^H:V^H:" + "V^H:VND9V^D:V^H:VND9VND:VND9VND:VND9VND9VND9VND9VND9VN@9VND9VND9" + "VN@9VN@8VN@9VN@9VN@9VN@9VN@9VN@8VN@8VN@8VN@9VN@8V>@8V><8V>@8V>@8" + "V>@8V><7V><6V.86V.86V><7V><7V><7V><7V><7V><7V><7V><7V><7V><7V.86" + "V.86V.86V.86V.86V.86V.86V.86U^45UN04U.(2L+WOC9G'R]@'T^$1TM`0TM`0" + "S]T-V.85V.86U^45U^45U^45U^45U^45UN04UN04UN04UN04UN04U>,3U>,3U>,3" + "UN04U>,3U>,3U>,2U>,3U>,3U>,3U.(2U.(2T^$1T^$1TM`0T=\\/T-X-SMP+S-H)" + "R=<&Q=,\"P<[^O,2U>,2U>,2UN03" + "UN03UN03UN03U^44U^44V.85V.85U^44U^44U^44V.85V.85V><6V><6V><6V><6" + "V><6V><6V><6V><6VN@7V><6V><6VN@7V><6V><6V><6V><6VN@7VN@7VN@7VN@7" + "VN@7VN@7VN@7VN@7V^D8W.H9WNP;X>\\>Y/(AYO0DZ/L:T=\\-O,CVHZ_;DZ'+J+;CTN$/Y/,BY/,BY/,B" + "Y/(AY/,BY/,BY/,BY/,BY/,BY/,BY/,BY/,BY/,BY/,BY/,BY/,BY/,BY/,BY/,B" + "Y/,BY/,BY/,BY/,BY/,BY/(AXO$@WNP;U^44T-X,R=8$Q-#_PL[]P\\_^P\\_^P\\_^" + "Q-#_Q-#_Q-#_Q-#_Q='`Q='`Q='`Q='`QM,!QM,!QM,!QM,!QM,!QM+`QM,!QM+`" + "P\\_]M+_LO<6V><7VN@7VN@8V^D9V^D9WNPLLL04V.<7VND9V^D:V^H:V^H:V^H:V^H:VNH:V^H:V^H:V^H:V^H:" + "V^H:VND:V^D:V^H:VND:VND9VND9VND9VND9VND9VND9VND9VN@9VN@9VND9VN@9" + "V>@8VN@8VN@9VND9VN@8VN@8VN@8VN@8VN@8VN@8VN@8V>@8VN@8V><8V><7V><7" + "V><7V><7V><6V.85V.85V><7V><7V><8V><7V><7V><7V><7V><7V.86V><7V.86" + "V.86V.86V.86V.86V.86V.86U^45UN04T^$1J+7GD9W+S=H)T^$1TM`0TM`0T^$1" + "TM`0T-X.V><7U^45UN04U^45UN04U^45U^44UN04UN04UN04U>,3U>,3U>,3UN04" + "U>,3U>,3U>,3U>,3U>,3U>,3U.(2U.(2U.(2T^$1T^$1TM`0T=\\/S]T-S=L+R]D(" + "R-8&Q-,\"P<[^O,GYN,;TM,'N+#AI)S-D)S-D)S-D)S-D)S-DD)S)LK_LN,2U>,2U>,2UN03" + "UN03UN03UN03U^44U^44U^44V.85UN03R]D'T=\\-U>,2U^43V.85V><6V><6V><6" + "V><6V><6V><6V><6V><6V><6VN@7VN@7VN@7VN@7VN@7VN@7VN@7VN@7VN@7VN@7" + "VN@7VN@7VN@7VN@7V^D8V^D8V^D8W.D9W>L:X.X=X_$AY?0DZ/86V><6V><6VN@7VN@8VN@8V^D9W>L;WNPLL<" + "W.H;W.H;V^H;V^D:W.H;W.H;W.H;W.LL04V><7V^H:W.H;W.L;W.L;V^L;V^H;V^L;V^L;V^H:V^H:V^H:" + "V^H:VND:V^D:VND9VND9VND9VND9VND9VND9VN@9VND9VND9VND9VN@9VN@9VN@9" + "VN@9VN@8VN@8VN@8VN@8VN@8VN@8VN@8VN@8VN@8VN@8VN@8VN@8V><7V><7V><7" + "V><7V><7V><7V><6V><6V><7V><7V><7V><7V><7V><7V><7V><7V><7V><7V><7" + "V.86V.86V.86V.86V.86U^45U^45S]T.G*G:FJ73S]T,TM`0T=\\/TM`0T^$1T^$1" + "T^$1T=\\/T^$0V><7U^45U^45UN04UN04UN04UN04UN04UN04UN04U>,3UN03U>,3" + "UN03U>,3U>,3U>,3U>,3U.(2U>,3U.(2U.(2T^$1T^$1TM`0T-X.S]T-S=L+R]D(" + "R-8%Q-(!P,W]O,GYN,7TM<+O+CIK)S-D)S-D)S-D)S-D)S-DDY[+LK_MN<;TOLOZ" + "PL_^Q]4#RM@'S=L*S]T,T=\\.T^$0U.(1U.(1U.(1U.(1U.(1U.(1U>,2U>,2UN03" + "UN03UN03U^44U^44U^44U^44V.85U>,3S-D(T^$0T-\\-TM`/UN03U^44V.85V><6" + "V><6V><6V><6VN@7V><6VN@7V><6VN@7VN@7VN@7VN@7VN@7VN@7VN@7VN@7VN@7" + "VN@7V^D8V^D8VN@7VN@7V^D8V^D8V^D8V^D8V^D8W.H:W^T\\>P]#_R-4#R]D&RM<%Q]0\"I[3C;7FH" + "8&N9>H6SDIS(IK+>R]D&V^H9T^$0S=L*SMP+T^$0W>L:YO4D[/LJ[?PK[/LJZ_HJ" + "Z_HIZ_HJZ_HIZ_HIZ_HIZ_HIZODIZ_HIZODHZODIZODHZODIZODIZODIZODHZODI" + "ZODIZODHZODIZODHZODHZODHZ?@HZODHZODHZ?@HZ?@HZ?@GZ?@GZ?@GZ?@GZ?@G" + "Z?@GZ?@GZ?@GZ?@GZ/X=V^D8U.$0S=H(QM,!P\\_^PL[]P\\_^P\\_^P\\_^Q-#_Q-#_" + "Q-#_Q='`Q='`Q='`Q='`Q='`QM,!QM,!Q='`QM,!QM,!QM,!Q='`Q-#_OLCVL+SH" + "R-8\"S=H'R-4\"Q]0!R-4#R-4\"R=8#R-4\"R-4\"R-4\"R=8#R=8#R=8#R=8#R=8#R=8#" + "R-4\"R-4\"R-4\"R=8#R-4\"R-4\"R=8#R-4\"R=8#R-4\"Q]0!R-4\"R-4\"R=8#RM<$RM<$" + "?HFY)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D+SML" + "R-0!V><6V><6V><6V><6VN@7VN@8V^D8W.H:W>L;WNPLP,3V><7V^H:W.L;W.L;W.L;W.L;V^L;V^H:V^H:VNH:VNH:VNH:" + "V^H:V^D:V^D:VND:VND:VND:VND9VND9VND9VND9VN@9VND9V>@9VN@9VN@9VN@9" + "VN@8VN@9VN@8VN@8VN@8VN@8VN@8VN@8VN@8VN@8VN@8VN@8V><7V><7V><7V><7" + "V.86V.86V><7V><7V><7V><7V><7V><7V><7V><7V><7V><7V><7V><7V><7V.86" + "V.86V.86V.86V.86U^45UN04Q]8&CIO+IK+@T=\\.TM`0T=\\/TM`0T^$1T^$1T^$1" + "T^$1T^$1S]X-U>,3V.86UN04UN04U>,3UN04UN04U>,3U>,3U>,3U>,3U>,3U>,3" + "U>,3U>,3U>,3U.(2U.(2U.(2U.(2U.(2T^$1T^$1TM`0T=\\/T-X.S]T,S-H*R]D(" + "Q]4$Q-(!P,W]O,GXN,7TML+O-T-S)S-D)S-D)S-D)S-D)S-DDI[+LK_LN,;TO,2UN03UN03" + "UN03UN03U^44U^44U^44U^44U^44U.(1P<[^Q-#`S=L*U.(1TM`/U.(1UN03V.44" + "V><6V><6VN@7VN@7VN@7VN@7VN@7VN@7VN@7V><6VN@7VN@7VN@7V^D8V^D8VN@7" + "V^D8V^D8V^D8VN@7V^D8V^D8V^D8V^D8V^D8V^D8V^D8V^D8W.H9WNP;XN`?Y/,B" + "YO4EZ?@HZ_HI[/LJ[/LK[?PK[?PK[/LK[/LK[/LK[/LK[/LK[/LK[/LK[/LK[/LK" + "[/LK[/LK[/LK[/LK[/LK[/LK[/LJZODHRM@&L\\#MO,CVQ]0!S]P*T]`.R]D'DY_." + "<7RFH*O5T-X,Y?,BZ/,2SMP+T=\\.U^44W^T<6V><6V><6VN@7VN@7VN@7V^D8W.H9W>L;WNPL<" + "W.H;W.H;W.H;W.H;W.H;W.H;W.H;W>LLPLLM,#MR=<'T^$1U^45VND9W.H:W.L;V^H:W.L;V^H:V^H:V^H;V^H:V^H:V^H:" + "V^D:V^D:V^D:VND:VND9VND9VND9VND9VN@9VND9VN@9VN@9VND9VN@9VN@8VN@9" + "VN@9VN@8VN@8VN@8VN@8VN@8VN@8VN@8VN@8VN@8VN@8VN@8V><7V><7V.86U^45" + "U^45V.86V.86V.86V><7V><7V><7V><7V><7V><7V><7V><7V><7V><7V><7V><7" + "V.86V.86V.86U^45U.,3N,7WAY/\"ML+QTM`0T=\\/T=\\/T=\\/TM`0TM`0TM`0T^$1" + "T^$1T^$1T^$1S]T-V.86U^45UN04UN04UN04UN04UN03UN04U>,3U>,3U>,3U>,3" + "U>,3U>,3U.(2U>,3U.(2U.(2U.(2T^$1T^$1TM`0TM`0T=\\/S]T-SMP,S-H)RM@'" + "QM0#P]#`O\\S\\N\\CWM\\7SM\\/P0$M[)S-D)S-D)S-D)S-D)S-DC9G&LK_KM\\7RO,GW" + "P,W\\Q=,!R=<%S-H)S]T,T=\\-TM`/T^$0T^$0U.(1U.(1U.(1U.(1U.(1U>,2UN03" + "UN03UN03U^44U^44U^44U^44V.85T^$0P<[^P<[^PL__Q=,\"S]T,U.,2T^$0U>,2" + "U^44V><6VN@6VN@7VN@7VN@7V^D8VN@7VN@7VN@7VN@7V^D8V^D8V^D8V^D8V^D8" + "V^D8V^D8VN@7V^D8V^D8V^D8V^D8V^D8V^D8V^D8V^D8V^D8V^D8V^D8W.H9WNP;" + "X>\\>X_(AYO4EZ/P;U.(1S]T,T=\\.UN03" + "W^TL:U.(0QM+`M,'N" + "I+#>GJO9ML/QT=`/X_(AY/,BY?,BY?0CY/,BY?0CY?,BY?0CY?0CY?,BY?0CY?0C" + "YO4DY_8EY?0CY/,BY?,BY?,BY/,BY/,BY/,BY/,BY/,BY/,BY/,BY/,BY/,BY/,B" + "Y/,BX_$@W^TL:U^44S]P+Q]0\"P\\_^PL[]P\\_^P\\_^P\\_^P\\_^P\\_^Q-#_Q-#_Q-#_Q-#_" + "Q='`Q='`Q='`Q='`QM,!QM,!QM,!Q='`Q='`Q-#_PLW[L;SHP,W[S]P*R=8#R-4\"" + "R-4\"R-4\"R-4\"R-4\"R-4\"R-4\"R-4#R-4\"R-4\"R-4\"R=8#R-4\"R-4\"R-4\"R=8#R=8#" + "R-4\"R=8#R=8#R-4\"R-4\"R-4\"R-4\"R-4\"R-4\"R-4\"RM8#R=8#R=8#R-0\"O\\KX.45U" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + "B93$V>84V><6V><6V><6V><7VN@7VN@8V^D9W.H:WNPPLLLL<" + "W>L<8V><8V.87U^86U.05=86[<7V><7V.86T^(3M<+Q" + "O<7V><7V><7V><7V><7V><7V><7V><7V><7V><7V><7V.86U^45" + "U^45U>,3O,G[BI;'I;#?SMP+T=\\/T-X.T=\\/T=\\/TM`0T=\\/TM`0TM`0TM`0TM`0" + "T^$1T^$1TM`0T^$1T=\\/U.(2V><7UN04U>,3U>,3U>,3U>,3U.(2U.(2U.(2U.(2" + "U>,3U.(2U.(2U.(2U.(2U.(2T^$1T^$1TM`0TM`0T=\\/T-X-SMP,S=L+R]D)R-8%" + "Q=,\"PL__OLO[NL?VML3RML'N0$MZ)S-D)S-D)S-D)S-D)S-D?XFWM<#LKKKGI[/<" + "N\\CUQ-'`R=<%S-H)SMP+T=X-TM`/T^$0U.(1U.(1U.(1U>,2U.(1U>,2UN03UN03" + "UN03UN03UN03U^44U^44U^44U^44S]T,P<[^P<[^P<[^P<[^P<[^PL__P]#`R-8$" + "TM`/U.(1TM`.UN03V.85VN@7V^D8V^D8V^D8V^D8V^D8V^D8V^D8V^D8V^D8V^D8" + "V^D8W.H9W.H9W.H9W.H9W.H9W.H9V^D8V^D8V^D8V^D8V^D8V^D8V^D8V^D8V^D8" + "V^D8W.H9W.H9W>L:W^T,2SMP+S=L*T=\\.U^44X.X>Y_8EZ_HJ[?PK[/LJZ_HIZODHZODHZODH" + "ZODHZODHZODHZODHZODHZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@G" + "Z?@GZ/<6T=X-Q='`M\\/QJK?EI;+@M,'PRM@'WNT\\>" + "Y?,CXN`?WNP;V.85XN`?Y/,BY/,BY/,BY/,BY/,BY/,BY/,BY/,BY/,BY/(AXN`?" + "W.H9UN,2S=H)QM,!P\\_^PL[]PL[]P\\_^P\\_^P\\_^Q-#_P\\_^Q-#_Q-#_Q='`Q='`" + "Q-#_Q='`QM,!Q='`Q='`QM,!QM,!Q='`Q-#_OLGWK[KGQM+`SML(R-4\"R-4\"R-4\"" + "R-4\"R-4\"R-4\"R-4\"R-4\"R-4\"R-4\"R-4\"R-4\"R-4\"R-4\"R=8#R-4\"R-4\"R-4\"R-4\"" + "R-4\"R-4\"R-4\"R-4\"R-4\"R-4\"R-4\"Q]0!R-4\"R=8#R-4\"R-4\"R-0\"Q]0!F:33)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ";GJLU>(0V><6V><6V><6V><7V><7VN@7V^D9W.H:W>L;W>PLLL;W>L<" + "W.L;W.L;W.H;V^H:V^D:V^D:V^H:V^H;W.H;W.H;W.H;W.H;W.L;W.H;W.H;W.H;" + "V^D:VN@9VN@9V>@8U^87E:;=9W.@J+7CM\\3SL;WNGJO;CIO+=8*S3%B*)C%A.4-O" + "?XJUM\\/RQ=,#M<3UGZW>I+#@Q=,!V.86V^D:VNH:VNH:V^H:V^D:V^H:V^H:VND:" + "V^H:VND9VND:VNH:VN@9VND9VND9VN@9VN@9VND9VN@9VN@9VN@9VN@9V>@8VN@9" + "VN@9VN@8VN@8VN@8VN@8VN@8VN@8VN@8V>@8V><7V><7V><7V.86U^45O\\W_U>(0" + "V.87O\\W^M<#MUN03V.86V><7V><7V><7V><7V><7V><7V><7V.<7V.86V.86UN05" + "R=<(G*G:C)C&OLKYTM`/T-X-T-X.T-X.T=\\/T=\\/T=\\/T=\\/TM`0TM`0TM`0TM`0" + "TM`0TM`0TM`0TM`0T^$1T-X.U^45U^45U>,3U>,3U>,3U>,3U.(2U.(2U.(2U.(2" + "U.(2U.(2U.(2U.(2U.(2U.(2T^$1T^$1TM`0T=\\/T=\\/T-X-SMP,S=L+R]D(R-8%" + "Q-(!P<[^O(2U>,2U>,2U>,2UN03" + "UN03UN03UN03U^44U^44U^44U^44S=L*P<[^P<[^P<[^P<[^P<[^P<[^PL__P]#`" + "Q-(!RM@'U.(1T^$0TM`/U^44V><6VN@7V^D8V^D8V^D8V^D8W.H9V^D8W.H9W.H9" + "W.H9W.H9W.H9W.H9W.H9W.H9W.H9W.H9V^D8W.H9W.H9V^D8W.H9W.H9W.H9V^D8" + "V^D8V^D8V^D8V^D8W.H9W>L:W^T`?V><7T=\\.S-H)SMP+TM`/V.85X.X=Y_8EZ_DI[/LK[/LJ" + "Z_HIZODHZODHZODHZODHZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ/Y?0CY?0CY?0CY?0C" + "Y?0CY?0CY?0CY?0CY?0CY?0CY?0CY?,BY?,BY/,BY?,BY?0CY/,BY/,BY/,BY/,B" + "X>\\>W>L:U^03W^T\\>V^D8" + "U.$0R]D'Q='`P\\_^PL[]PL[]P\\_^P\\_^P\\_^P\\_^Q-#_Q-#_Q-#_Q='`Q='`Q='`" + "Q='`Q='`QM,!Q=,!Q='`Q='`Q='`Q-#_N\\;SL[[KRM@%S=H'R=4#R-0!R-4\"R-4\"" + "R-4\"R-4\"R-4\"R-4\"R-4\"R-4\"R-4\"R-4\"R-4\"R-4\"R-4\"R-4\"R-4\"R-4\"R-4\"Q]0!" + "Q]0!R-4\"R-4\"R-4\"R-4\"R-4\"R-0\"R-4\"R=8#R-0\"R-4\"Q]0!Q]+`Q]+`:'2D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + "35J-T=X,V>86V><6V><6V><6VN@7VN@7V^D8V^D9W>L;W>L;W>L;W.H;W>L;W.L;" + "W.H;W.H;V^H:V^H:V^D:V^H:V^H:V^H:V^H:V^H:V^H;W.H;W.H;W.H;W.H;W.H;" + "W.H;V^D:V^D:V^H:V^D:K\\+Z4%N*;'FH8FZ>4UZ//TI[+#=G*#)A0$IW='^KGJK8" + "ML/RPL__R]D)TM`0S]\\/O@8VND:V^H:VND:V^H:V^H:V^D:" + "V^D:VND:V^D:VND9VND9VN@9VN@9VN@9VND9VN@9VN@9VN@9VN@9VN@9VN@8VN@8" + "V>@8V>@9VN@8VN@8VN@8VN@8VN@8VN@8VN@8V>@8VN@8V><7V.86T^(4N\\CXVND9" + "S-L,Q-(\"O\\S]ML'LUN03V.86V><7V><7V><7V><7V><7V><7V.86U^45T-X.K+CI" + "AI/\"JK;ESMP+T=\\/S]T-S]T-T-X.T-X.T=\\/T=\\/T=\\/T=\\/TM`0TM`0T=\\/TM`0" + "TM`0TM`0TM`0TM`0TM`0TM`0T=\\/V><7UN04U>,3U.(2U.(2U.(2U.(2U.(2T^$1" + "U.(2U.(2U.(2U.(2U.(2T^$1T^$1T^$1TM`0T=\\/T=\\.S]T-SMP+S-H*RM@(R-8%" + "Q-(!P,W]O,2U>,2U>,2UN03UN03" + "UN03UN03U^44UN44U^44U^44U^44R]D(P<[^P,W]P<[^P<[^P<[^PL__PL__PL__" + "P]#`P]#`Q=,!R]D(U.(1TM`/T=\\.U^03V><5VN@7V^D8W.H9W.H9W.H9W.H9W.H9" + "W.H9W.H9W.H9W.H9W.H9W.H9W.H9W.H9W.H9W.H9W.H9W.H9W.H9W.H9W.H9W.H9" + "V^D8V^D8V^D8V^D8V^D8V^D8W.H9W.H9WNP;X>\\?Y/(BY_8EZ?@HZ_HI[/LK[?PK" + "[/LK[?PK[/LK[/LK[/LK[/LJY?0CO,3W.H9" + "X_$@Z/8FZODI[/LJ[/LJZODIZODHZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ/\\?W>L;V><6T]`/" + "RM<%O\\S[ML/PK;OHK;OHN<6V><6V><6V><6V><7VN@7V^D8V^D9W.H:W>L;W>L@8T=`1OLW^KKOLM<'QSMP+V><8VND9VND:VND9V^D:" + "VND9VND9VND9VN@9VND:VN@9VN@9VND9VN@9VN@9VN@9VN@9VN@9VN@9VN@9VN@8" + "V>@8V>@8VN@8VN@9VN@9V>@8VN@8VN@8VN@8V>@8V><7V.<7U^45P-$#SMP*UN46" + "Q-(\"P,W^PL_`O\\S]N<7V><7V><7V.86U^45T-\\/L;[OB97&G:G8" + "Q=,\"T=\\.SMP,S]T,S]T-T-X.T-X.T-X.T=\\/T=\\/T=\\/T=\\/T=\\/TM`0T=\\/TM`0" + "TM`0TM`0TM`0TM`0TM`0T^$1T=\\/U>,2V><7UN04U>,3U.(2U.(2U.(2T^$1T^$1" + "T^$1U.(2U.(2U.(2T^$1T^$1T^$1T^$1TM`0T=\\/T-X.S]T-S=L+R]D)R=<'Q]4$" + "P]#`P,W]O,2U>,2UN03UN03" + "UN03UN03UN43U^44U^44U^44UN03RM@'P,W]P<[^P,W]P,W]P<[^PL__PL__PL__" + "P]#`P]#`PL__Q-(!QM0#S=L*U>,2TM`/T^$/U^44V><6V^D7V^D8W.H9W.H9W.H9" + "W.H9W.H9W.H9W.H9W.H9W.H9W.H9W.H9W.H9W.H9W.H9W.H9W.H9V^D8W.H9W.H9" + "V^D8W.H9W.H9V^D8V^D8W.H9V^D8V^D8W.H9W.H9WNP;X>\\?Y/(BYO4EZ?@H[/LK" + "[/LK[?PK[?PK[?PK[/LK[/LKZ_HIZ_HIZ_HJ[/LJ[/LJ[/LK[/LK[/LK[/LK[/LJ" + "[/LK[/LJ[/LJ[/LJ[/LJ[/LJ[/LJZ_HIZ_HI[/LJZ_HIZ_HIZ_HIZ_HIZ_HIZ_HI" + "ZODIZ_HIZ_HIZ_HIZ_HIZODIZODIZODHZODHZODHZ?@HY_8EX>\\>VN@7T^$0S-H)" + "RM@'S-H(S]T,U.(1VN@7X.X=Y/,BZ/@7Y/,BYO4DYO4DY?0CY?0CY?0CY?0CY?0CY?0CY?0CYO0CY?0C" + "Y?0CY?0CY?0CY?0CY?0CY?0CY?,BY?0CY?,BY?0CY/,BY?,BY?,BY?0CY/,BY/,B" + "Y?,BY?,BY?,BY/,BY/,BY?,BY/,BY/,BY/,BY/,BY/,BX_$AW^T<5T-X-R-4$" + "P\\_^PL[]PL[]P\\_^P\\_^P\\_^P\\_^P\\_^Q-#_Q-#_Q-#_Q-#_Q='`Q-#_Q='`Q='`" + "Q='`Q='`Q='`Q='_Q-#^P<6V>86V><6V><6V><6VN@7VN@7V^D8W.H:W>L;W>LL;W>L;W>LP<7V^D9V^H;TN$2O\\[_L+[OL\\'QRM@'U^86VN@9VN@9" + "VND9VN@9VN@9VN@9VN@9VN@9VN@9VN@9VN@9VN@9V>@9V>@9VN@9VN@9VN@9V>@8" + "V>@8VN@9VN@9VN@8V>@8V>@8VN@8V>@8V>@8VN@8V><7V.<7U.,4N<7V.87UN05SMP,KKOLBY?&F:73P,W\\T=\\/" + "S]T,SMP+SMP,S]T-S]T-T-X.T-X.T-X.T=\\/T=\\/T=\\/T=\\/T=\\/T=\\/T=\\/TM`0" + "TM`0TM`0TM`0TM`0T=\\/TM`0T^$1T=\\/V.86U^45U>,3U.(2U.(2T^$1T^$1T^$1" + "T^$1U.(2U.(2T^$1T^$1T^$1T^$1TM`0TM`0T=\\/T-X.S]T-S=L+R]D)R=<'QM0#" + "PL__O\\S\\O,GYN,7TM<+PML+M+SML)S-D)S-D)S-D)S-D)S-D1U.#K+;@L;WHM<+M" + "NL;TOLKYPL[]R=8#T=\\-Q]4\"P\\_\\T-X,U.(1U.(1U.(1U.(1U>,2U>,2UN03UN03" + "UN03UN03U^44U^44U^44U^44UN03R=<&P<[^P,W]P,W]P,W]P<[^PL__PL__PL__" + "P]#`PL__P]#`Q-(!Q-(!Q=,\"Q]4#SMP+U>,2TM`/T^$0V.85VN@6V^D8W>L:W.H9" + "W.H9W.H9W>L:W>L:W>L:W>L:W>L:W.H9W.H9W.H9W.H9W.H9W.H9W.H9W.H9W.H9" + "W.H9W.H9W.H9W.H9V^D8V^D8V^D8V^D8W.H9V^D8V^D8W>L:WNP;X.X>Y/(AYO4E" + "Z?@HZ_HJ[?PL[?PL[?PL[?PK[?PK[/LK[/LK[/LK[/LK[/LK[/LK[/LK[/LK[/LJ" + "[/LK[/LK[/LJ[/LJ[/LJZ_HI[/LJZ_HJZ_HIZ_HIZ_HJZ_HIZ_HJZ_HIZ_HIZ_HI" + "Z_HIZ_HIZ_HIZ_HIZODIZODIZODIZODIZODHZODHZODHZODHZODHZ?@GZ?@GZ/X_$AY?0CY_8E" + "Z/8EZ?@GZ?@GZ?@GZ?@GZ/`?" + "W^TL:VN@7UN03T=\\.S-H(Q]4#P<[]N\\CWML3QL\\'NN<;TP]#_S-H)U^44X>\\?" + "YO4DYO4DYO4DYO4DYO4DYO4DYO4DYO4DY?0CY?0CYO4DYO4DY?0CY?0CYO4DYO4D" + "Y?0CY?0CY?0CY?0CY?0CY?0CY?,BY?0CY?0CY/,BY?0CY/,BY?,BY?0CY/,BY/,B" + "Y?,BY/,BY?,BY?,BY/,BY/,BY?,BY/,BY?,BY/,BX_$AW^P;U^44T-T,Q]0\"PL[]" + "PL[]PL[]PL[]P\\_^P\\_^P\\_^P\\_^P\\_^P\\_^P\\_^Q-#_Q-#_Q-#_Q-#_Q-#_Q='`" + "Q='`Q='`Q-#_P\\_]OV.85V><6V.86V><6V><6V><7VN@7V^D8W.H:W>L;W>L;W.L;V^H:V^H:" + "V^H:W.H;V^H;V^H:V^D:V^D:VND:VNH:V^H:V^D:V^D:W.H;W.H;V^D:W.H;W.H;" + "V^H:W.H;W.L;W.L;W.L;W.L;W.L;W.L;V^D:V.87U.(3T=\\0S]T-S]T-S]X.T-X." + "T=\\/T^$1U.,3UN04V.86V><8VND9V^H:W.L;W>P<8VN@9VN@9V^D9VN@9VN@9VN@9VN@9VN@9VN@9V>@9V><8V><8VN@9VN@9V>@9" + "V>@8VN@9VN@8VN@9VN@9V>@8V>@8V>@8V>@8VN@8V><8U^86RMH,Q='_V.87QM0$" + "P,W^P,W^P,W^P,W^P<[_N,7UPLWZUN04T^(2J;?KA)&`FZC6P,S\\T-X.S]T,S=L+" + "SMP+SMP,S]T-S]T-T-X.T-X.T-X.T=\\/T-X.T-X.T=\\/T=\\/T=\\/T=\\/T=\\/TM`0" + "TM`0TM`0TM`0T=\\/TM`0TM`0TM`0TM`0TM`0VN<7UN04U.(2T^$1U.(2T^$1T^$1" + "T^$1T^$1U.(2T^$1T^$1T^$1TM`0TM`0TM`0T=\\/T-X-SMP,S-H*R]D)R-8&QM0#" + "PL__O\\S[N\\CWN,7TM<+PM<#L*C9G)S-D)S-D)S-D)S-D)S-D+#AHIK#:L+SGM<+M" + "NL;SO(1Q=,!R-8#U.(1U>,2U>,2U>,2U>,2UN03UN03" + "UN03U^44U^44U^44U^44U^44UN03Q]4$P,W]P<[^P,W]P<[^P<[^PL__PL__PL__" + "PL__PL__P]#`P]#`Q-(!Q-(!Q-(!Q=,\"R-8$T-X-U.(2T=`/U>(1V.85VN@6W.H8" + "W>L:W>L:W>L:W>L:W>L:W>L:W>L:W>L:W.H9W.H9W>L:W>L:W.H9W.H9W.H9W.H9" + "W.H9W.H9W.H9W.H9W.H9V^D8V^D8V^D8V^D8V^D8W.H9W.H9W.H9W>L:WNP;X.X=" + "X_$AYO0DZ?@H[/LK[?PK[?PL[?PL[?PL[/LK[/LK[/LK[/LK[/LK[/LK[/LK[/LJ" + "[/LJ[/LK[/LJ[/LJ[/LJZ_HJ[/LJZ_HJZ_HJZ_HIZ_HJZ_HIZ_HIZ_HIZ_HIZODI" + "Z_HIZ_HIZ_HIZODIZODIZODIZODHZODIZODHZODHZODHZODHZ?@HZODHZ?@GZ?@G" + "Z?@GZ?@GZ?@GZ?@GZ?@GY_8EX_(AWNT@7U>,2T-X-S-H)R=<&R-8$R=<%R]@'" + "S=L*S]T,TM`/U.(1U^44V><6V^D8W>L:WNP;W^TX.\\>X.\\>X.X>" + "X.X=X.X=W^TL:V^H9VN@7V.85UN03U.(1TM`/S]T+R]D(R-8%Q=,!" + "PL[^OLOZNLCVN<;UN\\GWPL[]R-8%SMT,U>03W>P;Y/,BYO4DYO4DYO4DYO4DYO4D" + "YO4DYO4DYO0CYO4DYO4DYO4DYO4DYO4DYO0CY?0CY?0CYO0CYO4DYO4DY_4EY_8E" + "YO0CY?0CY?0CY?0CY?0CY?0CY?0CY?,BY?,BY/,BY?,BY/,BY/,BY?,BY?,BY/,B" + "Y/,BY?,BY/,BY?,BY/,BY?,BY/,BY/,BY/,BX_$@WNL:U^03S]P*QM,!PL[]P<6V><6V.86V><6VN@7VN@8V^D9W.H:W>L;W.L;V^H;V^H:" + "V^H;V^H;V^H;V^H:V^D:V^H:VND:VNH:VNH:V^D:VND:V^D:V^D:V^H:W.H;W.H;" + "W.H;W.H;V^H:W.H;W.H;W.L;W.L;W.L;V^H:VN@9V.87U>04U.,3U.(2U.(2U.(2" + "U.,3UN04U^46V.86V>@8V>@8VND9VND:VND:V^H:W.L;WNP<8V><8VN@9VN@9VN@9VN@9VN@9V>@9V><8VN@9VN@9V>@8V><8" + "V.<8VN@9VN@9VN@9V>@8V>@8V>@8V>@8V>@8V><8V.<7UN45N\\G\\T^(0T^$2PL_`" + "O\\S]O\\S]O\\S]OLO\\O,3V><7U>,3U.(2U.(2U.(2U.(2" + "T^$1T^$1U.(2T^$1T^$1T^$1TM`0TM`0T=\\/T-X.S]T-SMP,S=L*R]D(R-8%Q=,\"" + "PL__OLO[N\\CWM\\7SM,'PL+OG)S-D)S-D)S-D)S-D)S-D)S-D)S-DC9C#L+SGM,'M" + "N<;SO,2U>,2UN03UN03UN03" + "U^44U^44U^44U^44U^44U^44UN03Q=,\"P,W]P,W]P,W]P<[^P<[^P<[^PL__PL__" + "P]#`P]#`P]#`Q-(!Q-(!Q-(!Q=,\"Q=,\"QM0#QM0#R=<&T=\\.U>,2TM`/U>,2V.85" + "VN@7W.H9W>L:W>L:W>L:W>L:W>L:W>L:W>L:W.H9W.H9W>L:W.H9W.H9W.H9W.H9" + "W.H9W.H9W.H9W.H9W.H9W.H9V^D8W.H9W.H9V^D8W.H9W.H9V^D8W.H9W>L:W>L:" + "WNP;X.X=X_$AY?0DZ?@G[/LK[?PL[?PL[?PK[?PK[?PK[/LK[/LK[/LK[/LJ[/LJ" + "[/LJ[/LK[/LJ[/LJ[/LJZ_HJ[/LJ[/LJ[/LJZ_HJZ_HJZ_HIZ_HIZ_HJZ_HIZ_HI" + "Z_HIZ_HIZ_HIZODIZ_HIZODIZODIZODIZODIZODHZODHZODHZODHZODHZODHZ?@G" + "Z?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ/\\>W>L:" + "VND8U^44T^$0T-X-S=L*R]D(R=8%Q]4#Q=,\"Q-(!Q-(!Q=,\"Q=,!Q=,!Q=(!P]#_" + "PL__PL__P<[^P<[^P\\>Y/,BY_8EYO8EY_8EY_8EY_8EYO4DYO4DYO4DY?0DYO4DYO4DYO4D" + "YO4DYO4DYO4DYO4DYO4DYO4DYO4DYO4DYO4DY?0CY?0CY?0CY?0CY_4EZ/H9UN,2S=H(Q=(!PL[]PL[]PL[]" + "PL[]P\\_^P\\_^P\\_^Q-#_Q-#_P\\_^Q-#_Q-#_Q-#_Q-#_Q-#_Q=#_Q-#_Q=#_Q=#`" + "Q-#_PL[\\ML'MLK[KS-D'R]@%QM+`QM+`Q]0!R-4\"R-4\"R-4\"R-4\"R-4\"R-4\"R-4\"" + "R-4\"R-4\"R-4\"R-4\"R-4\"R-4\"R-4\"R-4\"R-4\"R-4\"R-4\"R-4\"R-4\"Q]0!Q]0!Q]0!" + "R-4\"R-4\"R=4\"R-+`Q]'`QM#^QM#^Q,_^Q,_]P\\[\\P\\[\\F*+1+#AI)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D9G*EU.$/V><6V><6V><6V><6V><6VN@7VN@8V^D9W.H:W>L;W>L;V^H:V^H:" + "V^H;V^H:V^H:V^H:V^D:V^D:VNH:VND:V^H:VND:V^D:V^D:V^H:V^H:V^H:V^D:" + "W.H;W.H;V^D:W.H;W.H;W.H;W.L;W.H;W.H;V^H:V>@9V.<8U^86U^86UN46U^45" + "U^46V.87V.<7V><8VN@9VN@9VND9VND9VND:VND:V^H:V^H:W.H;W>L<8V><8V><8VN@9V><8V><8VN@9V><8" + "V>@8V><8VN@8VN@9V>@8V>@8V>@8V>@8V>@8V>@8U^86U.,4ML7VUN45RMD*O\\S]" + "O87U^45U.(2U>,3U.(2U.(2" + "U.(2U.(2T^$1T^$1T^$1TM`0TM`0TM`0T=\\/T-X.S]T-SMP+S=L*RM@(Q]4$Q-(!" + "P<[^OLO[NL?VM\\7SM,'OJ[;C)S-D)S-D)S-D)S-D)S-D)S-D)S-D45R+JK7?M+_L" + "N<7QO,GVP,S[Q-#`Q]4#RM@&S=H)SMP*T=\\-U^43S]P*Q=+`TM\\.U>,2UN03UN03" + "U^44U^44U^44U^44U^44V.85UN03Q-(!P,W]P,W]P,W]P,W]P<[^P<[^P<[^P<[^" + "PL__P]#`P]#`Q-(!Q-(!Q=,\"P,W\\OLS[QM0#QM0#QM0#Q]4$RM@&TM`/U.(1TM`/" + "U>,2V><5VN@7W.H9W>L:W>L:W>L:W>L:W>L:W>L:W.H9W>L:W.H9W>L:W.H9W>L:" + "W.H9W.H9W.H9W.H9W.H9W.H9W.H9W.H9W.H9W.H9W.H9W.H9W.H9W.H9W.H9W.H9" + "W.H9W>L:WNP;X.X=XO$@Y?0DZ?@G[/LK[?PL[?PL[?PK[?PK[?PK[/LK[/LK[/LJ" + "[/LK[/LJ[/LJ[/LJ[/LJ[/LJZ_HJZ_HJZ_HJZ_HJZ_HJZ_HJZ_HJZ_HJZ_HJZ_HI" + "Z_HIZ_HIZ_HIZ_HIZODIZODIZODIZODIZODIZODHZODHZODHZODHZODHZODHZ?@G" + "Z?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ/`@XO$@XO$AX_$AX_(AY/,BY?0CYO4DY_8EY_8EY_8EY_8EY_8EY_8EY_8EY_8E" + "Y_8EY_8EYO4DY_8EY_8EY_8EYO4DYO4DYO4EYO4DYO4DYO4DYO4DYO4DYO4DYO4D" + "YO4DYO4DYO4DYO4DYO4DYO4DYO4DYO4DY?0CY?0CY?0CY?0CY?0CXN`?YO0CXN`?" + "W^T<6V.85V><6V.86V><7V><7VN@8V^D9W.H:W>L;W>L;W.L;V^H:" + "VNH:V^H:V^D:V^D:VND:V^D:VND:V^D:V^D:VND:V^D:VND9V^D:V^H:V^H;V^D:" + "V^H;V^D:V^H:V^H;W.H;W.H;W.H;V^H:V^H:W.L;V^H:VN@9V>@9V.<8V>@8V.<8" + "V><8V>@8VN@9VN@9VN@9VN@9VND:VND:VNH:V^H:VND:V^D:VN@9VN@9Q-,$T=\\/" + "V>@8T^(3R=D)O,4U^46V.87V.<7V><8" + "V><8V><8V><8V><8V.<7V.<7V.<7V><7V.<7V.87U^46Q=8+PL[\\U.(2P]$!O,GZ" + "N\\CYNLCXNL?XN<;WN,;WN,7VN,7VK[WLM\\/QQ]4$Q]4$R]D(SMP,SMP,SMP,S]T-" + "S]T,S]T-S]T-S]T-T-X.T-X.T-X.T-X.T-X.T-X.T=\\/T=\\/T=\\/T=\\/T=\\/T=\\/" + "T=\\/T=\\/T=\\/T=\\/T=\\/T=\\/TM`0TM`0T^$1T^$1T^$1V><7U>,3U.(2U.(2U.(2" + "U.(2U.(2U.(2T^$1T^$1T^$1TM`0TM`0T=\\/T-X.S]T-S=L+S-H)RM@'Q]4$Q-(!" + "P,W]O(1UN03" + "U^44U^44U^44V.85V.85V.85UN03P]#`P,W]P,W]P,W]P,W]P,W]P<[^OLO[ML3R" + "M,+POLO[PL__Q=,\"Q=,\"Q=,\"N\\CVQ-'`QM0#QM0#Q]4$Q]4$Q]4$Q]4$R]D'T^$0" + "U.,1TM`/UN03V><5V^D7W.H9W>L:W>L:W>L:W.H9W>H9W>L:W>L:W.H9W.H9W.H9" + "W>L:W.H9W.H9W.H9W.H9W.H9W.H9V^D8W.H9W.H9V^D8V><6V^D8W.H9W.H9W.H9" + "W.H9W.H9W.H9W.H9W>L;X.X=XN`?Y?0CZ?<6" + "V.85W.H9X_(AY?,BY?,BY?,BY?0CY?0CY?0CY?0CY?0CY?0CY?0CY?0CY?0CY?0C" + "Y/,BY/,BY?0CY/,BY/,BY/(AXN\\?V^D8T^$0R]@&P\\_^PH6T)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-DN\\?WV.86V><6V><6V><6V><7VN@7VN@8V^D9W.H:W>L;W>L;W.L;V^H:" + "V^D:V^D:V^H:V^D:VND:V^D:V^D:V^D:V^D:VND:V^D:V^D:V^D:V^H:V^D:W.H;" + "V^H:V^D:V^H:V^H:V^H;V^D:V^H;W.H;V^H:V^H:V^H;V^D:VND9VN@9V>@9V>@9" + "VN@9VND9VN@9VN@9VN@9VND9VND:VND:VNH:VND:VND:V^D:VN@9U^87O,GZTM`/" + "V.86V><7VN@8VND9UN86S]X.QM4%NLGZK[WOIK3EH*W=H*W=I;'AJK?GL+SLM<'R" + "N<;VO,CXOLO[O\\O\\OLK[O,CXM<'QL;WNL;WKU.(1SMP,L+WQSMP*S=L+O,3U.(2U.(2" + "U.(2U.(2U.(2T^$1T^$1T^$1T^$1T=\\/T=\\/T-X.S]T,S=L+S-H*R=<&QM0#P]#`" + "O\\S\\O,2PL__P<[^P<[^P,W]P,W]P<[^O\\S\\K+OI?HVZ" + "4UZ)AY2^K[SIP]#_QM0#Q=,\"O,GWP]#`Q]4$Q]4$Q]4$Q]4$Q]4$Q]4$Q]4$R-8$" + "S-H)U.$0U>,2T^$0UN03V><6V^D8W>L:W>L:W>L:W>L:W>L:W>L:W>L:W.H9W.H9" + "W>L:W.H9W.H9W.H9W.H9W.H9W.H9W.H9W.H9V^D8K;GIG*?7N<7TU>,2W.H9W>L:" + "W.H9W>L:W.H:W.H9W.H9W>L:WNP;X.T=XN`@Y?,CZ/\\>V^@7TM\\.RM<%P\\_^P<6V><6VN@7VN@7V^D8V^D9W.H:W>L;W>L;V^H:" + "V^H:V^D:VND:VND:VND:V^D:V^D:VN@9VND:VND:V^D:V^H:V^D:V^D:V^D:V^D:" + "V^D:V^D:V^H:VND:V^D:V^D:V^D:V^D:V^D:V^D:V^H:V^D:VND:VND:VND9VND:" + "V^D:V^D:V^D:VND:VN@9V^D:VND:V^D:VND:V^D:VND9V^D:VN@9SMT0O\\S[U.(2" + "U^45U^46U^86U^86V.87V><7VN@9VND9V.<7T^(2S=P,QM4%P,[_N,3U.(2" + "U.(2U.(2U.(2T^$1T^$1TM`0TM`0TM`0T-X.T-X-SMP,S=L+R]D)R=<&QM0#PL__" + "O\\S\\O,GYN<;UM<+QM,#NF:30)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D45V,GZK7OLGWP]#^R-4$R]@'S=H)SML*S]P+S]P+T-T,T=X-TM`.VN<6U.(1" + "P\\_\\SMP)V.85V.85V.85V.85U.(1P<[^P<[^P<[^P<[^P<[^PL__OH9W>L:W>L:W.H9W>L:W>L:" + "W.H9W.H9W>L:W>L:W.H9W>L:W.H9W.H9W.H9UN03EZ/4K+CHIK/CGZO;Q=(!W.H9" + "W.H9W>L:W.H9W.H9W.H9W.H9W>L:W>L:WNP;X.X=X_$@Y?0CZ/\\>VN<6TM\\.R-8$P\\_^PL[]PL[]PL[]PL[]P\\_^P\\_^P\\_^" + "P\\_^P\\_^P\\_^P\\_^Q='`Q='`Q-#_Q-#_Q-#_Q-#_Q=#_Q-#_P\\_]N<3QK[KGRM<%" + "R]@&Q]0!Q]0!Q]0!QM+`Q]0!QM+`Q]0!Q]0!R-4\"R-4\"R-4\"R-4\"R-4\"R-4\"R-4\"" + "Q]0!Q]0!Q]0!Q]0!R-0\"R-4\"R-4\"R-4\"Q]0!R-4\"R-4\"Q]0!QM+`Q]+`Q]'_Q]'_" + "QM#^Q<_]Q,[\\P\\W[P\\W[PLSZL[WK8VZ=)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-DAI+#V.44V><6V><6V><6V><6V><7VN@7VN@8V^D9W.H:W>L;W>L;W.H;" + "VNH:VND:VND:VND9V^D:V^D:V^D:VND:V^D:V^D:V^D:V^D:V^D:V^D:V^H:V^D:" + "VND:V^H:VND:VND:V^D:V^D:V^D:V^D:V^D:V^H:V^H:V^D:V^H:V^D:VND:V^D:" + "V^D:V^D:V^D:V^D:V^D:VND9VND:V^D:VND:VND:VND:VN@9V>@9P<`\"R-8%U>,3" + "UN45U^46U^46U^46U^46UN45UN45U^45U^45UN45U^45V.86V.86V.86V.86V.86" + "U^45U>04U.,3U.(2U.(2U.(2U.(2U>,3X.X>S]T-M<7XP<7U>,3U.(2" + "U.(2U.(2U.(2T^$1T^$1TM`0TM`0T=\\/T-X.T-X-SMP,S-H*R]D(R-8%Q=,\"PL__" + "O\\S\\O,GYN,;TM,+PM<'NCIG&)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D*C9G<'NJM+_KQ='_R=<%S-H(SML*S]P+T-T,T-T,T-X,T=X-TM\\.U>(1" + "W.D8S]T+P]#^T^$/V.85V.85T^$0P<[^P<[^P<[^P<[^PL__P]#`P,W]QM0!W^T<" + "X_$@XN`?W^X=V.85P]'`LK_MO,GVQ]4$R-8%R-8%R-8%R-8%R-8%R-8%R-8%R-8%" + "Q]4$R-8%R-8%R-8%S=L)U>,2U>,2T^$0U^44VN@7V^D8W.H9W>L:W>L:W>L:W>L:" + "W>L:W>L:W>L:W>L:W>L:W>L:W>L:W>L:W.H9VN@8H:[?G*G:F*35H*W>PL__N\\?X" + "N<;VU>,2W.H9W.H9W>L:W.H9W.H9W>L:W>L:W>L:WNP;X.X=X_$@Y?0DZ/<6T=X-R-4#PL[]PL[]PL[]PL[]PL[]PL[]P\\_^P\\_^P\\_^" + "P\\_^P\\_^Q-#_Q-#_Q='`Q='`Q='`Q='`Q-#_Q-#_Q='_P\\_^M+_LL[_LS-H'RM8$" + "QM+`Q]0!Q]0!Q]0!QM+`QM+`QM+`R-4\"R-4\"R-4\"R-4\"R-4\"Q]0!R-0\"Q]0!Q]0!" + "Q]0!Q]0!Q]0!Q]0!R-0!R-4\"R-4\"R-4\"R-4\"Q]0!Q]0!QM'_Q]'_QM#^QM#^QM#^" + "Q,[\\Q,[\\P\\W[PLSZPLSZJ+'@/TMZ)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D76J(/V.85V.85V><6V><6V><6VN@7VN@8V^D9W.H:W>L;W>L;W.L;" + "V^H:VND:VND:VND9VND9VND:VND:VND:V^D:V^D:VND:V^D:V^D:VND9VND:VND:" + "VND:VND:V^D:V^D:VND9VND9V^D:V^D:V^D:VND:VND:V^D:VND:VND:VND9VND:" + "V^D:V^D:VND:VND9VN@9V^D:VN@9V^D:V^D:VND:VND9VN@9U^46N<;XSMP,U>04" + "UN45U^46U^46U^86UN45UN05UN05UN04U>04U>,4U>,3U.(2U.(2U.(2U.(2T^$1" + "T^$1T^$1T^$1T^$1TM`0T=\\/T=\\/U.(1W.H;RM@(K;OLS-H)R-8&M\\7UM,+RM,+R" + "L\\'QL\\'RM,+SM,+RL\\'RL\\'QLL#OLL#OJK;FL+KFQ-#`RM@'R=<&SMP,S]T-S]T-" + "T-X.T-X.T-X.T-X.T-X.T-X.T-X.T=\\/T-X.T=\\/T=\\/T=\\/T=\\/T=\\/T=\\/T=\\/" + "TM`0TM`0T=\\/TM`0TM`0TM`0TM`0TM`0TM`0T^$1T^$1T^$1TM`0V><7U^45U.(2" + "U.(2U.(2U.(2T^$1T^$1TM`0TM`0T=\\/T-X-S]T-S=L+S-H*RM@(R-8%Q-(!PL__" + "O\\S\\N\\CWM\\7SM,'NM<'NA(^[)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D.T=WDI[,O\\OYRM<%S=H)S]P+T-T,T-T,T=X-T=X-T=X-T=\\." + "T]`/V.44V^D8R-8$QM+`UN02T=\\.P<[^P<[^P<[^P<[^PL__Q]4$VN@6YO0CYO4D" + "Y?0CY/,BX_(AXN`?X.X=V.<6PM#`L\\#NOLSYQM0#R-8%R-8%Q]4$R-8%R-8%R-8%" + "R-8%R-8%R-8%Q]4$Q]4$R-8%S=L*U>,2U.(1T^$0V.84VN@7W.H9W.H9W>L:W>L:" + "W>L:W>L:W>L:W>L:W>L:W>L:W>L:W>L:W>L:V><7P,W_H*S=HZ_@LK_OQM0$EJ+5" + "J+3GGJOL:W.H9W.H9W>L:W>L:W>L:W>L:WNP;X.X=XN\\?Y/(B" + "Z/86V><6V><6V><6V><6VN@7VN@8V^D9W.H:W.H:W>L;W.L;" + "V^H:VNH:VND9V>D9VND9VND:VND9VND:VND:V^D:V^D:V^D:V^H:VND:VND9VND:" + "VND9V^D:VND:VN@9V^D:V^D:VN@9VND:VND:V^D:VND:VND:VND:VND:VND9VN@9" + "VND:VND9VND9VND:V^D:VND9V^D:V^D:VND9VND9VND9VN@9S=T/O,CXT=\\/U>04" + "UN45U^45UN45UN45UN45U>45UN45UN04UN04U>,3U>,3U.(3T^(2T^$1T^$1T^$1" + "TM`0TM`0T=\\/T=\\/T=\\/T=\\/T=\\/V.86UN04Q=4&LK[LS=L+PL_`M,+SL\\'RM,+R" + "M,+QL\\'RM,+RL\\'QLL#PL+[MG*C9@XRYC9:]ML+OQ-#`R=<&R-8%S=L+S]T-S]T-" + "T-X.T-X.T-X.T-X.T-X.T-X.T=\\/T=\\/T-X.T=\\/T=\\/T=\\/T=\\/T=\\/T=\\/TM`0" + "TM`0T=\\/TM`0TM`0TM`0TM`0TM`0TM`0TM`0TM`0T^$1T^$1TM`0U>,3VN@8U>,3" + "U.(2U.(2U.(2T^$1T^$1T^$1T=\\/T=\\/T-X-S]T-S=L+S-H)RM@'Q]4$Q-(!P<[^" + "OLO[NL?WM\\3RM,#MM\\+O=7^M)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D45V,HZ_>Q]4\"S=H)T-T,T-T,T-X,T=X-T=X-T=\\." + "TM\\.T]`/U.$0V^@6VN<6PL[\\OY_8EZ/,2U.,2U.(1V.85VN@7V^D8W.H9" + "W>L:W>L:W>L:W>L:W>L:W>L:W>L:W>L:W>L:TM`0HZ[?GZO,1W.H9W.H9W>L:W.H9W>L:W>L:W.H9W>L:W>L:W^T<" + "XN`@Y?,BZ?86V>86V><6V><6V><6VN@7V><7VN@8V^D9W.H:W>L;W.L;" + "V^H:VNH:VND9V>D9VND:VND9VND:VND:VND:VND:VND9VND:VND:VNH:VND:VND9" + "VND9VND9VND:V^D:VND:VND9VN@9VND9V^D:VND9VND:VN@9VN@9VN@9VN@9VN@9" + "VND9VND9VND9VND9VN@9V^D:V^D:V^D:V^D:VN@9VN@9V><8O\\\\\"Q-(!T^$1U>04" + "U^45UN45UN04UN04U>05U>05U>04UN04U>04U>,3U>,3U.(2U.(2T^$1T^$1TM`0" + "TM`0TM`0T=\\/T=\\/T=\\/T=\\/T=\\/W.L:T-X/NLG]PX>TEJ',K[SJN<7UP,S\\QM0#RM@'RM@'S-H*S]T,S]T," + "T-X.T-X.T-X.T-X.T=\\.T=\\/T=\\/T=\\/T=\\/T=\\/T=\\/T=\\/T=\\/T=\\/T=\\/TM`0" + "T=\\/TM`0TM`0TM`0TM`0TM`0TM`0TM`0TM`0T^$1T^$1T^$1U.(2TM`0V><7V.86" + "U>,3U.(2U.(2T^$1T^$1TM`0TM`0T=\\/T-X.SMP,S=L*S-H)R=<'QM0#P]#`P,W]" + "OL:W>L:WNP;W>L:WNP;W>L:W>L:W>L:SMP,HZ_?I;+DFJ?8I;+CJK;GH[#A" + "HJ_AGJOL:W.H9W>L:W.H9W.H9W.H9W.H9" + "W>L:W^T\\>Y/,CZ/<6V><6V><6V><7VN@7VN@7VN@8V^D9W.H:W>L;W>L;" + "V^H:VNH:VND:VND9VND9VND9VND9VND9VND9VND:VND9VN@9VND:VNH:VND9VND9" + "VND9VND:VND:VND9VN@9VND9VN@9VN@9V^D:VND:VND9VN@9VN@9VN@9V>@8VN@9" + "VN@9VN@9V>@9V>@9VND9VND9V^D:VN@9VND9VND9VN@9UN46M\\7WR]D(U.(2U>04" + "UN04UN04U>04UN04U>04U>05U>,4U>,3U>,3U.(3U.(3U.(2T^$2T^$1T^$1T^$1" + "TM`0T=\\/TM`0T=\\/T=\\/T-X.TM\\/W>L;SMP,LL'TQ]4#QM0#ML3SL+[NJ+3DF*;5" + "AY+!>82Q?(>SE:#,K+GFM,'ON,7TO\\S\\PL__Q=,\"R-8&R]D(S-H)S=L+S]T-S]T-" + "T-X.T-X.T-X.T-X.T=\\.T=\\/T=\\/T=\\/T=\\/T=\\/T=\\/T=\\/T=\\/TM`0TM`0T=\\/" + "TM`0TM`0TM`0TM`0T^$1TM`0TM`0TM`0T^$1TM`0T^$1T^$1U.(2TM`0U.(2V^D9" + "UN04T^$1U.(2T^$1T^$1TM`0TM`0T=\\/S]T-SMP,S=L*S-H)R=<&QM0#P]#`P,W]" + "O\\>V.85P<__O,2U.(1U.$0" + "V.85VN@6W.H8WNP;WNP;WNP;WNP;WNP;WNP;W>L;T=`0L+[PGZS85W>L:W.H9W.H9W>L:W.H9W>L:W.H9" + "W.H9W>L:W>L:W^T\\?Y/,CZ?L:" + "UN03S=L)Q-#`P6)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D;'BIU^43V><6V><6V><6V><6V><7VN@7VN@8V^D9W.H:W.H:W>L;" + "W.L;V^H:VND:VND9VND9VN@9VN@9VND9VND9VND9VND9VN@9VND9VND9VND9VND9" + "VND9VND9VND:VND9VN@9VN@9VN@9VND9VN@9VND9VN@9VN@9V>@9V>@9V>@9V>@9" + "VND9VN@9V>@9VND9VN@9VN@9VN@9VND9VND9VN@9VN@9S]X/N,7USMP+U.(2U>,3" + "U>,3UN04U>04U>04U>04U>04U.,3U>,3U>,3U.(2U.(2U.(2T^$1T^$1TM`0TM`0" + "TM`0T=\\/T=\\/T=\\/T=\\/T=\\/U.(2VN@8S=L+M<7XEJ'0BI7\"?HJW?(FVB)3!F*73" + "JK;CLL#ON,7TN<;TN\\CWP\\__Q-(!Q=,\"Q]4$R=8&RM@'S-H)S=L+S=L+S]T-S]T-" + "S]T-T-X.T-X.T-X.T=\\/T=\\/T=\\/T=\\/T=\\/T=\\/TM`0T=\\/TM`0TM`0TM`0TM`0" + "TM`0TM`0TM`0TM`0TM`0TM`0TM`0TM`0TM`0T^$1T^$1T^$1U.(2U.(2T=\\/V.86" + "V.86U>,3U.(2T^$1T^$1TM`0T=\\/T=\\/S]T-SMP,S-H*R]D)R=<&QM0#P]#`P,W]" + "O,GYN,7TM<'OL\\#MN,+N+#AI)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D4U^/H:W<5V^D7W.H9W>L:WNP;WNP;WNP;WNP;WNP;W>L:U>03TN$0U>,2H:W>" + "G:G;HJ_ANL?XK+GLG:K;I[3EIK/EI;+CVN@7SML+L[[NTM`/W.H9W>L:W.H9W.H9" + "W.H9W.H9W.H9W.H9W>L:W^T\\?Y?,CZ?@H[?PL[?PL[/LJZ_HJZ_HJZ_HJZ_HJ" + "Z_HJZ_HIZ_HIZ_HIZODIZODIZODIZODIZODIZODHZODHZ?@HZODHZODHZODHZODH" + "ZODHZODHZODHZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ/,2" + "S=H(Q-#_P<6V>86V><6V><7VN@7VN@7VN@8V^D9V^D9W.H:W>L;" + "W.L;V^H:VND:VND9VND9VN@9VN@9VND9V>D9V>@9V>@9V>@8VND9VND9VN@9VND:" + "VND9VND9VN@9VN@9V>@9VN@9VN@9VND9VND:V>@9VND9VN@9VN@9VN@9V>@9VND9" + "VN@9VND9VND9VND9VN@9VND9VND9V>@9VN@9VN@9V><8P=$#P,W\\T-X-U.(2U>,3" + "U>,3UN04U>,3U>,3U>,3U>,3U.,3U.(2U.(2U.(2U.(2T^$2T^$1TM`0TM`0TM`0" + "TM`0T=\\/T=\\/T=\\/T-X.T-X.V.85U.,3SMP,SMP+R]D)P<[_O,KZN,;UN<;UNL?V" + "O,CWP\\__O\\S\\QM0#Q=,\"Q]4$QM0#R=<&RM@'RM@(S-H*S=L*S=L+SMP,S]T-S]T-" + "S]T-T-X.T-X.T=\\/T=\\/T=\\/T=\\/T=\\/TM`0TM`0TM`0T=\\/TM`0TM`0TM`0TM`0" + "TM`0TM`0TM`0TM`0TM`0TM`0TM`0TM`0TM`0T^$1TM`0T^$1T^$2U>,3T^(2T^$0" + "V^D9UN04U.(2U.(2T^$1T^$1TM`0T-X.S]T-SMP,S-H*R]D)R-8&Q=,\"PL__O\\S\\" + "N\\CXM\\3SM,#NM,#NL;KG)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D8V^>LK[KSML)" + "T=X-TM`/T]`/T^$0T^$0U.$0V^D7Z?85V^@7W.H9W>L:WNP;WNP;WNP;WNP;WNP;WNP;W>L:P]$!" + "GJSH[#BGJO<7IK/FJ+;GJ+3EVN@7W>L:W.H9W.H9" + "W.H9W.H9W.H9W.H9W.H9W.H9W>L:W^TL:U>(1S-D(" + "Q-#_P<6V><6V><6V><6V><7VN@7VN@8V^D9V^D9W.H:W.H:" + "W>L;W.H:V^H:V>D9VND9VN@9VN@9VN@9VND9VN@9VN@9VN@9VN@9V>@9VN@9VND9" + "VND9VND9VND9VND9VN@9VN@9VN@9VN@9VN@9VN@9VN@9V>@9V>@8V>@8V>@9V>@9" + "VND9VN@9VND9VND9VND9VN@9VN@9VN@9VN@9VN@9U^46N,3" + "U>,3U>,3U>04U>,3U>,3U>,3U.(2T^(2T^$1T^$1T^$1T^$1T^$1TM`0TM`0TM`0" + "TM`0T=\\/T=\\/T=\\/T-X.T=\\/V><7T=\\/SMP,SMP,S=L*R=<'R-8&Q]0$PL_^Q]0#" + "PL__RM@'QM,\"R-4%RM@'R=<&R=8&R]D)S-H*S-H*S-H*S=L+SMP,S]T-S]T-S]T-" + "T-X.T-X.T-X.T=\\/T=\\/T=\\/TM`0T=\\/TM`0TM`0TM`0TM`0TM`0TM`0TM`0TM`0" + "TM`0TM`0TM`0TM`0TM`0TM`0TM`0TM`0TM`0TM`0TM`0T^$1T^$1U.(2U>,3TM`0" + "U^44V><7U>,3T^$1T^$1TM`0TM`0T=X/S]T-SMP,S-H*RM@(R-8%Q=,\"PL__OLO[" + "N\\CWML/QM,#NM<'OI['=)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D+CIK@HZ]" + "P\\[]T-T,TM`/U.$0UN,2X.XY/$>Y/(?Y/(?Y_0BZO@FZ?<6V^D8W>L:W>L:WNP;WNP;WNP;WNP;WNP;WNP;" + "T^$1LL#RHJ_@L;[PH:[>G:KL:W.H9W.H9" + "W.H9W.H9W.H9W.H9W.H9W.H9W.H9W.H9W>L:W^TL:VN@7V><6V^D8W.L:X.X=XN`?Y/,CYO4D" + "YO4EZ/H:U>,2R]D'P\\_^" + "P<6V><6V><7VN@7VN@7VN@8V^D9W.H:W.H:" + "W>L;W.H:VNH:VND:VND9VN@9VN@9VN@9VN@9V>@9V>@9V>@9V>@9VN@9V>@9VND9" + "V>@9VND9V>D9VN@9V>@9V>@9VN@9VN@9V>@9V>@9V>@9V>@9V><8VN@9V>@9VN@9" + "VN@9VND9VN@9VN@9VN@9VN@9VN@9VN@9V>@9V><8T=`2M,+QRM@(T=\\/T^$1U.(2" + "U>,3U>,3U>,3U>,3U>,3U.(2U.(2U.(2T^$1T^$1T^$1TM`0TM`0TM`0T=\\/T=\\/" + "T=\\/T=\\/T=\\/T=\\/T-X.T=\\/V.86S]T-SMP,SMP,S=L+S-H*S-H*R=8&Q]4$S-H*" + "R=<&Q]4%R-8&R=<&RM@(R]D)S-H*S=L+S=L+S=L+SMP,SMP,S]T-S]T-T-X.T-X." + "T-X.T-X.T=\\/T=\\/TM`0T=\\/TM`0TM`0TM`0TM`0TM`0TM`0TM`0TM`0TM`0TM`0" + "TM`0TM`0T=\\/T=\\/T=\\/T=\\/T=\\/T=\\/T=\\/TM`0TM`0TM`0TM`0U.(2U>,3U.(2" + "TM`/VN@8UN04U.(2T^$1TM`0T=\\/T-X.S]T-SMP,S-H*RM@(R-8%Q-(!P<[^OLO[" + "N\\?WM\\?V^D8TM`/Q=0\"L+[LDZ'," + "P<[^Q-(!Q-(!Q=,\"Q=,\"Q=,\"Q=,\"Q=,\"QM0#QM0#QM0#Q]4$Q]4$R-8%R-8%R-8%" + "R-8%R=<&R=<&R]D(T=\\.U^44U.(1U.(1V><6V^D8W>L:WNP;WNP;W^TL:UN03U.(2I+#AH[#CJ;?HH*S=K;KLI;+CC9G+H[#CPL__W.H9W.H9W.H9" + "W.H9W.H9W.H9W.H9W.H9W.H9V^D8W.H9V^D8W.H9W>L:W^T=XN`@Y/,CZODI[OTM" + "[OTM[/LKZ_HJZ_HJZ_HJZ_HIZODIZODIZ_HIZODIZODIZODIZODIZODHZODHZODH" + "ZODHZODHZ?@HZ?@HZODHZODHZ?@HZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ/85T-X,SMP+T=\\.U.(1V.85V^D9WNP`?Y/,CYO4EZ/(6VV.44V><6V><6V><6VN@7VN@7VN@7V^D8V^D9W.H:W.H:" + "W.H:W.H:V^H:V^H:V>D9VND9V>@9VN@9V>@9V>@8VN@9VN@9VN@9V>@9V>@9V>@9" + "V>@8VN@9VN@9V>D9V>@9V>@9VN@9VN@9V>@8VN@9V>@9V>@9V>@9V>@9V>@9V>@8" + "VN@9V>@9VN@9VN@8VN@9VN@9VN@9V>@9V>@8V.87Q]8(NL?VS=L*TM`0U.(2U>,3" + "U.(2U.(2U.(2U>,3U.(2U.(2T^$1T^$1TM`0T^$1TM`0TM`0TM`0T=\\/T=\\/T=\\/" + "T=\\/T=\\/T=\\/T=\\/T=\\/T=\\.U>,3SMP,SMP,SMP,SMP,SMP+T-X.S]T,R-8%R]D(" + "RM@'R]D(S-H*S=L+S=L+S=L+S=L+SMP,SMP,S]T-S]T-S]T-S]T-T-X.T-X.T=\\/" + "T=\\/T-X.T=\\/T=\\/TM`0T=\\/T=\\/TM`0T=\\/T=\\/T=\\/T=\\/T=\\/T=\\.T-X.T-X." + "T-X.T-X.S]P,SMP+SMP,SMP+S=L+S=L*S=L+S=L*S=H*S=H*S=L+S]T-TM`0U>,3" + "T-X.U.(2V><7U>,3T^$1T^$1T=\\/T-X.S]T-S=L+S-H*RM@'Q]4$Q-(!P<[^O,2U.(1V><5V^D8W.H9WNP;WNP;WNP;" + "WNP;WNP;WNP;W>L:U>,3M,'RG*G:EJ+4D)W0H:[?G:K>H[#CL\\#PW.H9W>L:W>L:" + "W>L:W>L:W>L:W.H9W.H9W.H9W.H9W.H9W.H9V^D8W.H9W.H9W>L:W^T=XN`@YO0D" + "Z_HJ[OTM[OTM[/LKZ_HJZ_HJZODIZODIZ_HIZODIZODIZODIZODIZODIZODHZODH" + "ZODHZ?@HZODHZ?@HZODHZODHZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ/L:U.(1RM@&P\\_^P<6V><6V><6V><6V><7VN@7V^D8V^D9V^D9W.H:" + "W.H:W.H:V^H:VNH:VND9V>@9V>D9V>@9V>@9V>@9VN@9VN@9V>@9V>@9V>@8V>@9" + "V>@8V>@8V><8V>@9V>@8V>@8V>@8VN@9V>@8V><8VN@9V>@8V>@8VN@9V>@9V>@8" + "V>@8V>@9VN@9VN@9VN@9VN@9VN@9VN@9V>@8U^46O,K\\P<[]SMP,TM`0T^$1U.(2" + "U.(2T^$1U.(2U.(2U.(2T^$1T^$1TM`0TM`0TM`0TM`0TM`0T=\\/T=\\/T=\\/T=\\/" + "T=\\/T=\\/T=\\/T=\\.T-X.T=\\/TM`0SMP,SMP,SMP,SMP,SMP+S=L+S-H*S=L*S=L+" + "S=L+SMP,SMP,SMP,SMP,SMP,S]T-S]T-S]T-S]T-S]T-T-X.S]T-S]T-T-X.T-X." + "T-X.T-X.T-X.T-X.T-X.S]T,SMP+S-H*R]@(R=8&Q]4$Q=,\"P]#`P\\__P\\_^PL[]" + "PLW\\PLS\\P,S[O\\OZP,OYO\\KYOLKYOLGXOLGWOXN`=ZODGZ/85V^@7W.H9W>L:" + "WNP;WNP;WNP;WNP;WNP;W>L:U.(2M,+TIK/EE*#3H*W?GZS>I;+CW.H9W>L:W>L:" + "W>L:W>L:W.H9W.H9W.H9W>L:W.H9W.H9W.H9V^D8V^D8V^D8W.H9W.H9W>L:W^T=" + "X_$@YO4E[/LK[_XN[?PLZ_HJZ_HJZ_HJZ_HIZODIZODIZODIZODIZODIZODIZODH" + "ZODHZODHZODHZODHZODHZ?@HZ?@HZ?@HZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ/,2U>,1UN03VN@7X.X>Z/8F[?PL[?PL" + "Z_HJZ_HIZODIZODIZ?@HZ?@HZ/<6V><6V><6V><7VN@8V^D9VN@8W.H:" + "W.H:W.H:V^H:VNH:VND:VND9V>D9V>@9V>@9V>@9VN@9V>@9V>@8V>@8V>@8V>@9" + "V><8VN@9V><8V>@9V>@9V>@8V>@8V>@8V>@9V><8V><8V>@9V>@8V>@9V>@9V>@8" + "V>@8V>@8V>@8VN@9VND9V>@8VN@9VN@9V><8U.,3MHJO<7U>,3T^$1T=\\/T-X.S]T-S=L+R]D)R=<'QM0#P]#`O\\S\\O,GY" + "N,7TM<'PM<'OO,?U4EV,)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D?XN[" + "W>H9Z?@GZ?@GZ?@GZ?@GZO@GZODHZODHZ_HIZ_HI[/LI[/LJZODHZ/,2S-H)P<_]M\\7RL;_MK+OFGZW9DJ#," + "P,W]P]#`P]#`Q-(!Q=,\"Q=,\"Q=,\"QM0#Q]4$Q]4$QM0#Q=,\"QM0#R-8%R-8%R=<&" + "RM@'RM@'P,W\\S-H)Q]4#RM@'RM@'RM@'R]D(S-H)T=\\.UN44U.(2U.(1V>85V^D8" + "W.H9W>L:WNL:WNP;WNP;WNP;WNP;W>L:U^45Q]4$JK;HJK?HH*W?V><6W>L:W>L:" + "W>L:W>L:W>L:W>L:W>L:W.H9W.H9V^D8W.H9W.H9V^D8V^D8V^D8V^D8V^D8W.H9" + "WNL;W^T=X_$AY_8F[/LK[_TN[?PLZ_HJZ_HJZ_HIZODIZODIZ_HIZODIZODIZODI" + "ZODIZODHZODHZ?@HZ?@HZ?@HZODHZ?@HZ?@GZ?@HZ?@GZ?@GZ?@GZ?@GZ?@GZ/,2U.(1U.(1U.(1U.(1T^$0TM`/TM`/TM`/V.85Y/(B" + "[/LK[/LKZODIZ?@HZ?@HZ/<6V><6V><6V><6V><7V><7VN@8V^@8V^D8V^D9" + "W.H:W.H:W.L;VNH:VND9VND9V>@8V>@8V>@9V>@9V>@8V>@8V>@9V>@8V><8V>@9" + "V>@9V><8V><8V>@8V><8V>@8V>@8V><8V>@9V>@8V><8V><8V><8V>@8V>@8V>@8" + "V>@8V>@8V>@8V>@8V>@8V>@8V>@9VN@8V.87SMP.M<+RR=<'T-X.TM`0T^$1U.(2" + "T^$1T^$1T^$1T^$1T^$1T^$1TM`0TM`0TM`0TM`0TM`0TM`0T=\\/T=\\/T=\\/T=\\/" + "T=\\/T=\\/T=\\/T=\\/T=\\/T=\\/T-X.S]T-S]T-S]T-T-X.T-X.T-X.S]T-S]T-T-X." + "T-X-T-X.S]T-T-X.S]T-T-X.S]T-S]T-S]T,SMP+S=L+S-H)RM<'QM,\"Q,_^PG^P2U2%)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D?X6NEYN`IJ_9M,#MN,/RN\\?V" + "O\\O[Q]4$S-H)V><7UN04T^$1T=\\/T-X.SMP,S=L+R]D)R-8&Q=,\"PL__O\\S\\N\\CX" + "N,7SML+PM\\/QN<3R+SMK)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D+3EJH:W=YO0C" + "Z?<6TM`/R=<%OLS[ML/QL\\'NL;_LK+OGH*_:EJ71" + "P,W]P]#`P]#`Q-(!Q=,\"Q=,\"QM0#QM0#Q]4$QM0#O\\S\\L+WKI[/@M\\/RQM0\"R-8%" + "RM@'RM@'O\\S[Q=,\"Q=,!R]D(R]D(R]D(R]D(RM@'R]D(S-H)T=\\.UN03U>,2U.(1" + "V.85VN@7W.D8W>L:W>L:WNP;WNP;WNP;WNP;W>L:UN04ML3UEJ+3S]T,W>L:W>L:" + "W>L:W>L:W>L:W>L:W>L:W.H9W.H9W.H9W.H9W.H9W.H9W.H9V^D8V^D8V^D8V^D8" + "V^D8W.H9W>L:W^T=X_$AZ/8F[?PL[_XN[?PKZ_HJZ_HIZODIZODIZODIZODIZODH" + "ZODIZODHZODHZODHZ?@HZ?@HZ?@GZ?@GZ?@GZ?@HZ?@GZ?@GZ?@GZ?@GZ?@GZ?@G" + "Z/86V><6V><6VN@7VN@7VN@8VN@8V^D9V^D9" + "W.L;W.H:W.L;V^H:VND9VND9V>D9V>@9V>@9V>@8V>@8V><8V>@8V><8VN@9V>@8" + "VN@9V>@8V>@9V>@8V><8V><8V>@8V><8V><8V><8V><8VN@9V>@8V><8V>@8VN@9" + "V>D9V>@8V>@8VN@9V>@8VN@9VN@9V><8U^86P](#N\\CWR]D)T-X.TM`0T^$1T^$1" + "T^$1T^$1T^$1T^$1T^$1TM`0TM`0TM`0TM`0TM`0TM`0TM`0T=\\/T=\\/T=\\/T=\\/" + "T=\\/T=\\/T=\\/T=\\/T=\\/T=\\/T-X.T-X.T-X.T-X.T-X.T=\\/T-X.T-X.T-X.T-X." + "S]T-T-X.S]T-SMP,SMP,S=L+S-H)R=8%QM(!P,KYM+[KHZS:DIO(@(FV:G*@3E>&" + ",#MK)S-D)S-D)S-D.4)U5EJ5.#YZ*S%J+S)L-3IS65Z7<7BK)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D9FZ:@8>ODIG\"H:K5ML'PN<;U" + "O\\O[P]#`R=8&T^$1V><7U.(2TM`0T-X.SMP,S-H*R]D(R-8%Q=,\"PL__OLO[N\\CW" + "N,3SML+PN,3RKKCF)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D256%P,S\\Z?@GZ?@G" + "Z?8EZ/8EZ/<4W^T,2T^(0V.85VN@6V^D7W>L:WNP;WNP;WNP;WNP;WNP;W>L;UN44U>,2W>L:W>L:" + "W>L:W>L:W>L:W>L:W>L:W>L:W.H9W.H9W.H9W.H9W.H9W.H9V^D8V^D8V^D8V^D8" + "V^D8V^D8V^D8W.H9W>L;X.X>Y/(BZ/<7V><6V><6V><7VN@8VN@8VN@8VN@8V^D9" + "W.H:W.H:W.L;W.H:VNH:VND9VND9V>@9V>@9V><8V><8V><8V><8V><8V><8VN@9" + "VN@9V><8V><8V><8V><8V>@9V><8VN@9V><8V><8VN@9V>@9V>@8V>@8V>@8V>@8" + "V>@8V>@8V>@8V>@9V>@8V>@8V>@8V><8U>05N'^S0TQ\\)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D2%.\"AHZV@(>OFZ+-JK3@NL;V" + "P,S\\P]#`R-4$S=L*V><7UN04TM`0T-X.SMP,S-H*RM@(R-8%Q=,\"P<[^O\\>V><6T-X*S]T+P<[]N,;TM,'OLL#MLL#MLL#ML;_LK;SHIK7@H*[:" + "P<[^P]#`P]#`Q=,\"Q=,\"QM0#Q]4$Q]4$R-8%O\\S\\GJS;=X2O<'VJ>8>UC9S*EZ/2" + "C);\"M\\/QS-H)QM0$R=<&R]D(R]D(R]D(R]D(R]D(R]D(R]D(R]D(R]D(RM@'S-H)" + "T-X-UN43U>,2U.(1U^44VN@6V^D8W>L:WNP;WNP;WNP;WNP;WNP;W>L:W>L:W>L:" + "WNP;W>L:W>L:W>L:W>L:W.H9W>L:W.H9W>L:W.H9W.H9W.H9W.H9W.H9V^D8V^D8" + "V^D8V^D8V^D8V^D8V^D8W.H9WNP;X.X=Y/(BZODH[OTM[OTM[/LKZ_HJZ_HIZODI" + "ZODIZODIZODHZODIZODHZ?@HZ?@HZ?@HZ?@HZ?@GZ?@HZ?@GZ/<6V><6V><6V><6V><7VN@7VN@8VN@8V^D9" + "W.H:W.H:W.H:W.H:VNH:VND9V>D9V>@9V>@9V>@8V>@9V>@9V>@9V><8V>@8VN@9" + "V>@8V><8V><8V><8V>@8V>@8V><8V><8V><8V>@9V>@9V>@8V>@9V>@9V>@9V>@8" + "V>@8V>@8V>@8V>@9V>@8V>@8V>@8V><8TN$2M,'QQ=(\"SMP,T=\\/TM`0T^$1T^$1" + "T^$1T^$1T^$1T^$1TM`0TM`0TM`0TM`0TM`0TM`0T=\\/T=\\/T=\\/T=\\/T=\\/T=\\/" + "T=\\/T=\\/T=\\/T=\\/T=\\/T=\\/T-X.T=\\/T-X.T-X.T-X-S]T-S]T,S=L+RM<'P,2V.<7T^$1T-X.SMP,S-H*RM@(Q]4$Q-(!P,W]O(:Q=H.OA93!FZG9FZK8" + ".41R-T!L@8JUN<7SR-8%RM@'R]D(R]D(R]D(R]D(R]D(R]D(R]D(RM@'R]D(RM@'" + "R]D(R]D(T-T,UN03U>,2T^$0U^44VN@7W.D8W>H9WNP;WNP;WNP;WNP;W>L:WNP;" + "W>L:WNP;WNP;W>L:W>L:W>L:W>L:W>L:W.H9W.H9W>L:W.H9W.H9W.H9W.H9W.H9" + "W.H9V^D8V^D8V^D8V^D8V^D8V^D8W.H9WNP;X>\\>Y/,CZODI[_XN[OTM[/LKZ_HJ" + "ZODIZODIZODHZODHZODHZODHZ?@HZ?@HZ?@HZ?@HZ?@HZ?@HZ?@GZ?@GZ?@GZ?@G" + "Z?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ?@GZ/<6V><6V><6VN@7V><7VN@7VN@7V^D9V^D9" + "V^D9W.H:W.H:V^H;V^H:V^H:VND9V>@9V><8V>@9V>@9V>@9VN@9VN@8V>@9V><8" + "V><8V>@8V><8V><8V><8V><8V>@8V>@8V>@8V>@8V>@8V><8V><8V>@8V>@8V>@8" + "VN@9VN@9V>@8V>@9V>@8V>@8V>@8V.<7S-L,ML+RQ]4%SMP,T=\\/TM`0TM`0T^$1" + "T^$1T^$1T^$1T^$1T^$1TM`0TM`0TM`0TM`0TM`0T=\\/T=\\/T=\\/T=\\/T=\\/T=\\/" + "T=\\/T=\\/T=\\/T-X.T=\\/T=\\/T-X.T-X.S]T-SMP+R]D)Q=($LK[RFZ7;@8>];G&J" + ";&^I;W2U;G6V;W2[8&*=,3QO)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D0$M^4%21/D)[/$%]046!4EB5>X&W+CIK)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D=7ZJAHVVA8RUH:G3LKOG" + "P,S\\Q-$!Q]4$R=<&S]T,V><8U>,3T=\\/SMP,S-H*R=<'Q]4$P]#`P,W]O,GYN,7T" + "M\\/RN,3RO8>T>HBTC9O*I;7CH+#@" + "-D)P&B=7!A)\"*3)<@8RXN,3RQ]4$RM@'R]D(R]D(S-H)R]D(R]D(R]D(R]D(R]D(" + "R]D(RM@'RM@'R]D(S]T,UN03U>,2T^$0U^44V><6V^@7W>L:WNP;WNP;WNP;WNP;" + "WNP;WNP;WNP;WNP;W>L:W>L:W>L:W>L:W.H9W>L:W>L:W>L:W.H9W.H9W.H9W.H9" + "W.H9V^D8W.H9V^D8V^D8V^D8V^D8V^D8V^D8W.H9WNP;X>\\?YO0D[/LK[_XN[OTM" + "Z_HJZODIZODIZODHZODHZ?@HZODHZ?@HZ?@HZ?@HZ?@HZ?@GZ?@GZ?@GZ?@GZ?@G" + "Z?@GZ/\\?Z/(2V><6V><6V><6V><7VN@8VN@8V^D8V^D9" + "V^D9W.H:W.H:W.H:W.H:W.H:VND9VND9V>@9V>@9VN@9V>@9VN@9VN@9VN@9VN@9" + "V><8V>@8V><8V><8V><8V>@9V>@8V>@8V>@8V>@8V><8V><8V>@9V>@9V>@9VN@8" + "VN@9VN@8V>D9V>@8V>@8V>@8V>@8U^86PL`\"O,CWRM@'S]T-T=\\/TM`0T^$1T^$1" + "T^$1T^$1T^$1TM`0T^$1TM`0TM`0T=\\/TM`0T=\\/T=\\/T=\\/T=\\/T=\\/T=\\/T=\\/" + "T=\\/T=\\/T-X.T-X.S]T-S]T-SMP,RM@(P,S^J;+GBI/-;'.T96JL:FRM;&^P;W*S" + "X>XX_$@[/HI[OTL[?PKZ_HIZODHZODH" + "Z?@GZ?\\>W.H9" + "UN02SMP*PL_^N=X&MM<+P" + "Q-(!Q=,\"QM0#QM0#Q]4$Q]4$R-8%R=<&R=<&OXFV?(RXE:32K+KII;/B" + "-D)R&R=8!!!!!1%\"!A%\"*S-?@XVYNL7SR-8%RM@'R]D(R]D(R]D(R]D(R]D(R]D(" + "RM@'R]D(RM@'RM@'RM@'R]D(S]T,U>,2U>,2T^$0UN03V><6V^D8W.H9W>L:WNP;" + "WNP;WNP;WNP;WNP;WNP;WNP;W>L:W>L:W>L:W>L:W>L:W>L:W>L:W.H9W.H9W.H9" + "W.H9V^D8W.H9V^D8V^D8V^D8V^D8V^D8V^D8V^D8V^D8W.H9W^P,2U>,2U>,2TM`0S]T-S=L*R=<&S-D(R]D(TM`0R]D(T-X.T=\\/T=\\.T=\\.T-X." + "T-X.SMP+S=L*S-H)R]D(T-X-Y_8FZ/H''>H'(=W_(='O#9FFC)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D3%*+3E*22$F*2DN,3$^-8FJF9W&F)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D+SIKCY?!BI.^C9:`I:[8" + "M\\+PP]#`Q]0#R=<&R]D(T=\\.V>@8U.(2SMP,S-H)R=<&Q=,\"PL__OLO[N\\CWN,7T" + "N,3SN<;TL+OJ)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-DQM0\"W^P;Y/$@ZODH[OTL[OTL[/HIZODH" + "ZODHZODHZ_@GZO,1U.(1TM`/UN03V><6VN@7W.H9" + "W>L:WNP;WNP;WNP;WNP;WNP;WNP;W>L:W>L:W>L:W>L:W>L:W>L:W.H9W.H9W.H9" + "W.H9W.H9V^D8V^D8V^D8V^D8V^D8V^D8V^D8V^D8V^D8V^D8V^D8W>L:W^TL:LK[JBI6_T-\\.U.(2" + "U>,2U>,2U>,2TM`/T=\\/T=\\/S=L*R]@(T-X-S=L*R]D(QM0#R]H)T=\\/T=\\/T-X." + "T-X.S]T,S=L*S-H)S-H)Q-'`W^X=Z?@GZ/<6V><6V><7V><7VN@8VN@8VN@8VN@8" + "V^D9V^D9W.H:W.H:W.L;W.H:VND9V>D9VN@9VN@9V>@9V>@8V>@8V>@8VN@9V>@8" + "VN@9VN@9VN@9V><8V><8VN@9V><8V><8V><8V>@8V>@8V><8VN@9V>@8V>@9V>@8" + "V><8VN@8V>@8V>@8V>@8V>@8V.<7T^$2M<+RP]#`S-H*S]T-T=\\/TM`0T^$1T^$1" + "TM`0TM`0TM`0TM`0TM`0TM`0TM`0T=\\/T=\\/T=\\/TM`0T=\\/T-X.T-X.S]T-SMP," + "SMP+S-D)PLW]H:S;=G^N.D5T)S-D+3EJ='JX;W&T;G.Y<'C\"=7[(>(++?(C1?XK4" + "@8S6@HS6@(G3=W_'9&BC)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D-T%T6%R;3%&23U\"53E\"36V&=H9X.T;XN`?Z?8E[?LJ[_XM[?PK" + "Z_HIZ_DHZ_DGZO@FZO@GZO@GZO@GZODHZ_DHZO@GYO4DXN`?WNP;V.85TM`.Q]0\"" + "O,CVML3OM,2TM`/U>,2V><6" + "V^D8W.H9W>L:WNP;WNP;WNP;WNP;WNP;W>L:W>L:W>L:W>L:W>L:W.H9W.H9W.H9" + "W.H9W.H9W.H9W.H9V^D8W.H9V^D8V^D8V^D8V^D8V^D8V^D8V^D8V^D8V^D8W.H9" + "X.X=X_$AZ?82NTM`0U.(2" + "U>,2U>,2U>,2T=\\/T=\\.T=\\/T=\\.T=\\/T=\\/T-T-Q]4$S]T,T=\\.S=L*S]T,T-X." + "T-X.S]T-S=L*S-H)R]D(R-8%R=<%Z/<6V><6V><7VN@7VN@7VN@8VN@8" + "V^D9W.H:W.H:W.H:W.H:V^H:VNH:V>D9VN@9VN@9V>@9V><8V>@8V>@8VN@8VN@9" + "V><8V>@8V>@9V>@9V>@8VN@9V>@8V>@8V><8V>@9V>@8V>@9VN@8V>@8V>@8V>@8" + "V>@8VN@8V>@8VN@9VN@9V><8V.<7S=L-M<+QQ=,#S=L+T-X.T=\\/TM`0TM`0TM`0" + "TM`0TM`0TM`0TM`0TM`0TM`0TM`0TM`0T=\\/T=\\/T=\\/T-X.S]T-SMP,S-H)QM,\"" + "J;/C=X*Q-4!Q)S-D)S-D)S-D)S-D)S-DU='N`=7W%>H/.?HG4@HW:AI'?B9/A" + "AY+?AY+?A)#<>H3-8F>@)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D76&=4E>;45694%6855N9<7TM`1S-H*R-8%Q-(!P,W]OL9W^P;X>X=Y/(AZ?\\>W>H9U^44S]P+P\\__NL?U" + "ML3PM,2TN$0" + "U>,2V><6V^@7W>L:WNP;W>L:WNP;WNP;WNP;W>L:W>L:W>L:W>L:W>L:W.H9W.H9" + "W.H9W.H9W.H9W.H9W.H9V^D8W.H9V^D8V^D8V^D8V^D8V^D8V^D8VN@7VN@7VN@7" + "V^D8W>L:X.X=Y/(BZ_HI[_XN[OTMZ_HJZODHZODHZ?@HZ?@HZ?@HZ?@GZ?@GZ?@G" + "Z?@GZ?@GZ?@GZ/<6V><6V><6VN@7VN@7VN@8VN@8" + "V^D9V^D9W.H:W.H:W.H:W.H:VNH:VNH:VND9VN@9VN@9V>@8V>@8V><8V>@8V>@8" + "VN@9VN@9VN@9V>@8VN@9V><8V><8V><8VN@9V><8V>@8V>@9VN@9V>@8VN@8V>@8" + "V>@8V>@8V>@9V>@8V>@8V><8U^86Q=,$N<;UR-8%SMP,T-X.TM`0TM`0TM`0T^$1" + "TM`0TM`0TM`0TM`0TM`0T=\\/TM`0T=\\/T-X.S]T-SMP,S=L*R=<&M\\+QBI3$2%.\"" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D:G*M?8/'?X?.@HS7AI+?BI;DC)CGCIGI" + "C9CHB);DAI+A<7K#65^4)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D55N47%^E6%F@6%NA55R>;'.P3E:&)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D,SYOF:',EI_*F*'-" + "HJS7M+_LQM,\"R=8%R]@(R]D(S]T,V.86U>,3S=L+Q]4%P]#`P,S\\O,GYN<;UN,7T" + "NL;UOL9WNP:X.TY?,A" + "ZO@F[?PK[_XM[_XM[OTL[?PKZ_DHZ?8EY/(AX.X=V^D7U>,2R]D(O\\SZNL?TM\\7Q" + "M\"A9(#!E)(S!@)3)C*#5F*SAI*SEJ*#9G%R-58FN5R-8%S-H)R]D(R]D(" + "R]D(R]D(R]D(R]D(R]D(R]D(RM@'RM@'RM@'RM@'RM@'R=<&R=<&R=<&S=H)T^$0" + "U>,2TM`/U>,2V><6VN@7W>H9W>L:WNP;WNP;WNP;W>L:W>L:W>L:W>L:W>L:W.H9" + "W.H9W.H9W.H9W.H9W.H9W.H9V^D8W.H9V^D8V^D8V^D8V^D8V^D8V^D8VN@7VN@7" + "VN@7VN@7V^D8W>L:X.X>Y?0C[/LK\\/\\O[OTMZODIZODHZ?@HZ?@HZ?@GZ?@GZ?@G" + "Z?@GZ?@GZ?@GZ/@R]D(T^$1" + "TM`0TM`0T=\\/TM`/T=\\.T-X.T-X.T-X.T=\\/T=\\.SMP+S]T,R]D(R]D(S=L*S=H)" + "RM@'S]T,S-H)R]D(RM@'R=<&J[?DY_8FZ?@GZ?@GZ?@HZ?@HZ?@HZ?@HZ?@HZ?@H" + "Z/H9T^$0" + "R=8$P<6V><6V><7V><7V><7VN@8VN@8" + "V^D9V^D9W.H:W.H:W.H:W.H:V^H:V^H:VND9VND9VND9V>@9V>@9V>@8V>@8V>@8" + "V>@8V>@8V>@9V>@8V>@8VN@9V><8V><8V><8VN@9V>@9VN@9VN@8V>@8V>@8V>@8" + "V>@9V>@8V>@8V>@8V>@8V>@8UN45OXC65V&K65R?5%N0)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D2U.(8VFN8&*J862K7&\"F96NM86B;)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-DAX^]FJ/-FZ70" + "H*G5K[KFP03U^45S]T-Q]4%P]#`O\\S\\O,CXN<;UN,7T" + "NL?VLKWK*C9G)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D.45VU^03VN@6V^D7WNP:X.T\\>X_$@Y_4DZ_DH[OPL\\?\\N[OTLY?0CW^T*#5F*SAI*SAI*39H#AI+#A=%LK[KR]D(R]D(R]D(" + "R]D(R]D(R]D(RM@'RM@'R]D(RM@'RM@'RM@'RM@'RM@'RM@'RM@'R=<&R=<&RM@'" + "S-H)TM`/U>,2TM`0U.(1V><6V^D7W.H9WNP;WNP;W>L:W>L:W>L:W>L:W>L:W>L:" + "W>L:W.H9W.H9W.H9W.H9W.H9W.H9W.H9W.H9W.H9V^D8V^D8V^D8V^D8V^D8V^D8" + "VN@7VN@7VN@7VN@7W.H9WNP;X>\\?Y_4E[?PL[_XN[/LKZODIZ?@HZ?@HZ?@GZ/L:T^$0R=8$" + "PL[]P,SZP<6V><6V><7V><7VN@7VN@8" + "VN@8V^D9V^D9W.H:W.H:W.H:W.H:V^H:VND9VND9VND9VN@9V>@8V>@9V>@8V>@8" + "V>@8V>@8V>@8VN@8V>@8VN@9V>@8V><8V>@9VN@9V>@8VN@9V>@8V>@8V>@8V>@8" + "VN@9V>@8V>@8VN@8V>@8V>@8U>,4N,7VP8'.<7K&9FNU" + "1TZ8.D&.866T@H?125&#)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D-#]Q:&^P:&NR9FVU8VJR96NO:W*J)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D9&Z;H*G3GZC3" + "H:O8J[7BN<5V><6V^D:X_$@Z?X_$?Y?,BZ/8EY/(BVN@7T-X-QM,!O,2T^$0T^(1V.85VN@7W.H9W>L:W>L:W>L:W>L:W>L:W>L:" + "W>L:W>L:W>L:W>L:W>L:W.H9W.H9W.H9W.H9W.H9V^D8V^D8V^D8V^D8V^D8V^D8" + "V^D8VN@7VN@7VN@7VN@7V^D8W.H9WNPL:T^$/R-4#P`:G&X=7RY-4!P" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D+3EJFZ//HJO6" + "I*W:J+/?LK[KQM+`R]D(S-H)S-H*S]T,U^45U.(2S-D)PL_`OLO[N\\?VN<;UNL;U" + "OH6T)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D+3EJS]T,T-X1P,X.O\\T1P<\\1RM@1X.T=Y_8E" + "X.XKKOIM<+QO,GYP<[^" + "Q-(!QM0#R-8%R-8%R=<&R=<&R=<&RM@'RM@(QM0$M,2T^$0T^$0V.84VN@7V^D8W>L:W>L:W>L:W>L:" + "W>L:W>L:W>L:W>L:W>L:W.H9W.H9W.H9W.H9W.H9W.H9V^D8V^D8V^D8V^D8V^D8" + "V^D8VN@7V^D8VN@7VN@7VN@7VN@7V^D8W.H9W^T=X_$AZO@I\\/XN[_TMZ_HJZ?@G" + "Z?@HZ?@GZ?@GZ?@GZ?@GZ?@GZ/,3UN04U^45UN04U.(2TM`0T=\\/T=\\.T=\\/T=\\/T-X.T-X.T-X.SMP,RM@'" + "R-8%R-8%R=<&R=<&R-8%L[[MNL:U.(0R-4#P<6V><6VN@7V><7V><7" + "VN@8V^D9V^D9V^D9V^D9W.H:W.H:W.H:V^H:VND9VND9VN@9VN@9V>@8V>@9V>@8" + "V>@8V>@8V>@8VN@9V><8VN@9V>@8V>@9V>@8V>@8VN@9VN@8V>@8V>@9V>@9V>@9" + "V>@9VN@9V>@8VN@9V>@8V.<7R]H+ML/RQ=(\"S-H*S]T-T=\\/T=\\/T=\\/T=\\/TM`0" + "T-X.S]T-S-H*R-0#J;/A;'>D*S=H)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D*C5F8+*>H7.8.PI:W9" + "IJ_,2T^$0TM`/U^44V><6V^D8W.H9W>L:" + "W>L:W>L:W>L:W>L:W>L:W.H9W.H9W.H9W.H9W.H9W.H9W.H9W.H9W.H9V^D8V^D8" + "V^D8V^D8V^D8VN@7VN@7VN@7VN@7VN@7VN@7VN@7W>L:X.X=Y?,BZ_HJ\\/\\O[OTM" + "ZODIZ?@HZ?@GZ?(1RM@&PL[]PHV.85V><6V><6V><7V><7V><7" + "VN@8VN@8VN@8V^D9V^D9W.H:V^H:V^H:V^H:VND9VND9VN@8VN@8VN@9VN@9VN@8" + "V>@8VN@9V>@8VN@9VN@9VN@9V><8V>@8V>@8V>@8V>@8V><8VN@8V>@9VN@9VN@9" + "VN@9VN@9V>@9VN@9V>@8U^86Q=,$NL;VQM0$S=L*T-X.T=\\/T=\\/T=\\/T=\\/S]T," + "S-H)Q,__GZG87&:4)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D;G6\\65^O:&JUA(;0D9CCF*#JF:3Q" + "E:#OB)3E>H',AXK23UF,)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D4EN3@8?-@HK4AY#<@8O5?(/+;G6N" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D/$=WI*W9" + "J;+?J[;CK[KGM<'NR=8#S=H*SMP+S]P,TM`0U^45T-X.QM0$OLO[N\\?WNL?VO,CW" + "J+3B)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D>H:`N<8)O,L/OL9WNP:W>L9VN@7RM@'N\\?UN<;RN<7QN,7QN,7QN,3PM\\/N" + "ML+NM\\/ON,3OHZ_;8FV;?8BVG:C4FJ;2FZ?4GJO7H[#=J;?CL+WLM\\3SO,GYP,W]" + "P\\__Q=,\"R-8%R-8%R=<&R=<&R=<&R=<&RM@'R]D(Q=,#ML3TKKWLL+[MML3TN<6V^D8" + "W.H9W>L:W>L:W>L:W>L:W>L:W>L:W>L:W.H9W.H9W.H9W.H9W.H9W.H9W.H9V^D8" + "V^D8V^D8V^D8V^D8V^D8VN@7VN@7VN@7VN@7VN@7VN@7V^D8W>L:X.X>YO4D[?PL" + "\\/XO[/LKZ?@HZ?@HZ?@HZ?@GZ?@GZ?@GZ?@HZ?@GZ?@GZ/,2W.H:W>L;WNP86V><6V><6V><7V><7" + "VN@7VN@8V^D9V^D9V^D9W.H:V^H:V^H:V^H:V^H:V^D9VN@9VN@8VN@9V>@8VN@8" + "VN@9V>@8V>@8V>@9VN@9VN@9V>@9V>@8V>@8VN@9VN@9V>@8V>@8V>@8VN@9VN@9" + "VN@9VN@9VN@9VN@9V>@9UN45OLO]O8'/FZ7R" + "EJ'ODISK?875:FJM3%6))S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D-4!RBX[2BY'>CYGGCYCFAY#;@HC'" + ",#MK)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D>H6S" + "J[;BK+CDK[OHML+POLGUS=H*SMP+S]P,T=\\.UN04TM\\0R-8&O\\O[O,CXN\\?VO(0U>,1VN@6W.D8W.H8W.D7V>85R=8%N\\?UN<;RN<7QN,7QN<7QN,7PM\\/N" + "N,3PN<3PDY_*,CUN)S-D)S-D0$Q[@8VZHJW:HZ_;IK/?J[GFL;[MM\\3RO,GXP,W]" + "P\\__Q=,\"Q]4$R-8%R-8%R-8%R=<&R=<&R=<&R]D(RM@(P,W^M,1" + "V.85VN@7V^D8W.H9W.H9W>L:W>L:W>L:W>L:W.H9W.H9W.H9W.H9W.H9W.H9W.H9" + "W.H9V^D8V^D8W.H9V^D8V^D8V^D8VN@7VN@7VN@7VN@7VN@7VN@7W.H9WNPH:V^D9VN@8V.86T^$1S]T,S-H)RM@(R-8&R-8%Q]4$QM0#" + "QM0#QM0#Q=,\"NL;TG*C5X.\\?Z/U*C5F)S-D)S-D)S-D)S-D)S-D2%.#BY7\"JK7AK;KGLK_MM\\3RO,CXO\\S\\" + "PL__Q-(!QM0#Q]4$R-8%R-8%R-8%R=<&R=<&RM@'S-H)R=<'OLO\\M\\7UN,;VO>8:S;'BE:W>E@8Z[F:;4LK[LQ=,\"RMD'" + "Q]4$OL:W>L:W>L:W>L:W>L:W>L:W>L:W>L:W.H9W.H9W.H9" + "W.H9W.H9W.H9V^D8V^D8V^D8VN@7V^D8VN@7VN@7VN@7VN@7VN@7VN@7VN@7W.H9" + "W^T(2PML+QK;;B:G.>EJ/1P\\_^Q-#_Q-#_Q='`Q-#_Q-#_" + "Q='`Q-#_Q-#_Q=#_Q-#_Q-#_Q='_Q-#_Q-#_Q-#_Q='`Q-#^KKGFQ]0!QM+`Q='_" + "Q='_QM+`QM+`QM'_Q=#_Q='_Q='_Q='_QM'_QM'_QM'_QM#^Q<_^Q,[]P\\W[P8'/CY?H>G[#.T9X)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D:'&JF9[IG:;RHJOXGZGVEI_L" + "@X;$*35F)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ";'BFK[KGK[OHLK[LN,3SOLCUSML+S]P,T-X-T^$1T^$1RM@(P<[^O,CXO,CWL+SK" + "*C5F)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D86VDL;[_O(;L:W>L:W>L:W>L:W>L:W>L:W.H9W.H9" + "W.H9W.H9W.H9W.H9V^D8W.H9V^D8V^D8VN@7V^D8V^D8V^D8VN@7VN@7V><6VN@7" + "V^D8W>L:X.X>Y?,C[?LK\\/\\O[OTMZ_HIZ?@HZ?@HZ?@HZ/`?W.H9U^45T^$0S]T,S=L*R]D(R=<&R-8%Q]4#Q-'`" + "O,CVIK+>L+WLV><6XN`?YO0CY_8EZ/<7V><7VN@8VN@8VN@8V^D9V^D9W.H:V^H:V^H:V^D9V^H:VND9VN@8VND9VN@8" + "V>@8V>@9V>@8VN@9V><8VN@9V>@8VN@8VN@9VN@9VN@9VN@9VN@9VND9VND9VND9" + "VN@9VND:VN@9V^D:V><8S=P-M\\/RP]#_R-4%P'_%E9CBE:#PD9[PD)OOE)[Q" + "F:/REZ'N<7C'@H?'+CIK)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D.D5XG:'GHZOUJ+#]J++^H*SX" + "F)_F6V*6)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + "*35FF*/0L;SILK[LM<'PM\\'NS-H)SMP+S]T,TM\\/TM`0R]D)PL__OXGCEJ#SJKD$;7G.>X39GJKX" + "FJ;RF:/MN,+RQM/]V.43VN<5VN<6U^03R-8$N\\;QN<3MN<7PNL;RO,CTGZO8/TM[" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D7&>6G*C7N<;UOLO[" + "P<6V^D8W.H9W>L:W>L:W>L:W>L:W>L:W>L:" + "W.H9W.H9W.H9W.H9W.H9V^D8V^D8V^D8V^D8V^D8V^D8V^D8VN@7VN@7VN@7VN@7" + "VN@7VN@7W.H9WNP;X>\\?Y_8E[OTM\\?\\O[?PKZ?@HZ?@HZ/;7FDG*G7Q-#_Q-#_Q-#_Q='_Q-#_Q-#_" + "Q-#_Q-#_Q-#_Q='`Q-#_Q='_Q='_Q-#_Q='_Q='`Q='_Q,_]KKGFQ]0!QM'_Q=#_" + "Q='_QM'_QM'`QM'`QM'_QM'`QM'_QM'`QM'`QM#^Q<_]P\\[\\PLW[P<7V><7VN@8VN@8V^D9V^D9V^D9V^H:V^H:V^H:V^H:VND9VN@8VN@8VN@9" + "V>@8V><8V><8V>@9VN@9VN@9V><8VN@9VN@9VN@9VN@9VN@9VND9VN@9VN@9VN@9" + "VND9VND9V^D9VND9V.87R-8'NL;UP,S\\G:C73EB')S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D=(#!=7S/=GW*B(W6CI/>EY_J" + "E9_MDIOIC)3>>X&_)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-DA8W)IZ[VJK3^K+@!JK;`" + "H:OWE9O8.D5V)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D35F(K+CELK[LM<'PN<7TP<6V^D8W.H9W.H9W>L:W>L:W>L:" + "W>L:W.H9W.H9W.H9W.H9W.H9V^D8V^D8W.H9V^D9V^D8V^D8V^D8V^D8VN@7VN@7" + "V><6VN@7VN@7V^D8V^D9W^T85SML*Q,_^P,S[P,S[P,S[PIK/BP,OY:'&;B)3#O,CWI:_<;WNHGJO:Q-#_Q='`Q-#_Q='`Q='`Q-#_" + "Q-#_Q-#_Q=#`Q-#_Q='`Q='`Q='`Q-#_Q='`Q=#_Q-#_O,;TJK7BQ]+`QM'`QM'`" + "Q-#^QM'`QM'_Q='_QM'_QM'`Q]+`Q]'_QM#^Q,[]P\\[\\PLW[P<6V><7V><7VN@8VN@8V^D9V^D9V^H:V^H:V^D9V^H:V^D9V^D9VN@8VN@8" + "V>@8V>@9V>@8V>@8VN@9VN@9VN@9VN@8VN@9VN@9VN@9VN@9VN@9VN@9VN@9VND9" + "VND9VND:VN@9VND9U^86Q-(\"L+SJ9&^>)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D3%:,DYSBD)WKB)7FAY+AEJ#K" + "E:#MDYSIDIC=4EF+)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D4UV3J;#TK+7^K[H\"K[L#" + "J[@!HZWVC9+/+SML)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D:G:EL;WKM,#OM\\/RM\\/OSMP+S]T,T-X-T-X.R]D(PL[^OLKZM\\+Q+CIK" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D.45X" + "K;;[NL8-O(>R>8BTBIC(I[7DK+OJ35>&'2E:\"15&" + "!!!!#AE+\"!-$*35?2U)\\E)[*O\\OZR=<&RM@'RM@'R]D(RM@'RM@'R=<&R=<&R=<&" + "R=<&R-8%R-8%R-8%R-8%RM<&SMP+T^$0TM`/T=\\.U>,2V><6W.H9W>L:W>L:W>L:" + "W>L:W>L:W>L:W>L:W.H9W.H9W.H9W.H9W.H9V^D8V^D8V^D8V^D8V^D8VN@7VN@7" + "VN@7VN@7VN@7VN@7VN@7V^D8W.H9W^T<6S]P+Q-#_P<7V><7VN@8VN@8V^D9W.H:V^D9W.H:V^D9V^D9V^D9VND9VN@9" + "VN@9VN@9V>@9VN@8VN@9VN@9V>@9VN@9VN@9VND9V>D9VND9VND9VND:VN@9VND9" + "VND:V^D:V^D:VN@9UN05LK[O04Q\\)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D45N2CYC=F:/LF:/LEZ#K" + "EI[HE)S@EIW:.$%Q)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-DCI;4K;7[L+L\"L;T%" + "L+T%K;H!IK#XBY'*,#ML)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D@X^^M,#OML+QNL;TQ=,!S]T,S]T-S]T-R=<&PL[^O\\O[FZ?6)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D4%V5" + "HZSQK;;^OHBU?(NXC)O*J;CGKKSK252\"'\"A9\"!1%" + "!1%\"(R]A(\"Q>'RI7\"Q9',CIG0TISF*+/QM0#RM@'R]D(RM@'RM@'RM@'RM@'R=<&" + "R=<&R-8%R-8%R-8%R-8%R-8%R-8%R=<&S=L*T^$1T^$0T-X-U.(1V><5V^D8W.H9" + "W>L:W>L:W>L:W>L:W.H9W.H9W.H9W.H9W.H9W.H9V^D8V^D8W.H9V^D8V^D8V^D8" + "VN@7VN@7VN@7VN@7VN@7VN@7VN@7V^D8W>L:X.X>YO0D[?PL\\/\\O[?PLZ?@HZ/\\?V><6T-T+Q='`P,S[PCIO)O\\S[H:G6<7V><7V><7VN@8V^D9V^D9V^D9V^D9V^D9V^D9V^D9VND9VND9" + "VN@9VN@9VN@9VN@9VN@9VN@9VN@9VN@9VN@9VN@9VND9VND9VND9V^D:V^D:VND9" + "VND9VN@9V^D:VN@9U.(2BI;')S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D9&^GFZ'DEYWBEYSA" + "F)WCF9[BBI'+)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D1U*&I[#QL+G_LKT%" + "L[\\&L[`'K[T$J[3\\D9K5/4AY)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D*35FB)3\"ML+PNL;UNL7TSMP+S]T,S=L*R-8%P)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D?HS%" + "J[C`HJ[\\L+P$N,8.L;`*FJ?WF*7UI[/`@HS?H:VM<'PQ=,\"Q]4$Q]4$R-8%R-8%R=<&R-8%RM@'S-H)T=\\/" + "V.86T^$1S-L*R-8&Q]4$QM0#Q=,\"Q-(!PL__P]#`R]D(S=L*R]D(RM@'R]D(S-H)" + "R]D(R]D(R]D(R]D(S-H)R-8%M\\7TCIK*?HNY@8^^D)[-JKGHKKSK2E6#'2E:!A)#" + "!A)#(S!B*35H)C-E(2Y?)B]='2=6.T)KA(ZYQM8$RM@'R]D(RM@'RM@'RM@'RM@'" + "R=<&R=<&R=<&R-8%R-8%R-8%R-8%R-8%R-8%R=<&S-H)TM`/T^(1T=\\.T^$0V.85" + "V^D7W.H9W>L:W>L:W>L:W>L:W.H9W.H9W.H9W.H9W.H9V^D8V^D8V^D8V^D8V^D8" + "V^D8V^D8VN@7VN@7VN@7VN@7VN@7V><6VN@7V^D8W>L:X>\\?Z/8:SL;[MN<3R;'2?D)[+P,W\\G:;1=8&NIK/BQ='`Q='`Q-#_Q-#_Q='`Q='`" + "Q-#_Q-#_Q='`Q-#_Q='`Q='`Q='`Q=#_M;_MJ;3AQ-'_Q=#^O\\GVQM'`QM'`QM'_" + "Q=#_QM'_QM'_Q]'`Q=#^Q<_]Q,[]PLW[P<7V><7VN@8V^D9V^D9V^D9V^D9V^D9V^D9V^D9V^D9VN@9" + "VN@9V>@9VN@8VN@9VN@9VN@9VN@9VND9VND9VND9VND9VND9VND9V^D:VND9VND:" + "V^D:V^D:VND9VN@9T=\\/86T)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D,#ML?HJYML+RQM0\"Q]4$Q]4$R-8%Q]4$R=<&R=<&S-H)" + "S]T,T^$0T^$1T=\\.S=L+R]H)RM@'R=<&RM@(S=L+SMP+S-H)R]D(R]D(R]D(R]D(" + "RM@'R]D(R]D(R]D(S-H)R=<&M\\3TD9[-@Y\"_B);%DJ'0K+SJK[[M8W&@(BYA\"!1%" + "!A)#(C!A*35G*SAJ*SAJ*C9H(2Y@)C%?$1Q)H*S9RM@'R]D(RM@'R]D(RM@'R=<&" + "RM@'RM@'R=<&R=<&R-8%R-8%R=<&R-8%R-8%R-8%R-8%R=<&R]D(T=\\.U.(1TM`/" + "TM`/V.85VN@7W.H9W>L:W>L:W.H9W>L:W.H9W.H9W.H9W.H9V^D8V^D8V^D8V^D8" + "V^D8VN@7VN@7VN@7VN@7VN@7V><6V><6V><6V><6VN@7W.H9WNP<7V><7VN@8VN@8V^D9V^D9V^D9V^H:V^D9V^D9V^D9V^D9" + "VND9VND9VN@8VN@9VN@9VN@9VN@9VN@9VND9VND9VND9VND9VND9V^D:VND9V^D:" + "V^D:V^D:V^D:V><8S=L,5V*1)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D,CYP0DQ_" + "04M^)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D*35FB)3/L+K^" + "LKP!M+\\&ML,*ML,+M<0+M,$)LKX%GZCG9W\"F*C9G)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D=8*QML+RM;[KR]D(R=8%Q=(!NL7U3%B()S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D*C9G:'2LH:WMO,D-O#Q]4$RM@(R]D(R]D(RM@'RM@'" + "RM@'R=<&R=<&R=<&R=<&R=<&R=<&R-8%R-8%R-8%R-8%R-8%R-8%R-8%RM@'T-X-" + "U.(1TM`/T-X-U^44VN@7V^D8W.H9W.H:W.H9W.H9W.H9W.H9W.H9V^D9W.H9V^D8" + "V^D8V^D8VN@7VN@7VN@7VN@7V><6VN@7V><6V><6V><6VN@7VN@7W.H9W^T=Y?0D" + "[OPL\\O`P[OPLZ?@GZ/8*NNL;UH:K7;7>DGJK9P\\_^" + "?H:P@8VZML+PML#M;GBCE:+0PL_^F*',>(2QJ+7DQ-#_Q='`Q='`Q='`Q-'`Q-#_" + "Q-#_Q-#_Q='`Q='`Q='`PL[\\J++?M,#MQ],!Q-#^PL[]P\\_\\OLGUQ='_QM'_QM'_" + "QM'`Q]'_QM#^Q,[\\Q,[\\PLS[P<7V><7VN@8V^D9V^D9V^D9V^D9V^D9V^D9V^D9V^D9" + "VND9VND9VND9VN@9VND9VND9VN@9VND9VND9VND9VND9VND9VND9V^D:V^D:V^D:" + "V^D:V^D:VN@9V.87Q]0$,S]O)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D+SMME9_<" + "L;K^L[T\"M+\\&M<()ML0+M\\0,M\\0,M\\0+M<$%H:OJ<'JR,CYO)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D4EZ/G*C5N,'LQ='`J+3C3UJ*)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D56\"4AY'-KKGZO)S-D)S-D)S-D" + ")S-D-$!Q:'2D')S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D-4%RA)\"_N<;VQ]4$Q]4$R-8%R=<&" + "R=<&R=<&R]D(S-H)SMP+S]T,SMP+S=L*S-H)R]D(RM@'RM@'RM@'RM@'R]D(R]D(" + "RM@'RM@'R]D(R]D(R]D(RM@'OD9_.E:/2G:K:JKCGM,+RLL#O?8^`-T9X" + "+#IO\"15&$!Q-(BY?*SEJ+SMM+CMM(2Y@!A)#$!E&ML+QR]D(R]D(R]D(RM@'RM@'" + "RM@'R=<&RM@'RM@'R=<&R=<&R=<&R=<&R=<&R-8%R-8%R-8%R-8%R-8%Q]4$R-8%" + "RM@'SMP+U.(1TM`/T-X-U>,2V><6V^D8V^D8W.H9W.H9W.H9W.H9W.H9W.H9W.H9" + "V^D8V^D8V^D8V^D8VN@7VN@7VN@7VN@7VN@7VN@7V><6V><6V><6VN@7V^D8W>L:" + "X>\\>Z/<7VN@8VN@8VN@8V^D9W.H:V^D9V^D9VN@8VND9" + "VND9VND9VND9VND9VND9VN@9VN@9VND9VND9VND:VND:VND:VND:V^D:V^D:V^D:" + "V^D:V^D:V^D:UN05O8F\\" + "2EB-/4R\"#!A*!1%\"$1U.)#%B*SAI'RQ=!1%\"#AA&LK_NR]D(R]D(R]D(R]D(RM@'" + "RM@'RM@'RM@'R=<&R=<&R=<&RM@'R=<&R=<&R=<&R=<&R=<&R=<&R-8%R-8%R-8%" + "R-8%R-8%R=<&S-H)T^$0U.(1T=\\.T^$0V.85VN@7V^D8W.H9W.H9W.H9W.H9W.H9" + "V^D8V^D8V^D8V^D8V^D8V^D8VN@7VN@7VN@7VN@7V><6VN@7V><6V><6V><6VN@7" + "V^D8WNP;XN`@Z_HJ\\?\\P[OTMZO@HZ/H:T^$0" + "R-8$P'^KAI*_N<;TL;SI;GFEF*33P\\_^D9O'>H:SK+GHQ-#_Q='`Q='`Q-#_Q='`Q='`" + "Q='`Q=#_Q-#_OLGWI:_87V><7VN@8VN@8V^D9V^D9V^D9V^D9V^D9V^D9" + "V^H:VND9VND9VN@9VN@9VN@9VND9VND9VND9VND9VND:VND:VND9VND9V^D:V^D:" + "V^D:V^H:VN@9U.(3J+3D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + "+#AI?HK#KKG[L;O_L;P!L[X%ML$)M\\0+N,8-NL8.NL8.N<8.N<8-M\\,*LKX!H:WM" + "C);2='ZW7VJ>2%2'+3EJ)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D+3EJ0TY_" + "8&J>?(6]DIS7IK#PM\\(#OHR`3ER0156+'BM@\"!1&!1%\"#AE*!Q-$!!!!$!M(M\\3SR]D(R]D(R]D(R]D(RM@'" + "RM@'RM@'RM@'RM@'RM@'R=<&R=<&R=<&R=<&R=<&R=<&R=<&R=<&R=<&O,GXP]#`" + "R-8%R-8%R-8%R-8%R-8%R]D(TM\\.U.(1T=\\.T=\\.UN03V><6V^D8V^D8W.H9W.H9" + "V^D8V^D8V^D8V^D8V^D8V^D8VN@7V^D8VN@7VN@7VN@7V><6VN@7V><6V><6V><6" + "V><6VN@7V^D9W^T(1R=<$" + "PX:TKKOIQ='`Q='`Q='`Q-#_Q='`Q='`" + "Q-#_Q-#^NP\\_]Q-#^Q-#^Q-#^Q,_^P\\_^P\\_^OLCTQ-#^QM'_QM#^Q,_]" + "P\\[\\PLW[P<7VN<8VN@8VN@8V^D9V^D9V^D9V^H:V^H:" + "V^D9VND9VND9VND9VND9VND9VND9VND9VND:VND:VND:VND:VND9V^D:VND:V^H:" + "VND:VNH:V>@9TM`1C9C()S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D7&B>HJWML;K^L+K_L[X#L[`%ML()N,0+N,4-N<8-N\\<.N\\,2V><6VN@7V^D8" + "W.H9V^D9W.H9V^D8V^D8V^D8V^D8V^D8V^D8VN@7VN@7VN@7VN@7V><6V><6V><6" + "V><6V><6V><6VN@7W.H9X.X>Y_8F[_XN\\/\\NZODIY_8FY_8FY_8FY_8EY_8FY_8F" + "Y_8EY_8EY_8EY_8FY_8EY_8EY_8EY_8EYO4EY_8EYO4DY/(BWNP;UN,2R]@&PL[]" + "P,S[P,S[PX>UK[SKQ='`Q-#_Q='_Q='_Q='`Q-#_" + "P\\_^LKSIJ[;CP\\_]P\\_]P\\_]P\\_^P\\_]P\\_]Q,_^P\\_^P,OXQM'_Q=#^Q<_]Q,[\\" + "PLW[PGU>,2UN03UN04UN04U^45V.85V.86V><7V><7VN@8VN@8V^D9V^D9V^D9V^H:" + "V^H:V^H:V^H:VND:VND:VND9VN@9VND9VND9VND:VND:V^D:VND:VND9V^H:V^D:" + "V^H:V^D:V.<7S]T.;'>G)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D,S]Q?HK#J;/TL;K^K[K_L;T#L[\\&M<((M\\,*N<4-N<4-N<8.N\\HZ[<6V><6V><6" + "V><6V><6V><6V><6VN@7V^D8W>L;XO$@Z_HJ\\/\\O[OTMZ?@HY_8FY_8EY_8FY_8F" + "Y_8EY_8EY_8FY_8FY_8EY_8EY_8EY_8EY_8EYO4EY/,BW^TH>SM,'PL;OH:G2?E*#/P<[]DYS(>(2RK+CGPL[\\" + ";76ABI?%O,CXJ[7A<'RIG*G8Q-#_B(VX>86QL+SKQ='`Q='`Q='`Q='`Q='_P\\[]" + "KKCEL;WKQ=#^P\\_]P\\_^P\\_^P\\_]P\\_^P\\_^P\\_^Q-#^Q,[\\Q<_^Q,[]Q,[\\PLW[" + "P<7VN@8VN@8V^D9V^D9V^D9W.H:" + "V^H:V^D9V^H:V^H:VNH:VND9VND9VND9VND9VND9VNH:VND:V^H:V^H:VND:V^D:" + "V^D:VND:U^86R]@)/TIZ)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D/TM^B)//K;;VKKG[L+K_L+T\"LK\\$M+`'M<((ML,*M\\0+" + "N,0,N<4-N<8,NL8-NL8.NL8.NL8.NL8-NL<.NL<.NL<.N\\<.N\\<.NL<.NL8-N<4+" + "ML0*M+`'L;T$K;D!JK7]IK'ZI*[WH:OTH:?QGJ3MGJ/IEIW=>H&Z.T=Y)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D15*\"EJ/3PL__R-8%R-8%R-8%R=<&R-8%R=<&R=<&R=<&R=<&R=<&" + "R=<&RM@'RM@'RM@'R]D(R]D(R]D(RM@(PL__M<3SLL#PM<6VN@7" + "V><6V><6V><6V><6V><6V><6VN@7W.H9W^TB@8R[M\\/RKKCF;'>BEJ/2PL[]D9G%>H:TKKKHPBYC&OLKYJ;+?;WNHGZS:Q-'`@HFS>8>SLK_NQ='`Q='`Q='_Q-#_PL[\\J;/?" + "N,3QP\\_]P\\[]Q-#^Q-#_P\\_^P\\_^Q,_^Q-#^Q=#_P\\[[Q<_]Q,[]P\\W\\PLS[P<7V><7VN@8VN@8V^D9V^D9W.H:" + "V^D9V^H:V^H:V^H:V^H:VNH:VND:VND:VND9VND9VNH:VND:VNH:V^H:V^H:V^H:" + "V^H:VND:UN45N<7V)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D/TM]?(B_GZGFKKG[K[G\\L+G^L+O`L;X\"L[\\%" + "M+`'M,$'M<$)M<$)ML()ML$)M,$)M<()M,$(M,$'M,$'LK\\&LKT%K[L\"K[H!KK?_" + "J[3]J;/[I['XIJ[UHZSSH*GPH:;MH*7KFZ'DA8W)7FB>+#AI)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D3%B)FZ?7P]#`R-8%R-8%R-8%R-8%R-8%R=<&R=<&R=<&" + "RM@'R=<&RM@'RM@'RM@'RM@'R]D(S-H)RM@(O\\S]M\\7VN,7UN\\CXO\\S\\PL__OLS\\" + "P,W]P<[^PL__P]#`P]#`N\\GYLL#QJ;CHKKSLOLO[R]D(R]D(R]D(R]D(R]D(R]D(" + "R]D(RM@'RM@'RM@'P]#`I[3C>(:S<'RK>(:UD9[.G*C8=G^M;G>CI[+?R-4$S-H)" + "R]D(R=<&R=<&R=<&R=<&R=<&R-8%R-8%R-8%Q]4$Q]4$QM0$Q]4$Q]4$RM<&T=\\." + "T^$0S-H)T=\\.V^D8V^D8V^D8V^D8V^D8V^D8V^D8VN@7VN@7VN@7VN@7VN@7V><6" + "VN@7V><6V><6V><6V.85V><6V><6V><6VN@7W.H9X.X>Y_4E\\/XN\\/\\OZODIY_8F" + "Y_8EY_8EY_8FY_8FY_8EY_8FY_8FY_8EY?,CX.X=V.85SML)P\\_^P,SZP,S[PAA)&^N,7SK+;D;GFDF*;4PL_^C9;\">X>TK[SKP,SZ" + ":W2>C9K)OLOZIJ_<;WNGH*W;Q-'`AHZYC)K)O,GWQ='`Q='`Q='_P,OYIK#<7VN@8VN@8VN@8V^D9V^D9" + "V^D9V^H:V^H:V^H:V^H:V^H:VND:VND:VND:V^H:V^H:V^H:V^H:V^H:V^H:V^D:" + "V^D:VND9U>,4H:W>)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D3UN/?XO$G*;CK;;WKKCZKKC\\" + "K[C]L+K_L;K`L+K`L;P\"L+P\"L+P\"L+P\"K[L!K[L!KKG`K;C`K+?_JK3\\J;/[J;+Y" + "IJ_WI:[UHZOQHZKPHZONFZ/CAI#+8FRB+SMM)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D5%^0GZO;Q-(!Q]4$R-8%R-8%R-8%R=<&R=<&" + "R=<&R=<&R=<&RM@'RM@'RM@'RM@'R]D(S=L+R]D*P,W^O,GZO(:S=(*OA9/\"GZS<6V><6V.85V.85V><6V><6V><6V><6V^@8W>L;X_$AZ_HJ\\?\\P[OTM" + "Z?@HY_8FY_8EY_8EY_8FY_8FY_8EY?0CX>\\>VN<6S]P+P\\_^O\\OZP,SZPCIO)O\\OZI*S9<'NGHJ_P,SZP\\_]" + "P\\_]P\\_^Q,_^P\\_^P\\_]Q-#^Q=#_QM'`Q<_^O\\KVP\\W\\PLS[P<7V><7VN@8V^D9V^D9" + "V^D9W.H:V^H:V^H:V^H:V^H:V^H:VNH:V^H:V^H:VND9V^H:V^H:V^H:V^H;V^H:" + "V^H:V>@9T^$1@X^`)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D-T1U8V^E?8G#" + "D9O9GZGGJ[/SK;?WK;7XK;;YK+7YJ[7ZJ[;ZJ[;ZJK3YJK/XJ;+WJ+#UIJ_SIZ_Q" + "GZGIDYS;A(_*<'RT4%N/*C9G)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D6&25HZ_?Q=,\"R-8%R-8%R-8%R=<&" + "R=<&R=<&R=<&RM@'RM@'R]D(RM@'R]D(S-H)T-X.S]X.P]$!P,W]P,W]P<[^Q-(!" + "Q]4$PL__O\\S\\P,W]P,W]P<[^P<[^P<[^P<[^P]#`S=L*R]D(R]D(RM@'R]D(R]D(" + "R]D(R]D(R]D(RM@'P,W]H:W=>(6S>8>TCYW,J+;FJ;;F/D=T&B97!!!!!!!!!Q)\"" + "2E)]E9[+OLKYR-4$R-8%R=<&R=<&R-8%R-8%R-8%Q]4$Q]4$Q]4$QM0#QM0#QM0#" + "Q=,\"P<[^M<'PV><6V^D8V^D9V^D8V^D9V^D8V^D8VN@7V^D8VN@8VN@7VN@7VN@7" + "VN@7VN<7V><6V><6V><6V><6V.85V><6V><6V><6V>86V><6V^D9WNP=Y?,C[OTM" + "\\?`P[/LKZ/<7NGG:K9P\\_^B)\"]?HNXL[_NOCYS*P,S[H*G5<7VKI;+@QM'`N,3SP\\_^Q='`Q-#_M\\'NJ[;BPL[\\P\\_]P\\_^" + "P\\_^Q-#^P\\_]P\\_^P\\_^QM'_QM'_Q,_]P<.D9X" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D7VN;I[/CQM0#R-8%R-8%" + "R-8%R-8%R=<&R=<&RM@'RM@'RM@'RM@'R]D(S=L*U>,3U.,3QM4$PL_`PL__PL__" + "QM0#Q]4$QM0#P]#`P,W]P,W]P,W]P<[^P<[^R-8%S-H*R]D(RM@'R]D(RM@'R]D(" + "R]D(R]D(R]D(R=<&O\\S\\G*G8>8:S?(FWDZ'1K+KJJK?G.4-P'\"A9!!!!!!!!!!!!" + "!A%\"%A]-/T5PB9/!N<3SQ]0#R-8%R=<&R-8%R-8%Q]4$Q]4$Q]4$Q]4$QM0#QM0#" + "Q=,\"O\\S\\M\\3SV><6V^D8W.H9V^D8V^D9V^D8V^D8V^D8V^D8VN@7VN@7VN@8VN@7" + "VN@7VN<7V><6V><6V><6V><6V><6V.85V>86V.86V><6V><6V><6VN@7W.H:X>\\?" + "Z?\\>VN@7T=\\-Q='`O\\OZO\\OZP,2U>,2UN04UN04U^45V.86V><6V><7VN@8VN@8" + "V^D9V^D9V^D9V^D9V^D9V^H:V^H:V^H:V^H:V^H:VNH:V^H:V^H:V^H:V^H;W.H:" + "VND:U^86Q=,#+CIK)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D9G&AJK?GQM0#" + "R-8%R-8%R-8%R=<&R=<&RM@'RM@'RM@'RM@'R]D(SMP,V><7V><7R=<'Q=,#Q-(!" + "Q-(!Q=,\"R-8%Q]4$R-8%Q-(!PL__P<[^P<[^S=L*S-H)R]D(RM@'RM@'R]D(R]D(" + "RM@'R]D(R]D(R=<&OHBU?8JYF*?6KKSKJ+;E.$%N&R=8!!!!#QQ/%B18" + "+CEF*S5C\"!-$&2)0,CIC?XFUN,/RR-8%R-8%R-8%R=<&R-8%Q]4$Q]4$QM0#QM0#" + "Q=,\"OLOZN\\?VVN@7V^D8W.H9W.H9W.H9W.H9V^D8V^D8V^D8V^D8VN@8VN@7VN@7" + "VN@7VN@7V><6V><6V><6V><6V><6V.85V><6V><6V.85V>86V><6V.85V><6VN@8" + "WNP;Y/(BZ/<6TM\\.Q],\"P,SZO\\OZP,S[P@BYC$O,2U>,2UN03UN03UN04U^45V.86V>87V><7VN@8" + "VN@8V^D9V^D9V^D9W.H:V^H:V^H:V^H:V^H:V^H:V^H:V^H:V^H:V^H:W.L;V^H:" + "VND9U>04L+SN)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D*35F:W:F" + "K+GIQ]4$R-8%R-8%R=<&R=<&R=<&RM@'RM@'RM@'R]D)S]T,V><7V^D9SMP,R-8&" + "QM0$Q-(!Q=,!Q-(!Q-(!P]#`P<[^P<[^R]@'S=L*R]D(RM@'RM@'RM@'RM@'RM@'" + "RM@'R]D(R]D(R=<&N\\CXE:+1>XJX@(Z]F:G8K[WLIK/C-#UK%R-4!!!!%2%4*#5H" + ")#%D%R59,CQI+3AE\"11$'B=3/D-PJK7DQ]4$R-8%R-8%R-8%Q]4$Q]4$Q]4$QM0#" + "Q=,\"O,GXO<6V><6V><6V><6V><6V><6V><6V><6V.85V.85V.85V.85V.85" + "V><6VN@8W.H9VN@8U^45U.(1SML*QM,\"P,S[O\\OZP,SZP,S[P,S[PQ@(RZML+QN,+P" + "9G\";E*'/PL[]NL;TO,GXQM,!Q='`O\\KWJ;/@P,SZQ<_^Q-#^Q-#_Q-#_Q-#_Q-#_" + "Q-#_Q=#_QM'`Q,_]PLW\\P,2U>,2UN03UN03UN04U^45U^45V>87V><7" + "VN@8VN@8V^D9V^D9W.H:V^H:V^H:V^H:V^H:V^H:V^H;V^H:V^H:V^H:V^H:V^D:" + "V><8U.(2E:+3)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + "*35F;GJJL+SLQ]4$R-8%R=<&R=<&R=<&RM@'RM@'RM@'S-H)SMP+U.(2V.86T^$1" + "S=L+RM@(R-8&QM0#Q=,\"Q=,\"QM4$S-H*SMP,R]D(R]D(RM@'RM@'RM@'RM@'RM@'" + "RM@'RM@'RM@'R-8%NL?WE:'1?XV\\A9/\"FZO:L+[MI;'@.T5S%R-4!!!!%B)4*#5G" + "*SAJ*C=J*35H&299,SUM+S9C\"!-$1E%^O<6VN@7V><6VN@7V><6V><6V><6V><6V><6V>86V><6V.85V><6V.85" + "V><6V.85UN04U.(1S]T-RM<&P]#_O\\O[OLKYP,SZO\\OZP,S[PQ-#_Q='`Q=,!Q-#_O,?TJK7BP\\_]Q,_]Q,_]Q='_Q-#^P\\_^Q-#_Q-#_" + "QM+`Q='_PLW\\PLW[P,2U>,2U>,2UN03U^44U^45V.86V>87" + "V><7VN@8VN@8V^D9V^D9V^D9V^H:V^H:V^H:V^H:V^H:V^H:V^H:V^H;V^H;V^D:" + "V>@8T=\\/=H*S)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D*35F!1%\"#AI)H:_=R-4%R-8%R-8%R-8%Q]4$QM0#QM0#" + "QM0#N,7TQ-#`V^D8W.H9W.H9W.H9W.H9W.H9W.H9W.H9V^D8V^D8V^D8V^D8V^D8" + "VN@8VN@7VN@7VN@7VN@7V><6V><6V><6V><6V><6V><6V><6V><6V><6V><6V><6" + "V><6V.85UN03T=\\.R]D(Q=,\"P<[]OLKYOLKYO\\OZP,SZP,S[P,2U>,2U>,2UN04U^45U^45V.86" + "V>87V><7VN@8V^D9V^D9V^D9V^D9V^D:V^H:V^H:V^H:V^L;V^H;V^H;V^H;VND9" + "U^86S=L,3EJ+)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D+#AI=(\"OLK[NQ]4$R=<&R=<&RM@'RM@'RM@'RM@(S-H)S=L*" + "S]T,T=\\.T=\\/T=\\/T=\\.T-X-SMP+S-H)RM@'RM@'RM@'RM@'RM@'RM@'RM@'RM@'" + "RM@'R]D(RM@'R=<'OLO[H*W=C)G)D9[.F:G8LL'PM\\3TC)K*.TE\\'\"E;\"A9''2E:" + "*C9H+#AJ+#AI+3EK+3EL(2U?!!!!%!]0GJO;Q-(!R=<&R-8%R-8%Q]4$Q]4$QM0#" + "Q=,\"ML+PR-4$W.H9W.H9W.H9W.H9W.H9W.H9W.H9W.H9V^D8V^D8V^D8V^D8V^D8" + "VN@8VN@7VN@8V^D8VN@7VN@7V><6V><6V><6V><6V><6V><6V><6V><6V><6V><6" + "V><6V.85U>,2T-X-R]@'Q=(!PH>XTM\\/U.(1U>,2U>,3UN03UN04U^45" + "V.86V><7V><7VN@8V^D9V^D9V^D9W.H:V^H:V^H:V^H:V^H:V^H:V^H:V^H:VN@9" + "U>04P<[_*35F)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D+#=H=X.SM,#OQ]4$R-8%R=<&R=<&R=<'RM@'RM@'" + "R]D(R]D)S-H*S-H)S-H)R]D)R]D(RM@'R=<&RM@'RM@'RM@'RM@'RM@'RM@'RM@'" + "RM@'RM@'RM@'RM@'P<[^JK?GE*'1EZ34GJS<6V><6VN@7V><6V><6V><6V><6V><6" + "V><6V.85UN03T-X-R]@'Q=,!P,2UN03U^45" + "U^45V.86V><7V><7VN@8V^D9V^D:W.H:V^D9V^H:V^H:V^H:V^H:V^H:V^H:V>@8" + "T^$1J[?H)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D+CIJ>X:VM<'PQ]4$R-8%R=<&R=<&R=<&" + "RM@'R=<&RM@'RM@'RM@(RM@'RM@'RM@'R=<'R=<&R=<'RM@'R=<&RM@'RM@'RM@'" + "RM@'RM@'RM@'RM@(Q=(\"M,'QGJO;G:K:H[+AK+KIN,;VO,GYK[SL>8F[3ER1/DZ%" + "#1E,!A%##AI*(2U>)C-D$Q]1!!!!&RA5K;KJQ-(!R=<&R-8%R-8%R-8%Q]4$Q]4$" + "Q=,\"KKKIS]T+V^D8W.H9Q=,#P,W]UN03V^D8W.H9W.H9V^D8V^D8W.H9V^D9V^D8" + "V^D8V^D8V^D8V^D8V^D8VN@7VN@7VN@7VN@7V><6VN@7V><6V><6V><6VN@7V><6" + "V><6V.85U>,2T-X-RM@'Q=,!PADI_,P,W[E9[+,2U>,3" + "UN04U^45V.86V><7V><7VN@8V^D9V^D9V^D9V^H:V^H:V^H:W.H:W.H:V^D9V.86" + "S]T.C9G*)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D,#QM?8FXM<'PQ]0#R-8%R=<&" + "R=<&R=<&R=<&R=<&R=<&R=<'RM@'RM@'R=<&R=<'RM@'R=<&RM@'R=<&RM@'RM@'" + "RM@'RM@'RM@'RM@(R-8%O,GYJ+?GH;#@J+;EK;SKN,;VN\\CXO\\S\\L\\'Q>HN^3%J." + "1E6-'RQ?\"19&!1%\"!A)#!!!!!!!!(\"M;LL#OQM0#R=<&R-8%R-8%R-8%Q]4$Q]4$" + "Q=,\"J[?ET^$/V^D8W.H9S-H*J[?IJ;7FML/ST]`/V^D8V^D8V^D8V^D9V^D9V^D8" + "V^D8V^D8V^D8V^D8VN@7V^D8VN@7VN@7VN@7VN@7VN@7VN@7VN@7VN@7V><6V><6" + "V><6V><6U>,2T-X-RM@'Q=(!PBDI_,P,W[E)S(=(\"LJK?EQ='`J+/@P<[\\Q='`Q-#_" + "O,;TJ;3APL[\\P,2" + "U>,2UN04U^45V.86V><7V><7VN@8V^D9V^D9V^D9V^H:V^H:W.H:W.H:V^D9U>,3" + "R]D*9'\"@)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D+CIJ>8.SL+SLQ]0#" + "R-8%R-8%R=<&R=<&R=<&R=<&R=<&R=<'RM@'RM@'R=<&R=<'RM@'R=<&R=<&R=<&" + "R=<'RM@'RM@'RM@'RM@'P]#`M,+SJ+?FJ[GHLL#OM<6V><6U>,2T-X-RM@'Q=,!P,2U>,3UN04U^45V.86V><7V><7VN@8V^@9V^D9V^D9W.H:W.H:V^D9V><7TM`0" + "P<6VN@7VN@7" + "VN@7V><6U>,2T-X-R]D'QM,\"P,3UN04U^45V.86V><7V><7VN@8VN@8V^D9V^D9V^D9VND9UN04SMP," + "I+#A)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D97\"@IK'AQ-(!R-8%R=<&R=<&R=<&R=<&R-8&R=<&R=<&R=<&R=<'R=<&R=<&" + "R=<&R=<&R=<&RM@'RM@'R]D(Q=,#OHR^5FB:/T^\"1%*\"D9_.P<[^R]D(R=<&R-8%R-8%R-8%R-8%Q]4$" + "P\\_`K;GGV><6V^D8W.H9W.H9W.H9W.H9W.H9V^D8V.86P](\"J+7GG:O<6U>,2T-X-R]D(QM,\"P<7VN<8V^@9V^D9V^D9V><7T^$2RM@(" + "?(>X)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D6V:7H*S;P]#`R-8%R-8&R-8%R-8&R-8%R=<&R=<&R=<&R=<&R=<&" + "R=<&R=<&R=<&RM@'RM@'RM@'RM@'QM0$O<6V^D8W.H9W.H9W>L:W.H9W.H9W.H9W.H9SMP+O,CYPM$!L;[OM\\3U" + "FJ76J;7FO,CYV><6VN@7VN@8V^D8VN@7VN@7VN@7VN@7VN@7VN@7VN@7VN@7VN@7" + "VN@7V.85U>,2T-X-R]D(QM,\"P<7V><7VN@8VN@8U^05S]T-P<[^" + ".D9W)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D45V-F:74P<[^Q]0$R-8%R-8%R-8%R=<&R=<&R=<&R=<&" + "R=<&R=<&R=<&R=<&RM@'RM@'R]D(R]D)R=<'P,W]OL:W>L:W.H9W.H9W.H9W.H9UN,3M\\/TL;_PQ=(\"RM@'" + "N,7WI+'CHZ_BQ-(\"T=X-R]D'U^44VN@7VN@7VN@7VN@7VN@7V^D8V^D8VN@7VN@7" + "VN@7V><6U.(1T-X-R]D(QM,\"PP,2U>,3UN04U^45V.86V.86V><7V.86T^$1RM@(GZO;" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D1U.#DIW-OLKZQ]4$R-8%R-8%R-8&R=<&R=<&" + "R-8%R=<&R=<&RM@'R=<&RM@'RM@'R]D)T=\\/S]X.P]$!P,W^PL__Q-(!QM4$P<[_" + "OLO[O\\S\\P,W]P,W]P,W]P<[^P<[^PL__R-8%R]D(R=<&R-8%R-8%R-8%Q]4$QM0#" + "P,3UN03UN04U^45U^45U>,3SMP,Q=,\"9'\"@" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D/4EYBI;%N\\CXQ]4$Q]4%R-8%R-8%" + "R-8%R-8&R=<&R=<&R=<&R=<'R=<&RM@(S=L*UN45U>04Q]4%Q-(\"Q-(!Q=,\"Q]4$" + "QM0#PL__O\\S]OLO[O\\S\\O\\S\\P,W]PL__S-H*RM@'R=<&R-8%R-8%Q]4$Q]4$Q]4$" + "O\\O[NL;UV^D8W.H9W.H9W.H9W.H9W>L:W.H9W.H9W.H9V^D8T=\\.D)[0C)C*GJK=" + "N<6U>,2S]T,R]D(Q=,\"PL[]O\\OZP,2U>,3UN04UN04T=\\/RM@(K[SL*35F" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D-D%R@HZ^M\\/SQ]4$R-8%" + "R-8%R-8%R-8%R=<&R=<&R=<&R=<&R=<'RM@(S=L+V><7V^H:S-L+Q]4%Q=0#Q=,\"" + "QM0\"Q]4$Q]4$Q=,\"P]#`P,W]P,W]RM@'S=L*R=<&R-8%R-8%R-8%R-8%Q]4$Q]4$" + "OH9W.H9W>L:W.H9W.H9W.H9W.H9W.H9V^D8T^$0NL?XI[3E" + "E:+4K+GIO\\S\\P<[^N<;WL+WNK+GJJKCIV><6V^D8V^D8VN@7V^D8V^D8V^D8V^D8" + "V^D8VN@7U>,2T-X-R]@'Q=,!PL[]P,S[PTM\\,V^D8W.H9W.H9W>L:W.H9W.H9W.H9W.H9W.H9V^D8V^D8V^D8TN$1" + "N\\GZG*G;E*'4G*G:N,3TOLO[GZO=O,KZV><6VN@7VN@7VN@7V^D8V^D8V^D8V^D8" + "V^D8V><6U>,2T-X-R]D'Q=,!PL[]P,S[PL[]PL[]PL[]P\\_^P\\_^P\\_^PL[]P\\_^" + "PL[]P\\_^Q-#^P\\_]PL[\\O\\KXI:_;N\\?TPLW[P,2VN@7VN@7VN@7V^@8V^D8V^D8V^D8" + "V^D8V><6U>,2T-X-R]D'QM0\"PL[]P,S[PL[]PL[]P\\_^P\\_^P\\_^P\\_^P\\_]PL[]" + "P\\_^Q,_^P\\_^PL[\\O,?TI*_;O\\KXP<6QM4%N,?XCYS-FZG:KKKJP,W]SMP+U^44VN@7V^D8V^D8V^D8" + "V^D8V><6U>,2S]T,RM@'Q=,!PL[]PPH8W>L:TM`.OLGWQM'_V.43W.H9W.D8W.H9W.H9W.H9W.H9" + "W.D8V^D8V^D8V^D8VN@7VN@7T-X.P]$!E*#2Q=,#FZ?8KKOLO\\S\\T^$0V^@8V^D8" + "V^D8V><6U>,2S]T,R]@'QM,!P<6VN<5V^@7W>L9V.44Q-#^P\\[[T]`.V^D8W.H9W.H9W.H9" + "W.H9V^D8V^D8V^D8V^D8V^D8V^D8VN@7U.,2U^44KKOLM,'RE*'3K;OMVN@7V^D8" + "V^D8VN@7U>,2S]T,RM@&Q=,!PL[]P,S[PS=L)V.85U^44V.85V><5V>85V><5VN<6W.D8V^@7R=8%P<6U.(1S]T,RM<&Q=(!P<6V><6V.85V.85V.84V^@6W.H9T=\\.P,W[R-0!" + "V.44V^D8V^D8V^D8V^D8V^D8V^D8V^D8V^D8V^D8V^D8V^D8VN@7U.(1V^D8V^D8" + "V^D8V><6U.(1S]T,RM<&Q='`P<6V><6V><6V><6V><6V>85V>85V.85V.44V.44VN<6W>H9U^43" + "Q-#_Q,_]T]`-V^@7V^@7V^D8V^D8V^D8V^D8V^D8V^D8V^D8V^D8V^D9V^D9V^D8" + "V^D8V><6U.(1S]T,RM<&Q='`PL[]P<6VN@7V><6V><6V><6V><6V>85V.85V.85V.44V.84V>85V>85" + "W.D8VN<6RM<&PLW[S=H&VN<6V^D8V^D8VN@7V^D8V^D8V^D9W.D9V^D8V^D8V^D8" + "V^D8V><6U.(1S]T,RM<&Q='`P<6VN<6VN<6VN<6V><6V><6V>85V.85V.85V.44V.85V.85" + "V>85V>85V^@7V^D7S]P+P<6U.(1S]T,RM<&Q='`P<6V><6V><6V><6V><6V><6V.85V.85V.85V.85" + "V.85V>85V>85V.85V>85VN@6U^03Q='_P\\[\\T-X+V^@7V^D8W.H9W.H9W.D9V^D9" + "V^D9V><6U.(1SMP+R=<&Q-#_P'DI[-O,CXQM,\"Q]4$Q]4$QM0#QM0#QM0#P]#`LK[L" + "GJC6G*;3F*+-JK7@L[[IQ<_]T=X,UN,2V>85V><6V><6V><6V><6V>85V>85V.85" + "V.85V.85V.85V.85V.44V.44V>85W.D8W.D7S-H(P,OYR-4\"V>85V^D8W.H9W.H9" + "V^D8V><6U.(1S]P+R=<&Q-#_P,S[P,S[O\\OYI['>ML+OP,SZP<6V><6V><6V>85V.85" + "V.85V.85V.85V.85V.44U^44V.44V>85V>85VN@7W.D8U.(1PLWZQ=#^UN,1W.D8" + "V^D8V.85T^$0SMP+R=<%P\\_^P,SZNL7RIK#JK7BH:S8BY7$@XVZJ[3@N,+LNL3PO<;SP\\W[S-@&T]`.U^03V.85V>85V.85" + "V>85V.85V>85V.85V.85U^44U^44U^44V.85V.85V.85VN<6WNP;VN@7R=8$PLW[" + "S=D'UN02T]`/SMP+R-4#P,OZKKGFJ+/@OLKXP,S[PL[]P\\[]PL[\\P\\_]P\\_^Q=#_" + "H*K8-#]P)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D7VN:FZ?7IK+BD9S)" + "85V>85V><6V>85V.85U^44V.44V.44U^44V.44V>85V><6VN@7W>H9W>L:" + "T-X-N\\?ULKSJJ[7BHZW:I[+?N\\;TP(0U^03V.44V.85V>85V.85V.85V.85V.85V.85V.85V.85V><6V><6V><6V><6" + "VN@7W.D8V>85T]`.R]@&QM+`P,SZP,SZPL[\\PL[\\PL[]PL[\\PL[\\O\\OY=H\"O)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D" + ")S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D)S-D1U*!B93!LKSIO,;TOLCWP,KX" + "Q=#_S=H(T]`/UN,2V.44V.85V>85V>85V.85V.85V.85V.85V.85V><6V.85V><6" + "V.85UN,2T=\\.R]@&Q-#_P82RJ[7BO,1U^44V.85V.85V>85V><6V.85V>85V><6V><6V><6" + "V>85U>,2T=X-R=<%Q-#_P<6V><6V><6V><6V><6" + "V.85U>,2T-T,R=8$Q-#_P85V.85V><6V><6" + "V.85U>(1S]T,R=8$Q-#_P +#include +#include + +#ifdef __DREAMCAST__ +#include +#include "../profiler.h" +#endif + +#include +#include + +#include "image.h" + +#define PROFILE 0 + +int main(int argc, char* argv[]) { + (void) argc; + (void) argv; + + fprintf(stdout, "Initializing\n"); + glKosInit(); + glClearColor(0.5f, 0.0f, 0.5f, 1.0f); + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + glKosSwapBuffers(); + + GLuint texture_id = 0; + glGenTextures(1, &texture_id); + glBindTexture(GL_TEXTURE_2D, texture_id); + + time_t start = time(NULL); + time_t end = start; + + int counter = 0; + + fprintf(stderr, "Starting test run...\n"); + +#ifdef __DREAMCAST__ +#if PROFILE + profiler_init("/pc/gmon.out"); + profiler_start(); +#endif +#endif + + while((end - start) < 5) { + glTexImage2D( + GL_TEXTURE_2D, 0, GL_RGB, width, height, 0, GL_RGB, GL_UNSIGNED_BYTE, header_data + ); + + ++counter; + end = time(NULL); + } + +#ifdef __DREAMCAST__ +#if PROFILE + profiler_stop(); + profiler_clean_up(); +#endif +#endif + + fprintf(stderr, "Called glTexImage2D %d times (%.4f per call)\n", counter, (float)(end - start) / (float)(counter)); + + return 0; +} diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt new file mode 100644 index 0000000..7dc2faf --- /dev/null +++ b/tests/CMakeLists.txt @@ -0,0 +1,26 @@ + + +FILE(GLOB GL_TESTS ${CMAKE_CURRENT_SOURCE_DIR}/test_*.h) + +INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}) + +SET(TEST_GENERATOR_BIN ${CMAKE_SOURCE_DIR}/tools/test_generator.py) +SET(TEST_MAIN_FILENAME ${CMAKE_CURRENT_BINARY_DIR}/main.cpp) + +ADD_CUSTOM_COMMAND( + OUTPUT ${TEST_MAIN_FILENAME} + COMMAND ${TEST_GENERATOR_BIN} --output ${TEST_MAIN_FILENAME} ${TEST_FILES} ${GL_TESTS} + DEPENDS ${TEST_FILES} ${GL_TESTS} ${TEST_GENERATOR_BIN} +) + +add_executable(gldc_tests ${TEST_FILES} ${TEST_SOURCES} ${TEST_MAIN_FILENAME}) +target_link_libraries(gldc_tests GLdc) + +if(NOT PLATFORM_DREAMCAST) +set_target_properties( + gldc_tests + PROPERTIES + COMPILE_OPTIONS "-m32" + LINK_OPTIONS "-m32" +) +endif() diff --git a/tests/test_allocator.h b/tests/test_allocator.h new file mode 100644 index 0000000..5967983 --- /dev/null +++ b/tests/test_allocator.h @@ -0,0 +1,189 @@ +#include "tools/test.h" + +#include +#include +#include +#include + +#include +#include + +#include "GL/alloc/alloc.h" + +static inline int round_up(int n, int multiple) +{ + assert(multiple); + return ((n + multiple - 1) / multiple) * multiple; +} + +#define POOL_SIZE (16 * 2048) + +class AllocatorTests : public test::TestCase { +public: + uint8_t* pool = NULL; + + std::vector> defrag_moves; + + void set_up() { + pool = (uint8_t*) memalign(2048, POOL_SIZE); + assert(((intptr_t) pool) % 2048 == 0); + } + + void tear_down() { + alloc_shutdown(pool); + free(pool); + } + + static void on_defrag(void* src, void* dst, void* user_data) { + AllocatorTests* self = (AllocatorTests*) user_data; + self->defrag_moves.push_back(std::make_pair(src, dst)); + } + + void test_defrag() { + alloc_init(pool, POOL_SIZE); + + alloc_malloc(pool, 256); + void* a2 = alloc_malloc(pool, 256); + void* a3 = alloc_malloc(pool, 256); + + alloc_free(pool, a2); + + alloc_run_defrag(pool, &AllocatorTests::on_defrag, 5, this); + + assert_equal(defrag_moves.size(), 1u); // Moved a3 -> a2 + + assert_equal(defrag_moves[0].first, a3); + assert_equal(defrag_moves[0].second, a2); + + assert_equal(alloc_malloc(pool, 256), a3); + } + + void test_poor_alloc_aligned() { + /* If we try to allocate and there are no suitable aligned + * slots available, we fallback to any available unaligned slots */ + alloc_init(pool, POOL_SIZE); + + // Leave only space for an unaligned block + alloc_malloc(pool, (15 * 2048) - 256); + + // Should work, we have space (just) but it's not aligned + void* a1 = alloc_malloc(pool, 2048 + 256); + assert_is_not_null(a1); + assert_equal(a1, pool + ((15 * 2048) - 256)); + } + + void test_poor_alloc_straddling() { + /* + * If we try to allocate a small block, it should not + * cross a 2048 boundary unless there is no other option */ + alloc_init(pool, POOL_SIZE); + alloc_malloc(pool, (15 * 2048) - 256); + void* a1 = alloc_malloc(pool, 512); + assert_true((uintptr_t(a1) % 2048) == 0); // Should've aligned to the last 2048 block + + /* Allocate the rest of the last block, this leaves a 256 block in the + * penultimate block */ + alloc_malloc(pool, 1536); + alloc_free(pool, a1); + + /* No choice but to straddle the boundary */ + a1 = alloc_malloc(pool, 768); + } + + void test_alloc_init() { + alloc_init(pool, POOL_SIZE); + + void* expected_base_address = (void*) round_up((uintptr_t) pool, 2048); + assert_equal(alloc_next_available(pool, 16), expected_base_address); + assert_equal(alloc_base_address(pool), expected_base_address); + + size_t expected_blocks = ( + uintptr_t(pool + POOL_SIZE) - + uintptr_t(expected_base_address) + ) / 2048; + + assert_equal(alloc_block_count(pool), expected_blocks); + } + + void test_complex_case() { + uint8_t* large_pool = (uint8_t*) malloc(8 * 1024 * 1024); + + alloc_init(large_pool, 8 * 1024 * 1024); + alloc_malloc(large_pool, 262144); + alloc_malloc(large_pool, 262144); + void* a1 = alloc_malloc(large_pool, 524288); + alloc_free(large_pool, a1); + alloc_malloc(large_pool, 699056); + alloc_malloc(large_pool, 128); + alloc_shutdown(large_pool); + + free(large_pool); + } + + void test_complex_case2() { + uint8_t* large_pool = (uint8_t*) malloc(8 * 1024 * 1024); + alloc_init(large_pool, 8 * 1024 * 1024); + + void* a1 = alloc_malloc(large_pool, 131072); + alloc_free(large_pool, a1); + + alloc_malloc(large_pool, 174768); + void* a2 = alloc_malloc(large_pool, 131072); + alloc_free(large_pool, a2); + + alloc_malloc(large_pool, 174768); + void* a3 = alloc_malloc(large_pool, 128); + + alloc_free(large_pool, a3); + + alloc_shutdown(large_pool); + free(large_pool); + } + + void test_alloc_malloc() { + alloc_init(pool, POOL_SIZE); + + uint8_t* base_address = (uint8_t*) alloc_base_address(pool); + void* a1 = alloc_malloc(pool, 1024); + + /* First alloc should always be the base address */ + assert_equal(a1, base_address); + + /* An allocation of <= 2048 (well 1024) will not necessarily be at + * a 2k boundary */ + void* expected_next_available = base_address + uintptr_t(1024); + assert_equal(alloc_next_available(pool, 1024), expected_next_available); + + /* Requesting 2k though will force to a 2k boundary */ + expected_next_available = base_address + uintptr_t(2048); + assert_equal(alloc_next_available(pool, 2048), expected_next_available); + + /* Now alloc 2048 bytes, this should be on the 2k boundary */ + void* a2 = alloc_malloc(pool, 2048); + assert_equal(a2, expected_next_available); + + /* If we try to allocate 1k, this should go in the second half of the + * first block */ + expected_next_available = base_address + uintptr_t(1024); + void* a3 = alloc_malloc(pool, 1024); + assert_equal(a3, expected_next_available); + + alloc_free(pool, a1); + + /* Next allocation would go in the just freed block */ + expected_next_available = base_address; + assert_equal(alloc_next_available(pool, 64), expected_next_available); + + /* Now allocate 14 more 2048 size blocks, the following one should + * return NULL */ + for(int i = 0; i < 14; ++i) { + alloc_malloc(pool, 2048); + } + + assert_is_null(alloc_malloc(pool, 2048)); + + /* But we should still have room in the second block for this */ + assert_is_not_null(alloc_malloc(pool, 64)); + } + +}; diff --git a/tests/test_glteximage2d.h b/tests/test_glteximage2d.h new file mode 100644 index 0000000..3349c42 --- /dev/null +++ b/tests/test_glteximage2d.h @@ -0,0 +1,77 @@ +#include "tools/test.h" + +#include +#include +#include + + +class TexImage2DTests : public test::TestCase { +public: + uint8_t image_data[8 * 8 * 4] = {0}; + + void set_up() { + GLdcConfig config; + glKosInitConfig(&config); + config.texture_twiddle = false; + glKosInitEx(&config); + + /* Init image data so each texel RGBA value matches the + * position in the array */ + for(int i = 0; i < 8 * 8 * 4; i += 4) { + image_data[i + 0] = i; + image_data[i + 1] = i; + image_data[i + 2] = i; + image_data[i + 3] = i; + } + } + + void tear_down() { + glKosShutdown(); + } + + void test_rgb_to_rgb565() { + glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, 8, 8, 0, GL_RGB, GL_UNSIGNED_BYTE, image_data); + assert_equal(glGetError(), GL_NO_ERROR); + + GLint internalFormat; + glGetIntegerv(GL_TEXTURE_INTERNAL_FORMAT_KOS, &internalFormat); + + assert_equal(internalFormat, GL_RGB565_KOS); + } + + void test_rgb_to_rgb565_twiddle() { + glEnable(GL_TEXTURE_TWIDDLE_KOS); + glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, 8, 8, 0, GL_RGB, GL_UNSIGNED_BYTE, image_data); + glDisable(GL_TEXTURE_TWIDDLE_KOS); + + assert_equal(glGetError(), GL_NO_ERROR); + + GLint internalFormat; + glGetIntegerv(GL_TEXTURE_INTERNAL_FORMAT_KOS, &internalFormat); + + assert_equal(internalFormat, GL_RGB565_TWID_KOS); + } + + void test_rgba_to_argb4444() { + glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 8, 8, 0, GL_RGBA, GL_UNSIGNED_BYTE, image_data); + assert_equal(glGetError(), GL_NO_ERROR); + + GLint internalFormat; + glGetIntegerv(GL_TEXTURE_INTERNAL_FORMAT_KOS, &internalFormat); + + assert_equal(internalFormat, GL_ARGB4444_KOS); + } + + void test_rgba_to_argb4444_twiddle() { + glEnable(GL_TEXTURE_TWIDDLE_KOS); + glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 8, 8, 0, GL_RGBA, GL_UNSIGNED_BYTE, image_data); + glDisable(GL_TEXTURE_TWIDDLE_KOS); + + assert_equal(glGetError(), GL_NO_ERROR); + + GLint internalFormat; + glGetIntegerv(GL_TEXTURE_INTERNAL_FORMAT_KOS, &internalFormat); + + assert_equal(internalFormat, GL_ARGB4444_TWID_KOS); + } +}; diff --git a/tools/test.h b/tools/test.h new file mode 100644 index 0000000..b4ef409 --- /dev/null +++ b/tools/test.h @@ -0,0 +1,451 @@ +/* * Copyright (c) 2011-2017 Luke Benstead https://simulant-engine.appspot.com + * + * This file is part of Simulant. + * + * Simulant is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Simulant is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Simulant. If not, see . + */ + +#pragma once + +#include +#include +#include +#include +#include +#include +#include +#include + +#define assert_equal(expected, actual) _assert_equal((expected), (actual), __FILE__, __LINE__) +#define assert_not_equal(expected, actual) _assert_not_equal((expected), (actual), __FILE__, __LINE__) +#define assert_false(actual) _assert_false((actual), __FILE__, __LINE__) +#define assert_true(actual) _assert_true((actual), __FILE__, __LINE__) +#define assert_close(expected, actual, difference) _assert_close((expected), (actual), (difference), __FILE__, __LINE__) +#define assert_is_null(actual) _assert_is_null((actual), __FILE__, __LINE__) +#define assert_is_not_null(actual) _assert_is_not_null((actual), __FILE__, __LINE__) +#define assert_raises(exception, func) _assert_raises((func), __FILE__, __LINE__) +#define assert_items_equal(expected, actual) _assert_items_equal((actual), (expected), __FILE__, __LINE__) +#define not_implemented() _not_implemented(__FILE__, __LINE__) + + +namespace test { + +class StringFormatter { +public: + StringFormatter(const std::string& templ): + templ_(templ) { } + + struct Counter { + Counter(uint32_t c): c(c) {} + uint32_t c; + }; + + template + std::string format(T value) { + std::stringstream ss; + ss << value; + return _do_format(0, ss.str()); + } + + template + std::string format(Counter count, T value) { + std::stringstream ss; + ss << value; + return _do_format(count.c, ss.str()); + } + + template + std::string format(T value, const Args&... args) { + std::stringstream ss; + ss << value; + return StringFormatter(_do_format(0, ss.str())).format(Counter(1), args...); + } + + template + std::string format(Counter count, T value, const Args&... args) { + std::stringstream ss; + ss << value; + return StringFormatter(_do_format(count.c, ss.str())).format(Counter(count.c + 1), args...); + } + + std::string _do_format(uint32_t counter, const std::string& value) { + std::stringstream ss; // Can't use to_string on all platforms + ss << counter; + + const std::string to_replace = "{" + ss.str() + "}"; + std::string output = templ_; + + auto replace = [](std::string& str, const std::string& from, const std::string& to) -> bool { + size_t start_pos = str.find(from); + if(start_pos == std::string::npos) + return false; + str.replace(start_pos, from.length(), to); + return true; + }; + + replace(output, to_replace, value); + return output; + } + +private: + std::string templ_; +}; + +class StringSplitter { +public: + StringSplitter(const std::string& str): + str_(str) { + + } + + std::vector split() { + std::vector result; + std::string buffer; + + for(auto c: str_) { + if(c == '\n') { + if(!buffer.empty()) { + result.push_back(buffer); + buffer.clear(); + } + } else { + buffer.push_back(c); + } + } + + if(!buffer.empty()) { + result.push_back(buffer); + } + + return result; + } + +private: + std::string str_; +}; + +typedef StringFormatter _Format; + +class AssertionError : public std::logic_error { +public: + AssertionError(const std::string& what): + std::logic_error(what), + file(""), + line(-1) { + } + + AssertionError(const std::pair file_and_line, const std::string& what): + std::logic_error(what), + file(file_and_line.first), + line(file_and_line.second) { + + } + + ~AssertionError() noexcept (true) { + + } + + std::string file; + int line; +}; + + +class NotImplementedError: public std::logic_error { +public: + NotImplementedError(const std::string& file, int line): + std::logic_error(_Format("Not implemented at {0}:{1}").format(file, line)) {} +}; + + +class SkippedTestError: public std::logic_error { +public: + SkippedTestError(const std::string& reason): + std::logic_error(reason) { + + } +}; + +class TestCase { +public: + virtual ~TestCase() {} + + virtual void set_up() {} + virtual void tear_down() {} + + void skip_if(const bool& flag, const std::string& reason) { + if(flag) { throw test::SkippedTestError(reason); } + } + + template + void _assert_equal(T expected, U actual, std::string file, int line) { + if(expected != actual) { + auto file_and_line = std::make_pair(file, line); + throw test::AssertionError(file_and_line, test::_Format("{0} does not match {1}").format(actual, expected)); + } + } + + template + void _assert_not_equal(T lhs, U rhs, std::string file, int line) { + if(lhs == (T) rhs) { + auto file_and_line = std::make_pair(file, line); + throw test::AssertionError(file_and_line, test::_Format("{0} should not match {1}").format(lhs, rhs)); + } + } + + template + void _assert_true(T actual, std::string file, int line) { + if(!bool(actual)) { + auto file_and_line = std::make_pair(file, line); + throw test::AssertionError(file_and_line, test::_Format("{0} is not true").format(bool(actual) ? "true" : "false")); + } + } + + template + void _assert_false(T actual, std::string file, int line) { + if(bool(actual)) { + auto file_and_line = std::make_pair(file, line); + throw test::AssertionError(file_and_line, test::_Format("{0} is not false").format(bool(actual) ? "true" : "false")); + } + } + + template + void _assert_close(T expected, U actual, V difference, std::string file, int line) { + if(actual < expected - difference || + actual > expected + difference) { + auto file_and_line = std::make_pair(file, line); + throw test::AssertionError(file_and_line, test::_Format("{0} is not close enough to {1}").format(actual, expected)); + } + } + + template + void _assert_is_null(T* thing, std::string file, int line) { + if(thing != nullptr) { + auto file_and_line = std::make_pair(file, line); + throw test::AssertionError(file_and_line, "Pointer was not NULL"); + } + } + + template + void _assert_is_not_null(T* thing, std::string file, int line) { + if(thing == nullptr) { + auto file_and_line = std::make_pair(file, line); + throw test::AssertionError(file_and_line, "Pointer was unexpectedly NULL"); + } + } + + template + void _assert_raises(Func func, std::string file, int line) { + try { + func(); + auto file_and_line = std::make_pair(file, line); + throw test::AssertionError(file_and_line, test::_Format("Expected exception ({0}) was not thrown").format(typeid(T).name())); + } catch(T& e) {} + } + + template + void _assert_items_equal(const T& lhs, const U& rhs, std::string file, int line) { + auto file_and_line = std::make_pair(file, line); + + if(lhs.size() != rhs.size()) { + throw test::AssertionError(file_and_line, "Containers are not the same length"); + } + + for(auto item: lhs) { + if(std::find(rhs.begin(), rhs.end(), item) == rhs.end()) { + throw test::AssertionError(file_and_line, test::_Format("Container does not contain {0}").format(item)); + } + } + } + + void _not_implemented(std::string file, int line) { + throw test::NotImplementedError(file, line); + } +}; + +class TestRunner { +public: + template + void register_case(std::vector methods, std::vector names) { + std::shared_ptr instance = std::make_shared(); + + instances_.push_back(instance); //Hold on to it + + for(std::string name: names) { + names_.push_back(name); + } + + for(U& method: methods) { + std::function func = std::bind(method, dynamic_cast(instance.get())); + tests_.push_back([=]() { + instance->set_up(); + try { + func(); + } catch(...) { + instance->tear_down(); + throw; + } + + instance->tear_down(); + }); + } + } + + int32_t run(const std::string& test_case, const std::string& junit_output="") { + int failed = 0; + int skipped = 0; + int ran = 0; + int crashed = 0; + + auto new_tests = tests_; + auto new_names = names_; + + if(!test_case.empty()) { + new_tests.clear(); + new_names.clear(); + + for(uint32_t i = 0; i < names_.size(); ++i) { + if(names_[i].find(test_case) == 0) { + new_tests.push_back(tests_[i]); + new_names.push_back(names_[i]); + } + } + } + + std::cout << std::endl << "Running " << new_tests.size() << " tests" << std::endl << std::endl; + + std::vector junit_lines; + junit_lines.push_back("\n"); + + std::string klass = ""; + + for(std::function test: new_tests) { + std::string name = new_names[ran]; + std::string this_klass(name.begin(), name.begin() + name.find_first_of(":")); + bool close_klass = ran == (int) new_tests.size() - 1; + + if(this_klass != klass) { + if(!klass.empty()) { + junit_lines.push_back(" \n"); + } + klass = this_klass; + junit_lines.push_back(" \n"); + } + + try { + junit_lines.push_back(" \n"); + std::string output = " " + new_names[ran]; + + for(int i = output.length(); i < 76; ++i) { + output += " "; + } + + std::cout << output; + test(); + std::cout << "\033[32m" << " OK " << "\033[0m" << std::endl; + junit_lines.push_back(" \n"); + } catch(test::NotImplementedError& e) { + std::cout << "\033[34m" << " SKIPPED" << "\033[0m" << std::endl; + ++skipped; + junit_lines.push_back(" \n"); + } catch(test::SkippedTestError& e) { + std::cout << "\033[34m" << " SKIPPED" << "\033[0m" << std::endl; + ++skipped; + junit_lines.push_back(" \n"); + } catch(test::AssertionError& e) { + std::cout << "\033[33m" << " FAILED " << "\033[0m" << std::endl; + std::cout << " " << e.what() << std::endl; + if(!e.file.empty()) { + std::cout << " " << e.file << ":" << e.line << std::endl; + + std::ifstream ifs(e.file); + if(ifs.good()) { + std::string buffer; + std::vector lines; + while(std::getline(ifs, buffer)) { + lines.push_back(buffer); + } + + int line_count = lines.size(); + if(line_count && e.line <= line_count) { + std::cout << lines.at(e.line - 1) << std::endl << std::endl; + } + } + } + ++failed; + + junit_lines.push_back(" \n"); + junit_lines.push_back(" \n"); + } catch(std::exception& e) { + std::cout << "\033[31m" << " EXCEPT " << std::endl; + std::cout << " " << e.what() << "\033[0m" << std::endl; + ++crashed; + + junit_lines.push_back(" \n"); + junit_lines.push_back(" \n"); + } + std::cout << "\033[0m"; + ++ran; + + if(close_klass) { + junit_lines.push_back(" \n"); + } + } + + junit_lines.push_back("\n"); + + if(!junit_output.empty()) { + FILE* f = fopen(junit_output.c_str(), "wt"); + if(f) { + for(auto& line: junit_lines) { + fwrite(line.c_str(), sizeof(char), line.length(), f); + } + } + + fclose(f); + } + + std::cout << "-----------------------" << std::endl; + if(!failed && !crashed && !skipped) { + std::cout << "All tests passed" << std::endl << std::endl; + } else { + if(skipped) { + std::cout << skipped << " tests skipped"; + } + + if(failed) { + if(skipped) { + std::cout << ", "; + } + std::cout << failed << " tests failed"; + } + + if(crashed) { + if(failed) { + std::cout << ", "; + } + std::cout << crashed << " tests crashed"; + } + std::cout << std::endl << std::endl; + } + + return failed + crashed; + } + +private: + std::vector> instances_; + std::vector > tests_; + std::vector names_; +}; +} // test + diff --git a/tools/test_generator.py b/tools/test_generator.py new file mode 100755 index 0000000..a3bb43c --- /dev/null +++ b/tools/test_generator.py @@ -0,0 +1,212 @@ +#!/usr/bin/env python3 + +import argparse +import re +import sys + +parser = argparse.ArgumentParser(description="Generate C++ unit tests") +parser.add_argument("--output", type=str, nargs=1, help="The output source file for the generated test main()", required=True) +parser.add_argument("test_files", type=str, nargs="+", help="The list of C++ files containing your tests") +parser.add_argument("--verbose", help="Verbose logging", action="store_true", default=False) + + +CLASS_REGEX = r"\s*class\s+(\w+)\s*([\:|,]\s*(?:public|private|protected)\s+[\w|::]+\s*)*" +TEST_FUNC_REGEX = r"void\s+(?Ptest_\S[^\(]+)\(\s*(void)?\s*\)" + + +INCLUDE_TEMPLATE = "#include \"%(file_path)s\"" + +REGISTER_TEMPLATE = """ + runner->register_case<%(class_name)s>( + std::vector({%(members)s}), + {%(names)s} + );""" + +MAIN_TEMPLATE = """ + +#include +#include +#include + +#include "tools/test.h" + +%(includes)s + + +std::map parse_args(int argc, char* argv[]) { + std::map ret; + + for(int i = 1; i < argc; ++i) { + std::string arg = argv[i]; + + auto eq = arg.find('='); + if(eq != std::string::npos && arg[0] == '-' && arg[1] == '-') { + auto key = std::string(arg.begin(), arg.begin() + eq); + auto value = std::string(arg.begin() + eq + 1, arg.end()); + ret[key] = value; + } else if(arg[0] == '-' && arg[1] == '-') { + auto key = arg; + if(i < (argc - 1)) { + auto value = argv[++i]; + ret[key] = value; + } else { + ret[key] = ""; + } + } else { + ret[arg] = ""; // Positional, not key=value + } + } + + return ret; +} + +int main(int argc, char* argv[]) { + auto runner = std::make_shared(); + + auto args = parse_args(argc, argv); + + std::string junit_xml; + auto junit_xml_it = args.find("--junit-xml"); + if(junit_xml_it != args.end()) { + junit_xml = junit_xml_it->second; + std::cout << " Outputting junit XML to: " << junit_xml << std::endl; + args.erase(junit_xml_it); + } + + std::string test_case; + if(args.size()) { + test_case = args.begin()->first; + } + + %(registrations)s + + return runner->run(test_case, junit_xml); +} + + +""" + +VERBOSE = False + +def log_verbose(message): + if VERBOSE: + print(message) + + +def find_tests(files): + + subclasses = [] + + # First pass, find all class definitions + for path in files: + with open(path, "rt") as f: + source_file_data = f.read().replace("\r\n", "").replace("\n", "") + + while True: + match = re.search(CLASS_REGEX, source_file_data) + if not match: + break + + class_name = match.group().split(":")[0].replace("class", "").strip() + + try: + parents = match.group().split(":", 1)[1] + except IndexError: + pass + else: + parents = [ x.strip() for x in parents.split(",") ] + parents = [ + x.replace("public", "").replace("private", "").replace("protected", "").strip() + for x in parents + ] + + subclasses.append((path, class_name, parents, [])) + log_verbose("Found: %s" % str(subclasses[-1])) + + start = match.end() + + # Find the next opening brace + while source_file_data[start] in (' ', '\t'): + start += 1 + + start -= 1 + end = start + if source_file_data[start+1] == '{': + + class_data = [] + brace_counter = 1 + for i in range(start+2, len(source_file_data)): + class_data.append(source_file_data[i]) + if class_data[-1] == '{': brace_counter += 1 + if class_data[-1] == '}': brace_counter -= 1 + if not brace_counter: + end = i + break + + class_data = "".join(class_data) + + while True: + match = re.search(TEST_FUNC_REGEX, class_data) + if not match: + break + + subclasses[-1][-1].append(match.group('func_name')) + class_data = class_data[match.end():] + + source_file_data = source_file_data[end:] + + + # Now, simplify the list by finding all potential superclasses, and then keeping any classes + # that subclass them. + test_case_subclasses = [] + i = 0 + while i < len(subclasses): + subclass_names = [x.rsplit("::")[-1] for x in subclasses[i][2]] + + # If this subclasses TestCase, or it subclasses any of the already found testcase subclasses + # then add it to the list + if "TestCase" in subclass_names or "SimulantTestCase" in subclass_names or any(x[1] in subclasses[i][2] for x in test_case_subclasses): + if subclasses[i] not in test_case_subclasses: + test_case_subclasses.append(subclasses[i]) + + i = 0 # Go back to the start, as we may have just found another parent class + continue + i += 1 + + log_verbose("\n".join([str(x) for x in test_case_subclasses])) + return test_case_subclasses + + +def main(): + global VERBOSE + + args = parser.parse_args() + + VERBOSE = args.verbose + + testcases = find_tests(args.test_files) + + includes = "\n".join([ INCLUDE_TEMPLATE % { 'file_path' : x } for x in set([y[0] for y in testcases]) ]) + registrations = [] + + for path, class_name, superclasses, funcs in testcases: + BIND_TEMPLATE = "&%(class_name)s::%(func)s" + + members = ", ".join([ BIND_TEMPLATE % { 'class_name' : class_name, 'func' : x } for x in funcs ]) + names = ", ".join([ '"%s::%s"' % (class_name, x) for x in funcs ]) + + registrations.append(REGISTER_TEMPLATE % { 'class_name' : class_name, 'members' : members, 'names' : names }) + + registrations = "\n".join(registrations) + + final = MAIN_TEMPLATE % { + 'registrations' : registrations, + 'includes' : includes + } + + open(args.output[0], "w").write(final) + + return 0 + +if __name__ == '__main__': + sys.exit(main())